<?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>29749</bug_id>
          
          <creation_ts>2009-09-25 14:29:35 -0700</creation_ts>
          <short_desc>Integrate chromium into update-webkit and build-webkit</short_desc>
          <delta_ts>2009-09-28 21:07:18 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>
          <dependson>29722</dependson>
          <blocked>28396</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yaar Schnitman">yaar</reporter>
          <assigned_to name="Yaar Schnitman">yaar</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>150153</commentid>
    <comment_count>0</comment_count>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2009-09-25 14:29:35 -0700</bug_when>
    <thetext>&quot;update-webkit --chromium&quot; will fetch chromium port&apos;s additional dependencies (using chromium&apos;s gclient tool) and invoke gyp to regenerate make/vcproj/xcodeproj files.
&quot;build-webkit --chromium&quot; will build the webkit chromium port.

At this stage, since chromium uses its own gyp-based build system, command-line options that other builds have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150643</commentid>
    <comment_count>1</comment_count>
      <attachid>40256</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2009-09-28 13:57:29 -0700</bug_when>
    <thetext>Created attachment 40256
patch

Thank you for reviewing this (historical?) patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150668</commentid>
    <comment_count>2</comment_count>
      <attachid>40256</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-28 14:44:49 -0700</bug_when>
    <thetext>Comment on attachment 40256
patch

run-chromium boiler plate seems premature, please remove.

I don&apos;t understand why build-webkit exits early for chromium?

