<?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>4726</bug_id>
          
          <creation_ts>2005-08-29 12:01:11 -0700</creation_ts>
          <short_desc>Drop of multiple non-image file URLs only yields one item</short_desc>
          <delta_ts>2005-12-02 16:35:09 -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>HTML Editing</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Dan Wood">dwood</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>ttalbot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>17862</commentid>
    <comment_count>0</comment_count>
    <who name="Dan Wood">dwood</who>
    <bug_when>2005-08-29 12:01:11 -0700</bug_when>
    <thetext>When you select multiple non-image files in the finder and drag them into an ContentEditable div, only 
the first file&apos;s URL in that selection is inserted.

To reproduce:
* Activate an editable div in a web page
* Select 2 or more non image files (e.g. txt, rtf, etc, from the finder)
* Drag into the editable area

Expected:
You should see file: URLs inserted for each item
Actual:
Only one URL is inserted.

Notes:
I did some looking into the logic of this by breaking on _documentFragmentFromPasteboard:.... in 
WebHTMLView.m.  One of the first checks is:
([types containsObject:NSFilenamesPboardType])
If this returns true (which it does, it calls:

        DOMDocumentFragment *fragment = [self _documentFragmentWithPaths:[pasteboard 
propertyListForType:NSFilenamesPboardType]];

Now  you&apos;d think that this would be the one to handle the pasteboard contents, but actually, -
[WebHTMLView _documentFragmentWithPaths:] only heeds image files.

Way down further in _documentFragmentFromPasteboard:..., as almost a last resort, it checks to see if 
the pasteboard contains a single URL with this line:  if ((URL = [NSURL 
URLFromPasteboard:pasteboard]))

That&apos;s the code that succeeds in processing the pasteboard, but it only yields a single URL.

I would propose that another check be inserted above that which again checks if ([types 
containsObject:NSFilenamesPboardType])  but this time, it processes all the file paths as URLs.  that 
would allow multiple files to be dragged in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24138</commentid>
    <comment_count>1</comment_count>
      <attachid>4696</attachid>
    <who name="Andrew Wellington">andrew</who>
    <bug_when>2005-11-16 03:26:47 -0800</bug_when>
    <thetext>Created attachment 4696
Proposed patch

If no images are found in the dragged file list we instead get a list of the
URLs of the file list (space separated) and use that.

No regression test due to difficulty testing a pasteboard containing
NSFilenamesPboardType. (Is it even possible to test that automatically?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24184</commentid>
    <comment_count>2</comment_count>
      <attachid>4696</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-11-16 22:14:19 -0800</bug_when>
    <thetext>Comment on attachment 4696
Proposed patch

Looks like a generally good fix. But, two comments.

In TextEdit, the paths end up separated by newlines, not spaces. So it would be
better to use &quot;\n&quot; as the separator instead of &quot; &quot;, for consistency. Second,
what happens if you have a mix of image and non-image URLs? Seems to me like
with this code, you&apos;d lose the non-image paths still.

And finally, as a matter of style, shouldn&apos;t the support for non-image types be
right in _documentFragmentWithPaths:, instead of in a separate else case? That
would also make it easier to handle a mix of image and non-image types.

Great first cut, please make these revisions and it will be read to land I
think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24187</commentid>
    <comment_count>3</comment_count>
      <attachid>4710</attachid>
    <who name="Andrew Wellington">andrew</who>
    <bug_when>2005-11-17 05:30:18 -0800</bug_when>
    <thetext>Created attachment 4710
Proposed patch 2

- Moved code to _documentFragmentWithPaths
- Now places a new line between URLs
- Can include both images and other files in a single drag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24424</commentid>
    <comment_count>4</comment_count>
      <attachid>4710</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-11-22 19:52:35 -0800</bug_when>
    <thetext>Comment on attachment 4710
Proposed patch 2

For multiple lines in HTML we use p elements, not br elements.

So this code needs to be more like createFragmentFromText in markup.cpp.

Each item should be in a paragraph created by createDefaultParagraphElement.
Image items could be image elements and text items could be text nodes just as
in the code here.

A clean way to do this is to put a function over on the WebCore side that takes
a list of nodes and puts each one in a separate paragraph. The code on this
side could just pass an NSArray of DOMNode objects over the bridge to get to
that side.

Having more of the code on the WebCore side is better for portability to other
platforms anyway.

Sorry to make this harder, but we really want functions like this to be
consistent with other editing code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24456</commentid>
    <comment_count>5</comment_count>
      <attachid>4781</attachid>
    <who name="Andrew Wellington">andrew</who>
    <bug_when>2005-11-23 02:44:23 -0800</bug_when>
    <thetext>Created attachment 4781
Proposed patch 3

Now generates a document fragment containing pargraphs made using
createDefaultParagraphElement in WebCore using an NSArray passed from WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24461</commentid>
    <comment_count>6</comment_count>
      <attachid>4781</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-11-23 06:42:15 -0800</bug_when>
    <thetext>Comment on attachment 4781
Proposed patch 3

This looks great! Excellent work.

A few comments:

    1) Formatting nit:

+    while ((node = [nodeEnum nextObject]))
+    {

In our coding style, the brace is supposed to be on the same line as the while
statement.

    2) The node should be added to the paragraph with appendChild, not with
addChild. The addChild function is for the HTML parser only.

    3) Ideally, the body of this function should be inside markup.cpp -- to do
that the NSArray would have to be converted to some C++ data structure,
presumably a QPtrList&lt;DOM::NodeImpl&gt;. While this would make this patch more
complicated, it would reduce the amount of code that&apos;s in Mac OS X specific
Objective-C and make some other improvements practical as well (read on).

    4) This function is different from createFragmentFromText in one
significant way: createFragmentFromText uses a &quot;magic BR&quot; at the end. I
remember precisely why that&apos;s necessary (something related to editing of
course), but I think it may be important in this case as well as that one.
Ideally, we&apos;d refactor createFragmentFromText into two pieces, and then code to
put the nodes into paragraphs can be shared by this new function and by
createFragmentFromText. Thus createFragmentFromText would create the text nodes
and put them in a QPtrList and then call the new createFragmentfromNodeList
function.

    5) The fragment returned from createDocumentFragment needs to be ref&apos;d and
deref&apos;d at the appropriate time; it&apos;s not legal to just call appendChild on
something newly created and floating; that could cause the fragment to be
deleted. Either use a SharedPtr&lt;DocumentFragmentImpl&gt; or put in explicit
ref/deref calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24606</commentid>
    <comment_count>7</comment_count>
      <attachid>4814</attachid>
    <who name="Andrew Wellington">andrew</who>
    <bug_when>2005-11-27 00:41:31 -0800</bug_when>
    <thetext>Created attachment 4814
Proposed patch 4

- Correct coding style problem with while

- Moved the actual fragment creation to markup.cpp in
createFragmentFromNodeList. Does not incorporate with createFragmentFromText
for now as createFragmentFromText doesn&apos;t create straight nodes, but uses
createParagraphContentsFromString to fill in a paragraph object that has
already been created. This means that while we have DOMNodes from
_documentFragmentWithPaths in WebKit passed across the bridge and moved to a
QPtrList&lt;DOM::NodeImpl&gt;, we&apos;d have QStrings or a full paragraph (which we don&apos;t
want to wrap in another paragraph) from createParagraphContentsFromString,
creating different required code paths for the input from each routine.

- Correctly ref/deref elements and fragment while we construct the fragment.
This pattern of ref/deref matches createFragmentFromText

- Add a magic BR to the end of the fragment (this appears to be how
createFragmentFromText does it, simply appending the magic BR to the end of the
list). It looks OK in the DOM tree in Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24715</commentid>
    <comment_count>8</comment_count>
      <attachid>4814</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-11-27 18:33:22 -0800</bug_when>
    <thetext>Comment on attachment 4814
Proposed patch 4

Very nice!

Two comments:

    1) I feel like an idiot. Now that I read it I see that
createFragmentFromText puts each element inside a default paragraph except for
the last line if it is empty. So the magic &quot;BR&quot; code in
createFragmentFromNodeList is probably not needed at all. I&apos;m really sorry
about leading you astray about this; we should probably just take that out.

    2) createFragmentFromNodeList should take a const QPtrList&lt;DOM::NodeImpl&gt;&amp;
rather than QPtrList&lt;DOM::NodeImpl&gt;*.

Despite my marking it review-, this patch is in great shape. Thanks for all the
hard work on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24717</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-11-27 19:03:21 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; - Moved the actual fragment creation to markup.cpp in
&gt; createFragmentFromNodeList. Does not incorporate with createFragmentFromText
&gt; for now as createFragmentFromText doesn&apos;t create straight nodes, but uses
&gt; createParagraphContentsFromString to fill in a paragraph object that has
&gt; already been created. This means that while we have DOMNodes from
&gt; _documentFragmentWithPaths in WebKit passed across the bridge and moved to a
&gt; QPtrList&lt;DOM::NodeImpl&gt;, we&apos;d have QStrings or a full paragraph (which we don&apos;t
&gt; want to wrap in another paragraph) from createParagraphContentsFromString,
&gt; creating different required code paths for the input from each routine.

The createParagraphContentsFromString function is used only inside createFragmentFromText, so it&apos;s logically part of the 
createFragmentFromText function. We could easily change it so that it creates a node. It can create a fragment, which is a single 
node that can represent a list of nodes, or the single block placeholder element. Then those nodes could be put into a QPtrList. So 
in the long run I do think it&apos;s practical to make createFragmentFromText use createFragmentFromNodeList.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24720</commentid>
    <comment_count>10</comment_count>
      <attachid>4825</attachid>
    <who name="Andrew Wellington">andrew</who>
    <bug_when>2005-11-27 20:24:03 -0800</bug_when>
    <thetext>Created attachment 4825
Proposed patch 5

- Removed magic BR code
- Now takes const QPtrList&lt;DOM::NodeImpl&gt;&amp; instead of QPtrList&lt;DOM::NodeImpl&gt;*

As to createFragmentFromText, I&apos;m not sure what the benefit would be to create
a fragment instead of a paragraph, only to place that fragment in a paragraph
in a different routine? It would seem that this creates (possibly) a large
number of extra nodes that aren&apos;t required for what seems to be little benefit.


I will however attach an alternate patch in a moment that implements
createFragmentFromText through the new createFragmentFromNodeList.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24721</commentid>
    <comment_count>11</comment_count>
      <attachid>4826</attachid>
    <who name="Andrew Wellington">andrew</who>
    <bug_when>2005-11-27 20:24:57 -0800</bug_when>
    <thetext>Created attachment 4826
Proposed patch 5 alternate

Alternate version of proposed patch 5 as mentioned in comment above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24862</commentid>
    <comment_count>12</comment_count>
      <attachid>4825</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-11-29 07:00:54 -0800</bug_when>
    <thetext>Comment on attachment 4825
