<?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>38374</bug_id>
          
          <creation_ts>2010-04-29 22:12:56 -0700</creation_ts>
          <short_desc>REGRESSION(r54368): Text drag-and-drop from input/textarea doesn&apos;t work if the text is like a URL</short_desc>
          <delta_ts>2010-05-04 15:53: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>HTML Editing</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>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dcheng</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>219364</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-29 22:12:56 -0700</bug_when>
    <thetext>http://crbug.com/42125

r54368 changed clipboard structure for text drag-and-drop from input/textarea.
Before it, clipboard had text/html and text/plain.
After it, clipboard has only text/plain.

Chromium pasteboard code automatically adds a URL created from the text/plain datum.
WebCore/page/DragController.cpp documentFragmentFromDragData() tries to insert the URL because of no text/html.
It fails in a case of dropping another input/textarea because the URL datum has no title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219368</commentid>
    <comment_count>1</comment_count>
      <attachid>54782</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-29 22:57:16 -0700</bug_when>
    <thetext>Created attachment 54782
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219549</commentid>
    <comment_count>2</comment_count>
      <attachid>54782</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-30 11:45:50 -0700</bug_when>
    <thetext>Comment on attachment 54782
Proposed patch

I&apos;m having difficulty understanding if this is the right layer to hack.

I think I would have written a small inline to handle this:
+            buffer.append(&apos;&amp;&apos;);
+            buffer.append(&apos;a&apos;);
+            buffer.append(&apos;m&apos;);
+            buffer.append(&apos;p&apos;);
+            buffer.append(&apos;;&apos;);

or maybe Vector already will add multiple values from an T*?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219715</commentid>
    <comment_count>3</comment_count>
      <attachid>54851</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-01 06:19:54 -0700</bug_when>
    <thetext>Created attachment 54851
Proposed patch (rev.2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219716</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-01 06:24:24 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 54782 [details])
&gt; I&apos;m having difficulty understanding if this is the right layer to hack.

Three are some other points we can add this hack:
 - setting data to pasteboard in Chromium code
 - populating pasteboard data in Chromium code
 - Retrieving data from DataObject in WebCore code

I chose here because I&apos;d like to make the behavior same as behavior prior to r54368.

&gt; I think I would have written a small inline to handle this:
&gt; +            buffer.append(&apos;&amp;&apos;);
&gt; +            buffer.append(&apos;a&apos;);
&gt; +            buffer.append(&apos;m&apos;);
&gt; +            buffer.append(&apos;p&apos;);
&gt; +            buffer.append(&apos;;&apos;);
&gt; 
&gt; or maybe Vector already will add multiple values from an T*?

I improved the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219719</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-01 08:19:03 -0700</bug_when>
    <thetext>I think you may have included some extra code in your patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219720</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-01 08:28:08 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I think you may have included some extra code in your patch?

Oops, what happened...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219721</commentid>
    <comment_count>7</comment_count>
      <attachid>54852</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-01 08:33:22 -0700</bug_when>
    <thetext>Created attachment 54852
Proposed patch (rev.3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219724</commentid>
    <comment_count>8</comment_count>
      <attachid>54852</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-01 08:47:49 -0700</bug_when>
    <thetext>Comment on attachment 54852
Proposed patch (rev.3)

That&apos;s nice.  Do we know how Safari Mac works, and why this is not an issue for them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219725</commentid>
    <comment_count>9</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-01 08:55:59 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 54852 [details])
&gt; That&apos;s nice.  Do we know how Safari Mac works, and why this is not an issue for
&gt; them?

Yes.  I wrote it in the comment:
     // Chromium pasteboard code automatically adds URL for a text/plain datum
     // in order to add capability of dragging text to the address bar.

I think Safari/Mac doesn&apos;t have such feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219726</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-01 09:10:33 -0700</bug_when>
    <thetext>Text from what source?  From Chromium itself?  Does the chromium code add a url for non-url data?

It appears that Safari will only add the URL type for things which look like URLs.  If you type http://apple.com in a random text field and then try to drag it to the Safari bar, it works.  However &quot;foo bar baz&quot; does not.

It seems this should be fixed with smarts on both the writer and reader side.  The writer should only write the URL type when things look like URLs.  The reader should be able to support plain text (not just urls) and should just do a Google search for the contents of the plain text (maybe only supporting it if the plain text is under some character limit).  Then we&apos;d correctly create the URL type only for things that look like URLs (thus we&apos;d integrate with the rest of the OS better) and we&apos;d support searching for stuff in Google (which safari already supports by the fact that the Google search bar accepts any text type as a drop).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219727</commentid>
    <comment_count>11</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-01 09:19:09 -0700</bug_when>
    <thetext>&gt; The writer should only write the URL type when things look like URLs.

Known issue in NSPasteboard+Utils.mm. See https://crbug.com/42125 for a more detailed explanation.

&gt;  The reader should be able to support plain text (not just urls) and should just do
a Google search for the contents of the plain text (maybe only supporting it if
the plain text is under some character limit).

The reader does support plain text. Unfortunately, when dragging and dropping, the order documentFragmentFromDragData checks for content on the dragging pboard is HTML, then URL, then plain text. Since URL is always populated on Mac thanks to the bug mentioned in crbug.com/42125, it always tries to drop the URL--but since there&apos;s no title, nothing appears.

We could fix the NSPasteboard+Utils.mm code, but the more general case of dragging and dropping plain-text URLs between text inputs would still be broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219728</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-01 09:24:25 -0700</bug_when>
    <thetext>I&apos;m not sure I&quot;m familiar enough with how plain text drags work between text fields in WebKit to comment.  I&apos;ll have to look at documentFragmentFromDragData and see why it&apos;s involved.  I&apos;m still not sure how Safari works and why we&apos;d need to/want to differ from their behavior, or need to add this hack.  The hack itself looks fine, I&apos;m just not yet convinced we want it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219729</commentid>
    <comment_count>13</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-01 09:34:33 -0700</bug_when>
    <thetext>Hmm, I found a problem on Safari Nightly too.
 1. type &quot;http://www.google.com/&quot; in an &lt;input element&gt;
 2. select it
 3. drag it and drop to another &lt;input&gt; or &lt;textarea&gt;

Expected:
 4. &quot;http://www.google.com/&quot; moves from the source &lt;input&gt; to the destination field

Actual:
 5. &quot;http://www.google.com/&quot; disappears and the destination fields is unchanged.

This should be a regression on r54368.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219730</commentid>
    <comment_count>14</comment_count>
      <attachid>54852</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-01 09:36:45 -0700</bug_when>
    <thetext>Comment on attachment 54852
Proposed patch (rev.3)

Sounds like the proper fix would fix both Chromium and Safari then instead of this chromium-only fix. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219731</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-01 09:39:08 -0700</bug_when>
    <thetext>Removing [chromium] since this is not chromium specific anymore. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219732</commentid>
    <comment_count>16</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-01 09:39:41 -0700</bug_when>
    <thetext>&gt; I&apos;m still not sure how Safari works and why we&apos;d
