<?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>66720</bug_id>
          
          <creation_ts>2011-08-22 14:58:42 -0700</creation_ts>
          <short_desc>chromium WebFrameImpl - don&apos;t load javascript URLs against chrome internal pages.</short_desc>
          <delta_ts>2011-08-24 14:07:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>chrome://...</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Thomas Sepez">tsepez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>cevans</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>454961</commentid>
    <comment_count>0</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-22 14:58:42 -0700</bug_when>
    <thetext>Running JS against a chrome:// page risks sensitive information.  Add a safeguard against malicious bookmarklets and the like to WebKit/Source/WebKit/chromium/src/WebFrameImpl.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454991</commentid>
    <comment_count>1</comment_count>
      <attachid>104751</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-22 15:19:05 -0700</bug_when>
    <thetext>Created attachment 104751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455014</commentid>
    <comment_count>2</comment_count>
      <attachid>104751</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-22 15:46:36 -0700</bug_when>
    <thetext>Comment on attachment 104751
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=104751&amp;action=review

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:2291
&gt; +    // Protect privileged pages against bookmarklets and other javascript
&gt; +    // manipulations.
&gt; +    if (m_frame-&gt;document()-&gt;url().protocolIs(&quot;chrome&quot;)
&gt; +        || m_frame-&gt;document()-&gt;url().protocolIs(&quot;chrome-extension&quot;))
&gt; +        return;