Proposed patch 5

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24863</commentid>
    <comment_count>13</comment_count>
      <attachid>4826</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-11-29 07:01:52 -0800</bug_when>
    <thetext>Comment on attachment 4826
Proposed patch 5 alternate

This isn&apos;t really what I had in mind as far as sharing code with the new
createFragmentFromNodeList function, so we should not land this version. We can
revisit the issue later.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4696</attachid>
            <date>2005-11-16 03:26:47 -0800</date>
            <delta_ts>2005-11-17 05:30:18 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>WebHTMLView-4726-patch.txt</filename>
            <type>text/plain</type>
            <size>1339</size>
            <attacher name="Andrew Wellington">andrew</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkhUTUxWaWV3Lm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYktp
dC9XZWJWaWV3LnN1YnByb2ovV2ViSFRNTFZpZXcubSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40
NzgKZGlmZiAtdSAtcjEuNDc4IFdlYkhUTUxWaWV3Lm0KLS0tIFdlYkhUTUxWaWV3Lm0JMTEgTm92
IDIwMDUgMDE6MTU6MzcgLTAwMDAJMS40NzgKKysrIFdlYkhUTUxWaWV3Lm0JMTYgTm92IDIwMDUg
MTE6MzA6MjAgLTAwMDAKQEAgLTMzNiw2ICszMzYsMjIgQEAKICAgICAgICAgRE9NRG9jdW1lbnRG
cmFnbWVudCAqZnJhZ21lbnQgPSBbc2VsZiBfZG9jdW1lbnRGcmFnbWVudFdpdGhQYXRoczpbcGFz
dGVib2FyZCBwcm9wZXJ0eUxpc3RGb3JUeXBlOk5TRmlsZW5hbWVzUGJvYXJkVHlwZV1dOwogICAg
ICAgICBpZiAoZnJhZ21lbnQgIT0gbmlsKSB7CiAgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQ7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBOb24taW1hZ2UgZmlsZSB0eXBlcwor
ICAgICAgICAgICAgTlNBcnJheSAqcGF0aHMgPSBbcGFzdGVib2FyZCBwcm9wZXJ0eUxpc3RGb3JU
eXBlOk5TRmlsZW5hbWVzUGJvYXJkVHlwZV07CisgICAgICAgICAgICBOU0VudW1lcmF0b3IgKnBh
dGhFbnVtID0gW3BhdGhzIG9iamVjdEVudW1lcmF0b3JdOworICAgICAgICAgICAgTlNTdHJpbmcg
KnBhdGg7CisgICAgICAgICAgICBOU011dGFibGVTdHJpbmcgKnBhdGhMaXN0ID0gW1tOU011dGFi
bGVTdHJpbmcgYWxsb2NdIGluaXRdOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAo
KHBhdGggPSBbcGF0aEVudW0gbmV4dE9iamVjdF0pKSB7CisgICAgICAgICAgICAgICAgW3BhdGhM
aXN0IGFwcGVuZFN0cmluZzpbW1tOU1VSTCBmaWxlVVJMV2l0aFBhdGg6cGF0aF0gX3dlYmtpdF9j
YW5vbmljYWxpemVdIF93ZWJfdXNlclZpc2libGVTdHJpbmddXTsKKyAgICAgICAgICAgICAgICBb
cGF0aExpc3QgYXBwZW5kU3RyaW5nOkAiICJdOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
ZnJhZ21lbnQgPSBbW3NlbGYgX2JyaWRnZV0gZG9jdW1lbnRGcmFnbWVudFdpdGhUZXh0OgorICAg
ICAgICAgICAgICAgIFtwYXRoTGlzdCBzdHJpbmdCeVRyaW1taW5nQ2hhcmFjdGVyc0luU2V0OltO
U0NoYXJhY3RlclNldCB3aGl0ZXNwYWNlQ2hhcmFjdGVyU2V0XV1dOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBbcGF0aExpc3QgcmVsZWFzZV07CisgICAgICAgICAgICByZXR1cm4gZnJhZ21l
bnQ7CiAgICAgICAgIH0KICAgICB9CiAgICAgCg==
</data>
<flag name="review"
          id="858"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4710</attachid>
            <date>2005-11-17 05:30:18 -0800</date>
            <delta_ts>2005-11-23 02:44:23 -0800</delta_ts>
            <desc>Proposed patch 2</desc>
            <filename>WebHTMLView-4726-patch-2.txt</filename>
            <type>text/plain</type>
            <size>830</size>
            <attacher name="Andrew Wellington">andrew</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkhUTUxWaWV3Lm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYktp
dC9XZWJWaWV3LnN1YnByb2ovV2ViSFRNTFZpZXcubSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40
NzgKZGlmZiAtdSAtcjEuNDc4IFdlYkhUTUxWaWV3Lm0KLS0tIFdlYkhUTUxWaWV3Lm0JMTEgTm92
IDIwMDUgMDE6MTU6MzcgLTAwMDAJMS40NzgKKysrIFdlYkhUTUxWaWV3Lm0JMTcgTm92IDIwMDUg
MTM6MzM6MjQgLTAwMDAKQEAgLTI5MSw2ICsyOTEsMTEgQEAKICAgICAgICAgICAgICAgICBbZnJh
Z21lbnQgYXBwZW5kQ2hpbGQ6W2RhdGFTb3VyY2UgX2ltYWdlRWxlbWVudFdpdGhJbWFnZVJlc291
cmNlOnJlc291cmNlXV07CiAgICAgICAgICAgICAgICAgW3Jlc291cmNlIHJlbGVhc2VdOwogICAg
ICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gTm9uLWltYWdlIGZp
bGUgdHlwZXMKKyAgICAgICAgICAgIE5TU3RyaW5nICp1cmwgPSBbW1tOU1VSTCBmaWxlVVJMV2l0
aFBhdGg6cGF0aF0gX3dlYmtpdF9jYW5vbmljYWxpemVdIF93ZWJfdXNlclZpc2libGVTdHJpbmdd
OworICAgICAgICAgICAgW2ZyYWdtZW50IGFwcGVuZENoaWxkOltbW3NlbGYgX2JyaWRnZV0gRE9N
RG9jdW1lbnRdIGNyZWF0ZVRleHROb2RlOiB1cmxdXTsKKyAgICAgICAgICAgIFtmcmFnbWVudCBh
cHBlbmRDaGlsZDpbW1tzZWxmIF9icmlkZ2VdIERPTURvY3VtZW50XSBjcmVhdGVFbGVtZW50OiBA
ImJyIl1dOwogICAgICAgICB9CiAgICAgfQogICAgIAo=
</data>
<flag name="review"
          id="862"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4781</attachid>
            <date>2005-11-23 02:44:23 -0800</date>
            <delta_ts>2005-11-27 00:41:31 -0800</delta_ts>
            <desc>Proposed patch 3</desc>
            <filename>bug4726-patch-3.txt</filename>
            <type>text/plain</type>
            <size>4132</size>
            <attacher name="Andrew Wellington">andrew</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9XZWJWaWV3LnN1YnByb2ovV2ViSFRNTFZpZXcubQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViS2l0L1dlYlZpZXcuc3VicHJvai9XZWJIVE1MVmlldy5tLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjQ3OApkaWZmIC11IC1yMS40NzggV2ViSFRNTFZpZXcubQot