&gt; need to/want to differ from their behavior, or need to add this hack.

Safari never populates URLs in the dragging pboard when dragging plain-text. I&apos;m not entirely sure why this logic was added in Chrome. My personal theory is that it was to allow dragged and dropped plain-text URLs to trigger navigation, but I&apos;m not sure.

Edit: I didn&apos;t realize it affected Safari nightlies too, so I guess my first sentence is inaccurate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219734</commentid>
    <comment_count>17</comment_count>
      <attachid>54854</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-01 10:19:59 -0700</bug_when>
    <thetext>Created attachment 54854
Proposed patch (rev.4)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219735</commentid>
    <comment_count>18</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-01 10:25:33 -0700</bug_when>
    <thetext>FYI.
Mac&apos;s text -&gt; URL code is _web_bestURL in WebKit/mac/Misc/WebNSPasteboardExtras.mm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220742</commentid>
    <comment_count>19</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-05-04 13:41:57 -0700</bug_when>
    <thetext>It looks good to me and I like that is not a platform specific.
I&apos;d like to see instructions in the test to run it manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220756</commentid>
    <comment_count>20</comment_count>
      <attachid>54854</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-05-04 14:01:55 -0700</bug_when>
    <thetext>Comment on attachment 54854
Proposed patch (rev.4)

This looked fine to me and mostly importantly looked fine to Enrica as well. Thanks Enrica and good point regarding the test!

cq- due to the issue that Enrica mentioned which should be fixed before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220806</commentid>
    <comment_count>21</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-05-04 15:05:24 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/58780</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220824</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-04 15:34:03 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/58780 might have broken GTK Linux 32-bit Release and Qt Linux Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/58779
http://trac.webkit.org/changeset/58780</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220843</commentid>
    <comment_count>23</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-05-04 15:53:30 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; http://trac.webkit.org/changeset/58780 might have broken GTK Linux 32-bit
&gt; Release and Qt Linux Release
&gt; The following changes are on the blame list:
&gt; http://trac.webkit.org/changeset/58779
&gt; http://trac.webkit.org/changeset/58780

gtk/qt don&apos;t seem to implement drag/drop support so I just added the test to their respective skipped lists.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54782</attachid>
            <date>2010-04-29 22:57:16 -0700</date>
            <delta_ts>2010-05-01 06:19:48 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-38374-20100430145714.patch</filename>
            <type>text/plain</type>
            <size>2614</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjljNjZjOGJkZmZjNDllNTc1MzVmYzBkYmI0ODRiNmM0MjI5ZTBmMS4uZmY2NTQ3ZDljNmZlMjg4
ZTI0NzEyMjFmMzhjMGI1NGU0YmFlODVhYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNC0yOSAgS2Vu
dCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBUZXh0IGRyYWctYW5kLWRyb3AgZnJv
bSBpbnB1dC90ZXh0YXJlYSBkb2Vzbid0IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM4Mzc0CisKKyAgICAgICAgV3JpdGluZyBvbmx5IHRleHQv
cGxhaW4gZG9lc24ndCB3b3JrIG9uIENocm9taXVtL01hYyBiZWNhdXNlIGEgVVJMCisgICAgICAg
IGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9D
bGlwYm9hcmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1
bTo6d3JpdGVQbGFpblRleHQpOgorCiAyMDEwLTA0LTI5ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gIFVwZGF0ZSBKU0MgQ29kZUdlbmVyYXRv
ciBiYXNlbGluZS4gIE5vdCBzdXJlIGhvdyBJIG1pc3NlZApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAppbmRleCBhYjlmM2M5YjAxMmFiMjJiMjU1
NTViYTAxODIyZGE3M2ZmNjQ0NzllLi4xMmNhZTg4NTQwNjkzMTdhZDFlODI5NTVjZDBkODg5YTM2
NzAzNmM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENo
cm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9t
aXVtLmNwcApAQCAtNTMwLDYgKzUzMCw0MCBAQCB2b2lkIENsaXBib2FyZENocm9taXVtOjp3cml0
ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgaWYgKCFtX2RhdGFPYmplY3QpCiAg
ICAgICAgIHJldHVybjsKIAorICAgIC8vIFdlIG5lZWQgdG8gc2V0IHRleHQvaHRtbCBhcyB3ZWxs
IGFzIHRleHQvcGxhaW4uCisgICAgLy8gQ2hyb21pdW0gcGFzdGVib2FyZCBjb2RlIGF1dG9tYXRp
Y2FsbHkgYWRkcyBVUkwgZm9yIGEgdGV4dC9wbGFpbiBkYXR1bQorICAgIC8vIGluIG9yZGVyIHRv
IGFkZCBjYXBhYmlsaXR5IG9mIGRyYWdnaW5nIHRleHQgdG8gdGhlIGFkZHJlc3MgYmFyLgorICAg
IC8vIGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEoKSBpbiBEcmFnQ29udHJvbGxlci5jcHAg
dHJpZXMgdG8gcG9wdWxhdGVzCisgICAgLy8gYSBkYXR1bSBvZiAoMSkgdGV4dC9odG1sLCAoMikg
VVJMLCAoMykgdGV4dC9wbGFpbiwgaW4gdGhpcyBvcmRlci4gU28sCisgICAgLy8gVVJMIHdpbGwg
YmUgc2VsZWN0ZWQgYW5kIGl0IGluc2VydHMgbm90aGluZyBiZWNhdXNlIG9mIG5vIFVSTCB0aXRs
ZS4gVG8KKyAgICAvLyBhdm9pZCB0aGlzIHByb2JsZW0sIHdlIG5lZWQgdG8gc2V0IHRleHQvaHRt
bC4KKworICAgIC8vIEZJWE1FOiBTaGFyZSBjb2RlIHdpdGggV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5jcHAuCisgICAgVmVjdG9yPFVDaGFyPiBidWZmZXI7CisgICAgLy8gVGhlIHNpemUgd2lsbCBi
ZSA1eCBhdCBtYXhpbXVtLiAgIiYiIC0+ICImYW1wOyIKKyAgICBidWZmZXIucmVzZXJ2ZUNhcGFj
aXR5KHRleHQubGVuZ3RoKCkgKiA1KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGV4
dC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgIFVDaGFyIGNoID0gdGV4dFtpXTsKKyAgICAgICAg
c3dpdGNoIChjaCkgeworICAgICAgICBjYXNlICcmJzoKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBl
bmQoJyYnKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoJ2EnKTsKKyAgICAgICAgICAgIGJ1
ZmZlci5hcHBlbmQoJ20nKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoJ3AnKTsKKyAgICAg
ICAgICAgIGJ1ZmZlci5hcHBlbmQoJzsnKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlICc8JzoKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoJyYnKTsKKyAgICAgICAgICAgIGJ1
ZmZlci5hcHBlbmQoJ2wnKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoJ3QnKTsKKyAgICAg
ICAgICAgIGJ1ZmZlci5hcHBlbmQoJzsnKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgIH0KKyAgICB9
CisgICAgbV9kYXRhT2JqZWN0LT50ZXh0SHRtbCA9IFN0cmluZyhidWZmZXIuZGF0YSgpLCBidWZm
ZXIuc2l6ZSgpKTsKKwogICAgIFN0cmluZyBzdHIgPSB0ZXh0OwogI2lmIE9TKFdJTkRPV1MpCiAg
ICAgcmVwbGFjZU5ld2xpbmVzV2l0aFdpbmRvd3NTdHlsZU5ld2xpbmVzKHN0cik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54851</attachid>
            <date>2010-05-01 06:19:54 -0700</date>
            <delta_ts>2010-05-01 08:33:16 -0700</delta_ts>
            <desc>Proposed patch (rev.2)</desc>
            <filename>bug-38374-20100501221952.patch</filename>
            <type>text/plain</type>
            <size>12270</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTAxNDg2MjRlOTFkOTk3OWIzMzA5ZTQ1MTBkMTlhYjlhNWZkYjJiOS4uNzU5ZmM2ZTA5YjdhMjE2