I think the buildChromium stuff should move into wkdirs.pm like the rest of the build functions are.  Yes, build-webkit his horribly factored these days. :(

I really really like making writeCongrats() its own function!  Glad you did that.

Why?
 329     
 330     # Chromium can exit here.
 331     exit $result;

Style:
 323     }elsif (isLinux()) {

You might consider moving the chromium update stuff into its own script &quot;update-chromium-deps&quot; or something?

Don&apos;t need to mark me as a reviewer.  That doesn&apos;t do anything in bugzilla, at least not anything useful.  It tells other reviewers that they shouldn&apos;t review something instead of telling me that I should.  It doesn&apos;t even send me an email. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150695</commentid>
    <comment_count>3</comment_count>
      <attachid>40267</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2009-09-28 15:50:23 -0700</bug_when>
    <thetext>Created attachment 40267
Patch with Eric&apos;s feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150698</commentid>
    <comment_count>4</comment_count>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2009-09-28 15:55:05 -0700</bug_when>
    <thetext>
&gt; run-chromium boiler plate seems premature, please remove.
Done. 
&gt; I don&apos;t understand why build-webkit exits early for chromium?
Chromium doesn&apos;t build each directory, but builds according to the dependancies graph as described by the gyp files.
&gt; I think the buildChromium stuff should move into wkdirs.pm like the rest of the
&gt; build functions are.  Yes, build-webkit his horribly factored these days. :(
Done. 
&gt; I really really like making writeCongrats() its own function!  Glad you did
&gt; that.
&gt; 
&gt; Why?
&gt;  329     
&gt;  330     # Chromium can exit here.
&gt;  331     exit $result;
&gt; 
&gt; Style:
&gt;  323     }elsif (isLinux()) {
&gt; 
&gt; You might consider moving the chromium update stuff into its own script
&gt; &quot;update-chromium-deps&quot; or something?
I created update-webkit-chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150715</commentid>
    <comment_count>5</comment_count>
      <attachid>40267</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-28 16:43:50 -0700</bug_when>
    <thetext>Comment on attachment 40267
Patch with Eric&apos;s feedback

OK, this is closer.

Extra space intended?
2 if (isChromium()) {
 323     
 324     # Chromium doesn&apos;t build by project directories.

You should print instructions on how, or at least print a web url of where instructions are:
 33     print &quot;gclient is required for updating chromium dependencies.\n&quot;;
 34     print &quot;Install depot_tools and add gclient to the environment path.\n&quot;;
 35     return 1;

If you ever expect &quot;normal&quot; WebKit folks to be able to use this, you&apos;ll need to make the instructions very very simple.

What does &quot;return 1&quot; do in perl?  I assume you mean exit(1) in those cases?  Or &quot;die&quot; would probably be better, especially with a die message.

die is probably better:
45     if ($result != 0) {
 46         print &quot;Error while configuring gclient for chromium port\n&quot;;
 47         return 1;
 48     }

What does this mean?
 1364     # Chromium port builds using GYP, so it can start right away

Why do you need two else if&apos;s?  Why not just an else?

1369     } elsif (isCygwin()) {
 1370         # Windows build
 1371         # FIXME support windows.
 1372         print &quot;Windows build is not supported. Yet.&quot;;
 1373     } elsif (isLinux()) {
 1374         # Linux build
 1375         # FIXME support linux.
 1376         print &quot;Linux build is not supported. Yet.&quot;;
 1377     }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150727</commentid>
    <comment_count>6</comment_count>
      <attachid>40271</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2009-09-28 17:00:42 -0700</bug_when>
    <thetext>Created attachment 40271
Round 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150730</commentid>
    <comment_count>7</comment_count>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2009-09-28 17:04:46 -0700</bug_when>
    <thetext>&gt; You should print instructions on how, or at least print a web url of where
&gt; instructions are:
Done.
 
&gt; If you ever expect &quot;normal&quot; WebKit folks to be able to use this, you&apos;ll need to
&gt; make the instructions very very simple.
My next step is creating a webkit wiki page with chromium specific instructions. Would be very simple and align with the current webkit webkit instructions.

&gt; What does &quot;return 1&quot; do in perl?  I assume you mean exit(1) in those cases?  Or
&gt; &quot;die&quot; would probably be better, especially with a die message.
Every day I learn something new (yesterday it was Perl...).

&gt; What does this mean?
&gt;  1364     # Chromium port builds using GYP, so it can start right away
I wish copy-pasting would also rewrite comments...

&gt; Why do you need two else if&apos;s?  Why not just an else?
&gt; 
&gt; 1369     } elsif (isCygwin()) {
&gt;  1370         # Windows build
&gt;  1371         # FIXME support windows.
&gt;  1372         print &quot;Windows build is not supported. Yet.&quot;;
&gt;  1373     } elsif (isLinux()) {
&gt;  1374         # Linux build
&gt;  1375         # FIXME support linux.
&gt;  1376         print &quot;Linux build is not supported. Yet.&quot;;
&gt;  1377     }
Defensive programming. I added a final &apos;else&apos; with &apos;platform is not supported&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150732</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-28 17:10:16 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; What does &quot;return 1&quot; do in perl?  I assume you mean exit(1) in those cases?  Or
&gt; &gt; &quot;die&quot; would probably be better, especially with a die message.
&gt; Every day I learn something new (yesterday it was Perl...).

Btw, you have no obligation to write any of this in perl.  New scripts can be Python or Ruby w/o anyone arguing (we have both in the repository).  Personally I&apos;m more of a python guy these days. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150733</commentid>
    <comment_count>9</comment_count>
      <attachid>40271</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-28 17:12:08 -0700</bug_when>
    <thetext>Comment on attachment 40271
Round 3

This is OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150739</commentid>
    <comment_count>10</comment_count>
      <attachid>40267</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-09-28 17:15:25 -0700</bug_when>
    <thetext>Comment on attachment 40267
Patch with Eric&apos;s feedback

Thanks for updating the patch.  Mostly style nits below.

&gt; diff --git a/WebKitTools/Scripts/build-webkit b/WebKitTools/Scripts/build-webkit

&gt; -# Copyright (C) 2005, 2006 Apple Computer, Inc.  All rights reserved.
&gt; +# Copyright (C) 2005, 2006 Apple Computer, Inc. All rights reserved.

If you&apos;re going to change this line, you might as well change &quot;Apple Computer, Inc.&quot; to &quot;Apple Inc.&quot;

&gt; +sub writeCongrats;

Please add empty parenthesis here:  sub writeCongrats();

&gt; @@ -304,6 +306,8 @@ if (isGtk()) {
&gt;      foreach (@features) {
&gt;          push @options, &quot;DEFINES+=$_-&gt;{define}=${$_-&gt;{value}}&quot; if ${$_-&gt;{value}} != $_-&gt;{default};
&gt;      }
&gt; +} elsif (isChromium()) {
&gt; +    # FIXME: decide which command line args chromium should support.
&gt;  }

I would just leave this off until it&apos;s needed.  I think it&apos;s obvious where this code will go if it&apos;s needed.

&gt; +if (isChromium()) {
&gt; +    
&gt; +    # Chromium doesn&apos;t build by project directories.

Please remove the unneeded whitespace.

&gt; +    @projects = ();
&gt; +    my $result = buildChromium($clean, @options);
&gt; +    exit $result if $result != 0;
&gt; +}

This should be:  exit $result if $result;

&gt; +sub writeCongrats

Need empty parenthesis here:  sub writeCongrats()

&gt; diff --git a/WebKitTools/Scripts/update-webkit b/WebKitTools/Scripts/update-webkit

Why do you need to add a --chromium switch here?  I think you should use determineIsChromium() from webkitdirs.pm.

Just add the call to determineIsChromium() before the GetOptions() call, then:

&gt; +} elsif ($chromium) {
&gt; +    system(&quot;perl&quot;, &quot;WebKitTools/Scripts/update-webkit-chromium&quot;) == 0 or die;

...use isChromium() here instead of &quot;$chromium&quot;.

You can keep &quot;--chromium&quot; in the usage statement, though.

&gt; diff --git a/WebKitTools/Scripts/update-webkit-chromium b/WebKitTools/Scripts/update-webkit-chromium

&gt; +# Check if gclient is installed.
&gt; +if (not &apos;gclient --version&apos;) {

I think these need to be backticks (`), not single quotes (&apos;) to work.  I assume you want to run &quot;gclient --version&quot; in a shell and grab the result.

&gt; +    print &quot;gclient is required for updating chromium dependencies.\n&quot;;
&gt; +    print &quot;Install depot_tools and add gclient to the environment path.\n&quot;;

These should probably print to STDERR since they&apos;re error messages.

&gt; +    return 1;

This should be &quot;exit 1;&quot;

&gt; +# If .gclient configuration file doesn&apos;t exist, create it.
&gt; +chdir(&quot;WebKit/chromium&quot;) or die;

Use &quot;or die $!;&quot; here.

&gt; +if (!(-e &quot;.gclient&quot;)) {

No need for the extra parenthesis:  if (! -e &quot;.gclient&quot;) {&quot;

&gt; +    print &quot;Configuring gclient...\n&quot;;
&gt; +    my $result = system(&quot;gclient&quot;, 
&gt; +                     &quot;config&quot;, 
&gt; +                      &quot;--spec=solutions=[{&apos;name&apos;:&apos;./&apos;,&apos;url&apos;:None}]&quot;);

This should be on a single line, or indented 4 spaces.

&gt; +    if ($result != 0) {
&gt; +        print &quot;Error while configuring gclient for chromium port\n&quot;;

Print to STDERR.

&gt; +        return 1;

Please use &quot;exit 1;&quot; here.

&gt; +# Execute gclient sync.
&gt; +print &quot;Updating chromium port dependencies using gclient...\n&quot;;
&gt; +system(&quot;gclient&quot;, &quot;sync&quot;) == 0 or die;

Probably easier to use this instead of system():  exec(&quot;gclient&quot;, &quot;sync&quot;);

&gt; diff --git a/WebKitTools/Scripts/webkitdirs.pm b/WebKitTools/Scripts/webkitdirs.pm


&gt; +sub buildChromium($@)
&gt; +{
&gt; +    my ($clean, @options) = @_;
&gt; +
&gt; +    # Chromium port builds using GYP, so it can start right away
&gt; +    my $result = 1;
&gt; +    if (isDarwin()) {
&gt; +        # Mac build - builds the root xcode project.
&gt; +        $result = buildXCodeProject(&quot;WebKit/chromium/webkit&quot;, $clean, (@options));
&gt; +    } elsif (isCygwin()) {
&gt; +        # Windows build
&gt; +        # FIXME support windows.
&gt; +        print &quot;Windows build is not supported. Yet.&quot;;
&gt; +    } elsif (isLinux()) {
&gt; +        # Linux build
&gt; +        # FIXME support linux.
&gt; +        print &quot;Linux build is not supported. Yet.&quot;;
&gt; +    }
&gt; +}

You need to return $result from buildChromium().

The print statements should probably be to STDERR since they&apos;re error messages.

r- to address the above issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150740</commentid>
    <comment_count>11</comment_count>
      <attachid>40271</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-09-28 17:16:11 -0700</bug_when>
    <thetext>Comment on attachment 40271
Round 3

r-.  See previous comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150762</commentid>
    <comment_count>12</comment_count>
      <attachid>40273</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2009-09-28 17:38:49 -0700</bug_when>
    <thetext>Created attachment 40273
Patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150764</commentid>
    <comment_count>13</comment_count>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2009-09-28 17:41:59 -0700</bug_when>
    <thetext>All feedback incorporated into patch 4, except:

&gt; &gt; +} elsif ($chromium) {
&gt; &gt; +    system(&quot;perl&quot;, &quot;WebKitTools/Scripts/update-webkit-chromium&quot;) == 0 or die;

isChromium doesn&apos;t work in update-webkit. If this is critical, please advise me of how to make isChromium work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150774</commentid>
    <comment_count>14</comment_count>
      <attachid>40273</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-09-28 18:10:23 -0700</bug_when>
    <thetext>Comment on attachment 40273
Patch 4

(In reply to comment #13)
&gt; All feedback incorporated into patch 4, except:
&gt; 
&gt; &gt; &gt; +} elsif ($chromium) {
&gt; &gt; &gt; +    system(&quot;perl&quot;, &quot;WebKitTools/Scripts/update-webkit-chromium&quot;) == 0 or die;
&gt; 
&gt; isChromium doesn&apos;t work in update-webkit. If this is critical, please advise me
&gt; of how to make isChromium work.

Like I said in Comment #10, &quot;Just add the call to determineIsChromium() before the GetOptions() call...&quot;:

--- a/WebKitTools/Scripts/update-webkit
+++ b/WebKitTools/Scripts/update-webkit
@@ -44,6 +44,8 @@ sub normalizePath($);
 my $quiet = &apos;&apos;;
 my $showHelp;
 
+determineIsChromium();
+
 my $getOptionsResult = GetOptions(
     &apos;h|help&apos;  =&gt; \$showHelp,
     &apos;q|quiet&apos; =&gt; \$quiet,

That method parses @ARGV for &quot;--chromium&quot; and then removes it from @ARGV.  When you later call isChromium(), the value is set to true if the --chromium switch was parsed, else it returns false.

Please make this change and post the patch again.  Thanks for your patience!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150783</commentid>
    <comment_count>15</comment_count>
      <attachid>40279</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2009-09-28 19:08:19 -0700</bug_when>
    <thetext>Created attachment 40279
patch 5

David, thank you for the thorough review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150785</commentid>
    <comment_count>16</comment_count>
      <attachid>40279</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-09-28 19:34:55 -0700</bug_when>
    <thetext>Comment on attachment 40279
patch 5

&gt; diff --git a/WebKitTools/Scripts/build-webkit b/WebKitTools/Scripts/build-webkit

&gt; +sub writeCongrats();
&gt;  sub formatBuildTime($);

These subroutine definitions should be in alphabetical order.

&gt; +sub writeCongrats

Should be:  sub writeCongrats()

&gt; diff --git a/WebKitTools/Scripts/update-webkit b/WebKitTools/Scripts/update-webkit

&gt;  my $getOptionsResult = GetOptions(
&gt; -    &apos;h|help&apos;  =&gt; \$showHelp,
&gt; -    &apos;q|quiet&apos; =&gt; \$quiet,
&gt; +    &apos;h|help&apos;   =&gt; \$showHelp,
&gt; +    &apos;q|quiet&apos;  =&gt; \$quiet,
&gt;  ); 

These changes aren&apos;t needed now.

r=me

I&apos;ll land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150793</commentid>
    <comment_count>17</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-09-28 21:07:18 -0700</bug_when>
    <thetext>Committed r48853: &lt;http://trac.webkit.org/changeset/48853&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40256</attachid>
            <date>2009-09-28 13:57:29 -0700</date>
            <delta_ts>2009-09-28 15:50:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wk29749.diff</filename>
            <type>text/plain</type>
            <size>9718</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlYjI4YzNmLi45NDMzNGMzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMDkt
MjggIFlhYXIgU2Nobml0bWFuICA8eWFhckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50ZWdyYXRlZCBjaHJvbWl1bSBwb3J0
IGJ1aWxkaW5nIGludG8gd2Via2l0IHRvb2xzIHVwZGF0ZS13ZWJraXQgYW5kCisgICAgICAgIGJ1
aWxkLXdlYmtpdC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mjk3NDkKKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OiBXaGVuIC0tY2hy
b21pdW0gaXMgc3BlY2lmaWVkLCB3aWxsIGJ1aWxkCisgICAgICAgICAgdGhlIGNocm9taXVtIHBv
cnQgKGN1cnJlbnRseSBvbmx5IE1hYyBpcyBzdXBwb3J0ZWQpLgorICAgICAgICAqIFNjcmlwdHMv
cnVuLWNocm9taXVtOiBQbGFjZSBob2xkZXIgZm9yIGZ1dHVyZSBleGVjdXRpb24gb2Ygd2Via2l0
CisgICAgICAgICAgaW5zaWRlIGFuIGluZGVwZW5kZW50bHkgY29tcGlsZWQgY2hyb21pdW0uCisg
ICAgICAgICogU2NyaXB0cy91cGRhdGUtd2Via2l0OiBXaGVuIC0tY2hyb21pdW0gaXMgc3BlY2lm
aWVkLCB3aWxsIHVwZGF0ZQorICAgICAgICAgIHdlYmtpdCBhcyB3ZWxsIGFzIHRoZSBjaHJvbWl1
bSBwb3J0J3MgZGVwZW5kZW5jaWVzICh0aGUgbGF0ZXIgdmlhCisgICAgICAgICAgZ2NsaWVudCks
IGFuZCBhbHNvIHJlLWdlbmVyYXRlIHhjb2RlL3ZzcHJvai9tYWtlIGZpbGVzIHRocm91Z2ggZ3lw
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0ZGlycy5wbTogQWRkZWQgc29tZSBjaHJvbWl1bSBz
cGVjaWZpYyBkZWZzLgorCiAyMDA5LTA5LTI3ICBKYWt1YiBXaWVjem9yZWsgIDxmYXcyMTdAZ21h
aWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQgYi9XZWJLaXRUb29scy9TY3JpcHRzL2J1
aWxkLXdlYmtpdAppbmRleCBmMDRlMDQwLi5hYmJkZGYxIDEwMDc1NQotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL2J1aWxkLXdlYmtpdAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL2J1aWxkLXdl
YmtpdApAQCAtMSw2ICsxLDcgQEAKICMhL3Vzci9iaW4vcGVybCAtdwogCi0jIENvcHlyaWdodCAo
QykgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw2ICszOCw3IEBA
IHVzZSBsaWIgJEZpbmRCaW46OkJpbjsKIHVzZSB3ZWJraXRkaXJzOwogdXNlIFBPU0lYOwogCitz
dWIgd3JpdGVDb25ncmF0czsKIHN1YiBmb3JtYXRCdWlsZFRpbWUoJCk7CiAKIG15ICRvcmlnaW5h
bFdvcmtpbmdEaXJlY3RvcnkgPSBnZXRjd2QoKTsKQEAgLTMwNCw2ICszMDYsMjkgQEAgaWYgKGlz
R3RrKCkpIHsKICAgICBmb3JlYWNoIChAZmVhdHVyZXMpIHsKICAgICAgICAgcHVzaCBAb3B0aW9u
cywgIkRFRklORVMrPSRfLT57ZGVmaW5lfT0keyRfLT57dmFsdWV9fSIgaWYgJHskXy0+e3ZhbHVl
fX0gIT0gJF8tPntkZWZhdWx0fTsKICAgICB9Cit9IGVsc2lmIChpc0Nocm9taXVtKCkpIHsKKyAg
ICAjIEZJWE1FOiBkZWNpZGUgd2hpY2ggY29tbWFuZCBsaW5lIGFyZ3MgY2hyb21pdW0gc2hvdWxk
IHN1cHBvcnQuCit9CisKK2lmIChpc0Nocm9taXVtKCkpIHsKKyAgICAjIENocm9taXVtIHBvcnQg
YnVpbGRzIHVzaW5nIEdZUCwgc28gaXQgY2FuIHN0YXJ0IHJpZ2h0IGF3YXkKKyAgICBteSAkcmVz
dWx0ID0gMTsKKyAgICBpZiAoaXNEYXJ3aW4oKSkgeworICAgICAgICAjIE1hYyBidWlsZAorICAg
ICAgICAkcmVzdWx0ID0gYnVpbGRYQ29kZVByb2plY3QoIldlYktpdC9jaHJvbWl1bS93ZWJraXQi
LCAkY2xlYW4sIChAb3B0aW9ucykpKTsKKyAgICB9ZWxzaWYgKGlzQ3lnd2luKCkpIHsKKyAgICAg
ICAgIyBXaW5kb3dzIGJ1aWxkCisgICAgICAgICMgRklYTUUgc3VwcG9ydCBsaW51eC4KKyAgICAg
ICAgcHJpbnQgIldpbmRvd3MgYnVpbGQgaXMgbm90IHN1cHBvcnRlZC4gWWV0LiI7CisgICAgfWVs
c2lmIChpc0xpbnV4KCkpIHsKKyAgICAgICAgIyBMaW51eCBidWlsZAorICAgICAgICAjIEZJWE1F
IHN1cHBvcnQgbGludXguCisgICAgICAgIHByaW50ICJMaW51eCBidWlsZCBpcyBub3Qgc3VwcG9y
dGVkLiBZZXQuIjsKKyAgICB9CisgICAgd3JpdGVDb25ncmF0cygpIGlmICRyZXN1bHQgPT0gMDsK
KyAgICAKKyAgICAjIENocm9taXVtIGNhbiBleGl0IGhlcmUuCisgICAgZXhpdCAkcmVzdWx0Owog
fQogCiAjIEZvcmNlIHJlLWxpbmsgb2YgZXhpc3RpbmcgbGlicmFyaWVzIGlmIGRpZmZlcmVudCB0
aGFuIGV4cGVjdGVkCkBAIC0zNjUsMjAgKzM5MCwyNiBAQCBmb3IgbXkgJGRpciAoQHByb2plY3Rz
KSB7CiBleGl0IGlmICRjbGVhbjsKIAogIyBXcml0ZSBvdXQgY29uZ3JhdHVsYXRpb25zIG1lc3Nh
Z2UuCit3cml0ZUNvbmdyYXRzKCk7CisKK2V4aXQgMDsKIAotbXkgJGxhdW5jaGVyUGF0aCA9IGxh
dW5jaGVyUGF0aCgpOwotbXkgJGxhdW5jaGVyTmFtZSA9IGxhdW5jaGVyTmFtZSgpOwotbXkgJGVu
ZFRpbWUgPSB0aW1lKCk7Ci1teSAkYnVpbGRUaW1lID0gZm9ybWF0QnVpbGRUaW1lKCRlbmRUaW1l
IC0gJHN0YXJ0VGltZSk7CiAKLXByaW50ICJcbiI7Ci1wcmludCAiPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiI7Ci1wcmludCAiIFdl
YktpdCBpcyBub3cgYnVpbHQgKCRidWlsZFRpbWUpLiBcbiI7Ci1wcmludCAiIFRvIHJ1biAkbGF1
bmNoZXJOYW1lIHdpdGggdGhpcyBuZXdseS1idWlsdCBjb2RlLCB1c2UgdGhlXG4iOwotcHJpbnQg
IiBcIiRsYXVuY2hlclBhdGhcIiBzY3JpcHQuXG4iOwotcHJpbnQgIj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iOworc3ViIHdyaXRl
Q29uZ3JhdHMKK3sKKyAgICBteSAkbGF1bmNoZXJQYXRoID0gbGF1bmNoZXJQYXRoKCk7CisgICAg
bXkgJGxhdW5jaGVyTmFtZSA9IGxhdW5jaGVyTmFtZSgpOworICAgIG15ICRlbmRUaW1lID0gdGlt
ZSgpOworICAgIG15ICRidWlsZFRpbWUgPSBmb3JtYXRCdWlsZFRpbWUoJGVuZFRpbWUgLSBAXyk7
CisKKyAgICBwcmludCAiXG4iOworICAgIHByaW50ICI9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIjsKKyAgICBwcmludCAiIFdlYktp
dCBpcyBub3cgYnVpbHQgKCRidWlsZFRpbWUpLiBcbiI7CisgICAgcHJpbnQgIiBUbyBydW4gJGxh
dW5jaGVyTmFtZSB3aXRoIHRoaXMgbmV3bHktYnVpbHQgY29kZSwgdXNlIHRoZVxuIjsKKyAgICBw
cmludCAiIFwiJGxhdW5jaGVyUGF0aFwiIHNjcmlwdC5cbiI7CisgICAgcHJpbnQgIj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iOwor
fQogCi1leGl0IDA7CiAKIHN1YiBmb3JtYXRCdWlsZFRpbWUoJCkKIHsKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvcnVuLWNocm9taXVtIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4t
Y2hyb21pdW0KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTU5ZmNlYwotLS0g
L2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvcnVuLWNocm9taXVtCkBAIC0wLDAg
KzEsNDAgQEAKKyMhL3Vzci9iaW4vcGVybCAtdworCisjIENvcHlyaWdodCAoQykgMjAwNSwgMjAw
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwOSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyMgMy4gIE5laXRoZXIg
dGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMg
b2YKKyMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisj
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisj
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisjIFNpbXBsaWZpZWQgInJ1biIgc2NyaXB0IGZvciBXZWJLaXQgT3BlbiBTb3VyY2UgUHJv
amVjdCB1bmRlciBDaHJvbWl1bS4KKwordXNlIHN0cmljdDsKK3VzZSBGaW5kQmluOwordXNlIGxp
YiAkRmluZEJpbjo6QmluOwordXNlIHdlYmtpdGRpcnM7CisKKyMgTm90IHN1cHBvcnRlZCB1bnRp
bCB0aGUgd2Via2l0IGxpbmtzIHRvIGNocm9taXVtIGFzIGEgZHluYW1pYyBsaWJyYXJ5LgorcHJp
bnQgIlJ1bm5pbmcgd2Via2l0IGNocm9taXVtIHBvcnQgdW5kZXIgQ2hyb21pdW0gaXMgbm90IHN1
cHBvcnRlZC4gWWV0LlxuIjsKKworZXhpdCgxKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvdXBkYXRlLXdlYmtpdCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdApp
bmRleCBkOGNiNmI2Li5mNGI1MzRmIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3Vw
ZGF0ZS13ZWJraXQKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0CkBAIC0x
LDYgKzEsNyBAQAogIyEvdXNyL2Jpbi9wZXJsIC13CiAKICMgQ29weXJpZ2h0IChDKSAyMDA1LCAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzLDEwICs0NCwxMiBAQCBzdWIgbm9ybWFsaXpl
UGF0aCgkKTsKICMgSGFuZGxlIG9wdGlvbnMKIG15ICRxdWlldCA9ICcnOwogbXkgJHNob3dIZWxw
OworbXkgJGNocm9taXVtOwogCiBteSAkZ2V0T3B0aW9uc1Jlc3VsdCA9IEdldE9wdGlvbnMoCi0g
ICAgJ2h8aGVscCcgID0+IFwkc2hvd0hlbHAsCi0gICAgJ3F8cXVpZXQnID0+IFwkcXVpZXQsCisg
ICAgJ2h8aGVscCcgICA9PiBcJHNob3dIZWxwLAorICAgICdxfHF1aWV0JyAgPT4gXCRxdWlldCwK
KyAgICAnY2hyb21pdW0nID0+IFwkY2hyb21pdW0sCiApOyAKIAogaWYgKCEkZ2V0T3B0aW9uc1Jl
c3VsdCB8fCAkc2hvd0hlbHApIHsKQEAgLTU0LDYgKzU3LDcgQEAgaWYgKCEkZ2V0T3B0aW9uc1Jl
c3VsdCB8fCAkc2hvd0hlbHApIHsKIFVzYWdlOiBAe1sgYmFzZW5hbWUoJDApIF19IFtvcHRpb25z
XQogICAtaHwtLWhlbHAgICBzaG93IHRoZSBoZWxwIG1lc3NhZ2UKICAgLXF8LS1xdWlldCAgcGFz
cyAtcSB0byBzdm4gdXBkYXRlIGZvciBxdWlldCB1cGRhdGVzCisgIC0tY2hyb21pdW0gIGFsc28g
dXBkYXRlIGRlcGVuZGVuY2llcyBvZiB0aGUgY2hyb21pdW0gcG9ydAogX19FTkRfXwogICAgIGV4
aXQgMTsKIH0KQEAgLTc2LDYgKzgwLDM0IEBAIGlmICgtZCAiLi4vSW50ZXJuYWwiKSB7CiAgICAg
c3lzdGVtKCJwZXJsIiwgIldlYktpdFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1hdXhpbGlh
cnktbGlicyIpID09IDAgb3IgZGllOwogfQogCisjIENocm9taXVtIHVzZXMgZ2NsaWVudCB0byBw
ZXJmb3JtIGFkZGl0aW9uYWwgdXBkYXRlIHN0ZXBzLgoraWYgKCRjaHJvbWl1bSkgeworICAgIGlm
IChub3QgJ2djbGllbnQgLS12ZXJzaW9uJykgeworICAgICAgICBwcmludCAiZ2NsaWVudCBpcyBy
ZXF1aXJlZCBmb3IgdXBkYXRpbmcgY2hyb21pdW0gZGVwZW5kZW5jaWVzLlxuIjsKKyAgICAgICAg
cHJpbnQgIkluc3RhbGwgZGVwb3RfdG9vbHMgYW5kIGFkZCBnY2xpZW50IHRvIHRoZSBlbnZpcm9u
bWVudCBwYXRoLlxuIjsKKyAgICAgICAgZXhpdCAxOworICAgIH0KKyAgICAKKyAgICBjaGRpcigi
V2ViS2l0L2Nocm9taXVtIikgb3IgZGllOworICAgIG15ICRyZXN1bHQ7CisgICAgaWYgKCEoLWUg
Ii5nY2xpZW50IikpIHsKKyAgICAgICAgcHJpbnQgIkNvbmZpZ3VyaW5nIGdjbGllbnQuLi5cbiIg
dW5sZXNzICRxdWlldDsKKyAgICAgICAgJHJlc3VsdCA9IHN5c3RlbSgiZ2NsaWVudCIsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICJjb25maWciLCAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIi0tc3BlYz1zb2x1dGlvbnM9W3snbmFtZSc6Jy4vJywndXJsJzpOb25lfV0iKTsKKyAgICAg
ICAgaWYgKCRyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgcHJpbnQgIkVycm9yIHdoaWxlIGNv
bmZpZ3VyaW5nIGdjbGllbnQgZm9yIGNocm9taXVtIHBvcnRcbiIgdW5sZXNzICRxdWlldDsKKyAg
ICAgICAgICAgIGV4aXQgMTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcmludCAiVXBkYXRpbmcg
Y2hyb21pdW0gcG9ydCBkZXBlbmRlbmNpZXMgdXNpbmcgZ2NsaWVudC4uLlxuIiB1bmxlc3MgJHF1
aWV0OworICAgICRyZXN1bHQgPSBzeXN0ZW0oImdjbGllbnQiLCAic3luYyIpOworICAgIGlmICgk
cmVzdWx0ICE9IDApeworICAgICAgICBwcmludCAiR0NsaWVudCBmYWlsZWQgdG8gdXBkYXRlIGNo
cm9taXVtIHBvcnQuXG4iIHVubGVzcyAkcXVpZXQ7CisgICAgICAgIGV4aXQgMTsKKyAgICB9Cit9
CisKIGV4aXQgMDsKIAogc3ViIHJ1blN2blVwZGF0ZSgpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMu
cG0KaW5kZXggZDNiOWUwMC4uMmUyY2JjMiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRkaXJzLnBtCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQpA
QCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTk2
MCw2ICs5NjEsOCBAQCBzdWIgbGF1bmNoZXJQYXRoKCkKICAgICAgICAgcmV0dXJuICIkcmVsYXRp
dmVTY3JpcHRzUGF0aC9ydW4tbGF1bmNoZXIiOwogICAgIH0gZWxzaWYgKGlzQXBwbGVXZWJLaXQo
KSkgewogICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQYXRoL3J1bi1zYWZhcmkiOwor
ICAgIH0gZWxzaWYgKGlzQ2hyb21pdW0oKSkgeworICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNj
cmlwdHNQYXRoL3J1bi1jaHJvbWl1bSI7CiAgICAgfQogfQogCkBAIC05NzMsNiArOTc2LDggQEAg
c3ViIGxhdW5jaGVyTmFtZSgpCiAgICAgICAgIHJldHVybiAid3hCcm93c2VyIjsKICAgICB9IGVs
c2lmIChpc0FwcGxlV2ViS2l0KCkpIHsKICAgICAgICAgcmV0dXJuICJTYWZhcmkiOworICAgIH0g
ZWxzaWYgKGlzQ2hyb21pdW0oKSkgeworICAgICAgICByZXR1cm4gIkNocm9taXVtIjsKICAgICB9
CiB9CiAKQEAgLTk5NSw3ICsxMDAwLDcgQEAgc3ViIGNoZWNrUmVxdWlyZWRTeXN0ZW1Db25maWcK
ICAgICAgICAgICAgIHByaW50ICJodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS90b29scy94Y29k
ZVxuIjsKICAgICAgICAgICAgIHByaW50ICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4iOwogICAgICAgICB9Ci0gICAgfSBlbHNp
ZiAoaXNHdGsoKSBvciBpc1F0KCkgb3IgaXNXeCgpKSB7CisgICAgfSBlbHNpZiAoaXNHdGsoKSBv
ciBpc1F0KCkgb3IgaXNXeCgpIG9yIGlzQ2hyb21pdW0oKSkgewogICAgICAgICBteSBAY21kcyA9
IHF3KGZsZXggYmlzb24gZ3BlcmYpOwogICAgICAgICBteSBAbWlzc2luZyA9ICgpOwogICAgICAg
ICBmb3JlYWNoIG15ICRjbWQgKEBjbWRzKSB7Cg==
</data>
<flag name="review"
          id="21449"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40267</attachid>
            <date>2009-09-28 15:50:23 -0700</date>
            <delta_ts>2009-09-28 17:15:25 -0700</delta_ts>
            <desc>Patch with Eric&apos;s feedback</desc>
            <filename>WK29749b.diff</filename>
            <type>text/plain</type>
            <size>9391</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA2N2FlYjRkLi42ZTliNmFhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDkt
MjggIFlhYXIgU2Nobml0bWFuICA8eWFhckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50ZWdyYXRlZCBjaHJvbWl1bSBwb3J0
IGJ1aWxkaW5nIGludG8gd2Via2l0IHRvb2xzIHVwZGF0ZS13ZWJraXQgYW5kCisgICAgICAgIGJ1
aWxkLXdlYmtpdC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mjk3NDkKKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OiBXaGVuIC0tY2hy
b21pdW0gaXMgc3BlY2lmaWVkLCB3aWxsIGJ1aWxkCisgICAgICAgICAgdGhlIGNocm9taXVtIHBv
cnQgKGN1cnJlbnRseSBvbmx5IE1hYyBpcyBzdXBwb3J0ZWQpLgorICAgICAgICAqIFNjcmlwdHMv
dXBkYXRlLXdlYmtpdDogV2hlbiAtLWNocm9taXVtIGlzIHNwZWNpZmllZCwgZGVsZWdhdGVzIHRv
CisgICAgICAgICAgdXBkYXRlLXdlYmtpdC1jaHJvbWl1bS4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdGRpcnMucG06IEFkZGVkIGNocm9taXVtIHNwZWNpZmljIGRlZnMuCisgICAgICAgICogU2Ny
aXB0cy91cGRhdGUtd2Via2l0LWNocm9taXVtOiBVc2VzIGdjbGllbnQgYW5kIGd5cCB0byBmZXRj
aAorICAgICAgICAgIGNocm9taXVtIHBvcnQncyBkZXBlbmRlbmNpZXMgYW5kIHVwZGF0ZSBpdHMg
cHJvamVjdCBmaWxlcy4KKwogMjAwOS0wOS0yNyAgSmFrdWIgV2llY3pvcmVrICA8ZmF3MjE3QGdt
YWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9i
dWlsZC13ZWJraXQKaW5kZXggZjA0ZTA0MC4uN2NkNzJkNiAxMDA3NTUKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQKQEAgLTEsNiArMSw3IEBACiAjIS91c3IvYmluL3BlcmwgLXcKIAotIyBDb3B5cmlnaHQg
KEMpIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNiArMzgsNyBA
QCB1c2UgbGliICRGaW5kQmluOjpCaW47CiB1c2Ugd2Via2l0ZGlyczsKIHVzZSBQT1NJWDsKIAor
c3ViIHdyaXRlQ29uZ3JhdHM7CiBzdWIgZm9ybWF0QnVpbGRUaW1lKCQpOwogCiBteSAkb3JpZ2lu
YWxXb3JraW5nRGlyZWN0b3J5ID0gZ2V0Y3dkKCk7CkBAIC0zMDQsNiArMzA2LDggQEAgaWYgKGlz
R3RrKCkpIHsKICAgICBmb3JlYWNoIChAZmVhdHVyZXMpIHsKICAgICAgICAgcHVzaCBAb3B0aW9u
cywgIkRFRklORVMrPSRfLT57ZGVmaW5lfT0keyRfLT57dmFsdWV9fSIgaWYgJHskXy0+e3ZhbHVl
fX0gIT0gJF8tPntkZWZhdWx0fTsKICAgICB9Cit9IGVsc2lmIChpc0Nocm9taXVtKCkpIHsKKyAg
ICAjIEZJWE1FOiBkZWNpZGUgd2hpY2ggY29tbWFuZCBsaW5lIGFyZ3MgY2hyb21pdW0gc2hvdWxk
IHN1cHBvcnQuCiB9CiAKICMgRm9yY2UgcmUtbGluayBvZiBleGlzdGluZyBsaWJyYXJpZXMgaWYg
ZGlmZmVyZW50IHRoYW4gZXhwZWN0ZWQKQEAgLTMxNSw2ICszMTksMTUgQEAgaWYgKGlzV3goKSkg
ewogICAgIHB1c2ggQHByb2plY3RzLCAnV2ViS2l0L3d4L2JpbmRpbmdzL3B5dGhvbic7CiB9CiAK
K2lmIChpc0Nocm9taXVtKCkpIHsKKyAgICAKKyAgICAjIENocm9taXVtIGRvZXNuJ3QgYnVpbGQg
YnkgcHJvamVjdCBkaXJlY3Rvcmllcy4KKyAgICBAcHJvamVjdHMgPSAoKTsKKyAgICBteSAkcmVz
dWx0ID0gYnVpbGRDaHJvbWl1bSgkY2xlYW4sIEBvcHRpb25zKTsKKyAgICBleGl0ICRyZXN1bHQg
aWYgJHJlc3VsdCAhPSAwOworfQorCisKICMgQnVpbGQsIGFuZCBhYm9ydCBpZiB0aGUgYnVpbGQg
ZmFpbHMuCiBmb3IgbXkgJGRpciAoQHByb2plY3RzKSB7CiAgICAgY2hkaXIgJGRpciBvciBkaWU7
CkBAIC0zNjUsMjAgKzM3OCwyOCBAQCBmb3IgbXkgJGRpciAoQHByb2plY3RzKSB7CiBleGl0IGlm
ICRjbGVhbjsKIAogIyBXcml0ZSBvdXQgY29uZ3JhdHVsYXRpb25zIG1lc3NhZ2UuCit3cml0ZUNv
bmdyYXRzKCk7CiAKLW15ICRsYXVuY2hlclBhdGggPSBsYXVuY2hlclBhdGgoKTsKLW15ICRsYXVu
Y2hlck5hbWUgPSBsYXVuY2hlck5hbWUoKTsKLW15ICRlbmRUaW1lID0gdGltZSgpOwotbXkgJGJ1
aWxkVGltZSA9IGZvcm1hdEJ1aWxkVGltZSgkZW5kVGltZSAtICRzdGFydFRpbWUpOworZXhpdCAw
OwogCi1wcmludCAiXG4iOwotcHJpbnQgIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iOwotcHJpbnQgIiBXZWJLaXQgaXMgbm93IGJ1
aWx0ICgkYnVpbGRUaW1lKS4gXG4iOwotcHJpbnQgIiBUbyBydW4gJGxhdW5jaGVyTmFtZSB3aXRo
IHRoaXMgbmV3bHktYnVpbHQgY29kZSwgdXNlIHRoZVxuIjsKLXByaW50ICIgXCIkbGF1bmNoZXJQ
YXRoXCIgc2NyaXB0LlxuIjsKLXByaW50ICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIjsKIAotZXhpdCAwOworc3ViIHdyaXRlQ29u
Z3JhdHMKK3sKKyAgICBteSAkbGF1bmNoZXJQYXRoID0gbGF1bmNoZXJQYXRoKCk7CisgICAgbXkg
JGxhdW5jaGVyTmFtZSA9IGxhdW5jaGVyTmFtZSgpOworICAgIG15ICRlbmRUaW1lID0gdGltZSgp
OworICAgIG15ICRidWlsZFRpbWUgPSBmb3JtYXRCdWlsZFRpbWUoJGVuZFRpbWUgLSBAXyk7CisK
KyAgICBwcmludCAiXG4iOworICAgIHByaW50ICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIjsKKyAgICBwcmludCAiIFdlYktpdCBp
cyBub3cgYnVpbHQgKCRidWlsZFRpbWUpLiBcbiI7CisgICAgaWYgKCFpc0Nocm9taXVtKCkpIHsK
KyAgICAgICAgcHJpbnQgIiBUbyBydW4gJGxhdW5jaGVyTmFtZSB3aXRoIHRoaXMgbmV3bHktYnVp
bHQgY29kZSwgdXNlIHRoZVxuIjsKKyAgICAgICAgcHJpbnQgIiBcIiRsYXVuY2hlclBhdGhcIiBz
Y3JpcHQuXG4iOworICAgIH0KKyAgICBwcmludCAiPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiI7Cit9CisKIAogc3ViIGZvcm1hdEJ1
aWxkVGltZSgkKQogewpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Vi
a2l0IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0CmluZGV4IGQ4Y2I2YjYuLmFi
ZDY5ZDggMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdAorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQKQEAgLTEsNiArMSw3IEBACiAjIS91
c3IvYmluL3BlcmwgLXcKIAogIyBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIw
MDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNDMsMTAgKzQ0LDEyIEBAIHN1YiBub3JtYWxpemVQYXRoKCQpOwogIyBIYW5k
bGUgb3B0aW9ucwogbXkgJHF1aWV0ID0gJyc7CiBteSAkc2hvd0hlbHA7CitteSAkY2hyb21pdW07
CiAKIG15ICRnZXRPcHRpb25zUmVzdWx0ID0gR2V0T3B0aW9ucygKLSAgICAnaHxoZWxwJyAgPT4g
XCRzaG93SGVscCwKLSAgICAncXxxdWlldCcgPT4gXCRxdWlldCwKKyAgICAnaHxoZWxwJyAgID0+
IFwkc2hvd0hlbHAsCisgICAgJ3F8cXVpZXQnICA9PiBcJHF1aWV0LAorICAgICdjaHJvbWl1bScg
PT4gXCRjaHJvbWl1bSwKICk7IAogCiBpZiAoISRnZXRPcHRpb25zUmVzdWx0IHx8ICRzaG93SGVs
cCkgewpAQCAtNTQsNiArNTcsNyBAQCBpZiAoISRnZXRPcHRpb25zUmVzdWx0IHx8ICRzaG93SGVs
cCkgewogVXNhZ2U6IEB7WyBiYXNlbmFtZSgkMCkgXX0gW29wdGlvbnNdCiAgIC1ofC0taGVscCAg
IHNob3cgdGhlIGhlbHAgbWVzc2FnZQogICAtcXwtLXF1aWV0ICBwYXNzIC1xIHRvIHN2biB1cGRh
dGUgZm9yIHF1aWV0IHVwZGF0ZXMKKyAgLS1jaHJvbWl1bSAgYWxzbyB1cGRhdGUgZGVwZW5kZW5j
aWVzIG9mIHRoZSBjaHJvbWl1bSBwb3J0CiBfX0VORF9fCiAgICAgZXhpdCAxOwogfQpAQCAtNzIs
NiArNzYsOCBAQCBpZiAoLWQgIi4uL0ludGVybmFsIikgewogICAgIGNoZGlyKCIuLi9JbnRlcm5h
bCIpOwogICAgIHByaW50ICJVcGRhdGluZyBJbnRlcm5hbFxuIiB1bmxlc3MgJHF1aWV0OwogICAg
IHJ1blN2blVwZGF0ZSgpOworfSBlbHNpZiAoJGNocm9taXVtKSB7CisgICAgc3lzdGVtKCJwZXJs
IiwgIldlYktpdFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1jaHJvbWl1bSIpID09IDAgb3Ig
ZGllOwogfSBlbHNpZiAoaXNBcHBsZVdpbldlYktpdCgpKSB7CiAgICAgc3lzdGVtKCJwZXJsIiwg
IldlYktpdFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1hdXhpbGlhcnktbGlicyIpID09IDAg
b3IgZGllOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0
LWNocm9taXVtIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWNocm9taXVtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjMmJlMGQKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtY2hyb21pdW0KQEAgLTAsMCAr
MSw1MyBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisKKyMgQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorIyAzLiAgTmVpdGhlciB0aGUg
bmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgor
IyAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAorIyAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyMgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisjIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KyMgVXBkYXRlIHNjcmlwdCBmb3IgdGhlIFdlYktpdCBDaHJvbWl1bSBQb3J0LgorCisjIENoZWNr
IGlmIGdjbGllbnQgaXMgaW5zdGFsbGVkLgoraWYgKG5vdCAnZ2NsaWVudCAtLXZlcnNpb24nKSB7
CisgICAgcHJpbnQgImdjbGllbnQgaXMgcmVxdWlyZWQgZm9yIHVwZGF0aW5nIGNocm9taXVtIGRl
cGVuZGVuY2llcy5cbiI7CisgICAgcHJpbnQgIkluc3RhbGwgZGVwb3RfdG9vbHMgYW5kIGFkZCBn
Y2xpZW50IHRvIHRoZSBlbnZpcm9ubWVudCBwYXRoLlxuIjsKKyAgICByZXR1cm4gMTsKK30KKwor
IyBJZiAuZ2NsaWVudCBjb25maWd1cmF0aW9uIGZpbGUgZG9lc24ndCBleGlzdCwgY3JlYXRlIGl0
LgorY2hkaXIoIldlYktpdC9jaHJvbWl1bSIpIG9yIGRpZTsKK2lmICghKC1lICIuZ2NsaWVudCIp
KSB7CisgICAgcHJpbnQgIkNvbmZpZ3VyaW5nIGdjbGllbnQuLi5cbiI7CisgICAgbXkgJHJlc3Vs
dCA9IHN5c3RlbSgiZ2NsaWVudCIsIAorICAgICAgICAgICAgICAgICAgICAgImNvbmZpZyIsIAor
ICAgICAgICAgICAgICAgICAgICAgICItLXNwZWM9c29sdXRpb25zPVt7J25hbWUnOicuLycsJ3Vy
bCc6Tm9uZX1dIik7CisgICAgaWYgKCRyZXN1bHQgIT0gMCkgeworICAgICAgICBwcmludCAiRXJy
b3Igd2hpbGUgY29uZmlndXJpbmcgZ2NsaWVudCBmb3IgY2hyb21pdW0gcG9ydFxuIjsKKyAgICAg
ICAgcmV0dXJuIDE7CisgICAgfQorfQorCisjIEV4ZWN1dGUgZ2NsaWVudCBzeW5jLgorcHJpbnQg
IlVwZGF0aW5nIGNocm9taXVtIHBvcnQgZGVwZW5kZW5jaWVzIHVzaW5nIGdjbGllbnQuLi5cbiI7
CitzeXN0ZW0oImdjbGllbnQiLCAic3luYyIpID09IDAgb3IgZGllOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRkaXJzLnBtCmluZGV4IGQzYjllMDAuLjIzMmY4YjAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0ZGlycy5wbQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdGRp
cnMucG0KQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwOSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC05OTUsNyArOTk2LDcgQEAgc3ViIGNoZWNrUmVxdWlyZWRTeXN0ZW1Db25maWcKICAgICAg
ICAgICAgIHByaW50ICJodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS90b29scy94Y29kZVxuIjsK
ICAgICAgICAgICAgIHByaW50ICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqXG4iOwogICAgICAgICB9Ci0gICAgfSBlbHNpZiAoaXNH
dGsoKSBvciBpc1F0KCkgb3IgaXNXeCgpKSB7CisgICAgfSBlbHNpZiAoaXNHdGsoKSBvciBpc1F0
KCkgb3IgaXNXeCgpIG9yIGlzQ2hyb21pdW0oKSkgewogICAgICAgICBteSBAY21kcyA9IHF3KGZs
ZXggYmlzb24gZ3BlcmYpOwogICAgICAgICBteSBAbWlzc2luZyA9ICgpOwogICAgICAgICBmb3Jl
YWNoIG15ICRjbWQgKEBjbWRzKSB7CkBAIC0xMzU2LDYgKzEzNTcsMjYgQEAgc3ViIGJ1aWxkR3Rr
UHJvamVjdCgkJEApCiAgICAgcmV0dXJuIGJ1aWxkQXV0b3Rvb2xzUHJvamVjdCgkY2xlYW4sIEBi
dWlsZEFyZ3MpOwogfQogCitzdWIgYnVpbGRDaHJvbWl1bSgkQCkKK3sKKyAgICBteSAoJGNsZWFu
LCBAb3B0aW9ucykgPSBAXzsKKworICAgICMgQ2hyb21pdW0gcG9ydCBidWlsZHMgdXNpbmcgR1lQ
LCBzbyBpdCBjYW4gc3RhcnQgcmlnaHQgYXdheQorICAgIG15ICRyZXN1bHQgPSAxOworICAgIGlm
IChpc0RhcndpbigpKSB7CisgICAgICAgICMgTWFjIGJ1aWxkIC0gYnVpbGRzIHRoZSByb290IHhj
b2RlIHByb2plY3QuCisgICAgICAgICRyZXN1bHQgPSBidWlsZFhDb2RlUHJvamVjdCgiV2ViS2l0
L2Nocm9taXVtL3dlYmtpdCIsICRjbGVhbiwgKEBvcHRpb25zKSk7CisgICAgfSBlbHNpZiAoaXND
eWd3aW4oKSkgeworICAgICAgICAjIFdpbmRvd3MgYnVpbGQKKyAgICAgICAgIyBGSVhNRSBzdXBw
b3J0IHdpbmRvd3MuCisgICAgICAgIHByaW50ICJXaW5kb3dzIGJ1aWxkIGlzIG5vdCBzdXBwb3J0
ZWQuIFlldC4iOworICAgIH0gZWxzaWYgKGlzTGludXgoKSkgeworICAgICAgICAjIExpbnV4IGJ1
aWxkCisgICAgICAgICMgRklYTUUgc3VwcG9ydCBsaW51eC4KKyAgICAgICAgcHJpbnQgIkxpbnV4
IGJ1aWxkIGlzIG5vdCBzdXBwb3J0ZWQuIFlldC4iOworICAgIH0KK30KKwogc3ViIHNldFBhdGhG
b3JSdW5uaW5nV2ViS2l0QXBwCiB7CiAgICAgbXkgKCRlbnYpID0gQF87Cg==
</data>
<flag name="review"
          id="21466"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40271</attachid>
            <date>2009-09-28 17:00:42 -0700</date>
            <delta_ts>2009-09-28 17:38:49 -0700</delta_ts>
            <desc>Round 3</desc>
            <filename>WK29749c.diff</filename>
            <type>text/plain</type>
            <size>9519</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA2N2FlYjRkLi42ZTliNmFhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDkt
MjggIFlhYXIgU2Nobml0bWFuICA8eWFhckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50ZWdyYXRlZCBjaHJvbWl1bSBwb3J0
IGJ1aWxkaW5nIGludG8gd2Via2l0IHRvb2xzIHVwZGF0ZS13ZWJraXQgYW5kCisgICAgICAgIGJ1
aWxkLXdlYmtpdC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mjk3NDkKKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OiBXaGVuIC0tY2hy
b21pdW0gaXMgc3BlY2lmaWVkLCB3aWxsIGJ1aWxkCisgICAgICAgICAgdGhlIGNocm9taXVtIHBv
cnQgKGN1cnJlbnRseSBvbmx5IE1hYyBpcyBzdXBwb3J0ZWQpLgorICAgICAgICAqIFNjcmlwdHMv
dXBkYXRlLXdlYmtpdDogV2hlbiAtLWNocm9taXVtIGlzIHNwZWNpZmllZCwgZGVsZWdhdGVzIHRv
CisgICAgICAgICAgdXBkYXRlLXdlYmtpdC1jaHJvbWl1bS4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdGRpcnMucG06IEFkZGVkIGNocm9taXVtIHNwZWNpZmljIGRlZnMuCisgICAgICAgICogU2Ny
aXB0cy91cGRhdGUtd2Via2l0LWNocm9taXVtOiBVc2VzIGdjbGllbnQgYW5kIGd5cCB0byBmZXRj
aAorICAgICAgICAgIGNocm9taXVtIHBvcnQncyBkZXBlbmRlbmNpZXMgYW5kIHVwZGF0ZSBpdHMg
cHJvamVjdCBmaWxlcy4KKwogMjAwOS0wOS0yNyAgSmFrdWIgV2llY3pvcmVrICA8ZmF3MjE3QGdt
YWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9i
dWlsZC13ZWJraXQKaW5kZXggZjA0ZTA0MC4uN2NkNzJkNiAxMDA3NTUKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQKQEAgLTEsNiArMSw3IEBACiAjIS91c3IvYmluL3BlcmwgLXcKIAotIyBDb3B5cmlnaHQg
KEMpIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNiArMzgsNyBA
QCB1c2UgbGliICRGaW5kQmluOjpCaW47CiB1c2Ugd2Via2l0ZGlyczsKIHVzZSBQT1NJWDsKIAor
c3ViIHdyaXRlQ29uZ3JhdHM7CiBzdWIgZm9ybWF0QnVpbGRUaW1lKCQpOwogCiBteSAkb3JpZ2lu
YWxXb3JraW5nRGlyZWN0b3J5ID0gZ2V0Y3dkKCk7CkBAIC0zMDQsNiArMzA2LDggQEAgaWYgKGlz
R3RrKCkpIHsKICAgICBmb3JlYWNoIChAZmVhdHVyZXMpIHsKICAgICAgICAgcHVzaCBAb3B0aW9u
cywgIkRFRklORVMrPSRfLT57ZGVmaW5lfT0keyRfLT57dmFsdWV9fSIgaWYgJHskXy0+e3ZhbHVl
fX0gIT0gJF8tPntkZWZhdWx0fTsKICAgICB9Cit9IGVsc2lmIChpc0Nocm9taXVtKCkpIHsKKyAg
ICAjIEZJWE1FOiBkZWNpZGUgd2hpY2ggY29tbWFuZCBsaW5lIGFyZ3MgY2hyb21pdW0gc2hvdWxk
IHN1cHBvcnQuCiB9CiAKICMgRm9yY2UgcmUtbGluayBvZiBleGlzdGluZyBsaWJyYXJpZXMgaWYg
ZGlmZmVyZW50IHRoYW4gZXhwZWN0ZWQKQEAgLTMxNSw2ICszMTksMTUgQEAgaWYgKGlzV3goKSkg
ewogICAgIHB1c2ggQHByb2plY3RzLCAnV2ViS2l0L3d4L2JpbmRpbmdzL3B5dGhvbic7CiB9CiAK
K2lmIChpc0Nocm9taXVtKCkpIHsKKyAgICAKKyAgICAjIENocm9taXVtIGRvZXNuJ3QgYnVpbGQg
YnkgcHJvamVjdCBkaXJlY3Rvcmllcy4KKyAgICBAcHJvamVjdHMgPSAoKTsKKyAgICBteSAkcmVz
dWx0ID0gYnVpbGRDaHJvbWl1bSgkY2xlYW4sIEBvcHRpb25zKTsKKyAgICBleGl0ICRyZXN1bHQg
aWYgJHJlc3VsdCAhPSAwOworfQorCisKICMgQnVpbGQsIGFuZCBhYm9ydCBpZiB0aGUgYnVpbGQg
ZmFpbHMuCiBmb3IgbXkgJGRpciAoQHByb2plY3RzKSB7CiAgICAgY2hkaXIgJGRpciBvciBkaWU7
CkBAIC0zNjUsMjAgKzM3OCwyOCBAQCBmb3IgbXkgJGRpciAoQHByb2plY3RzKSB7CiBleGl0IGlm
ICRjbGVhbjsKIAogIyBXcml0ZSBvdXQgY29uZ3JhdHVsYXRpb25zIG1lc3NhZ2UuCit3cml0ZUNv
bmdyYXRzKCk7CiAKLW15ICRsYXVuY2hlclBhdGggPSBsYXVuY2hlclBhdGgoKTsKLW15ICRsYXVu
Y2hlck5hbWUgPSBsYXVuY2hlck5hbWUoKTsKLW15ICRlbmRUaW1lID0gdGltZSgpOwotbXkgJGJ1
aWxkVGltZSA9IGZvcm1hdEJ1aWxkVGltZSgkZW5kVGltZSAtICRzdGFydFRpbWUpOworZXhpdCAw
OwogCi1wcmludCAiXG4iOwotcHJpbnQgIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iOwotcHJpbnQgIiBXZWJLaXQgaXMgbm93IGJ1
aWx0ICgkYnVpbGRUaW1lKS4gXG4iOwotcHJpbnQgIiBUbyBydW4gJGxhdW5jaGVyTmFtZSB3aXRo
IHRoaXMgbmV3bHktYnVpbHQgY29kZSwgdXNlIHRoZVxuIjsKLXByaW50ICIgXCIkbGF1bmNoZXJQ
YXRoXCIgc2NyaXB0LlxuIjsKLXByaW50ICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIjsKIAotZXhpdCAwOworc3ViIHdyaXRlQ29u
Z3JhdHMKK3sKKyAgICBteSAkbGF1bmNoZXJQYXRoID0gbGF1bmNoZXJQYXRoKCk7CisgICAgbXkg
JGxhdW5jaGVyTmFtZSA9IGxhdW5jaGVyTmFtZSgpOworICAgIG15ICRlbmRUaW1lID0gdGltZSgp
OworICAgIG15ICRidWlsZFRpbWUgPSBmb3JtYXRCdWlsZFRpbWUoJGVuZFRpbWUgLSBAXyk7CisK
KyAgICBwcmludCAiXG4iOworICAgIHByaW50ICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIjsKKyAgICBwcmludCAiIFdlYktpdCBp
cyBub3cgYnVpbHQgKCRidWlsZFRpbWUpLiBcbiI7CisgICAgaWYgKCFpc0Nocm9taXVtKCkpIHsK
KyAgICAgICAgcHJpbnQgIiBUbyBydW4gJGxhdW5jaGVyTmFtZSB3aXRoIHRoaXMgbmV3bHktYnVp
bHQgY29kZSwgdXNlIHRoZVxuIjsKKyAgICAgICAgcHJpbnQgIiBcIiRsYXVuY2hlclBhdGhcIiBz
Y3JpcHQuXG4iOworICAgIH0KKyAgICBwcmludCAiPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiI7Cit9CisKIAogc3ViIGZvcm1hdEJ1
aWxkVGltZSgkKQogewpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Vi
a2l0IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0CmluZGV4IGQ4Y2I2YjYuLmFi
ZDY5ZDggMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdAorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQKQEAgLTEsNiArMSw3IEBACiAjIS91
c3IvYmluL3BlcmwgLXcKIAogIyBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIw
MDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNDMsMTAgKzQ0LDEyIEBAIHN1YiBub3JtYWxpemVQYXRoKCQpOwogIyBIYW5k
bGUgb3B0aW9ucwogbXkgJHF1aWV0ID0gJyc7CiBteSAkc2hvd0hlbHA7CitteSAkY2hyb21pdW07
CiAKIG15ICRnZXRPcHRpb25zUmVzdWx0ID0gR2V0T3B0aW9ucygKLSAgICAnaHxoZWxwJyAgPT4g
XCRzaG93SGVscCwKLSAgICAncXxxdWlldCcgPT4gXCRxdWlldCwKKyAgICAnaHxoZWxwJyAgID0+
IFwkc2hvd0hlbHAsCisgICAgJ3F8cXVpZXQnICA9PiBcJHF1aWV0LAorICAgICdjaHJvbWl1bScg
PT4gXCRjaHJvbWl1bSwKICk7IAogCiBpZiAoISRnZXRPcHRpb25zUmVzdWx0IHx8ICRzaG93SGVs
cCkgewpAQCAtNTQsNiArNTcsNyBAQCBpZiAoISRnZXRPcHRpb25zUmVzdWx0IHx8ICRzaG93SGVs
cCkgewogVXNhZ2U6IEB7WyBiYXNlbmFtZSgkMCkgXX0gW29wdGlvbnNdCiAgIC1ofC0taGVscCAg
IHNob3cgdGhlIGhlbHAgbWVzc2FnZQogICAtcXwtLXF1aWV0ICBwYXNzIC1xIHRvIHN2biB1cGRh
dGUgZm9yIHF1aWV0IHVwZGF0ZXMKKyAgLS1jaHJvbWl1bSAgYWxzbyB1cGRhdGUgZGVwZW5kZW5j
aWVzIG9mIHRoZSBjaHJvbWl1bSBwb3J0CiBfX0VORF9fCiAgICAgZXhpdCAxOwogfQpAQCAtNzIs
NiArNzYsOCBAQCBpZiAoLWQgIi4uL0ludGVybmFsIikgewogICAgIGNoZGlyKCIuLi9JbnRlcm5h
bCIpOwogICAgIHByaW50ICJVcGRhdGluZyBJbnRlcm5hbFxuIiB1bmxlc3MgJHF1aWV0OwogICAg
IHJ1blN2blVwZGF0ZSgpOworfSBlbHNpZiAoJGNocm9taXVtKSB7CisgICAgc3lzdGVtKCJwZXJs
IiwgIldlYktpdFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1jaHJvbWl1bSIpID09IDAgb3Ig
ZGllOwogfSBlbHNpZiAoaXNBcHBsZVdpbldlYktpdCgpKSB7CiAgICAgc3lzdGVtKCJwZXJsIiwg
IldlYktpdFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1hdXhpbGlhcnktbGlicyIpID09IDAg
b3IgZGllOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0
LWNocm9taXVtIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWNocm9taXVtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxZjU5YTkKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtY2hyb21pdW0KQEAgLTAsMCAr
MSw1NCBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisKKyMgQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorIyAzLiAgTmVpdGhlciB0aGUg
bmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgor
IyAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAorIyAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyMgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisjIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KyMgVXBkYXRlIHNjcmlwdCBmb3IgdGhlIFdlYktpdCBDaHJvbWl1bSBQb3J0LgorCisjIENoZWNr
IGlmIGdjbGllbnQgaXMgaW5zdGFsbGVkLgoraWYgKG5vdCAnZ2NsaWVudCAtLXZlcnNpb24nKSB7
CisgICAgcHJpbnQgImdjbGllbnQgaXMgcmVxdWlyZWQgZm9yIHVwZGF0aW5nIGNocm9taXVtIGRl
cGVuZGVuY2llcy5cbiI7CisgICAgcHJpbnQgIkluc3RhbGwgZGVwb3RfdG9vbHMgYW5kIGFkZCBn
Y2xpZW50IHRvIHRoZSBlbnZpcm9ubWVudCBwYXRoLlxuIjsKKyAgICBwcmludCAiRm9yIG1vcmUg
aW5mb3JtYXRpb24sIHJlZmVyIHRvOlxuIjsKKyAgICBwcmludCAiaHR0cDovL2Rldi5jaHJvbWl1
bS5vcmcvZGV2ZWxvcGVycy9ob3ctdG9zL2luc3RhbGwtZ2NsaWVudFxuIjsKKyAgICBkaWU7Cit9
CisKKyMgSWYgLmdjbGllbnQgY29uZmlndXJhdGlvbiBmaWxlIGRvZXNuJ3QgZXhpc3QsIGNyZWF0
ZSBpdC4KK2NoZGlyKCJXZWJLaXQvY2hyb21pdW0iKSBvciBkaWU7CitpZiAoISgtZSAiLmdjbGll
bnQiKSkgeworICAgIHByaW50ICJDb25maWd1cmluZyBnY2xpZW50Li4uXG4iOworICAgIG15ICRy
ZXN1bHQgPSBzeXN0ZW0oImdjbGllbnQiLCAKKyAgICAgICAgICAgICAgICAgICAgICJjb25maWci
LCAKKyAgICAgICAgICAgICAgICAgICAgICAiLS1zcGVjPXNvbHV0aW9ucz1beyduYW1lJzonLi8n
LCd1cmwnOk5vbmV9XSIpOworICAgIGlmICgkcmVzdWx0ICE9IDApIHsKKyAgICAgICAgZGllICJF
cnJvciB3aGlsZSBjb25maWd1cmluZyBnY2xpZW50IGZvciBjaHJvbWl1bSBwb3J0XG4iOworICAg
IH0KK30KKworIyBFeGVjdXRlIGdjbGllbnQgc3luYy4KK3ByaW50ICJVcGRhdGluZyBjaHJvbWl1
bSBwb3J0IGRlcGVuZGVuY2llcyB1c2luZyBnY2xpZW50Li4uXG4iOworc3lzdGVtKCJnY2xpZW50
IiwgInN5bmMiKSA9PSAwIG9yIGRpZTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0ZGlycy5wbSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQppbmRleCBk
M2I5ZTAwLi5iYWQ4OGQyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdGRp
cnMucG0KKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCkBAIC0xLDQgKzEs
NSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTk1LDcgKzk5Niw3
IEBAIHN1YiBjaGVja1JlcXVpcmVkU3lzdGVtQ29uZmlnCiAgICAgICAgICAgICBwcmludCAiaHR0
cDovL2RldmVsb3Blci5hcHBsZS5jb20vdG9vbHMveGNvZGVcbiI7CiAgICAgICAgICAgICBwcmlu
dCAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKlxuIjsKICAgICAgICAgfQotICAgIH0gZWxzaWYgKGlzR3RrKCkgb3IgaXNRdCgpIG9y
IGlzV3goKSkgeworICAgIH0gZWxzaWYgKGlzR3RrKCkgb3IgaXNRdCgpIG9yIGlzV3goKSBvciBp
c0Nocm9taXVtKCkpIHsKICAgICAgICAgbXkgQGNtZHMgPSBxdyhmbGV4IGJpc29uIGdwZXJmKTsK
ICAgICAgICAgbXkgQG1pc3NpbmcgPSAoKTsKICAgICAgICAgZm9yZWFjaCBteSAkY21kIChAY21k
cykgewpAQCAtMTM1Niw2ICsxMzU3LDI4IEBAIHN1YiBidWlsZEd0a1Byb2plY3QoJCRAKQogICAg
IHJldHVybiBidWlsZEF1dG90b29sc1Byb2plY3QoJGNsZWFuLCBAYnVpbGRBcmdzKTsKIH0KIAor
c3ViIGJ1aWxkQ2hyb21pdW0oJEApCit7CisgICAgbXkgKCRjbGVhbiwgQG9wdGlvbnMpID0gQF87
CisKKyAgICBteSAkcmVzdWx0ID0gMTsKKyAgICBpZiAoaXNEYXJ3aW4oKSkgeworICAgICAgICAj
IE1hYyBidWlsZCAtIGJ1aWxkcyB0aGUgcm9vdCB4Y29kZSBwcm9qZWN0LgorICAgICAgICAkcmVz
dWx0ID0gYnVpbGRYQ29kZVByb2plY3QoIldlYktpdC9jaHJvbWl1bS93ZWJraXQiLCAkY2xlYW4s
IChAb3B0aW9ucykpOworICAgIH0gZWxzaWYgKGlzQ3lnd2luKCkpIHsKKyAgICAgICAgIyBXaW5k
b3dzIGJ1aWxkCisgICAgICAgICMgRklYTUUgc3VwcG9ydCB3aW5kb3dzLgorICAgICAgICBwcmlu
dCAiV2luZG93cyBidWlsZCBpcyBub3Qgc3VwcG9ydGVkLiBZZXQuIjsKKyAgICB9IGVsc2lmIChp
c0xpbnV4KCkpIHsKKyAgICAgICAgIyBMaW51eCBidWlsZAorICAgICAgICAjIEZJWE1FIHN1cHBv
cnQgbGludXguCisgICAgICAgIHByaW50ICJMaW51eCBidWlsZCBpcyBub3Qgc3VwcG9ydGVkLiBZ
ZXQuIjsKKyAgICB9IGVsc2UgeworICAgICAgICBwcmludCAiVGhpcyBwbGF0Zm9ybSBpcyBub3Qg
c3VwcG9ydGVkIGJ5IGNocm9taXVtLiI7CisgICAgfQorICAgIHJldHVybiAkcmVzdWx0OworfQor
CiBzdWIgc2V0UGF0aEZvclJ1bm5pbmdXZWJLaXRBcHAKIHsKICAgICBteSAoJGVudikgPSBAXzsK
</data>
<flag name="review"
          id="21474"
          type_id="1"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40273</attachid>
            <date>2009-09-28 17:38:49 -0700</date>
            <delta_ts>2009-09-28 19:08:19 -0700</delta_ts>
            <desc>Patch 4</desc>
            <filename>WK29749d.diff</filename>
            <type>text/plain</type>
            <size>9211</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA2N2FlYjRkLi42ZTliNmFhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDkt
MjggIFlhYXIgU2Nobml0bWFuICA8eWFhckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50ZWdyYXRlZCBjaHJvbWl1bSBwb3J0
IGJ1aWxkaW5nIGludG8gd2Via2l0IHRvb2xzIHVwZGF0ZS13ZWJraXQgYW5kCisgICAgICAgIGJ1
aWxkLXdlYmtpdC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mjk3NDkKKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OiBXaGVuIC0tY2hy
b21pdW0gaXMgc3BlY2lmaWVkLCB3aWxsIGJ1aWxkCisgICAgICAgICAgdGhlIGNocm9taXVtIHBv
cnQgKGN1cnJlbnRseSBvbmx5IE1hYyBpcyBzdXBwb3J0ZWQpLgorICAgICAgICAqIFNjcmlwdHMv
dXBkYXRlLXdlYmtpdDogV2hlbiAtLWNocm9taXVtIGlzIHNwZWNpZmllZCwgZGVsZWdhdGVzIHRv
CisgICAgICAgICAgdXBkYXRlLXdlYmtpdC1jaHJvbWl1bS4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdGRpcnMucG06IEFkZGVkIGNocm9taXVtIHNwZWNpZmljIGRlZnMuCisgICAgICAgICogU2Ny
aXB0cy91cGRhdGUtd2Via2l0LWNocm9taXVtOiBVc2VzIGdjbGllbnQgYW5kIGd5cCB0byBmZXRj
aAorICAgICAgICAgIGNocm9taXVtIHBvcnQncyBkZXBlbmRlbmNpZXMgYW5kIHVwZGF0ZSBpdHMg
cHJvamVjdCBmaWxlcy4KKwogMjAwOS0wOS0yNyAgSmFrdWIgV2llY3pvcmVrICA8ZmF3MjE3QGdt
YWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9i
dWlsZC13ZWJraXQKaW5kZXggZjA0ZTA0MC4uNTllOTJlZSAxMDA3NTUKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQKQEAgLTEsNiArMSw3IEBACiAjIS91c3IvYmluL3BlcmwgLXcKIAotIyBDb3B5cmlnaHQg
KEMpIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw2ICszOCw3IEBAIHVzZSBsaWIg
JEZpbmRCaW46OkJpbjsKIHVzZSB3ZWJraXRkaXJzOwogdXNlIFBPU0lYOwogCitzdWIgd3JpdGVD
b25ncmF0cygpOwogc3ViIGZvcm1hdEJ1aWxkVGltZSgkKTsKIAogbXkgJG9yaWdpbmFsV29ya2lu
Z0RpcmVjdG9yeSA9IGdldGN3ZCgpOwpAQCAtMzE1LDYgKzMxNywxMyBAQCBpZiAoaXNXeCgpKSB7
CiAgICAgcHVzaCBAcHJvamVjdHMsICdXZWJLaXQvd3gvYmluZGluZ3MvcHl0aG9uJzsKIH0KIAor
aWYgKGlzQ2hyb21pdW0oKSkgeworICAgICMgQ2hyb21pdW0gZG9lc24ndCBidWlsZCBieSBwcm9q
ZWN0IGRpcmVjdG9yaWVzLgorICAgIEBwcm9qZWN0cyA9ICgpOworICAgIG15ICRyZXN1bHQgPSBi
dWlsZENocm9taXVtKCRjbGVhbiwgQG9wdGlvbnMpOworICAgIGV4aXQgJHJlc3VsdCBpZiAkcmVz
dWx0OworfQorCiAjIEJ1aWxkLCBhbmQgYWJvcnQgaWYgdGhlIGJ1aWxkIGZhaWxzLgogZm9yIG15
ICRkaXIgKEBwcm9qZWN0cykgewogICAgIGNoZGlyICRkaXIgb3IgZGllOwpAQCAtMzY1LDIwICsz
NzQsMjggQEAgZm9yIG15ICRkaXIgKEBwcm9qZWN0cykgewogZXhpdCBpZiAkY2xlYW47CiAKICMg
V3JpdGUgb3V0IGNvbmdyYXR1bGF0aW9ucyBtZXNzYWdlLgord3JpdGVDb25ncmF0cygpOwogCi1t
eSAkbGF1bmNoZXJQYXRoID0gbGF1bmNoZXJQYXRoKCk7Ci1teSAkbGF1bmNoZXJOYW1lID0gbGF1
bmNoZXJOYW1lKCk7Ci1teSAkZW5kVGltZSA9IHRpbWUoKTsKLW15ICRidWlsZFRpbWUgPSBmb3Jt
YXRCdWlsZFRpbWUoJGVuZFRpbWUgLSAkc3RhcnRUaW1lKTsKK2V4aXQgMDsKIAotcHJpbnQgIlxu
IjsKLXByaW50ICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PVxuIjsKLXByaW50ICIgV2ViS2l0IGlzIG5vdyBidWlsdCAoJGJ1aWxkVGlt
ZSkuIFxuIjsKLXByaW50ICIgVG8gcnVuICRsYXVuY2hlck5hbWUgd2l0aCB0aGlzIG5ld2x5LWJ1
aWx0IGNvZGUsIHVzZSB0aGVcbiI7Ci1wcmludCAiIFwiJGxhdW5jaGVyUGF0aFwiIHNjcmlwdC5c
biI7Ci1wcmludCAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT1cbiI7CiAKLWV4aXQgMDsKK3N1YiB3cml0ZUNvbmdyYXRzCit7CisgICAg
bXkgJGxhdW5jaGVyUGF0aCA9IGxhdW5jaGVyUGF0aCgpOworICAgIG15ICRsYXVuY2hlck5hbWUg
PSBsYXVuY2hlck5hbWUoKTsKKyAgICBteSAkZW5kVGltZSA9IHRpbWUoKTsKKyAgICBteSAkYnVp
bGRUaW1lID0gZm9ybWF0QnVpbGRUaW1lKCRlbmRUaW1lIC0gQF8pOworCisgICAgcHJpbnQgIlxu
IjsKKyAgICBwcmludCAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT1cbiI7CisgICAgcHJpbnQgIiBXZWJLaXQgaXMgbm93IGJ1aWx0ICgk
YnVpbGRUaW1lKS4gXG4iOworICAgIGlmICghaXNDaHJvbWl1bSgpKSB7CisgICAgICAgIHByaW50
ICIgVG8gcnVuICRsYXVuY2hlck5hbWUgd2l0aCB0aGlzIG5ld2x5LWJ1aWx0IGNvZGUsIHVzZSB0
aGVcbiI7CisgICAgICAgIHByaW50ICIgXCIkbGF1bmNoZXJQYXRoXCIgc2NyaXB0LlxuIjsKKyAg
ICB9CisgICAgcHJpbnQgIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09XG4iOworfQorCiAKIHN1YiBmb3JtYXRCdWlsZFRpbWUoJCkKIHsK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdCBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdAppbmRleCBkOGNiNmI2Li5hYmQ2OWQ4IDEwMDc1NQot
LS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy91cGRhdGUtd2Via2l0CkBAIC0xLDYgKzEsNyBAQAogIyEvdXNyL2Jpbi9wZXJsIC13
CiAKICMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQz
LDEwICs0NCwxMiBAQCBzdWIgbm9ybWFsaXplUGF0aCgkKTsKICMgSGFuZGxlIG9wdGlvbnMKIG15
ICRxdWlldCA9ICcnOwogbXkgJHNob3dIZWxwOworbXkgJGNocm9taXVtOwogCiBteSAkZ2V0T3B0
aW9uc1Jlc3VsdCA9IEdldE9wdGlvbnMoCi0gICAgJ2h8aGVscCcgID0+IFwkc2hvd0hlbHAsCi0g
ICAgJ3F8cXVpZXQnID0+IFwkcXVpZXQsCisgICAgJ2h8aGVscCcgICA9PiBcJHNob3dIZWxwLAor
ICAgICdxfHF1aWV0JyAgPT4gXCRxdWlldCwKKyAgICAnY2hyb21pdW0nID0+IFwkY2hyb21pdW0s
CiApOyAKIAogaWYgKCEkZ2V0T3B0aW9uc1Jlc3VsdCB8fCAkc2hvd0hlbHApIHsKQEAgLTU0LDYg
KzU3LDcgQEAgaWYgKCEkZ2V0T3B0aW9uc1Jlc3VsdCB8fCAkc2hvd0hlbHApIHsKIFVzYWdlOiBA
e1sgYmFzZW5hbWUoJDApIF19IFtvcHRpb25zXQogICAtaHwtLWhlbHAgICBzaG93IHRoZSBoZWxw
IG1lc3NhZ2UKICAgLXF8LS1xdWlldCAgcGFzcyAtcSB0byBzdm4gdXBkYXRlIGZvciBxdWlldCB1
cGRhdGVzCisgIC0tY2hyb21pdW0gIGFsc28gdXBkYXRlIGRlcGVuZGVuY2llcyBvZiB0aGUgY2hy
b21pdW0gcG9ydAogX19FTkRfXwogICAgIGV4aXQgMTsKIH0KQEAgLTcyLDYgKzc2LDggQEAgaWYg
KC1kICIuLi9JbnRlcm5hbCIpIHsKICAgICBjaGRpcigiLi4vSW50ZXJuYWwiKTsKICAgICBwcmlu
dCAiVXBkYXRpbmcgSW50ZXJuYWxcbiIgdW5sZXNzICRxdWlldDsKICAgICBydW5Tdm5VcGRhdGUo
KTsKK30gZWxzaWYgKCRjaHJvbWl1bSkgeworICAgIHN5c3RlbSgicGVybCIsICJXZWJLaXRUb29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtY2hyb21pdW0iKSA9PSAwIG9yIGRpZTsKIH0gZWxzaWYg
KGlzQXBwbGVXaW5XZWJLaXQoKSkgewogICAgIHN5c3RlbSgicGVybCIsICJXZWJLaXRUb29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJraXQtYXV4aWxpYXJ5LWxpYnMiKSA9PSAwIG9yIGRpZTsKIH0KZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1jaHJvbWl1bSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1jaHJvbWl1bQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5jZmQ0MTNmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWNocm9taXVtCkBAIC0wLDAgKzEsNTQgQEAKKyMhL3Vz
ci9iaW4vcGVybCAtdworCisjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyMgMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyMgICAgIGl0cyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQKKyMgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4gCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFVwZGF0ZSBzY3Jp
cHQgZm9yIHRoZSBXZWJLaXQgQ2hyb21pdW0gUG9ydC4KKworIyBDaGVjayBpZiBnY2xpZW50IGlz
IGluc3RhbGxlZC4KK2lmIChub3QgYGdjbGllbnQgLS12ZXJzaW9uYCkgeworICAgIHByaW50IFNU
REVSUiAiZ2NsaWVudCBpcyByZXF1aXJlZCBmb3IgdXBkYXRpbmcgY2hyb21pdW0gZGVwZW5kZW5j
aWVzLlxuIjsKKyAgICBwcmludCBTVERFUlIgIkluc3RhbGwgZGVwb3RfdG9vbHMgYW5kIGFkZCBn
Y2xpZW50IHRvIHRoZSBlbnZpcm9ubWVudFxuIjsKKyAgICBwcmludCBTVERFUlIgInBhdGguIEZv
ciBtb3JlIGluZm9ybWF0aW9uLCByZWZlciB0bzpcbiI7CisgICAgcHJpbnQgU1RERVJSICJodHRw
Oi8vZGV2LmNocm9taXVtLm9yZy9kZXZlbG9wZXJzL2hvdy10b3MvaW5zdGFsbC1nY2xpZW50XG4i
OworICAgIGRpZTsKK30KKworIyBJZiAuZ2NsaWVudCBjb25maWd1cmF0aW9uIGZpbGUgZG9lc24n
dCBleGlzdCwgY3JlYXRlIGl0LgorY2hkaXIoIldlYktpdC9jaHJvbWl1bSIpIG9yIGRpZSAkITsK
K2lmICghIC1lICIuZ2NsaWVudCIpIHsKKyAgICBwcmludCAiQ29uZmlndXJpbmcgZ2NsaWVudC4u
LlxuIjsKKyAgICBteSAkcmVzdWx0ID0gZXhlYygiZ2NsaWVudCIsIAorICAgICAgICAgICAgICAg
ICAgICAgICAgImNvbmZpZyIsIAorICAgICAgICAgICAgICAgICAgICAgICAgIi0tc3BlYz1zb2x1
dGlvbnM9W3snbmFtZSc6Jy4vJywndXJsJzpOb25lfV0iKTsKKyAgICBpZiAoISRyZXN1bHQpIHsK
KyAgICAgICAgZGllICJFcnJvciB3aGlsZSBjb25maWd1cmluZyBnY2xpZW50IGZvciBjaHJvbWl1
bSBwb3J0XG4iOworICAgIH0KK30KKworIyBFeGVjdXRlIGdjbGllbnQgc3luYy4KK3ByaW50ICJV
cGRhdGluZyBjaHJvbWl1bSBwb3J0IGRlcGVuZGVuY2llcyB1c2luZyBnY2xpZW50Li4uXG4iOwor
ZXhlYygiZ2NsaWVudCIsICJzeW5jIikgPT0gMCBvciBkaWU7CmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdGRp
cnMucG0KaW5kZXggZDNiOWUwMC4uNmZkZWQxYSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRkaXJzLnBtCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5w
bQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTk5NSw3ICs5OTYsNyBAQCBzdWIgY2hlY2tSZXF1aXJlZFN5c3RlbUNvbmZpZwogICAgICAgICAg
ICAgcHJpbnQgImh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3Rvb2xzL3hjb2RlXG4iOwogICAg
ICAgICAgICAgcHJpbnQgIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKipcbiI7CiAgICAgICAgIH0KLSAgICB9IGVsc2lmIChpc0d0aygp
IG9yIGlzUXQoKSBvciBpc1d4KCkpIHsKKyAgICB9IGVsc2lmIChpc0d0aygpIG9yIGlzUXQoKSBv
ciBpc1d4KCkgb3IgaXNDaHJvbWl1bSgpKSB7CiAgICAgICAgIG15IEBjbWRzID0gcXcoZmxleCBi
aXNvbiBncGVyZik7CiAgICAgICAgIG15IEBtaXNzaW5nID0gKCk7CiAgICAgICAgIGZvcmVhY2gg
bXkgJGNtZCAoQGNtZHMpIHsKQEAgLTEzNTYsNiArMTM1NywyOCBAQCBzdWIgYnVpbGRHdGtQcm9q
ZWN0KCQkQCkKICAgICByZXR1cm4gYnVpbGRBdXRvdG9vbHNQcm9qZWN0KCRjbGVhbiwgQGJ1aWxk
QXJncyk7CiB9CiAKK3N1YiBidWlsZENocm9taXVtKCRAKQoreworICAgIG15ICgkY2xlYW4sIEBv
cHRpb25zKSA9IEBfOworCisgICAgbXkgJHJlc3VsdCA9IDE7CisgICAgaWYgKGlzRGFyd2luKCkp
IHsKKyAgICAgICAgIyBNYWMgYnVpbGQgLSBidWlsZHMgdGhlIHJvb3QgeGNvZGUgcHJvamVjdC4K
KyAgICAgICAgJHJlc3VsdCA9IGJ1aWxkWENvZGVQcm9qZWN0KCJXZWJLaXQvY2hyb21pdW0vd2Vi
a2l0IiwgJGNsZWFuLCAoQG9wdGlvbnMpKTsKKyAgICB9IGVsc2lmIChpc0N5Z3dpbigpKSB7Cisg
ICAgICAgICMgV2luZG93cyBidWlsZAorICAgICAgICAjIEZJWE1FIHN1cHBvcnQgd2luZG93cy4K
KyAgICAgICAgcHJpbnQgU1RERVJSICJXaW5kb3dzIGJ1aWxkIGlzIG5vdCBzdXBwb3J0ZWQuIFll
dC4iOworICAgIH0gZWxzaWYgKGlzTGludXgoKSkgeworICAgICAgICAjIExpbnV4IGJ1aWxkCisg
ICAgICAgICMgRklYTUUgc3VwcG9ydCBsaW51eC4KKyAgICAgICAgcHJpbnQgU1RERVJSICJMaW51
eCBidWlsZCBpcyBub3Qgc3VwcG9ydGVkLiBZZXQuIjsKKyAgICB9IGVsc2UgeworICAgICAgICBw
cmludCBTVERFUlIgIlRoaXMgcGxhdGZvcm0gaXMgbm90IHN1cHBvcnRlZCBieSBjaHJvbWl1bS4i
OworICAgIH0KKyAgICByZXR1cm4gJHJlc3VsdDsKK30KKwogc3ViIHNldFBhdGhGb3JSdW5uaW5n
V2ViS2l0QXBwCiB7CiAgICAgbXkgKCRlbnYpID0gQF87Cg==
</data>
<flag name="review"
          id="21479"
          type_id="1"
          status="-"
          setter="ddkilzer"
    />
    <flag name="commit-queue"
          id="21480"
          type_id="3"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40279</attachid>
            <date>2009-09-28 19:08:19 -0700</date>
            <delta_ts>2009-09-28 19:34:55 -0700</delta_ts>
            <desc>patch 5</desc>
            <filename>WK29749e.diff</filename>
            <type>text/plain</type>
            <size>9175</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA2N2FlYjRkLi42ZTliNmFhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDkt
MjggIFlhYXIgU2Nobml0bWFuICA8eWFhckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50ZWdyYXRlZCBjaHJvbWl1bSBwb3J0
IGJ1aWxkaW5nIGludG8gd2Via2l0IHRvb2xzIHVwZGF0ZS13ZWJraXQgYW5kCisgICAgICAgIGJ1
aWxkLXdlYmtpdC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mjk3NDkKKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OiBXaGVuIC0tY2hy
b21pdW0gaXMgc3BlY2lmaWVkLCB3aWxsIGJ1aWxkCisgICAgICAgICAgdGhlIGNocm9taXVtIHBv
cnQgKGN1cnJlbnRseSBvbmx5IE1hYyBpcyBzdXBwb3J0ZWQpLgorICAgICAgICAqIFNjcmlwdHMv
dXBkYXRlLXdlYmtpdDogV2hlbiAtLWNocm9taXVtIGlzIHNwZWNpZmllZCwgZGVsZWdhdGVzIHRv
CisgICAgICAgICAgdXBkYXRlLXdlYmtpdC1jaHJvbWl1bS4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdGRpcnMucG06IEFkZGVkIGNocm9taXVtIHNwZWNpZmljIGRlZnMuCisgICAgICAgICogU2Ny
aXB0cy91cGRhdGUtd2Via2l0LWNocm9taXVtOiBVc2VzIGdjbGllbnQgYW5kIGd5cCB0byBmZXRj
aAorICAgICAgICAgIGNocm9taXVtIHBvcnQncyBkZXBlbmRlbmNpZXMgYW5kIHVwZGF0ZSBpdHMg
cHJvamVjdCBmaWxlcy4KKwogMjAwOS0wOS0yNyAgSmFrdWIgV2llY3pvcmVrICA8ZmF3MjE3QGdt
YWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9i
dWlsZC13ZWJraXQKaW5kZXggZjA0ZTA0MC4uNTllOTJlZSAxMDA3NTUKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQKQEAgLTEsNiArMSw3IEBACiAjIS91c3IvYmluL3BlcmwgLXcKIAotIyBDb3B5cmlnaHQg
KEMpIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw2ICszOCw3IEBAIHVzZSBsaWIg
JEZpbmRCaW46OkJpbjsKIHVzZSB3ZWJraXRkaXJzOwogdXNlIFBPU0lYOwogCitzdWIgd3JpdGVD
b25ncmF0cygpOwogc3ViIGZvcm1hdEJ1aWxkVGltZSgkKTsKIAogbXkgJG9yaWdpbmFsV29ya2lu
Z0RpcmVjdG9yeSA9IGdldGN3ZCgpOwpAQCAtMzE1LDYgKzMxNywxMyBAQCBpZiAoaXNXeCgpKSB7
CiAgICAgcHVzaCBAcHJvamVjdHMsICdXZWJLaXQvd3gvYmluZGluZ3MvcHl0aG9uJzsKIH0KIAor
aWYgKGlzQ2hyb21pdW0oKSkgeworICAgICMgQ2hyb21pdW0gZG9lc24ndCBidWlsZCBieSBwcm9q
ZWN0IGRpcmVjdG9yaWVzLgorICAgIEBwcm9qZWN0cyA9ICgpOworICAgIG15ICRyZXN1bHQgPSBi
dWlsZENocm9taXVtKCRjbGVhbiwgQG9wdGlvbnMpOworICAgIGV4aXQgJHJlc3VsdCBpZiAkcmVz
dWx0OworfQorCiAjIEJ1aWxkLCBhbmQgYWJvcnQgaWYgdGhlIGJ1aWxkIGZhaWxzLgogZm9yIG15
ICRkaXIgKEBwcm9qZWN0cykgewogICAgIGNoZGlyICRkaXIgb3IgZGllOwpAQCAtMzY1LDIwICsz
NzQsMjggQEAgZm9yIG15ICRkaXIgKEBwcm9qZWN0cykgewogZXhpdCBpZiAkY2xlYW47CiAKICMg
V3JpdGUgb3V0IGNvbmdyYXR1bGF0aW9ucyBtZXNzYWdlLgord3JpdGVDb25ncmF0cygpOwogCi1t
eSAkbGF1bmNoZXJQYXRoID0gbGF1bmNoZXJQYXRoKCk7Ci1teSAkbGF1bmNoZXJOYW1lID0gbGF1
bmNoZXJOYW1lKCk7Ci1teSAkZW5kVGltZSA9IHRpbWUoKTsKLW15ICRidWlsZFRpbWUgPSBmb3Jt
YXRCdWlsZFRpbWUoJGVuZFRpbWUgLSAkc3RhcnRUaW1lKTsKK2V4aXQgMDsKIAotcHJpbnQgIlxu
IjsKLXByaW50ICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PVxuIjsKLXByaW50ICIgV2ViS2l0IGlzIG5vdyBidWlsdCAoJGJ1aWxkVGlt
ZSkuIFxuIjsKLXByaW50ICIgVG8gcnVuICRsYXVuY2hlck5hbWUgd2l0aCB0aGlzIG5ld2x5LWJ1
aWx0IGNvZGUsIHVzZSB0aGVcbiI7Ci1wcmludCAiIFwiJGxhdW5jaGVyUGF0aFwiIHNjcmlwdC5c
biI7Ci1wcmludCAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT1cbiI7CiAKLWV4aXQgMDsKK3N1YiB3cml0ZUNvbmdyYXRzCit7CisgICAg
bXkgJGxhdW5jaGVyUGF0aCA9IGxhdW5jaGVyUGF0aCgpOworICAgIG15ICRsYXVuY2hlck5hbWUg
PSBsYXVuY2hlck5hbWUoKTsKKyAgICBteSAkZW5kVGltZSA9IHRpbWUoKTsKKyAgICBteSAkYnVp
bGRUaW1lID0gZm9ybWF0QnVpbGRUaW1lKCRlbmRUaW1lIC0gQF8pOworCisgICAgcHJpbnQgIlxu
IjsKKyAgICBwcmludCAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT1cbiI7CisgICAgcHJpbnQgIiBXZWJLaXQgaXMgbm93IGJ1aWx0ICgk
YnVpbGRUaW1lKS4gXG4iOworICAgIGlmICghaXNDaHJvbWl1bSgpKSB7CisgICAgICAgIHByaW50
ICIgVG8gcnVuICRsYXVuY2hlck5hbWUgd2l0aCB0aGlzIG5ld2x5LWJ1aWx0IGNvZGUsIHVzZSB0
aGVcbiI7CisgICAgICAgIHByaW50ICIgXCIkbGF1bmNoZXJQYXRoXCIgc2NyaXB0LlxuIjsKKyAg
ICB9CisgICAgcHJpbnQgIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09XG4iOworfQorCiAKIHN1YiBmb3JtYXRCdWlsZFRpbWUoJCkKIHsK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdCBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdAppbmRleCBkOGNiNmI2Li4wOTY3YTkzIDEwMDc1NQot
LS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy91cGRhdGUtd2Via2l0CkBAIC0xLDYgKzEsNyBAQAogIyEvdXNyL2Jpbi9wZXJsIC13
CiAKICMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ0
LDkgKzQ1LDExIEBAIHN1YiBub3JtYWxpemVQYXRoKCQpOwogbXkgJHF1aWV0ID0gJyc7CiBteSAk
c2hvd0hlbHA7CiAKK2RldGVybWluZUlzQ2hyb21pdW0oKTsKKwogbXkgJGdldE9wdGlvbnNSZXN1
bHQgPSBHZXRPcHRpb25zKAotICAgICdofGhlbHAnICA9PiBcJHNob3dIZWxwLAotICAgICdxfHF1
aWV0JyA9PiBcJHF1aWV0LAorICAgICdofGhlbHAnICAgPT4gXCRzaG93SGVscCwKKyAgICAncXxx
dWlldCcgID0+IFwkcXVpZXQsCiApOyAKIAogaWYgKCEkZ2V0T3B0aW9uc1Jlc3VsdCB8fCAkc2hv
d0hlbHApIHsKQEAgLTU0LDYgKzU3LDcgQEAgaWYgKCEkZ2V0T3B0aW9uc1Jlc3VsdCB8fCAkc2hv
d0hlbHApIHsKIFVzYWdlOiBAe1sgYmFzZW5hbWUoJDApIF19IFtvcHRpb25zXQogICAtaHwtLWhl
bHAgICBzaG93IHRoZSBoZWxwIG1lc3NhZ2UKICAgLXF8LS1xdWlldCAgcGFzcyAtcSB0byBzdm4g
dXBkYXRlIGZvciBxdWlldCB1cGRhdGVzCisgIC0tY2hyb21pdW0gIGFsc28gdXBkYXRlIGRlcGVu
ZGVuY2llcyBvZiB0aGUgY2hyb21pdW0gcG9ydAogX19FTkRfXwogICAgIGV4aXQgMTsKIH0KQEAg
LTcyLDYgKzc2LDggQEAgaWYgKC1kICIuLi9JbnRlcm5hbCIpIHsKICAgICBjaGRpcigiLi4vSW50
ZXJuYWwiKTsKICAgICBwcmludCAiVXBkYXRpbmcgSW50ZXJuYWxcbiIgdW5sZXNzICRxdWlldDsK
ICAgICBydW5Tdm5VcGRhdGUoKTsKK30gZWxzaWYgKGlzQ2hyb21pdW0oKSkgeworICAgIHN5c3Rl
bSgicGVybCIsICJXZWJLaXRUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtY2hyb21pdW0iKSA9
PSAwIG9yIGRpZTsKIH0gZWxzaWYgKGlzQXBwbGVXaW5XZWJLaXQoKSkgewogICAgIHN5c3RlbSgi
cGVybCIsICJXZWJLaXRUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtYXV4aWxpYXJ5LWxpYnMi
KSA9PSAwIG9yIGRpZTsKIH0KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvdXBkYXRl
LXdlYmtpdC1jaHJvbWl1bSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1jaHJv
bWl1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmQ0MTNmCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWNocm9taXVtCkBA
IC0wLDAgKzEsNTQgQEAKKyMhL3Vzci9iaW4vcGVybCAtdworCisjIENvcHlyaWdodCAoQykgMjAw
OSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyMgMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCisjIFVwZGF0ZSBzY3JpcHQgZm9yIHRoZSBXZWJLaXQgQ2hyb21pdW0gUG9ydC4KKwor
IyBDaGVjayBpZiBnY2xpZW50IGlzIGluc3RhbGxlZC4KK2lmIChub3QgYGdjbGllbnQgLS12ZXJz
aW9uYCkgeworICAgIHByaW50IFNUREVSUiAiZ2NsaWVudCBpcyByZXF1aXJlZCBmb3IgdXBkYXRp
bmcgY2hyb21pdW0gZGVwZW5kZW5jaWVzLlxuIjsKKyAgICBwcmludCBTVERFUlIgIkluc3RhbGwg
ZGVwb3RfdG9vbHMgYW5kIGFkZCBnY2xpZW50IHRvIHRoZSBlbnZpcm9ubWVudFxuIjsKKyAgICBw
cmludCBTVERFUlIgInBhdGguIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWZlciB0bzpcbiI7Cisg
ICAgcHJpbnQgU1RERVJSICJodHRwOi8vZGV2LmNocm9taXVtLm9yZy9kZXZlbG9wZXJzL2hvdy10
b3MvaW5zdGFsbC1nY2xpZW50XG4iOworICAgIGRpZTsKK30KKworIyBJZiAuZ2NsaWVudCBjb25m
aWd1cmF0aW9uIGZpbGUgZG9lc24ndCBleGlzdCwgY3JlYXRlIGl0LgorY2hkaXIoIldlYktpdC9j
aHJvbWl1bSIpIG9yIGRpZSAkITsKK2lmICghIC1lICIuZ2NsaWVudCIpIHsKKyAgICBwcmludCAi
Q29uZmlndXJpbmcgZ2NsaWVudC4uLlxuIjsKKyAgICBteSAkcmVzdWx0ID0gZXhlYygiZ2NsaWVu
dCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgImNvbmZpZyIsIAorICAgICAgICAgICAgICAg
ICAgICAgICAgIi0tc3BlYz1zb2x1dGlvbnM9W3snbmFtZSc6Jy4vJywndXJsJzpOb25lfV0iKTsK
KyAgICBpZiAoISRyZXN1bHQpIHsKKyAgICAgICAgZGllICJFcnJvciB3aGlsZSBjb25maWd1cmlu
ZyBnY2xpZW50IGZvciBjaHJvbWl1bSBwb3J0XG4iOworICAgIH0KK30KKworIyBFeGVjdXRlIGdj
bGllbnQgc3luYy4KK3ByaW50ICJVcGRhdGluZyBjaHJvbWl1bSBwb3J0IGRlcGVuZGVuY2llcyB1
c2luZyBnY2xpZW50Li4uXG4iOworZXhlYygiZ2NsaWVudCIsICJzeW5jIikgPT0gMCBvciBkaWU7
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KaW5kZXggZDNiOWUwMC4uNmZkZWQxYSAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0ZGlycy5wbQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAy
MDA1LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJp
Z2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTk5NSw3ICs5OTYsNyBAQCBzdWIgY2hlY2tSZXF1aXJlZFN5
c3RlbUNvbmZpZwogICAgICAgICAgICAgcHJpbnQgImh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29t
L3Rvb2xzL3hjb2RlXG4iOwogICAgICAgICAgICAgcHJpbnQgIioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiI7CiAgICAgICAgIH0K
LSAgICB9IGVsc2lmIChpc0d0aygpIG9yIGlzUXQoKSBvciBpc1d4KCkpIHsKKyAgICB9IGVsc2lm
IChpc0d0aygpIG9yIGlzUXQoKSBvciBpc1d4KCkgb3IgaXNDaHJvbWl1bSgpKSB7CiAgICAgICAg
IG15IEBjbWRzID0gcXcoZmxleCBiaXNvbiBncGVyZik7CiAgICAgICAgIG15IEBtaXNzaW5nID0g
KCk7CiAgICAgICAgIGZvcmVhY2ggbXkgJGNtZCAoQGNtZHMpIHsKQEAgLTEzNTYsNiArMTM1Nywy
OCBAQCBzdWIgYnVpbGRHdGtQcm9qZWN0KCQkQCkKICAgICByZXR1cm4gYnVpbGRBdXRvdG9vbHNQ
cm9qZWN0KCRjbGVhbiwgQGJ1aWxkQXJncyk7CiB9CiAKK3N1YiBidWlsZENocm9taXVtKCRAKQor
eworICAgIG15ICgkY2xlYW4sIEBvcHRpb25zKSA9IEBfOworCisgICAgbXkgJHJlc3VsdCA9IDE7
CisgICAgaWYgKGlzRGFyd2luKCkpIHsKKyAgICAgICAgIyBNYWMgYnVpbGQgLSBidWlsZHMgdGhl
IHJvb3QgeGNvZGUgcHJvamVjdC4KKyAgICAgICAgJHJlc3VsdCA9IGJ1aWxkWENvZGVQcm9qZWN0
KCJXZWJLaXQvY2hyb21pdW0vd2Via2l0IiwgJGNsZWFuLCAoQG9wdGlvbnMpKTsKKyAgICB9IGVs
c2lmIChpc0N5Z3dpbigpKSB7CisgICAgICAgICMgV2luZG93cyBidWlsZAorICAgICAgICAjIEZJ
WE1FIHN1cHBvcnQgd2luZG93cy4KKyAgICAgICAgcHJpbnQgU1RERVJSICJXaW5kb3dzIGJ1aWxk
IGlzIG5vdCBzdXBwb3J0ZWQuIFlldC4iOworICAgIH0gZWxzaWYgKGlzTGludXgoKSkgeworICAg
ICAgICAjIExpbnV4IGJ1aWxkCisgICAgICAgICMgRklYTUUgc3VwcG9ydCBsaW51eC4KKyAgICAg
ICAgcHJpbnQgU1RERVJSICJMaW51eCBidWlsZCBpcyBub3Qgc3VwcG9ydGVkLiBZZXQuIjsKKyAg
ICB9IGVsc2UgeworICAgICAgICBwcmludCBTVERFUlIgIlRoaXMgcGxhdGZvcm0gaXMgbm90IHN1
cHBvcnRlZCBieSBjaHJvbWl1bS4iOworICAgIH0KKyAgICByZXR1cm4gJHJlc3VsdDsKK30KKwog
c3ViIHNldFBhdGhGb3JSdW5uaW5nV2ViS2l0QXBwCiB7CiAgICAgbXkgKCRlbnYpID0gQF87Cg==
</data>
<flag name="review"
          id="21488"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
    <flag name="commit-queue"
          id="21489"
          type_id="3"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>