LS0gV2ViSFRNTFZpZXcubQkxMSBOb3YgMjAwNSAwMToxNTozNyAtMDAwMAkxLjQ3OAorKysgV2Vi
SFRNTFZpZXcubQkyMyBOb3YgMjAwNSAxMDozMzoyMCAtMDAwMApAQCAtMjczLDEwICsyNzMsMTEg
QEAKIAogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50V2l0aFBhdGhz
OihOU0FycmF5ICopcGF0aHMKIHsKLSAgICBET01Eb2N1bWVudEZyYWdtZW50ICpmcmFnbWVudCA9
IFtbW3NlbGYgX2JyaWRnZV0gRE9NRG9jdW1lbnRdIGNyZWF0ZURvY3VtZW50RnJhZ21lbnRdOwor
ICAgIERPTURvY3VtZW50RnJhZ21lbnQgKmZyYWdtZW50OwogICAgIE5TQXJyYXkgKmltYWdlTUlN
RVR5cGVzID0gW1tXZWJJbWFnZVJlbmRlcmVyRmFjdG9yeSBzaGFyZWRGYWN0b3J5XSBzdXBwb3J0
ZWRNSU1FVHlwZXNdOwogICAgIE5TRW51bWVyYXRvciAqZW51bWVyYXRvciA9IFtwYXRocyBvYmpl
Y3RFbnVtZXJhdG9yXTsKICAgICBXZWJEYXRhU291cmNlICpkYXRhU291cmNlID0gW3NlbGYgX2Rh
dGFTb3VyY2VdOworICAgIE5TTXV0YWJsZUFycmF5ICpkb21Ob2RlcyA9IFtbTlNNdXRhYmxlQXJy
YXkgYWxsb2NdIGluaXRdOwogICAgIE5TU3RyaW5nICpwYXRoOwogICAgIAogICAgIHdoaWxlICgo
cGF0aCA9IFtlbnVtZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwpIHsKQEAgLTI4OCwxMiArMjg5
LDIwIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRleHRFbmNvZGluZ05hbWU6bmlsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZU5hbWU6bmlsXTsKICAgICAgICAgICAg
IGlmIChyZXNvdXJjZSkgewotICAgICAgICAgICAgICAgIFtmcmFnbWVudCBhcHBlbmRDaGlsZDpb
ZGF0YVNvdXJjZSBfaW1hZ2VFbGVtZW50V2l0aEltYWdlUmVzb3VyY2U6cmVzb3VyY2VdXTsKKyAg
ICAgICAgICAgICAgICBbZG9tTm9kZXMgYWRkT2JqZWN0OltkYXRhU291cmNlIF9pbWFnZUVsZW1l
bnRXaXRoSW1hZ2VSZXNvdXJjZTpyZXNvdXJjZV1dOwogICAgICAgICAgICAgICAgIFtyZXNvdXJj
ZSByZWxlYXNlXTsKICAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IC8vIE5vbi1pbWFnZSBmaWxlIHR5cGVzCisgICAgICAgICAgICBOU1N0cmluZyAqdXJsID0gW1tb
TlNVUkwgZmlsZVVSTFdpdGhQYXRoOnBhdGhdIF93ZWJraXRfY2Fub25pY2FsaXplXSBfd2ViX3Vz
ZXJWaXNpYmxlU3RyaW5nXTsKKyAgICAgICAgICAgIFtkb21Ob2RlcyBhZGRPYmplY3Q6W1tbc2Vs
ZiBfYnJpZGdlXSBET01Eb2N1bWVudF0gY3JlYXRlVGV4dE5vZGU6IHVybF1dOwogICAgICAgICB9
CiAgICAgfQogICAgIAorICAgIGZyYWdtZW50ID0gW1tzZWxmIF9icmlkZ2VdIGRvY3VtZW50RnJh
Z21lbnRXaXRoTm9kZXNBc1BhcmFncmFwaHM6ZG9tTm9kZXNdOyAKKyAgICAKKyAgICBbZG9tTm9k
ZXMgcmVsZWFzZV07CisgICAgCiAgICAgcmV0dXJuIFtmcmFnbWVudCBmaXJzdENoaWxkXSAhPSBu
aWwgPyBmcmFnbWVudCA6IG5pbDsKIH0KIApJbmRleDogV2ViQ29yZS9rd3EvV2ViQ29yZUJyaWRn
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9XZWJDb3JlQnJp
ZGdlLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzQ5CmRpZmYgLXUgLXIxLjM0OSBXZWJDb3Jl
QnJpZGdlLmgKLS0tIFdlYkNvcmVCcmlkZ2UuaAkxOSBOb3YgMjAwNSAwMToyNjo0OCAtMDAwMAkx
LjM0OQorKysgV2ViQ29yZUJyaWRnZS5oCTIzIE5vdiAyMDA1IDEwOjM0OjQxIC0wMDAwCkBAIC0z
OTksNiArMzk5LDcgQEAKIAogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKWRvY3VtZW50RnJhZ21l
bnRXaXRoTWFya3VwU3RyaW5nOihOU1N0cmluZyAqKW1hcmt1cFN0cmluZyBiYXNlVVJMU3RyaW5n
OihOU1N0cmluZyAqKWJhc2VVUkxTdHJpbmc7CiAtIChET01Eb2N1bWVudEZyYWdtZW50ICopZG9j
dW1lbnRGcmFnbWVudFdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQ7CistIChET01Eb2N1bWVudEZy
YWdtZW50ICopZG9jdW1lbnRGcmFnbWVudFdpdGhOb2Rlc0FzUGFyYWdyYXBoczooTlNBcnJheSAq
KW5vZGVzOwogCiAtICh2b2lkKXJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQ6KERPTURvY3Vt
ZW50RnJhZ21lbnQgKilmcmFnbWVudCBzZWxlY3RSZXBsYWNlbWVudDooQk9PTClzZWxlY3RSZXBs
YWNlbWVudCBzbWFydFJlcGxhY2U6KEJPT0wpc21hcnRSZXBsYWNlIG1hdGNoU3R5bGU6KEJPT0wp
bWF0Y2hTdHlsZTsKIC0gKHZvaWQpcmVwbGFjZVNlbGVjdGlvbldpdGhOb2RlOihET01Ob2RlICop
bm9kZSBzZWxlY3RSZXBsYWNlbWVudDooQk9PTClzZWxlY3RSZXBsYWNlbWVudCBzbWFydFJlcGxh
Y2U6KEJPT0wpc21hcnRSZXBsYWNlOwpJbmRleDogV2ViQ29yZS9rZXEvV2ViQ29yZUJyaWRnZS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvV2ViQ29yZUJyaWRn
ZS5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40MzIKZGlmZiAtdSAtcjEuNDMyIFdlYkNvcmVC
cmlkZ2UubW0KLS0tIFdlYkNvcmVCcmlkZ2UubW0JMTkgTm92IDIwMDUgMDE6MjY6NDggLTAwMDAJ
MS40MzIKKysrIFdlYkNvcmVCcmlkZ2UubW0JMjMgTm92IDIwMDUgMTA6MzQ6NTggLTAwMDAKQEAg
LTE4NzQsNiArMTg3NCwyOSBAQAogICAgIHJldHVybiBbRE9NRG9jdW1lbnRGcmFnbWVudCBfZG9j
dW1lbnRGcmFnbWVudFdpdGhJbXBsOmNyZWF0ZUZyYWdtZW50RnJvbVRleHQoX3BhcnQtPnhtbERv
Y0ltcGwoKSwgUVN0cmluZzo6ZnJvbU5TU3RyaW5nKHRleHQpKV07CiB9CiAKKy0gKERPTURvY3Vt
ZW50RnJhZ21lbnQgKilkb2N1bWVudEZyYWdtZW50V2l0aE5vZGVzQXNQYXJhZ3JhcGhzOihOU0Fy
cmF5ICopbm9kZXMKK3sKKyAgICBEb2N1bWVudEZyYWdtZW50SW1wbCAqZnJhZ21lbnQgPSBfcGFy
dC0+eG1sRG9jSW1wbCgpLT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisgICAgTlNFbnVtZXJh
dG9yICpub2RlRW51bSA9IFtub2RlcyBvYmplY3RFbnVtZXJhdG9yXTsKKyAgICBET01Ob2RlICpu
b2RlOworICAgIAorICAgIGlmICghX3BhcnQgfHwgIV9wYXJ0LT54bWxEb2NJbXBsKCkpCisgICAg
ICAgIHJldHVybiAwOworICAgIAorICAgIHdoaWxlICgobm9kZSA9IFtub2RlRW51bSBuZXh0T2Jq
ZWN0XSkpCisgICAgeworICAgICAgICBFbGVtZW50SW1wbCAqcGFyYWdyYXBoID0gY3JlYXRlRGVm
YXVsdFBhcmFncmFwaEVsZW1lbnQoX3BhcnQtPnhtbERvY0ltcGwoKSk7CisgICAgICAgIGludCBl
eGNlcHRpb247CisgICAgICAgIAorICAgICAgICBwYXJhZ3JhcGgtPmFkZENoaWxkKFtub2RlIF9u
b2RlSW1wbF0pOworICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQocGFyYWdyYXBoLCBleGNl
cHRpb24pOworICAgICAgICBpZiAoZXhjZXB0aW9uICE9IDApCisgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIFtET01Eb2N1bWVudEZyYWdtZW50IF9kb2N1bWVu
dEZyYWdtZW50V2l0aEltcGw6ZnJhZ21lbnRdOworfQorCiAtICh2b2lkKXJlcGxhY2VTZWxlY3Rp
b25XaXRoRnJhZ21lbnQ6KERPTURvY3VtZW50RnJhZ21lbnQgKilmcmFnbWVudCBzZWxlY3RSZXBs
YWNlbWVudDooQk9PTClzZWxlY3RSZXBsYWNlbWVudCBzbWFydFJlcGxhY2U6KEJPT0wpc21hcnRS
ZXBsYWNlIG1hdGNoU3R5bGU6KEJPT0wpbWF0Y2hTdHlsZQogewogICAgIGlmICghcGFydEhhc1Nl
bGVjdGlvbihzZWxmKSB8fCAhZnJhZ21lbnQpCg==
</data>
<flag name="review"
          id="883"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4814</attachid>
            <date>2005-11-27 00:41:31 -0800</date>
            <delta_ts>2005-11-27 20:24:03 -0800</delta_ts>
            <desc>Proposed patch 4</desc>
            <filename>bug4726-patch-4.txt</filename>
            <type>text/plain</type>
            <size>6841</size>
            <attacher name="Andrew Wellington">andrew</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9tYXJrdXAuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VkaXRpbmcvbWFya3VwLmNwcCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS40MApkaWZmIC1wIC11IC1yMS40MCBXZWJDb3JlL2todG1sL2VkaXRpbmcv
