<?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>23900</bug_id>
          
          <creation_ts>2009-02-11 12:24:44 -0800</creation_ts>
          <short_desc>Arbitrary frame names should be supported, even duplicate or empty</short_desc>
          <delta_ts>2010-06-10 17:09:30 -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>Frames</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Sverrir Á. Berg">sverrir</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>sverrir</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>109344</commentid>
    <comment_count>0</comment_count>
    <who name="Sverrir Á. Berg">sverrir</who>
    <bug_when>2009-02-11 12:24:44 -0800</bug_when>
    <thetext>Fixes a crash.  See:
https://bugs.webkit.org/show_bug.cgi?id=23899</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109345</commentid>
    <comment_count>1</comment_count>
      <attachid>27568</attachid>
    <who name="Sverrir Á. Berg">sverrir</who>
    <bug_when>2009-02-11 12:28:16 -0800</bug_when>
    <thetext>Created attachment 27568
Prevent frames from naming themselves _top

This was the only logical place I thought of fixing this.  Otherwise FrameLoader manages to call itself recursively and ends up loading the new frame ontop of the first one.
Playing around with other browsers it seems that _top is not allowed as a frame name so this should not break any webpages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109947</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-17 02:51:29 -0800</bug_when>
    <thetext>*** Bug 23899 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109948</commentid>
    <comment_count>3</comment_count>
      <attachid>27568</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-17 02:58:10 -0800</bug_when>
    <thetext>Comment on attachment 27568
Prevent frames from naming themselves _top

+        WARNING: NO TEST CASES ADDED OR CHANGED

The fix looks reasonable, but it definitely needs an automated test case, r- because of that. Note that I couldn&apos;t easily make Safari crash with the code provided in bug 23899.

+	Make sure a frame does not name itself &quot;_top&quot;.  This prevents a crash.

Please fix ChangeLog to use spaces, not tabs.

A better place for this line is in the generated part of ChangeLog:

+        * page/FrameTree.cpp:
+        (WebCore::FrameTree::uniqueChildName):</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109993</commentid>
    <comment_count>4</comment_count>
      <attachid>27568</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-02-17 11:54:39 -0800</bug_when>
    <thetext>Comment on attachment 27568
Prevent frames from naming themselves _top

It seems we need a test case for _top, _parent, _blank, _self (and any other special names).

If I were writing this code, I might even consider breaking this if out into a static inline function.

if (isAllowedChildName(this, requestedName))
    return requestedName;

