<?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>32048</bug_id>
          
          <creation_ts>2009-12-01 18:30:43 -0800</creation_ts>
          <short_desc>[chromium] theme scrollbars to match gtk theme</short_desc>
          <delta_ts>2009-12-07 18:55:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Evan Martin">evan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>167831</commentid>
    <comment_count>0</comment_count>
      <attachid>44121</attachid>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-12-01 18:30:43 -0800</bug_when>
    <thetext>Created attachment 44121
Patch

When using the system colors, we should make the scrollbars match.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167832</commentid>
    <comment_count>1</comment_count>
      <attachid>44122</attachid>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-12-01 18:36:26 -0800</bug_when>
    <thetext>Created attachment 44122
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167833</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-01 18:39:26 -0800</bug_when>
    <thetext>Attachment 44122 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
Last 5120 characters of output:
itespace/braces] [4]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:101:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:102:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:103:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:104:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:105:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:106:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:107:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:108:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:109:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:110:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:111:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:112:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:113:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:114:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:115:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:116:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:117:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:118:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:119:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:120:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:121:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:122:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:123:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:124:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:125:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:127:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:130:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:130:  Missing spaces around /  [whitespace/operators] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:133:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:136:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:139:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 33</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167834</commentid>
    <comment_count>3</comment_count>
      <attachid>44123</attachid>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-12-01 18:39:48 -0800</bug_when>
    <thetext>Created attachment 44123
patch with fixed tabs and caps</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167835</commentid>
    <comment_count>4</comment_count>
      <attachid>44124</attachid>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-12-01 18:41:11 -0800</bug_when>
    <thetext>Created attachment 44124
patch with fixed tabs and caps</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167837</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-01 18:44:50 -0800</bug_when>
    <thetext>Attachment 44124 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:100:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp:134:  Missing spaces around /  [whitespace/operators] [3]
Total errors found: 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167838</commentid>
    <comment_count>6</comment_count>
      <attachid>44125</attachid>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-12-01 18:46:42 -0800</bug_when>
    <thetext>Created attachment 44125
patch with fixed tabs and caps</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167839</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-01 18:47:45 -0800</bug_when>
    <thetext>Thanks for fixing the style issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167840</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-01 18:50:10 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44125 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167853</commentid>
    <comment_count>9</comment_count>
      <attachid>44125</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-01 20:29:24 -0800</bug_when>
    <thetext>Comment on attachment 44125
patch with fixed tabs and caps

Would be nice to document the pixel format.  &quot;unsigned&quot; doesn&apos;t tell the reader much.  I&apos;m kinda surprised we don&apos;t have a WebColor with all the other Web* we&apos;ve got. :)

I&apos;m surprised we don&apos;t already ahve something like saturateAndBrighten in Color.h

I would have written:
 86     if (color[1] &gt; 1.0)
 87         color[1] = 1.0;
 88     else if (color[1] &lt; 0.0)
 89         color[1] = 0.0;

as:
color[1] = std::min(std::max(hsv[1] + saturateAmount, 0.0), 1.0)

Ha.  If you don&apos;t like my min/max above, at least write a function do do it, cause you repeat the same 4 lines everywehre:
if (min_diff &lt; 0.2)
 131         min_diff = 0.2;
 132     else if (min_diff &gt; 0.5)
 133         min_diff = 0.5;

Style viloations:
inactive_color

I&apos;m surprised check-webkit-style doesn&apos;t get those.  I guess I&apos;ll file a bug.

Otherwise looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167855</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-01 20:31:38 -0800</bug_when>
    <thetext>Filed bug 32051 about check-webkit-style complaining about under_bar style variable names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168124</commentid>
    <comment_count>11</comment_count>
      <attachid>44173</attachid>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-12-02 12:30:19 -0800</bug_when>
    <thetext>Created attachment 44173
patch with fixed tabs and caps</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168132</commentid>
    <comment_count>12</comment_count>
      <attachid>44173</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-02 13:00:14 -0800</bug_when>
    <thetext>Comment on attachment 44173
patch with fixed tabs and caps

WebKit doesn&apos;t get excited about wrapping:
 154     SkColorToHSV(RenderThemeChromiumLinux::thumbInactiveColor(),
 155                  thumb_hsv);

This looks fine though.

I&apos;m slightly surprised you need both:
+#include &quot;RenderTheme.h&quot;
+#include &quot;RenderThemeChromiumLinux.h&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169578</commentid>
    <comment_count>13</comment_count>
      <attachid>44173</attachid>
    <who name="Adam Langley">agl</who>
    <bug_when>2009-12-07 18:36:15 -0800</bug_when>
    <thetext>Comment on attachment 44173
patch with fixed tabs and caps

cq+ at Markus&apos;s request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169584</commentid>
    <comment_count>14</comment_count>
      <attachid>44173</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-07 18:55:01 -0800</bug_when>
    <thetext>Comment on attachment 44173
patch with fixed tabs and caps

Clearing flags on attachment: 44173

Committed r51827: &lt;http://trac.webkit.org/changeset/51827&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169585</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-07 18:55:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44121</attachid>
            <date>2009-12-01 18:30:43 -0800</date>
            <delta_ts>2009-12-01 18:36:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>20091201183003.patch</filename>
            <type>text/plain</type>
            <size>11610</size>
            <attacher name="Evan Martin">evan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWM0NDI1My4uY2YyNzI3MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAwOS0xMi0wMSAgRXZhbiBNYXJ0aW4g
IDxldmFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMh
KQorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnNhdHVyYXRlQW5kQnJpZ2h0ZW4pOgorICAgICAgICAoV2ViQ29yZTo6b3V0bGluZUNvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRU
cmFja1BpZWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51
eDo6cGFpbnRUaHVtYik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1M
aW51eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnNl
dFNjcm9sbGJhckNvbG9ycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1MaW51eC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Ojp0
aHVtYkluYWN0aXZlQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1
bUxpbnV4Ojp0aHVtYkFjdGl2ZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
Q2hyb21pdW1MaW51eDo6dHJhY2tDb2xvcik6CisKIDIwMDktMTEtMjggIE9saXZlciBIdW50ICA8
b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVt
TGludXguY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9t
aXVtTGludXguY3BwCmluZGV4IDY0ZjU4YzQuLjFkMGQ5ODQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eC5jcHAK
QEAgLTMzLDYgKzMzLDggQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgor
I2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIgogI2luY2x1ZGUgIlNjcm9sbGJh
ci5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAKQEAgLTczLDYgKzc1LDcw
IEBAIHN0YXRpYyB2b2lkIGRyYXdCb3goU2tDYW52YXMqIGNhbnZhcywgY29uc3QgSW50UmVjdCYg
cmVjdCwgY29uc3QgU2tQYWludCYgcGFpbnQpCiAgICAgZHJhd1ZlcnRMaW5lKGNhbnZhcywgcmVj
dC54KCksIHJlY3QueSgpLCBib3R0b20sIHBhaW50KTsKIH0KIAorc3RhdGljIFNrQ29sb3Igc2F0
dXJhdGVBbmRCcmlnaHRlbihTa1NjYWxhciogaHN2LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTa1NjYWxhciBzYXR1cmF0ZUFtb3VudCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU2tTY2FsYXIgYnJpZ2h0ZW5BbW91bnQpCit7CisgICAgU2tTY2FsYXIg
Y29sb3JbM107CisgICAgY29sb3JbMF0gPSBoc3ZbMF07CisKKyAgICBjb2xvclsxXSA9IGhzdlsx
XSArIHNhdHVyYXRlQW1vdW50OworICAgIGlmIChjb2xvclsxXSA+IDEuMCkKKyAgICAgICAgY29s
b3JbMV0gPSAxLjA7CisgICAgZWxzZSBpZiAoY29sb3JbMV0gPCAwLjApCisgICAgICAgIGNvbG9y
WzFdID0gMC4wOworCisgICAgY29sb3JbMl0gPSBoc3ZbMl0gKyBicmlnaHRlbkFtb3VudDsKKyAg
ICBpZiAoY29sb3JbMl0gPiAxLjApCisgICAgICAgIGNvbG9yWzJdID0gMS4wOworICAgIGVsc2Ug
aWYgKGNvbG9yWzJdIDwgMC4wKQorICAgICAgICBjb2xvclsyXSA9IDAuMDsKKworICAgIHJldHVy
biBTa0hTVlRvQ29sb3IoY29sb3IpOworfQorCitzdGF0aWMgU2tDb2xvciBvdXRsaW5lQ29sb3Io
U2tTY2FsYXIqIGhzdjEsIFNrU2NhbGFyKiBoc3YyKSB7CisgIC8vIEdUSyBUaGVtZSBlbmdpbmVz
IGhhdmUgd2F5IHRvbyBtdWNoIGNvbnRyb2wgb3ZlciB0aGUgbGF5b3V0IG9mIHRoZQorICAvLyBz
Y3JvbGxiYXIuIFdlIG1pZ2h0IGJlIGFibGUgdG8gbW9yZSBjbG9zZWx5IGFwcHJveGltYXRlIGl0
cyBsb29rLWFuZC1mZWVsLAorICAvLyBpZiB3ZSBzZW50IHdob2xlIGltYWdlcyBpbnN0ZWFkIG9m
IGp1c3QgY29sb3JzIGZyb20gdGhlIGJyb3dzZXIgdG8gdGhlCisgIC8vIHJlbmRlcmVyLiBCdXQg
ZXZlbiB0aGVuLCBzb21lIHRoZW1lcyB3b3VsZCBqdXN0IGJyZWFrLgorICAvLworICAvLyBTbywg
aW5zdGVhZCwgd2UgZG9uJ3QgZXZlbiB0cnkgdG8gMTAwJSByZXBsaWNhdGUgdGhlIGxvb2sgb2Yg
dGhlIG5hdGl2ZQorICAvLyBzY3JvbGxiYXIuIFdlIHJlbmRlciBvdXIgb3duIHZlcnNpb24sIGJ1
dCB3ZSBtYWtlIHN1cmUgdG8gcGljayBjb2xvcnMgdGhhdAorICAvLyBibGVuZCBpbiBuaWNlbHkg
d2l0aCB0aGUgc3lzdGVtIEdUSyB0aGVtZS4gSW4gbW9zdCBjYXNlcywgd2UgY2FuIGp1c3QKKyAg
Ly8gc2FtcGxlIGEgY291cGxlIG9mIHBpeGVscyBmcm9tIHRoZSBzeXN0ZW0gc2Nyb2xsYmFyIGFu
ZCB1c2UgdGhvc2UgY29sb3JzCisgIC8vIHRvIGRyYXcgb3VyIHNjcm9sbGJhci4KKyAgLy8KKyAg
Ly8gVGhpcyB3b3JrcyBmaW5lIGZvciB0aGUgdHJhY2sgY29sb3IgYW5kIHRoZSBvdmVyYWxsIHRo
dW1iIGNvbG9yLiBCdXQgaXQKKyAgLy8gZmFpbHMgc3BlY3RhY3VsYXJseSBmb3IgdGhlIG91dGxp
bmUgY29sb3IgdXNlZCBhcm91bmQgdGhlIHRodW1iIHBpZWNlLgorICAvLyBOb3QgYWxsIHRoZW1l
cyBoYXZlIGEgY2xlYXJseSBkZWZpbmVkIG91dGxpbmUuIEZvciBzb21lIG9mIHRoZW0gaXQgaXMK
KyAgLy8gcGFydGlhbGx5IHRyYW5zcGFyZW50LCBhbmQgZm9yIG90aGVycyB0aGUgdGhpY2tuZXNz
IGlzIHZlcnkgdW5wcmVkaWN0YWJsZS4KKyAgLy8KKyAgLy8gU28sIGluc3RlYWQgb2YgdHJ5aW5n
IHRvIGFwcHJveGltYXRlIHRoZSBzeXN0ZW0gdGhlbWUsIHdlIGluc3RlYWQgdHJ5IHRvCisgIC8v
IGNvbXB1dGUgYSByZWFzb25hYmxlIGxvb2tpbmcgY2hvaWNlIGJhc2VkIG9uIHRoZSBrbm93biBj
b2xvciBvZiB0aGUgdHJhY2sKKyAgLy8gYW5kIHRoZSB0aHVtYiBwaWVjZS4gVGhpcyBpcyBkaWZm
aWN1bHQgd2hlbiB0cnlpbmcgdG8gZGVhbCBib3RoIHdpdGggaGlnaC0KKyAgLy8gYW5kIGxvdy1j
b250cmFzdCB0aGVtZXMsIGFuZCBib3RoIHdpdGggcG9zaXRpdmUgYW5kIGludmVydGVkIHRoZW1l
cy4KKyAgLy8KKyAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGhhcyBiZWVuIHRlc3RlZCB0byBsb29r
IE9LIHdpdGggYWxsIG9mIHRoZSBkZWZhdWx0IEdUSworICAvLyB0aGVtZXMuCisgIFNrU2NhbGFy
IG1pbl9kaWZmID0gKGhzdjFbMV0gKyBoc3YyWzFdKSoxLjI7CisgIGlmIChtaW5fZGlmZiA8IDAu
MikKKyAgICAgIG1pbl9kaWZmID0gMC4yOworICBlbHNlIGlmIChtaW5fZGlmZiA+IDAuNSkKKyAg
ICAgIG1pbl9kaWZmID0gMC41OworCisgIFNrU2NhbGFyIGRpZmYgPSBmYWJzKGhzdjFbMl0gLSBo
c3YyWzJdKS8yOworICBpZiAoZGlmZiA8IG1pbl9kaWZmKQorICAgICAgZGlmZiA9IG1pbl9kaWZm
OworICBlbHNlIGlmIChkaWZmID4gMC41KQorICAgICAgZGlmZiA9IDAuNTsKKworICBpZiAoaHN2
MVsyXSArIGhzdjJbMl0gPiAxLjApCisgICAgICBkaWZmID0gLWRpZmY7CisKKyAgcmV0dXJuIHNh
dHVyYXRlQW5kQnJpZ2h0ZW4oaHN2MiwgLTAuMiwgZGlmZik7Cit9CisKIEludFJlY3QgU2Nyb2xs
YmFyVGhlbWVDaHJvbWl1bTo6dHJhY2tSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBib29sKQog
ewogICAgIEludFNpemUgYnMgPSBidXR0b25TaXplKHNjcm9sbGJhcik7CkBAIC04OSwxMCArMTU1
LDE2IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRyYWNrUGllY2Uo
R3JhcGhpY3NDb250ZXh0KiBnYywgU2Nyb2xsYmFyCiAgICAgU2tJUmVjdCBza3JlY3Q7CiAKICAg
ICBza3JlY3Quc2V0KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC54KCkgKyByZWN0LndpZHRoKCks
IHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7Ci0gICAgcGFpbnQuc2V0QVJHQigweGZmLCAweGUz
LCAweGRkLCAweGQ4KTsKKyAgICBTa1NjYWxhciB0cmFja19oc3ZbM107CisgICAgU2tDb2xvclRv
SFNWKFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6dHJhY2tDb2xvcigpLCB0cmFja19oc3YpOwor
ICAgIHBhaW50LnNldENvbG9yKHNhdHVyYXRlQW5kQnJpZ2h0ZW4odHJhY2tfaHN2LCAwLCAwKSk7
CiAgICAgY2FudmFzLT5kcmF3SVJlY3Qoc2tyZWN0LCBwYWludCk7CiAKLSAgICBwYWludC5zZXRB
UkdCKDB4ZmYsIDB4YzUsIDB4YmEsIDB4YjApOworICAgIFNrU2NhbGFyIHRodW1iX2hzdlszXTsK
KyAgICBTa0NvbG9yVG9IU1YoUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Ojp0aHVtYkluYWN0aXZl
Q29sb3IoKSwKKyAgICAgICAgICAgICAgICAgdGh1bWJfaHN2KTsKKworICAgIHBhaW50LnNldENv
bG9yKG91dGxpbmVDb2xvcih0cmFja19oc3YsIHRodW1iX2hzdikpOwogICAgIGRyYXdCb3goY2Fu
dmFzLCByZWN0LCBwYWludCk7CiB9CiAKQEAgLTEwOSwxMSArMTgxLDE0IEBAIHZvaWQgU2Nyb2xs
YmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRodW1iKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNj
cm9sbGJhciogc2NyCiAgICAgY29uc3QgYm9vbCB2ZXJ0aWNhbCA9IHNjcm9sbGJhci0+b3JpZW50
YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcjsKICAgICBTa0NhbnZhcyogY29uc3QgY2FudmFz
ID0gZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKIAorICAgIFNrU2NhbGFyIHRodW1i
WzNdOworICAgIFNrQ29sb3JUb0hTVihob3ZlcmVkCisgICAgICAgICAgICAgICAgID8gUmVuZGVy
VGhlbWVDaHJvbWl1bUxpbnV4Ojp0aHVtYkFjdGl2ZUNvbG9yKCkKKyAgICAgICAgICAgICAgICAg
OiBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnRodW1iSW5hY3RpdmVDb2xvcigpLAorICAgICAg
ICAgICAgICAgICB0aHVtYik7CisKICAgICBTa1BhaW50IHBhaW50OwotICAgIGlmIChob3ZlcmVk
KQotICAgICAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYpOwotICAgIGVs
c2UKLSAgICAgICAgcGFpbnQuc2V0QVJHQigweGZmLCAweGY0LCAweGYyLCAweGVmKTsKKyAgICBw
YWludC5zZXRDb2xvcihzYXR1cmF0ZUFuZEJyaWdodGVuKHRodW1iLCAwLCAwLjAyKSk7CiAKICAg
ICBTa0lSZWN0IHNrcmVjdDsKICAgICBpZiAodmVydGljYWwpCkBAIC0xMjMsMTAgKzE5OCw3IEBA
IHZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRodW1iKEdyYXBoaWNzQ29u
dGV4dCogZ2MsIFNjcm9sbGJhciogc2NyCiAKICAgICBjYW52YXMtPmRyYXdJUmVjdChza3JlY3Qs
IHBhaW50KTsKIAotICAgIGlmIChob3ZlcmVkKQotICAgICAgICBwYWludC5zZXRBUkdCKDB4ZmYs
IDB4ZjQsIDB4ZjIsIDB4ZWYpOwotICAgIGVsc2UKLSAgICAgICAgcGFpbnQuc2V0QVJHQigweGZm
LCAweGVhLCAweGU1LCAweGUwKTsKKyAgICBwYWludC5zZXRDb2xvcihzYXR1cmF0ZUFuZEJyaWdo
dGVuKHRodW1iLCAwLCAtMC4wMikpOwogCiAgICAgaWYgKHZlcnRpY2FsKQogICAgICAgICBza3Jl
Y3Quc2V0KG1pZHggKyAxLCByZWN0LnkoKSwgcmVjdC54KCkgKyByZWN0LndpZHRoKCksIHJlY3Qu
eSgpICsgcmVjdC5oZWlnaHQoKSk7CkBAIC0xMzUsMTEgKzIwNywxMiBAQCB2b2lkIFNjcm9sbGJh
clRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRUaHVtYihHcmFwaGljc0NvbnRleHQqIGdjLCBTY3Jv
bGxiYXIqIHNjcgogCiAgICAgY2FudmFzLT5kcmF3SVJlY3Qoc2tyZWN0LCBwYWludCk7CiAKLSAg
ICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4OWQsIDB4OTYsIDB4OGUpOworICAgIFNrU2NhbGFyIHRy
YWNrWzNdOworICAgIFNrQ29sb3JUb0hTVihSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnRyYWNr
Q29sb3IoKSwgdHJhY2spOworICAgIHBhaW50LnNldENvbG9yKG91dGxpbmVDb2xvcih0cmFjaywg
dGh1bWIpKTsKICAgICBkcmF3Qm94KGNhbnZhcywgcmVjdCwgcGFpbnQpOwogCiAgICAgaWYgKHJl
Y3QuaGVpZ2h0KCkgPiAxMCAmJiByZWN0LndpZHRoKCkgPiAxMCkgewotICAgICAgICBwYWludC5z
ZXRBUkdCKDB4ZmYsIDB4OWQsIDB4OTYsIDB4OGUpOwogICAgICAgICBjb25zdCBpbnQgZ3JpcHB5
SGFsZldpZHRoID0gMjsKICAgICAgICAgY29uc3QgaW50IGludGVyR3JpcHB5T2Zmc2V0ID0gMzsK
ICAgICAgICAgaWYgKHZlcnRpY2FsKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUNocm9taXVtTGludXguY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVDaHJvbWl1bUxpbnV4LmNwcAppbmRleCA5MDQ4Y2UzLi5jY2QzODVjIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguY3BwCisrKyBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKQEAgLTMyLDYgKzMyLDEw
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordW5zaWduZWQgUmVuZGVyVGhlbWVDaHJvbWl1
bUxpbnV4OjptX3RodW1iSW5hY3RpdmVDb2xvciA9IDA7Cit1bnNpZ25lZCBSZW5kZXJUaGVtZUNo
cm9taXVtTGludXg6Om1fdGh1bWJBY3RpdmVDb2xvciA9IDA7Cit1bnNpZ25lZCBSZW5kZXJUaGVt
ZUNocm9taXVtTGludXg6Om1fdHJhY2tDb2xvciA9IDA7CisKIFBhc3NSZWZQdHI8UmVuZGVyVGhl
bWU+IFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6Y3JlYXRlKCkKIHsKICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eCgpKTsKQEAgLTEyMiw0ICsxMjYsMTIg
QEAgZG91YmxlIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6Y2FyZXRCbGlua0ludGVydmFsSW50
ZXJuYWwoKSBjb25zdAogICAgIHJldHVybiBtX2NhcmV0QmxpbmtJbnRlcnZhbDsKIH0KIAordm9p
ZCBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnNldFNjcm9sbGJhckNvbG9ycygKKyAgICBTa0Nv
bG9yIGluYWN0aXZlX2NvbG9yLCBTa0NvbG9yIGFjdGl2ZV9jb2xvciwgU2tDb2xvciB0cmFja19j
b2xvcikKK3sKKyAgICBtX3RodW1iSW5hY3RpdmVDb2xvciA9IGluYWN0aXZlX2NvbG9yOworICAg
IG1fdGh1bWJBY3RpdmVDb2xvciA9IGFjdGl2ZV9jb2xvcjsKKyAgICBtX3RyYWNrQ29sb3IgPSB0
cmFja19jb2xvcjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmggYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaAppbmRleCBlMTM3YWQ1Li44NzM2YjBkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaApAQCAtNTQs
NiArNTQsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldENhcmV0Qmxp
bmtJbnRlcnZhbChkb3VibGUgaW50ZXJ2YWwpOwogICAgICAgICB2aXJ0dWFsIGRvdWJsZSBjYXJl
dEJsaW5rSW50ZXJ2YWxJbnRlcm5hbCgpIGNvbnN0OwogCisgICAgICAgIHN0YXRpYyB2b2lkIHNl
dFNjcm9sbGJhckNvbG9ycyh1bnNpZ25lZCBpbmFjdGl2ZV9jb2xvciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFjdGl2ZV9jb2xvciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHRyYWNrX2NvbG9yKTsKKyAg
ICAgICAgc3RhdGljIHVuc2lnbmVkIHRodW1iSW5hY3RpdmVDb2xvcigpIHsgcmV0dXJuIG1fdGh1
bWJJbmFjdGl2ZUNvbG9yOyB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCB0aHVtYkFjdGl2ZUNv
bG9yKCkgeyByZXR1cm4gbV90aHVtYkFjdGl2ZUNvbG9yOyB9CisgICAgICAgIHN0YXRpYyB1bnNp
Z25lZCB0cmFja0NvbG9yKCkgeyByZXR1cm4gbV90cmFja0NvbG9yOyB9CisKICAgICBwcml2YXRl
OgogICAgICAgICBSZW5kZXJUaGVtZUNocm9taXVtTGludXgoKTsKICAgICAgICAgdmlydHVhbCB+
UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4KCk7CkBAIC02Miw2ICs2OSwxMCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0NvbnRyb2xUaW50cygpIGNv
bnN0OwogCiAgICAgICAgIGRvdWJsZSBtX2NhcmV0QmxpbmtJbnRlcnZhbDsKKworICAgICAgICBz
dGF0aWMgdW5zaWduZWQgbV90aHVtYkluYWN0aXZlQ29sb3I7CisgICAgICAgIHN0YXRpYyB1bnNp
Z25lZCBtX3RodW1iQWN0aXZlQ29sb3I7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBtX3RyYWNr
Q29sb3I7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZGZjM2EwYy4uNmI1NjFjMCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTIt
MDEgIEV2YW4gTWFydGluICA8ZXZhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFu
ZCBidWcgVVJMIChPT1BTISkKKworICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAg
ICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNl
dFNjcm9sbGJhckNvbG9ycyk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMDkt
MTEtMjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlldy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXgg
MjlhM2Y5ZS4uMjZhNmNiYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJW
aWV3LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTI0Myw2ICsy
NDMsMTAgQEAgcHVibGljOgogICAgIC8vIHRoZWlyIGxpbmtzLgogICAgIFdFQktJVF9BUEkgc3Rh
dGljIHZvaWQgcmVzZXRWaXNpdGVkTGlua1N0YXRlKCk7CiAKKyAgICAvLyBTY3JvbGxiYXIgY29s
b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsYmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlX2Nv
bG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYWN0aXZl
X2NvbG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdHJh
Y2tfY29sb3IpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIH5XZWJWaWV3KCkge30KZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggNzkxNGE5ZS4uMjE0ODA0OCAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTk3LDYgKzk3LDkgQEAKICNpbmNsdWRlICJLZXlib2Fy
ZENvZGVzV2luLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oIgogI2Vsc2UK
KyNpZiBQTEFURk9STShMSU5VWCkKKyNpbmNsdWRlICJSZW5kZXJUaGVtZUNocm9taXVtTGludXgu
aCIKKyNlbmRpZgogI2luY2x1ZGUgIktleWJvYXJkQ29kZXNQb3NpeC5oIgogI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCiAjZW5kaWYKQEAgLTE2MzUsNiArMTYzOCwxNiBAQCBib29sIFdlYlZpZXdJ
bXBsOjppc0FjdGl2ZSgpIGNvbnN0CiAgICAgcmV0dXJuIChwYWdlKCkgJiYgcGFnZSgpLT5mb2N1
c0NvbnRyb2xsZXIoKSkgPyBwYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgpIDog
ZmFsc2U7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFNjcm9sbGJhckNvbG9ycyh1bnNpZ25l
ZCBpbmFjdGl2ZV9jb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBhY3RpdmVfY29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgdHJhY2tfY29sb3IpIHsKKyNpZiBQTEFURk9STShMSU5VWCkKKyAgICBSZW5k
ZXJUaGVtZUNocm9taXVtTGludXg6OnNldFNjcm9sbGJhckNvbG9ycyhpbmFjdGl2ZV9jb2xvciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVf
Y29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dHJhY2tfY29sb3IpOworI2VuZGlmCit9CisKIHZvaWQgV2ViVmlld0ltcGw6OmRpZENvbW1pdExv
YWQoYm9vbCogaXNOZXdOYXZpZ2F0aW9uKQogewogICAgIGlmIChpc05ld05hdmlnYXRpb24pCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggOTYyMjdlMy4uNDA4ZTJjMCAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTU1LDYgKzE1NSw5IEBAIHB1YmxpYzoKICAgICAgICAg
Y29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIHN1Z2dlc3Rpb25zLAogICAgICAgICBpbnQgZGVm
YXVsdFN1Z2dlc3Rpb25JbmRleCk7CiAgICAgdmlydHVhbCB2b2lkIGhpZGVBdXRvZmlsbFBvcHVw
KCk7CisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbGJhckNvbG9ycyh1bnNpZ25lZCBpbmFjdGl2
ZV9jb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFj
dGl2ZV9jb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IHRyYWNrX2NvbG9yKTsKIAogICAgIC8vIFdlYlZpZXdJbXBsCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44122</attachid>
            <date>2009-12-01 18:36:26 -0800</date>
            <delta_ts>2009-12-01 18:39:45 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug-32048-20091201183546.patch</filename>
            <type>text/plain</type>
            <size>12170</size>
            <attacher name="Evan Martin">evan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWM0NDI1My4uNDUyZWNmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAwOS0xMi0wMSAgRXZhbiBNYXJ0aW4g
IDxldmFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDaHJvbWl1bTogdGhlbWUgc2Nyb2xsYmFycyB0byBtYXRjaCBHVEsgdGhl
bWUuCisgICAgICAgIEFkZCBmdW5jdGlvbnMgdG8gUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4IHRv
IGNoYW5nZSB0aGUgc2Nyb2xsYmFyCisgICAgICAgIGNvbG9yLgorCisgICAgICAgIFNpbmNlIHRo
ZSBjaGFuZ2UgaXMgdG8gdGhlIENocm9taXVtIHdlYmtpdCBBUEkgbGF5ZXIsIHRlc3Rpbmcgd2ls
bAorICAgICAgICBiZSBpbiBDaHJvbWl1bSdzIHRlc3Qgc2hlbGwuCisgICAgICAgIGh0dHA6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMDQ4CisKKyAgICAgICAgUGF0Y2ggZnJv
bSBNYXJrdXMgR3V0c2Noa2UgPG1hcmt1c0BjaHJvbWl1bS5vcmc+LgorCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNhdHVyYXRlQW5kQnJpZ2h0ZW4pOgorICAgICAgICAoV2ViQ29yZTo6b3V0bGlu
ZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6
cGFpbnRUcmFja1BpZWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21p
dW1MaW51eDo6cGFpbnRUaHVtYik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1MaW51eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGlu
dXg6OnNldFNjcm9sbGJhckNvbG9ycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1MaW51eC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4Ojp0aHVtYkluYWN0aXZlQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVD
aHJvbWl1bUxpbnV4Ojp0aHVtYkFjdGl2ZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lQ2hyb21pdW1MaW51eDo6dHJhY2tDb2xvcik6CisKIDIwMDktMTEtMjggIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2Vpbmln
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNo
cm9taXVtTGludXguY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVt
ZUNocm9taXVtTGludXguY3BwCmluZGV4IDY0ZjU4YzQuLjFkMGQ5ODQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51
eC5jcHAKQEAgLTMzLDYgKzMzLDggQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIgogI2luY2x1ZGUgIlNj
cm9sbGJhci5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAKQEAgLTczLDYg
Kzc1LDcwIEBAIHN0YXRpYyB2b2lkIGRyYXdCb3goU2tDYW52YXMqIGNhbnZhcywgY29uc3QgSW50
UmVjdCYgcmVjdCwgY29uc3QgU2tQYWludCYgcGFpbnQpCiAgICAgZHJhd1ZlcnRMaW5lKGNhbnZh
cywgcmVjdC54KCksIHJlY3QueSgpLCBib3R0b20sIHBhaW50KTsKIH0KIAorc3RhdGljIFNrQ29s
b3Igc2F0dXJhdGVBbmRCcmlnaHRlbihTa1NjYWxhciogaHN2LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTa1NjYWxhciBzYXR1cmF0ZUFtb3VudCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU2tTY2FsYXIgYnJpZ2h0ZW5BbW91bnQpCit7CisgICAgU2tT
Y2FsYXIgY29sb3JbM107CisgICAgY29sb3JbMF0gPSBoc3ZbMF07CisKKyAgICBjb2xvclsxXSA9
IGhzdlsxXSArIHNhdHVyYXRlQW1vdW50OworICAgIGlmIChjb2xvclsxXSA+IDEuMCkKKyAgICAg
ICAgY29sb3JbMV0gPSAxLjA7CisgICAgZWxzZSBpZiAoY29sb3JbMV0gPCAwLjApCisgICAgICAg
IGNvbG9yWzFdID0gMC4wOworCisgICAgY29sb3JbMl0gPSBoc3ZbMl0gKyBicmlnaHRlbkFtb3Vu
dDsKKyAgICBpZiAoY29sb3JbMl0gPiAxLjApCisgICAgICAgIGNvbG9yWzJdID0gMS4wOworICAg
IGVsc2UgaWYgKGNvbG9yWzJdIDwgMC4wKQorICAgICAgICBjb2xvclsyXSA9IDAuMDsKKworICAg
IHJldHVybiBTa0hTVlRvQ29sb3IoY29sb3IpOworfQorCitzdGF0aWMgU2tDb2xvciBvdXRsaW5l
Q29sb3IoU2tTY2FsYXIqIGhzdjEsIFNrU2NhbGFyKiBoc3YyKSB7CisgIC8vIEdUSyBUaGVtZSBl
bmdpbmVzIGhhdmUgd2F5IHRvbyBtdWNoIGNvbnRyb2wgb3ZlciB0aGUgbGF5b3V0IG9mIHRoZQor
ICAvLyBzY3JvbGxiYXIuIFdlIG1pZ2h0IGJlIGFibGUgdG8gbW9yZSBjbG9zZWx5IGFwcHJveGlt
YXRlIGl0cyBsb29rLWFuZC1mZWVsLAorICAvLyBpZiB3ZSBzZW50IHdob2xlIGltYWdlcyBpbnN0
ZWFkIG9mIGp1c3QgY29sb3JzIGZyb20gdGhlIGJyb3dzZXIgdG8gdGhlCisgIC8vIHJlbmRlcmVy
LiBCdXQgZXZlbiB0aGVuLCBzb21lIHRoZW1lcyB3b3VsZCBqdXN0IGJyZWFrLgorICAvLworICAv
LyBTbywgaW5zdGVhZCwgd2UgZG9uJ3QgZXZlbiB0cnkgdG8gMTAwJSByZXBsaWNhdGUgdGhlIGxv
b2sgb2YgdGhlIG5hdGl2ZQorICAvLyBzY3JvbGxiYXIuIFdlIHJlbmRlciBvdXIgb3duIHZlcnNp
b24sIGJ1dCB3ZSBtYWtlIHN1cmUgdG8gcGljayBjb2xvcnMgdGhhdAorICAvLyBibGVuZCBpbiBu
aWNlbHkgd2l0aCB0aGUgc3lzdGVtIEdUSyB0aGVtZS4gSW4gbW9zdCBjYXNlcywgd2UgY2FuIGp1
c3QKKyAgLy8gc2FtcGxlIGEgY291cGxlIG9mIHBpeGVscyBmcm9tIHRoZSBzeXN0ZW0gc2Nyb2xs
YmFyIGFuZCB1c2UgdGhvc2UgY29sb3JzCisgIC8vIHRvIGRyYXcgb3VyIHNjcm9sbGJhci4KKyAg
Ly8KKyAgLy8gVGhpcyB3b3JrcyBmaW5lIGZvciB0aGUgdHJhY2sgY29sb3IgYW5kIHRoZSBvdmVy
YWxsIHRodW1iIGNvbG9yLiBCdXQgaXQKKyAgLy8gZmFpbHMgc3BlY3RhY3VsYXJseSBmb3IgdGhl
IG91dGxpbmUgY29sb3IgdXNlZCBhcm91bmQgdGhlIHRodW1iIHBpZWNlLgorICAvLyBOb3QgYWxs
IHRoZW1lcyBoYXZlIGEgY2xlYXJseSBkZWZpbmVkIG91dGxpbmUuIEZvciBzb21lIG9mIHRoZW0g
aXQgaXMKKyAgLy8gcGFydGlhbGx5IHRyYW5zcGFyZW50LCBhbmQgZm9yIG90aGVycyB0aGUgdGhp
Y2tuZXNzIGlzIHZlcnkgdW5wcmVkaWN0YWJsZS4KKyAgLy8KKyAgLy8gU28sIGluc3RlYWQgb2Yg
dHJ5aW5nIHRvIGFwcHJveGltYXRlIHRoZSBzeXN0ZW0gdGhlbWUsIHdlIGluc3RlYWQgdHJ5IHRv
CisgIC8vIGNvbXB1dGUgYSByZWFzb25hYmxlIGxvb2tpbmcgY2hvaWNlIGJhc2VkIG9uIHRoZSBr
bm93biBjb2xvciBvZiB0aGUgdHJhY2sKKyAgLy8gYW5kIHRoZSB0aHVtYiBwaWVjZS4gVGhpcyBp
cyBkaWZmaWN1bHQgd2hlbiB0cnlpbmcgdG8gZGVhbCBib3RoIHdpdGggaGlnaC0KKyAgLy8gYW5k
IGxvdy1jb250cmFzdCB0aGVtZXMsIGFuZCBib3RoIHdpdGggcG9zaXRpdmUgYW5kIGludmVydGVk
IHRoZW1lcy4KKyAgLy8KKyAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGhhcyBiZWVuIHRlc3RlZCB0
byBsb29rIE9LIHdpdGggYWxsIG9mIHRoZSBkZWZhdWx0IEdUSworICAvLyB0aGVtZXMuCisgIFNr
U2NhbGFyIG1pbl9kaWZmID0gKGhzdjFbMV0gKyBoc3YyWzFdKSoxLjI7CisgIGlmIChtaW5fZGlm
ZiA8IDAuMikKKyAgICAgIG1pbl9kaWZmID0gMC4yOworICBlbHNlIGlmIChtaW5fZGlmZiA+IDAu
NSkKKyAgICAgIG1pbl9kaWZmID0gMC41OworCisgIFNrU2NhbGFyIGRpZmYgPSBmYWJzKGhzdjFb
Ml0gLSBoc3YyWzJdKS8yOworICBpZiAoZGlmZiA8IG1pbl9kaWZmKQorICAgICAgZGlmZiA9IG1p
bl9kaWZmOworICBlbHNlIGlmIChkaWZmID4gMC41KQorICAgICAgZGlmZiA9IDAuNTsKKworICBp
ZiAoaHN2MVsyXSArIGhzdjJbMl0gPiAxLjApCisgICAgICBkaWZmID0gLWRpZmY7CisKKyAgcmV0
dXJuIHNhdHVyYXRlQW5kQnJpZ2h0ZW4oaHN2MiwgLTAuMiwgZGlmZik7Cit9CisKIEludFJlY3Qg
U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bTo6dHJhY2tSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBi
b29sKQogewogICAgIEludFNpemUgYnMgPSBidXR0b25TaXplKHNjcm9sbGJhcik7CkBAIC04OSwx
MCArMTU1LDE2IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRyYWNr
UGllY2UoR3JhcGhpY3NDb250ZXh0KiBnYywgU2Nyb2xsYmFyCiAgICAgU2tJUmVjdCBza3JlY3Q7
CiAKICAgICBza3JlY3Quc2V0KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC54KCkgKyByZWN0Lndp
ZHRoKCksIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7Ci0gICAgcGFpbnQuc2V0QVJHQigweGZm
LCAweGUzLCAweGRkLCAweGQ4KTsKKyAgICBTa1NjYWxhciB0cmFja19oc3ZbM107CisgICAgU2tD
b2xvclRvSFNWKFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6dHJhY2tDb2xvcigpLCB0cmFja19o
c3YpOworICAgIHBhaW50LnNldENvbG9yKHNhdHVyYXRlQW5kQnJpZ2h0ZW4odHJhY2tfaHN2LCAw
LCAwKSk7CiAgICAgY2FudmFzLT5kcmF3SVJlY3Qoc2tyZWN0LCBwYWludCk7CiAKLSAgICBwYWlu
dC5zZXRBUkdCKDB4ZmYsIDB4YzUsIDB4YmEsIDB4YjApOworICAgIFNrU2NhbGFyIHRodW1iX2hz
dlszXTsKKyAgICBTa0NvbG9yVG9IU1YoUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Ojp0aHVtYklu
YWN0aXZlQ29sb3IoKSwKKyAgICAgICAgICAgICAgICAgdGh1bWJfaHN2KTsKKworICAgIHBhaW50
LnNldENvbG9yKG91dGxpbmVDb2xvcih0cmFja19oc3YsIHRodW1iX2hzdikpOwogICAgIGRyYXdC
b3goY2FudmFzLCByZWN0LCBwYWludCk7CiB9CiAKQEAgLTEwOSwxMSArMTgxLDE0IEBAIHZvaWQg
U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRodW1iKEdyYXBoaWNzQ29udGV4dCog
Z2MsIFNjcm9sbGJhciogc2NyCiAgICAgY29uc3QgYm9vbCB2ZXJ0aWNhbCA9IHNjcm9sbGJhci0+
b3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcjsKICAgICBTa0NhbnZhcyogY29uc3Qg
Y2FudmFzID0gZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKIAorICAgIFNrU2NhbGFy
IHRodW1iWzNdOworICAgIFNrQ29sb3JUb0hTVihob3ZlcmVkCisgICAgICAgICAgICAgICAgID8g
UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Ojp0aHVtYkFjdGl2ZUNvbG9yKCkKKyAgICAgICAgICAg
ICAgICAgOiBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnRodW1iSW5hY3RpdmVDb2xvcigpLAor
ICAgICAgICAgICAgICAgICB0aHVtYik7CisKICAgICBTa1BhaW50IHBhaW50OwotICAgIGlmICho
b3ZlcmVkKQotICAgICAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYpOwot
ICAgIGVsc2UKLSAgICAgICAgcGFpbnQuc2V0QVJHQigweGZmLCAweGY0LCAweGYyLCAweGVmKTsK
KyAgICBwYWludC5zZXRDb2xvcihzYXR1cmF0ZUFuZEJyaWdodGVuKHRodW1iLCAwLCAwLjAyKSk7
CiAKICAgICBTa0lSZWN0IHNrcmVjdDsKICAgICBpZiAodmVydGljYWwpCkBAIC0xMjMsMTAgKzE5
OCw3IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRodW1iKEdyYXBo
aWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciogc2NyCiAKICAgICBjYW52YXMtPmRyYXdJUmVjdChz
a3JlY3QsIHBhaW50KTsKIAotICAgIGlmIChob3ZlcmVkKQotICAgICAgICBwYWludC5zZXRBUkdC
KDB4ZmYsIDB4ZjQsIDB4ZjIsIDB4ZWYpOwotICAgIGVsc2UKLSAgICAgICAgcGFpbnQuc2V0QVJH
QigweGZmLCAweGVhLCAweGU1LCAweGUwKTsKKyAgICBwYWludC5zZXRDb2xvcihzYXR1cmF0ZUFu
ZEJyaWdodGVuKHRodW1iLCAwLCAtMC4wMikpOwogCiAgICAgaWYgKHZlcnRpY2FsKQogICAgICAg
ICBza3JlY3Quc2V0KG1pZHggKyAxLCByZWN0LnkoKSwgcmVjdC54KCkgKyByZWN0LndpZHRoKCks
IHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7CkBAIC0xMzUsMTEgKzIwNywxMiBAQCB2b2lkIFNj
cm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRUaHVtYihHcmFwaGljc0NvbnRleHQqIGdj
LCBTY3JvbGxiYXIqIHNjcgogCiAgICAgY2FudmFzLT5kcmF3SVJlY3Qoc2tyZWN0LCBwYWludCk7
CiAKLSAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4OWQsIDB4OTYsIDB4OGUpOworICAgIFNrU2Nh
bGFyIHRyYWNrWzNdOworICAgIFNrQ29sb3JUb0hTVihSZW5kZXJUaGVtZUNocm9taXVtTGludXg6
OnRyYWNrQ29sb3IoKSwgdHJhY2spOworICAgIHBhaW50LnNldENvbG9yKG91dGxpbmVDb2xvcih0
cmFjaywgdGh1bWIpKTsKICAgICBkcmF3Qm94KGNhbnZhcywgcmVjdCwgcGFpbnQpOwogCiAgICAg
aWYgKHJlY3QuaGVpZ2h0KCkgPiAxMCAmJiByZWN0LndpZHRoKCkgPiAxMCkgewotICAgICAgICBw
YWludC5zZXRBUkdCKDB4ZmYsIDB4OWQsIDB4OTYsIDB4OGUpOwogICAgICAgICBjb25zdCBpbnQg
Z3JpcHB5SGFsZldpZHRoID0gMjsKICAgICAgICAgY29uc3QgaW50IGludGVyR3JpcHB5T2Zmc2V0
ID0gMzsKICAgICAgICAgaWYgKHZlcnRpY2FsKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcAppbmRleCA5MDQ4Y2UzLi5jY2QzODVjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguY3BwCisrKyBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKQEAgLTMyLDYg
KzMyLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordW5zaWduZWQgUmVuZGVyVGhlbWVD
aHJvbWl1bUxpbnV4OjptX3RodW1iSW5hY3RpdmVDb2xvciA9IDA7Cit1bnNpZ25lZCBSZW5kZXJU
aGVtZUNocm9taXVtTGludXg6Om1fdGh1bWJBY3RpdmVDb2xvciA9IDA7Cit1bnNpZ25lZCBSZW5k
ZXJUaGVtZUNocm9taXVtTGludXg6Om1fdHJhY2tDb2xvciA9IDA7CisKIFBhc3NSZWZQdHI8UmVu
ZGVyVGhlbWU+IFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6Y3JlYXRlKCkKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eCgpKTsKQEAgLTEyMiw0ICsx
MjYsMTIgQEAgZG91YmxlIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6Y2FyZXRCbGlua0ludGVy
dmFsSW50ZXJuYWwoKSBjb25zdAogICAgIHJldHVybiBtX2NhcmV0QmxpbmtJbnRlcnZhbDsKIH0K
IAordm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnNldFNjcm9sbGJhckNvbG9ycygKKyAg
ICBTa0NvbG9yIGluYWN0aXZlX2NvbG9yLCBTa0NvbG9yIGFjdGl2ZV9jb2xvciwgU2tDb2xvciB0
cmFja19jb2xvcikKK3sKKyAgICBtX3RodW1iSW5hY3RpdmVDb2xvciA9IGluYWN0aXZlX2NvbG9y
OworICAgIG1fdGh1bWJBY3RpdmVDb2xvciA9IGFjdGl2ZV9jb2xvcjsKKyAgICBtX3RyYWNrQ29s
b3IgPSB0cmFja19jb2xvcjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmggYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaAppbmRleCBlMTM3YWQ1Li44NzM2
YjBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGlu
dXguaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaApA
QCAtNTQsNiArNTQsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldENh
cmV0QmxpbmtJbnRlcnZhbChkb3VibGUgaW50ZXJ2YWwpOwogICAgICAgICB2aXJ0dWFsIGRvdWJs
ZSBjYXJldEJsaW5rSW50ZXJ2YWxJbnRlcm5hbCgpIGNvbnN0OwogCisgICAgICAgIHN0YXRpYyB2
b2lkIHNldFNjcm9sbGJhckNvbG9ycyh1bnNpZ25lZCBpbmFjdGl2ZV9jb2xvciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFjdGl2ZV9jb2xvciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHRyYWNrX2NvbG9y
KTsKKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIHRodW1iSW5hY3RpdmVDb2xvcigpIHsgcmV0dXJu
IG1fdGh1bWJJbmFjdGl2ZUNvbG9yOyB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCB0aHVtYkFj
dGl2ZUNvbG9yKCkgeyByZXR1cm4gbV90aHVtYkFjdGl2ZUNvbG9yOyB9CisgICAgICAgIHN0YXRp
YyB1bnNpZ25lZCB0cmFja0NvbG9yKCkgeyByZXR1cm4gbV90cmFja0NvbG9yOyB9CisKICAgICBw
cml2YXRlOgogICAgICAgICBSZW5kZXJUaGVtZUNocm9taXVtTGludXgoKTsKICAgICAgICAgdmly
dHVhbCB+UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4KCk7CkBAIC02Miw2ICs2OSwxMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0NvbnRyb2xUaW50
cygpIGNvbnN0OwogCiAgICAgICAgIGRvdWJsZSBtX2NhcmV0QmxpbmtJbnRlcnZhbDsKKworICAg
ICAgICBzdGF0aWMgdW5zaWduZWQgbV90aHVtYkluYWN0aXZlQ29sb3I7CisgICAgICAgIHN0YXRp
YyB1bnNpZ25lZCBtX3RodW1iQWN0aXZlQ29sb3I7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBt
X3RyYWNrQ29sb3I7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggZGZjM2EwYy4uNjM0MGM1NCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MDktMTItMDEgIEV2YW4gTWFydGluICA8ZXZhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21pdW06IHRoZW1lIHNjcm9s
bGJhcnMgdG8gbWF0Y2ggR1RLIHRoZW1lLgorICAgICAgICBBZGQgQVBJIHRvIHNldCB0aGUgY29s
b3JzLgorCisgICAgICAgIFNpbmNlIHRoZSBjaGFuZ2UgaXMgdG8gdGhlIENocm9taXVtIHdlYmtp
dCBBUEkgbGF5ZXIsIHRlc3Rpbmcgd2lsbAorICAgICAgICBiZSBpbiBDaHJvbWl1bSdzIHRlc3Qg
c2hlbGwuCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMy
MDQ4CisKKyAgICAgICAgUGF0Y2ggZnJvbSBNYXJrdXMgR3V0c2Noa2UgPG1hcmt1c0BjaHJvbWl1
bS5vcmc+LgorCisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0U2Nyb2xsYmFy
Q29sb3JzKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAwOS0xMS0yNyAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJW
aWV3LmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCAyOWEzZjllLi4y
NmE2Y2JhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjQzLDYgKzI0MywxMCBAQCBw
dWJsaWM6CiAgICAgLy8gdGhlaXIgbGlua3MuCiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBy
ZXNldFZpc2l0ZWRMaW5rU3RhdGUoKTsKIAorICAgIC8vIFNjcm9sbGJhciBjb2xvcnMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHZpcnR1
YWwgdm9pZCBzZXRTY3JvbGxiYXJDb2xvcnModW5zaWduZWQgaW5hY3RpdmVfY29sb3IsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBhY3RpdmVfY29sb3IsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB0cmFja19jb2xvcikg
PSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgfldlYlZpZXcoKSB7fQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAppbmRleCA3OTE0YTllLi4yMTQ4MDQ4IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcApAQCAtOTcsNiArOTcsOSBAQAogI2luY2x1ZGUgIktleWJvYXJkQ29kZXNXaW4u
aCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZUNocm9taXVtV2luLmgiCiAjZWxzZQorI2lmIFBMQVRG
T1JNKExJTlVYKQorI2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIgorI2VuZGlm
CiAjaW5jbHVkZSAiS2V5Ym9hcmRDb2Rlc1Bvc2l4LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUu
aCIKICNlbmRpZgpAQCAtMTYzNSw2ICsxNjM4LDE2IEBAIGJvb2wgV2ViVmlld0ltcGw6OmlzQWN0
aXZlKCkgY29uc3QKICAgICByZXR1cm4gKHBhZ2UoKSAmJiBwYWdlKCktPmZvY3VzQ29udHJvbGxl
cigpKSA/IHBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCktPmlzQWN0aXZlKCkgOiBmYWxzZTsKIH0K
IAordm9pZCBXZWJWaWV3SW1wbDo6c2V0U2Nyb2xsYmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZl
X2NvbG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFj
dGl2ZV9jb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCB0cmFja19jb2xvcikgeworI2lmIFBMQVRGT1JNKExJTlVYKQorICAgIFJlbmRlclRoZW1lQ2hy
b21pdW1MaW51eDo6c2V0U2Nyb2xsYmFyQ29sb3JzKGluYWN0aXZlX2NvbG9yLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZV9jb2xvciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja19jb2xv
cik7CisjZW5kaWYKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ29tbWl0TG9hZChib29sKiBp
c05ld05hdmlnYXRpb24pCiB7CiAgICAgaWYgKGlzTmV3TmF2aWdhdGlvbikKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaAppbmRleCA5NjIyN2UzLi40MDhlMmMwIDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oCkBAIC0xNTUsNiArMTU1LDkgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJW
ZWN0b3I8V2ViU3RyaW5nPiYgc3VnZ2VzdGlvbnMsCiAgICAgICAgIGludCBkZWZhdWx0U3VnZ2Vz
dGlvbkluZGV4KTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZUF1dG9maWxsUG9wdXAoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsYmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlX2NvbG9yLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYWN0aXZlX2NvbG9y
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdHJhY2tfY29s
b3IpOwogCiAgICAgLy8gV2ViVmlld0ltcGwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44123</attachid>
            <date>2009-12-01 18:39:48 -0800</date>
            <delta_ts>2009-12-01 18:41:06 -0800</delta_ts>
            <desc>patch with fixed tabs and caps</desc>
            <filename>bug-32048-20091201183908.patch</filename>
            <type>text/plain</type>
            <size>12275</size>
            <attacher name="Evan Martin">evan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWM0NDI1My4uMTRlYzMwYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAwOS0xMi0wMSAgRXZhbiBNYXJ0aW4g
IDxldmFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDaHJvbWl1bTogdGhlbWUgc2Nyb2xsYmFycyB0byBtYXRjaCBHVEsgdGhl
bWUuCisgICAgICAgIEFkZCBmdW5jdGlvbnMgdG8gUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4IHRv
IGNoYW5nZSB0aGUgc2Nyb2xsYmFyCisgICAgICAgIGNvbG9yLgorCisgICAgICAgIFNpbmNlIHRo
ZSBjaGFuZ2UgaXMgdG8gdGhlIENocm9taXVtIFdlYktpdCBBUEkgbGF5ZXIsIHRlc3Rpbmcgd2ls
bAorICAgICAgICBiZSBpbiBDaHJvbWl1bSdzIHRlc3Qgc2hlbGwuCisgICAgICAgIGh0dHA6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMDQ4CisKKyAgICAgICAgUGF0Y2ggZnJv
bSBNYXJrdXMgR3V0c2Noa2UgPG1hcmt1c0BjaHJvbWl1bS5vcmc+LgorCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNhdHVyYXRlQW5kQnJpZ2h0ZW4pOgorICAgICAgICAoV2ViQ29yZTo6b3V0bGlu
ZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6
cGFpbnRUcmFja1BpZWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21p
dW1MaW51eDo6cGFpbnRUaHVtYik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1MaW51eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGlu
dXg6OnNldFNjcm9sbGJhckNvbG9ycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1MaW51eC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4Ojp0aHVtYkluYWN0aXZlQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVD
aHJvbWl1bUxpbnV4Ojp0aHVtYkFjdGl2ZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lQ2hyb21pdW1MaW51eDo6dHJhY2tDb2xvcik6CisKIDIwMDktMTEtMjggIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2Vpbmln
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNo
cm9taXVtTGludXguY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVt
ZUNocm9taXVtTGludXguY3BwCmluZGV4IDY0ZjU4YzQuLmMyYzllNDYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51
eC5jcHAKQEAgLTMzLDYgKzMzLDggQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIgogI2luY2x1ZGUgIlNj
cm9sbGJhci5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAKQEAgLTczLDYg
Kzc1LDc0IEBAIHN0YXRpYyB2b2lkIGRyYXdCb3goU2tDYW52YXMqIGNhbnZhcywgY29uc3QgSW50
UmVjdCYgcmVjdCwgY29uc3QgU2tQYWludCYgcGFpbnQpCiAgICAgZHJhd1ZlcnRMaW5lKGNhbnZh
cywgcmVjdC54KCksIHJlY3QueSgpLCBib3R0b20sIHBhaW50KTsKIH0KIAorc3RhdGljIFNrQ29s
b3Igc2F0dXJhdGVBbmRCcmlnaHRlbihTa1NjYWxhciogaHN2LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTa1NjYWxhciBzYXR1cmF0ZUFtb3VudCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU2tTY2FsYXIgYnJpZ2h0ZW5BbW91bnQpCit7CisgICAgU2tT
Y2FsYXIgY29sb3JbM107CisgICAgY29sb3JbMF0gPSBoc3ZbMF07CisKKyAgICBjb2xvclsxXSA9
IGhzdlsxXSArIHNhdHVyYXRlQW1vdW50OworICAgIGlmIChjb2xvclsxXSA+IDEuMCkKKyAgICAg
ICAgY29sb3JbMV0gPSAxLjA7CisgICAgZWxzZSBpZiAoY29sb3JbMV0gPCAwLjApCisgICAgICAg
IGNvbG9yWzFdID0gMC4wOworCisgICAgY29sb3JbMl0gPSBoc3ZbMl0gKyBicmlnaHRlbkFtb3Vu
dDsKKyAgICBpZiAoY29sb3JbMl0gPiAxLjApCisgICAgICAgIGNvbG9yWzJdID0gMS4wOworICAg
IGVsc2UgaWYgKGNvbG9yWzJdIDwgMC4wKQorICAgICAgICBjb2xvclsyXSA9IDAuMDsKKworICAg
IHJldHVybiBTa0hTVlRvQ29sb3IoY29sb3IpOworfQorCitzdGF0aWMgU2tDb2xvciBvdXRsaW5l
Q29sb3IoU2tTY2FsYXIqIGhzdjEsIFNrU2NhbGFyKiBoc3YyKSB7CisgICAgLy8gR1RLIFRoZW1l
IGVuZ2luZXMgaGF2ZSB3YXkgdG9vIG11Y2ggY29udHJvbCBvdmVyIHRoZSBsYXlvdXQgb2YKKyAg
ICAvLyB0aGUgc2Nyb2xsYmFyLiBXZSBtaWdodCBiZSBhYmxlIHRvIG1vcmUgY2xvc2VseSBhcHBy
b3hpbWF0ZSBpdHMKKyAgICAvLyBsb29rLWFuZC1mZWVsLCBpZiB3ZSBzZW50IHdob2xlIGltYWdl
cyBpbnN0ZWFkIG9mIGp1c3QgY29sb3JzCisgICAgLy8gZnJvbSB0aGUgYnJvd3NlciB0byB0aGUg
cmVuZGVyZXIuIEJ1dCBldmVuIHRoZW4sIHNvbWUgdGhlbWVzCisgICAgLy8gd291bGQganVzdCBi
cmVhay4KKyAgICAvLworICAgIC8vIFNvLCBpbnN0ZWFkLCB3ZSBkb24ndCBldmVuIHRyeSB0byAx
MDAlIHJlcGxpY2F0ZSB0aGUgbG9vayBvZgorICAgIC8vIHRoZSBuYXRpdmUgc2Nyb2xsYmFyLiBX
ZSByZW5kZXIgb3VyIG93biB2ZXJzaW9uLCBidXQgd2UgbWFrZQorICAgIC8vIHN1cmUgdG8gcGlj
ayBjb2xvcnMgdGhhdCBibGVuZCBpbiBuaWNlbHkgd2l0aCB0aGUgc3lzdGVtIEdUSworICAgIC8v
IHRoZW1lLiBJbiBtb3N0IGNhc2VzLCB3ZSBjYW4ganVzdCBzYW1wbGUgYSBjb3VwbGUgb2YgcGl4
ZWxzCisgICAgLy8gZnJvbSB0aGUgc3lzdGVtIHNjcm9sbGJhciBhbmQgdXNlIHRob3NlIGNvbG9y
cyB0byBkcmF3IG91cgorICAgIC8vIHNjcm9sbGJhci4KKyAgICAvLworICAgIC8vIFRoaXMgd29y
a3MgZmluZSBmb3IgdGhlIHRyYWNrIGNvbG9yIGFuZCB0aGUgb3ZlcmFsbCB0aHVtYgorICAgIC8v
IGNvbG9yLiBCdXQgaXQgZmFpbHMgc3BlY3RhY3VsYXJseSBmb3IgdGhlIG91dGxpbmUgY29sb3Ig
dXNlZAorICAgIC8vIGFyb3VuZCB0aGUgdGh1bWIgcGllY2UuICBOb3QgYWxsIHRoZW1lcyBoYXZl
IGEgY2xlYXJseSBkZWZpbmVkCisgICAgLy8gb3V0bGluZS4gRm9yIHNvbWUgb2YgdGhlbSBpdCBp
cyBwYXJ0aWFsbHkgdHJhbnNwYXJlbnQsIGFuZCBmb3IKKyAgICAvLyBvdGhlcnMgdGhlIHRoaWNr
bmVzcyBpcyB2ZXJ5IHVucHJlZGljdGFibGUuCisgICAgLy8KKyAgICAvLyBTbywgaW5zdGVhZCBv
ZiB0cnlpbmcgdG8gYXBwcm94aW1hdGUgdGhlIHN5c3RlbSB0aGVtZSwgd2UKKyAgICAvLyBpbnN0
ZWFkIHRyeSB0byBjb21wdXRlIGEgcmVhc29uYWJsZSBsb29raW5nIGNob2ljZSBiYXNlZCBvbiB0
aGUKKyAgICAvLyBrbm93biBjb2xvciBvZiB0aGUgdHJhY2sgYW5kIHRoZSB0aHVtYiBwaWVjZS4g
VGhpcyBpcyBkaWZmaWN1bHQKKyAgICAvLyB3aGVuIHRyeWluZyB0byBkZWFsIGJvdGggd2l0aCBo
aWdoLSBhbmQgbG93LWNvbnRyYXN0IHRoZW1lcywKKyAgICAvLyBhbmQgYm90aCB3aXRoIHBvc2l0
aXZlIGFuZCBpbnZlcnRlZCB0aGVtZXMuCisgICAgLy8KKyAgICAvLyBUaGUgZm9sbG93aW5nIGNv
ZGUgaGFzIGJlZW4gdGVzdGVkIHRvIGxvb2sgT0sgd2l0aCBhbGwgb2YgdGhlCisgICAgLy8gZGVm
YXVsdCBHVEsgdGhlbWVzLgorICAgIFNrU2NhbGFyIG1pbl9kaWZmID0gKGhzdjFbMV0gKyBoc3Yy
WzFdKSoxLjI7CisgICAgaWYgKG1pbl9kaWZmIDwgMC4yKQorICAgICAgICBtaW5fZGlmZiA9IDAu
MjsKKyAgICBlbHNlIGlmIChtaW5fZGlmZiA+IDAuNSkKKyAgICAgICAgbWluX2RpZmYgPSAwLjU7
CisKKyAgICBTa1NjYWxhciBkaWZmID0gZmFicyhoc3YxWzJdIC0gaHN2MlsyXSkvMjsKKyAgICBp
ZiAoZGlmZiA8IG1pbl9kaWZmKQorICAgICAgICBkaWZmID0gbWluX2RpZmY7CisgICAgZWxzZSBp
ZiAoZGlmZiA+IDAuNSkKKyAgICAgICAgZGlmZiA9IDAuNTsKKworICAgIGlmIChoc3YxWzJdICsg
aHN2MlsyXSA+IDEuMCkKKyAgICAgICAgZGlmZiA9IC1kaWZmOworCisgICAgcmV0dXJuIHNhdHVy
YXRlQW5kQnJpZ2h0ZW4oaHN2MiwgLTAuMiwgZGlmZik7Cit9CisKIEludFJlY3QgU2Nyb2xsYmFy
VGhlbWVDaHJvbWl1bTo6dHJhY2tSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBib29sKQogewog
ICAgIEludFNpemUgYnMgPSBidXR0b25TaXplKHNjcm9sbGJhcik7CkBAIC04OSwxMCArMTU5LDE2
IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRyYWNrUGllY2UoR3Jh
cGhpY3NDb250ZXh0KiBnYywgU2Nyb2xsYmFyCiAgICAgU2tJUmVjdCBza3JlY3Q7CiAKICAgICBz
a3JlY3Quc2V0KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC54KCkgKyByZWN0LndpZHRoKCksIHJl
Y3QueSgpICsgcmVjdC5oZWlnaHQoKSk7Ci0gICAgcGFpbnQuc2V0QVJHQigweGZmLCAweGUzLCAw
eGRkLCAweGQ4KTsKKyAgICBTa1NjYWxhciB0cmFja19oc3ZbM107CisgICAgU2tDb2xvclRvSFNW
KFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6dHJhY2tDb2xvcigpLCB0cmFja19oc3YpOworICAg
IHBhaW50LnNldENvbG9yKHNhdHVyYXRlQW5kQnJpZ2h0ZW4odHJhY2tfaHN2LCAwLCAwKSk7CiAg
ICAgY2FudmFzLT5kcmF3SVJlY3Qoc2tyZWN0LCBwYWludCk7CiAKLSAgICBwYWludC5zZXRBUkdC
KDB4ZmYsIDB4YzUsIDB4YmEsIDB4YjApOworICAgIFNrU2NhbGFyIHRodW1iX2hzdlszXTsKKyAg
ICBTa0NvbG9yVG9IU1YoUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Ojp0aHVtYkluYWN0aXZlQ29s
b3IoKSwKKyAgICAgICAgICAgICAgICAgdGh1bWJfaHN2KTsKKworICAgIHBhaW50LnNldENvbG9y
KG91dGxpbmVDb2xvcih0cmFja19oc3YsIHRodW1iX2hzdikpOwogICAgIGRyYXdCb3goY2FudmFz
LCByZWN0LCBwYWludCk7CiB9CiAKQEAgLTEwOSwxMSArMTg1LDE0IEBAIHZvaWQgU2Nyb2xsYmFy
VGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRodW1iKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9s
bGJhciogc2NyCiAgICAgY29uc3QgYm9vbCB2ZXJ0aWNhbCA9IHNjcm9sbGJhci0+b3JpZW50YXRp
b24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcjsKICAgICBTa0NhbnZhcyogY29uc3QgY2FudmFzID0g
Z2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKIAorICAgIFNrU2NhbGFyIHRodW1iWzNd
OworICAgIFNrQ29sb3JUb0hTVihob3ZlcmVkCisgICAgICAgICAgICAgICAgID8gUmVuZGVyVGhl
bWVDaHJvbWl1bUxpbnV4Ojp0aHVtYkFjdGl2ZUNvbG9yKCkKKyAgICAgICAgICAgICAgICAgOiBS
ZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnRodW1iSW5hY3RpdmVDb2xvcigpLAorICAgICAgICAg
ICAgICAgICB0aHVtYik7CisKICAgICBTa1BhaW50IHBhaW50OwotICAgIGlmIChob3ZlcmVkKQot
ICAgICAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYpOwotICAgIGVsc2UK
LSAgICAgICAgcGFpbnQuc2V0QVJHQigweGZmLCAweGY0LCAweGYyLCAweGVmKTsKKyAgICBwYWlu
dC5zZXRDb2xvcihzYXR1cmF0ZUFuZEJyaWdodGVuKHRodW1iLCAwLCAwLjAyKSk7CiAKICAgICBT
a0lSZWN0IHNrcmVjdDsKICAgICBpZiAodmVydGljYWwpCkBAIC0xMjMsMTAgKzIwMiw3IEBAIHZv
aWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRodW1iKEdyYXBoaWNzQ29udGV4
dCogZ2MsIFNjcm9sbGJhciogc2NyCiAKICAgICBjYW52YXMtPmRyYXdJUmVjdChza3JlY3QsIHBh
aW50KTsKIAotICAgIGlmIChob3ZlcmVkKQotICAgICAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4
ZjQsIDB4ZjIsIDB4ZWYpOwotICAgIGVsc2UKLSAgICAgICAgcGFpbnQuc2V0QVJHQigweGZmLCAw
eGVhLCAweGU1LCAweGUwKTsKKyAgICBwYWludC5zZXRDb2xvcihzYXR1cmF0ZUFuZEJyaWdodGVu
KHRodW1iLCAwLCAtMC4wMikpOwogCiAgICAgaWYgKHZlcnRpY2FsKQogICAgICAgICBza3JlY3Qu
c2V0KG1pZHggKyAxLCByZWN0LnkoKSwgcmVjdC54KCkgKyByZWN0LndpZHRoKCksIHJlY3QueSgp
ICsgcmVjdC5oZWlnaHQoKSk7CkBAIC0xMzUsMTEgKzIxMSwxMiBAQCB2b2lkIFNjcm9sbGJhclRo
ZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRUaHVtYihHcmFwaGljc0NvbnRleHQqIGdjLCBTY3JvbGxi
YXIqIHNjcgogCiAgICAgY2FudmFzLT5kcmF3SVJlY3Qoc2tyZWN0LCBwYWludCk7CiAKLSAgICBw
YWludC5zZXRBUkdCKDB4ZmYsIDB4OWQsIDB4OTYsIDB4OGUpOworICAgIFNrU2NhbGFyIHRyYWNr
WzNdOworICAgIFNrQ29sb3JUb0hTVihSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnRyYWNrQ29s
b3IoKSwgdHJhY2spOworICAgIHBhaW50LnNldENvbG9yKG91dGxpbmVDb2xvcih0cmFjaywgdGh1
bWIpKTsKICAgICBkcmF3Qm94KGNhbnZhcywgcmVjdCwgcGFpbnQpOwogCiAgICAgaWYgKHJlY3Qu
aGVpZ2h0KCkgPiAxMCAmJiByZWN0LndpZHRoKCkgPiAxMCkgewotICAgICAgICBwYWludC5zZXRB
UkdCKDB4ZmYsIDB4OWQsIDB4OTYsIDB4OGUpOwogICAgICAgICBjb25zdCBpbnQgZ3JpcHB5SGFs
ZldpZHRoID0gMjsKICAgICAgICAgY29uc3QgaW50IGludGVyR3JpcHB5T2Zmc2V0ID0gMzsKICAg
ICAgICAgaWYgKHZlcnRpY2FsKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtTGludXguY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bUxpbnV4LmNwcAppbmRleCA5MDQ4Y2UzLi5jY2QzODVjIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguY3BwCisrKyBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKQEAgLTMyLDYgKzMyLDEwIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordW5zaWduZWQgUmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4OjptX3RodW1iSW5hY3RpdmVDb2xvciA9IDA7Cit1bnNpZ25lZCBSZW5kZXJUaGVtZUNocm9t
aXVtTGludXg6Om1fdGh1bWJBY3RpdmVDb2xvciA9IDA7Cit1bnNpZ25lZCBSZW5kZXJUaGVtZUNo
cm9taXVtTGludXg6Om1fdHJhY2tDb2xvciA9IDA7CisKIFBhc3NSZWZQdHI8UmVuZGVyVGhlbWU+
IFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6Y3JlYXRlKCkKIHsKICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eCgpKTsKQEAgLTEyMiw0ICsxMjYsMTIgQEAg
ZG91YmxlIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6Y2FyZXRCbGlua0ludGVydmFsSW50ZXJu
YWwoKSBjb25zdAogICAgIHJldHVybiBtX2NhcmV0QmxpbmtJbnRlcnZhbDsKIH0KIAordm9pZCBS
ZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnNldFNjcm9sbGJhckNvbG9ycygKKyAgICBTa0NvbG9y
IGluYWN0aXZlX2NvbG9yLCBTa0NvbG9yIGFjdGl2ZV9jb2xvciwgU2tDb2xvciB0cmFja19jb2xv
cikKK3sKKyAgICBtX3RodW1iSW5hY3RpdmVDb2xvciA9IGluYWN0aXZlX2NvbG9yOworICAgIG1f
dGh1bWJBY3RpdmVDb2xvciA9IGFjdGl2ZV9jb2xvcjsKKyAgICBtX3RyYWNrQ29sb3IgPSB0cmFj
a19jb2xvcjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmggYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaAppbmRleCBlMTM3YWQ1Li44NzM2YjBkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaApAQCAtNTQsNiAr
NTQsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldENhcmV0QmxpbmtJ
bnRlcnZhbChkb3VibGUgaW50ZXJ2YWwpOwogICAgICAgICB2aXJ0dWFsIGRvdWJsZSBjYXJldEJs
aW5rSW50ZXJ2YWxJbnRlcm5hbCgpIGNvbnN0OwogCisgICAgICAgIHN0YXRpYyB2b2lkIHNldFNj
cm9sbGJhckNvbG9ycyh1bnNpZ25lZCBpbmFjdGl2ZV9jb2xvciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFjdGl2ZV9jb2xvciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHRyYWNrX2NvbG9yKTsKKyAgICAg
ICAgc3RhdGljIHVuc2lnbmVkIHRodW1iSW5hY3RpdmVDb2xvcigpIHsgcmV0dXJuIG1fdGh1bWJJ
bmFjdGl2ZUNvbG9yOyB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCB0aHVtYkFjdGl2ZUNvbG9y
KCkgeyByZXR1cm4gbV90aHVtYkFjdGl2ZUNvbG9yOyB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25l
ZCB0cmFja0NvbG9yKCkgeyByZXR1cm4gbV90cmFja0NvbG9yOyB9CisKICAgICBwcml2YXRlOgog
ICAgICAgICBSZW5kZXJUaGVtZUNocm9taXVtTGludXgoKTsKICAgICAgICAgdmlydHVhbCB+UmVu
ZGVyVGhlbWVDaHJvbWl1bUxpbnV4KCk7CkBAIC02Miw2ICs2OSwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0NvbnRyb2xUaW50cygpIGNvbnN0
OwogCiAgICAgICAgIGRvdWJsZSBtX2NhcmV0QmxpbmtJbnRlcnZhbDsKKworICAgICAgICBzdGF0
aWMgdW5zaWduZWQgbV90aHVtYkluYWN0aXZlQ29sb3I7CisgICAgICAgIHN0YXRpYyB1bnNpZ25l
ZCBtX3RodW1iQWN0aXZlQ29sb3I7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBtX3RyYWNrQ29s
b3I7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGZj
M2EwYy4uMWNmMjUwOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMTItMDEg
IEV2YW4gTWFydGluICA8ZXZhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21pdW06IHRoZW1lIHNjcm9sbGJhcnMgdG8g
bWF0Y2ggR1RLIHRoZW1lLgorICAgICAgICBBZGQgQVBJIHRvIHNldCB0aGUgY29sb3JzLgorCisg
ICAgICAgIFNpbmNlIHRoZSBjaGFuZ2UgaXMgdG8gdGhlIENocm9taXVtIFdlYktpdCBBUEkgbGF5
ZXIsIHRlc3Rpbmcgd2lsbAorICAgICAgICBiZSBpbiBDaHJvbWl1bSdzIHRlc3Qgc2hlbGwuCisg
ICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMDQ4CisKKyAg
ICAgICAgUGF0Y2ggZnJvbSBNYXJrdXMgR3V0c2Noa2UgPG1hcmt1c0BjaHJvbWl1bS5vcmc+Lgor
CisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0U2Nyb2xsYmFyQ29sb3JzKToK
KyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAwOS0xMS0yNyAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBG
ZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCAyOWEzZjllLi4yNmE2Y2JhIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjQzLDYgKzI0MywxMCBAQCBwdWJsaWM6CiAg
ICAgLy8gdGhlaXIgbGlua3MuCiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCByZXNldFZpc2l0
ZWRMaW5rU3RhdGUoKTsKIAorICAgIC8vIFNjcm9sbGJhciBjb2xvcnMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHZpcnR1YWwgdm9pZCBz
ZXRTY3JvbGxiYXJDb2xvcnModW5zaWduZWQgaW5hY3RpdmVfY29sb3IsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBhY3RpdmVfY29sb3IsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB0cmFja19jb2xvcikgPSAwOwogCiBw
cm90ZWN0ZWQ6CiAgICAgfldlYlZpZXcoKSB7fQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cAppbmRleCA3OTE0YTllLi4yMTQ4MDQ4IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cApAQCAtOTcsNiArOTcsOSBAQAogI2luY2x1ZGUgIktleWJvYXJkQ29kZXNXaW4uaCIKICNpbmNs
dWRlICJSZW5kZXJUaGVtZUNocm9taXVtV2luLmgiCiAjZWxzZQorI2lmIFBMQVRGT1JNKExJTlVY
KQorI2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIgorI2VuZGlmCiAjaW5jbHVk
ZSAiS2V5Ym9hcmRDb2Rlc1Bvc2l4LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNlbmRp
ZgpAQCAtMTYzNSw2ICsxNjM4LDE2IEBAIGJvb2wgV2ViVmlld0ltcGw6OmlzQWN0aXZlKCkgY29u
c3QKICAgICByZXR1cm4gKHBhZ2UoKSAmJiBwYWdlKCktPmZvY3VzQ29udHJvbGxlcigpKSA/IHBh
Z2UoKS0+Zm9jdXNDb250cm9sbGVyKCktPmlzQWN0aXZlKCkgOiBmYWxzZTsKIH0KIAordm9pZCBX
ZWJWaWV3SW1wbDo6c2V0U2Nyb2xsYmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlX2NvbG9yLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFjdGl2ZV9jb2xv
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB0cmFja19j
b2xvcikgeworI2lmIFBMQVRGT1JNKExJTlVYKQorICAgIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51
eDo6c2V0U2Nyb2xsYmFyQ29sb3JzKGluYWN0aXZlX2NvbG9yLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZV9jb2xvciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja19jb2xvcik7CisjZW5k
aWYKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ29tbWl0TG9hZChib29sKiBpc05ld05hdmln
YXRpb24pCiB7CiAgICAgaWYgKGlzTmV3TmF2aWdhdGlvbikKZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaAppbmRleCA5NjIyN2UzLi40MDhlMmMwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
CkBAIC0xNTUsNiArMTU1LDkgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2Vi
U3RyaW5nPiYgc3VnZ2VzdGlvbnMsCiAgICAgICAgIGludCBkZWZhdWx0U3VnZ2VzdGlvbkluZGV4
KTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZUF1dG9maWxsUG9wdXAoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0U2Nyb2xsYmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlX2NvbG9yLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYWN0aXZlX2NvbG9yLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdHJhY2tfY29sb3IpOwogCiAg
ICAgLy8gV2ViVmlld0ltcGwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44124</attachid>
            <date>2009-12-01 18:41:11 -0800</date>
            <delta_ts>2009-12-01 18:46:37 -0800</delta_ts>
            <desc>patch with fixed tabs and caps</desc>
            <filename>bug-32048-20091201184031.patch</filename>
            <type>text/plain</type>
            <size>12263</size>
            <attacher name="Evan Martin">evan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWM0NDI1My4uMTRlYzMwYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAwOS0xMi0wMSAgRXZhbiBNYXJ0aW4g
IDxldmFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDaHJvbWl1bTogdGhlbWUgc2Nyb2xsYmFycyB0byBtYXRjaCBHVEsgdGhl
bWUuCisgICAgICAgIEFkZCBmdW5jdGlvbnMgdG8gUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4IHRv
IGNoYW5nZSB0aGUgc2Nyb2xsYmFyCisgICAgICAgIGNvbG9yLgorCisgICAgICAgIFNpbmNlIHRo
ZSBjaGFuZ2UgaXMgdG8gdGhlIENocm9taXVtIFdlYktpdCBBUEkgbGF5ZXIsIHRlc3Rpbmcgd2ls
bAorICAgICAgICBiZSBpbiBDaHJvbWl1bSdzIHRlc3Qgc2hlbGwuCisgICAgICAgIGh0dHA6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMDQ4CisKKyAgICAgICAgUGF0Y2ggZnJv
bSBNYXJrdXMgR3V0c2Noa2UgPG1hcmt1c0BjaHJvbWl1bS5vcmc+LgorCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNhdHVyYXRlQW5kQnJpZ2h0ZW4pOgorICAgICAgICAoV2ViQ29yZTo6b3V0bGlu
ZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6
cGFpbnRUcmFja1BpZWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21p
dW1MaW51eDo6cGFpbnRUaHVtYik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1MaW51eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGlu
dXg6OnNldFNjcm9sbGJhckNvbG9ycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1MaW51eC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4Ojp0aHVtYkluYWN0aXZlQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVD
aHJvbWl1bUxpbnV4Ojp0aHVtYkFjdGl2ZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lQ2hyb21pdW1MaW51eDo6dHJhY2tDb2xvcik6CisKIDIwMDktMTEtMjggIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2Vpbmln
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNo
cm9taXVtTGludXguY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVt
ZUNocm9taXVtTGludXguY3BwCmluZGV4IDY0ZjU4YzQuLmMyYzllNDYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51
eC5jcHAKQEAgLTMzLDYgKzMzLDggQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIgogI2luY2x1ZGUgIlNj
cm9sbGJhci5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAKQEAgLTczLDYg
Kzc1LDc0IEBAIHN0YXRpYyB2b2lkIGRyYXdCb3goU2tDYW52YXMqIGNhbnZhcywgY29uc3QgSW50
UmVjdCYgcmVjdCwgY29uc3QgU2tQYWludCYgcGFpbnQpCiAgICAgZHJhd1ZlcnRMaW5lKGNhbnZh
cywgcmVjdC54KCksIHJlY3QueSgpLCBib3R0b20sIHBhaW50KTsKIH0KIAorc3RhdGljIFNrQ29s
b3Igc2F0dXJhdGVBbmRCcmlnaHRlbihTa1NjYWxhciogaHN2LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTa1NjYWxhciBzYXR1cmF0ZUFtb3VudCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU2tTY2FsYXIgYnJpZ2h0ZW5BbW91bnQpCit7CisgICAgU2tT
Y2FsYXIgY29sb3JbM107CisgICAgY29sb3JbMF0gPSBoc3ZbMF07CisKKyAgICBjb2xvclsxXSA9
IGhzdlsxXSArIHNhdHVyYXRlQW1vdW50OworICAgIGlmIChjb2xvclsxXSA+IDEuMCkKKyAgICAg
ICAgY29sb3JbMV0gPSAxLjA7CisgICAgZWxzZSBpZiAoY29sb3JbMV0gPCAwLjApCisgICAgICAg
IGNvbG9yWzFdID0gMC4wOworCisgICAgY29sb3JbMl0gPSBoc3ZbMl0gKyBicmlnaHRlbkFtb3Vu
dDsKKyAgICBpZiAoY29sb3JbMl0gPiAxLjApCisgICAgICAgIGNvbG9yWzJdID0gMS4wOworICAg
IGVsc2UgaWYgKGNvbG9yWzJdIDwgMC4wKQorICAgICAgICBjb2xvclsyXSA9IDAuMDsKKworICAg
IHJldHVybiBTa0hTVlRvQ29sb3IoY29sb3IpOworfQorCitzdGF0aWMgU2tDb2xvciBvdXRsaW5l
Q29sb3IoU2tTY2FsYXIqIGhzdjEsIFNrU2NhbGFyKiBoc3YyKSB7CisgICAgLy8gR1RLIFRoZW1l
IGVuZ2luZXMgaGF2ZSB3YXkgdG9vIG11Y2ggY29udHJvbCBvdmVyIHRoZSBsYXlvdXQgb2YKKyAg
ICAvLyB0aGUgc2Nyb2xsYmFyLiBXZSBtaWdodCBiZSBhYmxlIHRvIG1vcmUgY2xvc2VseSBhcHBy
b3hpbWF0ZSBpdHMKKyAgICAvLyBsb29rLWFuZC1mZWVsLCBpZiB3ZSBzZW50IHdob2xlIGltYWdl
cyBpbnN0ZWFkIG9mIGp1c3QgY29sb3JzCisgICAgLy8gZnJvbSB0aGUgYnJvd3NlciB0byB0aGUg
cmVuZGVyZXIuIEJ1dCBldmVuIHRoZW4sIHNvbWUgdGhlbWVzCisgICAgLy8gd291bGQganVzdCBi
cmVhay4KKyAgICAvLworICAgIC8vIFNvLCBpbnN0ZWFkLCB3ZSBkb24ndCBldmVuIHRyeSB0byAx
MDAlIHJlcGxpY2F0ZSB0aGUgbG9vayBvZgorICAgIC8vIHRoZSBuYXRpdmUgc2Nyb2xsYmFyLiBX
ZSByZW5kZXIgb3VyIG93biB2ZXJzaW9uLCBidXQgd2UgbWFrZQorICAgIC8vIHN1cmUgdG8gcGlj
ayBjb2xvcnMgdGhhdCBibGVuZCBpbiBuaWNlbHkgd2l0aCB0aGUgc3lzdGVtIEdUSworICAgIC8v
IHRoZW1lLiBJbiBtb3N0IGNhc2VzLCB3ZSBjYW4ganVzdCBzYW1wbGUgYSBjb3VwbGUgb2YgcGl4
ZWxzCisgICAgLy8gZnJvbSB0aGUgc3lzdGVtIHNjcm9sbGJhciBhbmQgdXNlIHRob3NlIGNvbG9y
cyB0byBkcmF3IG91cgorICAgIC8vIHNjcm9sbGJhci4KKyAgICAvLworICAgIC8vIFRoaXMgd29y
a3MgZmluZSBmb3IgdGhlIHRyYWNrIGNvbG9yIGFuZCB0aGUgb3ZlcmFsbCB0aHVtYgorICAgIC8v
IGNvbG9yLiBCdXQgaXQgZmFpbHMgc3BlY3RhY3VsYXJseSBmb3IgdGhlIG91dGxpbmUgY29sb3Ig
dXNlZAorICAgIC8vIGFyb3VuZCB0aGUgdGh1bWIgcGllY2UuICBOb3QgYWxsIHRoZW1lcyBoYXZl
IGEgY2xlYXJseSBkZWZpbmVkCisgICAgLy8gb3V0bGluZS4gRm9yIHNvbWUgb2YgdGhlbSBpdCBp
cyBwYXJ0aWFsbHkgdHJhbnNwYXJlbnQsIGFuZCBmb3IKKyAgICAvLyBvdGhlcnMgdGhlIHRoaWNr
bmVzcyBpcyB2ZXJ5IHVucHJlZGljdGFibGUuCisgICAgLy8KKyAgICAvLyBTbywgaW5zdGVhZCBv
ZiB0cnlpbmcgdG8gYXBwcm94aW1hdGUgdGhlIHN5c3RlbSB0aGVtZSwgd2UKKyAgICAvLyBpbnN0
ZWFkIHRyeSB0byBjb21wdXRlIGEgcmVhc29uYWJsZSBsb29raW5nIGNob2ljZSBiYXNlZCBvbiB0
aGUKKyAgICAvLyBrbm93biBjb2xvciBvZiB0aGUgdHJhY2sgYW5kIHRoZSB0aHVtYiBwaWVjZS4g
VGhpcyBpcyBkaWZmaWN1bHQKKyAgICAvLyB3aGVuIHRyeWluZyB0byBkZWFsIGJvdGggd2l0aCBo
aWdoLSBhbmQgbG93LWNvbnRyYXN0IHRoZW1lcywKKyAgICAvLyBhbmQgYm90aCB3aXRoIHBvc2l0
aXZlIGFuZCBpbnZlcnRlZCB0aGVtZXMuCisgICAgLy8KKyAgICAvLyBUaGUgZm9sbG93aW5nIGNv
ZGUgaGFzIGJlZW4gdGVzdGVkIHRvIGxvb2sgT0sgd2l0aCBhbGwgb2YgdGhlCisgICAgLy8gZGVm
YXVsdCBHVEsgdGhlbWVzLgorICAgIFNrU2NhbGFyIG1pbl9kaWZmID0gKGhzdjFbMV0gKyBoc3Yy
WzFdKSoxLjI7CisgICAgaWYgKG1pbl9kaWZmIDwgMC4yKQorICAgICAgICBtaW5fZGlmZiA9IDAu
MjsKKyAgICBlbHNlIGlmIChtaW5fZGlmZiA+IDAuNSkKKyAgICAgICAgbWluX2RpZmYgPSAwLjU7
CisKKyAgICBTa1NjYWxhciBkaWZmID0gZmFicyhoc3YxWzJdIC0gaHN2MlsyXSkvMjsKKyAgICBp
ZiAoZGlmZiA8IG1pbl9kaWZmKQorICAgICAgICBkaWZmID0gbWluX2RpZmY7CisgICAgZWxzZSBp
ZiAoZGlmZiA+IDAuNSkKKyAgICAgICAgZGlmZiA9IDAuNTsKKworICAgIGlmIChoc3YxWzJdICsg
aHN2MlsyXSA+IDEuMCkKKyAgICAgICAgZGlmZiA9IC1kaWZmOworCisgICAgcmV0dXJuIHNhdHVy
YXRlQW5kQnJpZ2h0ZW4oaHN2MiwgLTAuMiwgZGlmZik7Cit9CisKIEludFJlY3QgU2Nyb2xsYmFy
VGhlbWVDaHJvbWl1bTo6dHJhY2tSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBib29sKQogewog
ICAgIEludFNpemUgYnMgPSBidXR0b25TaXplKHNjcm9sbGJhcik7CkBAIC04OSwxMCArMTU5LDE2
IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRyYWNrUGllY2UoR3Jh
cGhpY3NDb250ZXh0KiBnYywgU2Nyb2xsYmFyCiAgICAgU2tJUmVjdCBza3JlY3Q7CiAKICAgICBz
a3JlY3Quc2V0KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC54KCkgKyByZWN0LndpZHRoKCksIHJl
Y3QueSgpICsgcmVjdC5oZWlnaHQoKSk7Ci0gICAgcGFpbnQuc2V0QVJHQigweGZmLCAweGUzLCAw
eGRkLCAweGQ4KTsKKyAgICBTa1NjYWxhciB0cmFja19oc3ZbM107CisgICAgU2tDb2xvclRvSFNW
KFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6dHJhY2tDb2xvcigpLCB0cmFja19oc3YpOworICAg
IHBhaW50LnNldENvbG9yKHNhdHVyYXRlQW5kQnJpZ2h0ZW4odHJhY2tfaHN2LCAwLCAwKSk7CiAg
ICAgY2FudmFzLT5kcmF3SVJlY3Qoc2tyZWN0LCBwYWludCk7CiAKLSAgICBwYWludC5zZXRBUkdC
KDB4ZmYsIDB4YzUsIDB4YmEsIDB4YjApOworICAgIFNrU2NhbGFyIHRodW1iX2hzdlszXTsKKyAg
ICBTa0NvbG9yVG9IU1YoUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Ojp0aHVtYkluYWN0aXZlQ29s
b3IoKSwKKyAgICAgICAgICAgICAgICAgdGh1bWJfaHN2KTsKKworICAgIHBhaW50LnNldENvbG9y
KG91dGxpbmVDb2xvcih0cmFja19oc3YsIHRodW1iX2hzdikpOwogICAgIGRyYXdCb3goY2FudmFz
LCByZWN0LCBwYWludCk7CiB9CiAKQEAgLTEwOSwxMSArMTg1LDE0IEBAIHZvaWQgU2Nyb2xsYmFy
VGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRodW1iKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9s
bGJhciogc2NyCiAgICAgY29uc3QgYm9vbCB2ZXJ0aWNhbCA9IHNjcm9sbGJhci0+b3JpZW50YXRp
b24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcjsKICAgICBTa0NhbnZhcyogY29uc3QgY2FudmFzID0g
Z2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKIAorICAgIFNrU2NhbGFyIHRodW1iWzNd
OworICAgIFNrQ29sb3JUb0hTVihob3ZlcmVkCisgICAgICAgICAgICAgICAgID8gUmVuZGVyVGhl
bWVDaHJvbWl1bUxpbnV4Ojp0aHVtYkFjdGl2ZUNvbG9yKCkKKyAgICAgICAgICAgICAgICAgOiBS
ZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnRodW1iSW5hY3RpdmVDb2xvcigpLAorICAgICAgICAg
ICAgICAgICB0aHVtYik7CisKICAgICBTa1BhaW50IHBhaW50OwotICAgIGlmIChob3ZlcmVkKQot
ICAgICAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYpOwotICAgIGVsc2UK
LSAgICAgICAgcGFpbnQuc2V0QVJHQigweGZmLCAweGY0LCAweGYyLCAweGVmKTsKKyAgICBwYWlu
dC5zZXRDb2xvcihzYXR1cmF0ZUFuZEJyaWdodGVuKHRodW1iLCAwLCAwLjAyKSk7CiAKICAgICBT
a0lSZWN0IHNrcmVjdDsKICAgICBpZiAodmVydGljYWwpCkBAIC0xMjMsMTAgKzIwMiw3IEBAIHZv
aWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRodW1iKEdyYXBoaWNzQ29udGV4
dCogZ2MsIFNjcm9sbGJhciogc2NyCiAKICAgICBjYW52YXMtPmRyYXdJUmVjdChza3JlY3QsIHBh
aW50KTsKIAotICAgIGlmIChob3ZlcmVkKQotICAgICAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4
ZjQsIDB4ZjIsIDB4ZWYpOwotICAgIGVsc2UKLSAgICAgICAgcGFpbnQuc2V0QVJHQigweGZmLCAw
eGVhLCAweGU1LCAweGUwKTsKKyAgICBwYWludC5zZXRDb2xvcihzYXR1cmF0ZUFuZEJyaWdodGVu
KHRodW1iLCAwLCAtMC4wMikpOwogCiAgICAgaWYgKHZlcnRpY2FsKQogICAgICAgICBza3JlY3Qu
c2V0KG1pZHggKyAxLCByZWN0LnkoKSwgcmVjdC54KCkgKyByZWN0LndpZHRoKCksIHJlY3QueSgp
ICsgcmVjdC5oZWlnaHQoKSk7CkBAIC0xMzUsMTEgKzIxMSwxMiBAQCB2b2lkIFNjcm9sbGJhclRo
ZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRUaHVtYihHcmFwaGljc0NvbnRleHQqIGdjLCBTY3JvbGxi
YXIqIHNjcgogCiAgICAgY2FudmFzLT5kcmF3SVJlY3Qoc2tyZWN0LCBwYWludCk7CiAKLSAgICBw
YWludC5zZXRBUkdCKDB4ZmYsIDB4OWQsIDB4OTYsIDB4OGUpOworICAgIFNrU2NhbGFyIHRyYWNr
WzNdOworICAgIFNrQ29sb3JUb0hTVihSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnRyYWNrQ29s
b3IoKSwgdHJhY2spOworICAgIHBhaW50LnNldENvbG9yKG91dGxpbmVDb2xvcih0cmFjaywgdGh1
bWIpKTsKICAgICBkcmF3Qm94KGNhbnZhcywgcmVjdCwgcGFpbnQpOwogCiAgICAgaWYgKHJlY3Qu
aGVpZ2h0KCkgPiAxMCAmJiByZWN0LndpZHRoKCkgPiAxMCkgewotICAgICAgICBwYWludC5zZXRB
UkdCKDB4ZmYsIDB4OWQsIDB4OTYsIDB4OGUpOwogICAgICAgICBjb25zdCBpbnQgZ3JpcHB5SGFs
ZldpZHRoID0gMjsKICAgICAgICAgY29uc3QgaW50IGludGVyR3JpcHB5T2Zmc2V0ID0gMzsKICAg
ICAgICAgaWYgKHZlcnRpY2FsKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtTGludXguY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bUxpbnV4LmNwcAppbmRleCA5MDQ4Y2UzLi5jY2QzODVjIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguY3BwCisrKyBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKQEAgLTMyLDYgKzMyLDEwIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordW5zaWduZWQgUmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4OjptX3RodW1iSW5hY3RpdmVDb2xvciA9IDA7Cit1bnNpZ25lZCBSZW5kZXJUaGVtZUNocm9t
aXVtTGludXg6Om1fdGh1bWJBY3RpdmVDb2xvciA9IDA7Cit1bnNpZ25lZCBSZW5kZXJUaGVtZUNo
cm9taXVtTGludXg6Om1fdHJhY2tDb2xvciA9IDA7CisKIFBhc3NSZWZQdHI8UmVuZGVyVGhlbWU+
IFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6Y3JlYXRlKCkKIHsKICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eCgpKTsKQEAgLTEyMiw0ICsxMjYsMTIgQEAg
ZG91YmxlIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6Y2FyZXRCbGlua0ludGVydmFsSW50ZXJu
YWwoKSBjb25zdAogICAgIHJldHVybiBtX2NhcmV0QmxpbmtJbnRlcnZhbDsKIH0KIAordm9pZCBS
ZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnNldFNjcm9sbGJhckNvbG9ycygKKyAgICBTa0NvbG9y
IGluYWN0aXZlX2NvbG9yLCBTa0NvbG9yIGFjdGl2ZV9jb2xvciwgU2tDb2xvciB0cmFja19jb2xv
cikKK3sKKyAgICBtX3RodW1iSW5hY3RpdmVDb2xvciA9IGluYWN0aXZlX2NvbG9yOworICAgIG1f
dGh1bWJBY3RpdmVDb2xvciA9IGFjdGl2ZV9jb2xvcjsKKyAgICBtX3RyYWNrQ29sb3IgPSB0cmFj
a19jb2xvcjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmggYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaAppbmRleCBlMTM3YWQ1Li44NzM2YjBkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaApAQCAtNTQsNiAr
NTQsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldENhcmV0QmxpbmtJ
bnRlcnZhbChkb3VibGUgaW50ZXJ2YWwpOwogICAgICAgICB2aXJ0dWFsIGRvdWJsZSBjYXJldEJs
aW5rSW50ZXJ2YWxJbnRlcm5hbCgpIGNvbnN0OwogCisgICAgICAgIHN0YXRpYyB2b2lkIHNldFNj
cm9sbGJhckNvbG9ycyh1bnNpZ25lZCBpbmFjdGl2ZV9jb2xvciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFjdGl2ZV9jb2xvciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHRyYWNrX2NvbG9yKTsKKyAgICAg
ICAgc3RhdGljIHVuc2lnbmVkIHRodW1iSW5hY3RpdmVDb2xvcigpIHsgcmV0dXJuIG1fdGh1bWJJ
bmFjdGl2ZUNvbG9yOyB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCB0aHVtYkFjdGl2ZUNvbG9y
KCkgeyByZXR1cm4gbV90aHVtYkFjdGl2ZUNvbG9yOyB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25l
ZCB0cmFja0NvbG9yKCkgeyByZXR1cm4gbV90cmFja0NvbG9yOyB9CisKICAgICBwcml2YXRlOgog
ICAgICAgICBSZW5kZXJUaGVtZUNocm9taXVtTGludXgoKTsKICAgICAgICAgdmlydHVhbCB+UmVu
ZGVyVGhlbWVDaHJvbWl1bUxpbnV4KCk7CkBAIC02Miw2ICs2OSwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0NvbnRyb2xUaW50cygpIGNvbnN0
OwogCiAgICAgICAgIGRvdWJsZSBtX2NhcmV0QmxpbmtJbnRlcnZhbDsKKworICAgICAgICBzdGF0
aWMgdW5zaWduZWQgbV90aHVtYkluYWN0aXZlQ29sb3I7CisgICAgICAgIHN0YXRpYyB1bnNpZ25l
ZCBtX3RodW1iQWN0aXZlQ29sb3I7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBtX3RyYWNrQ29s
b3I7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGZj
M2EwYy4uMWNmMjUwOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMTItMDEg
IEV2YW4gTWFydGluICA8ZXZhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21pdW06IHRoZW1lIHNjcm9sbGJhcnMgdG8g
bWF0Y2ggR1RLIHRoZW1lLgorICAgICAgICBBZGQgQVBJIHRvIHNldCB0aGUgY29sb3JzLgorCisg
ICAgICAgIFNpbmNlIHRoZSBjaGFuZ2UgaXMgdG8gdGhlIENocm9taXVtIFdlYktpdCBBUEkgbGF5
ZXIsIHRlc3Rpbmcgd2lsbAorICAgICAgICBiZSBpbiBDaHJvbWl1bSdzIHRlc3Qgc2hlbGwuCisg
ICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMDQ4CisKKyAg
ICAgICAgUGF0Y2ggZnJvbSBNYXJrdXMgR3V0c2Noa2UgPG1hcmt1c0BjaHJvbWl1bS5vcmc+Lgor
CisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0U2Nyb2xsYmFyQ29sb3JzKToK
KyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAwOS0xMS0yNyAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBG
ZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCAyOWEzZjllLi5iMzJiOGNlIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjQzLDYgKzI0MywxMCBAQCBwdWJsaWM6CiAg
ICAgLy8gdGhlaXIgbGlua3MuCiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCByZXNldFZpc2l0
ZWRMaW5rU3RhdGUoKTsKIAorICAgIC8vIFNjcm9sbGJhciBjb2xvcnMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHZpcnR1YWwgdm9pZCBz
ZXRTY3JvbGxiYXJDb2xvcnModW5zaWduZWQgaW5hY3RpdmVDb2xvciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFjdGl2ZUNvbG9yLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdHJhY2tDb2xvcikgPSAwOwogCiBwcm90
ZWN0ZWQ6CiAgICAgfldlYlZpZXcoKSB7fQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApp
bmRleCA3OTE0YTllLi4wYzU2ODkxIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApA
QCAtOTcsNiArOTcsOSBAQAogI2luY2x1ZGUgIktleWJvYXJkQ29kZXNXaW4uaCIKICNpbmNsdWRl
ICJSZW5kZXJUaGVtZUNocm9taXVtV2luLmgiCiAjZWxzZQorI2lmIFBMQVRGT1JNKExJTlVYKQor
I2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIgorI2VuZGlmCiAjaW5jbHVkZSAi
S2V5Ym9hcmRDb2Rlc1Bvc2l4LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNlbmRpZgpA
QCAtMTYzNSw2ICsxNjM4LDE2IEBAIGJvb2wgV2ViVmlld0ltcGw6OmlzQWN0aXZlKCkgY29uc3QK
ICAgICByZXR1cm4gKHBhZ2UoKSAmJiBwYWdlKCktPmZvY3VzQ29udHJvbGxlcigpKSA/IHBhZ2Uo
KS0+Zm9jdXNDb250cm9sbGVyKCktPmlzQWN0aXZlKCkgOiBmYWxzZTsKIH0KIAordm9pZCBXZWJW
aWV3SW1wbDo6c2V0U2Nyb2xsYmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlQ29sb3IsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYWN0aXZlQ29sb3IsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdHJhY2tDb2xvcikg
eworI2lmIFBMQVRGT1JNKExJTlVYKQorICAgIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6c2V0
U2Nyb2xsYmFyQ29sb3JzKGluYWN0aXZlQ29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ29sb3IsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tDb2xvcik7CisjZW5kaWYKK30KKwog
dm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ29tbWl0TG9hZChib29sKiBpc05ld05hdmlnYXRpb24pCiB7
CiAgICAgaWYgKGlzTmV3TmF2aWdhdGlvbikKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRl
eCA5NjIyN2UzLi41NTdjOGI5IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0xNTUs
NiArMTU1LDkgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYg
c3VnZ2VzdGlvbnMsCiAgICAgICAgIGludCBkZWZhdWx0U3VnZ2VzdGlvbkluZGV4KTsKICAgICB2
aXJ0dWFsIHZvaWQgaGlkZUF1dG9maWxsUG9wdXAoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Ny
b2xsYmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlQ29sb3IsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBhY3RpdmVDb2xvciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHRyYWNrQ29sb3IpOwogCiAgICAgLy8gV2ViVmll
d0ltcGwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44125</attachid>
            <date>2009-12-01 18:46:42 -0800</date>
            <delta_ts>2009-12-02 12:30:15 -0800</delta_ts>
            <desc>patch with fixed tabs and caps</desc>
            <filename>bug-32048-20091201184602.patch</filename>
            <type>text/plain</type>
            <size>12268</size>
            <attacher name="Evan Martin">evan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWM0NDI1My4uMTRlYzMwYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAwOS0xMi0wMSAgRXZhbiBNYXJ0aW4g
IDxldmFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDaHJvbWl1bTogdGhlbWUgc2Nyb2xsYmFycyB0byBtYXRjaCBHVEsgdGhl
bWUuCisgICAgICAgIEFkZCBmdW5jdGlvbnMgdG8gUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4IHRv
IGNoYW5nZSB0aGUgc2Nyb2xsYmFyCisgICAgICAgIGNvbG9yLgorCisgICAgICAgIFNpbmNlIHRo
ZSBjaGFuZ2UgaXMgdG8gdGhlIENocm9taXVtIFdlYktpdCBBUEkgbGF5ZXIsIHRlc3Rpbmcgd2ls
bAorICAgICAgICBiZSBpbiBDaHJvbWl1bSdzIHRlc3Qgc2hlbGwuCisgICAgICAgIGh0dHA6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMDQ4CisKKyAgICAgICAgUGF0Y2ggZnJv
bSBNYXJrdXMgR3V0c2Noa2UgPG1hcmt1c0BjaHJvbWl1bS5vcmc+LgorCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNhdHVyYXRlQW5kQnJpZ2h0ZW4pOgorICAgICAgICAoV2ViQ29yZTo6b3V0bGlu
ZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6
cGFpbnRUcmFja1BpZWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21p
dW1MaW51eDo6cGFpbnRUaHVtYik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1MaW51eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGlu
dXg6OnNldFNjcm9sbGJhckNvbG9ycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1MaW51eC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4Ojp0aHVtYkluYWN0aXZlQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVD
aHJvbWl1bUxpbnV4Ojp0aHVtYkFjdGl2ZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lQ2hyb21pdW1MaW51eDo6dHJhY2tDb2xvcik6CisKIDIwMDktMTEtMjggIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2Vpbmln
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNo
cm9taXVtTGludXguY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVt
ZUNocm9taXVtTGludXguY3BwCmluZGV4IDY0ZjU4YzQuLjBmZTRhMDMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51
eC5jcHAKQEAgLTMzLDYgKzMzLDggQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIgogI2luY2x1ZGUgIlNj
cm9sbGJhci5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAKQEAgLTczLDYg
Kzc1LDc1IEBAIHN0YXRpYyB2b2lkIGRyYXdCb3goU2tDYW52YXMqIGNhbnZhcywgY29uc3QgSW50
UmVjdCYgcmVjdCwgY29uc3QgU2tQYWludCYgcGFpbnQpCiAgICAgZHJhd1ZlcnRMaW5lKGNhbnZh
cywgcmVjdC54KCksIHJlY3QueSgpLCBib3R0b20sIHBhaW50KTsKIH0KIAorc3RhdGljIFNrQ29s
b3Igc2F0dXJhdGVBbmRCcmlnaHRlbihTa1NjYWxhciogaHN2LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTa1NjYWxhciBzYXR1cmF0ZUFtb3VudCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU2tTY2FsYXIgYnJpZ2h0ZW5BbW91bnQpCit7CisgICAgU2tT
Y2FsYXIgY29sb3JbM107CisgICAgY29sb3JbMF0gPSBoc3ZbMF07CisKKyAgICBjb2xvclsxXSA9
IGhzdlsxXSArIHNhdHVyYXRlQW1vdW50OworICAgIGlmIChjb2xvclsxXSA+IDEuMCkKKyAgICAg
ICAgY29sb3JbMV0gPSAxLjA7CisgICAgZWxzZSBpZiAoY29sb3JbMV0gPCAwLjApCisgICAgICAg
IGNvbG9yWzFdID0gMC4wOworCisgICAgY29sb3JbMl0gPSBoc3ZbMl0gKyBicmlnaHRlbkFtb3Vu
dDsKKyAgICBpZiAoY29sb3JbMl0gPiAxLjApCisgICAgICAgIGNvbG9yWzJdID0gMS4wOworICAg
IGVsc2UgaWYgKGNvbG9yWzJdIDwgMC4wKQorICAgICAgICBjb2xvclsyXSA9IDAuMDsKKworICAg
IHJldHVybiBTa0hTVlRvQ29sb3IoY29sb3IpOworfQorCitzdGF0aWMgU2tDb2xvciBvdXRsaW5l
Q29sb3IoU2tTY2FsYXIqIGhzdjEsIFNrU2NhbGFyKiBoc3YyKQoreworICAgIC8vIEdUSyBUaGVt
ZSBlbmdpbmVzIGhhdmUgd2F5IHRvbyBtdWNoIGNvbnRyb2wgb3ZlciB0aGUgbGF5b3V0IG9mCisg
ICAgLy8gdGhlIHNjcm9sbGJhci4gV2UgbWlnaHQgYmUgYWJsZSB0byBtb3JlIGNsb3NlbHkgYXBw
cm94aW1hdGUgaXRzCisgICAgLy8gbG9vay1hbmQtZmVlbCwgaWYgd2Ugc2VudCB3aG9sZSBpbWFn
ZXMgaW5zdGVhZCBvZiBqdXN0IGNvbG9ycworICAgIC8vIGZyb20gdGhlIGJyb3dzZXIgdG8gdGhl
IHJlbmRlcmVyLiBCdXQgZXZlbiB0aGVuLCBzb21lIHRoZW1lcworICAgIC8vIHdvdWxkIGp1c3Qg
YnJlYWsuCisgICAgLy8KKyAgICAvLyBTbywgaW5zdGVhZCwgd2UgZG9uJ3QgZXZlbiB0cnkgdG8g
MTAwJSByZXBsaWNhdGUgdGhlIGxvb2sgb2YKKyAgICAvLyB0aGUgbmF0aXZlIHNjcm9sbGJhci4g
V2UgcmVuZGVyIG91ciBvd24gdmVyc2lvbiwgYnV0IHdlIG1ha2UKKyAgICAvLyBzdXJlIHRvIHBp
Y2sgY29sb3JzIHRoYXQgYmxlbmQgaW4gbmljZWx5IHdpdGggdGhlIHN5c3RlbSBHVEsKKyAgICAv
LyB0aGVtZS4gSW4gbW9zdCBjYXNlcywgd2UgY2FuIGp1c3Qgc2FtcGxlIGEgY291cGxlIG9mIHBp
eGVscworICAgIC8vIGZyb20gdGhlIHN5c3RlbSBzY3JvbGxiYXIgYW5kIHVzZSB0aG9zZSBjb2xv
cnMgdG8gZHJhdyBvdXIKKyAgICAvLyBzY3JvbGxiYXIuCisgICAgLy8KKyAgICAvLyBUaGlzIHdv
cmtzIGZpbmUgZm9yIHRoZSB0cmFjayBjb2xvciBhbmQgdGhlIG92ZXJhbGwgdGh1bWIKKyAgICAv
LyBjb2xvci4gQnV0IGl0IGZhaWxzIHNwZWN0YWN1bGFybHkgZm9yIHRoZSBvdXRsaW5lIGNvbG9y
IHVzZWQKKyAgICAvLyBhcm91bmQgdGhlIHRodW1iIHBpZWNlLiAgTm90IGFsbCB0aGVtZXMgaGF2
ZSBhIGNsZWFybHkgZGVmaW5lZAorICAgIC8vIG91dGxpbmUuIEZvciBzb21lIG9mIHRoZW0gaXQg
aXMgcGFydGlhbGx5IHRyYW5zcGFyZW50LCBhbmQgZm9yCisgICAgLy8gb3RoZXJzIHRoZSB0aGlj
a25lc3MgaXMgdmVyeSB1bnByZWRpY3RhYmxlLgorICAgIC8vCisgICAgLy8gU28sIGluc3RlYWQg
b2YgdHJ5aW5nIHRvIGFwcHJveGltYXRlIHRoZSBzeXN0ZW0gdGhlbWUsIHdlCisgICAgLy8gaW5z
dGVhZCB0cnkgdG8gY29tcHV0ZSBhIHJlYXNvbmFibGUgbG9va2luZyBjaG9pY2UgYmFzZWQgb24g
dGhlCisgICAgLy8ga25vd24gY29sb3Igb2YgdGhlIHRyYWNrIGFuZCB0aGUgdGh1bWIgcGllY2Uu
IFRoaXMgaXMgZGlmZmljdWx0CisgICAgLy8gd2hlbiB0cnlpbmcgdG8gZGVhbCBib3RoIHdpdGgg
aGlnaC0gYW5kIGxvdy1jb250cmFzdCB0aGVtZXMsCisgICAgLy8gYW5kIGJvdGggd2l0aCBwb3Np
dGl2ZSBhbmQgaW52ZXJ0ZWQgdGhlbWVzLgorICAgIC8vCisgICAgLy8gVGhlIGZvbGxvd2luZyBj
b2RlIGhhcyBiZWVuIHRlc3RlZCB0byBsb29rIE9LIHdpdGggYWxsIG9mIHRoZQorICAgIC8vIGRl
ZmF1bHQgR1RLIHRoZW1lcy4KKyAgICBTa1NjYWxhciBtaW5fZGlmZiA9IChoc3YxWzFdICsgaHN2
MlsxXSkgKiAxLjI7CisgICAgaWYgKG1pbl9kaWZmIDwgMC4yKQorICAgICAgICBtaW5fZGlmZiA9
IDAuMjsKKyAgICBlbHNlIGlmIChtaW5fZGlmZiA+IDAuNSkKKyAgICAgICAgbWluX2RpZmYgPSAw
LjU7CisKKyAgICBTa1NjYWxhciBkaWZmID0gZmFicyhoc3YxWzJdIC0gaHN2MlsyXSkgLyAyOwor
ICAgIGlmIChkaWZmIDwgbWluX2RpZmYpCisgICAgICAgIGRpZmYgPSBtaW5fZGlmZjsKKyAgICBl
bHNlIGlmIChkaWZmID4gMC41KQorICAgICAgICBkaWZmID0gMC41OworCisgICAgaWYgKGhzdjFb
Ml0gKyBoc3YyWzJdID4gMS4wKQorICAgICAgICBkaWZmID0gLWRpZmY7CisKKyAgICByZXR1cm4g
c2F0dXJhdGVBbmRCcmlnaHRlbihoc3YyLCAtMC4yLCBkaWZmKTsKK30KKwogSW50UmVjdCBTY3Jv
bGxiYXJUaGVtZUNocm9taXVtOjp0cmFja1JlY3QoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGJvb2wp
CiB7CiAgICAgSW50U2l6ZSBicyA9IGJ1dHRvblNpemUoc2Nyb2xsYmFyKTsKQEAgLTg5LDEwICsx
NjAsMTYgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50VHJhY2tQaWVj
ZShHcmFwaGljc0NvbnRleHQqIGdjLCBTY3JvbGxiYXIKICAgICBTa0lSZWN0IHNrcmVjdDsKIAog
ICAgIHNrcmVjdC5zZXQocmVjdC54KCksIHJlY3QueSgpLCByZWN0LngoKSArIHJlY3Qud2lkdGgo
KSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKTsKLSAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4
ZTMsIDB4ZGQsIDB4ZDgpOworICAgIFNrU2NhbGFyIHRyYWNrX2hzdlszXTsKKyAgICBTa0NvbG9y
VG9IU1YoUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Ojp0cmFja0NvbG9yKCksIHRyYWNrX2hzdik7
CisgICAgcGFpbnQuc2V0Q29sb3Ioc2F0dXJhdGVBbmRCcmlnaHRlbih0cmFja19oc3YsIDAsIDAp
KTsKICAgICBjYW52YXMtPmRyYXdJUmVjdChza3JlY3QsIHBhaW50KTsKIAotICAgIHBhaW50LnNl
dEFSR0IoMHhmZiwgMHhjNSwgMHhiYSwgMHhiMCk7CisgICAgU2tTY2FsYXIgdGh1bWJfaHN2WzNd
OworICAgIFNrQ29sb3JUb0hTVihSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnRodW1iSW5hY3Rp
dmVDb2xvcigpLAorICAgICAgICAgICAgICAgICB0aHVtYl9oc3YpOworCisgICAgcGFpbnQuc2V0
Q29sb3Iob3V0bGluZUNvbG9yKHRyYWNrX2hzdiwgdGh1bWJfaHN2KSk7CiAgICAgZHJhd0JveChj
YW52YXMsIHJlY3QsIHBhaW50KTsKIH0KIApAQCAtMTA5LDExICsxODYsMTQgQEAgdm9pZCBTY3Jv
bGxiYXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50VGh1bWIoR3JhcGhpY3NDb250ZXh0KiBnYywg
U2Nyb2xsYmFyKiBzY3IKICAgICBjb25zdCBib29sIHZlcnRpY2FsID0gc2Nyb2xsYmFyLT5vcmll
bnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyOwogICAgIFNrQ2FudmFzKiBjb25zdCBjYW52
YXMgPSBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpOwogCisgICAgU2tTY2FsYXIgdGh1
bWJbM107CisgICAgU2tDb2xvclRvSFNWKGhvdmVyZWQKKyAgICAgICAgICAgICAgICAgPyBSZW5k
ZXJUaGVtZUNocm9taXVtTGludXg6OnRodW1iQWN0aXZlQ29sb3IoKQorICAgICAgICAgICAgICAg
ICA6IFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6dGh1bWJJbmFjdGl2ZUNvbG9yKCksCisgICAg
ICAgICAgICAgICAgIHRodW1iKTsKKwogICAgIFNrUGFpbnQgcGFpbnQ7Ci0gICAgaWYgKGhvdmVy
ZWQpCi0gICAgICAgIHBhaW50LnNldEFSR0IoMHhmZiwgMHhmZiwgMHhmZiwgMHhmZik7Ci0gICAg
ZWxzZQotICAgICAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4ZjQsIDB4ZjIsIDB4ZWYpOworICAg
IHBhaW50LnNldENvbG9yKHNhdHVyYXRlQW5kQnJpZ2h0ZW4odGh1bWIsIDAsIDAuMDIpKTsKIAog
ICAgIFNrSVJlY3Qgc2tyZWN0OwogICAgIGlmICh2ZXJ0aWNhbCkKQEAgLTEyMywxMCArMjAzLDcg
QEAgdm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50VGh1bWIoR3JhcGhpY3ND
b250ZXh0KiBnYywgU2Nyb2xsYmFyKiBzY3IKIAogICAgIGNhbnZhcy0+ZHJhd0lSZWN0KHNrcmVj
dCwgcGFpbnQpOwogCi0gICAgaWYgKGhvdmVyZWQpCi0gICAgICAgIHBhaW50LnNldEFSR0IoMHhm
ZiwgMHhmNCwgMHhmMiwgMHhlZik7Ci0gICAgZWxzZQotICAgICAgICBwYWludC5zZXRBUkdCKDB4
ZmYsIDB4ZWEsIDB4ZTUsIDB4ZTApOworICAgIHBhaW50LnNldENvbG9yKHNhdHVyYXRlQW5kQnJp
Z2h0ZW4odGh1bWIsIDAsIC0wLjAyKSk7CiAKICAgICBpZiAodmVydGljYWwpCiAgICAgICAgIHNr
cmVjdC5zZXQobWlkeCArIDEsIHJlY3QueSgpLCByZWN0LngoKSArIHJlY3Qud2lkdGgoKSwgcmVj
dC55KCkgKyByZWN0LmhlaWdodCgpKTsKQEAgLTEzNSwxMSArMjEyLDEyIEBAIHZvaWQgU2Nyb2xs
YmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRodW1iKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNj
cm9sbGJhciogc2NyCiAKICAgICBjYW52YXMtPmRyYXdJUmVjdChza3JlY3QsIHBhaW50KTsKIAot
ICAgIHBhaW50LnNldEFSR0IoMHhmZiwgMHg5ZCwgMHg5NiwgMHg4ZSk7CisgICAgU2tTY2FsYXIg
dHJhY2tbM107CisgICAgU2tDb2xvclRvSFNWKFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6dHJh
Y2tDb2xvcigpLCB0cmFjayk7CisgICAgcGFpbnQuc2V0Q29sb3Iob3V0bGluZUNvbG9yKHRyYWNr
LCB0aHVtYikpOwogICAgIGRyYXdCb3goY2FudmFzLCByZWN0LCBwYWludCk7CiAKICAgICBpZiAo
cmVjdC5oZWlnaHQoKSA+IDEwICYmIHJlY3Qud2lkdGgoKSA+IDEwKSB7Ci0gICAgICAgIHBhaW50
LnNldEFSR0IoMHhmZiwgMHg5ZCwgMHg5NiwgMHg4ZSk7CiAgICAgICAgIGNvbnN0IGludCBncmlw
cHlIYWxmV2lkdGggPSAyOwogICAgICAgICBjb25zdCBpbnQgaW50ZXJHcmlwcHlPZmZzZXQgPSAz
OwogICAgICAgICBpZiAodmVydGljYWwpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtTGludXguY3BwCmluZGV4IDkwNDhjZTMuLmNjZDM4NWMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKKysrIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcApAQCAtMzIsNiArMzIs
MTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1bnNpZ25lZCBSZW5kZXJUaGVtZUNocm9t
aXVtTGludXg6Om1fdGh1bWJJbmFjdGl2ZUNvbG9yID0gMDsKK3Vuc2lnbmVkIFJlbmRlclRoZW1l
Q2hyb21pdW1MaW51eDo6bV90aHVtYkFjdGl2ZUNvbG9yID0gMDsKK3Vuc2lnbmVkIFJlbmRlclRo
ZW1lQ2hyb21pdW1MaW51eDo6bV90cmFja0NvbG9yID0gMDsKKwogUGFzc1JlZlB0cjxSZW5kZXJU
aGVtZT4gUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpjcmVhdGUoKQogewogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4KCkpOwpAQCAtMTIyLDQgKzEyNiwx
MiBAQCBkb3VibGUgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpjYXJldEJsaW5rSW50ZXJ2YWxJ
bnRlcm5hbCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2FyZXRCbGlua0ludGVydmFsOwogfQogCit2
b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6c2V0U2Nyb2xsYmFyQ29sb3JzKAorICAgIFNr
Q29sb3IgaW5hY3RpdmVfY29sb3IsIFNrQ29sb3IgYWN0aXZlX2NvbG9yLCBTa0NvbG9yIHRyYWNr
X2NvbG9yKQoreworICAgIG1fdGh1bWJJbmFjdGl2ZUNvbG9yID0gaW5hY3RpdmVfY29sb3I7Cisg
ICAgbV90aHVtYkFjdGl2ZUNvbG9yID0gYWN0aXZlX2NvbG9yOworICAgIG1fdHJhY2tDb2xvciA9
IHRyYWNrX2NvbG9yOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaCBiL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oCmluZGV4IGUxMzdhZDUuLjg3MzZiMGQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5o
CisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oCkBAIC01
NCw2ICs1NCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0Q2FyZXRC
bGlua0ludGVydmFsKGRvdWJsZSBpbnRlcnZhbCk7CiAgICAgICAgIHZpcnR1YWwgZG91YmxlIGNh
cmV0QmxpbmtJbnRlcnZhbEludGVybmFsKCkgY29uc3Q7CiAKKyAgICAgICAgc3RhdGljIHZvaWQg
c2V0U2Nyb2xsYmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlX2NvbG9yLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYWN0aXZlX2NvbG9yLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdHJhY2tfY29sb3IpOwor
ICAgICAgICBzdGF0aWMgdW5zaWduZWQgdGh1bWJJbmFjdGl2ZUNvbG9yKCkgeyByZXR1cm4gbV90
aHVtYkluYWN0aXZlQ29sb3I7IH0KKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIHRodW1iQWN0aXZl
Q29sb3IoKSB7IHJldHVybiBtX3RodW1iQWN0aXZlQ29sb3I7IH0KKyAgICAgICAgc3RhdGljIHVu
c2lnbmVkIHRyYWNrQ29sb3IoKSB7IHJldHVybiBtX3RyYWNrQ29sb3I7IH0KKwogICAgIHByaXZh
dGU6CiAgICAgICAgIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eCgpOwogICAgICAgICB2aXJ0dWFs
IH5SZW5kZXJUaGVtZUNocm9taXVtTGludXgoKTsKQEAgLTYyLDYgKzY5LDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQ29udHJvbFRpbnRzKCkg
Y29uc3Q7CiAKICAgICAgICAgZG91YmxlIG1fY2FyZXRCbGlua0ludGVydmFsOworCisgICAgICAg
IHN0YXRpYyB1bnNpZ25lZCBtX3RodW1iSW5hY3RpdmVDb2xvcjsKKyAgICAgICAgc3RhdGljIHVu
c2lnbmVkIG1fdGh1bWJBY3RpdmVDb2xvcjsKKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIG1fdHJh
Y2tDb2xvcjsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBkZmMzYTBjLi4xY2YyNTA5IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAwOS0x
Mi0wMSAgRXZhbiBNYXJ0aW4gIDxldmFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaHJvbWl1bTogdGhlbWUgc2Nyb2xsYmFy
cyB0byBtYXRjaCBHVEsgdGhlbWUuCisgICAgICAgIEFkZCBBUEkgdG8gc2V0IHRoZSBjb2xvcnMu
CisKKyAgICAgICAgU2luY2UgdGhlIGNoYW5nZSBpcyB0byB0aGUgQ2hyb21pdW0gV2ViS2l0IEFQ
SSBsYXllciwgdGVzdGluZyB3aWxsCisgICAgICAgIGJlIGluIENocm9taXVtJ3MgdGVzdCBzaGVs
bC4KKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIwNDgK
KworICAgICAgICBQYXRjaCBmcm9tIE1hcmt1cyBHdXRzY2hrZSA8bWFya3VzQGNocm9taXVtLm9y
Zz4uCisKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAqIHNyYy9XZWJWaWV3
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRTY3JvbGxiYXJDb2xv
cnMpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorCiAyMDA5LTExLTI3ICBZdXJ5IFNl
bWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBh
dmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcu
aCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCmluZGV4IDI5YTNmOWUuLmIzMmI4
Y2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBAIC0yNDMsNiArMjQzLDEwIEBAIHB1Ymxp
YzoKICAgICAvLyB0aGVpciBsaW5rcy4KICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHJlc2V0
VmlzaXRlZExpbmtTdGF0ZSgpOwogCisgICAgLy8gU2Nyb2xsYmFyIGNvbG9ycyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgdmlydHVhbCB2
b2lkIHNldFNjcm9sbGJhckNvbG9ycyh1bnNpZ25lZCBpbmFjdGl2ZUNvbG9yLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYWN0aXZlQ29sb3IsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB0cmFja0NvbG9yKSA9IDA7CiAK
IHByb3RlY3RlZDoKICAgICB+V2ViVmlldygpIHt9CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCmluZGV4IDc5MTRhOWUuLjBjNTY4OTEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCkBAIC05Nyw2ICs5Nyw5IEBACiAjaW5jbHVkZSAiS2V5Ym9hcmRDb2Rlc1dpbi5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1XaW4uaCIKICNlbHNlCisjaWYgUExBVEZPUk0oTElO
VVgpCisjaW5jbHVkZSAiUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmgiCisjZW5kaWYKICNpbmNs
dWRlICJLZXlib2FyZENvZGVzUG9zaXguaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2Vu
ZGlmCkBAIC0xNjM1LDYgKzE2MzgsMTYgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aXNBY3RpdmUoKSBj
b25zdAogICAgIHJldHVybiAocGFnZSgpICYmIHBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkpID8g
cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS0+aXNBY3RpdmUoKSA6IGZhbHNlOwogfQogCit2b2lk
IFdlYlZpZXdJbXBsOjpzZXRTY3JvbGxiYXJDb2xvcnModW5zaWduZWQgaW5hY3RpdmVDb2xvciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBhY3RpdmVDb2xv
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB0cmFja0Nv
bG9yKSB7CisjaWYgUExBVEZPUk0oTElOVVgpCisgICAgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4
OjpzZXRTY3JvbGxiYXJDb2xvcnMoaW5hY3RpdmVDb2xvciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVDb2xvciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja0NvbG9yKTsKKyNlbmRpZgor
fQorCiB2b2lkIFdlYlZpZXdJbXBsOjpkaWRDb21taXRMb2FkKGJvb2wqIGlzTmV3TmF2aWdhdGlv
bikKIHsKICAgICBpZiAoaXNOZXdOYXZpZ2F0aW9uKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
CmluZGV4IDk2MjI3ZTMuLjU1N2M4YjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAg
LTE1NSw2ICsxNTUsOSBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJp
bmc+JiBzdWdnZXN0aW9ucywKICAgICAgICAgaW50IGRlZmF1bHRTdWdnZXN0aW9uSW5kZXgpOwog
ICAgIHZpcnR1YWwgdm9pZCBoaWRlQXV0b2ZpbGxQb3B1cCgpOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRTY3JvbGxiYXJDb2xvcnModW5zaWduZWQgaW5hY3RpdmVDb2xvciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFjdGl2ZUNvbG9yLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdHJhY2tDb2xvcik7CiAKICAgICAvLyBX
ZWJWaWV3SW1wbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44173</attachid>
            <date>2009-12-02 12:30:19 -0800</date>
            <delta_ts>2009-12-07 18:55:01 -0800</delta_ts>
            <desc>patch with fixed tabs and caps</desc>
            <filename>bug-32048-20091202122938.patch</filename>
            <type>text/plain</type>
            <size>12035</size>
            <attacher name="Evan Martin">evan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWM0NDI1My4uMTRlYzMwYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAwOS0xMi0wMSAgRXZhbiBNYXJ0aW4g
IDxldmFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDaHJvbWl1bTogdGhlbWUgc2Nyb2xsYmFycyB0byBtYXRjaCBHVEsgdGhl
bWUuCisgICAgICAgIEFkZCBmdW5jdGlvbnMgdG8gUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4IHRv
IGNoYW5nZSB0aGUgc2Nyb2xsYmFyCisgICAgICAgIGNvbG9yLgorCisgICAgICAgIFNpbmNlIHRo
ZSBjaGFuZ2UgaXMgdG8gdGhlIENocm9taXVtIFdlYktpdCBBUEkgbGF5ZXIsIHRlc3Rpbmcgd2ls
bAorICAgICAgICBiZSBpbiBDaHJvbWl1bSdzIHRlc3Qgc2hlbGwuCisgICAgICAgIGh0dHA6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMDQ4CisKKyAgICAgICAgUGF0Y2ggZnJv
bSBNYXJrdXMgR3V0c2Noa2UgPG1hcmt1c0BjaHJvbWl1bS5vcmc+LgorCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNhdHVyYXRlQW5kQnJpZ2h0ZW4pOgorICAgICAgICAoV2ViQ29yZTo6b3V0bGlu
ZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6
cGFpbnRUcmFja1BpZWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21p
dW1MaW51eDo6cGFpbnRUaHVtYik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1MaW51eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGlu
dXg6OnNldFNjcm9sbGJhckNvbG9ycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1MaW51eC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4Ojp0aHVtYkluYWN0aXZlQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVD
aHJvbWl1bUxpbnV4Ojp0aHVtYkFjdGl2ZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lQ2hyb21pdW1MaW51eDo6dHJhY2tDb2xvcik6CisKIDIwMDktMTEtMjggIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2Vpbmln
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNo
cm9taXVtTGludXguY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVt
ZUNocm9taXVtTGludXguY3BwCmluZGV4IDY0ZjU4YzQuLjNhMWE2NTIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51
eC5jcHAKQEAgLTMzLDYgKzMzLDggQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIgogI2luY2x1ZGUgIlNj
cm9sbGJhci5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAKQEAgLTczLDYg
Kzc1LDYwIEBAIHN0YXRpYyB2b2lkIGRyYXdCb3goU2tDYW52YXMqIGNhbnZhcywgY29uc3QgSW50
UmVjdCYgcmVjdCwgY29uc3QgU2tQYWludCYgcGFpbnQpCiAgICAgZHJhd1ZlcnRMaW5lKGNhbnZh
cywgcmVjdC54KCksIHJlY3QueSgpLCBib3R0b20sIHBhaW50KTsKIH0KIAorc3RhdGljIFNrU2Nh
bGFyIGNsYW1wKFNrU2NhbGFyIHZhbHVlLCBTa1NjYWxhciBtaW4sIFNrU2NhbGFyIG1heCkKK3sK
KyAgICByZXR1cm4gc3RkOjptaW4oc3RkOjptYXgodmFsdWUsIG1pbiksIG1heCk7Cit9CisKK3N0
YXRpYyBTa0NvbG9yIHNhdHVyYXRlQW5kQnJpZ2h0ZW4oU2tTY2FsYXIqIGhzdiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2tTY2FsYXIgc2F0dXJhdGVBbW91bnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNrU2NhbGFyIGJyaWdodGVuQW1vdW50KQor
eworICAgIFNrU2NhbGFyIGNvbG9yWzNdOworICAgIGNvbG9yWzBdID0gaHN2WzBdOworICAgIGNv
bG9yWzFdID0gY2xhbXAoaHN2WzFdICsgc2F0dXJhdGVBbW91bnQsIDAuMCwgMS4wKTsKKyAgICBj
b2xvclsyXSA9IGNsYW1wKGhzdlsyXSArIGJyaWdodGVuQW1vdW50LCAwLjAsIDEuMCk7CisgICAg
cmV0dXJuIFNrSFNWVG9Db2xvcihjb2xvcik7Cit9CisKK3N0YXRpYyBTa0NvbG9yIG91dGxpbmVD
b2xvcihTa1NjYWxhciogaHN2MSwgU2tTY2FsYXIqIGhzdjIpCit7CisgICAgLy8gR1RLIFRoZW1l
IGVuZ2luZXMgaGF2ZSB3YXkgdG9vIG11Y2ggY29udHJvbCBvdmVyIHRoZSBsYXlvdXQgb2YKKyAg
ICAvLyB0aGUgc2Nyb2xsYmFyLiBXZSBtaWdodCBiZSBhYmxlIHRvIG1vcmUgY2xvc2VseSBhcHBy
b3hpbWF0ZSBpdHMKKyAgICAvLyBsb29rLWFuZC1mZWVsLCBpZiB3ZSBzZW50IHdob2xlIGltYWdl
cyBpbnN0ZWFkIG9mIGp1c3QgY29sb3JzCisgICAgLy8gZnJvbSB0aGUgYnJvd3NlciB0byB0aGUg
cmVuZGVyZXIuIEJ1dCBldmVuIHRoZW4sIHNvbWUgdGhlbWVzCisgICAgLy8gd291bGQganVzdCBi
cmVhay4KKyAgICAvLworICAgIC8vIFNvLCBpbnN0ZWFkLCB3ZSBkb24ndCBldmVuIHRyeSB0byAx
MDAlIHJlcGxpY2F0ZSB0aGUgbG9vayBvZgorICAgIC8vIHRoZSBuYXRpdmUgc2Nyb2xsYmFyLiBX
ZSByZW5kZXIgb3VyIG93biB2ZXJzaW9uLCBidXQgd2UgbWFrZQorICAgIC8vIHN1cmUgdG8gcGlj
ayBjb2xvcnMgdGhhdCBibGVuZCBpbiBuaWNlbHkgd2l0aCB0aGUgc3lzdGVtIEdUSworICAgIC8v
IHRoZW1lLiBJbiBtb3N0IGNhc2VzLCB3ZSBjYW4ganVzdCBzYW1wbGUgYSBjb3VwbGUgb2YgcGl4
ZWxzCisgICAgLy8gZnJvbSB0aGUgc3lzdGVtIHNjcm9sbGJhciBhbmQgdXNlIHRob3NlIGNvbG9y
cyB0byBkcmF3IG91cgorICAgIC8vIHNjcm9sbGJhci4KKyAgICAvLworICAgIC8vIFRoaXMgd29y
a3MgZmluZSBmb3IgdGhlIHRyYWNrIGNvbG9yIGFuZCB0aGUgb3ZlcmFsbCB0aHVtYgorICAgIC8v
IGNvbG9yLiBCdXQgaXQgZmFpbHMgc3BlY3RhY3VsYXJseSBmb3IgdGhlIG91dGxpbmUgY29sb3Ig
dXNlZAorICAgIC8vIGFyb3VuZCB0aGUgdGh1bWIgcGllY2UuICBOb3QgYWxsIHRoZW1lcyBoYXZl
IGEgY2xlYXJseSBkZWZpbmVkCisgICAgLy8gb3V0bGluZS4gRm9yIHNvbWUgb2YgdGhlbSBpdCBp
cyBwYXJ0aWFsbHkgdHJhbnNwYXJlbnQsIGFuZCBmb3IKKyAgICAvLyBvdGhlcnMgdGhlIHRoaWNr
bmVzcyBpcyB2ZXJ5IHVucHJlZGljdGFibGUuCisgICAgLy8KKyAgICAvLyBTbywgaW5zdGVhZCBv
ZiB0cnlpbmcgdG8gYXBwcm94aW1hdGUgdGhlIHN5c3RlbSB0aGVtZSwgd2UKKyAgICAvLyBpbnN0
ZWFkIHRyeSB0byBjb21wdXRlIGEgcmVhc29uYWJsZSBsb29raW5nIGNob2ljZSBiYXNlZCBvbiB0
aGUKKyAgICAvLyBrbm93biBjb2xvciBvZiB0aGUgdHJhY2sgYW5kIHRoZSB0aHVtYiBwaWVjZS4g
VGhpcyBpcyBkaWZmaWN1bHQKKyAgICAvLyB3aGVuIHRyeWluZyB0byBkZWFsIGJvdGggd2l0aCBo
aWdoLSBhbmQgbG93LWNvbnRyYXN0IHRoZW1lcywKKyAgICAvLyBhbmQgYm90aCB3aXRoIHBvc2l0
aXZlIGFuZCBpbnZlcnRlZCB0aGVtZXMuCisgICAgLy8KKyAgICAvLyBUaGUgZm9sbG93aW5nIGNv
ZGUgaGFzIGJlZW4gdGVzdGVkIHRvIGxvb2sgT0sgd2l0aCBhbGwgb2YgdGhlCisgICAgLy8gZGVm
YXVsdCBHVEsgdGhlbWVzLgorICAgIFNrU2NhbGFyIG1pbkRpZmYgPSBjbGFtcCgoaHN2MVsxXSAr
IGhzdjJbMV0pICogMS4yLCAwLjIsIDAuNSk7CisgICAgU2tTY2FsYXIgZGlmZiA9IGNsYW1wKGZh
YnMoaHN2MVsyXSAtIGhzdjJbMl0pIC8gMiwgbWluRGlmZiwgMC41KTsKKworICAgIGlmIChoc3Yx
WzJdICsgaHN2MlsyXSA+IDEuMCkKKyAgICAgICAgZGlmZiA9IC1kaWZmOworCisgICAgcmV0dXJu
IHNhdHVyYXRlQW5kQnJpZ2h0ZW4oaHN2MiwgLTAuMiwgZGlmZik7Cit9CisKIEludFJlY3QgU2Ny
b2xsYmFyVGhlbWVDaHJvbWl1bTo6dHJhY2tSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBib29s
KQogewogICAgIEludFNpemUgYnMgPSBidXR0b25TaXplKHNjcm9sbGJhcik7CkBAIC04OSwxMCAr
MTQ1LDE2IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRyYWNrUGll
Y2UoR3JhcGhpY3NDb250ZXh0KiBnYywgU2Nyb2xsYmFyCiAgICAgU2tJUmVjdCBza3JlY3Q7CiAK
ICAgICBza3JlY3Quc2V0KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC54KCkgKyByZWN0LndpZHRo
KCksIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7Ci0gICAgcGFpbnQuc2V0QVJHQigweGZmLCAw
eGUzLCAweGRkLCAweGQ4KTsKKyAgICBTa1NjYWxhciB0cmFja19oc3ZbM107CisgICAgU2tDb2xv
clRvSFNWKFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6dHJhY2tDb2xvcigpLCB0cmFja19oc3Yp
OworICAgIHBhaW50LnNldENvbG9yKHNhdHVyYXRlQW5kQnJpZ2h0ZW4odHJhY2tfaHN2LCAwLCAw
KSk7CiAgICAgY2FudmFzLT5kcmF3SVJlY3Qoc2tyZWN0LCBwYWludCk7CiAKLSAgICBwYWludC5z
ZXRBUkdCKDB4ZmYsIDB4YzUsIDB4YmEsIDB4YjApOworICAgIFNrU2NhbGFyIHRodW1iX2hzdlsz
XTsKKyAgICBTa0NvbG9yVG9IU1YoUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Ojp0aHVtYkluYWN0
aXZlQ29sb3IoKSwKKyAgICAgICAgICAgICAgICAgdGh1bWJfaHN2KTsKKworICAgIHBhaW50LnNl
dENvbG9yKG91dGxpbmVDb2xvcih0cmFja19oc3YsIHRodW1iX2hzdikpOwogICAgIGRyYXdCb3go
Y2FudmFzLCByZWN0LCBwYWludCk7CiB9CiAKQEAgLTEwOSwxMSArMTcxLDE0IEBAIHZvaWQgU2Ny
b2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRodW1iKEdyYXBoaWNzQ29udGV4dCogZ2Ms
IFNjcm9sbGJhciogc2NyCiAgICAgY29uc3QgYm9vbCB2ZXJ0aWNhbCA9IHNjcm9sbGJhci0+b3Jp
ZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcjsKICAgICBTa0NhbnZhcyogY29uc3QgY2Fu
dmFzID0gZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKIAorICAgIFNrU2NhbGFyIHRo
dW1iWzNdOworICAgIFNrQ29sb3JUb0hTVihob3ZlcmVkCisgICAgICAgICAgICAgICAgID8gUmVu
ZGVyVGhlbWVDaHJvbWl1bUxpbnV4Ojp0aHVtYkFjdGl2ZUNvbG9yKCkKKyAgICAgICAgICAgICAg
ICAgOiBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnRodW1iSW5hY3RpdmVDb2xvcigpLAorICAg
ICAgICAgICAgICAgICB0aHVtYik7CisKICAgICBTa1BhaW50IHBhaW50OwotICAgIGlmIChob3Zl
cmVkKQotICAgICAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYpOwotICAg
IGVsc2UKLSAgICAgICAgcGFpbnQuc2V0QVJHQigweGZmLCAweGY0LCAweGYyLCAweGVmKTsKKyAg
ICBwYWludC5zZXRDb2xvcihzYXR1cmF0ZUFuZEJyaWdodGVuKHRodW1iLCAwLCAwLjAyKSk7CiAK
ICAgICBTa0lSZWN0IHNrcmVjdDsKICAgICBpZiAodmVydGljYWwpCkBAIC0xMjMsMTAgKzE4OCw3
IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRodW1iKEdyYXBoaWNz
Q29udGV4dCogZ2MsIFNjcm9sbGJhciogc2NyCiAKICAgICBjYW52YXMtPmRyYXdJUmVjdChza3Jl
Y3QsIHBhaW50KTsKIAotICAgIGlmIChob3ZlcmVkKQotICAgICAgICBwYWludC5zZXRBUkdCKDB4
ZmYsIDB4ZjQsIDB4ZjIsIDB4ZWYpOwotICAgIGVsc2UKLSAgICAgICAgcGFpbnQuc2V0QVJHQigw
eGZmLCAweGVhLCAweGU1LCAweGUwKTsKKyAgICBwYWludC5zZXRDb2xvcihzYXR1cmF0ZUFuZEJy
aWdodGVuKHRodW1iLCAwLCAtMC4wMikpOwogCiAgICAgaWYgKHZlcnRpY2FsKQogICAgICAgICBz
a3JlY3Quc2V0KG1pZHggKyAxLCByZWN0LnkoKSwgcmVjdC54KCkgKyByZWN0LndpZHRoKCksIHJl
Y3QueSgpICsgcmVjdC5oZWlnaHQoKSk7CkBAIC0xMzUsMTEgKzE5NywxMiBAQCB2b2lkIFNjcm9s
bGJhclRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRUaHVtYihHcmFwaGljc0NvbnRleHQqIGdjLCBT
Y3JvbGxiYXIqIHNjcgogCiAgICAgY2FudmFzLT5kcmF3SVJlY3Qoc2tyZWN0LCBwYWludCk7CiAK
LSAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4OWQsIDB4OTYsIDB4OGUpOworICAgIFNrU2NhbGFy
IHRyYWNrWzNdOworICAgIFNrQ29sb3JUb0hTVihSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnRy
YWNrQ29sb3IoKSwgdHJhY2spOworICAgIHBhaW50LnNldENvbG9yKG91dGxpbmVDb2xvcih0cmFj
aywgdGh1bWIpKTsKICAgICBkcmF3Qm94KGNhbnZhcywgcmVjdCwgcGFpbnQpOwogCiAgICAgaWYg
KHJlY3QuaGVpZ2h0KCkgPiAxMCAmJiByZWN0LndpZHRoKCkgPiAxMCkgewotICAgICAgICBwYWlu
dC5zZXRBUkdCKDB4ZmYsIDB4OWQsIDB4OTYsIDB4OGUpOwogICAgICAgICBjb25zdCBpbnQgZ3Jp
cHB5SGFsZldpZHRoID0gMjsKICAgICAgICAgY29uc3QgaW50IGludGVyR3JpcHB5T2Zmc2V0ID0g
MzsKICAgICAgICAgaWYgKHZlcnRpY2FsKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bUxpbnV4LmNwcAppbmRleCA5MDQ4Y2UzLi4yY2RlYTdhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguY3BwCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKQEAgLTMyLDYgKzMy
LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordW5zaWduZWQgUmVuZGVyVGhlbWVDaHJv
bWl1bUxpbnV4OjptX3RodW1iSW5hY3RpdmVDb2xvciA9IDA7Cit1bnNpZ25lZCBSZW5kZXJUaGVt
ZUNocm9taXVtTGludXg6Om1fdGh1bWJBY3RpdmVDb2xvciA9IDA7Cit1bnNpZ25lZCBSZW5kZXJU
aGVtZUNocm9taXVtTGludXg6Om1fdHJhY2tDb2xvciA9IDA7CisKIFBhc3NSZWZQdHI8UmVuZGVy
VGhlbWU+IFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6Y3JlYXRlKCkKIHsKICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eCgpKTsKQEAgLTEyMiw0ICsxMjYs
MTIgQEAgZG91YmxlIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6Y2FyZXRCbGlua0ludGVydmFs
SW50ZXJuYWwoKSBjb25zdAogICAgIHJldHVybiBtX2NhcmV0QmxpbmtJbnRlcnZhbDsKIH0KIAor
dm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnNldFNjcm9sbGJhckNvbG9ycygKKyAgICBT
a0NvbG9yIGluYWN0aXZlQ29sb3IsIFNrQ29sb3IgYWN0aXZlQ29sb3IsIFNrQ29sb3IgdHJhY2tD
b2xvcikKK3sKKyAgICBtX3RodW1iSW5hY3RpdmVDb2xvciA9IGluYWN0aXZlQ29sb3I7CisgICAg
bV90aHVtYkFjdGl2ZUNvbG9yID0gYWN0aXZlQ29sb3I7CisgICAgbV90cmFja0NvbG9yID0gdHJh
Y2tDb2xvcjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmggYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaAppbmRleCBlMTM3YWQ1Li44NzM2YjBkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaApAQCAtNTQsNiAr
NTQsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldENhcmV0QmxpbmtJ
bnRlcnZhbChkb3VibGUgaW50ZXJ2YWwpOwogICAgICAgICB2aXJ0dWFsIGRvdWJsZSBjYXJldEJs
aW5rSW50ZXJ2YWxJbnRlcm5hbCgpIGNvbnN0OwogCisgICAgICAgIHN0YXRpYyB2b2lkIHNldFNj
cm9sbGJhckNvbG9ycyh1bnNpZ25lZCBpbmFjdGl2ZV9jb2xvciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFjdGl2ZV9jb2xvciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHRyYWNrX2NvbG9yKTsKKyAgICAg
ICAgc3RhdGljIHVuc2lnbmVkIHRodW1iSW5hY3RpdmVDb2xvcigpIHsgcmV0dXJuIG1fdGh1bWJJ
bmFjdGl2ZUNvbG9yOyB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCB0aHVtYkFjdGl2ZUNvbG9y
KCkgeyByZXR1cm4gbV90aHVtYkFjdGl2ZUNvbG9yOyB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25l
ZCB0cmFja0NvbG9yKCkgeyByZXR1cm4gbV90cmFja0NvbG9yOyB9CisKICAgICBwcml2YXRlOgog
ICAgICAgICBSZW5kZXJUaGVtZUNocm9taXVtTGludXgoKTsKICAgICAgICAgdmlydHVhbCB+UmVu
ZGVyVGhlbWVDaHJvbWl1bUxpbnV4KCk7CkBAIC02Miw2ICs2OSwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0NvbnRyb2xUaW50cygpIGNvbnN0
OwogCiAgICAgICAgIGRvdWJsZSBtX2NhcmV0QmxpbmtJbnRlcnZhbDsKKworICAgICAgICBzdGF0
aWMgdW5zaWduZWQgbV90aHVtYkluYWN0aXZlQ29sb3I7CisgICAgICAgIHN0YXRpYyB1bnNpZ25l
ZCBtX3RodW1iQWN0aXZlQ29sb3I7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBtX3RyYWNrQ29s
b3I7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGZj
M2EwYy4uMWNmMjUwOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMTItMDEg
IEV2YW4gTWFydGluICA8ZXZhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21pdW06IHRoZW1lIHNjcm9sbGJhcnMgdG8g
bWF0Y2ggR1RLIHRoZW1lLgorICAgICAgICBBZGQgQVBJIHRvIHNldCB0aGUgY29sb3JzLgorCisg
ICAgICAgIFNpbmNlIHRoZSBjaGFuZ2UgaXMgdG8gdGhlIENocm9taXVtIFdlYktpdCBBUEkgbGF5
ZXIsIHRlc3Rpbmcgd2lsbAorICAgICAgICBiZSBpbiBDaHJvbWl1bSdzIHRlc3Qgc2hlbGwuCisg
ICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMDQ4CisKKyAg
ICAgICAgUGF0Y2ggZnJvbSBNYXJrdXMgR3V0c2Noa2UgPG1hcmt1c0BjaHJvbWl1bS5vcmc+Lgor
CisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0U2Nyb2xsYmFyQ29sb3JzKToK
KyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAwOS0xMS0yNyAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBG
ZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCAyOWEzZjllLi5iMzJiOGNlIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjQzLDYgKzI0MywxMCBAQCBwdWJsaWM6CiAg
ICAgLy8gdGhlaXIgbGlua3MuCiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCByZXNldFZpc2l0
ZWRMaW5rU3RhdGUoKTsKIAorICAgIC8vIFNjcm9sbGJhciBjb2xvcnMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHZpcnR1YWwgdm9pZCBz
ZXRTY3JvbGxiYXJDb2xvcnModW5zaWduZWQgaW5hY3RpdmVDb2xvciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFjdGl2ZUNvbG9yLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdHJhY2tDb2xvcikgPSAwOwogCiBwcm90
ZWN0ZWQ6CiAgICAgfldlYlZpZXcoKSB7fQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApp
bmRleCA3OTE0YTllLi4wYzU2ODkxIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApA
QCAtOTcsNiArOTcsOSBAQAogI2luY2x1ZGUgIktleWJvYXJkQ29kZXNXaW4uaCIKICNpbmNsdWRl
ICJSZW5kZXJUaGVtZUNocm9taXVtV2luLmgiCiAjZWxzZQorI2lmIFBMQVRGT1JNKExJTlVYKQor
I2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIgorI2VuZGlmCiAjaW5jbHVkZSAi
S2V5Ym9hcmRDb2Rlc1Bvc2l4LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNlbmRpZgpA
QCAtMTYzNSw2ICsxNjM4LDE2IEBAIGJvb2wgV2ViVmlld0ltcGw6OmlzQWN0aXZlKCkgY29uc3QK
ICAgICByZXR1cm4gKHBhZ2UoKSAmJiBwYWdlKCktPmZvY3VzQ29udHJvbGxlcigpKSA/IHBhZ2Uo
KS0+Zm9jdXNDb250cm9sbGVyKCktPmlzQWN0aXZlKCkgOiBmYWxzZTsKIH0KIAordm9pZCBXZWJW
aWV3SW1wbDo6c2V0U2Nyb2xsYmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlQ29sb3IsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYWN0aXZlQ29sb3IsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdHJhY2tDb2xvcikg
eworI2lmIFBMQVRGT1JNKExJTlVYKQorICAgIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6c2V0
U2Nyb2xsYmFyQ29sb3JzKGluYWN0aXZlQ29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ29sb3IsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tDb2xvcik7CisjZW5kaWYKK30KKwog
dm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ29tbWl0TG9hZChib29sKiBpc05ld05hdmlnYXRpb24pCiB7
CiAgICAgaWYgKGlzTmV3TmF2aWdhdGlvbikKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRl
eCA5NjIyN2UzLi41NTdjOGI5IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0xNTUs
NiArMTU1LDkgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYg
c3VnZ2VzdGlvbnMsCiAgICAgICAgIGludCBkZWZhdWx0U3VnZ2VzdGlvbkluZGV4KTsKICAgICB2
aXJ0dWFsIHZvaWQgaGlkZUF1dG9maWxsUG9wdXAoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Ny
b2xsYmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlQ29sb3IsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBhY3RpdmVDb2xvciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHRyYWNrQ29sb3IpOwogCiAgICAgLy8gV2ViVmll
d0ltcGwKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>