<?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>45310</bug_id>
          
          <creation_ts>2010-09-07 10:40:02 -0700</creation_ts>
          <short_desc>Support &lt;script async&gt; as specified by HTML5</short_desc>
          <delta_ts>2011-05-25 15:06:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>20710</blocked>
    
    <blocked>61473</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Tony Gentilcore">tonyg</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>peter</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>275144</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-09-07 10:40:02 -0700</bug_when>
    <thetext>Support &lt;script async&gt; as specified by HTML5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275154</commentid>
    <comment_count>1</comment_count>
      <attachid>66741</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-09-07 10:52:02 -0700</bug_when>
    <thetext>Created attachment 66741
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275175</commentid>
    <comment_count>2</comment_count>
      <attachid>66741</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-07 11:18:15 -0700</bug_when>
    <thetext>Comment on attachment 66741
Patch

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

Looks fantastic.  Please figure out the non-async blocking onload or not before landing.

&gt; WebCore/dom/AsyncScriptRunner.cpp:88
&gt; +    if (Frame* frame = m_document-&gt;frame())
&gt; +        frame-&gt;loader()-&gt;checkCompleted();
You should add your comment from the changelog here.  It&apos;s not immediately obvious why we do this.

&gt; WebCore/loader/FrameLoader.cpp:841
&gt; +    if (m_frame-&gt;document()-&gt;asyncScriptRunner()-&gt;hasPendingScripts())
Will this return true for non-asyc, non-parser inserted scripts?  i.e. an inline &lt;script&gt; element inserting a non-async script tag.  That shouldn&apos;t delay onload, should it? Do we have a test for that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275308</commentid>
    <comment_count>3</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-09-07 14:46:45 -0700</bug_when>
    <thetext>&gt; You should add your comment from the changelog here.  It&apos;s not immediately obvious why we do this.
Done.

&gt; Will this return true for non-asyc, non-parser inserted scripts?  i.e. an inline &lt;script&gt; element inserting a non-async script tag.  That shouldn&apos;t delay onload, should it? Do we have a test for that?

That is a really good question. This patch would make those dynamically inserted scripts block the load event.

I wrote a quick test that loads a slow script by appending it to the head from an inline script and seeing if it executes before the body&apos;s onload handler. Here are the results:

           Blocks load
Chrome 6:  NO
FF3.6:     YES
FF4:       YES
IE8:       NO
IE9:       NO
OP10.5:    YES
Safari 5:  NO