We shouldn&apos;t have these string literals in this code.  Isn&apos;t there something in SchemeRegistry we could use?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455025</commentid>
    <comment_count>3</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-22 16:00:36 -0700</bug_when>
    <thetext>Didn&apos;t see an appropriate shouldTreatScheme... method in SchemeRegistry.h.  Also didn&apos;t see the literal &quot;chrome&quot; anywhere under webkit :( ... would this be added to a SchemeRegistry category outside of webkit by the browser itself?

eg,
$ find . -name \*.h -exec grep &apos;&quot;chrome&apos; {} /dev/null \;
./Source/WebKit/chromium/base/logging.h://     &quot;chromeos&quot; directory.
$ find . -name \*.cpp -exec grep &apos;&quot;chrome&apos; {} /dev/null \;
./Source/WebKit/chromium/src/BackForwardListChromium.cpp:const char backForwardNavigationScheme[] = &quot;chrome-back-forward&quot;;
./Source/WebKit/chromium/src/WebFrameImpl.cpp:    if (m_frame-&gt;document()-&gt;url().protocolIs(&quot;chrome&quot;)
./Source/WebKit/chromium/src/WebFrameImpl.cpp:        || m_frame-&gt;document()-&gt;url().protocolIs(&quot;chrome-extension&quot;))
./Source/WebKit/chromium/tests/WebFrameTest.cpp:          chromeURL(&quot;chrome://&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455027</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-22 16:02:20 -0700</bug_when>
    <thetext>You can add a new type to SchemeRegistry.h.  Chrome registers a bunch of schemes at with SchemeRegistry when it initializes WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455076</commentid>
    <comment_count>5</comment_count>
      <attachid>104770</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-22 17:12:39 -0700</bug_when>
    <thetext>Created attachment 104770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455080</commentid>
    <comment_count>6</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-22 17:15:56 -0700</bug_when>
    <thetext>Ok, but feels kind of wrong since only the chromium code path checks this particular registry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455088</commentid>
    <comment_count>7</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-22 17:33:21 -0700</bug_when>
    <thetext>Probably needs to get wrapped in a WebSecurityPolicy method ???</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455098</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-22 17:37:51 -0700</bug_when>
    <thetext>&gt; Ok, but feels kind of wrong since only the chromium code path checks this particular registry.

Yeah, you should probably check this in ScriptController::executeIfJavaScriptURL also.

&gt; Probably needs to get wrapped in a WebSecurityPolicy method ???

Yep!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455445</commentid>
    <comment_count>9</comment_count>
      <attachid>104857</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-23 09:27:41 -0700</bug_when>
    <thetext>Created attachment 104857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455449</commentid>
    <comment_count>10</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-23 09:32:01 -0700</bug_when>
    <thetext>would ScriptController::executeIfJavaScriptURL affect &lt;a href=&quot;javascript:&quot;&gt; cases, or only navigation from the browser itself?   Current patch only applies this test as before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455452</commentid>
    <comment_count>11</comment_count>
      <attachid>104860</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-23 09:42:17 -0700</bug_when>
    <thetext>Created attachment 104860
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455453</commentid>
    <comment_count>12</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-23 09:42:51 -0700</bug_when>
    <thetext>Patch with two ChangeLogs.  For review.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456154</commentid>
    <comment_count>13</comment_count>
      <attachid>104860</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-24 10:05:32 -0700</bug_when>
    <thetext>Comment on attachment 104860
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=104860&amp;action=review

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

This line will prevent this change from landing.  You should replace it with a line that says you wrote a Chromium WebKit API unit test.

&gt; Source/WebCore/ChangeLog:9
&gt; +

It would be nice to put some more explanation in the ChangeLog as to why we&apos;re making this change and whether we think this registry is useful for WebCore&apos;s JavaScript URL implementation.

&gt; Source/WebCore/platform/SchemeRegistry.cpp:107
&gt; +static URLSchemesMap&amp; notAllowingJavascriptURLsSchemes()

This name seems slightly tortured, but I can see how it fits the pattern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456155</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-24 10:06:32 -0700</bug_when>
    <thetext>&gt; would ScriptController::executeIfJavaScriptURL affect &lt;a href=&quot;javascript:&quot;&gt; cases, or only navigation from the browser itself?   Current patch only applies this test as before.

Only the &lt;a href=&quot;javascript:&quot;&gt; case.  I think it&apos;s fine to handle that case in a separate patch, but we should say that in the ChangeLog entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456156</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-24 10:06:59 -0700</bug_when>
    <thetext>+fishd for WebKit API review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456167</commentid>
    <comment_count>16</comment_count>
      <attachid>105013</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-24 10:22:08 -0700</bug_when>
    <thetext>Created attachment 105013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456168</commentid>
    <comment_count>17</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-24 10:23:01 -0700</bug_when>
    <thetext>Reworked comments in change log in latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456213</commentid>
    <comment_count>18</comment_count>
      <attachid>105013</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-24 11:09:12 -0700</bug_when>
    <thetext>Comment on attachment 105013
Patch

Rejecting attachment 105013 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=ec2-cq-03&apos;, &apos;--port...&quot; exit_code: 2

Last 500 characters of output:
at 63 (offset 3 lines).
Hunk #4 succeeded at 98 (offset 3 lines).
Hunk #5 succeeded at 119 (offset 3 lines).
Hunk #6 succeeded at 145 (offset 3 lines).
Hunk #7 succeeded at 191 with fuzz 1 (offset 24 lines).
1 out of 7 hunks FAILED -- saving rejects to file Source/WebKit/chromium/tests/WebFrameTest.cpp.rej
patching file Source/WebKit/chromium/tests/data/history.html

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Darin Fisher&apos;, u&apos;--for...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/9485272</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456273</commentid>
    <comment_count>19</comment_count>
      <attachid>105033</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-24 11:55:09 -0700</bug_when>
    <thetext>Created attachment 105033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456276</commentid>
    <comment_count>20</comment_count>
      <attachid>105033</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-24 11:56:10 -0700</bug_when>
    <thetext>Comment on attachment 105033
Patch

Merge conflict resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456390</commentid>
    <comment_count>21</comment_count>
      <attachid>105033</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-24 13:52:49 -0700</bug_when>
    <thetext>Comment on attachment 105033
Patch

Forwarding fishd&apos;s r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456400</commentid>
    <comment_count>22</comment_count>
      <attachid>105033</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-24 14:06:57 -0700</bug_when>
    <thetext>Comment on attachment 105033
Patch

Clearing flags on attachment: 105033

Committed r93734: &lt;http://trac.webkit.org/changeset/93734&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456401</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-24 14:07:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104751</attachid>
            <date>2011-08-22 15:19:05 -0700</date>
            <delta_ts>2011-08-22 17:12:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66720-20110822151902.patch</filename>
            <type>text/plain</type>
            <size>7694</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5MzU1MCkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDgtMjIgIFRvbSBTZXBleiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUHJldmVudCBuYXZpZ2F0aW9uIHRvIGphdmFzY3JpcHQ6IHVybHMgYWdhaW5zdCBzZW5zaXRp
dmUgaW50ZXJuYWwgY2hyb21lIHBhZ2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjY3MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUltcGw6OmxvYWRKYXZhU2NyaXB0VVJMKToKKyAgICAgICAgKiB0ZXN0cy9XZWJG
cmFtZVRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVRlc3Q6OldlYkZyYW1lVGVz
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lVGVzdDo6cmVnaXN0ZXJNb2NrZWRIdHRwVVJM
TG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lVGVzdDo6cmVnaXN0ZXJNb2NrZWRDaHJv
bWVVUkxMb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVUZXN0OjpzZXJ2ZVJlcXVlc3Rz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVUZXN0Ojpsb2FkSHR0cEZyYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVUZXN0Ojpsb2FkQ2hyb21lRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZVRlc3Q6OnJlZ2lzdGVyTW9ja2VkVVJMTG9hZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lVGVzdDo6bG9hZEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VEVTVF9GKToK
KyAgICAgICAgKiB0ZXN0cy9kYXRhL2hpc3RvcnkuaHRtbDogQWRkZWQuCisKIDIwMTEtMDgtMjIg
IERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1v
dmUgdGhpcmRfcGFydHkvbGV2ZWxkYiwgYmVjYXVzZSBpdCdzIG5vIGxvbmdlciB1c2VkIGFuZCBk
b2Vzbid0IGV4aXN0IGRvd25zdHJlYW0uCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZyYW1lSW1wbC5jcHAJKHJldmlzaW9uIDkzNTQ5KQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI4NCw2ICsy
Mjg0LDEyIEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpsb2FkSmF2YVNjcmlwdFVSTChjb24KICAgICBp
ZiAoIW1fZnJhbWUtPmRvY3VtZW50KCkgfHwgIW1fZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgLy8gUHJvdGVjdCBwcml2aWxlZ2VkIHBhZ2VzIGFnYWluc3QgYm9va21hcmts
ZXRzIGFuZCBvdGhlciBqYXZhc2NyaXB0CisgICAgLy8gbWFuaXB1bGF0aW9ucy4KKyAgICBpZiAo
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkucHJvdG9jb2xJcygiY2hyb21lIikKKyAgICAgICAg
fHwgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkucHJvdG9jb2xJcygiY2hyb21lLWV4dGVuc2lv
biIpKQorICAgICAgICByZXR1cm47CisKICAgICBTdHJpbmcgc2NyaXB0ID0gZGVjb2RlVVJMRXNj
YXBlU2VxdWVuY2VzKHVybC5zdHJpbmcoKS5zdWJzdHJpbmcoc3RybGVuKCJqYXZhc2NyaXB0OiIp
KSk7CiAgICAgU2NyaXB0VmFsdWUgcmVzdWx0ID0gbV9mcmFtZS0+c2NyaXB0KCktPmV4ZWN1dGVT
Y3JpcHQoc2NyaXB0LCB0cnVlKTsKIApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9XZWJGcmFtZVRlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvV2ViRnJhbWVUZXN0LmNwcAkocmV2aXNpb24gOTM1NDkpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcg
KzUwLDggQEAgbmFtZXNwYWNlIHsKIGNsYXNzIFdlYkZyYW1lVGVzdCA6IHB1YmxpYyB0ZXN0aW5n
OjpUZXN0IHsKIHB1YmxpYzoKICAgICBXZWJGcmFtZVRlc3QoKQotICAgICAgICA6IGJhc2VVUkwo
Imh0dHA6Ly93d3cudGVzdC5jb20vIikKKyAgICAgICAgOiBiYXNlVVJMKCJodHRwOi8vd3d3LnRl
c3QuY29tLyIpLAorICAgICAgICAgIGNocm9tZVVSTCgiY2hyb21lOi8vIikKICAgICB7CiAgICAg
fQogCkBAIC01OSw3ICs2MCwzMiBAQCBwdWJsaWM6CiAgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpV
bnJlZ2lzdGVyQWxsTW9ja2VkVVJMcygpOwogICAgIH0KIAotICAgIHZvaWQgcmVnaXN0ZXJNb2Nr
ZWRVUkxMb2FkKGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlTmFtZSkKKyAgICB2b2lkIHJlZ2lzdGVy
TW9ja2VkSHR0cFVSTExvYWQoY29uc3Qgc3RkOjpzdHJpbmcmIGZpbGVOYW1lKQorICAgIHsKKyAg
ICAgICAgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKGJhc2VVUkwsIGZpbGVOYW1lKTsKKyAgICB9CisK
KyAgICB2b2lkIHJlZ2lzdGVyTW9ja2VkQ2hyb21lVVJMTG9hZChjb25zdCBzdGQ6OnN0cmluZyYg
ZmlsZU5hbWUpCisgICAgeworICAgICAgICByZWdpc3Rlck1vY2tlZFVSTExvYWQoY2hyb21lVVJM
LCBmaWxlTmFtZSk7CisgICAgfQorCisgICAgdm9pZCBzZXJ2ZVJlcXVlc3RzKCkKKyAgICB7Cisg
ICAgICAgIHdlYmtpdF9zdXBwb3J0OjpTZXJ2ZUFzeW5jaHJvbm91c01vY2tlZFJlcXVlc3RzKCk7
CisgICAgfQorCisgICAgdm9pZCBsb2FkSHR0cEZyYW1lKFdlYkZyYW1lKiBmcmFtZSwgY29uc3Qg
c3RkOjpzdHJpbmcmIGZpbGVOYW1lKQorICAgIHsKKyAgICAgICAgbG9hZEZyYW1lKGZyYW1lLCBi
YXNlVVJMLCBmaWxlTmFtZSk7CisgICAgfQorCisgICAgdm9pZCBsb2FkQ2hyb21lRnJhbWUoV2Vi
RnJhbWUqIGZyYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYgZmlsZU5hbWUpCisgICAgeworICAgICAg
ICBsb2FkRnJhbWUoZnJhbWUsIGNocm9tZVVSTCwgZmlsZU5hbWUpOworICAgIH0KKworICAgIHZv
aWQgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKGNvbnN0IHN0ZDo6c3RyaW5nJiBiYXNlLCBjb25zdCBz
dGQ6OnN0cmluZyYgZmlsZU5hbWUpCiAgICAgewogICAgICAgICBXZWJVUkxSZXNwb25zZSByZXNw
b25zZTsKICAgICAgICAgcmVzcG9uc2UuaW5pdGlhbGl6ZSgpOwpAQCAtNjksMjQgKzk1LDIwIEBA
IHB1YmxpYzoKICAgICAgICAgZmlsZVBhdGggKz0gIi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL2RhdGEvIjsKICAgICAgICAgZmlsZVBhdGggKz0gZmlsZU5hbWU7CiAKLSAgICAgICAgd2Vi
a2l0X3N1cHBvcnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKFdlYlVSTChHVVJMKGJhc2VVUkwgKyBmaWxl
TmFtZSkpLCByZXNwb25zZSwgV2ViU3RyaW5nOjpmcm9tVVRGOChmaWxlUGF0aCkpOwotICAgIH0K
LQotICAgIHZvaWQgc2VydmVSZXF1ZXN0cygpCi0gICAgewotICAgICAgICB3ZWJraXRfc3VwcG9y
dDo6U2VydmVBc3luY2hyb25vdXNNb2NrZWRSZXF1ZXN0cygpOworICAgICAgICB3ZWJraXRfc3Vw
cG9ydDo6UmVnaXN0ZXJNb2NrZWRVUkwoV2ViVVJMKEdVUkwoYmFzZSArIGZpbGVOYW1lKSksIHJl
c3BvbnNlLCBXZWJTdHJpbmc6OmZyb21VVEY4KGZpbGVQYXRoKSk7CiAgICAgfQogCi0gICAgdm9p
ZCBsb2FkRnJhbWUoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYgZmlsZU5hbWUp
CisgICAgdm9pZCBsb2FkRnJhbWUoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYg
YmFzZSwgY29uc3Qgc3RkOjpzdHJpbmcmIGZpbGVOYW1lKQogICAgIHsKICAgICAgICAgV2ViVVJM
UmVxdWVzdCB1cmxSZXF1ZXN0OwogICAgICAgICB1cmxSZXF1ZXN0LmluaXRpYWxpemUoKTsKLSAg
ICAgICAgdXJsUmVxdWVzdC5zZXRVUkwoV2ViVVJMKEdVUkwoYmFzZVVSTCArIGZpbGVOYW1lKSkp
OworICAgICAgICB1cmxSZXF1ZXN0LnNldFVSTChXZWJVUkwoR1VSTChiYXNlICsgZmlsZU5hbWUp
KSk7CiAgICAgICAgIGZyYW1lLT5sb2FkUmVxdWVzdCh1cmxSZXF1ZXN0KTsKICAgICB9CiAKIHBy
b3RlY3RlZDoKICAgICBzdGQ6OnN0cmluZyBiYXNlVVJMOworICAgIHN0ZDo6c3RyaW5nIGNocm9t
ZVVSTDsKIH07CiAKIGNsYXNzIFRlc3RXZWJGcmFtZUNsaWVudCA6IHB1YmxpYyBXZWJGcmFtZUNs
aWVudCB7CkBAIC05NCwxNyArMTE2LDE3IEBAIGNsYXNzIFRlc3RXZWJGcmFtZUNsaWVudCA6IHB1
YmxpYyBXZWJGcmEKIAogVEVTVF9GKFdlYkZyYW1lVGVzdCwgQ29udGVudFRleHQpCiB7Ci0gICAg
cmVnaXN0ZXJNb2NrZWRVUkxMb2FkKCJpZnJhbWVzX3Rlc3QuaHRtbCIpOwotICAgIHJlZ2lzdGVy
TW9ja2VkVVJMTG9hZCgidmlzaWJsZV9pZnJhbWUuaHRtbCIpOwotICAgIHJlZ2lzdGVyTW9ja2Vk
VVJMTG9hZCgiaW52aXNpYmxlX2lmcmFtZS5odG1sIik7Ci0gICAgcmVnaXN0ZXJNb2NrZWRVUkxM
b2FkKCJ6ZXJvX3NpemVkX2lmcmFtZS5odG1sIik7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJM
TG9hZCgiaWZyYW1lc190ZXN0Lmh0bWwiKTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2Fk
KCJ2aXNpYmxlX2lmcmFtZS5odG1sIik7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgi
aW52aXNpYmxlX2lmcmFtZS5odG1sIik7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgi
emVyb19zaXplZF9pZnJhbWUuaHRtbCIpOwogCiAgICAgLy8gQ3JlYXRlIGFuZCBpbml0aWFsaXpl
IHRoZSBXZWJWaWV3LgogICAgIFRlc3RXZWJGcmFtZUNsaWVudCB3ZWJGcmFtZUNsaWVudDsKICAg
ICBXZWJWaWV3KiB3ZWJWaWV3ID0gV2ViVmlldzo6Y3JlYXRlKDApOwogICAgIHdlYlZpZXctPmlu
aXRpYWxpemVNYWluRnJhbWUoJndlYkZyYW1lQ2xpZW50KTsKIAotICAgIGxvYWRGcmFtZSh3ZWJW
aWV3LT5tYWluRnJhbWUoKSwgImlmcmFtZXNfdGVzdC5odG1sIik7CisgICAgbG9hZEh0dHBGcmFt
ZSh3ZWJWaWV3LT5tYWluRnJhbWUoKSwgImlmcmFtZXNfdGVzdC5odG1sIik7CiAgICAgc2VydmVS
ZXF1ZXN0cygpOwogCiAgICAgLy8gTm93IHJldHJpZXZlIHRoZSBmcmFtZXMgdGV4dCBhbmQgdGVz
dCBpdCBvbmx5IGluY2x1ZGVzIHZpc2libGUgZWxlbWVudHMuCkBAIC0xMjAsMTggKzE0MiwxOCBA
QCBURVNUX0YoV2ViRnJhbWVUZXN0LCBDb250ZW50VGV4dCkKIAogVEVTVF9GKFdlYkZyYW1lVGVz
dCwgRnJhbWVGb3JFbnRlcmVkQ29udGV4dCkKIHsKLSAgICByZWdpc3Rlck1vY2tlZFVSTExvYWQo
ImlmcmFtZXNfdGVzdC5odG1sIik7Ci0gICAgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKCJ2aXNpYmxl
X2lmcmFtZS5odG1sIik7Ci0gICAgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKCJpbnZpc2libGVfaWZy
YW1lLmh0bWwiKTsKLSAgICByZWdpc3Rlck1vY2tlZFVSTExvYWQoInplcm9fc2l6ZWRfaWZyYW1l
Lmh0bWwiKTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJpZnJhbWVzX3Rlc3QuaHRt
bCIpOworICAgIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoInZpc2libGVfaWZyYW1lLmh0bWwi
KTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJpbnZpc2libGVfaWZyYW1lLmh0bWwi
KTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJ6ZXJvX3NpemVkX2lmcmFtZS5odG1s
Iik7CiAKICAgICAvLyBDcmVhdGUgYW5kIGluaXRpYWxpemUgdGhlIFdlYlZpZXcuCi0gICAgVGVz
dFdlYkZyYW1lQ2xpZW50IHdlYkZyYW1lQ2xpZW50OworICAgICBUZXN0V2ViRnJhbWVDbGllbnQg
d2ViRnJhbWVDbGllbnQ7CiAgICAgV2ViVmlldyogd2ViVmlldyA9IFdlYlZpZXc6OmNyZWF0ZSgw
KTsKICAgICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRKYXZhU2NyaXB0RW5hYmxlZCh0cnVlKTsK
ICAgICB3ZWJWaWV3LT5pbml0aWFsaXplTWFpbkZyYW1lKCZ3ZWJGcmFtZUNsaWVudCk7CiAKLSAg
ICBsb2FkRnJhbWUod2ViVmlldy0+bWFpbkZyYW1lKCksICJpZnJhbWVzX3Rlc3QuaHRtbCIpOwor
ICAgIGxvYWRIdHRwRnJhbWUod2ViVmlldy0+bWFpbkZyYW1lKCksICJpZnJhbWVzX3Rlc3QuaHRt
bCIpOwogICAgIHNlcnZlUmVxdWVzdHMoKTsKIAogICAgIHY4OjpIYW5kbGVTY29wZSBzY29wZTsK
QEAgLTE0NSw0ICsxNjcsMjYgQEAgVEVTVF9GKFdlYkZyYW1lVGVzdCwgRnJhbWVGb3JFbnRlcmVk
Q29udAogICAgIHdlYlZpZXctPmNsb3NlKCk7CiB9CiAKK1RFU1RfRihXZWJGcmFtZVRlc3QsIENo
cm9tZVBhZ2VOb0phdmFzY3JpcHQpCit7CisgICAgcmVnaXN0ZXJNb2NrZWRDaHJvbWVVUkxMb2Fk
KCJoaXN0b3J5Lmh0bWwiKTsKKworICAgIC8vIENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSB0aGUgV2Vi
Vmlldy4KKyAgICBUZXN0V2ViRnJhbWVDbGllbnQgd2ViRnJhbWVDbGllbnQ7CisgICAgV2ViVmll
dyogd2ViVmlldyA9IFdlYlZpZXc6OmNyZWF0ZSgwKTsKKyAgICB3ZWJWaWV3LT5zZXR0aW5ncygp
LT5zZXRKYXZhU2NyaXB0RW5hYmxlZCh0cnVlKTsKKyAgICB3ZWJWaWV3LT5pbml0aWFsaXplTWFp
bkZyYW1lKCZ3ZWJGcmFtZUNsaWVudCk7CisKKyAgICBsb2FkQ2hyb21lRnJhbWUod2ViVmlldy0+
bWFpbkZyYW1lKCksICJoaXN0b3J5Lmh0bWwiKTsKKyAgICBzZXJ2ZVJlcXVlc3RzKCk7CisKKyAg
ICAvLyBUcnkgdG8gcnVuIEpTIGFnYWluc3QgdGhlIGNocm9tZS1zdHlsZSBVUkwuCisgICAgbG9h
ZEZyYW1lKHdlYlZpZXctPm1haW5GcmFtZSgpLCAiamF2YXNjcmlwdDoiLCAiZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnQ2xvYmJlcmVkJykpIik7CisK
KyAgICAvLyBOb3cgcmV0cmlldmUgdGhlIGZyYW1lcyB0ZXh0IGFuZCBzZWUgaWYgaXQgd2FzIGNs
b2JiZXJlZC4KKyAgICBzdGQ6OnN0cmluZyBjb250ZW50ID0gd2ViVmlldy0+bWFpbkZyYW1lKCkt
PmNvbnRlbnRBc1RleHQoMTAyNCkudXRmOCgpOworICAgIEVYUEVDVF9ORShzdGQ6OnN0cmluZzo6
bnBvcywgY29udGVudC5maW5kKCJTaW11bGF0ZWQgQ2hyb21pdW0gSGlzdG9yeSBQYWdlIikpOwor
ICAgIEVYUEVDVF9FUShzdGQ6OnN0cmluZzo6bnBvcywgY29udGVudC5maW5kKCJDbG9iYmVyZWQi
KSk7CiB9CisKK30gLy8gbmFtZXNwYWNlCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL2RhdGEvaGlzdG9yeS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvZGF0YS9oaXN0b3J5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL2RhdGEvaGlzdG9yeS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDMgQEAKKzxib2R5PgorU2ltdWxhdGVkIENocm9taXVtIEhpc3RvcnkgUGFnZQorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104770</attachid>
            <date>2011-08-22 17:12:39 -0700</date>
            <delta_ts>2011-08-23 09:27:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66720-20110822171237.patch</filename>
            <type>text/plain</type>
            <size>9814</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzNTYzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMjIgIFRvbSBTZXBl
eiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJldmVudCBuYXZpZ2F0aW9uIHRv
IGphdmFzY3JpcHQ6IHVybHMgYWdhaW5zdCBzZW5zaXRpdmUgaW50ZXJuYWwgcGFnZXMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyMAorICAgICAg
ICAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMg
YXJlIHVuZGVyIGNocm9taXVtLyBkaXJlY3RvcnkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY2hl
bWVSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpub3RBbGxvd2luZ0phdmFzY3JpcHRV
UkxzU2NoZW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJV
UkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMpOgorICAgICAgICAoV2ViQ29yZTo6
U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb3RBbGxvd2luZ0phdmFzY3Jp
cHRVUkxzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oOgorCiAyMDExLTA4
LTIyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSFRNTFNvdXJj
ZVRyYWNrZXIgY3Jhc2hlcyB3aGVuIG5ldHdvcmsgcGFja2V0cyBicmVhayBwb29ybHkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAJKHJldmlzaW9uIDkz
NTQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDQsNiArMTA0LDEyIEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBjYW5E
aXNwbGF5T25seUlmQ2EKICAgICByZXR1cm4gY2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hl
bWVzOwogfQogCitzdGF0aWMgVVJMU2NoZW1lc01hcCYgbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJM
c1NjaGVtZXMoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgbm90
QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMsICgpKTsKKyAgICByZXR1cm4gbm90QWxsb3dp
bmdKYXZhc2NyaXB0VVJMc1NjaGVtZXM7Cit9CisKIHZvaWQgU2NoZW1lUmVnaXN0cnk6OnJlZ2lz
dGVyVVJMU2NoZW1lQXNMb2NhbChjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKICAgICBsb2NhbFVS
TFNjaGVtZXMoKS5hZGQoc2NoZW1lKTsKQEAgLTE5Miw0ICsxOTgsMTYgQEAgdm9pZCBTY2hlbWVS
ZWdpc3RyeTo6cmVnaXN0ZXJBc0NhbkRpc3BsYQogICAgIGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1
ZXN0U2NoZW1lcygpLmFkZChzY2hlbWUpOwogfQogCit2b2lkIFNjaGVtZVJlZ2lzdHJ5OjpyZWdp
c3RlclVSTFNjaGVtZUFzTm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyhjb25zdCBTdHJpbmcmIHNj
aGVtZSkgCit7CisgICAgbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMoKS5hZGQoc2No
ZW1lKTsKK30KKworYm9vbCBTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc05v
dEFsbG93aW5nSmF2YXNjcmlwdFVSTHMoY29uc3QgU3RyaW5nJiBzY2hlbWUpCit7CisgICAgaWYg
KHNjaGVtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbm90
QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMoKS5jb250YWlucyhzY2hlbWUpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hl
bWVSZWdpc3RyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVt
ZVJlZ2lzdHJ5LmgJKHJldmlzaW9uIDkzNTQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2NoZW1lUmVnaXN0cnkuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNiArNjMsMTEgQEAgcHVibGlj
OgogICAgIC8vIHBhc3NlZCB0byBTZWN1cml0eU9yaWdpbjo6Y2FuRGlzcGxheS4KICAgICBzdGF0
aWMgYm9vbCBjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdChjb25zdCBTdHJpbmcmIHNjaGVtZSk7
CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KGNv
bnN0IFN0cmluZyYgc2NoZW1lKTsKKworICAgIC8vIFNjaGVtZXMgYWdhaW5zdCB3aGljaCBqYXZh
c2NyaXB0OiBVUkxzIHNob3VsZCBub3QgYmUgYWxsb3dlZCB0byBydW4gKHN0b3AKKyAgICAvLyBi
b29rbWFya2xldHMgZnJvbSBydW5uaW5nIG9uIHNlbnNpdGl2ZSBwYWdlcykuIAorICAgIHN0YXRp
YyB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNOb3RBbGxvd2luZ0phdmFzY3JpcHRVUkxzKGNvbnN0
IFN0cmluZyYgc2NoZW1lKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdFVSTFNjaGVtZUFz
Tm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyhjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkZyYW1lSW1wbC5jcHAJKHJldmlzaW9uIDkzNTQ5KQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDYgKzEyMiw3
IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRF
eHRlbnNpb25zLmgiCiAjaW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTY2hl
bWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJT
Y3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKQEAgLTIyODQsNiAr
MjI4NSwxMCBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6bG9hZEphdmFTY3JpcHRVUkwoY29uCiAgICAg
aWYgKCFtX2ZyYW1lLT5kb2N1bWVudCgpIHx8ICFtX2ZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIC8vIFByb3RlY3QgcHJpdmlsZWdlZCBwYWdlcyBhZ2FpbnN0IGJvb2ttYXJr
bGV0cyBhbmQgb3RoZXIgamF2YXNjcmlwdCBtYW5pcHVsYXRpb25zLgorICAgIGlmIChTY2hlbWVS
ZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMo
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkucHJvdG9jb2woKSkpCisgICAgICAgIHJldHVybjsK
KwogICAgIFN0cmluZyBzY3JpcHQgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXModXJsLnN0cmlu
ZygpLnN1YnN0cmluZyhzdHJsZW4oImphdmFzY3JpcHQ6IikpKTsKICAgICBTY3JpcHRWYWx1ZSBy
ZXN1bHQgPSBtX2ZyYW1lLT5zY3JpcHQoKS0+ZXhlY3V0ZVNjcmlwdChzY3JpcHQsIHRydWUpOwog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3Bw
CShyZXZpc2lvbiA5MzU0OSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJh
bWVUZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAKKyNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgPGdvb2ds
ZXVybC9zcmMvZ3VybC5oPgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAjaW5jbHVkZSA8d2Vi
a2l0L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuaD4KQEAgLTUwLDcgKzUxLDggQEAgbmFtZXNwYWNl
IHsKIGNsYXNzIFdlYkZyYW1lVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoK
ICAgICBXZWJGcmFtZVRlc3QoKQotICAgICAgICA6IGJhc2VVUkwoImh0dHA6Ly93d3cudGVzdC5j
b20vIikKKyAgICAgICAgOiBiYXNlVVJMKCJodHRwOi8vd3d3LnRlc3QuY29tLyIpLAorICAgICAg
ICAgIGNocm9tZVVSTCgiY2hyb21lOi8vIikKICAgICB7CiAgICAgfQogCkBAIC01OSw3ICs2MSwz
MiBAQCBwdWJsaWM6CiAgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpVbnJlZ2lzdGVyQWxsTW9ja2Vk
VVJMcygpOwogICAgIH0KIAotICAgIHZvaWQgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKGNvbnN0IHN0
ZDo6c3RyaW5nJiBmaWxlTmFtZSkKKyAgICB2b2lkIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQo
Y29uc3Qgc3RkOjpzdHJpbmcmIGZpbGVOYW1lKQorICAgIHsKKyAgICAgICAgcmVnaXN0ZXJNb2Nr
ZWRVUkxMb2FkKGJhc2VVUkwsIGZpbGVOYW1lKTsKKyAgICB9CisKKyAgICB2b2lkIHJlZ2lzdGVy
TW9ja2VkQ2hyb21lVVJMTG9hZChjb25zdCBzdGQ6OnN0cmluZyYgZmlsZU5hbWUpCisgICAgewor
ICAgICAgICByZWdpc3Rlck1vY2tlZFVSTExvYWQoY2hyb21lVVJMLCBmaWxlTmFtZSk7CisgICAg
fQorCisgICAgdm9pZCBzZXJ2ZVJlcXVlc3RzKCkKKyAgICB7CisgICAgICAgIHdlYmtpdF9zdXBw
b3J0OjpTZXJ2ZUFzeW5jaHJvbm91c01vY2tlZFJlcXVlc3RzKCk7CisgICAgfQorCisgICAgdm9p
ZCBsb2FkSHR0cEZyYW1lKFdlYkZyYW1lKiBmcmFtZSwgY29uc3Qgc3RkOjpzdHJpbmcmIGZpbGVO
YW1lKQorICAgIHsKKyAgICAgICAgbG9hZEZyYW1lKGZyYW1lLCBiYXNlVVJMLCBmaWxlTmFtZSk7
CisgICAgfQorCisgICAgdm9pZCBsb2FkQ2hyb21lRnJhbWUoV2ViRnJhbWUqIGZyYW1lLCBjb25z
dCBzdGQ6OnN0cmluZyYgZmlsZU5hbWUpCisgICAgeworICAgICAgICBsb2FkRnJhbWUoZnJhbWUs
IGNocm9tZVVSTCwgZmlsZU5hbWUpOworICAgIH0KKworICAgIHZvaWQgcmVnaXN0ZXJNb2NrZWRV
UkxMb2FkKGNvbnN0IHN0ZDo6c3RyaW5nJiBiYXNlLCBjb25zdCBzdGQ6OnN0cmluZyYgZmlsZU5h
bWUpCiAgICAgewogICAgICAgICBXZWJVUkxSZXNwb25zZSByZXNwb25zZTsKICAgICAgICAgcmVz
cG9uc2UuaW5pdGlhbGl6ZSgpOwpAQCAtNjksMjQgKzk2LDIwIEBAIHB1YmxpYzoKICAgICAgICAg
ZmlsZVBhdGggKz0gIi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvIjsKICAgICAg
ICAgZmlsZVBhdGggKz0gZmlsZU5hbWU7CiAKLSAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlJlZ2lz
dGVyTW9ja2VkVVJMKFdlYlVSTChHVVJMKGJhc2VVUkwgKyBmaWxlTmFtZSkpLCByZXNwb25zZSwg
V2ViU3RyaW5nOjpmcm9tVVRGOChmaWxlUGF0aCkpOwotICAgIH0KLQotICAgIHZvaWQgc2VydmVS
ZXF1ZXN0cygpCi0gICAgewotICAgICAgICB3ZWJraXRfc3VwcG9ydDo6U2VydmVBc3luY2hyb25v
dXNNb2NrZWRSZXF1ZXN0cygpOworICAgICAgICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0ZXJNb2Nr
ZWRVUkwoV2ViVVJMKEdVUkwoYmFzZSArIGZpbGVOYW1lKSksIHJlc3BvbnNlLCBXZWJTdHJpbmc6
OmZyb21VVEY4KGZpbGVQYXRoKSk7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkRnJhbWUoV2ViRnJh
bWUqIGZyYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYgZmlsZU5hbWUpCisgICAgdm9pZCBsb2FkRnJh
bWUoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYgYmFzZSwgY29uc3Qgc3RkOjpz
dHJpbmcmIGZpbGVOYW1lKQogICAgIHsKICAgICAgICAgV2ViVVJMUmVxdWVzdCB1cmxSZXF1ZXN0
OwogICAgICAgICB1cmxSZXF1ZXN0LmluaXRpYWxpemUoKTsKLSAgICAgICAgdXJsUmVxdWVzdC5z
ZXRVUkwoV2ViVVJMKEdVUkwoYmFzZVVSTCArIGZpbGVOYW1lKSkpOworICAgICAgICB1cmxSZXF1
ZXN0LnNldFVSTChXZWJVUkwoR1VSTChiYXNlICsgZmlsZU5hbWUpKSk7CiAgICAgICAgIGZyYW1l
LT5sb2FkUmVxdWVzdCh1cmxSZXF1ZXN0KTsKICAgICB9CiAKIHByb3RlY3RlZDoKICAgICBzdGQ6
OnN0cmluZyBiYXNlVVJMOworICAgIHN0ZDo6c3RyaW5nIGNocm9tZVVSTDsKIH07CiAKIGNsYXNz
IFRlc3RXZWJGcmFtZUNsaWVudCA6IHB1YmxpYyBXZWJGcmFtZUNsaWVudCB7CkBAIC05NCwxNyAr
MTE3LDE3IEBAIGNsYXNzIFRlc3RXZWJGcmFtZUNsaWVudCA6IHB1YmxpYyBXZWJGcmEKIAogVEVT
VF9GKFdlYkZyYW1lVGVzdCwgQ29udGVudFRleHQpCiB7Ci0gICAgcmVnaXN0ZXJNb2NrZWRVUkxM
b2FkKCJpZnJhbWVzX3Rlc3QuaHRtbCIpOwotICAgIHJlZ2lzdGVyTW9ja2VkVVJMTG9hZCgidmlz
aWJsZV9pZnJhbWUuaHRtbCIpOwotICAgIHJlZ2lzdGVyTW9ja2VkVVJMTG9hZCgiaW52aXNpYmxl
X2lmcmFtZS5odG1sIik7Ci0gICAgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKCJ6ZXJvX3NpemVkX2lm
cmFtZS5odG1sIik7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgiaWZyYW1lc190ZXN0
Lmh0bWwiKTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJ2aXNpYmxlX2lmcmFtZS5o
dG1sIik7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgiaW52aXNpYmxlX2lmcmFtZS5o
dG1sIik7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgiemVyb19zaXplZF9pZnJhbWUu
aHRtbCIpOwogCiAgICAgLy8gQ3JlYXRlIGFuZCBpbml0aWFsaXplIHRoZSBXZWJWaWV3LgogICAg
IFRlc3RXZWJGcmFtZUNsaWVudCB3ZWJGcmFtZUNsaWVudDsKICAgICBXZWJWaWV3KiB3ZWJWaWV3
ID0gV2ViVmlldzo6Y3JlYXRlKDApOwogICAgIHdlYlZpZXctPmluaXRpYWxpemVNYWluRnJhbWUo
JndlYkZyYW1lQ2xpZW50KTsKIAotICAgIGxvYWRGcmFtZSh3ZWJWaWV3LT5tYWluRnJhbWUoKSwg
ImlmcmFtZXNfdGVzdC5odG1sIik7CisgICAgbG9hZEh0dHBGcmFtZSh3ZWJWaWV3LT5tYWluRnJh
bWUoKSwgImlmcmFtZXNfdGVzdC5odG1sIik7CiAgICAgc2VydmVSZXF1ZXN0cygpOwogCiAgICAg
Ly8gTm93IHJldHJpZXZlIHRoZSBmcmFtZXMgdGV4dCBhbmQgdGVzdCBpdCBvbmx5IGluY2x1ZGVz
IHZpc2libGUgZWxlbWVudHMuCkBAIC0xMjAsMTggKzE0MywxOCBAQCBURVNUX0YoV2ViRnJhbWVU
ZXN0LCBDb250ZW50VGV4dCkKIAogVEVTVF9GKFdlYkZyYW1lVGVzdCwgRnJhbWVGb3JFbnRlcmVk
Q29udGV4dCkKIHsKLSAgICByZWdpc3Rlck1vY2tlZFVSTExvYWQoImlmcmFtZXNfdGVzdC5odG1s
Iik7Ci0gICAgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKCJ2aXNpYmxlX2lmcmFtZS5odG1sIik7Ci0g
ICAgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKCJpbnZpc2libGVfaWZyYW1lLmh0bWwiKTsKLSAgICBy
ZWdpc3Rlck1vY2tlZFVSTExvYWQoInplcm9fc2l6ZWRfaWZyYW1lLmh0bWwiKTsKKyAgICByZWdp
c3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJpZnJhbWVzX3Rlc3QuaHRtbCIpOworICAgIHJlZ2lzdGVy
TW9ja2VkSHR0cFVSTExvYWQoInZpc2libGVfaWZyYW1lLmh0bWwiKTsKKyAgICByZWdpc3Rlck1v
Y2tlZEh0dHBVUkxMb2FkKCJpbnZpc2libGVfaWZyYW1lLmh0bWwiKTsKKyAgICByZWdpc3Rlck1v
Y2tlZEh0dHBVUkxMb2FkKCJ6ZXJvX3NpemVkX2lmcmFtZS5odG1sIik7CiAKICAgICAvLyBDcmVh
dGUgYW5kIGluaXRpYWxpemUgdGhlIFdlYlZpZXcuCi0gICAgVGVzdFdlYkZyYW1lQ2xpZW50IHdl
YkZyYW1lQ2xpZW50OworICAgICBUZXN0V2ViRnJhbWVDbGllbnQgd2ViRnJhbWVDbGllbnQ7CiAg
ICAgV2ViVmlldyogd2ViVmlldyA9IFdlYlZpZXc6OmNyZWF0ZSgwKTsKICAgICB3ZWJWaWV3LT5z
ZXR0aW5ncygpLT5zZXRKYXZhU2NyaXB0RW5hYmxlZCh0cnVlKTsKICAgICB3ZWJWaWV3LT5pbml0
aWFsaXplTWFpbkZyYW1lKCZ3ZWJGcmFtZUNsaWVudCk7CiAKLSAgICBsb2FkRnJhbWUod2ViVmll
dy0+bWFpbkZyYW1lKCksICJpZnJhbWVzX3Rlc3QuaHRtbCIpOworICAgIGxvYWRIdHRwRnJhbWUo
d2ViVmlldy0+bWFpbkZyYW1lKCksICJpZnJhbWVzX3Rlc3QuaHRtbCIpOwogICAgIHNlcnZlUmVx
dWVzdHMoKTsKIAogICAgIHY4OjpIYW5kbGVTY29wZSBzY29wZTsKQEAgLTE0NSw0ICsxNjgsMjcg
QEAgVEVTVF9GKFdlYkZyYW1lVGVzdCwgRnJhbWVGb3JFbnRlcmVkQ29udAogICAgIHdlYlZpZXct
PmNsb3NlKCk7CiB9CiAKK1RFU1RfRihXZWJGcmFtZVRlc3QsIENocm9tZVBhZ2VOb0phdmFzY3Jp
cHQpCit7CisgICAgcmVnaXN0ZXJNb2NrZWRDaHJvbWVVUkxMb2FkKCJoaXN0b3J5Lmh0bWwiKTsK
KworICAgIC8vIENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSB0aGUgV2ViVmlldy4KKyAgICBUZXN0V2Vi
RnJhbWVDbGllbnQgd2ViRnJhbWVDbGllbnQ7CisgICAgV2ViVmlldyogd2ViVmlldyA9IFdlYlZp
ZXc6OmNyZWF0ZSgwKTsKKyAgICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRKYXZhU2NyaXB0RW5h
YmxlZCh0cnVlKTsKKyAgICB3ZWJWaWV3LT5pbml0aWFsaXplTWFpbkZyYW1lKCZ3ZWJGcmFtZUNs
aWVudCk7CisKKyAgICBsb2FkQ2hyb21lRnJhbWUod2ViVmlldy0+bWFpbkZyYW1lKCksICJoaXN0
b3J5Lmh0bWwiKTsKKyAgICBzZXJ2ZVJlcXVlc3RzKCk7CisKKyAgICAvLyBUcnkgdG8gcnVuIEpT
IGFnYWluc3QgdGhlIGNocm9tZS1zdHlsZSBVUkwuCisgICAgV2ViQ29yZTo6U2NoZW1lUmVnaXN0
cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb3RBbGxvd2luZ0phdmFzY3JpcHRVUkxzKCJjaHJvbWUi
KTsKKyAgICBsb2FkRnJhbWUod2ViVmlldy0+bWFpbkZyYW1lKCksICJqYXZhc2NyaXB0OiIsICJk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdDbG9iYmVy
ZWQnKSkiKTsKKworICAgIC8vIE5vdyByZXRyaWV2ZSB0aGUgZnJhbWVzIHRleHQgYW5kIHNlZSBp
ZiBpdCB3YXMgY2xvYmJlcmVkLgorICAgIHN0ZDo6c3RyaW5nIGNvbnRlbnQgPSB3ZWJWaWV3LT5t
YWluRnJhbWUoKS0+Y29udGVudEFzVGV4dCgxMDI0KS51dGY4KCk7CisgICAgRVhQRUNUX05FKHN0
ZDo6c3RyaW5nOjpucG9zLCBjb250ZW50LmZpbmQoIlNpbXVsYXRlZCBDaHJvbWl1bSBIaXN0b3J5
IFBhZ2UiKSk7CisgICAgRVhQRUNUX0VRKHN0ZDo6c3RyaW5nOjpucG9zLCBjb250ZW50LmZpbmQo
IkNsb2JiZXJlZCIpKTsKIH0KKworfSAvLyBuYW1lc3BhY2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvZGF0YS9oaXN0b3J5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL2hpc3RvcnkuaHRtbAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS9oaXN0b3J5Lmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMyBAQAorPGJvZHk+CitTaW11bGF0ZWQgQ2hyb21pdW0gSGlzdG9yeSBQYWdl
Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104857</attachid>
            <date>2011-08-23 09:27:41 -0700</date>
            <delta_ts>2011-08-23 09:42:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66720-20110823092739.patch</filename>
            <type>text/plain</type>
            <size>11156</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzNTYzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMjIgIFRvbSBTZXBl
eiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJldmVudCBuYXZpZ2F0aW9uIHRv
IGphdmFzY3JpcHQ6IHVybHMgYWdhaW5zdCBzZW5zaXRpdmUgaW50ZXJuYWwgcGFnZXMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyMAorICAgICAg
ICAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMg
YXJlIHVuZGVyIGNocm9taXVtLyBkaXJlY3RvcnkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY2hl
bWVSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpub3RBbGxvd2luZ0phdmFzY3JpcHRV
UkxzU2NoZW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJV
UkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMpOgorICAgICAgICAoV2ViQ29yZTo6
U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb3RBbGxvd2luZ0phdmFzY3Jp
cHRVUkxzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oOgorCiAyMDExLTA4
LTIyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSFRNTFNvdXJj
ZVRyYWNrZXIgY3Jhc2hlcyB3aGVuIG5ldHdvcmsgcGFja2V0cyBicmVhayBwb29ybHkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAJKHJldmlzaW9uIDkz
NTQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDQsNiArMTA0LDEyIEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBjYW5E
aXNwbGF5T25seUlmQ2EKICAgICByZXR1cm4gY2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hl
bWVzOwogfQogCitzdGF0aWMgVVJMU2NoZW1lc01hcCYgbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJM
c1NjaGVtZXMoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgbm90
QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMsICgpKTsKKyAgICByZXR1cm4gbm90QWxsb3dp
bmdKYXZhc2NyaXB0VVJMc1NjaGVtZXM7Cit9CisKIHZvaWQgU2NoZW1lUmVnaXN0cnk6OnJlZ2lz
dGVyVVJMU2NoZW1lQXNMb2NhbChjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKICAgICBsb2NhbFVS
TFNjaGVtZXMoKS5hZGQoc2NoZW1lKTsKQEAgLTE5Miw0ICsxOTgsMTYgQEAgdm9pZCBTY2hlbWVS
ZWdpc3RyeTo6cmVnaXN0ZXJBc0NhbkRpc3BsYQogICAgIGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1
ZXN0U2NoZW1lcygpLmFkZChzY2hlbWUpOwogfQogCit2b2lkIFNjaGVtZVJlZ2lzdHJ5OjpyZWdp
c3RlclVSTFNjaGVtZUFzTm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyhjb25zdCBTdHJpbmcmIHNj
aGVtZSkgCit7CisgICAgbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMoKS5hZGQoc2No
ZW1lKTsKK30KKworYm9vbCBTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc05v
dEFsbG93aW5nSmF2YXNjcmlwdFVSTHMoY29uc3QgU3RyaW5nJiBzY2hlbWUpCit7CisgICAgaWYg
KHNjaGVtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbm90
QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMoKS5jb250YWlucyhzY2hlbWUpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hl
bWVSZWdpc3RyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVt
ZVJlZ2lzdHJ5LmgJKHJldmlzaW9uIDkzNTQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2NoZW1lUmVnaXN0cnkuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNiArNjMsMTEgQEAgcHVibGlj
OgogICAgIC8vIHBhc3NlZCB0byBTZWN1cml0eU9yaWdpbjo6Y2FuRGlzcGxheS4KICAgICBzdGF0
aWMgYm9vbCBjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdChjb25zdCBTdHJpbmcmIHNjaGVtZSk7
CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KGNv
bnN0IFN0cmluZyYgc2NoZW1lKTsKKworICAgIC8vIFNjaGVtZXMgYWdhaW5zdCB3aGljaCBqYXZh
c2NyaXB0OiBVUkxzIHNob3VsZCBub3QgYmUgYWxsb3dlZCB0byBydW4gKHN0b3AKKyAgICAvLyBi
b29rbWFya2xldHMgZnJvbSBydW5uaW5nIG9uIHNlbnNpdGl2ZSBwYWdlcykuIAorICAgIHN0YXRp
YyB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNOb3RBbGxvd2luZ0phdmFzY3JpcHRVUkxzKGNvbnN0
IFN0cmluZyYgc2NoZW1lKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdFVSTFNjaGVtZUFz
Tm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyhjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTZWN1cml0eVBvbGljeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlNlY3VyaXR5UG9saWN5LmgJKHJldmlzaW9uIDkzNTQ5KQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaAkod29ya2luZyBjb3B5
KQpAQCAtNzMsNiArNzMsMTAgQEAgcHVibGljOgogICAgIC8vIGJhc2VkIG9uIHRoZWlyIHJlc3Bl
Y3RpdmUgcHJvdG9jb2xzLgogICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGJvb2wgc2hvdWxkSGlk
ZVJlZmVycmVyKGNvbnN0IFdlYlVSTCYgdXJsLCBjb25zdCBXZWJTdHJpbmcmIHJlZmVycmVyKTsK
IAorICAgIC8vIFJlZ2lzdGVycyBhbiBVUkwgc2NoZW1lIHRvIG5vdCBhbGxvdyBtYW5pcHVsYXRp
b24gb2YgdGhlIGxvYWRlZCBwYWdlCisgICAgLy8gYnkgYm9va21hcmtsZXRzIG9yIGphdmFzY3Jp
cHQ6IFVSTHMgdHlwZWQgaW4gdGhlIG9tbmlib3guCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMg
dm9pZCByZWdpc3RlclVSTFNjaGVtZUFzTm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyhjb25zdCBX
ZWJTdHJpbmcmKTsKKwogcHJpdmF0ZToKICAgICBXZWJTZWN1cml0eVBvbGljeSgpOwogfTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkocmV2aXNp
b24gOTM1NDkpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjIsNiArMTIyLDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZVJl
cXVlc3QuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKICNpbmNsdWRlICJT
VkdTTUlMRWxlbWVudC5oIgorI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAi
U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNs
dWRlICJTY3JpcHRWYWx1ZS5oIgpAQCAtMjI4NCw2ICsyMjg1LDEwIEBAIHZvaWQgV2ViRnJhbWVJ
bXBsOjpsb2FkSmF2YVNjcmlwdFVSTChjb24KICAgICBpZiAoIW1fZnJhbWUtPmRvY3VtZW50KCkg
fHwgIW1fZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gUHJvdGVjdCBw
cml2aWxlZ2VkIHBhZ2VzIGFnYWluc3QgYm9va21hcmtsZXRzIGFuZCBvdGhlciBqYXZhc2NyaXB0
IG1hbmlwdWxhdGlvbnMuCisgICAgaWYgKFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNj
aGVtZUFzTm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyhtX2ZyYW1lLT5kb2N1bWVudCgpLT51cmwo
KS5wcm90b2NvbCgpKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgU3RyaW5nIHNjcmlwdCA9IGRl
Y29kZVVSTEVzY2FwZVNlcXVlbmNlcyh1cmwuc3RyaW5nKCkuc3Vic3RyaW5nKHN0cmxlbigiamF2
YXNjcmlwdDoiKSkpOwogICAgIFNjcmlwdFZhbHVlIHJlc3VsdCA9IG1fZnJhbWUtPnNjcmlwdCgp
LT5leGVjdXRlU2NyaXB0KHNjcmlwdCwgdHJ1ZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNlY3VyaXR5UG9saWN5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAJKHJldmlzaW9uIDkzNTQ5KQor
KysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VjdXJpdHlQb2xpY3kuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC05NCw0ICs5NCw5IEBAIGJvb2wgV2ViU2VjdXJpdHlQb2xpY3k6OnNob3Vs
ZEhpZGVSZWZlcnIKICAgICByZXR1cm4gU2VjdXJpdHlPcmlnaW46OnNob3VsZEhpZGVSZWZlcnJl
cih1cmwsIHJlZmVycmVyKTsKIH0KIAordm9pZCBXZWJTZWN1cml0eVBvbGljeTo6cmVnaXN0ZXJV
UkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMoY29uc3QgV2ViU3RyaW5nJiBzY2hl
bWUpCit7CisgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb3RBbGxvd2lu
Z0phdmFzY3JpcHRVUkxzKHNjaGVtZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAkocmV2
aXNpb24gOTM1NDkpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVz
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDx3ZWJraXQv
c3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oPgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVk
ZSAiV2ViRnJhbWVDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJTZWN1cml0eVBvbGljeS5oIgogI2lu
Y2x1ZGUgIldlYlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAi
V2ViVVJMLmgiCkBAIC01MCw3ICs1MSw4IEBAIG5hbWVzcGFjZSB7CiBjbGFzcyBXZWJGcmFtZVRl
c3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CiAgICAgV2ViRnJhbWVUZXN0KCkK
LSAgICAgICAgOiBiYXNlVVJMKCJodHRwOi8vd3d3LnRlc3QuY29tLyIpCisgICAgICAgIDogYmFz
ZVVSTCgiaHR0cDovL3d3dy50ZXN0LmNvbS8iKSwKKyAgICAgICAgICBjaHJvbWVVUkwoImNocm9t
ZTovLyIpCiAgICAgewogICAgIH0KIApAQCAtNTksNyArNjEsMzIgQEAgcHVibGljOgogICAgICAg
ICB3ZWJraXRfc3VwcG9ydDo6VW5yZWdpc3RlckFsbE1vY2tlZFVSTHMoKTsKICAgICB9CiAKLSAg
ICB2b2lkIHJlZ2lzdGVyTW9ja2VkVVJMTG9hZChjb25zdCBzdGQ6OnN0cmluZyYgZmlsZU5hbWUp
CisgICAgdm9pZCByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKGNvbnN0IHN0ZDo6c3RyaW5nJiBm
aWxlTmFtZSkKKyAgICB7CisgICAgICAgIHJlZ2lzdGVyTW9ja2VkVVJMTG9hZChiYXNlVVJMLCBm
aWxlTmFtZSk7CisgICAgfQorCisgICAgdm9pZCByZWdpc3Rlck1vY2tlZENocm9tZVVSTExvYWQo
Y29uc3Qgc3RkOjpzdHJpbmcmIGZpbGVOYW1lKQorICAgIHsKKyAgICAgICAgcmVnaXN0ZXJNb2Nr
ZWRVUkxMb2FkKGNocm9tZVVSTCwgZmlsZU5hbWUpOworICAgIH0KKworICAgIHZvaWQgc2VydmVS
ZXF1ZXN0cygpCisgICAgeworICAgICAgICB3ZWJraXRfc3VwcG9ydDo6U2VydmVBc3luY2hyb25v
dXNNb2NrZWRSZXF1ZXN0cygpOworICAgIH0KKworICAgIHZvaWQgbG9hZEh0dHBGcmFtZShXZWJG
cmFtZSogZnJhbWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlTmFtZSkKKyAgICB7CisgICAgICAg
IGxvYWRGcmFtZShmcmFtZSwgYmFzZVVSTCwgZmlsZU5hbWUpOworICAgIH0KKworICAgIHZvaWQg
bG9hZENocm9tZUZyYW1lKFdlYkZyYW1lKiBmcmFtZSwgY29uc3Qgc3RkOjpzdHJpbmcmIGZpbGVO
YW1lKQorICAgIHsKKyAgICAgICAgbG9hZEZyYW1lKGZyYW1lLCBjaHJvbWVVUkwsIGZpbGVOYW1l
KTsKKyAgICB9CisKKyAgICB2b2lkIHJlZ2lzdGVyTW9ja2VkVVJMTG9hZChjb25zdCBzdGQ6OnN0
cmluZyYgYmFzZSwgY29uc3Qgc3RkOjpzdHJpbmcmIGZpbGVOYW1lKQogICAgIHsKICAgICAgICAg
V2ViVVJMUmVzcG9uc2UgcmVzcG9uc2U7CiAgICAgICAgIHJlc3BvbnNlLmluaXRpYWxpemUoKTsK
QEAgLTY5LDI0ICs5NiwyMCBAQCBwdWJsaWM6CiAgICAgICAgIGZpbGVQYXRoICs9ICIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhLyI7CiAgICAgICAgIGZpbGVQYXRoICs9IGZpbGVO
YW1lOwogCi0gICAgICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rlck1vY2tlZFVSTChXZWJVUkwo
R1VSTChiYXNlVVJMICsgZmlsZU5hbWUpKSwgcmVzcG9uc2UsIFdlYlN0cmluZzo6ZnJvbVVURjgo
ZmlsZVBhdGgpKTsKLSAgICB9Ci0KLSAgICB2b2lkIHNlcnZlUmVxdWVzdHMoKQotICAgIHsKLSAg
ICAgICAgd2Via2l0X3N1cHBvcnQ6OlNlcnZlQXN5bmNocm9ub3VzTW9ja2VkUmVxdWVzdHMoKTsK
KyAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKFdlYlVSTChHVVJMKGJh
c2UgKyBmaWxlTmFtZSkpLCByZXNwb25zZSwgV2ViU3RyaW5nOjpmcm9tVVRGOChmaWxlUGF0aCkp
OwogICAgIH0KIAotICAgIHZvaWQgbG9hZEZyYW1lKFdlYkZyYW1lKiBmcmFtZSwgY29uc3Qgc3Rk
OjpzdHJpbmcmIGZpbGVOYW1lKQorICAgIHZvaWQgbG9hZEZyYW1lKFdlYkZyYW1lKiBmcmFtZSwg
Y29uc3Qgc3RkOjpzdHJpbmcmIGJhc2UsIGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlTmFtZSkKICAg
ICB7CiAgICAgICAgIFdlYlVSTFJlcXVlc3QgdXJsUmVxdWVzdDsKICAgICAgICAgdXJsUmVxdWVz
dC5pbml0aWFsaXplKCk7Ci0gICAgICAgIHVybFJlcXVlc3Quc2V0VVJMKFdlYlVSTChHVVJMKGJh
c2VVUkwgKyBmaWxlTmFtZSkpKTsKKyAgICAgICAgdXJsUmVxdWVzdC5zZXRVUkwoV2ViVVJMKEdV
UkwoYmFzZSArIGZpbGVOYW1lKSkpOwogICAgICAgICBmcmFtZS0+bG9hZFJlcXVlc3QodXJsUmVx
dWVzdCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CiAgICAgc3RkOjpzdHJpbmcgYmFzZVVSTDsKKyAg
ICBzdGQ6OnN0cmluZyBjaHJvbWVVUkw7CiB9OwogCiBjbGFzcyBUZXN0V2ViRnJhbWVDbGllbnQg
OiBwdWJsaWMgV2ViRnJhbWVDbGllbnQgewpAQCAtOTQsMTcgKzExNywxNyBAQCBjbGFzcyBUZXN0
V2ViRnJhbWVDbGllbnQgOiBwdWJsaWMgV2ViRnJhCiAKIFRFU1RfRihXZWJGcmFtZVRlc3QsIENv
bnRlbnRUZXh0KQogewotICAgIHJlZ2lzdGVyTW9ja2VkVVJMTG9hZCgiaWZyYW1lc190ZXN0Lmh0
bWwiKTsKLSAgICByZWdpc3Rlck1vY2tlZFVSTExvYWQoInZpc2libGVfaWZyYW1lLmh0bWwiKTsK
LSAgICByZWdpc3Rlck1vY2tlZFVSTExvYWQoImludmlzaWJsZV9pZnJhbWUuaHRtbCIpOwotICAg
IHJlZ2lzdGVyTW9ja2VkVVJMTG9hZCgiemVyb19zaXplZF9pZnJhbWUuaHRtbCIpOworICAgIHJl
Z2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoImlmcmFtZXNfdGVzdC5odG1sIik7CisgICAgcmVnaXN0
ZXJNb2NrZWRIdHRwVVJMTG9hZCgidmlzaWJsZV9pZnJhbWUuaHRtbCIpOworICAgIHJlZ2lzdGVy
TW9ja2VkSHR0cFVSTExvYWQoImludmlzaWJsZV9pZnJhbWUuaHRtbCIpOworICAgIHJlZ2lzdGVy
TW9ja2VkSHR0cFVSTExvYWQoInplcm9fc2l6ZWRfaWZyYW1lLmh0bWwiKTsKIAogICAgIC8vIENy
ZWF0ZSBhbmQgaW5pdGlhbGl6ZSB0aGUgV2ViVmlldy4KICAgICBUZXN0V2ViRnJhbWVDbGllbnQg
d2ViRnJhbWVDbGllbnQ7CiAgICAgV2ViVmlldyogd2ViVmlldyA9IFdlYlZpZXc6OmNyZWF0ZSgw
KTsKICAgICB3ZWJWaWV3LT5pbml0aWFsaXplTWFpbkZyYW1lKCZ3ZWJGcmFtZUNsaWVudCk7CiAK
LSAgICBsb2FkRnJhbWUod2ViVmlldy0+bWFpbkZyYW1lKCksICJpZnJhbWVzX3Rlc3QuaHRtbCIp
OworICAgIGxvYWRIdHRwRnJhbWUod2ViVmlldy0+bWFpbkZyYW1lKCksICJpZnJhbWVzX3Rlc3Qu
aHRtbCIpOwogICAgIHNlcnZlUmVxdWVzdHMoKTsKIAogICAgIC8vIE5vdyByZXRyaWV2ZSB0aGUg
ZnJhbWVzIHRleHQgYW5kIHRlc3QgaXQgb25seSBpbmNsdWRlcyB2aXNpYmxlIGVsZW1lbnRzLgpA
QCAtMTIwLDE4ICsxNDMsMTggQEAgVEVTVF9GKFdlYkZyYW1lVGVzdCwgQ29udGVudFRleHQpCiAK
IFRFU1RfRihXZWJGcmFtZVRlc3QsIEZyYW1lRm9yRW50ZXJlZENvbnRleHQpCiB7Ci0gICAgcmVn
aXN0ZXJNb2NrZWRVUkxMb2FkKCJpZnJhbWVzX3Rlc3QuaHRtbCIpOwotICAgIHJlZ2lzdGVyTW9j
a2VkVVJMTG9hZCgidmlzaWJsZV9pZnJhbWUuaHRtbCIpOwotICAgIHJlZ2lzdGVyTW9ja2VkVVJM
TG9hZCgiaW52aXNpYmxlX2lmcmFtZS5odG1sIik7Ci0gICAgcmVnaXN0ZXJNb2NrZWRVUkxMb2Fk
KCJ6ZXJvX3NpemVkX2lmcmFtZS5odG1sIik7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9h
ZCgiaWZyYW1lc190ZXN0Lmh0bWwiKTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJ2
aXNpYmxlX2lmcmFtZS5odG1sIik7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgiaW52
aXNpYmxlX2lmcmFtZS5odG1sIik7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgiemVy
b19zaXplZF9pZnJhbWUuaHRtbCIpOwogCiAgICAgLy8gQ3JlYXRlIGFuZCBpbml0aWFsaXplIHRo
ZSBXZWJWaWV3LgotICAgIFRlc3RXZWJGcmFtZUNsaWVudCB3ZWJGcmFtZUNsaWVudDsKKyAgICAg
VGVzdFdlYkZyYW1lQ2xpZW50IHdlYkZyYW1lQ2xpZW50OwogICAgIFdlYlZpZXcqIHdlYlZpZXcg
PSBXZWJWaWV3OjpjcmVhdGUoMCk7CiAgICAgd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0SmF2YVNj
cmlwdEVuYWJsZWQodHJ1ZSk7CiAgICAgd2ViVmlldy0+aW5pdGlhbGl6ZU1haW5GcmFtZSgmd2Vi
RnJhbWVDbGllbnQpOwogCi0gICAgbG9hZEZyYW1lKHdlYlZpZXctPm1haW5GcmFtZSgpLCAiaWZy
YW1lc190ZXN0Lmh0bWwiKTsKKyAgICBsb2FkSHR0cEZyYW1lKHdlYlZpZXctPm1haW5GcmFtZSgp
LCAiaWZyYW1lc190ZXN0Lmh0bWwiKTsKICAgICBzZXJ2ZVJlcXVlc3RzKCk7CiAKICAgICB2ODo6
SGFuZGxlU2NvcGUgc2NvcGU7CkBAIC0xNDUsNCArMTY4LDI3IEBAIFRFU1RfRihXZWJGcmFtZVRl
c3QsIEZyYW1lRm9yRW50ZXJlZENvbnQKICAgICB3ZWJWaWV3LT5jbG9zZSgpOwogfQogCitURVNU
X0YoV2ViRnJhbWVUZXN0LCBDaHJvbWVQYWdlTm9KYXZhc2NyaXB0KQoreworICAgIHJlZ2lzdGVy
TW9ja2VkQ2hyb21lVVJMTG9hZCgiaGlzdG9yeS5odG1sIik7CisKKyAgICAvLyBDcmVhdGUgYW5k
IGluaXRpYWxpemUgdGhlIFdlYlZpZXcuCisgICAgVGVzdFdlYkZyYW1lQ2xpZW50IHdlYkZyYW1l
Q2xpZW50OworICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBXZWJWaWV3OjpjcmVhdGUoMCk7CisgICAg
d2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0SmF2YVNjcmlwdEVuYWJsZWQodHJ1ZSk7CisgICAgd2Vi
Vmlldy0+aW5pdGlhbGl6ZU1haW5GcmFtZSgmd2ViRnJhbWVDbGllbnQpOworCisgICAgbG9hZENo
cm9tZUZyYW1lKHdlYlZpZXctPm1haW5GcmFtZSgpLCAiaGlzdG9yeS5odG1sIik7CisgICAgc2Vy
dmVSZXF1ZXN0cygpOworCisgICAgLy8gVHJ5IHRvIHJ1biBKUyBhZ2FpbnN0IHRoZSBjaHJvbWUt
c3R5bGUgVVJMLgorICAgIFdlYlNlY3VyaXR5UG9saWN5OjpyZWdpc3RlclVSTFNjaGVtZUFzTm90
QWxsb3dpbmdKYXZhc2NyaXB0VVJMcygiY2hyb21lIik7CisgICAgbG9hZEZyYW1lKHdlYlZpZXct
Pm1haW5GcmFtZSgpLCAiamF2YXNjcmlwdDoiLCAiZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnQ2xvYmJlcmVkJykpIik7CisKKyAgICAvLyBOb3cgcmV0
cmlldmUgdGhlIGZyYW1lcyB0ZXh0IGFuZCBzZWUgaWYgaXQgd2FzIGNsb2JiZXJlZC4KKyAgICBz
dGQ6OnN0cmluZyBjb250ZW50ID0gd2ViVmlldy0+bWFpbkZyYW1lKCktPmNvbnRlbnRBc1RleHQo
MTAyNCkudXRmOCgpOworICAgIEVYUEVDVF9ORShzdGQ6OnN0cmluZzo6bnBvcywgY29udGVudC5m
aW5kKCJTaW11bGF0ZWQgQ2hyb21pdW0gSGlzdG9yeSBQYWdlIikpOworICAgIEVYUEVDVF9FUShz
dGQ6OnN0cmluZzo6bnBvcywgY29udGVudC5maW5kKCJDbG9iYmVyZWQiKSk7CiB9CisKK30gLy8g
bmFtZXNwYWNlCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvaGlzdG9y
eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS9o
aXN0b3J5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L2RhdGEvaGlzdG9yeS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMgQEAKKzxib2R5Pgor
U2ltdWxhdGVkIENocm9taXVtIEhpc3RvcnkgUGFnZQorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104860</attachid>
            <date>2011-08-23 09:42:17 -0700</date>
            <delta_ts>2011-08-24 10:22:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66720-20110823094215.patch</filename>
            <type>text/plain</type>
            <size>12435</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzNjEwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMjMgIFRvbSBTZXBl
eiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgY2hyb21pdW0gV2ViRnJhbWVJbXBs
IC0gZG9uJ3QgbG9hZCBqYXZhc2NyaXB0IFVSTHMgYWdhaW5zdCBjaHJvbWUgaW50ZXJuYWwgcGFn
ZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Njcy
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6bm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb3RB
bGxvd2luZ0phdmFzY3JpcHRVUkxzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5
OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyk6CisgICAg
ICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuaDoKKwogMjAxMS0wOC0yMyAgSmVzc2llIEJl
cmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeC4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAJKHJldmlzaW9uIDkzNjEw
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDQsNiArMTA0LDEyIEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBjYW5EaXNw
bGF5T25seUlmQ2EKICAgICByZXR1cm4gY2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hlbWVz
OwogfQogCitzdGF0aWMgVVJMU2NoZW1lc01hcCYgbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1Nj
aGVtZXMoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgbm90QWxs
b3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMsICgpKTsKKyAgICByZXR1cm4gbm90QWxsb3dpbmdK
YXZhc2NyaXB0VVJMc1NjaGVtZXM7Cit9CisKIHZvaWQgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVy
VVJMU2NoZW1lQXNMb2NhbChjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKICAgICBsb2NhbFVSTFNj
aGVtZXMoKS5hZGQoc2NoZW1lKTsKQEAgLTE5Miw0ICsxOTgsMTYgQEAgdm9pZCBTY2hlbWVSZWdp
c3RyeTo6cmVnaXN0ZXJBc0NhbkRpc3BsYQogICAgIGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0
U2NoZW1lcygpLmFkZChzY2hlbWUpOwogfQogCit2b2lkIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3Rl
clVSTFNjaGVtZUFzTm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyhjb25zdCBTdHJpbmcmIHNjaGVt
ZSkgCit7CisgICAgbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMoKS5hZGQoc2NoZW1l
KTsKK30KKworYm9vbCBTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc05vdEFs
bG93aW5nSmF2YXNjcmlwdFVSTHMoY29uc3QgU3RyaW5nJiBzY2hlbWUpCit7CisgICAgaWYgKHNj
aGVtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbm90QWxs
b3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMoKS5jb250YWlucyhzY2hlbWUpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVS
ZWdpc3RyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJl
Z2lzdHJ5LmgJKHJldmlzaW9uIDkzNjEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2No
ZW1lUmVnaXN0cnkuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNiArNjMsMTEgQEAgcHVibGljOgog
ICAgIC8vIHBhc3NlZCB0byBTZWN1cml0eU9yaWdpbjo6Y2FuRGlzcGxheS4KICAgICBzdGF0aWMg
Ym9vbCBjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdChjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAg
ICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KGNvbnN0
IFN0cmluZyYgc2NoZW1lKTsKKworICAgIC8vIFNjaGVtZXMgYWdhaW5zdCB3aGljaCBqYXZhc2Ny
aXB0OiBVUkxzIHNob3VsZCBub3QgYmUgYWxsb3dlZCB0byBydW4gKHN0b3AKKyAgICAvLyBib29r
bWFya2xldHMgZnJvbSBydW5uaW5nIG9uIHNlbnNpdGl2ZSBwYWdlcykuIAorICAgIHN0YXRpYyB2
b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNOb3RBbGxvd2luZ0phdmFzY3JpcHRVUkxzKGNvbnN0IFN0
cmluZyYgc2NoZW1lKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdFVSTFNjaGVtZUFzTm90
QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyhjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNp
b24gOTM2MTApCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDExLTA4LTIzICBUb20gU2VwZXogIDx0c2VwZXpAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIGNocm9taXVtIFdlYkZyYW1lSW1wbCAtIGRvbid0IGxvYWQg
amF2YXNjcmlwdCBVUkxzIGFnYWluc3QgY2hyb21lIGludGVybmFsIHBhZ2VzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3MjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZWN1cml0
eVBvbGljeS5oOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUltcGw6OmxvYWRKYXZhU2NyaXB0VVJMKToKKyAgICAgICAgKiBzcmMvV2Vi
U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTZWN1cml0eVBvbGljeTo6
cmVnaXN0ZXJVUkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMpOgorICAgICAgICAq
IHRlc3RzL1dlYkZyYW1lVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lVGVzdDo6
V2ViRnJhbWVUZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVUZXN0OjpyZWdpc3Rlck1v
Y2tlZEh0dHBVUkxMb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVUZXN0OjpyZWdpc3Rl
ck1vY2tlZENocm9tZVVSTExvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVRlc3Q6OnNl
cnZlUmVxdWVzdHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVRlc3Q6OmxvYWRIdHRwRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVRlc3Q6OmxvYWRDaHJvbWVGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lVGVzdDo6cmVnaXN0ZXJNb2NrZWRVUkxMb2FkKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVUZXN0Ojpsb2FkRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpURVNUX0YpOgorICAgICAgICAqIHRlc3RzL2RhdGEvaGlzdG9yeS5odG1sOiBBZGRlZC4KKwog
MjAxMS0wOC0yMyAgTmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdkLCByb2xsIGNocm9taXVtIHJldmVyc2UgREVQUyA5NzY5ODo5NzgzNApJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eVBvbGljeS5oCShy
ZXZpc2lvbiA5MzYxMCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlY3Vy
aXR5UG9saWN5LmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDEwIEBAIHB1YmxpYzoKICAg
ICAvLyBiYXNlZCBvbiB0aGVpciByZXNwZWN0aXZlIHByb3RvY29scy4KICAgICBXRUJLSVRfRVhQ
T1JUIHN0YXRpYyBib29sIHNob3VsZEhpZGVSZWZlcnJlcihjb25zdCBXZWJVUkwmIHVybCwgY29u
c3QgV2ViU3RyaW5nJiByZWZlcnJlcik7CiAKKyAgICAvLyBSZWdpc3RlcnMgYW4gVVJMIHNjaGVt
ZSB0byBub3QgYWxsb3cgbWFuaXB1bGF0aW9uIG9mIHRoZSBsb2FkZWQgcGFnZQorICAgIC8vIGJ5
IGJvb2ttYXJrbGV0cyBvciBqYXZhc2NyaXB0OiBVUkxzIHR5cGVkIGluIHRoZSBvbW5pYm94Lgor
ICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc05vdEFsbG93
aW5nSmF2YXNjcmlwdFVSTHMoY29uc3QgV2ViU3RyaW5nJik7CisKIHByaXZhdGU6CiAgICAgV2Vi
U2VjdXJpdHlQb2xpY3koKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkZyYW1lSW1wbC5jcHAJKHJldmlzaW9uIDkzNjEwKQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDYgKzEyMiw3
IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRF
eHRlbnNpb25zLmgiCiAjaW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTY2hl
bWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJT
Y3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKQEAgLTIyODQsNiAr
MjI4NSwxMCBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6bG9hZEphdmFTY3JpcHRVUkwoY29uCiAgICAg
aWYgKCFtX2ZyYW1lLT5kb2N1bWVudCgpIHx8ICFtX2ZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIC8vIFByb3RlY3QgcHJpdmlsZWdlZCBwYWdlcyBhZ2FpbnN0IGJvb2ttYXJr
bGV0cyBhbmQgb3RoZXIgamF2YXNjcmlwdCBtYW5pcHVsYXRpb25zLgorICAgIGlmIChTY2hlbWVS
ZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMo
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkucHJvdG9jb2woKSkpCisgICAgICAgIHJldHVybjsK
KwogICAgIFN0cmluZyBzY3JpcHQgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXModXJsLnN0cmlu
ZygpLnN1YnN0cmluZyhzdHJsZW4oImphdmFzY3JpcHQ6IikpKTsKICAgICBTY3JpcHRWYWx1ZSBy
ZXN1bHQgPSBtX2ZyYW1lLT5zY3JpcHQoKS0+ZXhlY3V0ZVNjcmlwdChzY3JpcHQsIHRydWUpOwog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VjdXJpdHlQb2xp
Y3kuY3BwCShyZXZpc2lvbiA5MzYxMCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNlY3VyaXR5UG9saWN5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQsNCArOTQsOSBAQCBib29s
IFdlYlNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyCiAgICAgcmV0dXJuIFNlY3VyaXR5
T3JpZ2luOjpzaG91bGRIaWRlUmVmZXJyZXIodXJsLCByZWZlcnJlcik7CiB9CiAKK3ZvaWQgV2Vi
U2VjdXJpdHlQb2xpY3k6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb3RBbGxvd2luZ0phdmFzY3JpcHRV
UkxzKGNvbnN0IFdlYlN0cmluZyYgc2NoZW1lKQoreworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdp
c3RlclVSTFNjaGVtZUFzTm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyhzY2hlbWUpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
V2ViRnJhbWVUZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1dlYkZyYW1lVGVzdC5jcHAJKHJldmlzaW9uIDkzNjEwKQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICsz
NSw3IEBACiAjaW5jbHVkZSA8d2Via2l0L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuaD4KICNpbmNs
dWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lQ2xpZW50LmgiCisjaW5jbHVkZSAi
V2ViU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJXZWJTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlVSTC5oIgpAQCAtNTAsNyArNTEsOCBAQCBuYW1l
c3BhY2UgewogY2xhc3MgV2ViRnJhbWVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogcHVi
bGljOgogICAgIFdlYkZyYW1lVGVzdCgpCi0gICAgICAgIDogYmFzZVVSTCgiaHR0cDovL3d3dy50
ZXN0LmNvbS8iKQorICAgICAgICA6IGJhc2VVUkwoImh0dHA6Ly93d3cudGVzdC5jb20vIiksCisg
ICAgICAgICAgY2hyb21lVVJMKCJjaHJvbWU6Ly8iKQogICAgIHsKICAgICB9CiAKQEAgLTU5LDcg
KzYxLDMyIEBAIHB1YmxpYzoKICAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlVucmVnaXN0ZXJBbGxN
b2NrZWRVUkxzKCk7CiAgICAgfQogCi0gICAgdm9pZCByZWdpc3Rlck1vY2tlZFVSTExvYWQoY29u
c3Qgc3RkOjpzdHJpbmcmIGZpbGVOYW1lKQorICAgIHZvaWQgcmVnaXN0ZXJNb2NrZWRIdHRwVVJM
TG9hZChjb25zdCBzdGQ6OnN0cmluZyYgZmlsZU5hbWUpCisgICAgeworICAgICAgICByZWdpc3Rl
ck1vY2tlZFVSTExvYWQoYmFzZVVSTCwgZmlsZU5hbWUpOworICAgIH0KKworICAgIHZvaWQgcmVn
aXN0ZXJNb2NrZWRDaHJvbWVVUkxMb2FkKGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlTmFtZSkKKyAg
ICB7CisgICAgICAgIHJlZ2lzdGVyTW9ja2VkVVJMTG9hZChjaHJvbWVVUkwsIGZpbGVOYW1lKTsK
KyAgICB9CisKKyAgICB2b2lkIHNlcnZlUmVxdWVzdHMoKQorICAgIHsKKyAgICAgICAgd2Via2l0
X3N1cHBvcnQ6OlNlcnZlQXN5bmNocm9ub3VzTW9ja2VkUmVxdWVzdHMoKTsKKyAgICB9CisKKyAg
ICB2b2lkIGxvYWRIdHRwRnJhbWUoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYg
ZmlsZU5hbWUpCisgICAgeworICAgICAgICBsb2FkRnJhbWUoZnJhbWUsIGJhc2VVUkwsIGZpbGVO
YW1lKTsKKyAgICB9CisKKyAgICB2b2lkIGxvYWRDaHJvbWVGcmFtZShXZWJGcmFtZSogZnJhbWUs
IGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlTmFtZSkKKyAgICB7CisgICAgICAgIGxvYWRGcmFtZShm
cmFtZSwgY2hyb21lVVJMLCBmaWxlTmFtZSk7CisgICAgfQorCisgICAgdm9pZCByZWdpc3Rlck1v
Y2tlZFVSTExvYWQoY29uc3Qgc3RkOjpzdHJpbmcmIGJhc2UsIGNvbnN0IHN0ZDo6c3RyaW5nJiBm
aWxlTmFtZSkKICAgICB7CiAgICAgICAgIFdlYlVSTFJlc3BvbnNlIHJlc3BvbnNlOwogICAgICAg
ICByZXNwb25zZS5pbml0aWFsaXplKCk7CkBAIC02OSwyNCArOTYsMjAgQEAgcHVibGljOgogICAg
ICAgICBmaWxlUGF0aCArPSAiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS8iOwog
ICAgICAgICBmaWxlUGF0aCArPSBmaWxlTmFtZTsKIAotICAgICAgICB3ZWJraXRfc3VwcG9ydDo6
UmVnaXN0ZXJNb2NrZWRVUkwoV2ViVVJMKEdVUkwoYmFzZVVSTCArIGZpbGVOYW1lKSksIHJlc3Bv
bnNlLCBXZWJTdHJpbmc6OmZyb21VVEY4KGZpbGVQYXRoKSk7Ci0gICAgfQotCi0gICAgdm9pZCBz
ZXJ2ZVJlcXVlc3RzKCkKLSAgICB7Ci0gICAgICAgIHdlYmtpdF9zdXBwb3J0OjpTZXJ2ZUFzeW5j
aHJvbm91c01vY2tlZFJlcXVlc3RzKCk7CisgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rl
ck1vY2tlZFVSTChXZWJVUkwoR1VSTChiYXNlICsgZmlsZU5hbWUpKSwgcmVzcG9uc2UsIFdlYlN0
cmluZzo6ZnJvbVVURjgoZmlsZVBhdGgpKTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWRGcmFtZShX
ZWJGcmFtZSogZnJhbWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlTmFtZSkKKyAgICB2b2lkIGxv
YWRGcmFtZShXZWJGcmFtZSogZnJhbWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBiYXNlLCBjb25zdCBz
dGQ6OnN0cmluZyYgZmlsZU5hbWUpCiAgICAgewogICAgICAgICBXZWJVUkxSZXF1ZXN0IHVybFJl
cXVlc3Q7CiAgICAgICAgIHVybFJlcXVlc3QuaW5pdGlhbGl6ZSgpOwotICAgICAgICB1cmxSZXF1
ZXN0LnNldFVSTChXZWJVUkwoR1VSTChiYXNlVVJMICsgZmlsZU5hbWUpKSk7CisgICAgICAgIHVy
bFJlcXVlc3Quc2V0VVJMKFdlYlVSTChHVVJMKGJhc2UgKyBmaWxlTmFtZSkpKTsKICAgICAgICAg
ZnJhbWUtPmxvYWRSZXF1ZXN0KHVybFJlcXVlc3QpOwogICAgIH0KIAogcHJvdGVjdGVkOgogICAg
IHN0ZDo6c3RyaW5nIGJhc2VVUkw7CisgICAgc3RkOjpzdHJpbmcgY2hyb21lVVJMOwogfTsKIAog
Y2xhc3MgVGVzdFdlYkZyYW1lQ2xpZW50IDogcHVibGljIFdlYkZyYW1lQ2xpZW50IHsKQEAgLTk0
LDE3ICsxMTcsMTcgQEAgY2xhc3MgVGVzdFdlYkZyYW1lQ2xpZW50IDogcHVibGljIFdlYkZyYQog
CiBURVNUX0YoV2ViRnJhbWVUZXN0LCBDb250ZW50VGV4dCkKIHsKLSAgICByZWdpc3Rlck1vY2tl
ZFVSTExvYWQoImlmcmFtZXNfdGVzdC5odG1sIik7Ci0gICAgcmVnaXN0ZXJNb2NrZWRVUkxMb2Fk
KCJ2aXNpYmxlX2lmcmFtZS5odG1sIik7Ci0gICAgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKCJpbnZp
c2libGVfaWZyYW1lLmh0bWwiKTsKLSAgICByZWdpc3Rlck1vY2tlZFVSTExvYWQoInplcm9fc2l6
ZWRfaWZyYW1lLmh0bWwiKTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJpZnJhbWVz
X3Rlc3QuaHRtbCIpOworICAgIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoInZpc2libGVfaWZy
YW1lLmh0bWwiKTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJpbnZpc2libGVfaWZy
YW1lLmh0bWwiKTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJ6ZXJvX3NpemVkX2lm
cmFtZS5odG1sIik7CiAKICAgICAvLyBDcmVhdGUgYW5kIGluaXRpYWxpemUgdGhlIFdlYlZpZXcu
CiAgICAgVGVzdFdlYkZyYW1lQ2xpZW50IHdlYkZyYW1lQ2xpZW50OwogICAgIFdlYlZpZXcqIHdl
YlZpZXcgPSBXZWJWaWV3OjpjcmVhdGUoMCk7CiAgICAgd2ViVmlldy0+aW5pdGlhbGl6ZU1haW5G
cmFtZSgmd2ViRnJhbWVDbGllbnQpOwogCi0gICAgbG9hZEZyYW1lKHdlYlZpZXctPm1haW5GcmFt
ZSgpLCAiaWZyYW1lc190ZXN0Lmh0bWwiKTsKKyAgICBsb2FkSHR0cEZyYW1lKHdlYlZpZXctPm1h
aW5GcmFtZSgpLCAiaWZyYW1lc190ZXN0Lmh0bWwiKTsKICAgICBzZXJ2ZVJlcXVlc3RzKCk7CiAK
ICAgICAvLyBOb3cgcmV0cmlldmUgdGhlIGZyYW1lcyB0ZXh0IGFuZCB0ZXN0IGl0IG9ubHkgaW5j
bHVkZXMgdmlzaWJsZSBlbGVtZW50cy4KQEAgLTEyMCwxOCArMTQzLDE4IEBAIFRFU1RfRihXZWJG
cmFtZVRlc3QsIENvbnRlbnRUZXh0KQogCiBURVNUX0YoV2ViRnJhbWVUZXN0LCBGcmFtZUZvckVu
dGVyZWRDb250ZXh0KQogewotICAgIHJlZ2lzdGVyTW9ja2VkVVJMTG9hZCgiaWZyYW1lc190ZXN0
Lmh0bWwiKTsKLSAgICByZWdpc3Rlck1vY2tlZFVSTExvYWQoInZpc2libGVfaWZyYW1lLmh0bWwi
KTsKLSAgICByZWdpc3Rlck1vY2tlZFVSTExvYWQoImludmlzaWJsZV9pZnJhbWUuaHRtbCIpOwot
ICAgIHJlZ2lzdGVyTW9ja2VkVVJMTG9hZCgiemVyb19zaXplZF9pZnJhbWUuaHRtbCIpOworICAg
IHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoImlmcmFtZXNfdGVzdC5odG1sIik7CisgICAgcmVn
aXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgidmlzaWJsZV9pZnJhbWUuaHRtbCIpOworICAgIHJlZ2lz
dGVyTW9ja2VkSHR0cFVSTExvYWQoImludmlzaWJsZV9pZnJhbWUuaHRtbCIpOworICAgIHJlZ2lz
dGVyTW9ja2VkSHR0cFVSTExvYWQoInplcm9fc2l6ZWRfaWZyYW1lLmh0bWwiKTsKIAogICAgIC8v
IENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSB0aGUgV2ViVmlldy4KLSAgICBUZXN0V2ViRnJhbWVDbGll
bnQgd2ViRnJhbWVDbGllbnQ7CisgICAgIFRlc3RXZWJGcmFtZUNsaWVudCB3ZWJGcmFtZUNsaWVu
dDsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gV2ViVmlldzo6Y3JlYXRlKDApOwogICAgIHdlYlZp
ZXctPnNldHRpbmdzKCktPnNldEphdmFTY3JpcHRFbmFibGVkKHRydWUpOwogICAgIHdlYlZpZXct
PmluaXRpYWxpemVNYWluRnJhbWUoJndlYkZyYW1lQ2xpZW50KTsKIAotICAgIGxvYWRGcmFtZSh3
ZWJWaWV3LT5tYWluRnJhbWUoKSwgImlmcmFtZXNfdGVzdC5odG1sIik7CisgICAgbG9hZEh0dHBG
cmFtZSh3ZWJWaWV3LT5tYWluRnJhbWUoKSwgImlmcmFtZXNfdGVzdC5odG1sIik7CiAgICAgc2Vy
dmVSZXF1ZXN0cygpOwogCiAgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOwpAQCAtMTQ1LDQgKzE2
OCwyNyBAQCBURVNUX0YoV2ViRnJhbWVUZXN0LCBGcmFtZUZvckVudGVyZWRDb250CiAgICAgd2Vi
Vmlldy0+Y2xvc2UoKTsKIH0KIAorVEVTVF9GKFdlYkZyYW1lVGVzdCwgQ2hyb21lUGFnZU5vSmF2
YXNjcmlwdCkKK3sKKyAgICByZWdpc3Rlck1vY2tlZENocm9tZVVSTExvYWQoImhpc3RvcnkuaHRt
bCIpOworCisgICAgLy8gQ3JlYXRlIGFuZCBpbml0aWFsaXplIHRoZSBXZWJWaWV3LgorICAgIFRl
c3RXZWJGcmFtZUNsaWVudCB3ZWJGcmFtZUNsaWVudDsKKyAgICBXZWJWaWV3KiB3ZWJWaWV3ID0g
V2ViVmlldzo6Y3JlYXRlKDApOworICAgIHdlYlZpZXctPnNldHRpbmdzKCktPnNldEphdmFTY3Jp
cHRFbmFibGVkKHRydWUpOworICAgIHdlYlZpZXctPmluaXRpYWxpemVNYWluRnJhbWUoJndlYkZy
YW1lQ2xpZW50KTsKKworICAgIGxvYWRDaHJvbWVGcmFtZSh3ZWJWaWV3LT5tYWluRnJhbWUoKSwg
Imhpc3RvcnkuaHRtbCIpOworICAgIHNlcnZlUmVxdWVzdHMoKTsKKworICAgIC8vIFRyeSB0byBy
dW4gSlMgYWdhaW5zdCB0aGUgY2hyb21lLXN0eWxlIFVSTC4KKyAgICBXZWJTZWN1cml0eVBvbGlj
eTo6cmVnaXN0ZXJVUkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMoImNocm9tZSIp
OworICAgIGxvYWRGcmFtZSh3ZWJWaWV3LT5tYWluRnJhbWUoKSwgImphdmFzY3JpcHQ6IiwgImRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ0Nsb2JiZXJl
ZCcpKSIpOworCisgICAgLy8gTm93IHJldHJpZXZlIHRoZSBmcmFtZXMgdGV4dCBhbmQgc2VlIGlm
IGl0IHdhcyBjbG9iYmVyZWQuCisgICAgc3RkOjpzdHJpbmcgY29udGVudCA9IHdlYlZpZXctPm1h
aW5GcmFtZSgpLT5jb250ZW50QXNUZXh0KDEwMjQpLnV0ZjgoKTsKKyAgICBFWFBFQ1RfTkUoc3Rk
OjpzdHJpbmc6Om5wb3MsIGNvbnRlbnQuZmluZCgiU2ltdWxhdGVkIENocm9taXVtIEhpc3Rvcnkg
UGFnZSIpKTsKKyAgICBFWFBFQ1RfRVEoc3RkOjpzdHJpbmc6Om5wb3MsIGNvbnRlbnQuZmluZCgi
Q2xvYmJlcmVkIikpOwogfQorCit9IC8vIG5hbWVzcGFjZQpJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9kYXRhL2hpc3RvcnkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvaGlzdG9yeS5odG1sCShyZXZpc2lvbiAwKQorKysgU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL2hpc3RvcnkuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwzIEBACis8Ym9keT4KK1NpbXVsYXRlZCBDaHJvbWl1bSBIaXN0b3J5IFBhZ2UK
KzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105013</attachid>
            <date>2011-08-24 10:22:08 -0700</date>
            <delta_ts>2011-08-24 11:55:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66720-20110824102206.patch</filename>
            <type>text/plain</type>
            <size>12711</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzNjEwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDgtMjMgIFRvbSBTZXBl
eiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgY2hyb21pdW0gV2ViRnJhbWVJbXBs
IC0gZG9uJ3QgbG9hZCBqYXZhc2NyaXB0IFVSTHMgYWdhaW5zdCBjaHJvbWUgaW50ZXJuYWwKKyAg
ICAgICAgcGFnZXMuICBBZGRzIGEgbWVjaGFuaXNtIGZvciByZWdpc3RlcmluZyBzZW5zaXRpdmUg
c2NoZW1lcyB3aGljaCBzaG91bGQgCisgICAgICAgIG5vdCBiZSBzdWJqZWN0IHRvIG1hbmlwdWxh
dGlvbiBieSBqYXZhc2NyaXB0IHVybHMgdHlwZWQgaW50byBhIGxvY2F0aW9uIGJhcgorICAgICAg
ICBvciwgbW9yZSBpbXBvcnRhbnRseSwgdGhlaXIgYm9va21hcmtsZXQgZXF1aXZhbGVudHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IENocm9t
aXVtIFdlYktpdCBBUEkgdW5pdCB0ZXN0IGluIGNocm9taXVtIHNwZWNpZmljIGRpcmVjdG9yeS4K
KyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6bm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMpOgorICAgICAgICAo
V2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb3RBbGxvd2luZ0ph
dmFzY3JpcHRVUkxzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRU
cmVhdFVSTFNjaGVtZUFzTm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyk6CisgICAgICAgICogcGxh
dGZvcm0vU2NoZW1lUmVnaXN0cnkuaDoKKwogMjAxMS0wOC0yMyAgSmVzc2llIEJlcmxpbiAgPGpi
ZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeC4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAJKHJldmlzaW9uIDkzNjEwKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDQsNiArMTA0LDEyIEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBjYW5EaXNwbGF5T25seUlm
Q2EKICAgICByZXR1cm4gY2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hlbWVzOwogfQogCitz
dGF0aWMgVVJMU2NoZW1lc01hcCYgbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMoKQor
eworICAgIERFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgbm90QWxsb3dpbmdKYXZh
c2NyaXB0VVJMc1NjaGVtZXMsICgpKTsKKyAgICByZXR1cm4gbm90QWxsb3dpbmdKYXZhc2NyaXB0
VVJMc1NjaGVtZXM7Cit9CisKIHZvaWQgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1l
QXNMb2NhbChjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKICAgICBsb2NhbFVSTFNjaGVtZXMoKS5h
ZGQoc2NoZW1lKTsKQEAgLTE5Miw0ICsxOTgsMTYgQEAgdm9pZCBTY2hlbWVSZWdpc3RyeTo6cmVn
aXN0ZXJBc0NhbkRpc3BsYQogICAgIGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0U2NoZW1lcygp
LmFkZChzY2hlbWUpOwogfQogCit2b2lkIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVt
ZUFzTm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyhjb25zdCBTdHJpbmcmIHNjaGVtZSkgCit7Cisg
ICAgbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMoKS5hZGQoc2NoZW1lKTsKK30KKwor
Ym9vbCBTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc05vdEFsbG93aW5nSmF2
YXNjcmlwdFVSTHMoY29uc3QgU3RyaW5nJiBzY2hlbWUpCit7CisgICAgaWYgKHNjaGVtZS5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbm90QWxsb3dpbmdKYXZh
c2NyaXB0VVJMc1NjaGVtZXMoKS5jb250YWlucyhzY2hlbWUpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmgJ
KHJldmlzaW9uIDkzNjEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0
cnkuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNiArNjMsMTEgQEAgcHVibGljOgogICAgIC8vIHBh
c3NlZCB0byBTZWN1cml0eU9yaWdpbjo6Y2FuRGlzcGxheS4KICAgICBzdGF0aWMgYm9vbCBjYW5E
aXNwbGF5T25seUlmQ2FuUmVxdWVzdChjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAgICAgc3RhdGlj
IHZvaWQgcmVnaXN0ZXJBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KGNvbnN0IFN0cmluZyYg
c2NoZW1lKTsKKworICAgIC8vIFNjaGVtZXMgYWdhaW5zdCB3aGljaCBqYXZhc2NyaXB0OiBVUkxz
IHNob3VsZCBub3QgYmUgYWxsb3dlZCB0byBydW4gKHN0b3AKKyAgICAvLyBib29rbWFya2xldHMg
ZnJvbSBydW5uaW5nIG9uIHNlbnNpdGl2ZSBwYWdlcykuIAorICAgIHN0YXRpYyB2b2lkIHJlZ2lz
dGVyVVJMU2NoZW1lQXNOb3RBbGxvd2luZ0phdmFzY3JpcHRVUkxzKGNvbnN0IFN0cmluZyYgc2No
ZW1lKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdFVSTFNjaGVtZUFzTm90QWxsb3dpbmdK
YXZhc2NyaXB0VVJMcyhjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gOTM2MTAp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI3IEBACisyMDExLTA4LTIzICBUb20gU2VwZXogIDx0c2VwZXpAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIGNocm9taXVtIFdlYkZyYW1lSW1wbCAtIGRvbid0IGxvYWQgamF2YXNjcmlw
dCBVUkxzIGFnYWluc3QgY2hyb21lIGludGVybmFsIHBhZ2VzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3MjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZWN1cml0eVBvbGljeS5o
OgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZUltcGw6OmxvYWRKYXZhU2NyaXB0VVJMKToKKyAgICAgICAgKiBzcmMvV2ViU2VjdXJpdHlQ
b2xpY3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTZWN1cml0eVBvbGljeTo6cmVnaXN0ZXJV
UkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMpOgorICAgICAgICAqIHRlc3RzL1dl
YkZyYW1lVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lVGVzdDo6V2ViRnJhbWVU
ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVUZXN0OjpyZWdpc3Rlck1vY2tlZEh0dHBV
UkxMb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVUZXN0OjpyZWdpc3Rlck1vY2tlZENo
cm9tZVVSTExvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVRlc3Q6OnNlcnZlUmVxdWVz
dHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVRlc3Q6OmxvYWRIdHRwRnJhbWUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZVRlc3Q6OmxvYWRDaHJvbWVGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lVGVzdDo6cmVnaXN0ZXJNb2NrZWRVUkxMb2FkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVUZXN0Ojpsb2FkRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpURVNUX0Yp
OgorICAgICAgICAqIHRlc3RzL2RhdGEvaGlzdG9yeS5odG1sOiBBZGRlZC4KKwogMjAxMS0wOC0y
MyAgTmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdkLCBy
b2xsIGNocm9taXVtIHJldmVyc2UgREVQUyA5NzY5ODo5NzgzNApJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eVBvbGljeS5oCShyZXZpc2lvbiA5
MzYxMCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlY3VyaXR5UG9saWN5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDEwIEBAIHB1YmxpYzoKICAgICAvLyBiYXNl
ZCBvbiB0aGVpciByZXNwZWN0aXZlIHByb3RvY29scy4KICAgICBXRUJLSVRfRVhQT1JUIHN0YXRp
YyBib29sIHNob3VsZEhpZGVSZWZlcnJlcihjb25zdCBXZWJVUkwmIHVybCwgY29uc3QgV2ViU3Ry
aW5nJiByZWZlcnJlcik7CiAKKyAgICAvLyBSZWdpc3RlcnMgYW4gVVJMIHNjaGVtZSB0byBub3Qg
YWxsb3cgbWFuaXB1bGF0aW9uIG9mIHRoZSBsb2FkZWQgcGFnZQorICAgIC8vIGJ5IGJvb2ttYXJr
bGV0cyBvciBqYXZhc2NyaXB0OiBVUkxzIHR5cGVkIGluIHRoZSBvbW5pYm94LgorICAgIFdFQktJ
VF9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNj
cmlwdFVSTHMoY29uc3QgV2ViU3RyaW5nJik7CisKIHByaXZhdGU6CiAgICAgV2ViU2VjdXJpdHlQ
b2xpY3koKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUlt
cGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1l
SW1wbC5jcHAJKHJldmlzaW9uIDkzNjEwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRnJhbWVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDYgKzEyMiw3IEBACiAjaW5j
bHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25z
LmgiCiAjaW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTY2hlbWVSZWdpc3Ry
eS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRTb3Vy
Y2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKQEAgLTIyODQsNiArMjI4NSwxMCBA
QCB2b2lkIFdlYkZyYW1lSW1wbDo6bG9hZEphdmFTY3JpcHRVUkwoY29uCiAgICAgaWYgKCFtX2Zy
YW1lLT5kb2N1bWVudCgpIHx8ICFtX2ZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIC8vIFByb3RlY3QgcHJpdmlsZWdlZCBwYWdlcyBhZ2FpbnN0IGJvb2ttYXJrbGV0cyBhbmQg
b3RoZXIgamF2YXNjcmlwdCBtYW5pcHVsYXRpb25zLgorICAgIGlmIChTY2hlbWVSZWdpc3RyeTo6
c2hvdWxkVHJlYXRVUkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMobV9mcmFtZS0+
ZG9jdW1lbnQoKS0+dXJsKCkucHJvdG9jb2woKSkpCisgICAgICAgIHJldHVybjsKKwogICAgIFN0
cmluZyBzY3JpcHQgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXModXJsLnN0cmluZygpLnN1YnN0
cmluZyhzdHJsZW4oImphdmFzY3JpcHQ6IikpKTsKICAgICBTY3JpcHRWYWx1ZSByZXN1bHQgPSBt
X2ZyYW1lLT5zY3JpcHQoKS0+ZXhlY3V0ZVNjcmlwdChzY3JpcHQsIHRydWUpOwogCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VjdXJpdHlQb2xpY3kuY3BwCShy
ZXZpc2lvbiA5MzYxMCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5
UG9saWN5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQsNCArOTQsOSBAQCBib29sIFdlYlNlY3Vy
aXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyCiAgICAgcmV0dXJuIFNlY3VyaXR5T3JpZ2luOjpz
aG91bGRIaWRlUmVmZXJyZXIodXJsLCByZWZlcnJlcik7CiB9CiAKK3ZvaWQgV2ViU2VjdXJpdHlQ
b2xpY3k6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb3RBbGxvd2luZ0phdmFzY3JpcHRVUkxzKGNvbnN0
IFdlYlN0cmluZyYgc2NoZW1lKQoreworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNj
aGVtZUFzTm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyhzY2hlbWUpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVU
ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZy
YW1lVGVzdC5jcHAJKHJldmlzaW9uIDkzNjEwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAj
aW5jbHVkZSA8d2Via2l0L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuaD4KICNpbmNsdWRlICJXZWJG
cmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViU2VjdXJp
dHlQb2xpY3kuaCIKICNpbmNsdWRlICJXZWJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYlN0cmlu
Zy5oIgogI2luY2x1ZGUgIldlYlVSTC5oIgpAQCAtNTAsNyArNTEsOCBAQCBuYW1lc3BhY2Ugewog
Y2xhc3MgV2ViRnJhbWVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgogICAg
IFdlYkZyYW1lVGVzdCgpCi0gICAgICAgIDogYmFzZVVSTCgiaHR0cDovL3d3dy50ZXN0LmNvbS8i
KQorICAgICAgICA6IGJhc2VVUkwoImh0dHA6Ly93d3cudGVzdC5jb20vIiksCisgICAgICAgICAg
Y2hyb21lVVJMKCJjaHJvbWU6Ly8iKQogICAgIHsKICAgICB9CiAKQEAgLTU5LDcgKzYxLDMyIEBA
IHB1YmxpYzoKICAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlVucmVnaXN0ZXJBbGxNb2NrZWRVUkxz
KCk7CiAgICAgfQogCi0gICAgdm9pZCByZWdpc3Rlck1vY2tlZFVSTExvYWQoY29uc3Qgc3RkOjpz
dHJpbmcmIGZpbGVOYW1lKQorICAgIHZvaWQgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZChjb25z
dCBzdGQ6OnN0cmluZyYgZmlsZU5hbWUpCisgICAgeworICAgICAgICByZWdpc3Rlck1vY2tlZFVS
TExvYWQoYmFzZVVSTCwgZmlsZU5hbWUpOworICAgIH0KKworICAgIHZvaWQgcmVnaXN0ZXJNb2Nr
ZWRDaHJvbWVVUkxMb2FkKGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlTmFtZSkKKyAgICB7CisgICAg
ICAgIHJlZ2lzdGVyTW9ja2VkVVJMTG9hZChjaHJvbWVVUkwsIGZpbGVOYW1lKTsKKyAgICB9CisK
KyAgICB2b2lkIHNlcnZlUmVxdWVzdHMoKQorICAgIHsKKyAgICAgICAgd2Via2l0X3N1cHBvcnQ6
OlNlcnZlQXN5bmNocm9ub3VzTW9ja2VkUmVxdWVzdHMoKTsKKyAgICB9CisKKyAgICB2b2lkIGxv
YWRIdHRwRnJhbWUoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYgZmlsZU5hbWUp
CisgICAgeworICAgICAgICBsb2FkRnJhbWUoZnJhbWUsIGJhc2VVUkwsIGZpbGVOYW1lKTsKKyAg
ICB9CisKKyAgICB2b2lkIGxvYWRDaHJvbWVGcmFtZShXZWJGcmFtZSogZnJhbWUsIGNvbnN0IHN0
ZDo6c3RyaW5nJiBmaWxlTmFtZSkKKyAgICB7CisgICAgICAgIGxvYWRGcmFtZShmcmFtZSwgY2hy
b21lVVJMLCBmaWxlTmFtZSk7CisgICAgfQorCisgICAgdm9pZCByZWdpc3Rlck1vY2tlZFVSTExv
YWQoY29uc3Qgc3RkOjpzdHJpbmcmIGJhc2UsIGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlTmFtZSkK
ICAgICB7CiAgICAgICAgIFdlYlVSTFJlc3BvbnNlIHJlc3BvbnNlOwogICAgICAgICByZXNwb25z
ZS5pbml0aWFsaXplKCk7CkBAIC02OSwyNCArOTYsMjAgQEAgcHVibGljOgogICAgICAgICBmaWxl
UGF0aCArPSAiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS8iOwogICAgICAgICBm
aWxlUGF0aCArPSBmaWxlTmFtZTsKIAotICAgICAgICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0ZXJN
b2NrZWRVUkwoV2ViVVJMKEdVUkwoYmFzZVVSTCArIGZpbGVOYW1lKSksIHJlc3BvbnNlLCBXZWJT
dHJpbmc6OmZyb21VVEY4KGZpbGVQYXRoKSk7Ci0gICAgfQotCi0gICAgdm9pZCBzZXJ2ZVJlcXVl
c3RzKCkKLSAgICB7Ci0gICAgICAgIHdlYmtpdF9zdXBwb3J0OjpTZXJ2ZUFzeW5jaHJvbm91c01v
Y2tlZFJlcXVlc3RzKCk7CisgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rlck1vY2tlZFVS
TChXZWJVUkwoR1VSTChiYXNlICsgZmlsZU5hbWUpKSwgcmVzcG9uc2UsIFdlYlN0cmluZzo6ZnJv
bVVURjgoZmlsZVBhdGgpKTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWRGcmFtZShXZWJGcmFtZSog
ZnJhbWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlTmFtZSkKKyAgICB2b2lkIGxvYWRGcmFtZShX
ZWJGcmFtZSogZnJhbWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBiYXNlLCBjb25zdCBzdGQ6OnN0cmlu
ZyYgZmlsZU5hbWUpCiAgICAgewogICAgICAgICBXZWJVUkxSZXF1ZXN0IHVybFJlcXVlc3Q7CiAg
ICAgICAgIHVybFJlcXVlc3QuaW5pdGlhbGl6ZSgpOwotICAgICAgICB1cmxSZXF1ZXN0LnNldFVS
TChXZWJVUkwoR1VSTChiYXNlVVJMICsgZmlsZU5hbWUpKSk7CisgICAgICAgIHVybFJlcXVlc3Qu
c2V0VVJMKFdlYlVSTChHVVJMKGJhc2UgKyBmaWxlTmFtZSkpKTsKICAgICAgICAgZnJhbWUtPmxv
YWRSZXF1ZXN0KHVybFJlcXVlc3QpOwogICAgIH0KIAogcHJvdGVjdGVkOgogICAgIHN0ZDo6c3Ry
aW5nIGJhc2VVUkw7CisgICAgc3RkOjpzdHJpbmcgY2hyb21lVVJMOwogfTsKIAogY2xhc3MgVGVz
dFdlYkZyYW1lQ2xpZW50IDogcHVibGljIFdlYkZyYW1lQ2xpZW50IHsKQEAgLTk0LDE3ICsxMTcs
MTcgQEAgY2xhc3MgVGVzdFdlYkZyYW1lQ2xpZW50IDogcHVibGljIFdlYkZyYQogCiBURVNUX0Yo
V2ViRnJhbWVUZXN0LCBDb250ZW50VGV4dCkKIHsKLSAgICByZWdpc3Rlck1vY2tlZFVSTExvYWQo
ImlmcmFtZXNfdGVzdC5odG1sIik7Ci0gICAgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKCJ2aXNpYmxl
X2lmcmFtZS5odG1sIik7Ci0gICAgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKCJpbnZpc2libGVfaWZy
YW1lLmh0bWwiKTsKLSAgICByZWdpc3Rlck1vY2tlZFVSTExvYWQoInplcm9fc2l6ZWRfaWZyYW1l
Lmh0bWwiKTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJpZnJhbWVzX3Rlc3QuaHRt
bCIpOworICAgIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoInZpc2libGVfaWZyYW1lLmh0bWwi
KTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJpbnZpc2libGVfaWZyYW1lLmh0bWwi
KTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJ6ZXJvX3NpemVkX2lmcmFtZS5odG1s
Iik7CiAKICAgICAvLyBDcmVhdGUgYW5kIGluaXRpYWxpemUgdGhlIFdlYlZpZXcuCiAgICAgVGVz
dFdlYkZyYW1lQ2xpZW50IHdlYkZyYW1lQ2xpZW50OwogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBX
ZWJWaWV3OjpjcmVhdGUoMCk7CiAgICAgd2ViVmlldy0+aW5pdGlhbGl6ZU1haW5GcmFtZSgmd2Vi
RnJhbWVDbGllbnQpOwogCi0gICAgbG9hZEZyYW1lKHdlYlZpZXctPm1haW5GcmFtZSgpLCAiaWZy
YW1lc190ZXN0Lmh0bWwiKTsKKyAgICBsb2FkSHR0cEZyYW1lKHdlYlZpZXctPm1haW5GcmFtZSgp
LCAiaWZyYW1lc190ZXN0Lmh0bWwiKTsKICAgICBzZXJ2ZVJlcXVlc3RzKCk7CiAKICAgICAvLyBO
b3cgcmV0cmlldmUgdGhlIGZyYW1lcyB0ZXh0IGFuZCB0ZXN0IGl0IG9ubHkgaW5jbHVkZXMgdmlz
aWJsZSBlbGVtZW50cy4KQEAgLTEyMCwxOCArMTQzLDE4IEBAIFRFU1RfRihXZWJGcmFtZVRlc3Qs
IENvbnRlbnRUZXh0KQogCiBURVNUX0YoV2ViRnJhbWVUZXN0LCBGcmFtZUZvckVudGVyZWRDb250
ZXh0KQogewotICAgIHJlZ2lzdGVyTW9ja2VkVVJMTG9hZCgiaWZyYW1lc190ZXN0Lmh0bWwiKTsK
LSAgICByZWdpc3Rlck1vY2tlZFVSTExvYWQoInZpc2libGVfaWZyYW1lLmh0bWwiKTsKLSAgICBy
ZWdpc3Rlck1vY2tlZFVSTExvYWQoImludmlzaWJsZV9pZnJhbWUuaHRtbCIpOwotICAgIHJlZ2lz
dGVyTW9ja2VkVVJMTG9hZCgiemVyb19zaXplZF9pZnJhbWUuaHRtbCIpOworICAgIHJlZ2lzdGVy
TW9ja2VkSHR0cFVSTExvYWQoImlmcmFtZXNfdGVzdC5odG1sIik7CisgICAgcmVnaXN0ZXJNb2Nr
ZWRIdHRwVVJMTG9hZCgidmlzaWJsZV9pZnJhbWUuaHRtbCIpOworICAgIHJlZ2lzdGVyTW9ja2Vk
SHR0cFVSTExvYWQoImludmlzaWJsZV9pZnJhbWUuaHRtbCIpOworICAgIHJlZ2lzdGVyTW9ja2Vk
SHR0cFVSTExvYWQoInplcm9fc2l6ZWRfaWZyYW1lLmh0bWwiKTsKIAogICAgIC8vIENyZWF0ZSBh
bmQgaW5pdGlhbGl6ZSB0aGUgV2ViVmlldy4KLSAgICBUZXN0V2ViRnJhbWVDbGllbnQgd2ViRnJh
bWVDbGllbnQ7CisgICAgIFRlc3RXZWJGcmFtZUNsaWVudCB3ZWJGcmFtZUNsaWVudDsKICAgICBX
ZWJWaWV3KiB3ZWJWaWV3ID0gV2ViVmlldzo6Y3JlYXRlKDApOwogICAgIHdlYlZpZXctPnNldHRp
bmdzKCktPnNldEphdmFTY3JpcHRFbmFibGVkKHRydWUpOwogICAgIHdlYlZpZXctPmluaXRpYWxp
emVNYWluRnJhbWUoJndlYkZyYW1lQ2xpZW50KTsKIAotICAgIGxvYWRGcmFtZSh3ZWJWaWV3LT5t
YWluRnJhbWUoKSwgImlmcmFtZXNfdGVzdC5odG1sIik7CisgICAgbG9hZEh0dHBGcmFtZSh3ZWJW
aWV3LT5tYWluRnJhbWUoKSwgImlmcmFtZXNfdGVzdC5odG1sIik7CiAgICAgc2VydmVSZXF1ZXN0
cygpOwogCiAgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOwpAQCAtMTQ1LDQgKzE2OCwyNyBAQCBU
RVNUX0YoV2ViRnJhbWVUZXN0LCBGcmFtZUZvckVudGVyZWRDb250CiAgICAgd2ViVmlldy0+Y2xv
c2UoKTsKIH0KIAorVEVTVF9GKFdlYkZyYW1lVGVzdCwgQ2hyb21lUGFnZU5vSmF2YXNjcmlwdCkK
K3sKKyAgICByZWdpc3Rlck1vY2tlZENocm9tZVVSTExvYWQoImhpc3RvcnkuaHRtbCIpOworCisg
ICAgLy8gQ3JlYXRlIGFuZCBpbml0aWFsaXplIHRoZSBXZWJWaWV3LgorICAgIFRlc3RXZWJGcmFt
ZUNsaWVudCB3ZWJGcmFtZUNsaWVudDsKKyAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gV2ViVmlldzo6
Y3JlYXRlKDApOworICAgIHdlYlZpZXctPnNldHRpbmdzKCktPnNldEphdmFTY3JpcHRFbmFibGVk
KHRydWUpOworICAgIHdlYlZpZXctPmluaXRpYWxpemVNYWluRnJhbWUoJndlYkZyYW1lQ2xpZW50
KTsKKworICAgIGxvYWRDaHJvbWVGcmFtZSh3ZWJWaWV3LT5tYWluRnJhbWUoKSwgImhpc3Rvcnku
aHRtbCIpOworICAgIHNlcnZlUmVxdWVzdHMoKTsKKworICAgIC8vIFRyeSB0byBydW4gSlMgYWdh
aW5zdCB0aGUgY2hyb21lLXN0eWxlIFVSTC4KKyAgICBXZWJTZWN1cml0eVBvbGljeTo6cmVnaXN0
ZXJVUkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMoImNocm9tZSIpOworICAgIGxv
YWRGcmFtZSh3ZWJWaWV3LT5tYWluRnJhbWUoKSwgImphdmFzY3JpcHQ6IiwgImRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ0Nsb2JiZXJlZCcpKSIpOwor
CisgICAgLy8gTm93IHJldHJpZXZlIHRoZSBmcmFtZXMgdGV4dCBhbmQgc2VlIGlmIGl0IHdhcyBj
bG9iYmVyZWQuCisgICAgc3RkOjpzdHJpbmcgY29udGVudCA9IHdlYlZpZXctPm1haW5GcmFtZSgp
LT5jb250ZW50QXNUZXh0KDEwMjQpLnV0ZjgoKTsKKyAgICBFWFBFQ1RfTkUoc3RkOjpzdHJpbmc6
Om5wb3MsIGNvbnRlbnQuZmluZCgiU2ltdWxhdGVkIENocm9taXVtIEhpc3RvcnkgUGFnZSIpKTsK
KyAgICBFWFBFQ1RfRVEoc3RkOjpzdHJpbmc6Om5wb3MsIGNvbnRlbnQuZmluZCgiQ2xvYmJlcmVk
IikpOwogfQorCit9IC8vIG5hbWVzcGFjZQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9kYXRhL2hpc3RvcnkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL2RhdGEvaGlzdG9yeS5odG1sCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9kYXRhL2hpc3RvcnkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwzIEBACis8Ym9keT4KK1NpbXVsYXRlZCBDaHJvbWl1bSBIaXN0b3J5IFBhZ2UKKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105033</attachid>
            <date>2011-08-24 11:55:09 -0700</date>
            <delta_ts>2011-08-24 14:06:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66720-20110824115507.patch</filename>
            <type>text/plain</type>
            <size>13287</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzNzE2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDgtMjMgIFRvbSBTZXBl
eiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgY2hyb21pdW0gV2ViRnJhbWVJbXBs
IC0gZG9uJ3QgbG9hZCBqYXZhc2NyaXB0IFVSTHMgYWdhaW5zdCBjaHJvbWUgaW50ZXJuYWwKKyAg
ICAgICAgcGFnZXMuICBBZGRzIGEgbWVjaGFuaXNtIGZvciByZWdpc3RlcmluZyBzZW5zaXRpdmUg
c2NoZW1lcyB3aGljaCBzaG91bGQgCisgICAgICAgIG5vdCBiZSBzdWJqZWN0IHRvIG1hbmlwdWxh
dGlvbiBieSBqYXZhc2NyaXB0IHVybHMgdHlwZWQgaW50byBhIGxvY2F0aW9uIGJhcgorICAgICAg
ICBvciwgbW9yZSBpbXBvcnRhbnRseSwgdGhlaXIgYm9va21hcmtsZXQgZXF1aXZhbGVudHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IENocm9t
aXVtIFdlYktpdCBBUEkgdW5pdCB0ZXN0IGluIGNocm9taXVtIHNwZWNpZmljIGRpcmVjdG9yeS4K
KyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6bm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMpOgorICAgICAgICAo
V2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb3RBbGxvd2luZ0ph
dmFzY3JpcHRVUkxzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRU
cmVhdFVSTFNjaGVtZUFzTm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyk6CisgICAgICAgICogcGxh
dGZvcm0vU2NoZW1lUmVnaXN0cnkuaDoKKwogMjAxMS0wOC0yNCAgVG9tbXkgV2lkZW5mbHljaHQg
IDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IGFkZCBjcmVh
dGVPYmplY3RVUkwgZnVuY3Rpb25hbGl0eQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2NoZW1lUmVnaXN0cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1NjaGVtZVJlZ2lzdHJ5LmNwcAkocmV2aXNpb24gOTM3MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw2ICsxMDQs
MTIgQEAgc3RhdGljIFVSTFNjaGVtZXNNYXAmIGNhbkRpc3BsYXlPbmx5SWZDYQogICAgIHJldHVy
biBjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdFNjaGVtZXM7CiB9CiAKK3N0YXRpYyBVUkxTY2hl
bWVzTWFwJiBub3RBbGxvd2luZ0phdmFzY3JpcHRVUkxzU2NoZW1lcygpCit7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBub3RBbGxvd2luZ0phdmFzY3JpcHRVUkxzU2No
ZW1lcywgKCkpOworICAgIHJldHVybiBub3RBbGxvd2luZ0phdmFzY3JpcHRVUkxzU2NoZW1lczsK
K30KKwogdm9pZCBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKGNvbnN0
IFN0cmluZyYgc2NoZW1lKQogewogICAgIGxvY2FsVVJMU2NoZW1lcygpLmFkZChzY2hlbWUpOwpA
QCAtMTkyLDQgKzE5OCwxNiBAQCB2b2lkIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlckFzQ2FuRGlz
cGxhCiAgICAgY2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hlbWVzKCkuYWRkKHNjaGVtZSk7
CiB9CiAKK3ZvaWQgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb3RBbGxvd2lu
Z0phdmFzY3JpcHRVUkxzKGNvbnN0IFN0cmluZyYgc2NoZW1lKSAKK3sKKyAgICBub3RBbGxvd2lu
Z0phdmFzY3JpcHRVUkxzU2NoZW1lcygpLmFkZChzY2hlbWUpOworfQorCitib29sIFNjaGVtZVJl
Z2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyhj
b25zdCBTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICBpZiAoc2NoZW1lLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBub3RBbGxvd2luZ0phdmFzY3JpcHRVUkxzU2No
ZW1lcygpLmNvbnRhaW5zKHNjaGVtZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuaAkocmV2aXNpb24gOTM3
MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oCSh3b3JraW5n
IGNvcHkpCkBAIC02Myw2ICs2MywxMSBAQCBwdWJsaWM6CiAgICAgLy8gcGFzc2VkIHRvIFNlY3Vy
aXR5T3JpZ2luOjpjYW5EaXNwbGF5LgogICAgIHN0YXRpYyBib29sIGNhbkRpc3BsYXlPbmx5SWZD
YW5SZXF1ZXN0KGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rl
ckFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QoY29uc3QgU3RyaW5nJiBzY2hlbWUpOworCisg
ICAgLy8gU2NoZW1lcyBhZ2FpbnN0IHdoaWNoIGphdmFzY3JpcHQ6IFVSTHMgc2hvdWxkIG5vdCBi
ZSBhbGxvd2VkIHRvIHJ1biAoc3RvcAorICAgIC8vIGJvb2ttYXJrbGV0cyBmcm9tIHJ1bm5pbmcg
b24gc2Vuc2l0aXZlIHBhZ2VzKS4gCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVB
c05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMoY29uc3QgU3RyaW5nJiBzY2hlbWUpOworICAgIHN0
YXRpYyBib29sIHNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb3RBbGxvd2luZ0phdmFzY3JpcHRVUkxz
KGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5MzcxNikKKysrIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAK
KzIwMTEtMDgtMjMgIFRvbSBTZXBleiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
Y2hyb21pdW0gV2ViRnJhbWVJbXBsIC0gZG9uJ3QgbG9hZCBqYXZhc2NyaXB0IFVSTHMgYWdhaW5z
dCBjaHJvbWUgaW50ZXJuYWwgcGFnZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NjcyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcHVibGljL1dlYlNlY3VyaXR5UG9saWN5Lmg6CisgICAgICAgICog
c3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6bG9h
ZEphdmFTY3JpcHRVUkwpOgorICAgICAgICAqIHNyYy9XZWJTZWN1cml0eVBvbGljeS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlY3VyaXR5UG9saWN5OjpyZWdpc3RlclVSTFNjaGVtZUFzTm90
QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyk6CisgICAgICAgICogdGVzdHMvV2ViRnJhbWVUZXN0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVUZXN0OjpXZWJGcmFtZVRlc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZVRlc3Q6OnJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZVRlc3Q6OnJlZ2lzdGVyTW9ja2VkQ2hyb21lVVJMTG9hZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lVGVzdDo6c2VydmVSZXF1ZXN0cyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lVGVzdDo6bG9hZEh0dHBGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lVGVzdDo6bG9hZENocm9tZUZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVUZXN0OjpyZWdpc3Rlck1vY2tlZFVSTExvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZVRlc3Q6OmxvYWRGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlRFU1RfRik6CisgICAgICAgICog
dGVzdHMvZGF0YS9oaXN0b3J5Lmh0bWw6IEFkZGVkLgorCiAyMDExLTA4LTI0ICBKZXJlbXkgQXB0
aG9ycCAgPGplcmVteWFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBFeHBvc2UgZnVsbHNjcmVlbiBB
UEkgb24gV2ViRWxlbWVudC9XZWJEb2N1bWVudApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eVBvbGljeS5oCShyZXZpc2lvbiA5MzcxNikKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlY3VyaXR5UG9saWN5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTczLDYgKzczLDEwIEBAIHB1YmxpYzoKICAgICAvLyBiYXNlZCBvbiB0aGVp
ciByZXNwZWN0aXZlIHByb3RvY29scy4KICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBib29sIHNo
b3VsZEhpZGVSZWZlcnJlcihjb25zdCBXZWJVUkwmIHVybCwgY29uc3QgV2ViU3RyaW5nJiByZWZl
cnJlcik7CiAKKyAgICAvLyBSZWdpc3RlcnMgYW4gVVJMIHNjaGVtZSB0byBub3QgYWxsb3cgbWFu
aXB1bGF0aW9uIG9mIHRoZSBsb2FkZWQgcGFnZQorICAgIC8vIGJ5IGJvb2ttYXJrbGV0cyBvciBq
YXZhc2NyaXB0OiBVUkxzIHR5cGVkIGluIHRoZSBvbW5pYm94LgorICAgIFdFQktJVF9FWFBPUlQg
c3RhdGljIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMo
Y29uc3QgV2ViU3RyaW5nJik7CisKIHByaXZhdGU6CiAgICAgV2ViU2VjdXJpdHlQb2xpY3koKTsK
IH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJ
KHJldmlzaW9uIDkzNzE2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDYgKzEyMiw3IEBACiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCiAjaW5j
bHVkZSAiU1ZHU01JTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgogI2lu
Y2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgi
CiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKQEAgLTIyOTUsNiArMjI5NiwxMCBAQCB2b2lkIFdl
YkZyYW1lSW1wbDo6bG9hZEphdmFTY3JpcHRVUkwoY29uCiAgICAgaWYgKCFtX2ZyYW1lLT5kb2N1
bWVudCgpIHx8ICFtX2ZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIFBy
b3RlY3QgcHJpdmlsZWdlZCBwYWdlcyBhZ2FpbnN0IGJvb2ttYXJrbGV0cyBhbmQgb3RoZXIgamF2
YXNjcmlwdCBtYW5pcHVsYXRpb25zLgorICAgIGlmIChTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJl
YXRVUkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMobV9mcmFtZS0+ZG9jdW1lbnQo
KS0+dXJsKCkucHJvdG9jb2woKSkpCisgICAgICAgIHJldHVybjsKKwogICAgIFN0cmluZyBzY3Jp
cHQgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXModXJsLnN0cmluZygpLnN1YnN0cmluZyhzdHJs
ZW4oImphdmFzY3JpcHQ6IikpKTsKICAgICBTY3JpcHRWYWx1ZSByZXN1bHQgPSBtX2ZyYW1lLT5z
Y3JpcHQoKS0+ZXhlY3V0ZVNjcmlwdChzY3JpcHQsIHRydWUpOwogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VjdXJpdHlQb2xpY3kuY3BwCShyZXZpc2lvbiA5
MzcxNikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5UG9saWN5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtOTQsNCArOTQsOSBAQCBib29sIFdlYlNlY3VyaXR5UG9saWN5
OjpzaG91bGRIaWRlUmVmZXJyCiAgICAgcmV0dXJuIFNlY3VyaXR5T3JpZ2luOjpzaG91bGRIaWRl
UmVmZXJyZXIodXJsLCByZWZlcnJlcik7CiB9CiAKK3ZvaWQgV2ViU2VjdXJpdHlQb2xpY3k6OnJl
Z2lzdGVyVVJMU2NoZW1lQXNOb3RBbGxvd2luZ0phdmFzY3JpcHRVUkxzKGNvbnN0IFdlYlN0cmlu
ZyYgc2NoZW1lKQoreworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzTm90
QWxsb3dpbmdKYXZhc2NyaXB0VVJMcyhzY2hlbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5j
cHAJKHJldmlzaW9uIDkzNzE2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJG
cmFtZVRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
V2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYlNl
YXJjaGFibGVGb3JtRGF0YS5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5UG9saWN5LmgiCiAjaW5j
bHVkZSAiV2ViU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlICJX
ZWJVUkwuaCIKQEAgLTUzLDcgKzU0LDggQEAgbmFtZXNwYWNlIHsKIGNsYXNzIFdlYkZyYW1lVGVz
dCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKICAgICBXZWJGcmFtZVRlc3QoKQot
ICAgICAgICA6IGJhc2VVUkwoImh0dHA6Ly93d3cudGVzdC5jb20vIikKKyAgICAgICAgOiBiYXNl
VVJMKCJodHRwOi8vd3d3LnRlc3QuY29tLyIpLAorICAgICAgICAgIGNocm9tZVVSTCgiY2hyb21l
Oi8vIikKICAgICB7CiAgICAgfQogCkBAIC02Miw3ICs2NCwzMiBAQCBwdWJsaWM6CiAgICAgICAg
IHdlYmtpdF9zdXBwb3J0OjpVbnJlZ2lzdGVyQWxsTW9ja2VkVVJMcygpOwogICAgIH0KIAotICAg
IHZvaWQgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlTmFtZSkK
KyAgICB2b2lkIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoY29uc3Qgc3RkOjpzdHJpbmcmIGZp
bGVOYW1lKQorICAgIHsKKyAgICAgICAgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKGJhc2VVUkwsIGZp
bGVOYW1lKTsKKyAgICB9CisKKyAgICB2b2lkIHJlZ2lzdGVyTW9ja2VkQ2hyb21lVVJMTG9hZChj
b25zdCBzdGQ6OnN0cmluZyYgZmlsZU5hbWUpCisgICAgeworICAgICAgICByZWdpc3Rlck1vY2tl
ZFVSTExvYWQoY2hyb21lVVJMLCBmaWxlTmFtZSk7CisgICAgfQorCisgICAgdm9pZCBzZXJ2ZVJl
cXVlc3RzKCkKKyAgICB7CisgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpTZXJ2ZUFzeW5jaHJvbm91
c01vY2tlZFJlcXVlc3RzKCk7CisgICAgfQorCisgICAgdm9pZCBsb2FkSHR0cEZyYW1lKFdlYkZy
YW1lKiBmcmFtZSwgY29uc3Qgc3RkOjpzdHJpbmcmIGZpbGVOYW1lKQorICAgIHsKKyAgICAgICAg
bG9hZEZyYW1lKGZyYW1lLCBiYXNlVVJMLCBmaWxlTmFtZSk7CisgICAgfQorCisgICAgdm9pZCBs
b2FkQ2hyb21lRnJhbWUoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYgZmlsZU5h
bWUpCisgICAgeworICAgICAgICBsb2FkRnJhbWUoZnJhbWUsIGNocm9tZVVSTCwgZmlsZU5hbWUp
OworICAgIH0KKworICAgIHZvaWQgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKGNvbnN0IHN0ZDo6c3Ry
aW5nJiBiYXNlLCBjb25zdCBzdGQ6OnN0cmluZyYgZmlsZU5hbWUpCiAgICAgewogICAgICAgICBX
ZWJVUkxSZXNwb25zZSByZXNwb25zZTsKICAgICAgICAgcmVzcG9uc2UuaW5pdGlhbGl6ZSgpOwpA
QCAtNzIsMjQgKzk5LDIwIEBAIHB1YmxpYzoKICAgICAgICAgZmlsZVBhdGggKz0gIi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvIjsKICAgICAgICAgZmlsZVBhdGggKz0gZmlsZU5h
bWU7CiAKLSAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlJlZ2lzdGVyTW9ja2VkVVJMKFdlYlVSTChH
VVJMKGJhc2VVUkwgKyBmaWxlTmFtZSkpLCByZXNwb25zZSwgV2ViU3RyaW5nOjpmcm9tVVRGOChm
aWxlUGF0aCkpOwotICAgIH0KLQotICAgIHZvaWQgc2VydmVSZXF1ZXN0cygpCi0gICAgewotICAg
ICAgICB3ZWJraXRfc3VwcG9ydDo6U2VydmVBc3luY2hyb25vdXNNb2NrZWRSZXF1ZXN0cygpOwor
ICAgICAgICB3ZWJraXRfc3VwcG9ydDo6UmVnaXN0ZXJNb2NrZWRVUkwoV2ViVVJMKEdVUkwoYmFz
ZSArIGZpbGVOYW1lKSksIHJlc3BvbnNlLCBXZWJTdHJpbmc6OmZyb21VVEY4KGZpbGVQYXRoKSk7
CiAgICAgfQogCi0gICAgdm9pZCBsb2FkRnJhbWUoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBzdGQ6
OnN0cmluZyYgZmlsZU5hbWUpCisgICAgdm9pZCBsb2FkRnJhbWUoV2ViRnJhbWUqIGZyYW1lLCBj
b25zdCBzdGQ6OnN0cmluZyYgYmFzZSwgY29uc3Qgc3RkOjpzdHJpbmcmIGZpbGVOYW1lKQogICAg
IHsKICAgICAgICAgV2ViVVJMUmVxdWVzdCB1cmxSZXF1ZXN0OwogICAgICAgICB1cmxSZXF1ZXN0
LmluaXRpYWxpemUoKTsKLSAgICAgICAgdXJsUmVxdWVzdC5zZXRVUkwoV2ViVVJMKEdVUkwoYmFz
ZVVSTCArIGZpbGVOYW1lKSkpOworICAgICAgICB1cmxSZXF1ZXN0LnNldFVSTChXZWJVUkwoR1VS
TChiYXNlICsgZmlsZU5hbWUpKSk7CiAgICAgICAgIGZyYW1lLT5sb2FkUmVxdWVzdCh1cmxSZXF1
ZXN0KTsKICAgICB9CiAKIHByb3RlY3RlZDoKICAgICBzdGQ6OnN0cmluZyBiYXNlVVJMOworICAg
IHN0ZDo6c3RyaW5nIGNocm9tZVVSTDsKIH07CiAKIGNsYXNzIFRlc3RXZWJGcmFtZUNsaWVudCA6
IHB1YmxpYyBXZWJGcmFtZUNsaWVudCB7CkBAIC05NywxNyArMTIwLDE3IEBAIGNsYXNzIFRlc3RX
ZWJGcmFtZUNsaWVudCA6IHB1YmxpYyBXZWJGcmEKIAogVEVTVF9GKFdlYkZyYW1lVGVzdCwgQ29u
dGVudFRleHQpCiB7Ci0gICAgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKCJpZnJhbWVzX3Rlc3QuaHRt
bCIpOwotICAgIHJlZ2lzdGVyTW9ja2VkVVJMTG9hZCgidmlzaWJsZV9pZnJhbWUuaHRtbCIpOwot
ICAgIHJlZ2lzdGVyTW9ja2VkVVJMTG9hZCgiaW52aXNpYmxlX2lmcmFtZS5odG1sIik7Ci0gICAg
cmVnaXN0ZXJNb2NrZWRVUkxMb2FkKCJ6ZXJvX3NpemVkX2lmcmFtZS5odG1sIik7CisgICAgcmVn
aXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgiaWZyYW1lc190ZXN0Lmh0bWwiKTsKKyAgICByZWdpc3Rl
ck1vY2tlZEh0dHBVUkxMb2FkKCJ2aXNpYmxlX2lmcmFtZS5odG1sIik7CisgICAgcmVnaXN0ZXJN
b2NrZWRIdHRwVVJMTG9hZCgiaW52aXNpYmxlX2lmcmFtZS5odG1sIik7CisgICAgcmVnaXN0ZXJN
b2NrZWRIdHRwVVJMTG9hZCgiemVyb19zaXplZF9pZnJhbWUuaHRtbCIpOwogCiAgICAgLy8gQ3Jl
YXRlIGFuZCBpbml0aWFsaXplIHRoZSBXZWJWaWV3LgogICAgIFRlc3RXZWJGcmFtZUNsaWVudCB3
ZWJGcmFtZUNsaWVudDsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gV2ViVmlldzo6Y3JlYXRlKDAp
OwogICAgIHdlYlZpZXctPmluaXRpYWxpemVNYWluRnJhbWUoJndlYkZyYW1lQ2xpZW50KTsKIAot
ICAgIGxvYWRGcmFtZSh3ZWJWaWV3LT5tYWluRnJhbWUoKSwgImlmcmFtZXNfdGVzdC5odG1sIik7
CisgICAgbG9hZEh0dHBGcmFtZSh3ZWJWaWV3LT5tYWluRnJhbWUoKSwgImlmcmFtZXNfdGVzdC5o
dG1sIik7CiAgICAgc2VydmVSZXF1ZXN0cygpOwogCiAgICAgLy8gTm93IHJldHJpZXZlIHRoZSBm
cmFtZXMgdGV4dCBhbmQgdGVzdCBpdCBvbmx5IGluY2x1ZGVzIHZpc2libGUgZWxlbWVudHMuCkBA
IC0xMjMsMTggKzE0NiwxOCBAQCBURVNUX0YoV2ViRnJhbWVUZXN0LCBDb250ZW50VGV4dCkKIAog
VEVTVF9GKFdlYkZyYW1lVGVzdCwgRnJhbWVGb3JFbnRlcmVkQ29udGV4dCkKIHsKLSAgICByZWdp
c3Rlck1vY2tlZFVSTExvYWQoImlmcmFtZXNfdGVzdC5odG1sIik7Ci0gICAgcmVnaXN0ZXJNb2Nr
ZWRVUkxMb2FkKCJ2aXNpYmxlX2lmcmFtZS5odG1sIik7Ci0gICAgcmVnaXN0ZXJNb2NrZWRVUkxM
b2FkKCJpbnZpc2libGVfaWZyYW1lLmh0bWwiKTsKLSAgICByZWdpc3Rlck1vY2tlZFVSTExvYWQo
Inplcm9fc2l6ZWRfaWZyYW1lLmh0bWwiKTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2Fk
KCJpZnJhbWVzX3Rlc3QuaHRtbCIpOworICAgIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoInZp
c2libGVfaWZyYW1lLmh0bWwiKTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJpbnZp
c2libGVfaWZyYW1lLmh0bWwiKTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJ6ZXJv
X3NpemVkX2lmcmFtZS5odG1sIik7CiAKICAgICAvLyBDcmVhdGUgYW5kIGluaXRpYWxpemUgdGhl
IFdlYlZpZXcuCi0gICAgVGVzdFdlYkZyYW1lQ2xpZW50IHdlYkZyYW1lQ2xpZW50OworICAgICBU
ZXN0V2ViRnJhbWVDbGllbnQgd2ViRnJhbWVDbGllbnQ7CiAgICAgV2ViVmlldyogd2ViVmlldyA9
IFdlYlZpZXc6OmNyZWF0ZSgwKTsKICAgICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRKYXZhU2Ny
aXB0RW5hYmxlZCh0cnVlKTsKICAgICB3ZWJWaWV3LT5pbml0aWFsaXplTWFpbkZyYW1lKCZ3ZWJG
cmFtZUNsaWVudCk7CiAKLSAgICBsb2FkRnJhbWUod2ViVmlldy0+bWFpbkZyYW1lKCksICJpZnJh
bWVzX3Rlc3QuaHRtbCIpOworICAgIGxvYWRIdHRwRnJhbWUod2ViVmlldy0+bWFpbkZyYW1lKCks
ICJpZnJhbWVzX3Rlc3QuaHRtbCIpOwogICAgIHNlcnZlUmVxdWVzdHMoKTsKIAogICAgIHY4OjpI
YW5kbGVTY29wZSBzY29wZTsKQEAgLTE1MCwxMyArMTczLDEzIEBAIFRFU1RfRihXZWJGcmFtZVRl
c3QsIEZyYW1lRm9yRW50ZXJlZENvbnQKIAogVEVTVF9GKFdlYkZyYW1lVGVzdCwgRm9ybVdpdGhO
dWxsRnJhbWUpCiB7Ci0gICAgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKCJmb3JtLmh0bWwiKTsKKyAg
ICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJmb3JtLmh0bWwiKTsKIAogICAgIFRlc3RXZWJG
cmFtZUNsaWVudCB3ZWJGcmFtZUNsaWVudDsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gV2ViVmll
dzo6Y3JlYXRlKDApOwogICAgIHdlYlZpZXctPmluaXRpYWxpemVNYWluRnJhbWUoJndlYkZyYW1l
Q2xpZW50KTsKIAotICAgIGxvYWRGcmFtZSh3ZWJWaWV3LT5tYWluRnJhbWUoKSwgImZvcm0uaHRt
bCIpOworICAgIGxvYWRIdHRwRnJhbWUod2ViVmlldy0+bWFpbkZyYW1lKCksICJmb3JtLmh0bWwi
KTsKICAgICBzZXJ2ZVJlcXVlc3RzKCk7CiAKICAgICBXZWJWZWN0b3I8V2ViRm9ybUVsZW1lbnQ+
IGZvcm1zOwpAQCAtMTY5LDQgKzE5MiwyNyBAQCBURVNUX0YoV2ViRnJhbWVUZXN0LCBGb3JtV2l0
aE51bGxGcmFtZSkKICAgICBXZWJTZWFyY2hhYmxlRm9ybURhdGEgc2VhcmNoYWJsZURhdGFGb3Jt
KGZvcm1zWzBdKTsKIH0KIAorVEVTVF9GKFdlYkZyYW1lVGVzdCwgQ2hyb21lUGFnZU5vSmF2YXNj
cmlwdCkKK3sKKyAgICByZWdpc3Rlck1vY2tlZENocm9tZVVSTExvYWQoImhpc3RvcnkuaHRtbCIp
OworCisgICAgLy8gQ3JlYXRlIGFuZCBpbml0aWFsaXplIHRoZSBXZWJWaWV3LgorICAgIFRlc3RX
ZWJGcmFtZUNsaWVudCB3ZWJGcmFtZUNsaWVudDsKKyAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gV2Vi
Vmlldzo6Y3JlYXRlKDApOworICAgIHdlYlZpZXctPnNldHRpbmdzKCktPnNldEphdmFTY3JpcHRF
bmFibGVkKHRydWUpOworICAgIHdlYlZpZXctPmluaXRpYWxpemVNYWluRnJhbWUoJndlYkZyYW1l
Q2xpZW50KTsKKworICAgIGxvYWRDaHJvbWVGcmFtZSh3ZWJWaWV3LT5tYWluRnJhbWUoKSwgImhp
c3RvcnkuaHRtbCIpOworICAgIHNlcnZlUmVxdWVzdHMoKTsKKworICAgIC8vIFRyeSB0byBydW4g
SlMgYWdhaW5zdCB0aGUgY2hyb21lLXN0eWxlIFVSTC4KKyAgICBXZWJTZWN1cml0eVBvbGljeTo6
cmVnaXN0ZXJVUkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMoImNocm9tZSIpOwor
ICAgIGxvYWRGcmFtZSh3ZWJWaWV3LT5tYWluRnJhbWUoKSwgImphdmFzY3JpcHQ6IiwgImRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ0Nsb2JiZXJlZCcp
KSIpOworCisgICAgLy8gTm93IHJldHJpZXZlIHRoZSBmcmFtZXMgdGV4dCBhbmQgc2VlIGlmIGl0
IHdhcyBjbG9iYmVyZWQuCisgICAgc3RkOjpzdHJpbmcgY29udGVudCA9IHdlYlZpZXctPm1haW5G
cmFtZSgpLT5jb250ZW50QXNUZXh0KDEwMjQpLnV0ZjgoKTsKKyAgICBFWFBFQ1RfTkUoc3RkOjpz
dHJpbmc6Om5wb3MsIGNvbnRlbnQuZmluZCgiU2ltdWxhdGVkIENocm9taXVtIEhpc3RvcnkgUGFn
ZSIpKTsKKyAgICBFWFBFQ1RfRVEoc3RkOjpzdHJpbmc6Om5wb3MsIGNvbnRlbnQuZmluZCgiQ2xv
YmJlcmVkIikpOwogfQorCit9IC8vIG5hbWVzcGFjZQpJbmRleDogU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9kYXRhL2hpc3RvcnkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL2RhdGEvaGlzdG9yeS5odG1sCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL2hpc3RvcnkuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzIEBACis8Ym9keT4KK1NpbXVsYXRlZCBDaHJvbWl1bSBIaXN0b3J5IFBhZ2UKKzwv
Ym9keT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>