bWFya3VwLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL21hcmt1cC5jcHAJMjEgTm92IDIw
MDUgMDE6MjA6MDQgLTAwMDAJMS40MAorKysgV2ViQ29yZS9raHRtbC9lZGl0aW5nL21hcmt1cC5j
cHAJMjcgTm92IDIwMDUgMDg6NDE6NTMgLTAwMDAKQEAgLTYwMCw0ICs2MDAsNDEgQEAgRE9NOjpE
b2N1bWVudEZyYWdtZW50SW1wbCAqY3JlYXRlRnJhZ21lbgogICAgIHJldHVybiBmcmFnbWVudDsK
IH0KIAorRE9NOjpEb2N1bWVudEZyYWdtZW50SW1wbCAqY3JlYXRlRnJhZ21lbnRGcm9tTm9kZUxp
c3QoRE9NOjpEb2N1bWVudEltcGwgKmRvY3VtZW50LCBRUHRyTGlzdDxET006Ok5vZGVJbXBsPiAq
bm9kZUxpc3QpCit7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
CisgICAgRG9jdW1lbnRGcmFnbWVudEltcGwgKmZyYWdtZW50ID0gZG9jdW1lbnQtPmNyZWF0ZURv
Y3VtZW50RnJhZ21lbnQoKTsKKyAgICBmcmFnbWVudC0+cmVmKCk7CisgICAgCisgICAgRWxlbWVu
dEltcGwgKmVsZW1lbnQ7CisgICAgaW50IGV4Y2VwdGlvbkNvZGUgPSAwOworICAgIGZvciAoUVB0
ckxpc3RJdGVyYXRvcjxOb2RlSW1wbD4gaSgqbm9kZUxpc3QpOyBpLmN1cnJlbnQoKTsgKytpKSB7
CisgICAgICAgIGVsZW1lbnQgPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChkb2N1bWVu
dCk7CisgICAgICAgIGVsZW1lbnQtPnJlZigpOworICAgICAgICBlbGVtZW50LT5hcHBlbmRDaGls
ZChpLmN1cnJlbnQoKSwgZXhjZXB0aW9uQ29kZSk7CisgICAgICAgIEFTU0VSVChleGNlcHRpb25D
b2RlID09IDApOworICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoZWxlbWVudCwgZXhjZXB0
aW9uQ29kZSk7CisgICAgICAgIEFTU0VSVChleGNlcHRpb25Db2RlID09IDApOworICAgICAgICBl
bGVtZW50LT5kZXJlZigpOworICAgIH0KKyAgICAvLyBJbnNlcnQgYSBtYWdpYyAiQlIiCisgICAg
ZWxlbWVudCA9IGRvY3VtZW50LT5jcmVhdGVFbGVtZW50TlMoeGh0bWxOYW1lc3BhY2VVUkksICJi
ciIsIGV4Y2VwdGlvbkNvZGUpOworICAgIEFTU0VSVChleGNlcHRpb25Db2RlID09IDApOworICAg
IGVsZW1lbnQtPnJlZigpOworICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsIEFw
cGxlSW50ZXJjaGFuZ2VOZXdsaW5lKTsKKyAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoZWxlbWVu
dCwgZXhjZXB0aW9uQ29kZSk7CisgICAgQVNTRVJUKGV4Y2VwdGlvbkNvZGUgPT0gMCk7CisgICAg
ZWxlbWVudC0+ZGVyZWYoKTsKKyAgICAKKyAgICAvLyBUcmljayB0byBnZXQgdGhlIGZyYWdtZW50
IGJhY2sgdG8gdGhlIGZsb2F0aW5nIHN0YXRlLCB3aXRoIDAKKyAgICAvLyByZWZzIGJ1dCBub3Qg
ZGVzdHJveWVkLgorICAgIGZyYWdtZW50LT5zZXRQYXJlbnQoZG9jdW1lbnQpOworICAgIGZyYWdt
ZW50LT5kZXJlZigpOworICAgIGZyYWdtZW50LT5zZXRQYXJlbnQoMCk7CisgICAgCisgICAgcmV0
dXJuIGZyYWdtZW50OworfQorCiB9CkluZGV4OiBXZWJDb3JlL2todG1sL2VkaXRpbmcvbWFya3Vw
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWRpdGluZy9t
YXJrdXAuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xCmRpZmYgLXAgLXUgLXIxLjEgV2ViQ29y
ZS9raHRtbC9lZGl0aW5nL21hcmt1cC5oCi0tLSBXZWJDb3JlL2todG1sL2VkaXRpbmcvbWFya3Vw
LmgJMTQgRGVjIDIwMDQgMDA6MTA6MDkgLTAwMDAJMS4xCisrKyBXZWJDb3JlL2todG1sL2VkaXRp
bmcvbWFya3VwLmgJMjcgTm92IDIwMDUgMDg6NDE6NTUgLTAwMDAKQEAgLTM1LDYgKzM1LDcgQEAg
ZW51bSBFQ2hpbGRyZW5Pbmx5IHsgSW5jbHVkZU5vZGUsIENoaWxkcgogCiBET006OkRvY3VtZW50
RnJhZ21lbnRJbXBsICpjcmVhdGVGcmFnbWVudEZyb21UZXh0KERPTTo6RG9jdW1lbnRJbXBsICpk
b2N1bWVudCwgY29uc3QgUVN0cmluZyAmdGV4dCk7CiBET006OkRvY3VtZW50RnJhZ21lbnRJbXBs
ICpjcmVhdGVGcmFnbWVudEZyb21NYXJrdXAoRE9NOjpEb2N1bWVudEltcGwgKmRvY3VtZW50LCBj
b25zdCBRU3RyaW5nICZtYXJrdXAsIGNvbnN0IFFTdHJpbmcgJmJhc2VVUkwpOworRE9NOjpEb2N1
bWVudEZyYWdtZW50SW1wbCAqY3JlYXRlRnJhZ21lbnRGcm9tTm9kZUxpc3QoRE9NOjpEb2N1bWVu
dEltcGwgKmRvY3VtZW50LCBRUHRyTGlzdDxET006Ok5vZGVJbXBsPiAqbm9kZUxpc3QpOwogCiBR
U3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBET006OlJhbmdlSW1wbCAqcmFuZ2UsCiAgICAgUVB0
ckxpc3Q8RE9NOjpOb2RlSW1wbD4gKm5vZGVzID0gMCwgRUFubm90YXRlRm9ySW50ZXJjaGFuZ2Ug
PSBEb05vdEFubm90YXRlRm9ySW50ZXJjaGFuZ2UpOwpJbmRleDogV2ViQ29yZS9rd3EvV2ViQ29y
ZUJyaWRnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9XZWJD
b3JlQnJpZGdlLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzQ5CmRpZmYgLXAgLXUgLXIxLjM0
OSBXZWJDb3JlL2t3cS9XZWJDb3JlQnJpZGdlLmgKLS0tIFdlYkNvcmUva3dxL1dlYkNvcmVCcmlk
Z2UuaAkxOSBOb3YgMjAwNSAwMToyNjo0OCAtMDAwMAkxLjM0OQorKysgV2ViQ29yZS9rd3EvV2Vi
Q29yZUJyaWRnZS5oCTI3IE5vdiAyMDA1IDA4OjQxOjU4IC0wMDAwCkBAIC0zOTksNiArMzk5LDcg
QEAgdHlwZWRlZiBlbnVtCiAKIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilkb2N1bWVudEZyYWdt
ZW50V2l0aE1hcmt1cFN0cmluZzooTlNTdHJpbmcgKiltYXJrdXBTdHJpbmcgYmFzZVVSTFN0cmlu
ZzooTlNTdHJpbmcgKiliYXNlVVJMU3RyaW5nOwogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKWRv
Y3VtZW50RnJhZ21lbnRXaXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0OworLSAoRE9NRG9jdW1lbnRG
cmFnbWVudCAqKWRvY3VtZW50RnJhZ21lbnRXaXRoTm9kZXNBc1BhcmFncmFwaHM6KE5TQXJyYXkg
Kilub2RlczsKIAogLSAodm9pZClyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50OihET01Eb2N1
bWVudEZyYWdtZW50ICopZnJhZ21lbnQgc2VsZWN0UmVwbGFjZW1lbnQ6KEJPT0wpc2VsZWN0UmVw
bGFjZW1lbnQgc21hcnRSZXBsYWNlOihCT09MKXNtYXJ0UmVwbGFjZSBtYXRjaFN0eWxlOihCT09M
KW1hdGNoU3R5bGU7CiAtICh2b2lkKXJlcGxhY2VTZWxlY3Rpb25XaXRoTm9kZTooRE9NTm9kZSAq
KW5vZGUgc2VsZWN0UmVwbGFjZW1lbnQ6KEJPT0wpc2VsZWN0UmVwbGFjZW1lbnQgc21hcnRSZXBs
YWNlOihCT09MKXNtYXJ0UmVwbGFjZTsKSW5kZXg6IFdlYkNvcmUva3dxL1dlYkNvcmVCcmlkZ2Uu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL1dlYkNvcmVCcmlk
Z2UubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDMyCmRpZmYgLXAgLXUgLXIxLjQzMiBXZWJD
b3JlL2t3cS9XZWJDb3JlQnJpZGdlLm1tCi0tLSBXZWJDb3JlL2t3cS9XZWJDb3JlQnJpZGdlLm1t
CTE5IE5vdiAyMDA1IDAxOjI2OjQ4IC0wMDAwCTEuNDMyCisrKyBXZWJDb3JlL2t3cS9XZWJDb3Jl
QnJpZGdlLm1tCTI3IE5vdiAyMDA1IDA4OjQyOjA1IC0wMDAwCkBAIC0xODc0LDYgKzE4NzQsMjIg
QEAgc3RhdGljIEhUTUxGb3JtRWxlbWVudEltcGwgKmZvcm1FbGVtZW50RgogICAgIHJldHVybiBb
RE9NRG9jdW1lbnRGcmFnbWVudCBfZG9jdW1lbnRGcmFnbWVudFdpdGhJbXBsOmNyZWF0ZUZyYWdt
ZW50RnJvbVRleHQoX3BhcnQtPnhtbERvY0ltcGwoKSwgUVN0cmluZzo6ZnJvbU5TU3RyaW5nKHRl
eHQpKV07CiB9CiAKKy0gKERPTURvY3VtZW50RnJhZ21lbnQgKilkb2N1bWVudEZyYWdtZW50V2l0
aE5vZGVzQXNQYXJhZ3JhcGhzOihOU0FycmF5ICopbm9kZXMKK3sKKyAgICBOU0VudW1lcmF0b3Ig
Km5vZGVFbnVtID0gW25vZGVzIG9iamVjdEVudW1lcmF0b3JdOworICAgIERPTU5vZGUgKm5vZGU7
CisgICAgUVB0ckxpc3Q8RE9NOjpOb2RlSW1wbD4gbm9kZUxpc3Q7CisgICAgCisgICAgaWYgKCFf
cGFydCB8fCAhX3BhcnQtPnhtbERvY0ltcGwoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgCisg
ICAgd2hpbGUgKChub2RlID0gW25vZGVFbnVtIG5leHRPYmplY3RdKSkgeworICAgICAgICBub2Rl
TGlzdC5hcHBlbmQoW25vZGUgX25vZGVJbXBsXSk7CisgICAgfQorICAgIAorICAgIHJldHVybiBb
RE9NRG9jdW1lbnRGcmFnbWVudCBfZG9jdW1lbnRGcmFnbWVudFdpdGhJbXBsOmNyZWF0ZUZyYWdt
ZW50RnJvbU5vZGVMaXN0KF9wYXJ0LT54bWxEb2NJbXBsKCksICZub2RlTGlzdCldOworfQorCiAt
ICh2b2lkKXJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQ6KERPTURvY3VtZW50RnJhZ21lbnQg
KilmcmFnbWVudCBzZWxlY3RSZXBsYWNlbWVudDooQk9PTClzZWxlY3RSZXBsYWNlbWVudCBzbWFy
dFJlcGxhY2U6KEJPT0wpc21hcnRSZXBsYWNlIG1hdGNoU3R5bGU6KEJPT0wpbWF0Y2hTdHlsZQog
ewogICAgIGlmICghcGFydEhhc1NlbGVjdGlvbihzZWxmKSB8fCAhZnJhZ21lbnQpCkluZGV4OiBX
ZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxWaWV3Lm0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYktpdC9XZWJWaWV3LnN1YnByb2ovV2ViSFRNTFZpZXcubSx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS40NzgKZGlmZiAtcCAtdSAtcjEuNDc4IFdlYktpdC9XZWJWaWV3LnN1YnBy
b2ovV2ViSFRNTFZpZXcubQotLS0gV2ViS2l0L1dlYlZpZXcuc3VicHJvai9XZWJIVE1MVmlldy5t
CTExIE5vdiAyMDA1IDAxOjE1OjM3IC0wMDAwCTEuNDc4CisrKyBXZWJLaXQvV2ViVmlldy5zdWJw
cm9qL1dlYkhUTUxWaWV3Lm0JMjcgTm92IDIwMDUgMDg6NDI6MjIgLTAwMDAKQEAgLTI3MywxMCAr
MjczLDExIEBAIHZvaWQgKl9OU1NvZnRMaW5raW5nR2V0RnJhbWV3b3JrRnVuY1B0cigKIAogLSAo
RE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50V2l0aFBhdGhzOihOU0FycmF5
ICopcGF0aHMKIHsKLSAgICBET01Eb2N1bWVudEZyYWdtZW50ICpmcmFnbWVudCA9IFtbW3NlbGYg
X2JyaWRnZV0gRE9NRG9jdW1lbnRdIGNyZWF0ZURvY3VtZW50RnJhZ21lbnRdOworICAgIERPTURv
Y3VtZW50RnJhZ21lbnQgKmZyYWdtZW50OwogICAgIE5TQXJyYXkgKmltYWdlTUlNRVR5cGVzID0g
W1tXZWJJbWFnZVJlbmRlcmVyRmFjdG9yeSBzaGFyZWRGYWN0b3J5XSBzdXBwb3J0ZWRNSU1FVHlw
ZXNdOwogICAgIE5TRW51bWVyYXRvciAqZW51bWVyYXRvciA9IFtwYXRocyBvYmplY3RFbnVtZXJh
dG9yXTsKICAgICBXZWJEYXRhU291cmNlICpkYXRhU291cmNlID0gW3NlbGYgX2RhdGFTb3VyY2Vd
OworICAgIE5TTXV0YWJsZUFycmF5ICpkb21Ob2RlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRdOwogICAgIE5TU3RyaW5nICpwYXRoOwogICAgIAogICAgIHdoaWxlICgocGF0aCA9IFtl
bnVtZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwpIHsKQEAgLTI4OCwxMiArMjg5LDIwIEBAIHZv
aWQgKl9OU1NvZnRMaW5raW5nR2V0RnJhbWV3b3JrRnVuY1B0cigKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEVuY29kaW5nTmFtZTpuaWwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZyYW1lTmFtZTpuaWxdOwogICAgICAgICAgICAgaWYgKHJlc291cmNlKSB7Ci0gICAgICAg
ICAgICAgICAgW2ZyYWdtZW50IGFwcGVuZENoaWxkOltkYXRhU291cmNlIF9pbWFnZUVsZW1lbnRX
aXRoSW1hZ2VSZXNvdXJjZTpyZXNvdXJjZV1dOworICAgICAgICAgICAgICAgIFtkb21Ob2RlcyBh
ZGRPYmplY3Q6W2RhdGFTb3VyY2UgX2ltYWdlRWxlbWVudFdpdGhJbWFnZVJlc291cmNlOnJlc291
cmNlXV07CiAgICAgICAgICAgICAgICAgW3Jlc291cmNlIHJlbGVhc2VdOwogICAgICAgICAgICAg
fQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gTm9uLWltYWdlIGZpbGUgdHlwZXMK
KyAgICAgICAgICAgIE5TU3RyaW5nICp1cmwgPSBbW1tOU1VSTCBmaWxlVVJMV2l0aFBhdGg6cGF0
aF0gX3dlYmtpdF9jYW5vbmljYWxpemVdIF93ZWJfdXNlclZpc2libGVTdHJpbmddOworICAgICAg
ICAgICAgW2RvbU5vZGVzIGFkZE9iamVjdDpbW1tzZWxmIF9icmlkZ2VdIERPTURvY3VtZW50XSBj
cmVhdGVUZXh0Tm9kZTogdXJsXV07CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgZnJhZ21l
bnQgPSBbW3NlbGYgX2JyaWRnZV0gZG9jdW1lbnRGcmFnbWVudFdpdGhOb2Rlc0FzUGFyYWdyYXBo
czpkb21Ob2Rlc107IAorICAgIAorICAgIFtkb21Ob2RlcyByZWxlYXNlXTsKKyAgICAKICAgICBy
ZXR1cm4gW2ZyYWdtZW50IGZpcnN0Q2hpbGRdICE9IG5pbCA/IGZyYWdtZW50IDogbmlsOwogfQog
Cg==
</data>
<flag name="review"
          id="894"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4825</attachid>
            <date>2005-11-27 20:24:03 -0800</date>
            <delta_ts>2005-11-29 07:00:54 -0800</delta_ts>
            <desc>Proposed patch 5</desc>
            <filename>bug-4726-patch-5.txt</filename>
            <type>text/plain</type>
            <size>6515</size>
            <attacher name="Andrew Wellington">andrew</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9tYXJrdXAuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VkaXRpbmcvbWFya3VwLmNwcCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS40MApkaWZmIC1wIC11IC1yMS40MCBXZWJDb3JlL2todG1sL2VkaXRpbmcv