MzY0ZDgzNWU0ZGZlNGMzNTc5MzlmNzgwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0wNS0wMSAgS2Vu
dCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBUZXh0IGRyYWctYW5kLWRyb3AgZnJv
bSBpbnB1dC90ZXh0YXJlYSBkb2Vzbid0IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM4Mzc0CisKKyAgICAgICAgV3JpdGluZyBvbmx5IHRleHQv
cGxhaW4gZG9lc24ndCB3b3JrIG9uIENocm9taXVtL01hYyBiZWNhdXNlIGEgVVJMCisgICAgICAg
IGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9D
bGlwYm9hcmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1
bTo6d3JpdGVQbGFpblRleHQpOgorCisyMDEwLTA1LTAxICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhh
cm9uQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBNb3ZlIG51bWJlciBwYXJzaW5nIGNvZGUgb3V0IG9mIEhUTUxJbnB1dEVsZW1lbnQuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODIwMworCisg
ICAgICAgIFRoZSBudW1lYnIgcGFyc2luZyBjb2RlIGZvbGxvd3MgSFRNTDUgcGFyc2luZyBydWxl
cyBhbmQgc2hvdWxkIGJlIGF2YWlsYWJsZSBvdXRzaWRlIG9mIEhUTUxJbnB1dEVsZW1lbnQuCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBhcyBubyBuZXcgZnVuY3Rpb25hbGl0eSB3YXMgaW50cm9kdWNl
ZC4KKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgICogaHRt
bC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6ZUZvck51bWJlclR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6cGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUpOgorICAgICAgICAqIGh0bWwvSFRNTFBhcnNl
ci5oOgorICAgICAgICAqIGh0bWwvU3RlcFJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
ZXBSYW5nZTo6Y2xhbXBWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdGVwUmFuZ2U6OnZhbHVl
RnJvbUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWYWxpZGl0eVN0YXRlOjp0eXBlTWlzbWF0Y2gpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpz
ZXRWYWx1ZUZvclBvc2l0aW9uKToKKwogMjAxMC0wNS0wMSAgWGFuIExvcGV6ICA8eGxvcGV6QGln
YWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKaW5kZXggZGIzYThhYTE1ZjdlZTU0MTU4NjBhZDMzNDY2ODI4NmVjNTlm
ODFhZS4uMTk3Yzg5OTNiZDg2MmU3OTljMDM3MGQ5NjU4MjFhNTFkZjhlODE1YSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkhUTUxJbWFn
ZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25F
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlci5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZl
bnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTWFwcGVkQXR0
cmlidXRlLmgiCkBAIC02Niw3ICs2Nyw2IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
LSNpbmNsdWRlIDx3dGYvZHRvYS5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC0yNjI4
LDQyICsyNjI4LDYgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpyZWNhbGNXaWxsVmFsaWRhdGUo
KSBjb25zdAogICAgICAgICAmJiBpbnB1dFR5cGUoKSAhPSBISURERU4gJiYgaW5wdXRUeXBlKCkg
IT0gQlVUVE9OICYmIGlucHV0VHlwZSgpICE9IFJFU0VUOwogfQogCi1TdHJpbmcgSFRNTElucHV0
RWxlbWVudDo6c2VyaWFsaXplRm9yTnVtYmVyVHlwZShkb3VibGUgbnVtYmVyKQotewotICAgIC8v
IEFjY29yZGluZyB0byBIVE1MNSwgInRoZSBiZXN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBudW1i
ZXIgbiBhcyBhIGZsb2F0aW5nCi0gICAgLy8gcG9pbnQgbnVtYmVyIiBpcyBhIHN0cmluZyBwcm9k
dWNlZCBieSBhcHBseWluZyBUb1N0cmluZygpIHRvIG4uCi0gICAgRHRvYUJ1ZmZlciBidWZmZXI7
Ci0gICAgdW5zaWduZWQgbGVuZ3RoOwotICAgIGRvdWJsZVRvU3RyaW5nSW5KYXZhU2NyaXB0Rm9y
bWF0KG51bWJlciwgYnVmZmVyLCAmbGVuZ3RoKTsKLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlciwg
bGVuZ3RoKTsKLX0KLQotYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpwYXJzZVRvRG91YmxlRm9yTnVt
YmVyVHlwZShjb25zdCBTdHJpbmcmIHNyYywgZG91YmxlKiBvdXQpCi17Ci0gICAgLy8gU2VlIEhU
TUw1IDIuNC40LjMgYFJlYWwgbnVtYmVycy4nCi0KLSAgICBpZiAoc3JjLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIC8vIFN0cmluZzo6dG9Eb3VibGUoKSBhY2NlcHRzIGxl
YWRpbmcgKyBcdCBcbiBcdiBcZiBcciBhbmQgU1BBQ0UsIHdoaWNoIGFyZSBpbnZhbGlkIGluIEhU
TUw1LgotICAgIC8vIFNvLCBjaGVjayB0aGUgZmlyc3QgY2hhcmFjdGVyLgotICAgIGlmIChzcmNb
MF0gIT0gJy0nICYmIChzcmNbMF0gPCAnMCcgfHwgc3JjWzBdID4gJzknKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgYm9vbCB2YWxpZCA9IGZhbHNlOwotICAgIGRvdWJsZSB2YWx1ZSA9
IHNyYy50b0RvdWJsZSgmdmFsaWQpOwotICAgIGlmICghdmFsaWQpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAvLyBOYU4gYW5kIEluZmluaXR5IGFyZSBub3QgdmFsaWQgbnVtYmVycyBhY2Nv
cmRpbmcgdG8gdGhlIHN0YW5kYXJkLgotICAgIGlmICghaXNmaW5pdGUodmFsdWUpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgLy8gLTAgLT4gMAotICAgIGlmICghdmFsdWUpCi0gICAgICAg
IHZhbHVlID0gMDsKLSAgICBpZiAob3V0KQotICAgICAgICAqb3V0ID0gdmFsdWU7Ci0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KIGJvb2wgSFRNTElucHV0RWxlbWVudDo6cGFyc2VUb0RhdGVDb21wb25l
bnRzKElucHV0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGZvcm1TdHJpbmcsIERhdGVDb21wb25l
bnRzKiBvdXQpCiB7CiAgICAgaWYgKGZvcm1TdHJpbmcuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmgKaW5kZXggZGFkOTQ3YjliODJiYTBlNGYxYzcyZjBhOThjOGE0MmI5MTZmNzIwOS4u
MmY3NmRlNGVjYzcxNzUwMTFmMTk2YzUxNzNmN2JjMDYwNTM3ODBkMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oCkBAIC0yNjQsMTMgKzI2NCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25zdDsK
ICAgICAKLSAgICAvLyBDb252ZXJ0cyB0aGUgc3BlY2lmaWVkIHN0cmluZyB0byBhIGZsb2F0aW5n
IG51bWJlci4KLSAgICAvLyBJZiB0aGUgY29udmVyc2lvbiBmYWlscywgdGhlIHJldHVybiB2YWx1
ZSBpcyBmYWxzZS4gVGFrZSBjYXJlIHRoYXQgbGVhZGluZyBvciB0cmFpbGluZyB1bm5lY2Vzc2Fy
eSBjaGFyYWN0ZXJzIG1ha2UgZmFpbHVyZXMuICBUaGlzIHJldHVybnMgZmFsc2UgZm9yIGFuIGVt
cHR5IHN0cmluZyBpbnB1dC4KLSAgICAvLyBUaGUgZG91YmxlKiBwYXJhbWV0ZXIgbWF5IGJlIDAu
Ci0gICAgc3RhdGljIGJvb2wgcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoY29uc3QgU3RyaW5n
JiwgZG91YmxlKik7Ci0gICAgLy8gQ29udmVydHMgdGhlIHNwZWNpZmllZCBudW1iZXIgdG8gYSBz
dHJpbmcuIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YKLSAgICAvLyBIVE1MNSdzICJhbGdv
cml0aG0gdG8gY29udmVydCBhIG51bWJlciB0byBhIHN0cmluZyIgZm9yIE5VTUJFUi9SQU5HRSB0
eXBlcy4KLSAgICBzdGF0aWMgU3RyaW5nIHNlcmlhbGl6ZUZvck51bWJlclR5cGUoZG91YmxlKTsK
ICAgICAvLyBQYXJzZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgYXMgdGhlIElucHV0VHlwZSwgYW5k
IHJldHVybnMgdHJ1ZSBpZiBpdCBpcyBzdWNjZXNzZnVsbHkgcGFyc2VkLgogICAgIC8vIEFuIGlu
c3RhbmNlIHBvaW50ZWQgYnkgdGhlIERhdGVDb21wb25lbnRzKiBwYXJhbWV0ZXIgd2lsbCBoYXZl
IHBhcnNlZCB2YWx1ZXMgYW5kIGJlCiAgICAgLy8gbW9kaWZpZWQgZXZlbiBpZiB0aGUgcGFyc2lu
ZyBmYWlscy4gIFRoZSBEYXRlQ29tcG9uZW50cyogcGFyYW1ldGVyIG1heSBiZSAwLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxQYXJz
ZXIuY3BwCmluZGV4IGIzNjE0NTNlYjBkNzVhYTFkMDIzYjE3NDljMTVmYzg4ZTNkOTMyMmUuLjQy
OGU4ZDUzMTZjYzgxMWZmMmNmNGFkY2QwOWI4MGY1OTA2NWFhZmYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MUGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5jcHAK
QEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVHJlZURlcHRo
TGltaXQuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL2R0
b2EuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNzM5LDQgKzE3NDAsNDEgQEAgYm9v
bCBzaG91bGRDcmVhdGVJbXBsaWNpdEhlYWQoRG9jdW1lbnQqIGRvY3VtZW50KQogfQogI2VuZGlm
CiAKKworU3RyaW5nIHNlcmlhbGl6ZUZvck51bWJlclR5cGUoZG91YmxlIG51bWJlcikKK3sKKyAg
ICAvLyBBY2NvcmRpbmcgdG8gSFRNTDUsICJ0aGUgYmVzdCByZXByZXNlbnRhdGlvbiBvZiB0aGUg
bnVtYmVyIG4gYXMgYSBmbG9hdGluZworICAgIC8vIHBvaW50IG51bWJlciIgaXMgYSBzdHJpbmcg
cHJvZHVjZWQgYnkgYXBwbHlpbmcgVG9TdHJpbmcoKSB0byBuLgorICAgIER0b2FCdWZmZXIgYnVm
ZmVyOworICAgIHVuc2lnbmVkIGxlbmd0aDsKKyAgICBkb3VibGVUb1N0cmluZ0luSmF2YVNjcmlw
dEZvcm1hdChudW1iZXIsIGJ1ZmZlciwgJmxlbmd0aCk7CisgICAgcmV0dXJuIFN0cmluZyhidWZm
ZXIsIGxlbmd0aCk7Cit9CisKK2Jvb2wgcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoY29uc3Qg
U3RyaW5nJiBzcmMsIGRvdWJsZSogb3V0KQoreworICAgIC8vIFNlZSBIVE1MNSAyLjQuNC4zIGBS
ZWFsIG51bWJlcnMuJworCisgICAgaWYgKHNyYy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAvLyBTdHJpbmc6OnRvRG91YmxlKCkgYWNjZXB0cyBsZWFkaW5nICsgXHQgXG4g
XHYgXGYgXHIgYW5kIFNQQUNFLCB3aGljaCBhcmUgaW52YWxpZCBpbiBIVE1MNS4KKyAgICAvLyBT
bywgY2hlY2sgdGhlIGZpcnN0IGNoYXJhY3Rlci4KKyAgICBpZiAoc3JjWzBdICE9ICctJyAmJiAo
c3JjWzBdIDwgJzAnIHx8IHNyY1swXSA+ICc5JykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGJvb2wgdmFsaWQgPSBmYWxzZTsKKyAgICBkb3VibGUgdmFsdWUgPSBzcmMudG9Eb3VibGUo
JnZhbGlkKTsKKyAgICBpZiAoIXZhbGlkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLy8g
TmFOIGFuZCBJbmZpbml0eSBhcmUgbm90IHZhbGlkIG51bWJlcnMgYWNjb3JkaW5nIHRvIHRoZSBz
dGFuZGFyZC4KKyAgICBpZiAoIWlzZmluaXRlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIC8vIC0wIC0+IDAKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICB2YWx1ZSA9IDA7Cisg
ICAgaWYgKG91dCkKKyAgICAgICAgKm91dCA9IHZhbHVlOworICAgIHJldHVybiB0cnVlOworfQor
CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5oIGIvV2ViQ29yZS9odG1s
L0hUTUxQYXJzZXIuaAppbmRleCBlNzAzZDBhOWVlMjA5M2ZiMmEyMzE2NTFhMzJmYmRlNTQzZTU4
M2Q5Li4wMjg4MzZjYjRhMmYzNDk0MDgzZTVkYmQyZWY0ZjNjNWU1YWEwY2FlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MUGFyc2Vy
LmgKQEAgLTIwMSw2ICsyMDEsMTQgQEAgYm9vbCBzaG91bGRDcmVhdGVJbXBsaWNpdEhlYWQoRG9j
dW1lbnQqKTsKIGlubGluZSBib29sIHNob3VsZENyZWF0ZUltcGxpY2l0SGVhZChEb2N1bWVudCop
IHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgogCisvLyBDb252ZXJ0cyB0aGUgc3BlY2lmaWVkIHN0
cmluZyB0byBhIGZsb2F0aW5nIG51bWJlci4KKy8vIElmIHRoZSBjb252ZXJzaW9uIGZhaWxzLCB0
aGUgcmV0dXJuIHZhbHVlIGlzIGZhbHNlLiBUYWtlIGNhcmUgdGhhdCBsZWFkaW5nIG9yIHRyYWls
aW5nIHVubmVjZXNzYXJ5IGNoYXJhY3RlcnMgbWFrZSBmYWlsdXJlcy4gIFRoaXMgcmV0dXJucyBm
YWxzZSBmb3IgYW4gZW1wdHkgc3RyaW5nIGlucHV0LgorLy8gVGhlIGRvdWJsZSogcGFyYW1ldGVy
IG1heSBiZSAwLgorYm9vbCBwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShjb25zdCBTdHJpbmcm
LCBkb3VibGUqKTsKKy8vIENvbnZlcnRzIHRoZSBzcGVjaWZpZWQgbnVtYmVyIHRvIGEgc3RyaW5n
LiBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mCisvLyBIVE1MNSdzICJhbGdvcml0aG0gdG8g
Y29udmVydCBhIG51bWJlciB0byBhIHN0cmluZyIgZm9yIE5VTUJFUi9SQU5HRSB0eXBlcy4KK1N0
cmluZyBzZXJpYWxpemVGb3JOdW1iZXJUeXBlKGRvdWJsZSk7CisKIH0KICAgICAKICNlbmRpZiAv
LyBIVE1MUGFyc2VyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwIGIv
V2ViQ29yZS9odG1sL1N0ZXBSYW5nZS5jcHAKaW5kZXggN2MyNzBmMjc1ZjU3MTM4MGRhNGZkNWUx
NmM0ZTNkNmI5NGQzYWFhMC4uMDRmNGVkM2JiMTEyZWMzZWM2YWUyZDNjZmI5OGU2YzFjMDBiOWQ4
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL1N0ZXBSYW5nZS5jcHAKKysrIGIvV2ViQ29yZS9o
dG1sL1N0ZXBSYW5nZS5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkhUTUxJbnB1
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MUGFyc2Vy
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgogCkBAIC02MSw3ICs2Miw3IEBAIGRvdWJsZSBTdGVwUmFuZ2U6OmNsYW1wVmFsdWUoZG91
YmxlIHZhbHVlKQogZG91YmxlIFN0ZXBSYW5nZTo6Y2xhbXBWYWx1ZShjb25zdCBTdHJpbmcmIHN0
cmluZ1ZhbHVlKQogewogICAgIGRvdWJsZSB2YWx1ZTsKLSAgICBib29sIHBhcnNlU3VjY2VzcyA9
IEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlKHN0cmluZ1ZhbHVl
LCAmdmFsdWUpOworICAgIGJvb2wgcGFyc2VTdWNjZXNzID0gcGFyc2VUb0RvdWJsZUZvck51bWJl
clR5cGUoc3RyaW5nVmFsdWUsICZ2YWx1ZSk7CiAgICAgaWYgKCFwYXJzZVN1Y2Nlc3MpCiAgICAg
ICAgIHZhbHVlID0gKG1pbmltdW0gKyBtYXhpbXVtKSAvIDI7CiAgICAgcmV0dXJuIGNsYW1wVmFs
dWUodmFsdWUpOwpAQCAtNzAsNyArNzEsNyBAQCBkb3VibGUgU3RlcFJhbmdlOjpjbGFtcFZhbHVl
KGNvbnN0IFN0cmluZyYgc3RyaW5nVmFsdWUpCiBkb3VibGUgU3RlcFJhbmdlOjp2YWx1ZUZyb21F
bGVtZW50KEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wqIHdhc0NsYW1wZWQpCiB7CiAg
ICAgZG91YmxlIG9sZFZhbHVlOwotICAgIGJvb2wgcGFyc2VTdWNjZXNzID0gSFRNTElucHV0RWxl
bWVudDo6cGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoZWxlbWVudC0+dmFsdWUoKSwgJm9sZFZh
bHVlKTsKKyAgICBib29sIHBhcnNlU3VjY2VzcyA9IHBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBl
KGVsZW1lbnQtPnZhbHVlKCksICZvbGRWYWx1ZSk7CiAgICAgaWYgKCFwYXJzZVN1Y2Nlc3MpCiAg
ICAgICAgIG9sZFZhbHVlID0gKG1pbmltdW0gKyBtYXhpbXVtKSAvIDI7CiAgICAgZG91YmxlIG5l
d1ZhbHVlID0gY2xhbXBWYWx1ZShvbGRWYWx1ZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
VmFsaWRpdHlTdGF0ZS5jcHAgYi9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKaW5kZXgg
YzZjNThhNTJmZmQ3ODI1YzA3MjdlN2VhNzZhMTAwNmM2N2UwN2FhOC4uZmM2MGEyMmQ2NTgzNjJh
MTZmZjg0YzYzMzM5YmQ4NmI0YTFlODgzMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL1ZhbGlk
aXR5U3RhdGUuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcApAQCAtMjYs
NiArMjYsNyBAQAogCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXIuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAj
aW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIlJlZ3VsYXJFeHByZXNzaW9u
LmgiCkBAIC04MCw3ICs4MSw3IEBAIGJvb2wgVmFsaWRpdHlTdGF0ZTo6dHlwZU1pc21hdGNoKCkg
Y29uc3QKICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OkNPTE9SOgogICAgICAgICByZXR1cm4g
IWlzVmFsaWRDb2xvclN0cmluZyh2YWx1ZSk7CiAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpO
VU1CRVI6Ci0gICAgICAgIHJldHVybiAhSFRNTElucHV0RWxlbWVudDo6cGFyc2VUb0RvdWJsZUZv
ck51bWJlclR5cGUodmFsdWUsIDApOworICAgICAgICByZXR1cm4gIXBhcnNlVG9Eb3VibGVGb3JO
dW1iZXJUeXBlKHZhbHVlLCAwKTsKICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OlVSTDoKICAg
ICAgICAgcmV0dXJuICFLVVJMKEtVUkwoKSwgdmFsdWUpLmlzVmFsaWQoKTsKICAgICBjYXNlIEhU
TUxJbnB1dEVsZW1lbnQ6OkVNQUlMOiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
Q2xpcGJvYXJkQ2hyb21pdW0uY3BwCmluZGV4IGFiOWYzYzliMDEyYWIyMmIyNTU1NWJhMDE4MjJk
YTczZmY2NDQ3OWUuLjNlZTlmMGE0NDQyN2IxYjEyMDdjOTEzMjI3MWYyYTdiYTZjOWUxMzUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCkBA
IC01MzAsNiArNTMwLDM1IEBAIHZvaWQgQ2xpcGJvYXJkQ2hyb21pdW06OndyaXRlUGxhaW5UZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCkKICAgICBpZiAoIW1fZGF0YU9iamVjdCkKICAgICAgICAgcmV0
dXJuOwogCisgICAgLy8gV2UgbmVlZCB0byBzZXQgdGV4dC9odG1sIGFzIHdlbGwgYXMgdGV4dC9w
bGFpbi4KKyAgICAvLyBDaHJvbWl1bSBwYXN0ZWJvYXJkIGNvZGUgYXV0b21hdGljYWxseSBhZGRz
IFVSTCBmb3IgYSB0ZXh0L3BsYWluIGRhdHVtCisgICAgLy8gaW4gb3JkZXIgdG8gYWRkIGNhcGFi
aWxpdHkgb2YgZHJhZ2dpbmcgdGV4dCB0byB0aGUgYWRkcmVzcyBiYXIuCisgICAgLy8gZG9jdW1l
bnRGcmFnbWVudEZyb21EcmFnRGF0YSgpIGluIERyYWdDb250cm9sbGVyLmNwcCB0cmllcyB0byBw
b3B1bGF0ZXMKKyAgICAvLyBhIGRhdHVtIG9mICgxKSB0ZXh0L2h0bWwsICgyKSBVUkwsICgzKSB0
ZXh0L3BsYWluLCBpbiB0aGlzIG9yZGVyLiBTbywKKyAgICAvLyBVUkwgd2lsbCBiZSBzZWxlY3Rl
ZCBhbmQgaXQgaW5zZXJ0cyBub3RoaW5nIGJlY2F1c2Ugb2Ygbm8gVVJMIHRpdGxlLiBUbworICAg
IC8vIGF2b2lkIHRoaXMgcHJvYmxlbSwgd2UgbmVlZCB0byBzZXQgdGV4dC9odG1sLgorCisgICAg
Ly8gRklYTUU6IFNoYXJlIGNvZGUgd2l0aCBXZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcC4KKyAg
ICBzdGF0aWMgY29uc3QgVUNoYXIgYW1wW10gPSB7JyYnLCAnYScsICdtJywgJ3AnLCAnOyd9Owor
ICAgIHN0YXRpYyBjb25zdCBVQ2hhciBsdFtdID0geycmJywgJ2wnLCAndCcsICc7J307CisgICAg
VmVjdG9yPFVDaGFyPiBidWZmZXI7CisgICAgLy8gVGhlIHNpemUgd2lsbCBiZSA1eCBhdCBtYXhp
bXVtLiAgIiYiIC0+ICImYW1wOyIKKyAgICBidWZmZXIucmVzZXJ2ZUNhcGFjaXR5KHRleHQubGVu
Z3RoKCkgKiA1KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGV4dC5sZW5ndGgoKTsg
KytpKSB7CisgICAgICAgIFVDaGFyIGNoID0gdGV4dFtpXTsKKyAgICAgICAgc3dpdGNoIChjaCkg
eworICAgICAgICBjYXNlICcmJzoKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoYW1wLCBzaXpl
b2YoYW1wKSAvIHNpemVvZihhbXBbMF0pKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlICc8JzoKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQobHQsIHNpemVvZihsdCkgLyBzaXpl
b2YobHRbMF0pKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgYnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgIH0KKyAgICB9CisgICAgbV9kYXRhT2Jq
ZWN0LT50ZXh0SHRtbCA9IFN0cmluZyhidWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6ZSgpKTsKKwog
ICAgIFN0cmluZyBzdHIgPSB0ZXh0OwogI2lmIE9TKFdJTkRPV1MpCiAgICAgcmVwbGFjZU5ld2xp
bmVzV2l0aFdpbmRvd3NTdHlsZU5ld2xpbmVzKHN0cik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVy
LmNwcAppbmRleCA4YzhiYTI0MGQ0NThiZjg4MzhmZjk1YWEwYTU0YjIwMzRlYTdkMzVhLi4zMTA1
NzA5NDc5ZDk3NDNhNjRlM2Y0MGJiZjAzMDBiY2Y4MTEzODZkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNsaWRlci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
KyNpbmNsdWRlICJIVE1MUGFyc2VyLmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sRWxlbWVudHMu
aCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKQEAg
LTM1Niw3ICszNTcsNyBAQCB2b2lkIFJlbmRlclNsaWRlcjo6c2V0VmFsdWVGb3JQb3NpdGlvbihp
bnQgcG9zaXRpb24pCiAgICAgaWYgKHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0
aWNhbFBhcnQgfHwgc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFy
dCkKICAgICAgICAgZnJhY3Rpb24gPSAxIC0gZnJhY3Rpb247CiAgICAgZG91YmxlIHZhbHVlID0g
cmFuZ2UuY2xhbXBWYWx1ZShyYW5nZS52YWx1ZUZyb21Qcm9wb3J0aW9uKGZyYWN0aW9uKSk7Ci0g
ICAgZWxlbWVudC0+c2V0VmFsdWVGcm9tUmVuZGVyZXIoSFRNTElucHV0RWxlbWVudDo6c2VyaWFs
aXplRm9yTnVtYmVyVHlwZSh2YWx1ZSkpOworICAgIGVsZW1lbnQtPnNldFZhbHVlRnJvbVJlbmRl
cmVyKHNlcmlhbGl6ZUZvck51bWJlclR5cGUodmFsdWUpKTsKIAogICAgIC8vIEFsc28gdXBkYXRl
IHRoZSBwb3NpdGlvbiBpZiBhcHByb3ByaWF0ZS4KICAgICBpZiAocG9zaXRpb24gIT0gY3VycmVu
dFBvc2l0aW9uKCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54852</attachid>
            <date>2010-05-01 08:33:22 -0700</date>
            <delta_ts>2010-05-01 10:19:51 -0700</delta_ts>
            <desc>Proposed patch (rev.3)</desc>
            <filename>bug-38374-20100502003320.patch</filename>
            <type>text/plain</type>
            <size>2511</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTRhZTViM2M5MmQ1MTBmNzNiN2E3MTcxMjc5OTUxYmI2YWJkYjY1MS4uNzU5ZmM2ZTA5YjdhMjE2