static isAllowedChildName(FrameTree* tree, const AtomicString&amp; name)
{
if (name.isEmpty() || child(name))
    return false;

if (name == &quot;_blank&quot; || name == &quot;_top&quot; || name == &quot;_parent&quot; || name == &quot;_self&quot;)
  return false;

return true;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110073</commentid>
    <comment_count>5</comment_count>
      <attachid>27749</attachid>
    <who name="Sverrir Á. Berg">sverrir</who>
    <bug_when>2009-02-18 07:35:58 -0800</bug_when>
    <thetext>Created attachment 27749
New patch

I&apos;ve abstracted the check to a member function and widened the check to all invalid frame names (all starting with _).  I&apos;ve also added a test.
Note that the test works fine on webkit trunk on Mac but crashes Win Nightly.

Please take another look</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110183</commentid>
    <comment_count>6</comment_count>
      <attachid>27749</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-19 01:58:34 -0800</bug_when>
    <thetext>Comment on attachment 27749
New patch

What do other browsers do with e.g. &quot;_foobar&quot;? Please check, because being more restrictive than others is dangerous. Have you checked that the name &quot;_top&quot; is ignored by other browsers?

The test doesn&apos;t need to dump pixels, but it needs to have some text explaining what&apos;s going on (the title alone isn&apos;t enough). This may be easier to achieve with IFrame. E.g.

&lt;p&gt;Test for &lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=23900&quot;&gt;bug 23900&lt;/a&gt;: A frame named _top crashes the browser.&lt;/p&gt;&lt;p&gt;PASS if no crash.&lt;/p&gt;
&lt;script&gt;
if (window.layoutTestController)
     layoutTestController.dumpAsText();
&lt;/script&gt;
&lt;iframe name=&quot;_top&quot; src=&quot;about:blank&quot;&gt;&lt;/iframe&gt;

The function allowedChildName() should be a static in cpp file - it doesn&apos;t use data members, so there is no reason to make it a private member. We start such function names with &quot;is&quot;:

static bool isAllowedChildName(const AtomicString&amp; name)
{...}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110184</commentid>
    <comment_count>7</comment_count>
      <attachid>27782</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-19 02:03:03 -0800</bug_when>
    <thetext>Created attachment 27782
test _top

Actually, I&apos;ve just checked, and in Firefox, the name _top seems to be honored, see the attached test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111662</commentid>
    <comment_count>8</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-02-28 20:17:06 -0800</bug_when>
    <thetext>This is has been fixed by http://trac.webkit.org/changeset/41213.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111676</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-01 00:33:51 -0800</bug_when>
    <thetext>Re-titling to make it clear what was fixed (we didn&apos;t disallow _top as a name, and I&apos;m still confused on whether that&apos;s needed to match other browsers).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111715</commentid>
    <comment_count>10</comment_count>
    <who name="Sverrir Á. Berg">sverrir</who>
    <bug_when>2009-03-01 09:33:04 -0800</bug_when>
    <thetext>I was not able to verify on latest Windows nightly is built on 41199 (and my Windows box has never been able to build webkit).
The patch http://trac.webkit.org/changeset/41213 has been integrated into chromium and testing the patch there seems to indicate that this patch does not fix the problem.  I reopen the bug for now.

I will try to explain what my understanding up to now.  There are multiple ways to refer to frames and some of them have special meaning.  Those that I know of are: by name in the top namespace (javascript: myframe), by iterating through the frameset (javascript: frames[i]) and in hyperlinks (&lt;a target=&quot;myframe&quot;...).  As far as I can tell the hyperlink-target approach is the only one that should have this special meaning.  Currently webkit is not allowing frames to call themselves _blank but both IE and FF allow that.  Other limitation in webkit is the enforcing of unique names - both IE and FF allow multiple frames at the same level with the same name.  Referring to them in javascript consistently just finds the first frame with that name.  The third thing I&apos;ve found is it is inconsistent within webkit if you can find frames with special names or not - using iteration you get the mangled names but direct reference by id or name finds the frame fine.

My change was only a quick workaround to fix the bug and I suggest it is checked in for now until a more involved approach is found.  The correct approach IMO is to allow frames to pick their own names and when finding frames for hyperlink targets the special names are checked at that point and then a fallback in looking up the framename from the frametree.  This will give a more consistent behavior to FF/IE.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111724</commentid>
    <comment_count>11</comment_count>
      <attachid>28145</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-03-01 13:11:02 -0800</bug_when>
    <thetext>Created attachment 28145
The original crash reduction

I went ahead and uploaded the crash reduction as you described. It does not cause a crash on WebKit r41279 or Chromium r10680. BTW, you don&apos;t have to build WebKit or Chromium: you can download nightlies from http://nightly.webkit.org/ or http://build.chromium.org/buildbot/continuous/.

I think the issue still exists, because naming inner frame &quot;_top&quot; causes overwrite of the outer frame. But there&apos;s no crash. Right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114506</commentid>
    <comment_count>12</comment_count>
      <attachid>28786</attachid>
    <who name="Sverrir Á. Berg">sverrir</who>
    <bug_when>2009-03-20 10:11:40 -0700</bug_when>
    <thetext>Created attachment 28786
The right way to fix this

This is the right way to fix this.  Now frames can basically have any name they want and even same names as other frames.  This brings WebKit in line with how other browsers work.
Note that this breaks approx 50 tests that rely on the current name mangling (&lt;!--framePath //&lt;!--frame0--&gt;--&gt;) of frame names.  If this patch gets a positive review I will upload another patch that fixes these tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114512</commentid>
    <comment_count>13</comment_count>
      <attachid>28786</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-20 10:28:27 -0700</bug_when>
    <thetext>Comment on attachment 28786
The right way to fix this

Thanks for tackling this.

I&apos;m excited that you think we can make frames without names work properly. Are you sure there are no new problems caused by removing the names? I believe we use those frame names for back/forward housekeeping on Mac OS X at least. I&apos;m not sure it&apos;s safe to just throw that away.

What&apos;s your rationale for removing the disconnected frame feature? The fact that _setIsDisconnected is in WebFramePrivate.h means that it’s SPI on Mac OS X. So removing it would break Mac OS X applications that are using that API. So you can’t just remove it. Did you remove it because you didn’t understand it or because of some specific problem with it?

There’s no ChangeLog entry for WebCore. You need one.

The patch needs to include changes to test results for the tests that depend on the old frame naming system, not just the new test.

There are tabs and a conflict marker in the LayoutTests/ChangeLog entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120854</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-05-12 08:14:38 -0700</bug_when>
    <thetext>Re-titling again, as the crash no longer occurs. Also, downgrading from P1 for the same reason.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27568</attachid>
            <date>2009-02-11 12:28:16 -0800</date>
            <delta_ts>2009-02-18 07:35:58 -0800</delta_ts>
            <desc>Prevent frames from naming themselves _top</desc>
            <filename>top_frame.patch</filename>
            <type>text/plain</type>
            <size>1380</size>
            <attacher name="Sverrir Á. Berg">sverrir</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDg2MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMDItMTEgIFN2ZXJyaXIgw4EuIEJlcmcgIDxzdmVycmlyQGNo
cm9taXVtLm9yZz4KKworCU1ha2Ugc3VyZSBhIGZyYW1lIGRvZXMgbm90IG5hbWUgaXRzZWxmICJf
dG9wIi4gIFRoaXMgcHJldmVudHMgYSBjcmFzaC4KKwlUaGlzIGZpeGVzIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1Ig
Q0hBTkdFRAorCisgICAgICAgICogcGFnZS9GcmFtZVRyZWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVUcmVlOjp1bmlxdWVDaGlsZE5hbWUpOgorCiAyMDA5LTAyLTExICBEYXZpZCBIeWF0
dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIGNyZWF0ZUFub255bW91c0Jsb2Nr
KCkgdG8gUmVuZGVyQmxvY2suICBTaW5jZSBhbm9ueW1vdXMgYmxvY2tzIGFyZSBhbHdheXMgcGFy
ZW50ZWQgdG8gc29tZSBvdGhlciBibG9jaywKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZVRyZWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCShyZXZpc2lvbiA0
MDg1NCkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDUsNyArMTA1LDcgQEAgdm9pZCBGcmFtZVRyZWU6OnJlbW92ZUNoaWxkKEZyYW1lKiBjaGlsZAog
CiBBdG9taWNTdHJpbmcgRnJhbWVUcmVlOjp1bmlxdWVDaGlsZE5hbWUoY29uc3QgQXRvbWljU3Ry
aW5nJiByZXF1ZXN0ZWROYW1lKSBjb25zdAogewotICAgIGlmICghcmVxdWVzdGVkTmFtZS5pc0Vt
cHR5KCkgJiYgIWNoaWxkKHJlcXVlc3RlZE5hbWUpICYmIHJlcXVlc3RlZE5hbWUgIT0gIl9ibGFu
ayIpCisgICAgaWYgKCFyZXF1ZXN0ZWROYW1lLmlzRW1wdHkoKSAmJiAhY2hpbGQocmVxdWVzdGVk
TmFtZSkgJiYgcmVxdWVzdGVkTmFtZSAhPSAiX2JsYW5rIiAmJiByZXF1ZXN0ZWROYW1lICE9ICJf
dG9wIikKICAgICAgICAgcmV0dXJuIHJlcXVlc3RlZE5hbWU7CiAKICAgICAvLyBDcmVhdGUgYSBy
ZXBlYXRhYmxlIG5hbWUgZm9yIGEgY2hpbGQgYWJvdXQgdG8gYmUgYWRkZWQgdG8gdXMuIFRoZSBu
YW1lIG11c3QgYmUK
</data>
<flag name="review"
          id="13360"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27749</attachid>
            <date>2009-02-18 07:35:58 -0800</date>
            <delta_ts>2009-03-20 10:11:40 -0700</delta_ts>
            <desc>New patch</desc>
            <filename>top_frame_new.patch</filename>
            <type>text/plain</type>
            <size>4245</size>
            <attacher name="Sverrir Á. Berg">sverrir</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTA0NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMDktMDItMTcgIFN2ZXJyaXIgw4EuIEJlcmcgIDxzdmVycmlyQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkw
MAorCisgICAgICAgIERvbid0IGFsbG93IGZyYW1lcyB0byBjYWxsIHRoZW1zZWx2ZXMgX3RvcC4K
KworICAgICAgICBUZXN0OiBmYXN0L2RvbS9mcmFtZXNldC13aXRoLXRvcC1mcmFtZS1jcmFzaC5o
dG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVRyZWU6OmFsbG93ZWRDaGlsZE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVl
Ojp1bmlxdWVDaGlsZE5hbWUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVUcmVlLmg6CisKIDIwMDkt
MDItMTcgIEtldmluIE9sbGl2aWVyICA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CiAKICAgICAg
ICAgd3ggYnVpbGQgZml4LiBBZGQgbWlzc2luZyBjb25zdHJ1Y3RvciB1c2VkIGZvciBlbXB0eSB2
YWx1ZXMuCkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAkocmV2aXNpb24gNDEwMzgpCisrKyBXZWJDb3JlL3Bh
Z2UvRnJhbWVUcmVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTksOSArOTksMjQgQEAgdm9pZCBG
cmFtZVRyZWU6OnJlbW92ZUNoaWxkKEZyYW1lKiBjaGlsZAogICAgIG1fY2hpbGRDb3VudC0tOwog
fQogCitib29sIEZyYW1lVHJlZTo6YWxsb3dlZENoaWxkTmFtZShjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUpIGNvbnN0IAoreworICAgIGlmIChuYW1lLmlzRW1wdHkoKSB8fCBjaGlsZChuYW1lKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIC8vIEFjY29yZGluZyB0byBodHRwOi8v
d3d3LnczLm9yZy9UUi9odG1sNDAxL3R5cGVzLmh0bWwjaC02LjE2IGZyYW1lIG5hbWVzCisgICAg
Ly8gbXVzdCBzdGFydCB3aXRoIGFuIGFscGhhYmV0aWNhbCBjaGFyYWN0ZXIuIFdlIGNoZWNrIGZv
ciBmcmFtZSBuYW1lcworICAgIC8vIHN0YXJ0aW5nIHdpdGggXyB0byBwcmV2ZW50IGNyZWF0aW9u
IG9mIGZyYW1lcyB3aXRoIHNwZWNpYWwgbmFtZXM6CisgICAgLy8gX2JsYW5rLCBfc2VsZiwgX3Bh
cmVudCBhbmQgX3RvcC4KKyAgICBpZiAobmFtZS5zdGFydHNXaXRoKCJfIikpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogQXRvbWljU3RyaW5nIEZy
YW1lVHJlZTo6dW5pcXVlQ2hpbGROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgcmVxdWVzdGVkTmFt
ZSkgY29uc3QKIHsKLSAgICBpZiAoIXJlcXVlc3RlZE5hbWUuaXNFbXB0eSgpICYmICFjaGlsZChy
ZXF1ZXN0ZWROYW1lKSAmJiByZXF1ZXN0ZWROYW1lICE9ICJfYmxhbmsiKQorICAgIGlmIChhbGxv
d2VkQ2hpbGROYW1lKHJlcXVlc3RlZE5hbWUpKQogICAgICAgICByZXR1cm4gcmVxdWVzdGVkTmFt
ZTsKIAogICAgIC8vIENyZWF0ZSBhIHJlcGVhdGFibGUgbmFtZSBmb3IgYSBjaGlsZCBhYm91dCB0
byBiZSBhZGRlZCB0byB1cy4gVGhlIG5hbWUgbXVzdCBiZQpJbmRleDogV2ViQ29yZS9wYWdlL0Zy
YW1lVHJlZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaAkocmV2aXNp
b24gNDEwMzgpCisrKyBXZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTY5LDYgKzY5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgRnJhbWUqIGRlZXBMYXN0Q2hpbGQoKSBjb25zdDsKKyAgICAgICAgYm9vbCBhbGxvd2VkQ2hp
bGROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3Q7CiAKICAgICAgICAgRnJhbWUq
IG1fdGhpc0ZyYW1lOwogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MTA0NCkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDA5LTAyLTE3ICBT
dmVycmlyIMOBLiBCZXJnICA8c3ZlcnJpckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGZvciBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDAKKworICAgICAgICBEb24ndCBhbGxvdyBmcmFt
ZXMgdG8gbmFtZSB0aGVtc2VsdmVzIF90b3AuCisKKyAgICAgICAgKiBmYXN0L2RvbS9mcmFtZXNl
dC13aXRoLXRvcC1mcmFtZS1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL2ZyYW1lc2V0LXdpdGgtdG9wLWZyYW1lLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDA5
LTAyLTE3ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vZnJhbWVzZXQtd2l0
aC10b3AtZnJhbWUtY3Jhc2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL2ZyYW1lc2V0LXdpdGgtdG9wLWZyYW1lLWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2ZyYW1lc2V0LXdpdGgtdG9wLWZyYW1l
LWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckZyYW1lU2V0IHtGUkFNRVNFVH0gYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgICAgICBSZW5kZXJGcmFtZSB7RlJBTUV9IGF0ICgwLDApIHNpemUgODAw
eDYwMAorICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICAgICAgICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL2ZyYW1lc2V0LXdpdGgtdG9wLWZyYW1lLWNyYXNo
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vZnJhbWVzZXQtd2l0aC10
b3AtZnJhbWUtY3Jhc2guaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L2ZyYW1lc2V0LXdpdGgtdG9wLWZyYW1lLWNyYXNoLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNCBAQAorPHRpdGxlPlRlc3QgYSBjcmFzaCB3aGVuIGEgc3ViZnJhbWUgaXMgY2FsbGVkIF90
b3A8L3RpdGxlPgorPGZyYW1lc2V0PgorICA8ZnJhbWUgbmFtZT0iX3RvcCIgc3JjPSJhYm91dDpi
bGFuayIgLz4KKzwvZnJhbWVzZXQ+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9mcmFtZXNldC13aXRoLXRvcC1mcmFtZS1jcmFzaC5odG1sCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRk
ZWQ6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoK
</data>
<flag name="review"
          id="13487"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>27782</attachid>
            <date>2009-02-19 02:03:03 -0800</date>
            <delta_ts>2009-02-19 02:03:03 -0800</delta_ts>
            <desc>test _top</desc>
            <filename>name.html</filename>
            <type>text/html</type>
            <size>121</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PGJvZHkgb25sb2FkID0gInRlc3QoKSI+CjxpZnJhbWUgbmFtZT0iX3RvcCI+PC9pZnJhbWU+Cjxz
Y3JpcHQ+CmZ1bmN0aW9uIHRlc3QoKQp7CiAgICBhbGVydChmcmFtZXNbMF0ubmFtZSk7Cn0KPC9z
Y3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>28145</attachid>
            <date>2009-03-01 13:11:02 -0800</date>
            <delta_ts>2009-03-01 13:11:02 -0800</delta_ts>
            <desc>The original crash reduction</desc>
            <filename>top-frame-crash.html</filename>
            <type>text/html</type>
            <size>82</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">PGh0bWw+CjxmcmFtZXNldD4KICAgIDxmcmFtZSBuYW1lPSJfdG9wIiBzcmM9ImFib3V0OmJsYW5r
IiAvID4KPC9mcmFtZXNldD4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28786</attachid>
            <date>2009-03-20 10:11:40 -0700</date>
            <delta_ts>2010-06-10 17:09:30 -0700</delta_ts>
            <desc>The right way to fix this</desc>
            <filename>frame_name_allowed.patch</filename>
            <type>text/plain</type>
            <size>19608</size>
            <attacher name="Sverrir Á. Berg">sverrir</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgJKHJldmlzaW9uIDQxODQ0KQor
KysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC03OSw3ICs3OSw2IEBACiAtIChXZWJJY29uRmV0Y2hlciAqKWZldGNoQXBwbGljYXRpb25JY29u
OihpZCl0YXJnZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6KFNF
TClzZWxlY3RvcjsKIAotLSAodm9pZClfc2V0SXNEaXNjb25uZWN0ZWQ6KGJvb2wpaXNEaXNjb25u
ZWN0ZWQ7CiAtICh2b2lkKV9zZXRFeGNsdWRlRnJvbVRleHRTZWFyY2g6KGJvb2wpZXhjbHVkZTsK
IAogI2lmIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJCkluZGV4OiBXZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tCShyZXZpc2lvbiA0MTg0NCkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTEwOCwxMSArMTEwOCw2IEBACiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjpzZWxlY3Rvcl07CiB9CiAKLS0g
KHZvaWQpX3NldElzRGlzY29ubmVjdGVkOihib29sKWlzRGlzY29ubmVjdGVkCi17Ci0gICAgX3By
aXZhdGUtPmNvcmVGcmFtZS0+c2V0SXNEaXNjb25uZWN0ZWQoaXNEaXNjb25uZWN0ZWQpOwotfQot
CiAtICh2b2lkKV9zZXRFeGNsdWRlRnJvbVRleHRTZWFyY2g6KGJvb2wpZXhjbHVkZQogewogICAg
IF9wcml2YXRlLT5jb3JlRnJhbWUtPnNldEV4Y2x1ZGVGcm9tVGV4dFNlYXJjaChleGNsdWRlKTsK
SW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiA0MTg0NCkKKysrIFdlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzU4LDI3ICsyMzU4LDEyIEBACiAKICNlbmRp
ZgogCi1ib29sIEVkaXRvcjo6aW5zaWRlVmlzaWJsZUFyZWEoY29uc3QgSW50UG9pbnQmIHBvaW50
KSBjb25zdAorYm9vbCBFZGl0b3I6Omluc2lkZVZpc2libGVBcmVhKGNvbnN0IEludFBvaW50Jikg
Y29uc3QKIHsKICAgICBpZiAobV9mcmFtZS0+ZXhjbHVkZUZyb21UZXh0U2VhcmNoKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICAvLyBSaWdodCBub3csIHdlIG9ubHkgY2hlY2sg
dGhlIHZpc2liaWxpdHkgb2YgYSBwb2ludCBmb3IgZGlzY29ubmVjdGVkIGZyYW1lcy4gRm9yIGFs
bCBvdGhlcgotICAgIC8vIGZyYW1lcywgd2UgYXNzdW1lIHZpc2liaWxpdHkuCi0gICAgRnJhbWUq
IGZyYW1lID0gbV9mcmFtZS0+aXNEaXNjb25uZWN0ZWQoKSA/IG1fZnJhbWUgOiBtX2ZyYW1lLT50
cmVlKCktPnRvcCh0cnVlKTsKLSAgICBpZiAoIWZyYW1lLT5pc0Rpc2Nvbm5lY3RlZCgpKQotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICBSZW5kZXJQYXJ0KiByZW5kZXJlciA9IGZyYW1l
LT5vd25lclJlbmRlcmVyKCk7Ci0gICAgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciA9IHJlbmRlcmVy
LT5jb250YWluaW5nQmxvY2soKTsKLSAgICBpZiAoIShjb250YWluZXItPnN0eWxlKCktPm92ZXJm
bG93WCgpID09IE9ISURERU4gfHwgY29udGFpbmVyLT5zdHlsZSgpLT5vdmVyZmxvd1koKSA9PSBP
SElEREVOKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBJbnRSZWN0IHJlY3RJblBhZ2VD
b29yZHMgPSBjb250YWluZXItPm92ZXJmbG93Q2xpcFJlY3QoMCwgMCk7Ci0gICAgSW50UmVjdCBy
ZWN0SW5GcmFtZUNvb3JkcyA9IEludFJlY3QocmVuZGVyZXItPngoKSAqIC0xLCByZW5kZXJlci0+
eSgpICogLTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0SW5QYWdl
Q29vcmRzLndpZHRoKCksIHJlY3RJblBhZ2VDb29yZHMuaGVpZ2h0KCkpOwotCi0gICAgcmV0dXJu
IHJlY3RJbkZyYW1lQ29vcmRzLmNvbnRhaW5zKHBvaW50KTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0K
IAogYm9vbCBFZGl0b3I6Omluc2lkZVZpc2libGVBcmVhKFJhbmdlKiByYW5nZSkgY29uc3QKQEAg
LTIzODgsMjQgKzIzNzMsOCBAQAogCiAgICAgaWYgKG1fZnJhbWUtPmV4Y2x1ZGVGcm9tVGV4dFNl
YXJjaCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgLy8gUmlnaHQgbm93LCB3
ZSBvbmx5IGNoZWNrIHRoZSB2aXNpYmlsaXR5IG9mIGEgcmFuZ2UgZm9yIGRpc2Nvbm5lY3RlZCBm
cmFtZXMuIEZvciBhbGwgb3RoZXIKLSAgICAvLyBmcmFtZXMsIHdlIGFzc3VtZSB2aXNpYmlsaXR5
LgotICAgIEZyYW1lKiBmcmFtZSA9IG1fZnJhbWUtPmlzRGlzY29ubmVjdGVkKCkgPyBtX2ZyYW1l
IDogbV9mcmFtZS0+dHJlZSgpLT50b3AodHJ1ZSk7Ci0gICAgaWYgKCFmcmFtZS0+aXNEaXNjb25u
ZWN0ZWQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgUmVuZGVyUGFydCogcmVu
ZGVyZXIgPSBmcmFtZS0+b3duZXJSZW5kZXJlcigpOwotICAgIFJlbmRlckJsb2NrKiBjb250YWlu
ZXIgPSByZW5kZXJlci0+Y29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgaWYgKCEoY29udGFpbmVyLT5z
dHlsZSgpLT5vdmVyZmxvd1goKSA9PSBPSElEREVOIHx8IGNvbnRhaW5lci0+c3R5bGUoKS0+b3Zl
cmZsb3dZKCkgPT0gT0hJRERFTikpCi0gICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgSW50UmVj
dCByZWN0SW5QYWdlQ29vcmRzID0gY29udGFpbmVyLT5vdmVyZmxvd0NsaXBSZWN0KDAsIDApOwot
ICAgIEludFJlY3QgcmVjdEluRnJhbWVDb29yZHMgPSBJbnRSZWN0KHJlbmRlcmVyLT54KCkgKiAt
MSwgcmVuZGVyZXItPnkoKSAqIC0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVjdEluUGFnZUNvb3Jkcy53aWR0aCgpLCByZWN0SW5QYWdlQ29vcmRzLmhlaWdodCgpKTsK
LSAgICBJbnRSZWN0IHJlc3VsdFJlY3QgPSByYW5nZS0+Ym91bmRpbmdCb3goKTsKLSAgICAKLSAg
ICByZXR1cm4gcmVjdEluRnJhbWVDb29yZHMuY29udGFpbnMocmVzdWx0UmVjdCk7CisgICAgcmV0
dXJuIHRydWU7CiB9CiAKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6Zmlyc3RWaXNpYmxlUmFu
Z2UoY29uc3QgU3RyaW5nJiB0YXJnZXQsIGJvb2wgY2FzZUZsYWcpCkluZGV4OiBXZWJDb3JlL1dl
YkNvcmUuYmFzZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCShy
ZXZpc2lvbiA0MTg0NCkKKysrIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAkod29ya2luZyBjb3B5
KQpAQCAtNDgzLDcgKzQ4Myw2IEBACiBfX1pON1dlYkNvcmU1RnJhbWUxM3JlYXBwbHlTdHlsZXNF
dgogX19aTjdXZWJDb3JlNUZyYW1lMTNzZXRab29tRmFjdG9yRWZiCiBfX1pON1dlYkNvcmU1RnJh
bWUxNGZyYW1lRm9yV2lkZ2V0RVBLTlNfNldpZGdldEUKLV9fWk43V2ViQ29yZTVGcmFtZTE3c2V0
SXNEaXNjb25uZWN0ZWRFYgogX19aTjdXZWJDb3JlNUZyYW1lMTlzZXRJblZpZXdTb3VyY2VNb2Rl
RWIKIF9fWk43V2ViQ29yZTVGcmFtZTIwc2V0U2VsZWN0aW9uRnJvbU5vbmVFdgogX19aTjdXZWJD
b3JlNUZyYW1lMjFtYXJrQWxsTWF0Y2hlc0ZvclRleHRFUktOU182U3RyaW5nRWJqCkBAIC05MDUs
NyArOTA0LDYgQEAKIF9fWk5LN1dlYkNvcmU5RnJhbWVUcmVlMjR0cmF2ZXJzZVByZXZpb3VzV2l0
aFdyYXBFYgogX19aTks3V2ViQ29yZTlGcmFtZVRyZWU0ZmluZEVSS05TXzEyQXRvbWljU3RyaW5n
RQogX19aTks3V2ViQ29yZTlGcmFtZVRyZWU1Y2hpbGRFUktOU18xMkF0b21pY1N0cmluZ0UKLV9f
Wk5LN1dlYkNvcmU5RnJhbWVUcmVlNnBhcmVudEViCiBfX1pOSzdXZWJDb3JlOUZyYW1lVmlldzEx
bmVlZHNMYXlvdXRFdgogX19aTks3V2ViQ29yZTlUaW1lckJhc2U4aXNBY3RpdmVFdgogX19aVFZO
N1dlYkNvcmUxMkNocm9tZUNsaWVudEUKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZS5oCShyZXZpc2lvbiA0MTg0NCkKKysrIFdlYkNv
cmUvcGFnZS9GcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsOCArMTIwLDYgQEAKICAgICBS
ZW5kZXJWaWV3KiBjb250ZW50UmVuZGVyZXIoKSBjb25zdDsgLy8gcm9vdCByZW5kZXJlciBmb3Ig
dGhlIGRvY3VtZW50IGNvbnRhaW5lZCBpbiB0aGlzIGZyYW1lCiAgICAgUmVuZGVyUGFydCogb3du
ZXJSZW5kZXJlcigpIGNvbnN0OyAvLyByZW5kZXJlciBmb3IgdGhlIGVsZW1lbnQgdGhhdCBjb250
YWlucyB0aGlzIGZyYW1lCiAgICAgCi0gICAgYm9vbCBpc0Rpc2Nvbm5lY3RlZCgpIGNvbnN0Owot
ICAgIHZvaWQgc2V0SXNEaXNjb25uZWN0ZWQoYm9vbCk7CiAgICAgYm9vbCBleGNsdWRlRnJvbVRl
eHRTZWFyY2goKSBjb25zdDsKICAgICB2b2lkIHNldEV4Y2x1ZGVGcm9tVGV4dFNlYXJjaChib29s
KTsKIApAQCAtMzYzLDcgKzM2MSw2IEBACiAgICAgYm9vbCBtX2hpZ2hsaWdodFRleHRNYXRjaGVz
OwogICAgIGJvb2wgbV9pblZpZXdTb3VyY2VNb2RlOwogICAgIGJvb2wgbV9uZWVkc1JlYXBwbHlT
dHlsZXM7Ci0gICAgYm9vbCBtX2lzRGlzY29ubmVjdGVkOwogICAgIGJvb2wgbV9leGNsdWRlRnJv
bVRleHRTZWFyY2g7CiAKICNpZiBGUkFNRV9MT0FEU19VU0VSX1NUWUxFU0hFRVQKSW5kZXg6IFdl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCShyZXZpc2lvbiA0MTg0NCkKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03MzcsMTEgKzczNywxMSBAQAogewogICAgIGlmICghbV9mcmFt
ZSkKICAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBGcmFtZSogcGFyZW50ID0gbV9mcmFtZS0+dHJl
ZSgpLT5wYXJlbnQodHJ1ZSk7CisgICAgCisgICAgRnJhbWUqIHBhcmVudCA9IG1fZnJhbWUtPnRy
ZWUoKS0+cGFyZW50KCk7CiAgICAgaWYgKHBhcmVudCkKICAgICAgICAgcmV0dXJuIHBhcmVudC0+
ZG9tV2luZG93KCk7Ci0KKyAgICAKICAgICByZXR1cm4gbV9mcmFtZS0+ZG9tV2luZG93KCk7CiB9
CiAKQEAgLTc1NCw3ICs3NTQsNyBAQAogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICByZXR1cm4gbV9mcmFtZS0+dHJlZSgpLT50b3AodHJ1ZSktPmRvbVdpbmRvdygpOwor
ICAgIHJldHVybiBtX2ZyYW1lLT50cmVlKCktPnRvcCgpLT5kb21XaW5kb3coKTsKIH0KIAogRG9j
dW1lbnQqIERPTVdpbmRvdzo6ZG9jdW1lbnQoKSBjb25zdApJbmRleDogV2ViQ29yZS9wYWdlL0Zy
YW1lVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAJKHJl
dmlzaW9uIDQxODQ0KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQwLDEyICs0MCw3IEBACiAKIHZvaWQgRnJhbWVUcmVlOjpzZXROYW1lKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSkgCiB7Ci0gICAgaWYgKCFwYXJlbnQoKSkgewotICAgICAgICBtX25h
bWUgPSBuYW1lOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1fbmFtZSA9IEF0b21pY1N0
cmluZygpOyAvLyBSZW1vdmUgb3VyIG9sZCBmcmFtZSBuYW1lIHNvIGl0J3Mgbm90IGNvbnNpZGVy
ZWQgaW4gdW5pcXVlQ2hpbGROYW1lLgotICAgIG1fbmFtZSA9IHBhcmVudCgpLT50cmVlKCktPnVu
aXF1ZUNoaWxkTmFtZShuYW1lKTsKKyAgICBtX25hbWUgPSBuYW1lOwogfQogCiB2b2lkIEZyYW1l
VHJlZTo6Y2xlYXJOYW1lKCkKQEAgLTUzLDEzICs0OCw2IEBACiAgICAgbV9uYW1lID0gQXRvbWlj
U3RyaW5nKCk7CiB9CiAKLUZyYW1lKiBGcmFtZVRyZWU6OnBhcmVudChib29sIGNoZWNrRm9yRGlz
Y29ubmVjdGVkRnJhbWUpIGNvbnN0IAoteyAKLSAgICBpZiAoY2hlY2tGb3JEaXNjb25uZWN0ZWRG
cmFtZSAmJiBtX3RoaXNGcmFtZS0+aXNEaXNjb25uZWN0ZWQoKSkKLSAgICAgICAgcmV0dXJuIDA7
Ci0gICAgcmV0dXJuIG1fcGFyZW50OwotfQotCiB2b2lkIEZyYW1lVHJlZTo6YXBwZW5kQ2hpbGQo
UGFzc1JlZlB0cjxGcmFtZT4gY2hpbGQpCiB7CiAgICAgQVNTRVJUKGNoaWxkLT5wYWdlKCkgPT0g
bV90aGlzRnJhbWUtPnBhZ2UoKSk7CkBAIC05OSw1NSArODcsNiBAQAogICAgIG1fY2hpbGRDb3Vu
dC0tOwogfQogCi1BdG9taWNTdHJpbmcgRnJhbWVUcmVlOjp1bmlxdWVDaGlsZE5hbWUoY29uc3Qg
QXRvbWljU3RyaW5nJiByZXF1ZXN0ZWROYW1lKSBjb25zdAotewotICAgIGlmICghcmVxdWVzdGVk
TmFtZS5pc0VtcHR5KCkgJiYgIWNoaWxkKHJlcXVlc3RlZE5hbWUpICYmIHJlcXVlc3RlZE5hbWUg
IT0gIl9ibGFuayIpCi0gICAgICAgIHJldHVybiByZXF1ZXN0ZWROYW1lOwotCi0gICAgLy8gQ3Jl
YXRlIGEgcmVwZWF0YWJsZSBuYW1lIGZvciBhIGNoaWxkIGFib3V0IHRvIGJlIGFkZGVkIHRvIHVz
LiBUaGUgbmFtZSBtdXN0IGJlCi0gICAgLy8gdW5pcXVlIHdpdGhpbiB0aGUgZnJhbWUgdHJlZS4g
VGhlIHN0cmluZyB3ZSBnZW5lcmF0ZSBpbmNsdWRlcyBhICJwYXRoIiBvZiBuYW1lcwotICAgIC8v
IGZyb20gdGhlIHJvb3QgZnJhbWUgZG93biB0byB1cy4gRm9yIHRoaXMgcGF0aCB0byBiZSB1bmlx
dWUsIGVhY2ggc2V0IG9mIHNpYmxpbmdzIG11c3QKLSAgICAvLyBjb250cmlidXRlIGEgdW5pcXVl
IG5hbWUgdG8gdGhlIHBhdGgsIHdoaWNoIGNhbid0IGNvbGxpZGUgd2l0aCBhbnkgSFRNTC1hc3Np
Z25lZCBuYW1lcy4KLSAgICAvLyBXZSBnZW5lcmF0ZSB0aGlzIHBhdGggY29tcG9uZW50IGJ5IGlu
ZGV4IGluIHRoZSBjaGlsZCBsaXN0IGFsb25nIHdpdGggYW4gdW5saWtlbHkKLSAgICAvLyBmcmFt
ZSBuYW1lIHRoYXQgY2FuJ3QgYmUgc2V0IGluIEhUTUwgYmVjYXVzZSBpdCBjb2xsaWRlcyB3aXRo
IGNvbW1lbnQgc3ludGF4LgotCi0gICAgY29uc3QgY2hhciBmcmFtZVBhdGhQcmVmaXhbXSA9ICI8
IS0tZnJhbWVQYXRoICI7Ci0gICAgY29uc3QgaW50IGZyYW1lUGF0aFByZWZpeExlbmd0aCA9IDE0
OwotICAgIGNvbnN0IGludCBmcmFtZVBhdGhTdWZmaXhMZW5ndGggPSAzOwotCi0gICAgLy8gRmlu
ZCB0aGUgbmVhcmVzdCBwYXJlbnQgdGhhdCBoYXMgYSBmcmFtZSB3aXRoIGEgcGF0aCBpbiBpdC4K
LSAgICBWZWN0b3I8RnJhbWUqLCAxNj4gY2hhaW47Ci0gICAgRnJhbWUqIGZyYW1lOwotICAgIGZv
ciAoZnJhbWUgPSBtX3RoaXNGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+cGFy
ZW50KCkpIHsKLSAgICAgICAgaWYgKGZyYW1lLT50cmVlKCktPm5hbWUoKS5zdGFydHNXaXRoKGZy
YW1lUGF0aFByZWZpeCkpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2hhaW4uYXBwZW5k
KGZyYW1lKTsKLSAgICB9Ci0gICAgU3RyaW5nIG5hbWU7Ci0gICAgbmFtZSArPSBmcmFtZVBhdGhQ
cmVmaXg7Ci0gICAgaWYgKGZyYW1lKQotICAgICAgICBuYW1lICs9IGZyYW1lLT50cmVlKCktPm5h
bWUoKS5zdHJpbmcoKS5zdWJzdHJpbmcoZnJhbWVQYXRoUHJlZml4TGVuZ3RoLAotICAgICAgICAg
ICAgZnJhbWUtPnRyZWUoKS0+bmFtZSgpLmxlbmd0aCgpIC0gZnJhbWVQYXRoUHJlZml4TGVuZ3Ro
IC0gZnJhbWVQYXRoU3VmZml4TGVuZ3RoKTsKLSAgICBmb3IgKGludCBpID0gY2hhaW4uc2l6ZSgp
IC0gMTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgZnJhbWUgPSBjaGFpbltpXTsKLSAgICAgICAg
bmFtZSArPSAiLyI7Ci0gICAgICAgIG5hbWUgKz0gZnJhbWUtPnRyZWUoKS0+bmFtZSgpOwotICAg
IH0KLQotICAgIC8vIFN1ZmZpeCBidWZmZXIgaGFzIG1vcmUgdGhhbiBlbm91Z2ggc3BhY2UgZm9y
OgotICAgIC8vICAgICAxMCBjaGFyYWN0ZXJzIGJlZm9yZSB0aGUgbnVtYmVyCi0gICAgLy8gICAg
IGEgbnVtYmVyICgzIGRpZ2l0cyBmb3IgdGhlIGhpZ2hlc3QgdGhpcyBnZXRzIGluIHByYWN0aWNl
LCAyMCBkaWdpdHMgZm9yIHRoZSBsYXJnZXN0IDY0LWJpdCBpbnRlZ2VyKQotICAgIC8vICAgICA2
IGNoYXJhY3RlcnMgYWZ0ZXIgdGhlIG51bWJlcgotICAgIC8vICAgICB0cmFpbGluZyBudWxsIGJ5
dGUKLSAgICAvLyBCdXQgd2Ugc3RpbGwgdXNlIHNucHJpbnRmIGp1c3QgdG8gYmUgZXh0cmEtc2Fm
ZS4KLSAgICBjaGFyIHN1ZmZpeFs0MF07Ci0gICAgc25wcmludGYoc3VmZml4LCBzaXplb2Yoc3Vm
Zml4KSwgIi88IS0tZnJhbWUldS0tPi0tPiIsIGNoaWxkQ291bnQoKSk7Ci0KLSAgICBuYW1lICs9
IHN1ZmZpeDsKLQotICAgIHJldHVybiBBdG9taWNTdHJpbmcobmFtZSk7Ci19Ci0KIEZyYW1lKiBG
cmFtZVRyZWU6OmNoaWxkKHVuc2lnbmVkIGluZGV4KSBjb25zdAogewogICAgIEZyYW1lKiByZXN1
bHQgPSBmaXJzdENoaWxkKCk7CkBAIC0xNjYsMTkgKzEwNSw2IEBACiAKIEZyYW1lKiBGcmFtZVRy
ZWU6OmZpbmQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdAogewotICAgIGlmIChuYW1l
ID09ICJfc2VsZiIgfHwgbmFtZSA9PSAiX2N1cnJlbnQiIHx8IG5hbWUuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm4gbV90aGlzRnJhbWU7Ci0gICAgCi0gICAgaWYgKG5hbWUgPT0gIl90b3AiKQot
ICAgICAgICByZXR1cm4gdG9wKCk7Ci0gICAgCi0gICAgaWYgKG5hbWUgPT0gIl9wYXJlbnQiKQot
ICAgICAgICByZXR1cm4gcGFyZW50KCkgPyBwYXJlbnQoKSA6IG1fdGhpc0ZyYW1lOwotCi0gICAg
Ly8gU2luY2UgIl9ibGFuayIgc2hvdWxkIG5ldmVyIGJlIGFueSBmcmFtZSdzIG5hbWUsIHRoZSBm
b2xsb3dpbmcganVzdCBhbW91bnRzIHRvIGFuIG9wdGltaXphdGlvbi4KLSAgICBpZiAobmFtZSA9
PSAiX2JsYW5rIikKLSAgICAgICAgcmV0dXJuIDA7Ci0KICAgICAvLyBTZWFyY2ggc3VidHJlZSBz
dGFydGluZyB3aXRoIHRoaXMgZnJhbWUgZmlyc3QuCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBt
X3RoaXNGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KG1f
dGhpc0ZyYW1lKSkKICAgICAgICAgaWYgKGZyYW1lLT50cmVlKCktPm5hbWUoKSA9PSBuYW1lKQpA
QCAtMjA5LDYgKzEzNSwxNyBAQAogICAgICAgICB9CiAgICAgfQogCisgICAgLy8gQ2FuJ3QgZmlu
ZCB0aGUgZnJhbWUgaW4gb3VyIGZyYW1lIHRyZWUgLSBsZXRzIHNlZSBpZiBpdHMgb25lIG9mIHRo
ZQorICAgIC8vIHByZWRlZmluZWQgbmFtZXMuCisgICAgaWYgKG5hbWUgPT0gIl9zZWxmIiB8fCBu
YW1lID09ICJfY3VycmVudCIgfHwgbmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBtX3Ro
aXNGcmFtZTsKKyAgICAKKyAgICBpZiAobmFtZSA9PSAiX3RvcCIpCisgICAgICAgIHJldHVybiB0
b3AoKTsKKyAgICAKKyAgICBpZiAobmFtZSA9PSAiX3BhcmVudCIpCisgICAgICAgIHJldHVybiBw
YXJlbnQoKSA/IHBhcmVudCgpIDogbV90aGlzRnJhbWU7CisKICAgICByZXR1cm4gMDsKIH0KIApA
QCAtMjk2LDEzICsyMzMsMTEgQEAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1GcmFtZSogRnJh
bWVUcmVlOjp0b3AoYm9vbCBjaGVja0ZvckRpc2Nvbm5lY3RlZEZyYW1lKSBjb25zdAorRnJhbWUq
IEZyYW1lVHJlZTo6dG9wKCkgY29uc3QKIHsKICAgICBGcmFtZSogZnJhbWUgPSBtX3RoaXNGcmFt
ZTsKICAgICBmb3IgKEZyYW1lKiBwYXJlbnQgPSBtX3RoaXNGcmFtZTsgcGFyZW50OyBwYXJlbnQg
PSBwYXJlbnQtPnRyZWUoKS0+cGFyZW50KCkpIHsKICAgICAgICAgZnJhbWUgPSBwYXJlbnQ7Ci0g
ICAgICAgIGlmIChjaGVja0ZvckRpc2Nvbm5lY3RlZEZyYW1lICYmIGZyYW1lLT5pc0Rpc2Nvbm5l
Y3RlZCgpKQotICAgICAgICAgICAgcmV0dXJuIGZyYW1lOwogICAgIH0KICAgICByZXR1cm4gZnJh
bWU7CiB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wYWdlL0ZyYW1lVHJlZS5oCShyZXZpc2lvbiA0MTg0NCkKKysrIFdlYkNvcmUvcGFnZS9G
cmFtZVRyZWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQAogICAgICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICAgICAg
dm9pZCBzZXROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgICAgICB2b2lkIGNsZWFyTmFt
ZSgpOwotICAgICAgICBGcmFtZSogcGFyZW50KGJvb2wgY2hlY2tGb3JEaXNjb25uZWN0ZWRGcmFt
ZSA9IGZhbHNlKSBjb25zdDsKKyAgICAgICAgRnJhbWUqIHBhcmVudCgpIGNvbnN0IHtyZXR1cm4g
bV9wYXJlbnQ7IH0KICAgICAgICAgdm9pZCBzZXRQYXJlbnQoRnJhbWUqIHBhcmVudCkgeyBtX3Bh
cmVudCA9IHBhcmVudDsgfQogICAgICAgICAKICAgICAgICAgRnJhbWUqIG5leHRTaWJsaW5nKCkg
Y29uc3QgeyByZXR1cm4gbV9uZXh0U2libGluZy5nZXQoKTsgfQpAQCAtNjIsMTEgKzYyLDggQEAK
ICAgICAgICAgRnJhbWUqIGNoaWxkKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKICAgICAgICAgRnJh
bWUqIGNoaWxkKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3Q7CiAgICAgICAgIEZyYW1l
KiBmaW5kKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3Q7CisgICAgICAgIEZyYW1lKiB0
b3AoKSBjb25zdDsKIAotICAgICAgICBBdG9taWNTdHJpbmcgdW5pcXVlQ2hpbGROYW1lKGNvbnN0
IEF0b21pY1N0cmluZyYgcmVxdWVzdGVkTmFtZSkgY29uc3Q7Ci0KLSAgICAgICAgRnJhbWUqIHRv
cChib29sIGNoZWNrRm9yRGlzY29ubmVjdGVkRnJhbWUgPSBmYWxzZSkgY29uc3Q7Ci0KICAgICBw
cml2YXRlOgogICAgICAgICBGcmFtZSogZGVlcExhc3RDaGlsZCgpIGNvbnN0OwogCkluZGV4OiBX
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZS5j
cHAJKHJldmlzaW9uIDQxODQ0KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTMxLDcgKzEzMSw2IEBACiAgICAgLCBtX2hpZ2hsaWdodFRleHRNYXRjaGVzKGZh
bHNlKQogICAgICwgbV9pblZpZXdTb3VyY2VNb2RlKGZhbHNlKQogICAgICwgbV9uZWVkc1JlYXBw
bHlTdHlsZXMoZmFsc2UpCi0gICAgLCBtX2lzRGlzY29ubmVjdGVkKGZhbHNlKQogICAgICwgbV9l
eGNsdWRlRnJvbVRleHRTZWFyY2goZmFsc2UpCiAjaWYgRlJBTUVfTE9BRFNfVVNFUl9TVFlMRVNI
RUVUCiAgICAgLCBtX3VzZXJTdHlsZVNoZWV0TG9hZGVyKDApCkBAIC0xMTQ5LDE2ICsxMTQ4LDYg
QEAKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyUGFydCo+KG9iamVjdCk7CiB9CiAKLWJv
b2wgRnJhbWU6OmlzRGlzY29ubmVjdGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pc0Rpc2Nv
bm5lY3RlZDsKLX0KLQotdm9pZCBGcmFtZTo6c2V0SXNEaXNjb25uZWN0ZWQoYm9vbCBpc0Rpc2Nv
bm5lY3RlZCkKLXsKLSAgICBtX2lzRGlzY29ubmVjdGVkID0gaXNEaXNjb25uZWN0ZWQ7Ci19Ci0K
IGJvb2wgRnJhbWU6OmV4Y2x1ZGVGcm9tVGV4dFNlYXJjaCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fZXhjbHVkZUZyb21UZXh0U2VhcmNoOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVs
ZW1lbnRCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVu
dEJhc2UuY3BwCShyZXZpc2lvbiA0MTg0NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVt
ZW50QmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDggKzg5LDYgQEAKIAogdm9pZCBIVE1M
RnJhbWVFbGVtZW50QmFzZTo6b3BlblVSTCgpCiB7Ci0gICAgQVNTRVJUKCFtX2ZyYW1lTmFtZS5p
c0VtcHR5KCkpOwotCiAgICAgaWYgKCFpc1VSTEFsbG93ZWQobV9VUkwpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTE1NCw5ICsxNTIsNiBAQAogICAgIGlmIChtX2ZyYW1lTmFtZS5pc051bGwoKSkK
ICAgICAgICAgbV9mcmFtZU5hbWUgPSBnZXRBdHRyaWJ1dGUoaWRBdHRyKTsKICAgICAKLSAgICBp
ZiAoRnJhbWUqIHBhcmVudEZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKLSAgICAgICAgbV9m
cmFtZU5hbWUgPSBwYXJlbnRGcmFtZS0+dHJlZSgpLT51bmlxdWVDaGlsZE5hbWUobV9mcmFtZU5h
bWUpOwotICAgIAogICAgIG9wZW5VUkwoKTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDE4NDQp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBA
QAorMjAwOS0wMy0yMCAgU3ZlcnJpciBBLiBCZXJnIDxzdmVycmlyQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworCUZpeCBmb3IgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTAwCisKKwlUaGlzIHRlc3QgYWxzbyB2
ZXJpZmllcyB0aGF0IGFsbCBmcmFtZSBuYW1lcyBhcmUgYWxsb3dlZC4gIEluY2x1ZGluZyB0aG9z
ZSBzdGFydGluZyB3aXRoCisJYW4gdW5kZXJzY29yZSwgZW1wdHkgbmFtZXMgYW5kIGR1cGxpY2F0
ZSBuYW1lcyBhcmUgZmluZS4gIFRoaXMgYnJpbmdzIFdlYktpdCBtb3JlIGluIGxpbmUKKwl3aXRo
IG90aGVyIGJyb3dzZXJzIChJRS9GRikuCisKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mcmFtZS1u
YW1lLWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9m
cmFtZS1uYW1lLWFsbG93ZWQuaHRtbDogQWRkZWQuCisKKz09PT09PT0KIDIwMDktMDMtMTkgIEdl
b2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBT
YW0gV2VpbmlnLgpAQCAtMzYxLDYgKzM3NSw3IEBACiAgICAgICAgICogcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvaW5zZXJ0aW5nL2luc2VydC1kaXYtMDIxLWV4cGVjdGVkLnR4dDoKICAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZWRpdGluZy9zdHlsZS9ibG9jay1zdHlsZXMtMDA3LWV4cGVjdGVkLnR4dDoK
IAorPj4+Pj4+PiAucjQxODQ0CiAyMDA5LTAzLTE3ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLW5hbWUtYWxsb3dlZC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtbmFtZS1hbGxvd2VkLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1l
LW5hbWUtYWxsb3dlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAK
K1Rlc3QgZm9yIEJ1ZyAyMzkwMDogQnVnIDIzOTAwOiBDcmFzaCBpZiBhbnkgZnJhbWUgaW4gYSBm
cmFtZXNldCBpcyBuYW1lZCBfdG9wDQorDQorTWFrZXMgc3VyZSBmcmFtZXMgY2FuIGhhdmUgbmFt
ZXMgc3RhcnRpbmcgd2l0aCBfICh1bmRlcnNjb3JlKS4NCisNCitBbHNvIGFsbG93IG11bHRpcGxl
IGZyYW1lcyB3aXRoIHNhbWUgbmFtZSBhbmQgZW10cHkgbmFtZS4NCisNCisgICAgICAgIA0KK2Zy
YW1lc1swXS5uYW1lIChzaG91bGQgYmUgX2JsYW5rKTogX2JsYW5rDQorDQorZnJhbWVzWzFdLm5h
bWUgKHNob3VsZCBiZSBfY3VycmVudCk6IF9jdXJyZW50DQorDQorZnJhbWVzWzJdLm5hbWUgKHNo
b3VsZCBiZSBfcGFyZW50KTogX3BhcmVudA0KKw0KK2ZyYW1lc1szXS5uYW1lIChzaG91bGQgYmUg
X3NlbGYpOiBfc2VsZg0KKw0KK2ZyYW1lc1s0XS5uYW1lIChzaG91bGQgYmUgX3RvcCk6IF90b3AN
CisNCitmcmFtZXNbNV0ubmFtZSAoc2hvdWxkIGJlIF9mb29iYXIpOiBfZm9vYmFyDQorDQorZnJh
bWVzWzZdLm5hbWUgKHNob3VsZCBiZSBbZW1wdHldKToNCisNCitmcmFtZXNbN10ubmFtZSAoc2hv
dWxkIGJlIG15ZnJhbWUpOiBteWZyYW1lDQorDQorZnJhbWVzWzhdLm5hbWUgKHNob3VsZCBiZSBt
eWZyYW1lKTogbXlmcmFtZQ0KK1Rlc3QgZm9yIEJ1ZyAyMzkwMDogQnVnIDIzOTAwOiBDcmFzaCBp
ZiBhbnkgZnJhbWUgaW4gYSBmcmFtZXNldCBpcyBuYW1lZCBfdG9wDQorDQorTWFrZXMgc3VyZSBm
cmFtZXMgY2FuIGhhdmUgbmFtZXMgc3RhcnRpbmcgd2l0aCBfICh1bmRlcnNjb3JlKS4NCisNCitB
bHNvIGFsbG93IG11bHRpcGxlIGZyYW1lcyB3aXRoIHNhbWUgbmFtZSBhbmQgZW10cHkgbmFtZS4N
CisNCisgICAgICAgIA0KK2ZyYW1lc1swXS5uYW1lIChzaG91bGQgYmUgX2JsYW5rKTogX2JsYW5r
DQorDQorZnJhbWVzWzFdLm5hbWUgKHNob3VsZCBiZSBfY3VycmVudCk6IF9jdXJyZW50DQorDQor
ZnJhbWVzWzJdLm5hbWUgKHNob3VsZCBiZSBfcGFyZW50KTogX3BhcmVudA0KKw0KK2ZyYW1lc1sz
XS5uYW1lIChzaG91bGQgYmUgX3NlbGYpOiBfc2VsZg0KKw0KK2ZyYW1lc1s0XS5uYW1lIChzaG91
bGQgYmUgX3RvcCk6IF90b3ANCisNCitmcmFtZXNbNV0ubmFtZSAoc2hvdWxkIGJlIF9mb29iYXIp
OiBfZm9vYmFyDQorDQorZnJhbWVzWzZdLm5hbWUgKHNob3VsZCBiZSBbZW1wdHldKToNCisNCitm
cmFtZXNbN10ubmFtZSAoc2hvdWxkIGJlIG15ZnJhbWUpOiBteWZyYW1lDQorDQorZnJhbWVzWzhd
Lm5hbWUgKHNob3VsZCBiZSBteWZyYW1lKTogbXlmcmFtZQ0KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL2ZyYW1lLW5hbWUtYWxsb3dlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLW5hbWUtYWxsb3dlZC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtbmFtZS1hbGxvd2VkLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsOTAgQEAKKzxodG1sPg0KKzxoZWFkPg0KKzxzY3JpcHQ+DQorZnVuY3Rp
b24gcHJpbnQobWVzc2FnZSkgew0KKwl2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgicCIpOw0KKwlwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUobWVzc2FnZSkpOw0KKwlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVu
ZENoaWxkKHBhcmFncmFwaCk7DQorfQ0KKw0KK2Z1bmN0aW9uIHRlc3QoKSB7DQorCWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsNCisJCXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7DQorCX0NCisJDQorCXByaW50KCJmcmFtZXNbMF0ubmFtZSAoc2hvdWxk
IGJlIF9ibGFuayk6ICIgKyBmcmFtZXNbMF0ubmFtZSk7DQorCXByaW50KCJmcmFtZXNbMV0ubmFt
ZSAoc2hvdWxkIGJlIF9jdXJyZW50KTogIiArIGZyYW1lc1sxXS5uYW1lKTsNCisJcHJpbnQoImZy
YW1lc1syXS5uYW1lIChzaG91bGQgYmUgX3BhcmVudCk6ICIgKyBmcmFtZXNbMl0ubmFtZSk7DQor
CXByaW50KCJmcmFtZXNbM10ubmFtZSAoc2hvdWxkIGJlIF9zZWxmKTogIiArIGZyYW1lc1szXS5u
YW1lKTsNCisJcHJpbnQoImZyYW1lc1s0XS5uYW1lIChzaG91bGQgYmUgX3RvcCk6ICIgKyBmcmFt
ZXNbNF0ubmFtZSk7DQorCXByaW50KCJmcmFtZXNbNV0ubmFtZSAoc2hvdWxkIGJlIF9mb29iYXIp
OiAiICsgZnJhbWVzWzVdLm5hbWUpOw0KKwlwcmludCgiZnJhbWVzWzZdLm5hbWUgKHNob3VsZCBi
ZSBbZW1wdHldKTogIiArIGZyYW1lc1s2XS5uYW1lKTsNCisJcHJpbnQoImZyYW1lc1s3XS5uYW1l
IChzaG91bGQgYmUgbXlmcmFtZSk6ICIgKyBmcmFtZXNbN10ubmFtZSk7DQorCXByaW50KCJmcmFt
ZXNbOF0ubmFtZSAoc2hvdWxkIGJlIG15ZnJhbWUpOiAiICsgZnJhbWVzWzhdLm5hbWUpOw0KK30N
Cis8L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPg0KKzxwPlRlc3Qg
Zm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkw
MCI+QnVnDQorMjM5MDA8L2E+OiBCdWcgMjM5MDA6IENyYXNoIGlmIGFueSBmcmFtZSBpbiBhIGZy
YW1lc2V0IGlzIG5hbWVkIF90b3A8L3A+DQorPHA+TWFrZXMgc3VyZSBmcmFtZXMgY2FuIGhhdmUg
bmFtZXMgc3RhcnRpbmcgd2l0aCBfICh1bmRlcnNjb3JlKS48L3A+DQorPHA+QWxzbyBhbGxvdyBt
dWx0aXBsZSBmcmFtZXMgd2l0aCBzYW1lIG5hbWUgYW5kIGVtdHB5IG5hbWUuPC9wPg0KKw0KKzxp
ZnJhbWUgbmFtZT0iX2JsYW5rIiBzcmM9ImFib3V0OmJsYW5rIiB3aWR0aD0iNDAiIGhlaWdodD0i
MzAiPjwvaWZyYW1lPg0KKzxpZnJhbWUgbmFtZT0iX2N1cnJlbnQiIHNyYz0iYWJvdXQ6Ymxhbmsi
IHdpZHRoPSI0MCIgaGVpZ2h0PSIzMCI+PC9pZnJhbWU+DQorPGlmcmFtZSBuYW1lPSJfcGFyZW50
IiBzcmM9ImFib3V0OmJsYW5rIiB3aWR0aD0iNDAiIGhlaWdodD0iMzAiPjwvaWZyYW1lPg0KKzxp
ZnJhbWUgbmFtZT0iX3NlbGYiIHNyYz0iYWJvdXQ6YmxhbmsiIHdpZHRoPSI0MCIgaGVpZ2h0PSIz
MCI+PC9pZnJhbWU+DQorPGlmcmFtZSBuYW1lPSJfdG9wIiBzcmM9ImFib3V0OmJsYW5rIiB3aWR0
aD0iNDAiIGhlaWdodD0iMzAiPjwvaWZyYW1lPg0KKzxpZnJhbWUgbmFtZT0iX2Zvb2JhciIgc3Jj
PSJhYm91dDpibGFuayIgd2lkdGg9IjQwIiBoZWlnaHQ9IjMwIj48L2lmcmFtZT4NCis8aWZyYW1l
IG5hbWU9IiIgc3JjPSJhYm91dDpibGFuayIgd2lkdGg9IjQwIiBoZWlnaHQ9IjMwIj48L2lmcmFt
ZT4NCis8aWZyYW1lIG5hbWU9Im15ZnJhbWUiIHNyYz0iYWJvdXQ6YmxhbmsiIHdpZHRoPSI0MCIg
aGVpZ2h0PSIzMCI+PC9pZnJhbWU+DQorPGlmcmFtZSBuYW1lPSJteWZyYW1lIiBzcmM9ImFib3V0
OmJsYW5rIiB3aWR0aD0iNDAiIGhlaWdodD0iMzAiPjwvaWZyYW1lPg0KKzxocj4NCis8ZGl2IGlk
PSdjb25zb2xlJz48L2Rpdj4NCis8L2JvZHk+DQorPC9odG1sPg0KKzxodG1sPg0KKzxoZWFkPg0K
KzxzY3JpcHQ+DQorZnVuY3Rpb24gcHJpbnQobWVzc2FnZSkgew0KKwl2YXIgcGFyYWdyYXBoID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOw0KKwlwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOw0KKwlkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7DQorfQ0KKw0KK2Z1bmN0aW9uIHRl
c3QoKSB7DQorCWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsNCisJCXdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQorCX0NCisJDQorCXByaW50KCJmcmFt
ZXNbMF0ubmFtZSAoc2hvdWxkIGJlIF9ibGFuayk6ICIgKyBmcmFtZXNbMF0ubmFtZSk7DQorCXBy
aW50KCJmcmFtZXNbMV0ubmFtZSAoc2hvdWxkIGJlIF9jdXJyZW50KTogIiArIGZyYW1lc1sxXS5u
YW1lKTsNCisJcHJpbnQoImZyYW1lc1syXS5uYW1lIChzaG91bGQgYmUgX3BhcmVudCk6ICIgKyBm
cmFtZXNbMl0ubmFtZSk7DQorCXByaW50KCJmcmFtZXNbM10ubmFtZSAoc2hvdWxkIGJlIF9zZWxm
KTogIiArIGZyYW1lc1szXS5uYW1lKTsNCisJcHJpbnQoImZyYW1lc1s0XS5uYW1lIChzaG91bGQg
YmUgX3RvcCk6ICIgKyBmcmFtZXNbNF0ubmFtZSk7DQorCXByaW50KCJmcmFtZXNbNV0ubmFtZSAo
c2hvdWxkIGJlIF9mb29iYXIpOiAiICsgZnJhbWVzWzVdLm5hbWUpOw0KKwlwcmludCgiZnJhbWVz
WzZdLm5hbWUgKHNob3VsZCBiZSBbZW1wdHldKTogIiArIGZyYW1lc1s2XS5uYW1lKTsNCisJcHJp
bnQoImZyYW1lc1s3XS5uYW1lIChzaG91bGQgYmUgbXlmcmFtZSk6ICIgKyBmcmFtZXNbN10ubmFt
ZSk7DQorCXByaW50KCJmcmFtZXNbOF0ubmFtZSAoc2hvdWxkIGJlIG15ZnJhbWUpOiAiICsgZnJh
bWVzWzhdLm5hbWUpOw0KK30NCis8L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHkgb25sb2FkPSJ0
ZXN0KCkiPg0KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzkwMCI+QnVnDQorMjM5MDA8L2E+OiBCdWcgMjM5MDA6IENyYXNoIGlm
IGFueSBmcmFtZSBpbiBhIGZyYW1lc2V0IGlzIG5hbWVkIF90b3A8L3A+DQorPHA+TWFrZXMgc3Vy
ZSBmcmFtZXMgY2FuIGhhdmUgbmFtZXMgc3RhcnRpbmcgd2l0aCBfICh1bmRlcnNjb3JlKS48L3A+
DQorPHA+QWxzbyBhbGxvdyBtdWx0aXBsZSBmcmFtZXMgd2l0aCBzYW1lIG5hbWUgYW5kIGVtdHB5
IG5hbWUuPC9wPg0KKw0KKzxpZnJhbWUgbmFtZT0iX2JsYW5rIiBzcmM9ImFib3V0OmJsYW5rIiB3
aWR0aD0iNDAiIGhlaWdodD0iMzAiPjwvaWZyYW1lPg0KKzxpZnJhbWUgbmFtZT0iX2N1cnJlbnQi
IHNyYz0iYWJvdXQ6YmxhbmsiIHdpZHRoPSI0MCIgaGVpZ2h0PSIzMCI+PC9pZnJhbWU+DQorPGlm
cmFtZSBuYW1lPSJfcGFyZW50IiBzcmM9ImFib3V0OmJsYW5rIiB3aWR0aD0iNDAiIGhlaWdodD0i
MzAiPjwvaWZyYW1lPg0KKzxpZnJhbWUgbmFtZT0iX3NlbGYiIHNyYz0iYWJvdXQ6YmxhbmsiIHdp
ZHRoPSI0MCIgaGVpZ2h0PSIzMCI+PC9pZnJhbWU+DQorPGlmcmFtZSBuYW1lPSJfdG9wIiBzcmM9
ImFib3V0OmJsYW5rIiB3aWR0aD0iNDAiIGhlaWdodD0iMzAiPjwvaWZyYW1lPg0KKzxpZnJhbWUg
bmFtZT0iX2Zvb2JhciIgc3JjPSJhYm91dDpibGFuayIgd2lkdGg9IjQwIiBoZWlnaHQ9IjMwIj48
L2lmcmFtZT4NCis8aWZyYW1lIG5hbWU9IiIgc3JjPSJhYm91dDpibGFuayIgd2lkdGg9IjQwIiBo
ZWlnaHQ9IjMwIj48L2lmcmFtZT4NCis8aWZyYW1lIG5hbWU9Im15ZnJhbWUiIHNyYz0iYWJvdXQ6
YmxhbmsiIHdpZHRoPSI0MCIgaGVpZ2h0PSIzMCI+PC9pZnJhbWU+DQorPGlmcmFtZSBuYW1lPSJt
eWZyYW1lIiBzcmM9ImFib3V0OmJsYW5rIiB3aWR0aD0iNDAiIGhlaWdodD0iMzAiPjwvaWZyYW1l
Pg0KKzxocj4NCis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4NCis8L2JvZHk+DQorPC9odG1sPg0K
</data>
<flag name="review"
          id="14203"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>