bWFya3VwLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL21hcmt1cC5jcHAJMjEgTm92IDIw
MDUgMDE6MjA6MDQgLTAwMDAJMS40MAorKysgV2ViQ29yZS9raHRtbC9lZGl0aW5nL21hcmt1cC5j
cHAJMjggTm92IDIwMDUgMDM6NTI6MjkgLTAwMDAKQEAgLTYwMCw0ICs2MDAsMzMgQEAgRE9NOjpE
b2N1bWVudEZyYWdtZW50SW1wbCAqY3JlYXRlRnJhZ21lbgogICAgIHJldHVybiBmcmFnbWVudDsK
IH0KIAorRE9NOjpEb2N1bWVudEZyYWdtZW50SW1wbCAqY3JlYXRlRnJhZ21lbnRGcm9tTm9kZUxp
c3QoRE9NOjpEb2N1bWVudEltcGwgKmRvY3VtZW50LCBjb25zdCBRUHRyTGlzdDxET006Ok5vZGVJ
bXBsPiAmbm9kZUxpc3QpCit7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgCisgICAgRG9jdW1lbnRGcmFnbWVudEltcGwgKmZyYWdtZW50ID0gZG9jdW1lbnQtPmNy
ZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAgICBmcmFnbWVudC0+cmVmKCk7CisgICAgCisgICAg
RWxlbWVudEltcGwgKmVsZW1lbnQ7CisgICAgaW50IGV4Y2VwdGlvbkNvZGUgPSAwOworICAgIGZv
ciAoUVB0ckxpc3RJdGVyYXRvcjxOb2RlSW1wbD4gaShub2RlTGlzdCk7IGkuY3VycmVudCgpOyAr
K2kpIHsKKyAgICAgICAgZWxlbWVudCA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRv
Y3VtZW50KTsKKyAgICAgICAgZWxlbWVudC0+cmVmKCk7CisgICAgICAgIGVsZW1lbnQtPmFwcGVu
ZENoaWxkKGkuY3VycmVudCgpLCBleGNlcHRpb25Db2RlKTsKKyAgICAgICAgQVNTRVJUKGV4Y2Vw
dGlvbkNvZGUgPT0gMCk7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LCBl
eGNlcHRpb25Db2RlKTsKKyAgICAgICAgQVNTRVJUKGV4Y2VwdGlvbkNvZGUgPT0gMCk7CisgICAg
ICAgIGVsZW1lbnQtPmRlcmVmKCk7CisgICAgfQorICAgIAorICAgIC8vIFRyaWNrIHRvIGdldCB0
aGUgZnJhZ21lbnQgYmFjayB0byB0aGUgZmxvYXRpbmcgc3RhdGUsIHdpdGggMAorICAgIC8vIHJl
ZnMgYnV0IG5vdCBkZXN0cm95ZWQuCisgICAgZnJhZ21lbnQtPnNldFBhcmVudChkb2N1bWVudCk7
CisgICAgZnJhZ21lbnQtPmRlcmVmKCk7CisgICAgZnJhZ21lbnQtPnNldFBhcmVudCgwKTsKKyAg
ICAKKyAgICByZXR1cm4gZnJhZ21lbnQ7Cit9CisKIH0KSW5kZXg6IFdlYkNvcmUva2h0bWwvZWRp
dGluZy9tYXJrdXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRt
bC9lZGl0aW5nL21hcmt1cC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEKZGlmZiAtcCAtdSAt
cjEuMSBXZWJDb3JlL2todG1sL2VkaXRpbmcvbWFya3VwLmgKLS0tIFdlYkNvcmUva2h0bWwvZWRp
dGluZy9tYXJrdXAuaAkxNCBEZWMgMjAwNCAwMDoxMDowOSAtMDAwMAkxLjEKKysrIFdlYkNvcmUv
a2h0bWwvZWRpdGluZy9tYXJrdXAuaAkyOCBOb3YgMjAwNSAwMzo1MjozMSAtMDAwMApAQCAtMzUs
NiArMzUsNyBAQCBlbnVtIEVDaGlsZHJlbk9ubHkgeyBJbmNsdWRlTm9kZSwgQ2hpbGRyCiAKIERP
TTo6RG9jdW1lbnRGcmFnbWVudEltcGwgKmNyZWF0ZUZyYWdtZW50RnJvbVRleHQoRE9NOjpEb2N1
bWVudEltcGwgKmRvY3VtZW50LCBjb25zdCBRU3RyaW5nICZ0ZXh0KTsKIERPTTo6RG9jdW1lbnRG
cmFnbWVudEltcGwgKmNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cChET006OkRvY3VtZW50SW1wbCAq
ZG9jdW1lbnQsIGNvbnN0IFFTdHJpbmcgJm1hcmt1cCwgY29uc3QgUVN0cmluZyAmYmFzZVVSTCk7
CitET006OkRvY3VtZW50RnJhZ21lbnRJbXBsICpjcmVhdGVGcmFnbWVudEZyb21Ob2RlTGlzdChE
T006OkRvY3VtZW50SW1wbCAqZG9jdW1lbnQsIGNvbnN0IFFQdHJMaXN0PERPTTo6Tm9kZUltcGw+
ICZub2RlTGlzdCk7CiAKIFFTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IERPTTo6UmFuZ2VJbXBs
ICpyYW5nZSwKICAgICBRUHRyTGlzdDxET006Ok5vZGVJbXBsPiAqbm9kZXMgPSAwLCBFQW5ub3Rh
dGVGb3JJbnRlcmNoYW5nZSA9IERvTm90QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSk7CkluZGV4OiBX
ZWJDb3JlL2t3cS9XZWJDb3JlQnJpZGdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva3dxL1dlYkNvcmVCcmlkZ2UuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zNTAK
ZGlmZiAtcCAtdSAtcjEuMzUwIFdlYkNvcmUva3dxL1dlYkNvcmVCcmlkZ2UuaAotLS0gV2ViQ29y
ZS9rd3EvV2ViQ29yZUJyaWRnZS5oCTI3IE5vdiAyMDA1IDAxOjUwOjQ5IC0wMDAwCTEuMzUwCisr
KyBXZWJDb3JlL2t3cS9XZWJDb3JlQnJpZGdlLmgJMjggTm92IDIwMDUgMDM6NTI6MzMgLTAwMDAK
QEAgLTQwMCw2ICs0MDAsNyBAQCB0eXBlZGVmIGVudW0KIAogLSAoRE9NRG9jdW1lbnRGcmFnbWVu
dCAqKWRvY3VtZW50RnJhZ21lbnRXaXRoTWFya3VwU3RyaW5nOihOU1N0cmluZyAqKW1hcmt1cFN0
cmluZyBiYXNlVVJMU3RyaW5nOihOU1N0cmluZyAqKWJhc2VVUkxTdHJpbmc7CiAtIChET01Eb2N1
bWVudEZyYWdtZW50ICopZG9jdW1lbnRGcmFnbWVudFdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQ7
CistIChET01Eb2N1bWVudEZyYWdtZW50ICopZG9jdW1lbnRGcmFnbWVudFdpdGhOb2Rlc0FzUGFy
YWdyYXBoczooTlNBcnJheSAqKW5vZGVzOwogCiAtICh2b2lkKXJlcGxhY2VTZWxlY3Rpb25XaXRo
RnJhZ21lbnQ6KERPTURvY3VtZW50RnJhZ21lbnQgKilmcmFnbWVudCBzZWxlY3RSZXBsYWNlbWVu
dDooQk9PTClzZWxlY3RSZXBsYWNlbWVudCBzbWFydFJlcGxhY2U6KEJPT0wpc21hcnRSZXBsYWNl
IG1hdGNoU3R5bGU6KEJPT0wpbWF0Y2hTdHlsZTsKIC0gKHZvaWQpcmVwbGFjZVNlbGVjdGlvbldp
dGhOb2RlOihET01Ob2RlICopbm9kZSBzZWxlY3RSZXBsYWNlbWVudDooQk9PTClzZWxlY3RSZXBs
YWNlbWVudCBzbWFydFJlcGxhY2U6KEJPT0wpc21hcnRSZXBsYWNlOwpJbmRleDogV2ViQ29yZS9r
d3EvV2ViQ29yZUJyaWRnZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9rd3EvV2ViQ29yZUJyaWRnZS5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40MzQKZGlmZiAt
cCAtdSAtcjEuNDM0IFdlYkNvcmUva3dxL1dlYkNvcmVCcmlkZ2UubW0KLS0tIFdlYkNvcmUva3dx
L1dlYkNvcmVCcmlkZ2UubW0JMjcgTm92IDIwMDUgMDc6NTQ6NTMgLTAwMDAJMS40MzQKKysrIFdl
YkNvcmUva3dxL1dlYkNvcmVCcmlkZ2UubW0JMjggTm92IDIwMDUgMDM6NTI6MzUgLTAwMDAKQEAg
LTE4NzksNiArMTg3OSwyMiBAQCBzdGF0aWMgSFRNTEZvcm1FbGVtZW50SW1wbCAqZm9ybUVsZW1l
bnRGCiAgICAgcmV0dXJuIFtET01Eb2N1bWVudEZyYWdtZW50IF9kb2N1bWVudEZyYWdtZW50V2l0
aEltcGw6Y3JlYXRlRnJhZ21lbnRGcm9tVGV4dChfcGFydC0+eG1sRG9jSW1wbCgpLCBRU3RyaW5n
Ojpmcm9tTlNTdHJpbmcodGV4dCkpXTsKIH0KIAorLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKWRv
Y3VtZW50RnJhZ21lbnRXaXRoTm9kZXNBc1BhcmFncmFwaHM6KE5TQXJyYXkgKilub2Rlcworewor
ICAgIE5TRW51bWVyYXRvciAqbm9kZUVudW0gPSBbbm9kZXMgb2JqZWN0RW51bWVyYXRvcl07Cisg
ICAgRE9NTm9kZSAqbm9kZTsKKyAgICBRUHRyTGlzdDxET006Ok5vZGVJbXBsPiBub2RlTGlzdDsK
KyAgICAKKyAgICBpZiAoIV9wYXJ0IHx8ICFfcGFydC0+eG1sRG9jSW1wbCgpKQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICAKKyAgICB3aGlsZSAoKG5vZGUgPSBbbm9kZUVudW0gbmV4dE9iamVjdF0p
KSB7CisgICAgICAgIG5vZGVMaXN0LmFwcGVuZChbbm9kZSBfbm9kZUltcGxdKTsKKyAgICB9Cisg
ICAgCisgICAgcmV0dXJuIFtET01Eb2N1bWVudEZyYWdtZW50IF9kb2N1bWVudEZyYWdtZW50V2l0
aEltcGw6Y3JlYXRlRnJhZ21lbnRGcm9tTm9kZUxpc3QoX3BhcnQtPnhtbERvY0ltcGwoKSwgbm9k
ZUxpc3QpXTsKK30KKwogLSAodm9pZClyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50OihET01E
b2N1bWVudEZyYWdtZW50ICopZnJhZ21lbnQgc2VsZWN0UmVwbGFjZW1lbnQ6KEJPT0wpc2VsZWN0
UmVwbGFjZW1lbnQgc21hcnRSZXBsYWNlOihCT09MKXNtYXJ0UmVwbGFjZSBtYXRjaFN0eWxlOihC
T09MKW1hdGNoU3R5bGUKIHsKICAgICBpZiAoIXBhcnRIYXNTZWxlY3Rpb24oc2VsZikgfHwgIWZy
YWdtZW50KQpJbmRleDogV2ViS2l0L1dlYlZpZXcuc3VicHJvai9XZWJIVE1MVmlldy5tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxW
aWV3Lm0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDc5CmRpZmYgLXAgLXUgLXIxLjQ3OSBXZWJL
aXQvV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxWaWV3Lm0KLS0tIFdlYktpdC9XZWJWaWV3LnN1YnBy
b2ovV2ViSFRNTFZpZXcubQkyNyBOb3YgMjAwNSAwNjozNjozMCAtMDAwMAkxLjQ3OQorKysgV2Vi
S2l0L1dlYlZpZXcuc3VicHJvai9XZWJIVE1MVmlldy5tCTI4IE5vdiAyMDA1IDAzOjUyOjM5IC0w
MDAwCkBAIC0yNzMsMTAgKzI3MywxMSBAQCB2b2lkICpfTlNTb2Z0TGlua2luZ0dldEZyYW1ld29y
a0Z1bmNQdHIoCiAKIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9jdW1lbnRGcmFnbWVudFdp
dGhQYXRoczooTlNBcnJheSAqKXBhdGhzCiB7Ci0gICAgRE9NRG9jdW1lbnRGcmFnbWVudCAqZnJh
Z21lbnQgPSBbW1tzZWxmIF9icmlkZ2VdIERPTURvY3VtZW50XSBjcmVhdGVEb2N1bWVudEZyYWdt
ZW50XTsKKyAgICBET01Eb2N1bWVudEZyYWdtZW50ICpmcmFnbWVudDsKICAgICBOU0FycmF5ICpp
bWFnZU1JTUVUeXBlcyA9IFtbV2ViSW1hZ2VSZW5kZXJlckZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0g
c3VwcG9ydGVkTUlNRVR5cGVzXTsKICAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3IgPSBbcGF0
aHMgb2JqZWN0RW51bWVyYXRvcl07CiAgICAgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZSA9IFtz
ZWxmIF9kYXRhU291cmNlXTsKKyAgICBOU011dGFibGVBcnJheSAqZG9tTm9kZXMgPSBbW05TTXV0
YWJsZUFycmF5IGFsbG9jXSBpbml0XTsKICAgICBOU1N0cmluZyAqcGF0aDsKICAgICAKICAgICB3
aGlsZSAoKHBhdGggPSBbZW51bWVyYXRvciBuZXh0T2JqZWN0XSkgIT0gbmlsKSB7CkBAIC0yODgs
MTIgKzI4OSwyMCBAQCB2b2lkICpfTlNTb2Z0TGlua2luZ0dldEZyYW1ld29ya0Z1bmNQdHIoCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRF
bmNvZGluZ05hbWU6bmlsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmcmFtZU5hbWU6bmlsXTsKICAgICAgICAgICAgIGlmIChyZXNv
dXJjZSkgewotICAgICAgICAgICAgICAgIFtmcmFnbWVudCBhcHBlbmRDaGlsZDpbZGF0YVNvdXJj
ZSBfaW1hZ2VFbGVtZW50V2l0aEltYWdlUmVzb3VyY2U6cmVzb3VyY2VdXTsKKyAgICAgICAgICAg
ICAgICBbZG9tTm9kZXMgYWRkT2JqZWN0OltkYXRhU291cmNlIF9pbWFnZUVsZW1lbnRXaXRoSW1h
Z2VSZXNvdXJjZTpyZXNvdXJjZV1dOwogICAgICAgICAgICAgICAgIFtyZXNvdXJjZSByZWxlYXNl
XTsKICAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIE5vbi1p
bWFnZSBmaWxlIHR5cGVzCisgICAgICAgICAgICBOU1N0cmluZyAqdXJsID0gW1tbTlNVUkwgZmls
ZVVSTFdpdGhQYXRoOnBhdGhdIF93ZWJraXRfY2Fub25pY2FsaXplXSBfd2ViX3VzZXJWaXNpYmxl
U3RyaW5nXTsKKyAgICAgICAgICAgIFtkb21Ob2RlcyBhZGRPYmplY3Q6W1tbc2VsZiBfYnJpZGdl
XSBET01Eb2N1bWVudF0gY3JlYXRlVGV4dE5vZGU6IHVybF1dOwogICAgICAgICB9CiAgICAgfQog
ICAgIAorICAgIGZyYWdtZW50ID0gW1tzZWxmIF9icmlkZ2VdIGRvY3VtZW50RnJhZ21lbnRXaXRo
Tm9kZXNBc1BhcmFncmFwaHM6ZG9tTm9kZXNdOyAKKyAgICAKKyAgICBbZG9tTm9kZXMgcmVsZWFz
ZV07CisgICAgCiAgICAgcmV0dXJuIFtmcmFnbWVudCBmaXJzdENoaWxkXSAhPSBuaWwgPyBmcmFn
bWVudCA6IG5pbDsKIH0KIAo=
</data>
<flag name="review"
          id="901"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4826</attachid>
            <date>2005-11-27 20:24:57 -0800</date>
            <delta_ts>2005-11-29 07:01:52 -0800</delta_ts>
            <desc>Proposed patch 5 alternate</desc>
            <filename>bug-4726-patch-5-alt.txt</filename>
            <type>text/plain</type>
            <size>8753</size>
            <attacher name="Andrew Wellington">andrew</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUva2h0bWwvZWRpdGluZy9tYXJrdXAuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VkaXRpbmcvbWFya3VwLmNwcCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS40MApkaWZmIC1wIC11IC1yMS40MCBXZWJDb3JlL2todG1sL2VkaXRpbmcv