MzY0ZDgzNWU0ZGZlNGMzNTc5MzlmNzgwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNS0wMSAgS2Vu
dCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBUZXh0IGRyYWctYW5kLWRyb3AgZnJv
bSBpbnB1dC90ZXh0YXJlYSBkb2Vzbid0IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM4Mzc0CisKKyAgICAgICAgV3JpdGluZyBvbmx5IHRleHQv
cGxhaW4gZG9lc24ndCB3b3JrIG9uIENocm9taXVtL01hYyBiZWNhdXNlIGEgVVJMCisgICAgICAg
IGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9D
bGlwYm9hcmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1
bTo6d3JpdGVQbGFpblRleHQpOgorCiAyMDEwLTA1LTAxICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhh
cm9uQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKaW5kZXggYWI5
ZjNjOWIwMTJhYjIyYjI1NTU1YmEwMTgyMmRhNzNmZjY0NDc5ZS4uM2VlOWYwYTQ0NDI3YjFiMTIw
N2M5MTMyMjcxZjJhN2JhNmM5ZTEzNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKQEAgLTUzMCw2ICs1MzAsMzUgQEAgdm9pZCBDbGlwYm9h
cmRDaHJvbWl1bTo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQogICAgIGlmICgh
bV9kYXRhT2JqZWN0KQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBXZSBuZWVkIHRvIHNldCB0
ZXh0L2h0bWwgYXMgd2VsbCBhcyB0ZXh0L3BsYWluLgorICAgIC8vIENocm9taXVtIHBhc3RlYm9h
cmQgY29kZSBhdXRvbWF0aWNhbGx5IGFkZHMgVVJMIGZvciBhIHRleHQvcGxhaW4gZGF0dW0KKyAg
ICAvLyBpbiBvcmRlciB0byBhZGQgY2FwYWJpbGl0eSBvZiBkcmFnZ2luZyB0ZXh0IHRvIHRoZSBh
ZGRyZXNzIGJhci4KKyAgICAvLyBkb2N1bWVudEZyYWdtZW50RnJvbURyYWdEYXRhKCkgaW4gRHJh
Z0NvbnRyb2xsZXIuY3BwIHRyaWVzIHRvIHBvcHVsYXRlcworICAgIC8vIGEgZGF0dW0gb2YgKDEp
IHRleHQvaHRtbCwgKDIpIFVSTCwgKDMpIHRleHQvcGxhaW4sIGluIHRoaXMgb3JkZXIuIFNvLAor
ICAgIC8vIFVSTCB3aWxsIGJlIHNlbGVjdGVkIGFuZCBpdCBpbnNlcnRzIG5vdGhpbmcgYmVjYXVz
ZSBvZiBubyBVUkwgdGl0bGUuIFRvCisgICAgLy8gYXZvaWQgdGhpcyBwcm9ibGVtLCB3ZSBuZWVk
IHRvIHNldCB0ZXh0L2h0bWwuCisKKyAgICAvLyBGSVhNRTogU2hhcmUgY29kZSB3aXRoIFdlYkNv
cmUvZWRpdGluZy9tYXJrdXAuY3BwLgorICAgIHN0YXRpYyBjb25zdCBVQ2hhciBhbXBbXSA9IHsn
JicsICdhJywgJ20nLCAncCcsICc7J307CisgICAgc3RhdGljIGNvbnN0IFVDaGFyIGx0W10gPSB7
JyYnLCAnbCcsICd0JywgJzsnfTsKKyAgICBWZWN0b3I8VUNoYXI+IGJ1ZmZlcjsKKyAgICAvLyBU
aGUgc2l6ZSB3aWxsIGJlIDV4IGF0IG1heGltdW0uICAiJiIgLT4gIiZhbXA7IgorICAgIGJ1ZmZl
ci5yZXNlcnZlQ2FwYWNpdHkodGV4dC5sZW5ndGgoKSAqIDUpOworICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgVUNoYXIgY2ggPSB0ZXh0
W2ldOworICAgICAgICBzd2l0Y2ggKGNoKSB7CisgICAgICAgIGNhc2UgJyYnOgorICAgICAgICAg
ICAgYnVmZmVyLmFwcGVuZChhbXAsIHNpemVvZihhbXApIC8gc2l6ZW9mKGFtcFswXSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJzwnOgorICAgICAgICAgICAgYnVmZmVyLmFw
cGVuZChsdCwgc2l6ZW9mKGx0KSAvIHNpemVvZihsdFswXSkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGNoKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBtX2RhdGFPYmplY3QtPnRleHRIdG1sID0gU3RyaW5nKGJ1ZmZlci5k
YXRhKCksIGJ1ZmZlci5zaXplKCkpOworCiAgICAgU3RyaW5nIHN0ciA9IHRleHQ7CiAjaWYgT1Mo
V0lORE9XUykKICAgICByZXBsYWNlTmV3bGluZXNXaXRoV2luZG93c1N0eWxlTmV3bGluZXMoc3Ry
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54854</attachid>
            <date>2010-05-01 10:19:59 -0700</date>
            <delta_ts>2010-05-04 14:01:55 -0700</delta_ts>
            <desc>Proposed patch (rev.4)</desc>
            <filename>bug-38374-20100502021956.patch</filename>
            <type>text/plain</type>
            <size>5158</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNDI2YTIyZWQ0M2VjNGRmZjQ0NTJhYWNiMTNhYjZlY2IzZTgyNWJmLi5mOTBiYjQ0
