<?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>41319</bug_id>
          
          <creation_ts>2010-06-28 17:05:53 -0700</creation_ts>
          <short_desc>Implement HTMLTreeBuilder::reconstructTheActiveFormattingElements</short_desc>
          <delta_ts>2010-06-28 21:36:19 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>243982</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-28 17:05:53 -0700</bug_when>
    <thetext>Implement HTMLTreeBuilder::reconstructTheActiveFormattingElements</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243983</commentid>
    <comment_count>1</comment_count>
      <attachid>59960</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-28 17:08:35 -0700</bug_when>
    <thetext>Created attachment 59960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243989</commentid>
    <comment_count>2</comment_count>
      <attachid>59960</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-28 17:20:18 -0700</bug_when>
    <thetext>Comment on attachment 59960
Patch

I&apos;d rather this patch had tests.  If you wait 15 minutes, we&apos;ll have the harness landed...

WebCore/html/HTMLTreeBuilder.cpp:870
 +      // Spec: Possible active formatting elements include:
I&apos;d remove the word &quot;spec&quot; here.

WebCore/html/HTMLTreeBuilder.cpp:926
 +      for (; previousEntryIndex &gt; 0; previousEntryIndex--) {
Can we make this a while or a function that returns the answer?  Also, predecrement!

WebCore/html/HTMLTreeBuilder.cpp:932
 +      for (unsigned unopenEntryIndex = previousEntryIndex + 1; unopenEntryIndex &lt; m_activeFormattingElements.size(); ++unopenEntryIndex) {
Can we assert that previousEntryIndex is not the last guy in the list?

WebCore/html/HTMLTreeBuilder.h:155
 +          bool contains(Element* element)
We&apos;re going to need a cache here eventually.

WebCore/html/HTMLTreeBuilder.h:257
 +      };
Blank line below this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244020</commentid>
    <comment_count>3</comment_count>
      <attachid>59967</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-28 18:11:11 -0700</bug_when>
    <thetext>Created attachment 59967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244024</commentid>
    <comment_count>4</comment_count>
      <attachid>59967</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-28 18:22:23 -0700</bug_when>
    <thetext>Comment on attachment 59967
Patch

WebCore/html/HTMLTreeBuilder.h:217
 +      PassRefPtr&lt;Element&gt; createElement(AtomicHTMLToken&amp;);
I would have put a blank line here to paragraph these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244047</commentid>
    <comment_count>5</comment_count>
      <attachid>59967</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-28 19:52:44 -0700</bug_when>
    <thetext>Comment on attachment 59967
Patch

Clearing flags on attachment: 59967

Committed r62077: &lt;http://trac.webkit.org/changeset/62077&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244048</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-28 19:52:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244053</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-06-28 20:23:11 -0700</bug_when>
    <thetext>This broke the Windows Release and Debug build bots.

For completeness:

Windows Release Stdio: &lt;http://build.webkit.org/builders/Windows%20Release%20%28Build%29/builds/1051/steps/compile-webkit/logs/stdio&gt;

Windows Debug Stdio: &lt;http://build.webkit.org/builders/Windows%20Debug%20%28Build%29/builds/18218/steps/compile-webkit/logs/stdio&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244056</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-06-28 20:34:48 -0700</bug_when>
    <thetext>Landed attempt to fix the build in change-set 62080 &lt;https://trac.webkit.org/changeset/62080&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244065</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-28 21:13:15 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/62080 might have broken Chromium Mac Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244070</commentid>
    <comment_count>10</comment_count>
      <attachid>59981</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-28 21:26:34 -0700</bug_when>
    <thetext>Created attachment 59981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244072</commentid>
    <comment_count>11</comment_count>
      <attachid>59981</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-28 21:30:15 -0700</bug_when>
    <thetext>Comment on attachment 59981
Patch

I don&apos;t love it.  I&apos;d rather have iterators, but ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244075</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-28 21:36:19 -0700</bug_when>
    <thetext>Committed r62082: &lt;http://trac.webkit.org/changeset/62082&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59960</attachid>
            <date>2010-06-28 17:08:35 -0700</date>
            <delta_ts>2010-06-28 18:11:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41319-20100628170833.patch</filename>
            <type>text/plain</type>
            <size>5103</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODczNDgzNjlmYjI0ZTcyYWZjYTZiM2ZhMTkwNDE3M2Q3Njk0NmZjYi4uN2VkZGMyMTM0ODIxNmVj
ZGFiMmZlMWI1OGE1YjMwNjJkYmQyZWMzYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wNi0yOCAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEhUTUxUcmVlQnVpbGRlcjo6cmVjb25zdHJ1
Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMzE5CisKKyAgICAgICAgVGVzdGVkIGJ5IGh0bWw1bGli
L3J1bm5lci5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxUcmVlQnVpbGRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6Omluc2VydEZvcm1hdGluZ0VsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpyZWNvbnN0cnVjdFRoZUFjdGl2ZUZv
cm1hdHRpbmdFbGVtZW50cyk6CisgICAgICAgICogaHRtbC9IVE1MVHJlZUJ1aWxkZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6RWxlbWVudFN0YWNrOjpjb250YWlucyk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OkZvcm1hdGluZ0VsZW1lbnRFbnRy
eTo6Rm9ybWF0aW5nRWxlbWVudEVudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVp
bGRlcjo6Rm9ybWF0aW5nRWxlbWVudEVudHJ5OjopOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpGb3JtYXRpbmdFbGVtZW50RW50cnk6OmlzTWFya2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Rm9ybWF0aW5nRWxlbWVudEVudHJ5OjplbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Rm9ybWF0aW5nRWxlbWVudEVudHJ5
OjpyZXBsYWNlRWxlbWVudCk6CisKIDIwMTAtMDYtMjggIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxUcmVl
QnVpbGRlci5jcHAKaW5kZXggODExNGM4OGQ3MTQwZmQ4ZTYyN2ZkYzVjYTgxNTk0YWMzYThkZDc3
YS4uODA3MTAyZWVjNjkwMDMwYjRjZTNiZTQzMjQxM2VlM2I1ZDg5ZmE2YyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxU
cmVlQnVpbGRlci5jcHAKQEAgLTg2Niw2ICs4NjYsOSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
aW5zZXJ0U2VsZkNsb3NpbmdFbGVtZW50KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAKIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjppbnNlcnRGb3JtYXRpbmdFbGVtZW50KEF0b21pY0hUTUxUb2tlbiYg
dG9rZW4pCiB7CisgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1
cnJlbnQtd29yay9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI3RoZS1zdGFjay1vZi1vcGVuLWVsZW1l
bnRzCisgICAgLy8gU3BlYzogUG9zc2libGUgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHMgaW5j
bHVkZToKKyAgICAvLyBhLCBiLCBiaWcsIGNvZGUsIGVtLCBmb250LCBpLCBub2JyLCBzLCBzbWFs
bCwgc3RyaWtlLCBzdHJvbmcsIHR0LCBhbmQgdS4KICAgICBpbnNlcnRFbGVtZW50KHRva2VuKTsK
ICAgICBtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5hcHBlbmQoY3VycmVudEVsZW1lbnQoKSk7
CiB9CkBAIC05MTMsNyArOTE2LDI2IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRNTFRyZWVCdWls
ZGVyOjpjcmVhdGVFbGVtZW50KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAKIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpyZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAobV9hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgY29uc3QgRm9ybWF0aW5nRWxlbWVudEVu
dHJ5JiBsYXN0RW50cnkgPSBtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5sYXN0KCk7CisgICAg
aWYgKGxhc3RFbnRyeS5pc01hcmtlcigpIHx8IG1fb3BlbkVsZW1lbnRzLmNvbnRhaW5zKGxhc3RF
bnRyeS5lbGVtZW50KCkpKQorICAgICAgICByZXR1cm47CisKKyAgICB1bnNpZ25lZCBwcmV2aW91
c0VudHJ5SW5kZXggPSBtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5zaXplKCkgLSAxOworICAg
IGZvciAoOyBwcmV2aW91c0VudHJ5SW5kZXggPiAwOyBwcmV2aW91c0VudHJ5SW5kZXgtLSkgewor
ICAgICAgICBjb25zdCBGb3JtYXRpbmdFbGVtZW50RW50cnkmIHByZXZpb3VzRW50cnkgPSBtX2Fj
dGl2ZUZvcm1hdHRpbmdFbGVtZW50c1twcmV2aW91c0VudHJ5SW5kZXhdOworICAgICAgICBpZiAo
cHJldmlvdXNFbnRyeS5pc01hcmtlcigpIHx8IG1fb3BlbkVsZW1lbnRzLmNvbnRhaW5zKHByZXZp
b3VzRW50cnkuZWxlbWVudCgpKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGZv
ciAodW5zaWduZWQgdW5vcGVuRW50cnlJbmRleCA9IHByZXZpb3VzRW50cnlJbmRleCArIDE7IHVu
b3BlbkVudHJ5SW5kZXggPCBtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5zaXplKCk7ICsrdW5v
cGVuRW50cnlJbmRleCkgeworICAgICAgICBGb3JtYXRpbmdFbGVtZW50RW50cnkmIHVub3BlbmVk
RW50cnkgPSBtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50c1t1bm9wZW5FbnRyeUluZGV4XTsKKyAg
ICAgICAgLy8gRklYTUU6IFdlJ3JlIHN1cHBvc2VkIHRvIHNhdmUgdGhlIG9yaWdpbmFsIHRva2Vu
IGluIHRoZSBlbnRyeS4KKyAgICAgICAgQXRvbWljSFRNTFRva2VuIGZha2VUb2tlbihIVE1MVG9r
ZW46OlN0YXJ0VGFnLCB1bm9wZW5lZEVudHJ5LmVsZW1lbnQoKS0+bG9jYWxOYW1lKCkpOworICAg
ICAgICBpbnNlcnRFbGVtZW50KGZha2VUb2tlbik7CisgICAgICAgIHVub3BlbmVkRW50cnkucmVw
bGFjZUVsZW1lbnQoY3VycmVudEVsZW1lbnQoKSk7CisgICAgfQogfQogCiB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6ZmluaXNoZWQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVp
bGRlci5oIGIvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVpbGRlci5oCmluZGV4IGU1ZjVkYTJlYmU1
ZGRmNDUwZDU1MTRjMWU3MjVjNWQzN2M3ZDYwYzEuLjk2ZGJjN2UwZmQxMDQxZTZjNTgyNWRjYWEx
ODU3MjNlZjI2Y2JjNDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVHJlZUJ1aWxkZXIu
aAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRyZWVCdWlsZGVyLmgKQEAgLTE1Miw2ICsxNTIsMTUg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCisgICAgICAgIGJvb2wgY29u
dGFpbnMoRWxlbWVudCogZWxlbWVudCkKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChFbGVt
ZW50UmVjb3JkKiBwb3MgPSBtX3RvcC5nZXQoKTsgcG9zOyBwb3MgPSBwb3MtPm5leHQoKSkgewor
ICAgICAgICAgICAgICAgIGlmIChwb3MtPmVsZW1lbnQoKSA9PSBlbGVtZW50KQorICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgfQorCiAgICAgcHJpdmF0ZToKICAgICAgICAgT3duUHRyPEVsZW1l
bnRSZWNvcmQ+IG1fdG9wOwogICAgIH07CkBAIC0yMTMsNyArMjIyLDQwIEBAIHByaXZhdGU6CiAg
ICAgUmVmUHRyPEVsZW1lbnQ+IG1faGVhZEVsZW1lbnQ7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1f
Zm9ybUVsZW1lbnQ7CiAgICAgRWxlbWVudFN0YWNrIG1fb3BlbkVsZW1lbnRzOwotICAgIFZlY3Rv
cjxFbGVtZW50Kj4gbV9hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHM7CisKKyAgICBjbGFzcyBGb3Jt
YXRpbmdFbGVtZW50RW50cnkgeworICAgIHB1YmxpYzoKKyAgICAgICAgRm9ybWF0aW5nRWxlbWVu
dEVudHJ5KEVsZW1lbnQqIGVsZW1lbnQpCisgICAgICAgICAgICA6IG1fZWxlbWVudChlbGVtZW50
KQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoZWxlbWVudCk7CisgICAgICAgIH0KKwor
ICAgICAgICBlbnVtIE1hcmtlckVudHJ5VHlwZSB7IE1hcmtlckVudHJ5IH07CisgICAgICAgIEZv
cm1hdGluZ0VsZW1lbnRFbnRyeShNYXJrZXJFbnRyeVR5cGUpCisgICAgICAgIHsKKyAgICAgICAg
fQorCisgICAgICAgIGJvb2wgaXNNYXJrZXIoKSBjb25zdCB7IHJldHVybiAhbV9lbGVtZW50OyB9
CisKKyAgICAgICAgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAg
ICAgIC8vIFRoZSBmYWN0IHRoYXQgIW1fZWxlbWVudCA9PSBpc01hcmtlciBpcyBhbiBpbXBsZW1l
bnRhdGlvbiBkZXRhaWwKKyAgICAgICAgICAgIC8vIGNhbGxlcnMgc2hvdWxkIGNoZWNrIGlzTWFy
a2VyKCkgYmVmb3JlIGNhbGxpbmcgZWxlbWVudCgpLgorICAgICAgICAgICAgQVNTRVJUKG1fZWxl
bWVudCk7CisgICAgICAgICAgICByZXR1cm4gbV9lbGVtZW50LmdldCgpOworICAgICAgICB9CisK
KyAgICAgICAgdm9pZCByZXBsYWNlRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQp
CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChtX2VsZW1lbnQpOyAvLyBPbmNlIGEgbWFy
a2VyLCBhbHdheXMgYSBtYXJrZXIuCisgICAgICAgICAgICBtX2VsZW1lbnQgPSBlbGVtZW50Owor
ICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWZQdHI8RWxlbWVudD4gbV9lbGVt
ZW50OworICAgIH07CisgICAgVmVjdG9yPEZvcm1hdGluZ0VsZW1lbnRFbnRyeT4gbV9hY3RpdmVG
b3JtYXR0aW5nRWxlbWVudHM7CiAgICAgYm9vbCBtX2ZyYW1lc2V0T2s7CiAKICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IGVycm9yIHJlcG9ydGluZy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59967</attachid>
            <date>2010-06-28 18:11:11 -0700</date>
            <delta_ts>2010-06-28 21:26:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41319-20100628181109.patch</filename>
            <type>text/plain</type>
            <size>8094</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjUxZTcxMjY2MzEzMTZlZTgzMzkxZmNiZTE2NzcyMTQwMmExMDE1Yy4uNDgzMTkzNTUzNTY3MDAy
NmVjODQxYjQ2NDg5MzVhMmUzODlmNDg3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0wNi0yOCAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEhUTUxUcmVlQnVpbGRlcjo6cmVjb25zdHJ1
Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMzE5CisKKyAgICAgICAgVGhpcyBpcyBiYXNpY2FsbHkg
YSBkaXJlY3QgdHJhbnNjcmlwdGlvbiBvZiBIVE1MNSBUcmVlQnVpbGRlciBzcGVjOgorICAgICAg
ICAgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0
aXBhZ2UvcGFyc2luZy5odG1sI2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMKKwor
ICAgICAgICBUaGlzIGNvZGUgaXMgY292ZXJlZCBieSB2YXJpb3VzIHRlc3RzIGluIGh0bWw1bGli
L3J1bm5lciB3aGljaCB3ZQorICAgICAgICBjYW4ndCBydW4geWV0IGR1ZSB0byBvdGhlciBhc3Nl
cnRzLiAgQWRhbSBhbmQgSSBhcmUgd29ya2luZyBvbgorICAgICAgICBnZXR0aW5nIHJpZCBvZiB0
aG9zZSBBU1NFUlRTIHNvIHRoYXQgdGhpcyAoYW5kIG90aGVyIGNvZGUpIHdpbGwKKyAgICAgICAg
YmUgYmV0dGVyIHRlc3RlZCBzaG9ydGx5LgorCisgICAgICAgICogaHRtbC9IVE1MVHJlZUJ1aWxk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjppbnNlcnRGb3JtYXRp
bmdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cmVjb25zdHJ1
Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMpOgorICAgICAgICAqIGh0bWwvSFRNTFRyZWVC
dWlsZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OkVsZW1lbnRTdGFj
azo6Y29udGFpbnMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpGb3JtYXRp
bmdFbGVtZW50RW50cnk6OkZvcm1hdGluZ0VsZW1lbnRFbnRyeSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVHJlZUJ1aWxkZXI6OkZvcm1hdGluZ0VsZW1lbnRFbnRyeTo6KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Rm9ybWF0aW5nRWxlbWVudEVudHJ5Ojppc01hcmtlcik6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OkZvcm1hdGluZ0VsZW1lbnRFbnRy
eTo6ZWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OkZvcm1hdGlu
Z0VsZW1lbnRFbnRyeTo6cmVwbGFjZUVsZW1lbnQpOgorCiAyMDEwLTA2LTIzICBKb2huIEdyZWdn
ICA8am9obm55Z0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJh
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVpbGRlci5jcHAgYi9XZWJDb3Jl
L2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcAppbmRleCA4MTE0Yzg4ZDcxNDBmZDhlNjI3ZmRjNWNh
ODE1OTRhYzNhOGRkNzdhLi5hNzVmZDlmMjRjMWU2OGM5NTJlMWZiYTFlOGYxZGM3Y2M5NDg0MmQ0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtNDI3LDE4ICs0MjcsMTggQEAgdm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQog
ICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IGFUYWcpIHsKICAgICAgICAgICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgICAgICAgICByZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVt
ZW50cygpOwotICAgICAgICAgICAgaW5zZXJ0Rm9ybWF0aW5nRWxlbWVudCh0b2tlbik7CisgICAg
ICAgICAgICBpbnNlcnRGb3JtYXR0aW5nRWxlbWVudCh0b2tlbik7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBiVGFnIHx8IHRva2Vu
Lm5hbWUoKSA9PSBiaWdUYWcgfHwgdG9rZW4ubmFtZSgpID09IGNvZGVUYWcgfHwgdG9rZW4ubmFt
ZSgpID09IGVtVGFnIHx8IHRva2VuLm5hbWUoKSA9PSBmb250VGFnIHx8IHRva2VuLm5hbWUoKSA9
PSBpVGFnIHx8IHRva2VuLm5hbWUoKSA9PSBzVGFnIHx8IHRva2VuLm5hbWUoKSA9PSBzbWFsbFRh
ZyB8fCB0b2tlbi5uYW1lKCkgPT0gc3RyaWtlVGFnIHx8IHRva2VuLm5hbWUoKSA9PSBzdHJvbmdU
YWcgfHwgdG9rZW4ubmFtZSgpID09IHR0VGFnIHx8IHRva2VuLm5hbWUoKSA9PSB1VGFnKSB7CiAg
ICAgICAgICAgICByZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOwotICAg
ICAgICAgICAgaW5zZXJ0Rm9ybWF0aW5nRWxlbWVudCh0b2tlbik7CisgICAgICAgICAgICBpbnNl
cnRGb3JtYXR0aW5nRWxlbWVudCh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBub2JyVGFnKSB7CiAgICAgICAgICAgICBy
ZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOwogICAgICAgICAgICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgICAgIGluc2VydEZvcm1hdGluZ0VsZW1lbnQodG9rZW4p
OworICAgICAgICAgICAgaW5zZXJ0Rm9ybWF0dGluZ0VsZW1lbnQodG9rZW4pOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYXBwbGV0
VGFnIHx8IHRva2VuLm5hbWUoKSA9PSBtYXJxdWVlVGFnIHx8IHRva2VuLm5hbWUoKSA9PSBvYmpl
Y3RUYWcpIHsKQEAgLTg2NCw4ICs4NjQsMTEgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6Omluc2Vy
dFNlbGZDbG9zaW5nRWxlbWVudChBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgIC8vIGh0dHA6
Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3Rv
a2VuaXphdGlvbi5odG1sI2Fja25vd2xlZGdlLXNlbGYtY2xvc2luZy1mbGFnCiB9CiAKLXZvaWQg
SFRNTFRyZWVCdWlsZGVyOjppbnNlcnRGb3JtYXRpbmdFbGVtZW50KEF0b21pY0hUTUxUb2tlbiYg
dG9rZW4pCit2b2lkIEhUTUxUcmVlQnVpbGRlcjo6aW5zZXJ0Rm9ybWF0dGluZ0VsZW1lbnQoQXRv
bWljSFRNTFRva2VuJiB0b2tlbikKIHsKKyAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjdGhlLXN0YWNr
LW9mLW9wZW4tZWxlbWVudHMKKyAgICAvLyBQb3NzaWJsZSBhY3RpdmUgZm9ybWF0dGluZyBlbGVt
ZW50cyBpbmNsdWRlOgorICAgIC8vIGEsIGIsIGJpZywgY29kZSwgZW0sIGZvbnQsIGksIG5vYnIs
IHMsIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgdHQsIGFuZCB1LgogICAgIGluc2VydEVsZW1lbnQo
dG9rZW4pOwogICAgIG1fYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmFwcGVuZChjdXJyZW50RWxl
bWVudCgpKTsKIH0KQEAgLTkxMSw5ICs5MTQsMzkgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1M
VHJlZUJ1aWxkZXI6OmNyZWF0ZUVsZW1lbnQoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICBy
ZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CiB9CiAKK3Vuc2lnbmVkIEhUTUxUcmVlQnVpbGRlcjo6
aW5kZXhPZkxhc3RPcGVuRm9ybWF0dGluZ0VsZW1lbnRPck1hcmtlcigpIGNvbnN0Cit7CisgICAg
QVNTRVJUKCFtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pc0VtcHR5KCkpOworICAgIGZvciAo
aW50IGluZGV4ID0gbV9hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuc2l6ZSgpIC0gMTsgaW5kZXgg
Pj0gMDsgLS1pbmRleCkgeworICAgICAgICBjb25zdCBGb3JtYXR0aW5nRWxlbWVudEVudHJ5JiBl
bnRyeSA9IG1fYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzW2luZGV4XTsKKyAgICAgICAgaWYgKGVu
dHJ5LmlzTWFya2VyKCkgfHwgbV9vcGVuRWxlbWVudHMuY29udGFpbnMoZW50cnkuZWxlbWVudCgp
KSkKKyAgICAgICAgICAgIHJldHVybiBpbmRleDsKKyAgICB9CisgICAgcmV0dXJuIC0xOyAvLyBO
byBlbGVtZW50cyBhcmUgb3BlbiEKK30KKwordm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnJlb3BlbkZv
cm1hdHRpbmdFbGVtZW50c0FmdGVySW5kZXgodW5zaWduZWQgbGFzdE9wZW5FbGVtZW50SW5kZXgp
Cit7CisgICAgVmVjdG9yPEZvcm1hdHRpbmdFbGVtZW50RW50cnk+JiBzdGFjayA9IG1fYWN0aXZl
Rm9ybWF0dGluZ0VsZW1lbnRzOworICAgIHVuc2lnbmVkIHVub3BlbkVudHJ5SW5kZXggPSBsYXN0
T3BlbkVsZW1lbnRJbmRleCArIDE7CisgICAgQVNTRVJUKHVub3BlbkVudHJ5SW5kZXggPCBzdGFj
ay5zaXplKCkpOworICAgIGZvciAoOyB1bm9wZW5FbnRyeUluZGV4IDwgc3RhY2suc2l6ZSgpOyAr
K3Vub3BlbkVudHJ5SW5kZXgpIHsKKyAgICAgICAgRm9ybWF0dGluZ0VsZW1lbnRFbnRyeSYgdW5v
cGVuZWRFbnRyeSA9IHN0YWNrW3Vub3BlbkVudHJ5SW5kZXhdOworICAgICAgICAvLyBGSVhNRTog
V2UncmUgc3VwcG9zZWQgdG8gc2F2ZSB0aGUgb3JpZ2luYWwgdG9rZW4gaW4gdGhlIGVudHJ5Lgor
ICAgICAgICBBdG9taWNIVE1MVG9rZW4gZmFrZVRva2VuKEhUTUxUb2tlbjo6U3RhcnRUYWcsIHVu
b3BlbmVkRW50cnkuZWxlbWVudCgpLT5sb2NhbE5hbWUoKSk7CisgICAgICAgIGluc2VydEVsZW1l
bnQoZmFrZVRva2VuKTsKKyAgICAgICAgdW5vcGVuZWRFbnRyeS5yZXBsYWNlRWxlbWVudChjdXJy
ZW50RWxlbWVudCgpKTsKKyAgICB9Cit9CisKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpyZWNvbnN0
cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICBpZiAobV9hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICB1bnNpZ25lZCBsYXN0T3BlbkVsZW1lbnRJbmRleCA9IGluZGV4T2ZM
YXN0T3BlbkZvcm1hdHRpbmdFbGVtZW50T3JNYXJrZXIoKTsKKyAgICBpZiAobGFzdE9wZW5FbGVt
ZW50SW5kZXggPCBtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5zaXplKCkgLSAxKQorICAgICAg
ICByZW9wZW5Gb3JtYXR0aW5nRWxlbWVudHNBZnRlckluZGV4KGxhc3RPcGVuRWxlbWVudEluZGV4
KTsKIH0KIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmZpbmlzaGVkKCkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MVHJlZUJ1aWxkZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MVHJlZUJ1aWxk
ZXIuaAppbmRleCBlNWY1ZGEyZWJlNWRkZjQ1MGQ1NTE0YzFlNzI1YzVkMzdjN2Q2MGMxLi4xMjQz
MTRhYTNjOTlkMmEzMDhmOTMyMjc2YWViNzk3MTIyY2QzZjk2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTFRyZWVCdWlsZGVyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVpbGRl
ci5oCkBAIC0xNTIsNiArMTUyLDE1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIAorICAgICAgICBib29sIGNvbnRhaW5zKEVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0CisgICAg
ICAgIHsKKyAgICAgICAgICAgIGZvciAoRWxlbWVudFJlY29yZCogcG9zID0gbV90b3AuZ2V0KCk7
IHBvczsgcG9zID0gcG9zLT5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAocG9zLT5lbGVt
ZW50KCkgPT0gZWxlbWVudCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKwogICAgIHBy
aXZhdGU6CiAgICAgICAgIE93blB0cjxFbGVtZW50UmVjb3JkPiBtX3RvcDsKICAgICB9OwpAQCAt
MTk2LDcgKzIwNSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnNlcnRDb21tZW50T25Eb2N1bWVu
dChBdG9taWNIVE1MVG9rZW4mKTsKICAgICB2b2lkIGluc2VydEVsZW1lbnQoQXRvbWljSFRNTFRv
a2VuJik7CiAgICAgdm9pZCBpbnNlcnRTZWxmQ2xvc2luZ0VsZW1lbnQoQXRvbWljSFRNTFRva2Vu
Jik7Ci0gICAgdm9pZCBpbnNlcnRGb3JtYXRpbmdFbGVtZW50KEF0b21pY0hUTUxUb2tlbiYpOwor
ICAgIHZvaWQgaW5zZXJ0Rm9ybWF0dGluZ0VsZW1lbnQoQXRvbWljSFRNTFRva2VuJik7CiAgICAg
dm9pZCBpbnNlcnRHZW5lcmljUkNEQVRBRWxlbWVudChBdG9taWNIVE1MVG9rZW4mKTsKICAgICB2
b2lkIGluc2VydEdlbmVyaWNSYXdUZXh0RWxlbWVudChBdG9taWNIVE1MVG9rZW4mKTsKICAgICB2
b2lkIGluc2VydFNjcmlwdEVsZW1lbnQoQXRvbWljSFRNTFRva2VuJik7CkBAIC0yMDYsNiArMjE1
LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGluc2VydEhUTUxTdGFydFRhZ0luQm9keShBdG9taWNI
VE1MVG9rZW4mKTsKIAogICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlRWxlbWVudChBdG9t
aWNIVE1MVG9rZW4mKTsKKyAgICB1bnNpZ25lZCBpbmRleE9mTGFzdE9wZW5Gb3JtYXR0aW5nRWxl
bWVudE9yTWFya2VyKCkgY29uc3Q7CisgICAgdm9pZCByZW9wZW5Gb3JtYXR0aW5nRWxlbWVudHNB
ZnRlckluZGV4KHVuc2lnbmVkIGxhc3RPcGVuRWxlbWVudEluZGV4KTsKICAgICB2b2lkIHJlY29u
c3RydWN0VGhlQWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CiAKICAgICBFbGVtZW50KiBjdXJy
ZW50RWxlbWVudCgpIHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRzLnRvcCgpOyB9CkBAIC0yMTMsNyAr
MjI0LDQxIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1faGVhZEVsZW1lbnQ7CiAg
ICAgUmVmUHRyPEVsZW1lbnQ+IG1fZm9ybUVsZW1lbnQ7CiAgICAgRWxlbWVudFN0YWNrIG1fb3Bl
bkVsZW1lbnRzOwotICAgIFZlY3RvcjxFbGVtZW50Kj4gbV9hY3RpdmVGb3JtYXR0aW5nRWxlbWVu
dHM7CisKKyAgICBjbGFzcyBGb3JtYXR0aW5nRWxlbWVudEVudHJ5IHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIEZvcm1hdHRpbmdFbGVtZW50RW50cnkoRWxlbWVudCogZWxlbWVudCkKKyAgICAgICAg
ICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChl
bGVtZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIGVudW0gTWFya2VyRW50cnlUeXBlIHsgTWFy
a2VyRW50cnkgfTsKKyAgICAgICAgRm9ybWF0dGluZ0VsZW1lbnRFbnRyeShNYXJrZXJFbnRyeVR5
cGUpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgaXNNYXJrZXIoKSBjb25z
dCB7IHJldHVybiAhbV9lbGVtZW50OyB9CisKKyAgICAgICAgRWxlbWVudCogZWxlbWVudCgpIGNv
bnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRoZSBmYWN0IHRoYXQgIW1fZWxlbWVudCA9
PSBpc01hcmtlciBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwKKyAgICAgICAgICAgIC8vIGNh
bGxlcnMgc2hvdWxkIGNoZWNrIGlzTWFya2VyKCkgYmVmb3JlIGNhbGxpbmcgZWxlbWVudCgpLgor
ICAgICAgICAgICAgQVNTRVJUKG1fZWxlbWVudCk7CisgICAgICAgICAgICByZXR1cm4gbV9lbGVt
ZW50LmdldCgpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCByZXBsYWNlRWxlbWVudChQYXNz
UmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCht
X2VsZW1lbnQpOyAvLyBPbmNlIGEgbWFya2VyLCBhbHdheXMgYSBtYXJrZXIuCisgICAgICAgICAg
ICBtX2VsZW1lbnQgPSBlbGVtZW50OworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAg
ICBSZWZQdHI8RWxlbWVudD4gbV9lbGVtZW50OworICAgIH07CisKKyAgICBWZWN0b3I8Rm9ybWF0
dGluZ0VsZW1lbnRFbnRyeT4gbV9hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHM7CiAgICAgYm9vbCBt
X2ZyYW1lc2V0T2s7CiAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGVycm9yIHJlcG9ydGluZy4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59981</attachid>
            <date>2010-06-28 21:26:34 -0700</date>
            <delta_ts>2010-06-28 21:30:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41319-20100628212633.patch</filename>
            <type>text/plain</type>
            <size>4140</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTAwODM4NjM0OGQ3NDVlMzVhMjcxOTFlZTc5NTk3NmMxY2FiMTUwZS4uZTUwYjE5YmVjNDNiNDlh
YTU3YTUyNTRjZGNlMGRmODExNGVmZDIwMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNi0yOCAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEhUTUxUcmVlQnVpbGRlcjo6cmVjb25zdHJ1
Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMzE5CisKKyAgICAgICAgUmVzdHJ1Y3R1cmUgdGhlIGNv
ZGUgdG8gbm90IHVzZSBpbi1iYW5kIGRhdGEsIHdoaWNoIGlzIHdoYXQKKyAgICAgICAgZ290IHVz
IGluIHRyb3VibGUgd2l0aCBhIHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaCBiZWZvcmUuCisKKyAg
ICAgICAgKiBodG1sL0hUTUxUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VHJlZUJ1aWxkZXI6OmluZGV4T2ZGaXJzdFVub3BlbkZvcm1hdHRpbmdFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cmVjb25zdHJ1Y3RUaGVBY3RpdmVGb3JtYXR0
aW5nRWxlbWVudHMpOgorICAgICAgICAqIGh0bWwvSFRNTFRyZWVCdWlsZGVyLmg6CisKIDIwMTAt
MDYtMjggIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIGF0dGVtcHQgdG8gZml4IFF0IGJvdHMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRN
TFRyZWVCdWlsZGVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4
IDBkY2E2NDJhNTI0ZDE5MjMxMWRlMmFiNjY0YWYxNmRlOGE2YjJiOTYuLmIwZTExYWRhODQ4OWI5
OTI0OWQ1MzY3MzRlNzNiMmIyNGFkYWQ5Y2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVHJlZUJ1aWxkZXIuY3BwCkBA
IC05MTQsMjEgKzkxNCwzMCBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxUcmVlQnVpbGRlcjo6
Y3JlYXRlRWxlbWVudChBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgIHJldHVybiBlbGVtZW50
LnJlbGVhc2UoKTsKIH0KIAotaW50IEhUTUxUcmVlQnVpbGRlcjo6aW5kZXhPZkxhc3RPcGVuRm9y
bWF0dGluZ0VsZW1lbnRPck1hcmtlcigpIGNvbnN0Citib29sIEhUTUxUcmVlQnVpbGRlcjo6aW5k
ZXhPZkZpcnN0VW5vcGVuRm9ybWF0dGluZ0VsZW1lbnQodW5zaWduZWQmIGZpcnN0VW5vcGVuRWxl
bWVudEluZGV4KSBjb25zdAogewotICAgIEFTU0VSVCghbV9hY3RpdmVGb3JtYXR0aW5nRWxlbWVu
dHMuaXNFbXB0eSgpKTsKLSAgICBmb3IgKGludCBpbmRleCA9IG1fYWN0aXZlRm9ybWF0dGluZ0Vs
ZW1lbnRzLnNpemUoKSAtIDE7IGluZGV4ID49IDA7IC0taW5kZXgpIHsKKyAgICBpZiAobV9hY3Rp
dmVGb3JtYXR0aW5nRWxlbWVudHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgdW5zaWduZWQgaW5kZXggPSBtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5zaXplKCk7Cisg
ICAgZG8geworICAgICAgICAtLWluZGV4OwogICAgICAgICBjb25zdCBGb3JtYXR0aW5nRWxlbWVu
dEVudHJ5JiBlbnRyeSA9IG1fYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzW2luZGV4XTsKLSAgICAg
ICAgaWYgKGVudHJ5LmlzTWFya2VyKCkgfHwgbV9vcGVuRWxlbWVudHMuY29udGFpbnMoZW50cnku
ZWxlbWVudCgpKSkKLSAgICAgICAgICAgIHJldHVybiBpbmRleDsKLSAgICB9Ci0gICAgcmV0dXJu
IC0xOyAvLyBObyBlbGVtZW50cyBhcmUgb3BlbiEKKyAgICAgICAgaWYgKGVudHJ5LmlzTWFya2Vy
KCkgfHwgbV9vcGVuRWxlbWVudHMuY29udGFpbnMoZW50cnkuZWxlbWVudCgpKSkgeworICAgICAg
ICAgICAgZmlyc3RVbm9wZW5FbGVtZW50SW5kZXggPSBpbmRleDsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisgICAgfSB3aGlsZSAoaW5kZXgpOworICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnJlb3BlbkZvcm1hdHRpbmdFbGVtZW50c0Fm
dGVySW5kZXgodW5zaWduZWQgbGFzdE9wZW5FbGVtZW50SW5kZXgpCit2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cmVjb25zdHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKQogeworICAgIHVu
c2lnbmVkIGZpcnN0VW5vcGVuRWxlbWVudEluZGV4OworICAgIGlmICghaW5kZXhPZkZpcnN0VW5v
cGVuRm9ybWF0dGluZ0VsZW1lbnQoZmlyc3RVbm9wZW5FbGVtZW50SW5kZXgpKQorICAgICAgICBy
ZXR1cm47CisKICAgICBWZWN0b3I8Rm9ybWF0dGluZ0VsZW1lbnRFbnRyeT4mIHN0YWNrID0gbV9h
Y3RpdmVGb3JtYXR0aW5nRWxlbWVudHM7Ci0gICAgdW5zaWduZWQgdW5vcGVuRW50cnlJbmRleCA9
IGxhc3RPcGVuRWxlbWVudEluZGV4ICsgMTsKKyAgICB1bnNpZ25lZCB1bm9wZW5FbnRyeUluZGV4
ID0gZmlyc3RVbm9wZW5FbGVtZW50SW5kZXg7CiAgICAgQVNTRVJUKHVub3BlbkVudHJ5SW5kZXgg
PCBzdGFjay5zaXplKCkpOwogICAgIGZvciAoOyB1bm9wZW5FbnRyeUluZGV4IDwgc3RhY2suc2l6
ZSgpOyArK3Vub3BlbkVudHJ5SW5kZXgpIHsKICAgICAgICAgRm9ybWF0dGluZ0VsZW1lbnRFbnRy
eSYgdW5vcGVuZWRFbnRyeSA9IHN0YWNrW3Vub3BlbkVudHJ5SW5kZXhdOwpAQCAtOTM5LDE2ICs5
NDgsNiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVvcGVuRm9ybWF0dGluZ0VsZW1lbnRzQWZ0
ZXJJbmRleCh1bnNpZ25lZCBsYXN0T3BlbkVsZW1lbgogICAgIH0KIH0KIAotdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnJlY29uc3RydWN0VGhlQWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCkKLXsKLSAg
ICBpZiAobV9hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaXNFbXB0eSgpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBpbnQgbGFzdE9wZW5FbGVtZW50SW5kZXggPSBpbmRleE9mTGFzdE9wZW5Gb3Jt
YXR0aW5nRWxlbWVudE9yTWFya2VyKCk7Ci0gICAgaWYgKGxhc3RPcGVuRWxlbWVudEluZGV4IDwg
bV9hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuc2l6ZSgpIC0gMSkKLSAgICAgICAgcmVvcGVuRm9y
bWF0dGluZ0VsZW1lbnRzQWZ0ZXJJbmRleChsYXN0T3BlbkVsZW1lbnRJbmRleCk7Ci19Ci0KIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpmaW5pc2hlZCgpCiB7CiAgICAgLy8gV2Ugc2hvdWxkIGNhbGwg
bV9kb2N1bWVudC0+ZmluaXNoZWRQYXJzaW5nKCkgaGVyZSwgZXhjZXB0CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTFRyZWVCdWlsZGVyLmggYi9XZWJDb3JlL2h0bWwvSFRNTFRyZWVCdWls
ZGVyLmgKaW5kZXggOTcwOWY4NmMxZTc3MDRiZGQ5MzIyZWE4NzgzNmQwMTE3NjExOWI5Ni4uOGE1
MmNmNmViNGJjYzcyZjE5MTllOGIxZTE0ZjQ5ZDBkNjk4OWFlNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxUcmVlQnVpbGRlci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVHJlZUJ1aWxk
ZXIuaApAQCAtMjE1LDggKzIxNSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnNlcnRIVE1MU3Rh
cnRUYWdJbkJvZHkoQXRvbWljSFRNTFRva2VuJik7CiAKICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnQoQXRvbWljSFRNTFRva2VuJik7Ci0gICAgaW50IGluZGV4T2ZMYXN0T3Bl
bkZvcm1hdHRpbmdFbGVtZW50T3JNYXJrZXIoKSBjb25zdDsKLSAgICB2b2lkIHJlb3BlbkZvcm1h
dHRpbmdFbGVtZW50c0FmdGVySW5kZXgodW5zaWduZWQgbGFzdE9wZW5FbGVtZW50SW5kZXgpOwor
CisgICAgYm9vbCBpbmRleE9mRmlyc3RVbm9wZW5Gb3JtYXR0aW5nRWxlbWVudCh1bnNpZ25lZCYg
Zmlyc3RVbm9wZW5FbGVtZW50SW5kZXgpIGNvbnN0OwogICAgIHZvaWQgcmVjb25zdHJ1Y3RUaGVB
Y3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKIAogICAgIEVsZW1lbnQqIGN1cnJlbnRFbGVtZW50
KCkgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMudG9wKCk7IH0K
</data>
<flag name="review"
          id="47184"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>