bWFya3VwLmNwcAotLS0gV2ViQ29yZS9raHRtbC9lZGl0aW5nL21hcmt1cC5jcHAJMjEgTm92IDIw
MDUgMDE6MjA6MDQgLTAwMDAJMS40MAorKysgV2ViQ29yZS9raHRtbC9lZGl0aW5nL21hcmt1cC5j
cHAJMjggTm92IDIwMDUgMDQ6Mjc6NDYgLTAwMDAKQEAgLTUxMSw3ICs1MTEsNyBAQCBRU3RyaW5n
IGNyZWF0ZU1hcmt1cChjb25zdCBET006Ok5vZGVJbXBsCiAgICAgcmV0dXJuIG1hcmt1cChub2Rl
LCBpbmNsdWRlQ2hpbGRyZW4sIGZhbHNlLCBub2Rlcyk7CiB9CiAKLXN0YXRpYyB2b2lkIGNyZWF0
ZVBhcmFncmFwaENvbnRlbnRzRnJvbVN0cmluZyhET006OkRvY3VtZW50SW1wbCAqZG9jdW1lbnQs
IEVsZW1lbnRJbXBsICpwYXJhZ3JhcGgsIGNvbnN0IFFTdHJpbmcgJnN0cmluZykKK3N0YXRpYyB2
b2lkIGNyZWF0ZVBhcmFncmFwaENvbnRlbnRzRnJvbVN0cmluZyhET006OkRvY3VtZW50SW1wbCAq
ZG9jdW1lbnQsIERvY3VtZW50RnJhZ21lbnRJbXBsICpwYXJhZ3JhcGgsIGNvbnN0IFFTdHJpbmcg
JnN0cmluZykKIHsKICAgICBpbnQgZXhjZXB0aW9uQ29kZSA9IDA7CiAgICAgaWYgKHN0cmluZy5p
c0VtcHR5KCkpIHsKQEAgLTU1OCw5ICs1NTgsOCBAQCBET006OkRvY3VtZW50RnJhZ21lbnRJbXBs
ICpjcmVhdGVGcmFnbWVuCiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIDA7CiAK
LSAgICBEb2N1bWVudEZyYWdtZW50SW1wbCAqZnJhZ21lbnQgPSBkb2N1bWVudC0+Y3JlYXRlRG9j
dW1lbnRGcmFnbWVudCgpOwotICAgIGZyYWdtZW50LT5yZWYoKTsKLSAgICAKKyAgICBRUHRyTGlz
dDxET006Ok5vZGVJbXBsPiBub2RlTGlzdDsKKyAgICAKICAgICBpZiAoIXRleHQuaXNFbXB0eSgp
KSB7CiAgICAgICAgIFFTdHJpbmcgc3RyaW5nID0gdGV4dDsKIApAQCAtNTczLDI0ICs1NzIsNTEg
QEAgRE9NOjpEb2N1bWVudEZyYWdtZW50SW1wbCAqY3JlYXRlRnJhZ21lbgogICAgICAgICAgICAg
bGlzdC5wb3BfZnJvbnQoKTsKIAogICAgICAgICAgICAgaW50IGV4Y2VwdGlvbkNvZGUgPSAwOwot
ICAgICAgICAgICAgRWxlbWVudEltcGwgKmVsZW1lbnQ7CisgICAgICAgICAgICBEb2N1bWVudEZy
YWdtZW50SW1wbCAqZWxlbWVudCA9IGRvY3VtZW50LT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7
CisgICAgICAgICAgICBlbGVtZW50LT5yZWYoKTsKICAgICAgICAgICAgIGlmIChzLmlzRW1wdHko
KSAmJiBsaXN0LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIC8vIEZvciBsYXN0IGxpbmUs
IHVzZSB0aGUgIm1hZ2ljIEJSIiByYXRoZXIgdGhhbiBhIFAuCi0gICAgICAgICAgICAgICAgZWxl
bWVudCA9IGRvY3VtZW50LT5jcmVhdGVFbGVtZW50TlMoeGh0bWxOYW1lc3BhY2VVUkksICJiciIs
IGV4Y2VwdGlvbkNvZGUpOworICAgICAgICAgICAgICAgIEVsZW1lbnRJbXBsICptYWdpY0JyID0g
ZG9jdW1lbnQtPmNyZWF0ZUVsZW1lbnROUyh4aHRtbE5hbWVzcGFjZVVSSSwgImJyIiwgZXhjZXB0
aW9uQ29kZSk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGV4Y2VwdGlvbkNvZGUgPT0gMCk7Ci0g
ICAgICAgICAgICAgICAgZWxlbWVudC0+cmVmKCk7Ci0gICAgICAgICAgICAgICAgZWxlbWVudC0+
c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgQXBwbGVJbnRlcmNoYW5nZU5ld2xpbmUpOyAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIG1hZ2ljQnItPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsIEFw
cGxlSW50ZXJjaGFuZ2VOZXdsaW5lKTsKKyAgICAgICAgICAgICAgICBlbGVtZW50LT5hcHBlbmRD
aGlsZChtYWdpY0JyLCBleGNlcHRpb25Db2RlKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoZXhj
ZXB0aW9uQ29kZSA9PSAwKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
ZWxlbWVudCA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KTsKLSAgICAg
ICAgICAgICAgICBlbGVtZW50LT5yZWYoKTsKLSAgICAgICAgICAgICAgICBjcmVhdGVQYXJhZ3Jh
cGhDb250ZW50c0Zyb21TdHJpbmcoZG9jdW1lbnQsIGVsZW1lbnQsIHMpOworICAgICAgICAgICAg
ICAgIGNyZWF0ZVBhcmFncmFwaENvbnRlbnRzRnJvbVN0cmluZyhkb2N1bWVudCwgZWxlbWVudCwg
cyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoZWxl
bWVudCwgZXhjZXB0aW9uQ29kZSk7Ci0gICAgICAgICAgICBBU1NFUlQoZXhjZXB0aW9uQ29kZSA9
PSAwKTsKLSAgICAgICAgICAgIGVsZW1lbnQtPmRlcmVmKCk7CisgICAgICAgICAgICBub2RlTGlz
dC5hcHBlbmQoZWxlbWVudCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgRG9jdW1lbnRG
cmFnbWVudEltcGwgKmZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tTm9kZUxpc3QoZG9jdW1l
bnQsIG5vZGVMaXN0KTsKKyAgICAgICAgCisgICAgZm9yIChRUHRyTGlzdEl0ZXJhdG9yPE5vZGVJ
bXBsPiBpKG5vZGVMaXN0KTsgaS5jdXJyZW50KCk7ICsraSkgeworICAgICAgICBpLmN1cnJlbnQo
KS0+ZGVyZWYoKTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIGZyYWdtZW50OworfQorCitET006
OkRvY3VtZW50RnJhZ21lbnRJbXBsICpjcmVhdGVGcmFnbWVudEZyb21Ob2RlTGlzdChET006OkRv
Y3VtZW50SW1wbCAqZG9jdW1lbnQsIGNvbnN0IFFQdHJMaXN0PERPTTo6Tm9kZUltcGw+ICZub2Rl
TGlzdCkKK3sKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKyAgICAKKyAg
ICBEb2N1bWVudEZyYWdtZW50SW1wbCAqZnJhZ21lbnQgPSBkb2N1bWVudC0+Y3JlYXRlRG9jdW1l
bnRGcmFnbWVudCgpOworICAgIGZyYWdtZW50LT5yZWYoKTsKKyAgICAKKyAgICBFbGVtZW50SW1w
bCAqZWxlbWVudDsKKyAgICBpbnQgZXhjZXB0aW9uQ29kZSA9IDA7CisgICAgZm9yIChRUHRyTGlz
dEl0ZXJhdG9yPE5vZGVJbXBsPiBpKG5vZGVMaXN0KTsgaS5jdXJyZW50KCk7ICsraSkgeworICAg
ICAgICBlbGVtZW50ID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoZG9jdW1lbnQpOwor
ICAgICAgICBlbGVtZW50LT5yZWYoKTsKKyAgICAgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQoaS5j
dXJyZW50KCksIGV4Y2VwdGlvbkNvZGUpOworICAgICAgICBBU1NFUlQoZXhjZXB0aW9uQ29kZSA9
PSAwKTsKKyAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQsIGV4Y2VwdGlvbkNv
ZGUpOworICAgICAgICBBU1NFUlQoZXhjZXB0aW9uQ29kZSA9PSAwKTsKKyAgICAgICAgZWxlbWVu
dC0+ZGVyZWYoKTsKKyAgICB9CisgICAgCiAgICAgLy8gVHJpY2sgdG8gZ2V0IHRoZSBmcmFnbWVu
dCBiYWNrIHRvIHRoZSBmbG9hdGluZyBzdGF0ZSwgd2l0aCAwCiAgICAgLy8gcmVmcyBidXQgbm90
IGRlc3Ryb3llZC4KICAgICBmcmFnbWVudC0+c2V0UGFyZW50KGRvY3VtZW50KTsKSW5kZXg6IFdl
YkNvcmUva2h0bWwvZWRpdGluZy9tYXJrdXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViQ29yZS9raHRtbC9lZGl0aW5nL21hcmt1cC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjEKZGlmZiAtcCAtdSAtcjEuMSBXZWJDb3JlL2todG1sL2VkaXRpbmcvbWFya3VwLmgKLS0tIFdl
YkNvcmUva2h0bWwvZWRpdGluZy9tYXJrdXAuaAkxNCBEZWMgMjAwNCAwMDoxMDowOSAtMDAwMAkx
LjEKKysrIFdlYkNvcmUva2h0bWwvZWRpdGluZy9tYXJrdXAuaAkyOCBOb3YgMjAwNSAwNDoyNzo0
NyAtMDAwMApAQCAtMzUsNiArMzUsNyBAQCBlbnVtIEVDaGlsZHJlbk9ubHkgeyBJbmNsdWRlTm9k
ZSwgQ2hpbGRyCiAKIERPTTo6RG9jdW1lbnRGcmFnbWVudEltcGwgKmNyZWF0ZUZyYWdtZW50RnJv
bVRleHQoRE9NOjpEb2N1bWVudEltcGwgKmRvY3VtZW50LCBjb25zdCBRU3RyaW5nICZ0ZXh0KTsK
IERPTTo6RG9jdW1lbnRGcmFnbWVudEltcGwgKmNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cChET006
OkRvY3VtZW50SW1wbCAqZG9jdW1lbnQsIGNvbnN0IFFTdHJpbmcgJm1hcmt1cCwgY29uc3QgUVN0
cmluZyAmYmFzZVVSTCk7CitET006OkRvY3VtZW50RnJhZ21lbnRJbXBsICpjcmVhdGVGcmFnbWVu
dEZyb21Ob2RlTGlzdChET006OkRvY3VtZW50SW1wbCAqZG9jdW1lbnQsIGNvbnN0IFFQdHJMaXN0
PERPTTo6Tm9kZUltcGw+ICZub2RlTGlzdCk7CiAKIFFTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0
IERPTTo6UmFuZ2VJbXBsICpyYW5nZSwKICAgICBRUHRyTGlzdDxET006Ok5vZGVJbXBsPiAqbm9k
ZXMgPSAwLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSA9IERvTm90QW5ub3RhdGVGb3JJbnRlcmNo
YW5nZSk7CkluZGV4OiBXZWJDb3JlL2t3cS9XZWJDb3JlQnJpZGdlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL1dlYkNvcmVCcmlkZ2UuaCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4zNTAKZGlmZiAtcCAtdSAtcjEuMzUwIFdlYkNvcmUva3dxL1dlYkNvcmVCcmlk
Z2UuaAotLS0gV2ViQ29yZS9rd3EvV2ViQ29yZUJyaWRnZS5oCTI3IE5vdiAyMDA1IDAxOjUwOjQ5
IC0wMDAwCTEuMzUwCisrKyBXZWJDb3JlL2t3cS9XZWJDb3JlQnJpZGdlLmgJMjggTm92IDIwMDUg
MDQ6Mjc6NDkgLTAwMDAKQEAgLTQwMCw2ICs0MDAsNyBAQCB0eXBlZGVmIGVudW0KIAogLSAoRE9N
RG9jdW1lbnRGcmFnbWVudCAqKWRvY3VtZW50RnJhZ21lbnRXaXRoTWFya3VwU3RyaW5nOihOU1N0
cmluZyAqKW1hcmt1cFN0cmluZyBiYXNlVVJMU3RyaW5nOihOU1N0cmluZyAqKWJhc2VVUkxTdHJp
bmc7CiAtIChET01Eb2N1bWVudEZyYWdtZW50ICopZG9jdW1lbnRGcmFnbWVudFdpdGhUZXh0OihO
U1N0cmluZyAqKXRleHQ7CistIChET01Eb2N1bWVudEZyYWdtZW50ICopZG9jdW1lbnRGcmFnbWVu
dFdpdGhOb2Rlc0FzUGFyYWdyYXBoczooTlNBcnJheSAqKW5vZGVzOwogCiAtICh2b2lkKXJlcGxh
Y2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQ6KERPTURvY3VtZW50RnJhZ21lbnQgKilmcmFnbWVudCBz
ZWxlY3RSZXBsYWNlbWVudDooQk9PTClzZWxlY3RSZXBsYWNlbWVudCBzbWFydFJlcGxhY2U6KEJP
T0wpc21hcnRSZXBsYWNlIG1hdGNoU3R5bGU6KEJPT0wpbWF0Y2hTdHlsZTsKIC0gKHZvaWQpcmVw
bGFjZVNlbGVjdGlvbldpdGhOb2RlOihET01Ob2RlICopbm9kZSBzZWxlY3RSZXBsYWNlbWVudDoo
Qk9PTClzZWxlY3RSZXBsYWNlbWVudCBzbWFydFJlcGxhY2U6KEJPT0wpc21hcnRSZXBsYWNlOwpJ
bmRleDogV2ViQ29yZS9rd3EvV2ViQ29yZUJyaWRnZS5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvV2ViQ29yZS9rd3EvV2ViQ29yZUJyaWRnZS5tbSx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS40MzQKZGlmZiAtcCAtdSAtcjEuNDM0IFdlYkNvcmUva3dxL1dlYkNvcmVCcmlkZ2UubW0K
LS0tIFdlYkNvcmUva3dxL1dlYkNvcmVCcmlkZ2UubW0JMjcgTm92IDIwMDUgMDc6NTQ6NTMgLTAw
MDAJMS40MzQKKysrIFdlYkNvcmUva3dxL1dlYkNvcmVCcmlkZ2UubW0JMjggTm92IDIwMDUgMDQ6
Mjc6NTEgLTAwMDAKQEAgLTE4NzksNiArMTg3OSwyMiBAQCBzdGF0aWMgSFRNTEZvcm1FbGVtZW50
SW1wbCAqZm9ybUVsZW1lbnRGCiAgICAgcmV0dXJuIFtET01Eb2N1bWVudEZyYWdtZW50IF9kb2N1
bWVudEZyYWdtZW50V2l0aEltcGw6Y3JlYXRlRnJhZ21lbnRGcm9tVGV4dChfcGFydC0+eG1sRG9j
SW1wbCgpLCBRU3RyaW5nOjpmcm9tTlNTdHJpbmcodGV4dCkpXTsKIH0KIAorLSAoRE9NRG9jdW1l
bnRGcmFnbWVudCAqKWRvY3VtZW50RnJhZ21lbnRXaXRoTm9kZXNBc1BhcmFncmFwaHM6KE5TQXJy
YXkgKilub2RlcworeworICAgIE5TRW51bWVyYXRvciAqbm9kZUVudW0gPSBbbm9kZXMgb2JqZWN0
RW51bWVyYXRvcl07CisgICAgRE9NTm9kZSAqbm9kZTsKKyAgICBRUHRyTGlzdDxET006Ok5vZGVJ
bXBsPiBub2RlTGlzdDsKKyAgICAKKyAgICBpZiAoIV9wYXJ0IHx8ICFfcGFydC0+eG1sRG9jSW1w
bCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICAKKyAgICB3aGlsZSAoKG5vZGUgPSBbbm9kZUVu
dW0gbmV4dE9iamVjdF0pKSB7CisgICAgICAgIG5vZGVMaXN0LmFwcGVuZChbbm9kZSBfbm9kZUlt
cGxdKTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIFtET01Eb2N1bWVudEZyYWdtZW50IF9kb2N1
bWVudEZyYWdtZW50V2l0aEltcGw6Y3JlYXRlRnJhZ21lbnRGcm9tTm9kZUxpc3QoX3BhcnQtPnht
bERvY0ltcGwoKSwgbm9kZUxpc3QpXTsKK30KKwogLSAodm9pZClyZXBsYWNlU2VsZWN0aW9uV2l0
aEZyYWdtZW50OihET01Eb2N1bWVudEZyYWdtZW50ICopZnJhZ21lbnQgc2VsZWN0UmVwbGFjZW1l
bnQ6KEJPT0wpc2VsZWN0UmVwbGFjZW1lbnQgc21hcnRSZXBsYWNlOihCT09MKXNtYXJ0UmVwbGFj
ZSBtYXRjaFN0eWxlOihCT09MKW1hdGNoU3R5bGUKIHsKICAgICBpZiAoIXBhcnRIYXNTZWxlY3Rp
b24oc2VsZikgfHwgIWZyYWdtZW50KQpJbmRleDogV2ViS2l0L1dlYlZpZXcuc3VicHJvai9XZWJI
VE1MVmlldy5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJLaXQvV2ViVmlldy5z
dWJwcm9qL1dlYkhUTUxWaWV3Lm0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDc5CmRpZmYgLXAg
LXUgLXIxLjQ3OSBXZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxWaWV3Lm0KLS0tIFdlYktp
dC9XZWJWaWV3LnN1YnByb2ovV2ViSFRNTFZpZXcubQkyNyBOb3YgMjAwNSAwNjozNjozMCAtMDAw
MAkxLjQ3OQorKysgV2ViS2l0L1dlYlZpZXcuc3VicHJvai9XZWJIVE1MVmlldy5tCTI4IE5vdiAy
MDA1IDA0OjI3OjU0IC0wMDAwCkBAIC0yNzMsMTAgKzI3MywxMSBAQCB2b2lkICpfTlNTb2Z0TGlu
a2luZ0dldEZyYW1ld29ya0Z1bmNQdHIoCiAKIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9j
dW1lbnRGcmFnbWVudFdpdGhQYXRoczooTlNBcnJheSAqKXBhdGhzCiB7Ci0gICAgRE9NRG9jdW1l
bnRGcmFnbWVudCAqZnJhZ21lbnQgPSBbW1tzZWxmIF9icmlkZ2VdIERPTURvY3VtZW50XSBjcmVh
dGVEb2N1bWVudEZyYWdtZW50XTsKKyAgICBET01Eb2N1bWVudEZyYWdtZW50ICpmcmFnbWVudDsK
ICAgICBOU0FycmF5ICppbWFnZU1JTUVUeXBlcyA9IFtbV2ViSW1hZ2VSZW5kZXJlckZhY3Rvcnkg
c2hhcmVkRmFjdG9yeV0gc3VwcG9ydGVkTUlNRVR5cGVzXTsKICAgICBOU0VudW1lcmF0b3IgKmVu
dW1lcmF0b3IgPSBbcGF0aHMgb2JqZWN0RW51bWVyYXRvcl07CiAgICAgV2ViRGF0YVNvdXJjZSAq
ZGF0YVNvdXJjZSA9IFtzZWxmIF9kYXRhU291cmNlXTsKKyAgICBOU011dGFibGVBcnJheSAqZG9t
Tm9kZXMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XTsKICAgICBOU1N0cmluZyAqcGF0
aDsKICAgICAKICAgICB3aGlsZSAoKHBhdGggPSBbZW51bWVyYXRvciBuZXh0T2JqZWN0XSkgIT0g
bmlsKSB7CkBAIC0yODgsMTIgKzI4OSwyMCBAQCB2b2lkICpfTlNTb2Z0TGlua2luZ0dldEZyYW1l
d29ya0Z1bmNQdHIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRleHRFbmNvZGluZ05hbWU6bmlsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZU5hbWU6bmlsXTsKICAgICAg
ICAgICAgIGlmIChyZXNvdXJjZSkgewotICAgICAgICAgICAgICAgIFtmcmFnbWVudCBhcHBlbmRD
aGlsZDpbZGF0YVNvdXJjZSBfaW1hZ2VFbGVtZW50V2l0aEltYWdlUmVzb3VyY2U6cmVzb3VyY2Vd
XTsKKyAgICAgICAgICAgICAgICBbZG9tTm9kZXMgYWRkT2JqZWN0OltkYXRhU291cmNlIF9pbWFn
ZUVsZW1lbnRXaXRoSW1hZ2VSZXNvdXJjZTpyZXNvdXJjZV1dOwogICAgICAgICAgICAgICAgIFty
ZXNvdXJjZSByZWxlYXNlXTsKICAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIC8vIE5vbi1pbWFnZSBmaWxlIHR5cGVzCisgICAgICAgICAgICBOU1N0cmluZyAqdXJs
ID0gW1tbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnBhdGhdIF93ZWJraXRfY2Fub25pY2FsaXplXSBf
d2ViX3VzZXJWaXNpYmxlU3RyaW5nXTsKKyAgICAgICAgICAgIFtkb21Ob2RlcyBhZGRPYmplY3Q6
W1tbc2VsZiBfYnJpZGdlXSBET01Eb2N1bWVudF0gY3JlYXRlVGV4dE5vZGU6IHVybF1dOwogICAg
ICAgICB9CiAgICAgfQogICAgIAorICAgIGZyYWdtZW50ID0gW1tzZWxmIF9icmlkZ2VdIGRvY3Vt
ZW50RnJhZ21lbnRXaXRoTm9kZXNBc1BhcmFncmFwaHM6ZG9tTm9kZXNdOyAKKyAgICAKKyAgICBb
ZG9tTm9kZXMgcmVsZWFzZV07CisgICAgCiAgICAgcmV0dXJuIFtmcmFnbWVudCBmaXJzdENoaWxk
XSAhPSBuaWwgPyBmcmFnbWVudCA6IG5pbDsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>