YzVkYmY0NGI3ZWMwZjY1MmU0YmRlNzkxOGFmZDM0MWJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTAtMDUtMDEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT04ocjU0MzY4
KTogVGV4dCBkcmFnLWFuZC1kcm9wIGZyb20gaW5wdXQvdGV4dGFyZWEgZG9lc24ndCB3b3JrCisg
ICAgICAgIGlmIHRoZSB0ZXh0IGlzIGxpa2UgYSBVUkwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4Mzc0CisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvZHJhZy1kcm9wLXVybC10ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZHJvcC11cmwtdGV4dC5odG1sOiBBZGRlZC4KKwogMjAx
MC0wNS0wMSAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCBmaXggdG8gaGVpZ2h0L3dpZHRoIHJlbmRlcmluZyBkaWZmZXJlbmNlcyBpbiByZXN1
bHRzIGFkZGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJh
Zy1kcm9wLXVybC10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9kcmFnLWRyb3AtdXJsLXRleHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4MDdlZDBi
NzgwM2VlNTcwZGEyNmE4ZWQ1MTk3ODgyMjBiOGM4MmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1kcm9wLXVybC10ZXh0LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdHMgdGV4dCBzZWxlY3Rpb24gZHJhZyBmb3IgYSBV
UkwtbGlrZSB0ZXh0LgorCitQQVNTCisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvZHJhZy1kcm9wLXVybC10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvZHJhZy1kcm9wLXVybC10ZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJjZmYzODE3
NGU5MGY3MGU1YzllYTMyZGZmOWE4ZWJjM2IzMTA1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWRyb3AtdXJsLXRleHQuaHRtbApAQCAtMCww
ICsxLDQzIEBACis8aHRtbD4KKzxib2R5PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGRlYnVnKG1zZykg
eworICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyk7Cisg
IHZhciBsaW5lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgIGxpbmUudGV4dENv
bnRlbnQgPSBtc2c7CisgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGluZSk7Cit9CisKK2Z1bmN0aW9u
IGVkaXRpbmdUZXN0KCkgeworICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICByZXR1cm47CisKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgLy8gRHJh
ZyBhIFVSTCB0ZXh0IGluIHRoZSBzb3J1Y2UKKyAgICB2YXIgc291cmNlID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInNvdXJjZSIpOworICAgIHNvdXJjZS5zZXRTZWxlY3Rpb25SYW5nZSgwLCBz
b3VyY2UudmFsdWUubGVuZ3RoKTsKKyAgICB4ID0gc291cmNlLm9mZnNldExlZnQgKyAxMDsKKyAg
ICB5ID0gc291cmNlLm9mZnNldFRvcCArIHNvdXJjZS5vZmZzZXRIZWlnaHQgLyAyOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigp
OworICAgIC8vIGFuZCBkcm9wIGl0IG9mZiB0byB0aGUgZGVzdGluYXRpb24gZmllbGQKKyAgICB2
YXIgZGVzdGluYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzdGluYXRpb24iKTsK
KyAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCg1MDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyAxMCwgZGVzdGluYXRpb24ub2Zmc2V0VG9w
ICsgZGVzdGluYXRpb24ub2Zmc2V0SGVpZ2h0IC8gMik7CisgICAgZXZlbnRTZW5kZXIubW91c2VV
cCgpOworCisgICAgdmFyIHJlc3VsdCA9IGRlc3RpbmF0aW9uLnZhbHVlOworICAgIGRlYnVnKHJl
c3VsdCA9PSAnaHR0cDovL3d3dy5hcHBsZS5jb20vJyA/ICdQQVNTJyA6ICdGQUlMOiBleHBlY3Rl
ZCB2YWx1ZT0iaHR0cDovL3d3dy5hcHBsZS5jb20vIiwgYWN0dWFsIHZhbHVlPSInICsgcmVzdWx0
ICsgJyInKTsKKworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKzwv
c2NyaXB0PgorPHA+VGhpcyB0ZXN0cyB0ZXh0IHNlbGVjdGlvbiBkcmFnIGZvciBhIFVSTC1saWtl
IHRleHQuPC9wPgorPGRpdiBpZD1jb25zb2xlPjwvZGl2PgorPGlucHV0IGlkPXNvdXJjZSB2YWx1
ZT0iaHR0cDovL3d3dy5hcHBsZS5jb20vIj4KKzxpbnB1dCBpZD1kZXN0aW5hdGlvbj4KKzxzY3Jp
cHQ+ZWRpdGluZ1Rlc3QoKTs8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTRhZTViM2M5MmQ1
MTBmNzNiN2E3MTcxMjc5OTUxYmI2YWJkYjY1MS4uM2ExNWZhNWUyNDdiOTkxOWQ2YWJkY2M3MzMw
NjNjNGMzNmQxMzVjZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wNS0wMSAgS2VudCBUYW11cmEgIDx0
a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUkVHUkVTU0lPTihyNTQzNjgpOiBUZXh0IGRyYWctYW5kLWRyb3AgZnJvbSBp
bnB1dC90ZXh0YXJlYSBkb2Vzbid0IHdvcmsKKyAgICAgICAgaWYgdGhlIHRleHQgaXMgbGlrZSBh
IFVSTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzgz
NzQKKworICAgICAgICBTaW5jZSByNTQzNjgsIGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEo
KSBjcmVhdGVzIGFuIDxhPiBlbGVtZW50CisgICAgICAgIHdpdGggbm8gYW5jaG9yIHRleHQgZm9y
IFVSTC1saWtlIHRleHQgZHJhZ2dlZCBmcm9tIGlucHV0L3RleHRhcmVhCisgICAgICAgIGVsZW1l
bnQuIElmIHN1Y2ggdGV4dCBpcyBkcm9wcGVkIHRvIGlucHV0L3RleHRhcmVhIGVsZW1lbnQsIHRo
ZSB0ZXh0CisgICAgICAgIGlzIG5vdCBpbnNlcnRlZC4KKyAgICAgICAgVG8gZml4IHRoaXMgcHJv
YmxlbSwgdXNlIHRoZSBvcmlnaW5hbCB0ZXh0IG9yIHRoZSBVUkwgYXMgYW4gYW5jaG9yCisgICAg
ICAgIHRleHQuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZHJvcC11
cmwtdGV4dC5odG1sCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEpOgorCiAyMDEwLTA1LTAx
ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAgYi9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDBkYTY4NzM1YzVl
YmE4Yzc3ZTg4NWQ2MGYzNTc4ZDc0Njg1OTgxMzUuLmM2MDM5OTYyMzBjMDNiMWYyNDJjYTM3Y2E3
ZTkzMDllYzBmMGViMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtMTE1LDggKzExNSwx
NSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50
RnJvbURyYWdEYXRhKERyYWdEYXRhKiBkcmFnRAogICAgICAgICAgICAgaWYgKCF1cmwuaXNFbXB0
eSgpKSB7CiAgICAgICAgICAgICAgICAgUmVmUHRyPEhUTUxBbmNob3JFbGVtZW50PiBhbmNob3Ig
PSBIVE1MQW5jaG9yRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAgICAgICAgICBh
bmNob3ItPnNldEhyZWYodXJsKTsKLSAgICAgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwor
ICAgICAgICAgICAgICAgIGlmICh0aXRsZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgLy8gVHJ5IHRoZSBwbGFpbiB0ZXh0IGZpcnN0IGJlY2F1c2UgdGhlIHVybCBtaWdodCBiZSBu
b3JtYWxpemVkIG9yIGVzY2FwZWQuCisgICAgICAgICAgICAgICAgICAgIGlmIChkcmFnRGF0YS0+
Y29udGFpbnNQbGFpblRleHQoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gZHJh
Z0RhdGEtPmFzUGxhaW5UZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0aXRsZS5pc0Vt
cHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHVybDsKKyAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgUmVmUHRyPE5vZGU+IGFuY2hvclRleHQgPSBkb2N1bWVu
dC0+Y3JlYXRlVGV4dE5vZGUodGl0bGUpOworICAgICAgICAgICAgICAgIEV4Y2VwdGlvbkNvZGUg
ZWM7CiAgICAgICAgICAgICAgICAgYW5jaG9yLT5hcHBlbmRDaGlsZChhbmNob3JUZXh0LCBlYyk7
CiAgICAgICAgICAgICAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9j
dW1lbnQtPmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKICAgICAgICAgICAgICAgICBmcmFnbWVu
dC0+YXBwZW5kQ2hpbGQoYW5jaG9yLCBlYyk7Cg==
</data>
<flag name="review"
          id="38922"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="39147"
          type_id="3"
          status="-"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>