There is no strong consensus about the behavior :-(

However, it looks to me like the HTML5 spec requires that it block the load event. In http://www.whatwg.org/specs/web-apps/current-work/#script step #9, the script is added to the &quot;set of scripts that will execute as soon as possible&quot; whether it is actually marked &quot;async&quot; by the parser or whether it just wasn&apos;t parser inserted. Then http://www.whatwg.org/specs/web-apps/current-work/#the-end step #5 causes us to block the load event until all scripts that will execute as soon as possible are complete.

This change actually does break the readystate test that I added in https://bugs.webkit.org/show_bug.cgi?id=45119 (but I didn&apos;t notice it before uploading the patch). It makes it behave the same as FF4 as mentioned in https://bugs.webkit.org/show_bug.cgi?id=45119#c10.

So options are:
1. HTML5 (leave the code as-is, update the readystate expectations)
2. Legacy (add a special case to the code so that only explicitly marked async scripts block load, leave expectations as-is).

My preference is #1, and we can write #2 if #1 causes compat problems. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275360</commentid>
    <comment_count>4</comment_count>
      <attachid>66780</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-09-07 16:00:43 -0700</bug_when>
    <thetext>Created attachment 66780
Update readystate expectations. Use increment/decrementLoadEventDelayCount()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275364</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-09-07 16:03:24 -0700</bug_when>
    <thetext>&gt; Created an attachment (id=66780) [details]
&gt; Update readystate expectations. Use increment/decrementLoadEventDelayCount()

I updated the patch for #1 and discovered the increment/decrementLoadEventDelayCount which simplifies the change a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276002</commentid>
    <comment_count>6</comment_count>
      <attachid>66780</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-08 12:44:43 -0700</bug_when>
    <thetext>Comment on attachment 66780
Update readystate expectations. Use increment/decrementLoadEventDelayCount()

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

Looks good to me.  It would be good for Eric to look at this change too before landing.

&gt; WebCore/dom/AsyncScriptRunner.cpp:46
&gt; +        m_scriptsToExecuteSoon[i].first-&gt;element()-&gt;deref(); // Balances ref() in executeScriptSoon().
Manual ref counting is sadness.  Is there no way to do this with RefPtr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276005</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-09-08 12:48:06 -0700</bug_when>
    <thetext>&gt; &gt; +        m_scriptsToExecuteSoon[i].first-&gt;element()-&gt;deref(); // Balances ref() in executeScriptSoon().
&gt; Manual ref counting is sadness.  Is there no way to do this with RefPtr?

Totally agree. I factored this code out of Document and left it exactly as-is during the refactor. My plan is to refactor this and ScriptElementData a bit so that it can use PendingScripts instead.

I&apos;ll wait for Eric before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276146</commentid>
    <comment_count>8</comment_count>
      <attachid>66780</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-08 16:04:22 -0700</bug_when>
    <thetext>Comment on attachment 66780
Update readystate expectations. Use increment/decrementLoadEventDelayCount()

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

LGTM!

&gt; WebCore/dom/AsyncScriptRunner.cpp:60
&gt;      m_scriptsToExecuteSoon.append(make_pair(data, cachedScript));
Clearly make_pair should instead be a class, which does the load event increment and ref counting for you.  But that can be a second patch.


You should consider implementing for= event= support for &lt;script&gt; if you&apos;ve been enjoying this.  That should be an easy fix and will fix some IE-only sites.  (comedycentral.com used to depend on for= event= support for instance)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276155</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-09-08 16:16:58 -0700</bug_when>
    <thetext>&gt; Clearly make_pair should instead be a class, which does the load event increment and ref counting for you.  But that can be a second patch.
Yep. Like I mentioned to abarth, I think the right thing to do here is to use PendingScript. Definitely a separate patch.

&gt; You should consider implementing for= event= support for &lt;script&gt; if you&apos;ve been enjoying this.  That should be an easy fix and will fix some IE-only sites.  (comedycentral.com used to depend on for= event= support for instance)
Thanks. I&apos;ll think about those some more, but I&apos;m not really wild about the patterns they encourage and they are listed as non-conforming features. Other than possible compat issues w/ IE-specific sites, do you have any arguments for why they should exist?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276308</commentid>
    <comment_count>10</comment_count>
      <attachid>66780</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-08 21:59:35 -0700</bug_when>
    <thetext>Comment on attachment 66780
Update readystate expectations. Use increment/decrementLoadEventDelayCount()

Rejecting patch 66780 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--wait-for-httpd&apos;, &apos;--ignore-tests&apos;, &apos;compositing,media&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 20949 test cases.
http/tests/misc/script-async.html -&gt; failed

Exiting early after 1 failures. 20193 tests run.
490.79s total testing time

20192 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
26 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/3948330</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276488</commentid>
    <comment_count>11</comment_count>
      <attachid>67040</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-09-09 08:58:23 -0700</bug_when>
    <thetext>Created attachment 67040
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276694</commentid>
    <comment_count>12</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-09-09 13:05:42 -0700</bug_when>
    <thetext>&gt; &gt; You should consider implementing for= event= support for &lt;script&gt; if you&apos;ve been enjoying this.  That should be an easy fix and will fix some IE-only sites.  (comedycentral.com used to depend on for= event= support for instance)
&gt; Thanks. I&apos;ll think about those some more, but I&apos;m not really wild about the patterns they encourage and they are listed as non-conforming features. Other than possible compat issues w/ IE-specific sites, do you have any arguments for why they should exist?

I caught up w/ Adam about this. He explained to me that HTML5 doesn&apos;t suggest these attributes to be implemented the way that IE implements them, it suggests neutering them. That seems like a reasonable way to have sites that use them degrade more gracefully without polluting the web platform. I&apos;ll put a patch together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276998</commentid>
    <comment_count>13</comment_count>
      <attachid>67040</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-09 21:31:18 -0700</bug_when>
    <thetext>Comment on attachment 67040
Patch for landing

Clearing flags on attachment: 67040

Committed r67163: &lt;http://trac.webkit.org/changeset/67163&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276999</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-09 21:31:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66741</attachid>
            <date>2010-09-07 10:52:02 -0700</date>
            <delta_ts>2010-09-07 16:00:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45310-20100907105201.patch</filename>
            <type>text/plain</type>
            <size>17947</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2ZjVmOTFhMTU4OWNlYjMwNjA4ZTBhYzg0MTA3MDI4NzBkZGI1MDIxLi45YWUxZjZh
OTRmNjQzZTQxZTg1ODJlNDY1MmMyZjVlNjM2ZjliZWVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAK
KzIwMTAtMDktMDcgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IDxzY3Jp
cHQgYXN5bmM+IGFzIHNwZWNpZmllZCBieSBIVE1MNQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUzMTAKKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxT
Y3JpcHRFbGVtZW50L2FzeW5jLWlubGluZS1zY3JpcHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1pbmxpbmUtc2NyaXB0Lmh0
bWw6IEFkZGVkLiBUaGUgYXN5bmMgYXR0cmlidXRlIGRvZXNuJ3QgYXBwbHkgdG8gaW5saW5lIHNj
cmlwdHMsIHNvIGNoZWNrIHRoYXQgdGhleSBleGVjdXRlIGluIG9yZGVyLgorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLW9uYmVmb3JlbG9hZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLW9uYmVm
b3JlbG9hZC5odG1sOiBBZGRlZC4gQ2hlY2sgdGhhdCBvbmJlZm9yZWxvYWQgZXZlbnRzIGZpcmUg
c3luY2hyb25vdXNseSBhbmQgdGhhdCB0aGV5IG1heSBiZSBjYW5jZWxsZWQuCisgICAgICAgICog
ZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtd3JpdGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy13cml0ZS5odG1s
OiBBZGRlZC4gQ2hlY2sgdGhhdCB3cml0ZXMgZnJvbSBhc3luYyBzY3JpcHRzIGFyZSBuZXV0cmFs
aXplZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZXNvdXJjZXMvYXN5
bmMuanM6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9hc3luYy1hbmQtZGVmZXIt
c2NyaXB0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL2Fz
eW5jLWFuZC1kZWZlci1zY3JpcHQuaHRtbDogQWRkZWQuIFRoZSBhc3luYyBhdHRyaWJ1dGVzIHRh
a2VzIHByZWNlbmRlbmNlIG92ZXIgdGhlIGRlZmVyIGF0dHJpYnV0ZS4KKyAgICAgICAgQ2hlY2sg
dGhhdCBhIHNjcmlwdCB3aGljaCBoYXMgYm90aCBhc3luYyBhbmQgZGVmZXIgYWN0cyBhcyBhc3lu
YyBieSBlbnN1cmluZyBpdCBsb2FkcyBhZnRlciBET01Db250ZW50TG9hZGVkLgorICAgICAgICBB
IGRlZmVycmVkIHNjcmlwdHMgd291bGQgYmxvY2sgRENMLgorICAgICAgICAqIGh0dHAvdGVzdHMv
bWlzYy9yZXNvdXJjZXMvYXN5bmMtc2NyaXB0LmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL21pc2MvcmVzb3VyY2VzL3Nsb3ctYXN5bmMtc2NyaXB0LmNnaTogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMuaHRtbDogQWRkZWQuIFRlc3QgZ2Vu
ZXJhbCBleGVjdXRpb24gb3JkZXIgb2YgZGVmZXJyZWQgc2NyaXB0cy4KKyAgICAgICAgVGhlIHRl
c3QgY2hlY2tzIGZvciBtdWx0aXBsZSB2YWxpZCBvcmRlcnMgc2luY2UgaXQgaXMgaW5kZXRlcm1p
bmF0ZS4KKwogMjAxMC0wOS0wNiAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLWlubGluZS1zY3JpcHQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtaW5s
aW5lLXNjcmlwdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmNkYjIyNWEyMjdlMmEzZGQ4Nzhh
MTJmNzAzMjQ0Y2M4ZDJlMDgzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLWlubGluZS1zY3JpcHQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorQ2hlY2tzIHRoYXQgaW5saW5lIHNjcmlwdHMgYXJlIG5vdCBhc3luYy4K
KzEKKzIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1l
bnQvYXN5bmMtaW5saW5lLXNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvYXN5bmMtaW5saW5lLXNjcmlwdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmY2QzYTVl
MDY4ODNlNzhlY2YxZDU5N2UzOGZjOWU0YTMwZDdkODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1pbmxpbmUtc2NyaXB0Lmh0
bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
CitDaGVja3MgdGhhdCBpbmxpbmUgc2NyaXB0cyBhcmUgbm90IGFzeW5jLgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IGFzeW5jPgorICBkZWJ1ZygxKTsKKzwvc2NyaXB0PgorPHNj
cmlwdD4KKyAgZGVidWcoMik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLW9uYmVmb3Jl
bG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVu
dC9hc3luYy1vbmJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0Njg1NDNlYWU3
ZjM2NDQxODg4ODc3MTg4NzBjNGE4ZDQxMGEzZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1vbmJlZm9yZWxvYWQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNrcyB0aGF0IGFzeW5jIHNjcmlwdHMgZmlyZSBv
bmJlZm9yZWxvYWQgaW1tZWRpYXRlbHkgYW5kIHRoYXQgaXQgaXMgY2FuY2VsbGFibGUuCitjYW5j
ZWxsZWQgb25iZWZvcmVsb2FkIGFzeW5jCitvbmJlZm9yZWxvYWQgYXN5bmMKK29uYmVmb3JlbG9h
ZCBleHRlcm5hbAorYXN5bmMKK2xvYWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
U2NyaXB0RWxlbWVudC9hc3luYy1vbmJlZm9yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLW9uYmVmb3JlbG9hZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVjMTk3Y2YyZGRhODhkMTQ4YmM3MzNkZmZhODc5ZTQxZGU2YTBmN2EKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1vbmJlZm9y
ZWxvYWQuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9ImRlYnVnKCdsb2FkJyk7ZmluaXNoSlNUZXN0KCk7Ij4KK0NoZWNrcyB0
aGF0IGFzeW5jIHNjcmlwdHMgZmlyZSBvbmJlZm9yZWxvYWQgaW1tZWRpYXRlbHkgYW5kIHRoYXQg
aXQgaXMgY2FuY2VsbGFibGUuCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+dmFy
IGpzVGVzdElzQXN5bmMgPSB0cnVlOzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9z
aG91bGRub3RleGVjdXRlLmpzIiBvbmJlZm9yZWxvYWQ9ImRlYnVnKCdjYW5jZWxsZWQgb25iZWZv
cmVsb2FkIGFzeW5jJyk7IHJldHVybiBmYWxzZTsiIGFzeW5jPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9hc3luYy5qcyIgb25iZWZvcmVsb2FkPSJkZWJ1Zygnb25iZWZvcmVsb2Fk
IGFzeW5jJyk7IHJldHVybiB0cnVlOyIgYXN5bmM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iZGF0
YTp0ZXh0L2phdmFzY3JpcHQsIiBvbmJlZm9yZWxvYWQ9ImRlYnVnKCdvbmJlZm9yZWxvYWQgZXh0
ZXJuYWwnKTsgcmV0dXJuIHRydWU7Ij48L3NjcmlwdD4KKzxzY3JpcHQ+dmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy13cml0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy13
cml0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4
Nzk0MDE2YzhlZjEyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxTY3JpcHRFbGVtZW50L2FzeW5jLXdyaXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQ
QVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9h
c3luYy13cml0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
YXN5bmMtd3JpdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDRiZTRmZTBkMjM5MGY5MTllMWQ1NjRhZmNm
YmE3MGUwYmEwMTFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFNjcmlwdEVsZW1lbnQvYXN5bmMtd3JpdGUuaHRtbApAQCAtMCwwICsxLDYgQEAKKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorUEFTUworPHNjcmlwdCBhc3luYz0iQVNZTkMi
IHNyYz0iZGF0YTp0ZXh0L2phdmFzY3JpcHQsZG9jdW1lbnQud3JpdGUoJ0ZBSUwnKTsiPjwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
cmVzb3VyY2VzL2FzeW5jLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1l
bnQvcmVzb3VyY2VzL2FzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzOTNjNzM2NTRkNWI1YTRiYjM2OGI0
NzQ2YmRjOTJkZjQwMDQyOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MU2NyaXB0RWxlbWVudC9yZXNvdXJjZXMvYXN5bmMuanMKQEAgLTAsMCArMSBAQAorZGVi
dWcoImFzeW5jIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYXN5
bmMtYW5kLWRlZmVyLXNjcmlwdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21pc2MvYXN5bmMtYW5kLWRlZmVyLXNjcmlwdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTdj
OGFlN2VkNDk4MGMxOGFmOWIzZGM5MTYxYTY2ZGNlN2E4ZDU4MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9hc3luYy1hbmQtZGVmZXItc2NyaXB0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDggQEAKK0NoZWNrcyB0aGF0IHRoZSBhc3luYyBhdHRyaWJ1dGUg
dGFrZXMgcHJlY2VuZGVuY2Ugb3ZlciBkZWZlci4KK0RPTUNvbnRlbnRMb2FkZWQKK3Nsb3dBc3lu
YworbG9hZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9hc3luYy1hbmQtZGVm
ZXItc2NyaXB0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYXN5bmMtYW5kLWRl
ZmVyLXNjcmlwdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyNjM5ZThjMTIzNzZiNmNiNTAzY2E2YmNlY2Rh
NDQzYWM2NDU1NmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvYXN5bmMtYW5kLWRlZmVyLXNjcmlwdC5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzLXRlc3RzLXJlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkZWJ1ZygnbG9h
ZCcpO2ZpbmlzaEpTVGVzdCgpOyI+CitDaGVja3MgdGhhdCB0aGUgYXN5bmMgYXR0cmlidXRlIHRh
a2VzIHByZWNlbmRlbmNlIG92ZXIgZGVmZXIuCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQ+Cit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7Citkb2N1bWVudC5hZGRFdmVudExpc3Rl
bmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oKSB7CisgICAgZGVidWcoIkRPTUNvbnRl
bnRMb2FkZWQiKTsKK30sIGZhbHNlKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IGRlZmVyIGFzeW5jIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAw
L21pc2MvcmVzb3VyY2VzL3Nsb3ctYXN5bmMtc2NyaXB0LmNnaSI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9yZXNvdXJjZXMvYXN5bmMtc2NyaXB0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L3Jlc291cmNlcy9hc3luYy1zY3JpcHQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM5M2M3MzY1NGQ1YjVhNGJi
MzY4YjQ3NDZiZGM5MmRmNDAwNDI5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvYXN5bmMtc2NyaXB0LmpzCkBAIC0wLDAgKzEgQEAKK2Rl
YnVnKCJhc3luYyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jl
c291cmNlcy9zbG93LWFzeW5jLXNjcmlwdC5jZ2kgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvcmVzb3VyY2VzL3Nsb3ctYXN5bmMtc2NyaXB0LmNnaQpuZXcgZmlsZSBtb2RlIDEwMDc1NQpp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjgwZGMzNWM0
MmY4OTM1NTgwYjVjMzdmMDE5NTEyMTE0ZTljYjExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9zbG93LWFzeW5jLXNjcmlwdC5jZ2kKQEAg
LTAsMCArMSw2IEBACisjIS91c3IvYmluL3BlcmwgLXcKKworcHJpbnQgIkNvbnRlbnQtdHlwZTog
dGV4dC9qYXZhc2NyaXB0XG5cbiI7CitzbGVlcCgwLjUpOworcHJpbnQgImRlYnVnKCdzbG93QXN5
bmMnKTtcbiI7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zY3Jp
cHQtYXN5bmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Njcmlw
dC1hc3luYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdkODY4MGUzZGZiMTRmNzI4MDhlYmRl
YmY5ZjMzYzA3OTk2ZGM3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9zY3JpcHQtYXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorVGhpcyB0
ZXN0cyBmb3IgcHJvcGVyIGV4ZWN1dGlvbiBvcmRlciBvZiBzY3JpcHRzIHdpdGggdGhlIGFzeW5j
IGF0dHJpYnV0ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MTAu
CitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFz
eW5jLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTQ1NmNmZmYxMGY0MThlMTVjZDViMGVmMWIwOWRlZTg4YmU1ZDMxZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMu
aHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1U
eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CitUaGlzIHRlc3RzIGZv
ciBwcm9wZXIgZXhlY3V0aW9uIG9yZGVyIG9mIHNjcmlwdHMgd2l0aCB0aGUgYXN5bmMgYXR0cmli
dXRlIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcx
MCI+aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzEwPC9hPi48aHI+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KK3ZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gZGVidWcobXNnKQorewor
ICAgIGlmICghd2luZG93LnN0YXR1c18pCisgICAgICAgIHdpbmRvdy5zdGF0dXNfID0gJyc7Cisg
ICAgd2luZG93LnN0YXR1c18gKz0gJyAnICsgbXNnICsgJyAnOworfQorCitkb2N1bWVudC5hZGRF
dmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oKSB7CisgICAgZGVidWco
J0RPTUNvbnRlbnRMb2FkZWQnKTsKK30sIGZhbHNlKTsKKworZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgdmFyIGV4cGVjdGVkQSA9ICIgYXN5bmMgIGV4dGVybmFsICBpbmxpbmUgIERPTUNvbnRlbnRM
b2FkZWQgIHNsb3dBc3luYyAiOworICAgIHZhciBleHBlY3RlZEIgPSAiIGV4dGVybmFsICBhc3lu
YyAgaW5saW5lICBET01Db250ZW50TG9hZGVkICBzbG93QXN5bmMgIjsKKyAgICB2YXIgZXhwZWN0
ZWRDID0gIiBleHRlcm5hbCAgaW5saW5lICBhc3luYyAgRE9NQ29udGVudExvYWRlZCAgc2xvd0Fz
eW5jICI7CisgICAgdmFyIGV4cGVjdGVkRCA9ICIgZXh0ZXJuYWwgIGlubGluZSAgRE9NQ29udGVu
dExvYWRlZCAgYXN5bmMgIHNsb3dBc3luYyAiOworICAgIHZhciByZXN1bHRzID0gIlBBU1MiOwor
ICAgIGlmICh3aW5kb3cuc3RhdHVzXyAhPSBleHBlY3RlZEEgJiYgd2luZG93LnN0YXR1c18gIT0g
ZXhwZWN0ZWRCICYmIHdpbmRvdy5zdGF0dXNfICE9IGV4cGVjdGVkQyAmJiB3aW5kb3cuc3RhdHVz
XyAhPSBleHBlY3RlZEQpCisgICAgICAgIHJlc3VsdHMgPSAiRkFJTDogRXhwZWN0ZWQgb25lIG9m
ICciICsgZXhwZWN0ZWRBICsgIicgfHwgJyIgKyBleHBlY3RlZEIgKyAiJyB8fCAnIiArIGV4cGVj
dGVkQyArICInIHx8ICciICsgZXhwZWN0ZWREICsgIicsIEFjdHVhbD0nIiArIHdpbmRvdy5zdGF0
dXNfICsgIiciOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJI
VE1MID0gcmVzdWx0czsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvbWlzYy9yZXNvdXJjZXMvc2xvdy1hc3luYy1zY3JpcHQuY2dpIiBhc3luYz0iQVNZTkMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291
cmNlcy9hc3luYy1zY3JpcHQuanMiIGFzeW5jPSJBU1lOQyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2V4dGVybmFsLXNjcmlwdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoImlubGluZSIpOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KKworCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhmMTM4MjIyODIwZWU5NzIxMjBkMDg1ZDc5MDI5MTBk
YWU1NTcyODguLjUzYjgxNjllMTNjOGJmMmZkMGQ5MWViNDc4ZTNhYzY0ZDU3MWU1ZjAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzEgQEAKKzIwMTAtMDktMDcgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBw
b3J0IDxzY3JpcHQgYXN5bmM+IGFzIHNwZWNpZmllZCBieSBIVE1MNQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUzMTAKKworICAgICAgICBUZXN0czog
ZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtaW5saW5lLXNjcmlwdC5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1vbmJlZm9yZWxvYWQu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtd3Jp
dGUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL2FzeW5jLWFuZC1kZWZlci1z
Y3JpcHQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy5o
dG1sCisKKyAgICAgICAgKiBkb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXN5bmNTY3JpcHRSdW5uZXI6OkFzeW5jU2NyaXB0UnVubmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkFzeW5jU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKTogU2luY2UgYXN5bmMgc2NyaXB0
cyBtYXkgbm93IGJlIHRoZSBsYXN0IHRoaW5nIGJsb2NraW5nIHRoZSBsb2FkIGV2ZW50LAorICAg
ICAgICB3ZSBoYXZlIHRvIGNhbGwgY2hlY2tDb21wbGV0ZWQgYWZ0ZXIgcnVubmluZy4KKyAgICAg
ICAgKiBkb20vQXN5bmNTY3JpcHRSdW5uZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Ny
aXB0UnVubmVyOjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50b0Rv
Y3VtZW50KTogVHJlYXRzIGFzeW5jIHNjcmlwdHMganVzdCBsaWtlIGEgZHluYW1pY2FsbHkgaW5z
ZXJ0ZWQgc2NyaXB0IGVsZW1lbnQgcmF0aGVyIHRoYW4gYSBwYXJzZXIgaW5zZXJ0ZWQgb25lLgor
ICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNjcmlwdFJ1bm5lcjo6cnVuU2NyaXB0KToKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrQ29tcGxl
dGVkKTogTWFrZSBzdXJlIGFsbCBhc3luYyBzY3JpcHRzIGhhdmUgZXhlY3V0ZWQgYmVmb3JlIGxv
YWRpbmcuCisKIDIwMTAtMDktMDYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcCBiL1dlYkNvcmUvZG9tL0Fz
eW5jU2NyaXB0UnVubmVyLmNwcAppbmRleCA5NjAzNmExYmI5NzNiYzY4MzY4MzZkZjM4ODgxNDhk
NWQ3NWY2Y2VlLi5kODZlOGI5Njc1ZGEyNWNkYTFjNTc5YmY3ZTQwOTQ2NzJiMzViNmZkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKKysrIGIvV2ViQ29yZS9k
b20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwCkBAIC0yNywxNCArMjcsMTggQEAKICNpbmNsdWRlICJB
c3luY1NjcmlwdFJ1bm5lci5oIgogCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQXN5
bmNTY3JpcHRSdW5uZXI6OkFzeW5jU2NyaXB0UnVubmVyKCkKLSAgICA6IG1fdGltZXIodGhpcywg
JkFzeW5jU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKQorQXN5bmNTY3JpcHRSdW5uZXI6OkFzeW5j
U2NyaXB0UnVubmVyKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1l
bnQpCisgICAgLCBtX3RpbWVyKHRoaXMsICZBc3luY1NjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCkK
IHsKKyAgICBBU1NFUlQoZG9jdW1lbnQpOwogfQogCiBBc3luY1NjcmlwdFJ1bm5lcjo6fkFzeW5j
U2NyaXB0UnVubmVyKCkKQEAgLTc5LDYgKzgzLDkgQEAgdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6
dGltZXJGaXJlZChUaW1lcjxBc3luY1NjcmlwdFJ1bm5lcj4qIHRpbWVyKQogICAgICAgICBzY3Jp
cHRzW2ldLmZpcnN0LT5leGVjdXRlKHNjcmlwdHNbaV0uc2Vjb25kLmdldCgpKTsKICAgICAgICAg
c2NyaXB0c1tpXS5maXJzdC0+ZWxlbWVudCgpLT5kZXJlZigpOyAvLyBCYWxhbmNlcyByZWYoKSBp
biBleGVjdXRlU2NyaXB0U29vbigpLgogICAgIH0KKworICAgIGlmIChGcmFtZSogZnJhbWUgPSBt
X2RvY3VtZW50LT5mcmFtZSgpKQorICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmNoZWNrQ29tcGxl
dGVkKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVy
LmggYi9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oCmluZGV4IDhiNzVlMDY5NDk2ODY4
YWYzN2MzNjRmNGFlNzc1ZWFiYjFiNmRkMjYuLjU3YmVlODRiYWU3NGY3OTczMDEwY2VhYTk5NTNl
NjQ4OTExYzg4MTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmgK
KysrIGIvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaApAQCAtMzUsMTEgKzM1LDEyIEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFNjcmlwdDsKK2NsYXNzIERvY3Vt
ZW50OwogY2xhc3MgU2NyaXB0RWxlbWVudERhdGE7CiAgICAgCiBjbGFzcyBBc3luY1NjcmlwdFJ1
bm5lciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8QXN5bmNTY3JpcHRSdW5uZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIG5ldyBBc3luY1NjcmlwdFJ1
bm5lcigpOyB9CisgICAgc3RhdGljIFBhc3NPd25QdHI8QXN5bmNTY3JpcHRSdW5uZXI+IGNyZWF0
ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIG5ldyBBc3luY1NjcmlwdFJ1bm5lcihkb2N1
bWVudCk7IH0KICAgICB+QXN5bmNTY3JpcHRSdW5uZXIoKTsKIAogICAgIHZvaWQgZXhlY3V0ZVNj
cmlwdFNvb24oU2NyaXB0RWxlbWVudERhdGEqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRT
Y3JpcHQ+KTsKQEAgLTQ4LDEwICs0OSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXN1bWUoKTsK
IAogcHJpdmF0ZToKLSAgICBBc3luY1NjcmlwdFJ1bm5lcigpOworICAgIEFzeW5jU2NyaXB0UnVu
bmVyKERvY3VtZW50Kik7CiAKICAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8QXN5bmNTY3JpcHRS
dW5uZXI+Kik7CiAKKyAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKICAgICBWZWN0b3I8c3RkOjpw
YWlyPFNjcmlwdEVsZW1lbnREYXRhKiwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0
PiA+ID4gbV9zY3JpcHRzVG9FeGVjdXRlU29vbjsKICAgICBUaW1lcjxBc3luY1NjcmlwdFJ1bm5l
cj4gbV90aW1lcjsKIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYjgyYmMwNWI0Y2Y4ODE5NGMzN2JlYjU3NDJk
Mzk1ODY4YWI0NzdlMS4uOTRjN2JjZjhmZWI4ZjI1ZDBjOGI0ZWFhMjU4ZGYwOGUwY2MyZGYzZiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcApAQCAtMzcxLDcgKzM3MSw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSog
ZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICAs
IG1fc3RhcnRUaW1lKGN1cnJlbnRUaW1lKCkpCiAgICAgLCBtX292ZXJNaW5pbXVtTGF5b3V0VGhy
ZXNob2xkKGZhbHNlKQogICAgICwgbV9leHRyYUxheW91dERlbGF5KDApCi0gICAgLCBtX2FzeW5j
U2NyaXB0UnVubmVyKEFzeW5jU2NyaXB0UnVubmVyOjpjcmVhdGUoKSkKKyAgICAsIG1fYXN5bmNT
Y3JpcHRSdW5uZXIoQXN5bmNTY3JpcHRSdW5uZXI6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1feG1s
VmVyc2lvbigiMS4wIikKICAgICAsIG1feG1sU3RhbmRhbG9uZShmYWxzZSkKICAgICAsIG1fc2F2
ZWRSZW5kZXJlcigwKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAg
Yi9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCA4NjI2YmI0NjUzYTVjMWJmMmQ3
NTIxMjk4ZjVlZGE3NGUzNzVkMWZlLi42YTYzZjQ3NDNlNjEzMGE4YWQwZjZlMDU5NGM5YjA4MTk4
NGIyMjgxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHZvaWQgU2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoU2Ny
aXB0RWxlbWVudERhdGEmIGRhdGEsIGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogewotICAgIGlm
IChkYXRhLmNyZWF0ZWRCeVBhcnNlcigpKQorICAgIGlmIChkYXRhLmNyZWF0ZWRCeVBhcnNlcigp
ICYmICFkYXRhLmlzQXN5bmNocm9ub3VzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIGh0
dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3NjcmlwdApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcCBiL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKaW5kZXggNzY0YmYwMWE4ZDcx
YzcxNjdhY2ZhZTJkMjE4ZmM2MGM4ZDJmMmE3Ny4uZDg2MDYyODAyOGZiOTMyNzgzYWZjMTczYTMz
NDAyZTkwZjRlYzU5NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0
UnVubmVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3Bw
CkBAIC0zMjEsNyArMzIxLDkgQEAgdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpydW5TY3JpcHQoRWxl
bWVudCogc2NyaXB0LCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyKQogICAgICAgICBub3RJbXBsZW1l
bnRlZCgpOyAvLyBldmVudCBmb3Igc3VwcG9ydAogCiAgICAgICAgIGlmIChzY3JpcHQtPmhhc0F0
dHJpYnV0ZShzcmNBdHRyKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBhc3luYy4K
KyAgICAgICAgICAgIGlmIChzY3JpcHQtPmhhc0F0dHJpYnV0ZShhc3luY0F0dHIpKSAvLyBBc3lu
YyB0YWtlcyBwcmVjZW5kZW5jZSBvdmVyIGRlZmVyLgorICAgICAgICAgICAgICAgIHJldHVybjsg
Ly8gQXN5bmNocm9ub3VzIHNjcmlwdHMgaGFuZGxlIHRoZW1zZWx2ZXMuCisKICAgICAgICAgICAg
IGlmIChzY3JpcHQtPmhhc0F0dHJpYnV0ZShkZWZlckF0dHIpKQogICAgICAgICAgICAgICAgIHJl
cXVlc3REZWZlcnJlZFNjcmlwdChzY3JpcHQpOwogICAgICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCmluZGV4IGRjN2ExY2U4MDViMGQ5OWExOGRjMmZhYWYyYWFkYTllYWI3Yjc2YWMu
LjVkNTg0MDJlY2Y0MWM1MWVhZGM0NTFiYzgyYmVjZDEyYzEwN2RkYmEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9z
dC5oIgogI2luY2x1ZGUgIkFyY2hpdmUuaCIKICNpbmNsdWRlICJBcmNoaXZlRmFjdG9yeS5oIgor
I2luY2x1ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRMaXN0
LmgiCiAjaW5jbHVkZSAiQmVmb3JlVW5sb2FkRXZlbnQuaCIKICNpbmNsdWRlICJDYWNoZS5oIgpA
QCAtODM2LDYgKzgzNywxMCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbXBsZXRlZCgpCiAg
ICAgaWYgKG51bVJlcXVlc3RzKG1fZnJhbWUtPmRvY3VtZW50KCkpKQogICAgICAgICByZXR1cm47
CiAKKyAgICAvLyBTdGlsbCB3YWl0aW5nIGZvciBhc3luYyBzY3JpcHRzPworICAgIGlmIChtX2Zy
YW1lLT5kb2N1bWVudCgpLT5hc3luY1NjcmlwdFJ1bm5lcigpLT5oYXNQZW5kaW5nU2NyaXB0cygp
KQorICAgICAgICByZXR1cm47CisKICAgICAvLyBTdGlsbCB3YWl0aW5nIGZvciBlbGVtZW50cyB0
aGF0IGRvbid0IGdvIHRocm91Z2ggYSBGcmFtZUxvYWRlcj8KICAgICBpZiAobV9mcmFtZS0+ZG9j
dW1lbnQoKS0+aXNEZWxheWluZ0xvYWRFdmVudCgpKQogICAgICAgICByZXR1cm47Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66780</attachid>
            <date>2010-09-07 16:00:43 -0700</date>
            <delta_ts>2010-09-09 08:58:17 -0700</delta_ts>
            <desc>Update readystate expectations. Use increment/decrementLoadEventDelayCount()</desc>
            <filename>bug-45310-20100907160042.patch</filename>
            <type>text/plain</type>
            <size>20276</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1ODVkN2YwNWE5NmUwOGZhNmYwNmJhZmU0MmUyOWUwMWQ3NTJkN2RlLi5hOThkNTc5
NjEyZDU4ZTA1ZTljZTM5MWI1YTVhZjU0MDNjNWZiMjE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTAtMDktMDcgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IDxzY3Jp
cHQgYXN5bmM+IGFzIHNwZWNpZmllZCBieSBIVE1MNQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUzMTAKKworICAgICAgICAqIGZhc3QvZG9tL0RvY3Vt
ZW50L3JlYWR5c3RhdGUuaHRtbDogRHluYW1pY2FsbHkgaW5zZXJ0ZWQgc2NyaXB0cyBub3cgYmxv
Y2sgdGhlIGxvYWQgZXZlbnQgbGlrZSBpbiBGRjQuIFNvIG1vdmUgdGhlIGZpbmlzaEpTVGVzdCBj
YWxsIHRvIGxvYWQuCisgICAgICAgICogZmFzdC9kb20vRG9jdW1lbnQvcmVhZHlzdGF0ZS1leHBl
Y3RlZC50eHQ6IER5bmFtaWNhbGx5IGluc2VydGVkIHNjcmlwdCBub3cgcnVucyBiZWZvcmUgbG9h
ZCBkdXJpbmcgImludGVyYWN0aXZlIiBwaGFzZS4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2Ny
aXB0RWxlbWVudC9hc3luYy1pbmxpbmUtc2NyaXB0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtaW5saW5lLXNjcmlwdC5odG1s
OiBBZGRlZC4gVGhlIGFzeW5jIGF0dHJpYnV0ZSBkb2Vzbid0IGFwcGx5IHRvIGlubGluZSBzY3Jp
cHRzLCBzbyBjaGVjayB0aGF0IHRoZXkgZXhlY3V0ZSBpbiBvcmRlci4KKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1vbmJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1vbmJlZm9y
ZWxvYWQuaHRtbDogQWRkZWQuIENoZWNrIHRoYXQgb25iZWZvcmVsb2FkIGV2ZW50cyBmaXJlIHN5
bmNocm9ub3VzbHkgYW5kIHRoYXQgdGhleSBtYXkgYmUgY2FuY2VsbGVkLgorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLXdyaXRlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtd3JpdGUuaHRtbDog
QWRkZWQuIENoZWNrIHRoYXQgd3JpdGVzIGZyb20gYXN5bmMgc2NyaXB0cyBhcmUgbmV1dHJhbGl6
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVzb3VyY2VzL2FzeW5j
LmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvYXN5bmMtYW5kLWRlZmVyLXNj
cmlwdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9hc3lu
Yy1hbmQtZGVmZXItc2NyaXB0Lmh0bWw6IEFkZGVkLiBUaGUgYXN5bmMgYXR0cmlidXRlcyB0YWtl
cyBwcmVjZW5kZW5jZSBvdmVyIHRoZSBkZWZlciBhdHRyaWJ1dGUuCisgICAgICAgIENoZWNrIHRo
YXQgYSBzY3JpcHQgd2hpY2ggaGFzIGJvdGggYXN5bmMgYW5kIGRlZmVyIGFjdHMgYXMgYXN5bmMg
YnkgZW5zdXJpbmcgaXQgbG9hZHMgYWZ0ZXIgRE9NQ29udGVudExvYWRlZC4KKyAgICAgICAgQSBk
ZWZlcnJlZCBzY3JpcHRzIHdvdWxkIGJsb2NrIERDTC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21p
c2MvcmVzb3VyY2VzL2FzeW5jLXNjcmlwdC5qczogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9taXNjL3Jlc291cmNlcy9zbG93LWFzeW5jLXNjcmlwdC5jZ2k6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLmh0bWw6IEFkZGVkLiBUZXN0IGdlbmVy
YWwgZXhlY3V0aW9uIG9yZGVyIG9mIGRlZmVycmVkIHNjcmlwdHMuCisgICAgICAgIFRoZSB0ZXN0
IGNoZWNrcyBmb3IgbXVsdGlwbGUgdmFsaWQgb3JkZXJzIHNpbmNlIGl0IGlzIGluZGV0ZXJtaW5h
dGUuCisKIDIwMTAtMDktMDcgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQv
cmVhZHlzdGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9y
ZWFkeXN0YXRlLWV4cGVjdGVkLnR4dAppbmRleCAzZGZjZWM3YTdmOGIzODBjNzYwMTU3N2NmNWMx
ZWI4ZGQ2MjRhMWI3Li42MDQ2MDYzODg2MWI2MzAxODJlODcxNTEzMjA5YzhhZTA2MTQ5ODVmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9yZWFkeXN0YXRlLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9yZWFkeXN0YXRlLWV4
cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgUEFTUyBkb2N1bWVudC5yZWFkeVN0YXRlIGlzICJs
b2FkaW5nIgogUEFTUyBkb2N1bWVudC5yZWFkeVN0YXRlIGlzICJsb2FkaW5nIgogUEFTUyBkb2N1
bWVudC5yZWFkeVN0YXRlIGlzICJpbnRlcmFjdGl2ZSIKIFBBU1MgZG9jdW1lbnQucmVhZHlTdGF0
ZSBpcyAiaW50ZXJhY3RpdmUiCi1QQVNTIGRvY3VtZW50LnJlYWR5U3RhdGUgaXMgImNvbXBsZXRl
IgorUEFTUyBkb2N1bWVudC5yZWFkeVN0YXRlIGlzICJpbnRlcmFjdGl2ZSIKIFBBU1MgZG9jdW1l
bnQucmVhZHlTdGF0ZSBpcyAiY29tcGxldGUiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlYWR5c3Rh
dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlYWR5c3RhdGUuaHRtbApp
bmRleCA0MDQ1MThkODVmYTRlNzE5YjE0NmRhYWYyMDk0ZmNkNTdiOWY1MjBhLi40NzUxYWE3OGU1
YTlhZDQ0MDNmOWQzMTczMTk4OGZmYmZlNjYyZTE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Eb2N1bWVudC9yZWFkeXN0YXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vRG9jdW1lbnQvcmVhZHlzdGF0ZS5odG1sCkBAIC00LDcgKzQsNyBAQAogPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgog
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
CiA8L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNob3VsZEJlRXF1YWxUb1N0cmluZygnZG9jdW1lbnQu
cmVhZHlTdGF0ZScsICdjb21wbGV0ZScpOyI+Cis8Ym9keSBvbmxvYWQ9InNob3VsZEJlRXF1YWxU
b1N0cmluZygnZG9jdW1lbnQucmVhZHlTdGF0ZScsICdjb21wbGV0ZScpO2ZpbmlzaEpTVGVzdCgp
OyI+CiBUZXN0cyB0aGF0IHRoZSBkb2N1bWVudCdzIHJlYWR5U3RhdGUgaXMgc2V0IHByb3Blcmx5
IGF0IHZhcmlvdXMgcGhhc2VzIGR1cmluZyBsb2FkLgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CiA8c2NyaXB0IGRlZmVyIHNyYz0iZGF0YTp0ZXh0L2phdmFzY3JpcHQsc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdkb2N1bWVudC5yZWFkeVN0YXRlJywgJ2ludGVyYWN0aXZlJyk7Ij48L3NjcmlwdD4K
QEAgLTE4LDggKzE4LDcgQEAgVGVzdHMgdGhhdCB0aGUgZG9jdW1lbnQncyByZWFkeVN0YXRlIGlz
IHNldCBwcm9wZXJseSBhdCB2YXJpb3VzIHBoYXNlcyBkdXJpbmcgbG8KICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImRvY3VtZW50LnJlYWR5U3RhdGUiLCAiaW50ZXJhY3RpdmUiKTsKIAogICAg
IHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwotICAgIGVsLnNyYyA9
ICJkYXRhOnRleHQvamF2YXNjcmlwdCxzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2RvY3VtZW50LnJl
YWR5U3RhdGUnLCAnY29tcGxldGUnKTsiOwotICAgIGVsLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeyBm
aW5pc2hKU1Rlc3QoKTsgfQorICAgIGVsLnNyYyA9ICJkYXRhOnRleHQvamF2YXNjcmlwdCxzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2RvY3VtZW50LnJlYWR5U3RhdGUnLCAnaW50ZXJhY3RpdmUnKTsi
OwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hp
bGQoZWwpOwogICB9LCBmYWxzZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLWlubGluZS1zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtaW5saW5lLXNjcmlwdC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmNkYjIyNWEyMjdlMmEzZGQ4NzhhMTJmNzAzMjQ0Y2M4
ZDJlMDgzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3Jp
cHRFbGVtZW50L2FzeW5jLWlubGluZS1zY3JpcHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorQ2hlY2tzIHRoYXQgaW5saW5lIHNjcmlwdHMgYXJlIG5vdCBhc3luYy4KKzEKKzIKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtaW5s
aW5lLXNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
YXN5bmMtaW5saW5lLXNjcmlwdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmY2QzYTVlMDY4ODNlNzhlY2Yx
ZDU5N2UzOGZjOWU0YTMwZDdkODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1pbmxpbmUtc2NyaXB0Lmh0bWwKQEAgLTAsMCAr
MSwxNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitDaGVja3MgdGhh
dCBpbmxpbmUgc2NyaXB0cyBhcmUgbm90IGFzeW5jLgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0IGFzeW5jPgorICBkZWJ1ZygxKTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KKyAgZGVi
dWcoMik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLW9uYmVmb3JlbG9hZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1vbmJl
Zm9yZWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0Njg1NDNlYWU3ZjM2NDQxODg4ODc3
MTg4NzBjNGE4ZDQxMGEzZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1vbmJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK0NoZWNrcyB0aGF0IGFzeW5jIHNjcmlwdHMgZmlyZSBvbmJlZm9yZWxvYWQg
aW1tZWRpYXRlbHkgYW5kIHRoYXQgaXQgaXMgY2FuY2VsbGFibGUuCitjYW5jZWxsZWQgb25iZWZv
cmVsb2FkIGFzeW5jCitvbmJlZm9yZWxvYWQgYXN5bmMKK29uYmVmb3JlbG9hZCBleHRlcm5hbAor
YXN5bmMKK2xvYWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVu
dC9hc3luYy1vbmJlZm9yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3Jp
cHRFbGVtZW50L2FzeW5jLW9uYmVmb3JlbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjMTk3Y2YyZGRh
ODhkMTQ4YmM3MzNkZmZhODc5ZTQxZGU2YTBmN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1vbmJlZm9yZWxvYWQuaHRtbApA
QCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9ImRlYnVnKCdsb2FkJyk7ZmluaXNoSlNUZXN0KCk7Ij4KK0NoZWNrcyB0aGF0IGFzeW5jIHNj
cmlwdHMgZmlyZSBvbmJlZm9yZWxvYWQgaW1tZWRpYXRlbHkgYW5kIHRoYXQgaXQgaXMgY2FuY2Vs
bGFibGUuCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+dmFyIGpzVGVzdElzQXN5
bmMgPSB0cnVlOzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaG91bGRub3RleGVj
dXRlLmpzIiBvbmJlZm9yZWxvYWQ9ImRlYnVnKCdjYW5jZWxsZWQgb25iZWZvcmVsb2FkIGFzeW5j
Jyk7IHJldHVybiBmYWxzZTsiIGFzeW5jPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9hc3luYy5qcyIgb25iZWZvcmVsb2FkPSJkZWJ1Zygnb25iZWZvcmVsb2FkIGFzeW5jJyk7IHJl
dHVybiB0cnVlOyIgYXN5bmM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iZGF0YTp0ZXh0L2phdmFz
Y3JpcHQsIiBvbmJlZm9yZWxvYWQ9ImRlYnVnKCdvbmJlZm9yZWxvYWQgZXh0ZXJuYWwnKTsgcmV0
dXJuIHRydWU7Ij48L3NjcmlwdD4KKzxzY3JpcHQ+dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy13cml0ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy13cml0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEy
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVt
ZW50L2FzeW5jLXdyaXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy13cml0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtd3JpdGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40NDRiZTRmZTBkMjM5MGY5MTllMWQ1NjRhZmNmYmE3MGUwYmEwMTFk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1l
bnQvYXN5bmMtd3JpdGUuaHRtbApAQCAtMCwwICsxLDYgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKzwvc2NyaXB0PgorUEFTUworPHNjcmlwdCBhc3luYz0iQVNZTkMiIHNyYz0iZGF0YTp0
ZXh0L2phdmFzY3JpcHQsZG9jdW1lbnQud3JpdGUoJ0ZBSUwnKTsiPjwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVzb3VyY2VzL2Fz
eW5jLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVzb3VyY2Vz
L2FzeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzOTNjNzM2NTRkNWI1YTRiYjM2OGI0NzQ2YmRjOTJkZjQw
MDQyOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0
RWxlbWVudC9yZXNvdXJjZXMvYXN5bmMuanMKQEAgLTAsMCArMSBAQAorZGVidWcoImFzeW5jIik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYXN5bmMtYW5kLWRlZmVy
LXNjcmlwdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYXN5bmMt
YW5kLWRlZmVyLXNjcmlwdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTdjOGFlN2VkNDk4MGMx
OGFmOWIzZGM5MTYxYTY2ZGNlN2E4ZDU4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9hc3luYy1hbmQtZGVmZXItc2NyaXB0LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDggQEAKK0NoZWNrcyB0aGF0IHRoZSBhc3luYyBhdHRyaWJ1dGUgdGFrZXMgcHJlY2Vu
ZGVuY2Ugb3ZlciBkZWZlci4KK0RPTUNvbnRlbnRMb2FkZWQKK3Nsb3dBc3luYworbG9hZAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9hc3luYy1hbmQtZGVmZXItc2NyaXB0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYXN5bmMtYW5kLWRlZmVyLXNjcmlwdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjkyNjM5ZThjMTIzNzZiNmNiNTAzY2E2YmNlY2RhNDQzYWM2NDU1NmMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYXN5bmMtYW5k
LWRlZmVyLXNjcmlwdC5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzLXRlc3RzLXJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkZWJ1ZygnbG9hZCcpO2ZpbmlzaEpT
VGVzdCgpOyI+CitDaGVja3MgdGhhdCB0aGUgYXN5bmMgYXR0cmlidXRlIHRha2VzIHByZWNlbmRl
bmNlIG92ZXIgZGVmZXIuCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIg
anNUZXN0SXNBc3luYyA9IHRydWU7Citkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250
ZW50TG9hZGVkIiwgZnVuY3Rpb24oKSB7CisgICAgZGVidWcoIkRPTUNvbnRlbnRMb2FkZWQiKTsK
K30sIGZhbHNlKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IGRlZmVyIGFzeW5jIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3Vy
Y2VzL3Nsb3ctYXN5bmMtc2NyaXB0LmNnaSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMv
YXN5bmMtc2NyaXB0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9h
c3luYy1zY3JpcHQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM5M2M3MzY1NGQ1YjVhNGJiMzY4YjQ3NDZiZGM5
MmRmNDAwNDI5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9yZXNvdXJjZXMvYXN5bmMtc2NyaXB0LmpzCkBAIC0wLDAgKzEgQEAKK2RlYnVnKCJhc3luYyIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9zbG93
LWFzeW5jLXNjcmlwdC5jZ2kgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2Vz
L3Nsb3ctYXN5bmMtc2NyaXB0LmNnaQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjgwZGMzNWM0MmY4OTM1NTgwYjVj
MzdmMDE5NTEyMTE0ZTljYjExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL3Jlc291cmNlcy9zbG93LWFzeW5jLXNjcmlwdC5jZ2kKQEAgLTAsMCArMSw2IEBA
CisjIS91c3IvYmluL3BlcmwgLXcKKworcHJpbnQgIkNvbnRlbnQtdHlwZTogdGV4dC9qYXZhc2Ny
aXB0XG5cbiI7CitzbGVlcCgwLjUpOworcHJpbnQgImRlYnVnKCdzbG93QXN5bmMnKTtcbiI7CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdkODY4MGUzZGZiMTRmNzI4MDhlYmRlYmY5ZjMzYzA3OTk2
ZGM3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zY3Jp
cHQtYXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorVGhpcyB0ZXN0cyBmb3IgcHJv
cGVyIGV4ZWN1dGlvbiBvcmRlciBvZiBzY3JpcHRzIHdpdGggdGhlIGFzeW5jIGF0dHJpYnV0ZSBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MTAuCitQQVNTCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTQ1NmNmZmYxMGY0MThlMTVjZDViMGVmMWIwOWRlZTg4YmU1ZDMxZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMuaHRtbApAQCAtMCww
ICsxLDUwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50
PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CitUaGlzIHRlc3RzIGZvciBwcm9wZXIgZXhl
Y3V0aW9uIG9yZGVyIG9mIHNjcmlwdHMgd2l0aCB0aGUgYXN5bmMgYXR0cmlidXRlIDxhIGhyZWY9
Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcxMCI+aHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzEwPC9hPi48aHI+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK3ZhciBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gZGVidWcobXNnKQoreworICAgIGlmICghd2lu
ZG93LnN0YXR1c18pCisgICAgICAgIHdpbmRvdy5zdGF0dXNfID0gJyc7CisgICAgd2luZG93LnN0
YXR1c18gKz0gJyAnICsgbXNnICsgJyAnOworfQorCitkb2N1bWVudC5hZGRFdmVudExpc3RlbmVy
KCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oKSB7CisgICAgZGVidWcoJ0RPTUNvbnRlbnRM
b2FkZWQnKTsKK30sIGZhbHNlKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIGV4cGVj
dGVkQSA9ICIgYXN5bmMgIGV4dGVybmFsICBpbmxpbmUgIERPTUNvbnRlbnRMb2FkZWQgIHNsb3dB
c3luYyAiOworICAgIHZhciBleHBlY3RlZEIgPSAiIGV4dGVybmFsICBhc3luYyAgaW5saW5lICBE
T01Db250ZW50TG9hZGVkICBzbG93QXN5bmMgIjsKKyAgICB2YXIgZXhwZWN0ZWRDID0gIiBleHRl
cm5hbCAgaW5saW5lICBhc3luYyAgRE9NQ29udGVudExvYWRlZCAgc2xvd0FzeW5jICI7CisgICAg
dmFyIGV4cGVjdGVkRCA9ICIgZXh0ZXJuYWwgIGlubGluZSAgRE9NQ29udGVudExvYWRlZCAgYXN5
bmMgIHNsb3dBc3luYyAiOworICAgIHZhciByZXN1bHRzID0gIlBBU1MiOworICAgIGlmICh3aW5k
b3cuc3RhdHVzXyAhPSBleHBlY3RlZEEgJiYgd2luZG93LnN0YXR1c18gIT0gZXhwZWN0ZWRCICYm
IHdpbmRvdy5zdGF0dXNfICE9IGV4cGVjdGVkQyAmJiB3aW5kb3cuc3RhdHVzXyAhPSBleHBlY3Rl
ZEQpCisgICAgICAgIHJlc3VsdHMgPSAiRkFJTDogRXhwZWN0ZWQgb25lIG9mICciICsgZXhwZWN0
ZWRBICsgIicgfHwgJyIgKyBleHBlY3RlZEIgKyAiJyB8fCAnIiArIGV4cGVjdGVkQyArICInIHx8
ICciICsgZXhwZWN0ZWREICsgIicsIEFjdHVhbD0nIiArIHdpbmRvdy5zdGF0dXNfICsgIiciOwor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MID0gcmVzdWx0
czsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9y
ZXNvdXJjZXMvc2xvdy1hc3luYy1zY3JpcHQuY2dpIiBhc3luYz0iQVNZTkMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9hc3luYy1z
Y3JpcHQuanMiIGFzeW5jPSJBU1lOQyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2V4dGVybmFsLXNjcmlwdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZGVidWcoImlubGluZSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KKworCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDc3ZTNhYTQ4OTRmOWY4YmIyYzE4NTI0YmJmY2RhY2Y1ZWU1YWNmNDYuLjFj
YjdmYzVjYmU4ZjM2NmE3MTA5NTczZTIwNzgzMmQyNzk1Yjg0MDAgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIw
MTAtMDktMDcgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IDxzY3JpcHQg
YXN5bmM+IGFzIHNwZWNpZmllZCBieSBIVE1MNQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUzMTAKKworICAgICAgICBUZXN0czogZmFzdC9kb20vSFRN
TFNjcmlwdEVsZW1lbnQvYXN5bmMtaW5saW5lLXNjcmlwdC5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1vbmJlZm9yZWxvYWQuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtd3JpdGUuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL2FzeW5jLWFuZC1kZWZlci1zY3JpcHQuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy5odG1sCisKKyAgICAg
ICAgKiBkb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNT
Y3JpcHRSdW5uZXI6OkFzeW5jU2NyaXB0UnVubmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5j
U2NyaXB0UnVubmVyOjp+QXN5bmNTY3JpcHRSdW5uZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXN5
bmNTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRTb29uKTogSW5jcmVtZW50IHRoZSBkZWxheSBj
b3VudCB3aGVuIGEgdGFzayB0byBleGVjdXRlIHNjcmlwdHMgaXMgcXVldWVkIHVwLgorICAgICAg
ICAoV2ViQ29yZTo6QXN5bmNTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQpOiBkZWNyZW1lbnRMb2Fk
RXZlbnREZWxheUNvdW50IGhhbmRsZXMgY2FsbGluZyBjaGVja0NvbXBsZXRlZCgpLgorICAgICAg
ICAqIGRvbS9Bc3luY1NjcmlwdFJ1bm5lci5oOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3Jp
cHRSdW5uZXI6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9j
dW1lbnQpOiBUcmVhdHMgYXN5bmMgc2NyaXB0cyBqdXN0IGxpa2UgYSBkeW5hbWljYWxseSBpbnNl
cnRlZCBzY3JpcHQgZWxlbWVudCByYXRoZXIgdGhhbiBhIHBhcnNlciBpbnNlcnRlZCBvbmUuCisg
ICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MU2NyaXB0UnVubmVyOjpydW5TY3JpcHQpOgorCiAyMDEwLTA5LTA3ICBEaW1pdHJp
IEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjY2ODg2LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRS
dW5uZXIuY3BwIGIvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwCmluZGV4IDk2MDM2
YTFiYjk3M2JjNjgzNjgzNmRmMzg4ODE0OGQ1ZDc1ZjZjZWUuLjg2MjUxYjhmM2E5NmY5MjRiYTQ0
NTU2YTg0ZjNiYjY5ODEyODk3MGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0
UnVubmVyLmNwcAorKysgYi9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI3
LDIwICsyNywyNSBAQAogI2luY2x1ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmgiCiAKICNpbmNsdWRl
ICJDYWNoZWRTY3JpcHQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1l
bnQuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotQXN5bmNTY3JpcHRSdW5uZXI6OkFzeW5jU2NyaXB0UnVubmVyKCkKLSAgICA6IG1fdGltZXIo
dGhpcywgJkFzeW5jU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKQorQXN5bmNTY3JpcHRSdW5uZXI6
OkFzeW5jU2NyaXB0UnVubmVyKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQo
ZG9jdW1lbnQpCisgICAgLCBtX3RpbWVyKHRoaXMsICZBc3luY1NjcmlwdFJ1bm5lcjo6dGltZXJG
aXJlZCkKIHsKKyAgICBBU1NFUlQoZG9jdW1lbnQpOwogfQogCiBBc3luY1NjcmlwdFJ1bm5lcjo6
fkFzeW5jU2NyaXB0UnVubmVyKCkKIHsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2Ny
aXB0c1RvRXhlY3V0ZVNvb24uc2l6ZSgpOyArK2kpCi0gICAgICAgICBtX3NjcmlwdHNUb0V4ZWN1
dGVTb29uW2ldLmZpcnN0LT5lbGVtZW50KCktPmRlcmVmKCk7IC8vIEJhbGFuY2VzIHJlZigpIGlu
IGV4ZWN1dGVTY3JpcHRTb29uKCkuCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3Njcmlw
dHNUb0V4ZWN1dGVTb29uLnNpemUoKTsgKytpKSB7CisgICAgICAgIG1fc2NyaXB0c1RvRXhlY3V0
ZVNvb25baV0uZmlyc3QtPmVsZW1lbnQoKS0+ZGVyZWYoKTsgLy8gQmFsYW5jZXMgcmVmKCkgaW4g
ZXhlY3V0ZVNjcmlwdFNvb24oKS4KKyAgICAgICAgbV9kb2N1bWVudC0+ZGVjcmVtZW50TG9hZEV2
ZW50RGVsYXlDb3VudCgpOworICAgIH0KIH0KIAogdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6ZXhl
Y3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudERhdGEqIGRhdGEsIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0KQpAQCAtNTEsNiArNTYsNyBAQCB2b2lkIEFz
eW5jU2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbihTY3JpcHRFbGVtZW50RGF0YSogZGF0
YSwgQ2FjaGVkUmVzb3VyYwogICAgIEFTU0VSVChlbGVtZW50KTsKICAgICBBU1NFUlQoZWxlbWVu
dC0+aW5Eb2N1bWVudCgpKTsKIAorICAgIG1fZG9jdW1lbnQtPmluY3JlbWVudExvYWRFdmVudERl
bGF5Q291bnQoKTsKICAgICBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLmFwcGVuZChtYWtlX3BhaXIo
ZGF0YSwgY2FjaGVkU2NyaXB0KSk7CiAgICAgZWxlbWVudC0+cmVmKCk7IC8vIEJhbGFuY2VkIGJ5
IGRlcmVmKClzIGluIHRpbWVyRmlyZWQoKSBhbmQgZHRvci4KICAgICBpZiAoIW1fdGltZXIuaXNB
Y3RpdmUoKSkKQEAgLTc4LDYgKzg0LDcgQEAgdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6dGltZXJG
aXJlZChUaW1lcjxBc3luY1NjcmlwdFJ1bm5lcj4qIHRpbWVyKQogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgIHNjcmlwdHNbaV0uZmlyc3QtPmV4ZWN1dGUo
c2NyaXB0c1tpXS5zZWNvbmQuZ2V0KCkpOwogICAgICAgICBzY3JpcHRzW2ldLmZpcnN0LT5lbGVt
ZW50KCktPmRlcmVmKCk7IC8vIEJhbGFuY2VzIHJlZigpIGluIGV4ZWN1dGVTY3JpcHRTb29uKCku
CisgICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmggYi9X
ZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oCmluZGV4IDhiNzVlMDY5NDk2ODY4YWYzN2Mz
NjRmNGFlNzc1ZWFiYjFiNmRkMjYuLjU3YmVlODRiYWU3NGY3OTczMDEwY2VhYTk5NTNlNjQ4OTEx
Yzg4MTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmgKKysrIGIv
V2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaApAQCAtMzUsMTEgKzM1LDEyIEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFNjcmlwdDsKK2NsYXNzIERvY3VtZW50Owog
Y2xhc3MgU2NyaXB0RWxlbWVudERhdGE7CiAgICAgCiBjbGFzcyBBc3luY1NjcmlwdFJ1bm5lciA6
IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8QXN5
bmNTY3JpcHRSdW5uZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIG5ldyBBc3luY1NjcmlwdFJ1bm5lcigp
OyB9CisgICAgc3RhdGljIFBhc3NPd25QdHI8QXN5bmNTY3JpcHRSdW5uZXI+IGNyZWF0ZShEb2N1
bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIG5ldyBBc3luY1NjcmlwdFJ1bm5lcihkb2N1bWVudCk7
IH0KICAgICB+QXN5bmNTY3JpcHRSdW5uZXIoKTsKIAogICAgIHZvaWQgZXhlY3V0ZVNjcmlwdFNv
b24oU2NyaXB0RWxlbWVudERhdGEqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+
KTsKQEAgLTQ4LDEwICs0OSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXN1bWUoKTsKIAogcHJp
dmF0ZToKLSAgICBBc3luY1NjcmlwdFJ1bm5lcigpOworICAgIEFzeW5jU2NyaXB0UnVubmVyKERv
Y3VtZW50Kik7CiAKICAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8QXN5bmNTY3JpcHRSdW5uZXI+
Kik7CiAKKyAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFNj
cmlwdEVsZW1lbnREYXRhKiwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiA+ID4g
bV9zY3JpcHRzVG9FeGVjdXRlU29vbjsKICAgICBUaW1lcjxBc3luY1NjcmlwdFJ1bm5lcj4gbV90
aW1lcjsKIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYjgyYmMwNWI0Y2Y4ODE5NGMzN2JlYjU3NDJkMzk1ODY4
YWI0NzdlMS4uOTRjN2JjZjhmZWI4ZjI1ZDBjOGI0ZWFhMjU4ZGYwOGUwY2MyZGYzZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcApAQCAtMzcxLDcgKzM3MSw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUs
IGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICAsIG1fc3Rh
cnRUaW1lKGN1cnJlbnRUaW1lKCkpCiAgICAgLCBtX292ZXJNaW5pbXVtTGF5b3V0VGhyZXNob2xk
KGZhbHNlKQogICAgICwgbV9leHRyYUxheW91dERlbGF5KDApCi0gICAgLCBtX2FzeW5jU2NyaXB0
UnVubmVyKEFzeW5jU2NyaXB0UnVubmVyOjpjcmVhdGUoKSkKKyAgICAsIG1fYXN5bmNTY3JpcHRS
dW5uZXIoQXN5bmNTY3JpcHRSdW5uZXI6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1feG1sVmVyc2lv
bigiMS4wIikKICAgICAsIG1feG1sU3RhbmRhbG9uZShmYWxzZSkKICAgICAsIG1fc2F2ZWRSZW5k
ZXJlcigwKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCA4NjI2YmI0NjUzYTVjMWJmMmQ3NTIxMjk4
ZjVlZGE3NGUzNzVkMWZlLi42YTYzZjQ3NDNlNjEzMGE4YWQwZjZlMDU5NGM5YjA4MTk4NGIyMjgx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHZvaWQgU2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoU2NyaXB0RWxl
bWVudERhdGEmIGRhdGEsIGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogewotICAgIGlmIChkYXRh
LmNyZWF0ZWRCeVBhcnNlcigpKQorICAgIGlmIChkYXRhLmNyZWF0ZWRCeVBhcnNlcigpICYmICFk
YXRhLmlzQXN5bmNocm9ub3VzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIGh0dHA6Ly93
d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3NjcmlwdApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcCBiL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKaW5kZXggNzY0YmYwMWE4ZDcxYzcxNjdh
Y2ZhZTJkMjE4ZmM2MGM4ZDJmMmE3Ny4uZDg2MDYyODAyOGZiOTMyNzgzYWZjMTczYTMzNDAyZTkw
ZjRlYzU5NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVy
LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwCkBAIC0z
MjEsNyArMzIxLDkgQEAgdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpydW5TY3JpcHQoRWxlbWVudCog
c2NyaXB0LCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyKQogICAgICAgICBub3RJbXBsZW1lbnRlZCgp
OyAvLyBldmVudCBmb3Igc3VwcG9ydAogCiAgICAgICAgIGlmIChzY3JpcHQtPmhhc0F0dHJpYnV0
ZShzcmNBdHRyKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBhc3luYy4KKyAgICAg
ICAgICAgIGlmIChzY3JpcHQtPmhhc0F0dHJpYnV0ZShhc3luY0F0dHIpKSAvLyBBc3luYyB0YWtl
cyBwcmVjZW5kZW5jZSBvdmVyIGRlZmVyLgorICAgICAgICAgICAgICAgIHJldHVybjsgLy8gQXN5
bmNocm9ub3VzIHNjcmlwdHMgaGFuZGxlIHRoZW1zZWx2ZXMuCisKICAgICAgICAgICAgIGlmIChz
Y3JpcHQtPmhhc0F0dHJpYnV0ZShkZWZlckF0dHIpKQogICAgICAgICAgICAgICAgIHJlcXVlc3RE
ZWZlcnJlZFNjcmlwdChzY3JpcHQpOwogICAgICAgICAgICAgZWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67040</attachid>
            <date>2010-09-09 08:58:23 -0700</date>
            <delta_ts>2010-09-09 21:31:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-45310-20100909085822.patch</filename>
            <type>text/plain</type>
            <size>20284</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2N2QzM2JmMWFkMjI5YjBhZmE0ZGNiNzExZmIyMWRhZGVjMjRhZWRkLi5kMzQzZDQ1
NmFhMThlMzY4MjQ5YzMyYmM1NmIxMWIwZWRkOGExZmFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTAtMDktMDcgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIFN1cHBvcnQgPHNjcmlwdCBh
c3luYz4gYXMgc3BlY2lmaWVkIGJ5IEhUTUw1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NTMxMAorCisgICAgICAgICogZmFzdC9kb20vRG9jdW1lbnQv
cmVhZHlzdGF0ZS5odG1sOiBEeW5hbWljYWxseSBpbnNlcnRlZCBzY3JpcHRzIG5vdyBibG9jayB0
aGUgbG9hZCBldmVudCBsaWtlIGluIEZGNC4gU28gbW92ZSB0aGUgZmluaXNoSlNUZXN0IGNhbGwg
dG8gbG9hZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Eb2N1bWVudC9yZWFkeXN0YXRlLWV4cGVjdGVk
LnR4dDogRHluYW1pY2FsbHkgaW5zZXJ0ZWQgc2NyaXB0IG5vdyBydW5zIGJlZm9yZSBsb2FkIGR1
cmluZyAiaW50ZXJhY3RpdmUiIHBoYXNlLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L2FzeW5jLWlubGluZS1zY3JpcHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1pbmxpbmUtc2NyaXB0Lmh0bWw6IEFk
ZGVkLiBUaGUgYXN5bmMgYXR0cmlidXRlIGRvZXNuJ3QgYXBwbHkgdG8gaW5saW5lIHNjcmlwdHMs
IHNvIGNoZWNrIHRoYXQgdGhleSBleGVjdXRlIGluIG9yZGVyLgorICAgICAgICAqIGZhc3QvZG9t
L0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLW9uYmVmb3JlbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLW9uYmVmb3JlbG9h
ZC5odG1sOiBBZGRlZC4gQ2hlY2sgdGhhdCBvbmJlZm9yZWxvYWQgZXZlbnRzIGZpcmUgc3luY2hy
b25vdXNseSBhbmQgdGhhdCB0aGV5IG1heSBiZSBjYW5jZWxsZWQuCisgICAgICAgICogZmFzdC9k
b20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtd3JpdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy13cml0ZS5odG1sOiBBZGRl
ZC4gQ2hlY2sgdGhhdCB3cml0ZXMgZnJvbSBhc3luYyBzY3JpcHRzIGFyZSBuZXV0cmFsaXplZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZXNvdXJjZXMvYXN5bmMuanM6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9hc3luYy1hbmQtZGVmZXItc2NyaXB0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL2FzeW5jLWFu
ZC1kZWZlci1zY3JpcHQuaHRtbDogQWRkZWQuIFRoZSBhc3luYyBhdHRyaWJ1dGVzIHRha2VzIHBy
ZWNlbmRlbmNlIG92ZXIgdGhlIGRlZmVyIGF0dHJpYnV0ZS4KKyAgICAgICAgQ2hlY2sgdGhhdCBh
IHNjcmlwdCB3aGljaCBoYXMgYm90aCBhc3luYyBhbmQgZGVmZXIgYWN0cyBhcyBhc3luYyBieSBl
bnN1cmluZyBpdCBsb2FkcyBhZnRlciBET01Db250ZW50TG9hZGVkLgorICAgICAgICBBIGRlZmVy
cmVkIHNjcmlwdHMgd291bGQgYmxvY2sgRENMLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9y
ZXNvdXJjZXMvYXN5bmMtc2NyaXB0LmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21p
c2MvcmVzb3VyY2VzL3Nsb3ctYXN5bmMtc2NyaXB0LmNnaTogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMuaHRtbDogQWRkZWQuIFRlc3QgZ2VuZXJhbCBl
eGVjdXRpb24gb3JkZXIgb2YgZGVmZXJyZWQgc2NyaXB0cy4KKyAgICAgICAgVGhlIHRlc3QgY2hl
Y2tzIGZvciBtdWx0aXBsZSB2YWxpZCBvcmRlcnMgc2luY2UgaXQgaXMgaW5kZXRlcm1pbmF0ZS4K
KwogMjAxMC0wOS0wOSAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0RvY3VtZW50L3JlYWR5c3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vRG9jdW1lbnQvcmVhZHlzdGF0ZS1leHBlY3RlZC50eHQKaW5kZXggM2RmY2VjN2E3Zjhi
MzgwYzc2MDE1NzdjZjVjMWViOGRkNjI0YTFiNy4uNjA0NjA2Mzg4NjFiNjMwMTgyZTg3MTUxMzIw
OWM4YWUwNjE0OTg1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQv
cmVhZHlzdGF0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1l
bnQvcmVhZHlzdGF0ZS1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIFBBU1MgZG9jdW1lbnQu
cmVhZHlTdGF0ZSBpcyAibG9hZGluZyIKIFBBU1MgZG9jdW1lbnQucmVhZHlTdGF0ZSBpcyAibG9h
ZGluZyIKIFBBU1MgZG9jdW1lbnQucmVhZHlTdGF0ZSBpcyAiaW50ZXJhY3RpdmUiCiBQQVNTIGRv
Y3VtZW50LnJlYWR5U3RhdGUgaXMgImludGVyYWN0aXZlIgotUEFTUyBkb2N1bWVudC5yZWFkeVN0
YXRlIGlzICJjb21wbGV0ZSIKK1BBU1MgZG9jdW1lbnQucmVhZHlTdGF0ZSBpcyAiaW50ZXJhY3Rp
dmUiCiBQQVNTIGRvY3VtZW50LnJlYWR5U3RhdGUgaXMgImNvbXBsZXRlIgogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9E
b2N1bWVudC9yZWFkeXN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9y
ZWFkeXN0YXRlLmh0bWwKaW5kZXggNDA0NTE4ZDg1ZmE0ZTcxOWIxNDZkYWFmMjA5NGZjZDU3Yjlm
NTIwYS4uNDc1MWFhNzhlNWE5YWQ0NDAzZjlkMzE3MzE5ODhmZmJmZTY2MmUxNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvcmVhZHlzdGF0ZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlYWR5c3RhdGUuaHRtbApAQCAtNCw3ICs0LDcg
QEAKIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2RvY3VtZW50LnJlYWR5U3RhdGUnLCAnY29tcGxldGUnKTsiPgorPGJvZHkgb25sb2Fk
PSJzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2RvY3VtZW50LnJlYWR5U3RhdGUnLCAnY29tcGxldGUn
KTtmaW5pc2hKU1Rlc3QoKTsiPgogVGVzdHMgdGhhdCB0aGUgZG9jdW1lbnQncyByZWFkeVN0YXRl
IGlzIHNldCBwcm9wZXJseSBhdCB2YXJpb3VzIHBoYXNlcyBkdXJpbmcgbG9hZC4KIDxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdCBkZWZlciBzcmM9ImRhdGE6dGV4dC9qYXZhc2NyaXB0
LHNob3VsZEJlRXF1YWxUb1N0cmluZygnZG9jdW1lbnQucmVhZHlTdGF0ZScsICdpbnRlcmFjdGl2
ZScpOyI+PC9zY3JpcHQ+CkBAIC0xOCw4ICsxOCw3IEBAIFRlc3RzIHRoYXQgdGhlIGRvY3VtZW50
J3MgcmVhZHlTdGF0ZSBpcyBzZXQgcHJvcGVybHkgYXQgdmFyaW91cyBwaGFzZXMgZHVyaW5nIGxv
CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5yZWFkeVN0YXRlIiwgImludGVy
YWN0aXZlIik7CiAKICAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQn
KTsKLSAgICBlbC5zcmMgPSAiZGF0YTp0ZXh0L2phdmFzY3JpcHQsc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdkb2N1bWVudC5yZWFkeVN0YXRlJywgJ2NvbXBsZXRlJyk7IjsKLSAgICBlbC5vbmxvYWQg
PSBmdW5jdGlvbigpIHsgZmluaXNoSlNUZXN0KCk7IH0KKyAgICBlbC5zcmMgPSAiZGF0YTp0ZXh0
L2phdmFzY3JpcHQsc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkb2N1bWVudC5yZWFkeVN0YXRlJywg
J2ludGVyYWN0aXZlJyk7IjsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVh
ZCcpWzBdLmFwcGVuZENoaWxkKGVsKTsKICAgfSwgZmFsc2UpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1pbmxpbmUtc2NyaXB0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5j
LWlubGluZS1zY3JpcHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjZGIyMjVhMjI3ZTJhM2Rk
ODc4YTEyZjcwMzI0NGNjOGQyZTA4MzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1pbmxpbmUtc2NyaXB0LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKK0NoZWNrcyB0aGF0IGlubGluZSBzY3JpcHRzIGFyZSBub3QgYXN5
bmMuCisxCisyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L2FzeW5jLWlubGluZS1zY3JpcHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxTY3JpcHRFbGVtZW50L2FzeW5jLWlubGluZS1zY3JpcHQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmNk
M2E1ZTA2ODgzZTc4ZWNmMWQ1OTdlMzhmYzllNGEzMGQ3ZDg4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtaW5saW5lLXNjcmlw
dC5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorQ2hlY2tzIHRoYXQgaW5saW5lIHNjcmlwdHMgYXJlIG5vdCBhc3luYy4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBhc3luYz4KKyAgZGVidWcoMSk7Cis8L3NjcmlwdD4K
KzxzY3JpcHQ+CisgIGRlYnVnKDIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1vbmJl
Zm9yZWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVs
ZW1lbnQvYXN5bmMtb25iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1
NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDY4NTQz
ZWFlN2YzNjQ0MTg4ODg3NzE4ODcwYzRhOGQ0MTBhM2UyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtb25iZWZvcmVsb2FkLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitDaGVja3MgdGhhdCBhc3luYyBzY3JpcHRzIGZp
cmUgb25iZWZvcmVsb2FkIGltbWVkaWF0ZWx5IGFuZCB0aGF0IGl0IGlzIGNhbmNlbGxhYmxlLgor
Y2FuY2VsbGVkIG9uYmVmb3JlbG9hZCBhc3luYworb25iZWZvcmVsb2FkIGFzeW5jCitvbmJlZm9y
ZWxvYWQgZXh0ZXJuYWwKK2FzeW5jCitsb2FkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtb25iZWZvcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1vbmJlZm9yZWxvYWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41YzE5N2NmMmRkYTg4ZDE0OGJjNzMzZGZmYTg3OWU0MWRlNmEwZjdhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtb25i
ZWZvcmVsb2FkLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJkZWJ1ZygnbG9hZCcpO2ZpbmlzaEpTVGVzdCgpOyI+CitDaGVj
a3MgdGhhdCBhc3luYyBzY3JpcHRzIGZpcmUgb25iZWZvcmVsb2FkIGltbWVkaWF0ZWx5IGFuZCB0
aGF0IGl0IGlzIGNhbmNlbGxhYmxlLgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
PnZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTs8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc2hvdWxkbm90ZXhlY3V0ZS5qcyIgb25iZWZvcmVsb2FkPSJkZWJ1ZygnY2FuY2VsbGVkIG9u
YmVmb3JlbG9hZCBhc3luYycpOyByZXR1cm4gZmFsc2U7IiBhc3luYz48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvYXN5bmMuanMiIG9uYmVmb3JlbG9hZD0iZGVidWcoJ29uYmVmb3Jl
bG9hZCBhc3luYycpOyByZXR1cm4gdHJ1ZTsiIGFzeW5jPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
ImRhdGE6dGV4dC9qYXZhc2NyaXB0LCIgb25iZWZvcmVsb2FkPSJkZWJ1Zygnb25iZWZvcmVsb2Fk
IGV4dGVybmFsJyk7IHJldHVybiB0cnVlOyI+PC9zY3JpcHQ+Cis8c2NyaXB0PnZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtd3JpdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5
bmMtd3JpdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcx
ZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy13cml0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBA
QAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1l
bnQvYXN5bmMtd3JpdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVt
ZW50L2FzeW5jLXdyaXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ0YmU0ZmUwZDIzOTBmOTE5ZTFkNTY0
YWZjZmJhNzBlMGJhMDExZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLXdyaXRlLmh0bWwKQEAgLTAsMCArMSw2IEBACis8c2Ny
aXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KK1BBU1MKKzxzY3JpcHQgYXN5bmM9IkFT
WU5DIiBzcmM9ImRhdGE6dGV4dC9qYXZhc2NyaXB0LGRvY3VtZW50LndyaXRlKCdGQUlMJyk7Ij48
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVt
ZW50L3Jlc291cmNlcy9hc3luYy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L3Jlc291cmNlcy9hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzkzYzczNjU0ZDViNWE0YmIz
NjhiNDc0NmJkYzkyZGY0MDA0MjlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVzb3VyY2VzL2FzeW5jLmpzCkBAIC0wLDAgKzEgQEAK
K2RlYnVnKCJhc3luYyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L2FzeW5jLWFuZC1kZWZlci1zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL2FzeW5jLWFuZC1kZWZlci1zY3JpcHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE3YzhhZTdlZDQ5ODBjMThhZjliM2RjOTE2MWE2NmRjZTdhOGQ1ODMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYXN5bmMtYW5kLWRlZmVyLXNjcmlwdC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitDaGVja3MgdGhhdCB0aGUgYXN5bmMgYXR0cmli
dXRlIHRha2VzIHByZWNlbmRlbmNlIG92ZXIgZGVmZXIuCitET01Db250ZW50TG9hZGVkCitzbG93
QXN5bmMKK2xvYWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYXN5bmMtYW5k
LWRlZmVyLXNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2FzeW5jLWFu
ZC1kZWZlci1zY3JpcHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjYzOWU4YzEyMzc2YjZjYjUwM2NhNmJj
ZWNkYTQ0M2FjNjQ1NTZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL2FzeW5jLWFuZC1kZWZlci1zY3JpcHQuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy10ZXN0cy1yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZGVidWco
J2xvYWQnKTtmaW5pc2hKU1Rlc3QoKTsiPgorQ2hlY2tzIHRoYXQgdGhlIGFzeW5jIGF0dHJpYnV0
ZSB0YWtlcyBwcmVjZW5kZW5jZSBvdmVyIGRlZmVyLgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgordmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkgeworICAgIGRlYnVnKCJET01D
b250ZW50TG9hZGVkIik7Cit9LCBmYWxzZSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBkZWZlciBhc3luYyBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9taXNjL3Jlc291cmNlcy9zbG93LWFzeW5jLXNjcmlwdC5jZ2kiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21pc2MvcmVzb3VyY2VzL2FzeW5jLXNjcmlwdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9yZXNvdXJjZXMvYXN5bmMtc2NyaXB0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzOTNjNzM2NTRkNWI1
YTRiYjM2OGI0NzQ2YmRjOTJkZjQwMDQyOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2FzeW5jLXNjcmlwdC5qcwpAQCAtMCwwICsxIEBA
CitkZWJ1ZygiYXN5bmMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9yZXNvdXJjZXMvc2xvdy1hc3luYy1zY3JpcHQuY2dpIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL3Jlc291cmNlcy9zbG93LWFzeW5jLXNjcmlwdC5jZ2kKbmV3IGZpbGUgbW9kZSAxMDA3
NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTRlYzRl
NzFlNWU4ZTUzMmE3OGQ5MmM2MjJkNWE2ZTAzMDY4YmJiYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvc2xvdy1hc3luYy1zY3JpcHQuY2dp
CkBAIC0wLDAgKzEsNiBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisKK3ByaW50ICJDb250ZW50LXR5
cGU6IHRleHQvamF2YXNjcmlwdFxuXG4iOworc2xlZXAoMS4wKTsKK3ByaW50ICJkZWJ1Zygnc2xv
d0FzeW5jJyk7XG4iOworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mv
c2NyaXB0LWFzeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9z
Y3JpcHQtYXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ZDg2ODBlM2RmYjE0ZjcyODA4
ZWJkZWJmOWYzM2MwNzk5NmRjN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1Ro
aXMgdGVzdHMgZm9yIHByb3BlciBleGVjdXRpb24gb3JkZXIgb2Ygc2NyaXB0cyB3aXRoIHRoZSBh
c3luYyBhdHRyaWJ1dGUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NzEwLgorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Njcmlw
dC1hc3luYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk0NTZjZmZmMTBmNDE4ZTE1Y2Q1YjBlZjFiMDlkZWU4OGJlNWQzMWYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFz
eW5jLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorVGhpcyB0ZXN0
cyBmb3IgcHJvcGVyIGV4ZWN1dGlvbiBvcmRlciBvZiBzY3JpcHRzIHdpdGggdGhlIGFzeW5jIGF0
dHJpYnV0ZSA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA3MTAiPmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcxMDwvYT4u
PGhyPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+Cit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9uIGRlYnVnKG1zZykK
K3sKKyAgICBpZiAoIXdpbmRvdy5zdGF0dXNfKQorICAgICAgICB3aW5kb3cuc3RhdHVzXyA9ICcn
OworICAgIHdpbmRvdy5zdGF0dXNfICs9ICcgJyArIG1zZyArICcgJzsKK30KKworZG9jdW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkgeworICAgIGRl
YnVnKCdET01Db250ZW50TG9hZGVkJyk7Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIHRlc3QoKQor
eworICAgIHZhciBleHBlY3RlZEEgPSAiIGFzeW5jICBleHRlcm5hbCAgaW5saW5lICBET01Db250
ZW50TG9hZGVkICBzbG93QXN5bmMgIjsKKyAgICB2YXIgZXhwZWN0ZWRCID0gIiBleHRlcm5hbCAg
YXN5bmMgIGlubGluZSAgRE9NQ29udGVudExvYWRlZCAgc2xvd0FzeW5jICI7CisgICAgdmFyIGV4
cGVjdGVkQyA9ICIgZXh0ZXJuYWwgIGlubGluZSAgYXN5bmMgIERPTUNvbnRlbnRMb2FkZWQgIHNs
b3dBc3luYyAiOworICAgIHZhciBleHBlY3RlZEQgPSAiIGV4dGVybmFsICBpbmxpbmUgIERPTUNv
bnRlbnRMb2FkZWQgIGFzeW5jICBzbG93QXN5bmMgIjsKKyAgICB2YXIgcmVzdWx0cyA9ICJQQVNT
IjsKKyAgICBpZiAod2luZG93LnN0YXR1c18gIT0gZXhwZWN0ZWRBICYmIHdpbmRvdy5zdGF0dXNf
ICE9IGV4cGVjdGVkQiAmJiB3aW5kb3cuc3RhdHVzXyAhPSBleHBlY3RlZEMgJiYgd2luZG93LnN0
YXR1c18gIT0gZXhwZWN0ZWREKQorICAgICAgICByZXN1bHRzID0gIkZBSUw6IEV4cGVjdGVkIG9u
ZSBvZiAnIiArIGV4cGVjdGVkQSArICInIHx8ICciICsgZXhwZWN0ZWRCICsgIicgfHwgJyIgKyBl
eHBlY3RlZEMgKyAiJyB8fCAnIiArIGV4cGVjdGVkRCArICInLCBBY3R1YWw9JyIgKyB3aW5kb3cu
c3RhdHVzXyArICInIjsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlu
bmVySFRNTCA9IHJlc3VsdHM7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iaHR0cDovLzEyNy4w
LjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3Nsb3ctYXN5bmMtc2NyaXB0LmNnaSIgYXN5bmM9IkFT
WU5DIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9y
ZXNvdXJjZXMvYXN5bmMtc2NyaXB0LmpzIiBhc3luYz0iQVNZTkMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9leHRlcm5hbC1zY3Jp
cHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCJpbmxpbmUiKTsKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzZDFmY2FiNzBmNDcyMTI5ZDMwZTBkMGNlNzVm
ODUwNDM2YzE4NTlhLi4zMDM4NWEyYzY2N2M3OTYzOWZhNzNjNzJkODY2ZDZhYmY1N2U5NmZmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMwIEBACisyMDEwLTA5LTA3ICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBTdXBw
b3J0IDxzY3JpcHQgYXN5bmM+IGFzIHNwZWNpZmllZCBieSBIVE1MNQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUzMTAKKworICAgICAgICBUZXN0czog
ZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtaW5saW5lLXNjcmlwdC5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1vbmJlZm9yZWxvYWQu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtd3Jp
dGUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL2FzeW5jLWFuZC1kZWZlci1z
Y3JpcHQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy5o
dG1sCisKKyAgICAgICAgKiBkb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXN5bmNTY3JpcHRSdW5uZXI6OkFzeW5jU2NyaXB0UnVubmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkFzeW5jU2NyaXB0UnVubmVyOjp+QXN5bmNTY3JpcHRSdW5uZXIpOgorICAgICAgICAo
V2ViQ29yZTo6QXN5bmNTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRTb29uKTogSW5jcmVtZW50
IHRoZSBkZWxheSBjb3VudCB3aGVuIGEgdGFzayB0byBleGVjdXRlIHNjcmlwdHMgaXMgcXVldWVk
IHVwLgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQpOiBk
ZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50IGhhbmRsZXMgY2FsbGluZyBjaGVja0NvbXBsZXRl
ZCgpLgorICAgICAgICAqIGRvbS9Bc3luY1NjcmlwdFJ1bm5lci5oOgorICAgICAgICAoV2ViQ29y
ZTo6QXN5bmNTY3JpcHRSdW5uZXI6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgICogZG9t
L1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aW5z
ZXJ0ZWRJbnRvRG9jdW1lbnQpOiBUcmVhdHMgYXN5bmMgc2NyaXB0cyBqdXN0IGxpa2UgYSBkeW5h
bWljYWxseSBpbnNlcnRlZCBzY3JpcHQgZWxlbWVudCByYXRoZXIgdGhhbiBhIHBhcnNlciBpbnNl
cnRlZCBvbmUuCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpydW5TY3JpcHQpOgorCiAyMDEwLTA5
LTA5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Bc3lu
Y1NjcmlwdFJ1bm5lci5jcHAgYi9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKaW5k
ZXggOTYwMzZhMWJiOTczYmM2ODM2ODM2ZGYzODg4MTQ4ZDVkNzVmNmNlZS4uODYyNTFiOGYzYTk2
ZjkyNGJhNDQ1NTZhODRmM2JiNjk4MTI4OTcwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vQXN5
bmNTY3JpcHRSdW5uZXIuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNw
cApAQCAtMjcsMjAgKzI3LDI1IEBACiAjaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIKIAog
I2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1Bc3luY1NjcmlwdFJ1bm5lcjo6QXN5bmNTY3JpcHRSdW5uZXIoKQotICAgIDog
bV90aW1lcih0aGlzLCAmQXN5bmNTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQpCitBc3luY1Njcmlw
dFJ1bm5lcjo6QXN5bmNTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogbV9k
b2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1fdGltZXIodGhpcywgJkFzeW5jU2NyaXB0UnVubmVy
Ojp0aW1lckZpcmVkKQogeworICAgIEFTU0VSVChkb2N1bWVudCk7CiB9CiAKIEFzeW5jU2NyaXB0
UnVubmVyOjp+QXN5bmNTY3JpcHRSdW5uZXIoKQogewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5zaXplKCk7ICsraSkKLSAgICAgICAgIG1fc2NyaXB0
c1RvRXhlY3V0ZVNvb25baV0uZmlyc3QtPmVsZW1lbnQoKS0+ZGVyZWYoKTsgLy8gQmFsYW5jZXMg
cmVmKCkgaW4gZXhlY3V0ZVNjcmlwdFNvb24oKS4KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgbV9zY3JpcHRz
VG9FeGVjdXRlU29vbltpXS5maXJzdC0+ZWxlbWVudCgpLT5kZXJlZigpOyAvLyBCYWxhbmNlcyBy
ZWYoKSBpbiBleGVjdXRlU2NyaXB0U29vbigpLgorICAgICAgICBtX2RvY3VtZW50LT5kZWNyZW1l
bnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisgICAgfQogfQogCiB2b2lkIEFzeW5jU2NyaXB0UnVu
bmVyOjpleGVjdXRlU2NyaXB0U29vbihTY3JpcHRFbGVtZW50RGF0YSogZGF0YSwgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpCkBAIC01MSw2ICs1Niw3IEBA
IHZvaWQgQXN5bmNTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRTb29uKFNjcmlwdEVsZW1lbnRE
YXRhKiBkYXRhLCBDYWNoZWRSZXNvdXJjCiAgICAgQVNTRVJUKGVsZW1lbnQpOwogICAgIEFTU0VS
VChlbGVtZW50LT5pbkRvY3VtZW50KCkpOwogCisgICAgbV9kb2N1bWVudC0+aW5jcmVtZW50TG9h
ZEV2ZW50RGVsYXlDb3VudCgpOwogICAgIG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uYXBwZW5kKG1h
a2VfcGFpcihkYXRhLCBjYWNoZWRTY3JpcHQpKTsKICAgICBlbGVtZW50LT5yZWYoKTsgLy8gQmFs
YW5jZWQgYnkgZGVyZWYoKXMgaW4gdGltZXJGaXJlZCgpIGFuZCBkdG9yLgogICAgIGlmICghbV90
aW1lci5pc0FjdGl2ZSgpKQpAQCAtNzgsNiArODQsNyBAQCB2b2lkIEFzeW5jU2NyaXB0UnVubmVy
Ojp0aW1lckZpcmVkKFRpbWVyPEFzeW5jU2NyaXB0UnVubmVyPiogdGltZXIpCiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgc2NyaXB0c1tpXS5maXJzdC0+
ZXhlY3V0ZShzY3JpcHRzW2ldLnNlY29uZC5nZXQoKSk7CiAgICAgICAgIHNjcmlwdHNbaV0uZmly
c3QtPmVsZW1lbnQoKS0+ZGVyZWYoKTsgLy8gQmFsYW5jZXMgcmVmKCkgaW4gZXhlY3V0ZVNjcmlw
dFNvb24oKS4KKyAgICAgICAgbV9kb2N1bWVudC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3Vu
dCgpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5u
ZXIuaCBiL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmgKaW5kZXggOGI3NWUwNjk0OTY4
NjhhZjM3YzM2NGY0YWU3NzVlYWJiMWI2ZGQyNi4uNTdiZWU4NGJhZTc0Zjc5NzMwMTBjZWFhOTk1
M2U2NDg5MTFjODgxMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIu
aAorKysgYi9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oCkBAIC0zNSwxMSArMzUsMTIg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU2NyaXB0OworY2xhc3MgRG9j
dW1lbnQ7CiBjbGFzcyBTY3JpcHRFbGVtZW50RGF0YTsKICAgICAKIGNsYXNzIEFzeW5jU2NyaXB0
UnVubmVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093
blB0cjxBc3luY1NjcmlwdFJ1bm5lcj4gY3JlYXRlKCkgeyByZXR1cm4gbmV3IEFzeW5jU2NyaXB0
UnVubmVyKCk7IH0KKyAgICBzdGF0aWMgUGFzc093blB0cjxBc3luY1NjcmlwdFJ1bm5lcj4gY3Jl
YXRlKERvY3VtZW50KiBkb2N1bWVudCkgeyByZXR1cm4gbmV3IEFzeW5jU2NyaXB0UnVubmVyKGRv
Y3VtZW50KTsgfQogICAgIH5Bc3luY1NjcmlwdFJ1bm5lcigpOwogCiAgICAgdm9pZCBleGVjdXRl
U2NyaXB0U29vbihTY3JpcHRFbGVtZW50RGF0YSosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFNjcmlwdD4pOwpAQCAtNDgsMTAgKzQ5LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc3VtZSgp
OwogCiBwcml2YXRlOgotICAgIEFzeW5jU2NyaXB0UnVubmVyKCk7CisgICAgQXN5bmNTY3JpcHRS
dW5uZXIoRG9jdW1lbnQqKTsKIAogICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxBc3luY1Njcmlw
dFJ1bm5lcj4qKTsKIAorICAgIERvY3VtZW50KiBtX2RvY3VtZW50OwogICAgIFZlY3RvcjxzdGQ6
OnBhaXI8U2NyaXB0RWxlbWVudERhdGEqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3Jp
cHQ+ID4gPiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uOwogICAgIFRpbWVyPEFzeW5jU2NyaXB0UnVu
bmVyPiBtX3RpbWVyOwogfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiYTAyZGVjZWZiNTVlZjY1MWFjZWFiZmU0
ZmRmZTYzYTZhZWM2ZmU2Li4xYzNjYzFjNzBmMGQ3ODZkYzI2ODIyYjFmODJhNGViNGIyNWI4MWFi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0zNzEsNyArMzcxLDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1l
KiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKQogICAg
ICwgbV9zdGFydFRpbWUoY3VycmVudFRpbWUoKSkKICAgICAsIG1fb3Zlck1pbmltdW1MYXlvdXRU
aHJlc2hvbGQoZmFsc2UpCiAgICAgLCBtX2V4dHJhTGF5b3V0RGVsYXkoMCkKLSAgICAsIG1fYXN5
bmNTY3JpcHRSdW5uZXIoQXN5bmNTY3JpcHRSdW5uZXI6OmNyZWF0ZSgpKQorICAgICwgbV9hc3lu
Y1NjcmlwdFJ1bm5lcihBc3luY1NjcmlwdFJ1bm5lcjo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV94
bWxWZXJzaW9uKCIxLjAiKQogICAgICwgbV94bWxTdGFuZGFsb25lKGZhbHNlKQogICAgICwgbV9z
YXZlZFJlbmRlcmVyKDApCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNw
cCBiL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IGFiYzRjNjM0OWFhZWZlZTA4
ZTdmODFiNzk5OTEwNGJjOGY1N2YxYzIuLmJiNDZmMGEyOTcxZTRjNjM0MjJlZTdlODY4ZWQzNWI1
Y2M5YzQxM2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBi
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdm9pZCBTY3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudChT
Y3JpcHRFbGVtZW50RGF0YSYgZGF0YSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpCiB7Ci0gICAg
aWYgKGRhdGEuY3JlYXRlZEJ5UGFyc2VyKCkpCisgICAgaWYgKGRhdGEuY3JlYXRlZEJ5UGFyc2Vy
KCkgJiYgIWRhdGEuaXNBc3luY2hyb25vdXMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8g
aHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jc2NyaXB0
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwIGIv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAppbmRleCBlMzE0YTIxY2Zk
NWYxM2VkNDNjYjVmZTRkZjEwZjQ5NmJlMDg3ZTc4Li5lMWZjMTIwNmU1MzM4NzY2NTdmOTUzNzdj
ZDM5MTZiZjRkNjYyZWNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3Jp
cHRSdW5uZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5j
cHAKQEAgLTMyMSw3ICszMjEsOSBAQCB2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJ1blNjcmlwdChF
bGVtZW50KiBzY3JpcHQsIGludCBzdGFydGluZ0xpbmVOdW1iZXIpCiAgICAgICAgIG5vdEltcGxl
bWVudGVkKCk7IC8vIGV2ZW50IGZvciBzdXBwb3J0CiAKICAgICAgICAgaWYgKHNjcmlwdC0+aGFz
QXR0cmlidXRlKHNyY0F0dHIpKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxlIGFzeW5j
LgorICAgICAgICAgICAgaWYgKHNjcmlwdC0+aGFzQXR0cmlidXRlKGFzeW5jQXR0cikpIC8vIEFz
eW5jIHRha2VzIHByZWNlbmRlbmNlIG92ZXIgZGVmZXIuCisgICAgICAgICAgICAgICAgcmV0dXJu
OyAvLyBBc3luY2hyb25vdXMgc2NyaXB0cyBoYW5kbGUgdGhlbXNlbHZlcy4KKwogICAgICAgICAg
ICAgaWYgKHNjcmlwdC0+aGFzQXR0cmlidXRlKGRlZmVyQXR0cikpCiAgICAgICAgICAgICAgICAg
cmVxdWVzdERlZmVycmVkU2NyaXB0KHNjcmlwdCk7CiAgICAgICAgICAgICBlbHNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>