<?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>41510</bug_id>
          
          <creation_ts>2010-07-02 00:52:08 -0700</creation_ts>
          <short_desc>Add Base64DecodePolicy option at base64Decode()</short_desc>
          <delta_ts>2010-10-04 22:06:19 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>41462</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>joybro201</cc>
    
    <cc>skyul</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>245802</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-07-02 00:52:08 -0700</bug_when>
    <thetext>see patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245815</commentid>
    <comment_count>1</comment_count>
      <attachid>60348</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-07-02 01:23:47 -0700</bug_when>
    <thetext>Created attachment 60348
Patch

The change in DOMWindow is covered by atob-btoa.html
What is the best way to do a LayoutTest for the change in Page.cpp? Example?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246006</commentid>
    <comment_count>2</comment_count>
      <attachid>60348</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-02 12:02:46 -0700</bug_when>
    <thetext>Comment on attachment 60348
Patch

&gt; What is the best way to do a LayoutTest for the change in Page.cpp? Example?

It would help if ChangeLog explained the change.

There is a number of calls for user style sheet manipulation in layoutTestController, such as addUserStyleSheet, clearPersistentUserStyleSheet, setPersistentUserStyleSheetLocation, setUserStyleSheetEnabled, setUserStyleSheetLocation.

+    if (!base64Decode(in, out, false)) {

The person reading this code will have no idea about what &quot;false&quot; means. Please use a named enum constant instead.

r- for lack of testing and ChangeLog explanation. I didn&apos;t check the actual math.

See also: loosely related bug 23566.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246007</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-02 12:03:56 -0700</bug_when>
    <thetext>Even more importantly, we&apos;ll need to know why this change is made. Is it for compatibility with other browsers? If so, then which?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246008</commentid>
    <comment_count>4</comment_count>
      <attachid>60348</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-02 12:05:52 -0700</bug_when>
    <thetext>Comment on attachment 60348
Patch

Looks pretty good.

&gt; -    if (!base64Decode(in, out)) {
&gt; +    if (!base64Decode(in, out, false)) {

When a boolean argument is one that we&apos;ll pass constants to, we normally prefer an enum. There&apos;s no way to see what that &quot;false&quot; means at the call site. So we&apos;d do this:

    enum WhitespacePolicy { FailIfWhitespaceIsEncountered, SkipWhitespace };

Then make the argument type be WhitespacePolicy.

&gt; -    // Note: Keep this in sync with the &quot;out_len&quot; computation below.
&gt; +    // Note: Keep this in sync with the &quot;outLen&quot; computation below.

As long as you have to rename this, I think I would have avoided the abbreviation and named it outLength.

&gt; +    // Allowed because String::ascii() converts invalid charcters to &apos;?&apos;,

Typo: &quot;charcters&quot;.

&gt; +    // which isn&apos;t contained in the base64 characterset.

Typo: &quot;characterset&quot;.

I suggest this comment:

    // The ascii() function turns any non-ASCII characters into &quot;?&quot; characters,
    // which yields correct behavior because those are illegal in base 64.

&gt;      // 4-byte to 3-byte conversion
&gt; -    unsigned outLen = len - ((len + 3) / 4);
&gt; +    unsigned outLen = len - whitespaceCount - ((len + 3) / 4);

I believe this is wrong. It should be &quot;len - whitespaceCount - ((len - whitespaceCount + 3) / 4)&quot;. In cases with a lot of whitespace, the code you wrote would result in a buffer overrun!

Maybe you could find a way to write it that would make that clear. Perhaps add a buffer-overrun-related assertion, and make sure you have a test case with a ton of whitespace in it.

review- because of the buffer overrun issue

As far as testing the use of a data URL for a user stylesheet, I don&apos;t think we have a good way to regression-test that at the moment -- we&apos;d have to add something</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246016</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-02 12:14:44 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; There is a number of calls for user style sheet manipulation in layoutTestController, such as addUserStyleSheet, clearPersistentUserStyleSheet, setPersistentUserStyleSheetLocation, setUserStyleSheetEnabled, setUserStyleSheetLocation.

Good point! I think using these we can test the data URL support in user style sheets, so happily it seems likely I was wrong about testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246018</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-02 12:17:16 -0700</bug_when>
    <thetext>Something critical to check on is that our definition of whitespace matches the specification and other browsers exactly. Also, Alexey pointed me to bug 23566 and some specification text there states that in at least some circumstances all unrecognized characters should be allowed and ignored.

I am not sure we need a special case for whitespace in particular at all. Perhaps the feature we need is “skip/tolerate non-base-64 characters”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246340</commentid>
    <comment_count>7</comment_count>
      <attachid>60456</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-07-03 14:05:49 -0700</bug_when>
    <thetext>Created attachment 60456
Patch

&gt; I am not sure we need a special case for whitespace in particular at all. Perhaps the feature we need is “skip/tolerate non-base-64 characters”.
Other browsers ignore only whitespace.

RFC 2396:
&gt; In some cases, extra whitespace (spaces, linebreaks, tabs, etc.) may
&gt; need to be added to break long URI across lines. The whitespace
&gt; should be ignored when extracting the URI.
There is no exact definition what whitespace is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246348</commentid>
    <comment_count>8</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-07-03 14:27:33 -0700</bug_when>
    <thetext>Is there a reason why user-stylesheet-fast-path.html lives in platform/mac/fast/loader/?
If not I&apos;ll create a patch to move it into the platform independed folder?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246363</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-03 16:23:19 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; There is no exact definition what whitespace is.

OK. Then lets check the other browsers to see exactly what kinds of whitespace they skip.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246415</commentid>
    <comment_count>10</comment_count>
      <attachid>60472</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-07-04 08:05:26 -0700</bug_when>
    <thetext>Created attachment 60472
testcase

(In reply to comment #9)
&gt; OK. Then lets check the other browsers to see exactly what kinds of whitespace they skip.

IE 8:            %09, %0A, %0D,           %20
FF 3.6:     %08, %09, %0A, %0D,           %20
Safari 5.0:      %09, %0A, %0B, %0C, %0D, %20
Chrome 6.0:      %09, %0A, %0D,           %20

Opera 10.53 &amp; QtWebKit 4.6: all non-base64 (%00-%2A, %2C-%2E, %3A-%3C, %3E-%40, %5B-%60, %7B-%FF)

CAUTION: IE supports only 31 stylesheet per page</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246417</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-04 09:20:09 -0700</bug_when>
    <thetext>A quick aside, putting this in terms of our existing whitespace functions:

It looks like Opera and Qt are matching the specification and tolerating anything unrecognized.

Safari is matching isASCIISpace (which matches POSIX isspace).

IE and Chrome have a whitespace definition more like the isWhitespace function in SVGParserUtilities.h, CSSPreloadScanner.cpp, LegacyPreloadScanner.cpp, and XPathFunction.cpp.

Firefox’s concept of data URL whitespace doesn’t match any function already existing in WebKit.

None of the browsers match isCSSWhitespace from CSSParser.cpp, isWhitespace from CompositeEditCommand.cpp, isTokenizerWhitespace from HTMLTokenizer.cpp, or isTreeBuilderWhiteSpace from HTMLTreeBuilder.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246418</commentid>
    <comment_count>12</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-07-04 09:21:55 -0700</bug_when>
    <thetext>(In reply to comment #11)
Which is the &quot;correct&quot; one I should use now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249933</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-12 11:45:30 -0700</bug_when>
    <thetext>See also: bug 42061. Let&apos;s decide which one to keep.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258915</commentid>
    <comment_count>14</comment_count>
      <attachid>63224</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-02 09:15:03 -0700</bug_when>
    <thetext>Created attachment 63224
Patch

FIXED: With Base64DecodePolicy::FailOnInvalidCharacter a call to base64Decode(const String&amp;,...) didn&apos;t work, because String::ascii() is null-terminated. Now remove the null-character at the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258934</commentid>
    <comment_count>15</comment_count>
      <attachid>63224</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-02 09:54:01 -0700</bug_when>
    <thetext>Comment on attachment 63224
Patch

&gt; +    // The ascii() function turns any non-ASCII characters into &quot;?&quot; characters,
&gt; +    // which yields correct behavior because those are illegal in base 64.

The ascii() function also turns U+0001-U+001F and U+007F into &quot;?&quot; characters. And turns the null string into &quot;(null impl)&quot;. Are those behaviors desirable here? Do we have test cases that cover these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258956</commentid>
    <comment_count>16</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-02 10:22:13 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 63224 [details])
&gt; &gt; +    // The ascii() function turns any non-ASCII characters into &quot;?&quot; characters,
&gt; &gt; +    // which yields correct behavior because those are illegal in base 64.
&gt; 
&gt; The ascii() function also turns U+0001-U+001F and U+007F into &quot;?&quot; characters. And turns the null string into &quot;(null impl)&quot;. Are those behaviors desirable here? Do we have test cases that cover these?
In U+0001-U+001F is not valid base64 charachter; so no problem.
What is the expected behaviour for null-stings? I think like a empty string? Or return false for base64Decode?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258968</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-02 10:40:19 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; What is the expected behaviour for null-stings? I think like a empty string? Or return false for base64Decode?

My general preference is to handle null strings identically to empty strings except in specific cases where we want different handling for them.

For this specific function, I think we should double check what the call sites need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258971</commentid>
    <comment_count>18</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-02 10:44:53 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; What is the expected behaviour for null-stings? I think like a empty string? Or return false for base64Decode?
&gt; 
&gt; My general preference is to handle null strings identically to empty strings except in specific cases where we want different handling for them.
&gt; 
&gt; For this specific function, I think we should double check what the call sites need.
What should I do with the code now?  Is implementing a handling for null-characters enough, to get this in?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258974</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-02 10:47:22 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; What should I do with the code now?  Is implementing a handling for null-characters enough, to get this in?

You added the use of ascii() so you’re introducing this new behavior. You need to check that it’s OK. That’s all. So did you check? Is it OK?

I’ll review the rest of the patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258986</commentid>
    <comment_count>20</comment_count>
      <attachid>63238</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-02 11:00:50 -0700</bug_when>
    <thetext>Created attachment 63238
Patch (added null-string handling)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258988</commentid>
    <comment_count>21</comment_count>
      <attachid>63238</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-02 11:02:47 -0700</bug_when>
    <thetext>Comment on attachment 63238
Patch (added null-string handling)

&gt; +bool base64Decode(const String&amp;, Vector&lt;char&gt;&amp;, Base64DecodePolicy policy = FailOnInvalidCharacter);
&gt; +bool base64Decode(const Vector&lt;char&gt;&amp;, Vector&lt;char&gt;&amp;, Base64DecodePolicy policy = FailOnInvalidCharacter);
&gt; +bool base64Decode(const char*, unsigned, Vector&lt;char&gt;&amp;, Base64DecodePolicy policy = FailOnInvalidCharacter);

Normally we would omit the argument name &quot;policy&quot; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260058</commentid>
    <comment_count>22</comment_count>
      <attachid>63238</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-04 09:44:13 -0700</bug_when>
    <thetext>Comment on attachment 63238
Patch (added null-string handling)

Rejecting patch 63238 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;--ignore-tests&apos;, &apos;compositing&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 20776 test cases.
fast/dom/Window/atob-btoa.html -&gt; failed

Exiting early after 1 failures. 6794 tests run.
134.39s total testing time

6793 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout

Full output: http://queues.webkit.org/results/3621499</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261892</commentid>
    <comment_count>23</comment_count>
      <attachid>63844</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-08 09:51:32 -0700</bug_when>
    <thetext>Created attachment 63844
Patch

I found an additional error (in the existing code) and fixed it.
Also avoid the memcpy of the string now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261893</commentid>
    <comment_count>24</comment_count>
      <attachid>63845</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-08 10:00:38 -0700</bug_when>
    <thetext>Created attachment 63845
Patch (remove argument name &quot;policy&quot;)

(In reply to comment #21)
&gt; Normally we would omit the argument name &quot;policy&quot; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262057</commentid>
    <comment_count>25</comment_count>
      <attachid>63238</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-09 03:16:43 -0700</bug_when>
    <thetext>Comment on attachment 63238
Patch (added null-string handling)

Cleared Darin Adler&apos;s review+ from obsolete attachment 63238 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272193</commentid>
    <comment_count>26</comment_count>
      <attachid>66070</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-31 10:35:48 -0700</bug_when>
    <thetext>Created attachment 66070
Patch

rebased to head</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272198</commentid>
    <comment_count>27</comment_count>
      <attachid>66070</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-31 10:38:13 -0700</bug_when>
    <thetext>Comment on attachment 66070
Patch

&gt; +        * platform/text/Base64.h:
&gt; +        (WebCore::):

Strange stray line here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272343</commentid>
    <comment_count>28</comment_count>
      <attachid>66070</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-31 13:57:52 -0700</bug_when>
    <thetext>Comment on attachment 66070
Patch

Rejecting patch 66070 from commit-queue.

Failed to run &quot;[u&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Darin Adler&apos;, u&apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
ast/dom/Window/atob-btoa-expected.txt.rej
(Stripping trailing CRs from patch.)
patching file LayoutTests/fast/dom/Window/atob-btoa.html
Hunk #1 FAILED at 48.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/fast/dom/Window/atob-btoa.html.rej
(Stripping trailing CRs from patch.)
patching file LayoutTests/platform/mac/fast/loader/user-stylesheet-fast-path-expected.txt
(Stripping trailing CRs from patch.)
patching file LayoutTests/platform/mac/fast/loader/user-stylesheet-fast-path.html

Full output: http://queues.webkit.org/results/3834209</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273030</commentid>
    <comment_count>29</comment_count>
      <attachid>66276</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-01 14:40:25 -0700</bug_when>
    <thetext>Created attachment 66276
Patch (from linux)

regenerated patch on linux
maybe it will apply now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273234</commentid>
    <comment_count>30</comment_count>
      <attachid>66276</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-01 23:23:15 -0700</bug_when>
    <thetext>Comment on attachment 66276
Patch (from linux)

Rejecting patch 66276 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 20898 test cases.
platform/mac/fast/loader/user-stylesheet-fast-path.html -&gt; crashed

Exiting early after 1 failures. 17378 tests run.
650.68s total testing time

17377 test cases (99%) succeeded
1 test case (&lt;1%) crashed
26 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/3916035</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274454</commentid>
    <comment_count>31</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-09-05 15:10:49 -0700</bug_when>
    <thetext>*** Bug 42061 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276224</commentid>
    <comment_count>32</comment_count>
      <attachid>66975</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-08 17:59:53 -0700</bug_when>
    <thetext>Created attachment 66975
Patch

(In reply to comment #30)
&gt; 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
&gt; Running build-dumprendertree
&gt; Compiling Java tests
&gt; make: Nothing to be done for `default&apos;.
&gt; Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
&gt; Testing 20898 test cases.
&gt; platform/mac/fast/loader/user-stylesheet-fast-path.html -&gt; crashed

Sorry for the delay. I tried the patch on three different linux systems (Qt and Gtk port), but I wasn&apos;t able to reproduce a crash. The only thing I found was a missing newline at the expected file.
If patch will fail again I need more information than the commit queue provides :-/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276461</commentid>
    <comment_count>33</comment_count>
      <attachid>66975</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-09-09 08:03:20 -0700</bug_when>
    <thetext>Comment on attachment 66975
Patch

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

Patrick tells me this patch is the same as the last one except for some changed line endings and an extra line in the expected results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276513</commentid>
    <comment_count>34</comment_count>
      <attachid>66975</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-09 09:37:13 -0700</bug_when>
    <thetext>Comment on attachment 66975
Patch

Rejecting patch 66975 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 20951 test cases.
platform/mac/fast/loader/user-stylesheet-fast-path.html -&gt; crashed

Exiting early after 1 failures. 17408 tests run.
763.40s total testing time

17407 test cases (99%) succeeded
1 test case (&lt;1%) crashed
26 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/3926330</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277658</commentid>
    <comment_count>35</comment_count>
      <attachid>66070</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-10 23:04:49 -0700</bug_when>
    <thetext>Comment on attachment 66070
Patch

Cleared Darin Adler&apos;s review+ from obsolete attachment 66070 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277659</commentid>
    <comment_count>36</comment_count>
      <attachid>66276</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-10 23:04:54 -0700</bug_when>
    <thetext>Comment on attachment 66276
Patch (from linux)

Cleared Darin Adler&apos;s review+ from obsolete attachment 66276 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278530</commentid>
    <comment_count>37</comment_count>
      <attachid>67480</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 15:30:52 -0700</bug_when>
    <thetext>Created attachment 67480
crash log from bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278927</commentid>
    <comment_count>38</comment_count>
      <attachid>67555</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-14 08:33:09 -0700</bug_when>
    <thetext>Created attachment 67555
Patch

The only change since the last patch is the following (+ChangeLog):
--- a/WebKit/mac/WebView/WebPreferences.mm
+++ b/WebKit/mac/WebView/WebPreferences.mm
@@ -642,7 +642,8 @@ (-[WebPreferences setUserStyleSheetLocation:])
         locationString = [URL _web_originalDataAsString];
     }
     
-    [self _setStringValue:locationString forKey: WebKitUserStyleSheetLocationPreferenceKey];
+    if (locationString)
+        [self _setStringValue:locationString forKey: WebKitUserStyleSheetLocationPreferenceKey];
 }
 
 - (BOOL)shouldPrintBackgrounds

This should avoid the crash:
*** Terminating app due to uncaught exception &apos;NSInvalidArgumentException&apos;, reason: &apos;*** -[NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: WebKitUserStyleSheetLocationPreferenceKey)&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278945</commentid>
    <comment_count>39</comment_count>
      <attachid>67555</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-14 09:09:21 -0700</bug_when>
    <thetext>Comment on attachment 67555
Patch

The EWS tried to apply the patch and failed, so it can’t be committed as-is.

The idea of not setting the user style sheet if the locationString is nil is a little strange. Maybe setting it to the empty string or removing the preference setting entirely would be appropriate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278950</commentid>
    <comment_count>40</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-14 09:13:48 -0700</bug_when>
    <thetext>(In reply to comment #39)
&gt; (From update of attachment 67555 [details])
&gt; The EWS tried to apply the patch and failed, so it can’t be committed as-is.
I&apos;ll rebase the patch

&gt; The idea of not setting the user style sheet if the locationString is nil is a little strange. Maybe setting it to the empty string or removing the preference setting entirely would be appropriate.
I have no knowledge of ObjC :-/. Can you post me a snippet for the patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278966</commentid>
    <comment_count>41</comment_count>
      <attachid>67566</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-14 09:27:11 -0700</bug_when>
    <thetext>Created attachment 67566
Patch

Corrected encoding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278974</commentid>
    <comment_count>42</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-14 09:34:32 -0700</bug_when>
    <thetext>(In reply to comment #40)
&gt; &gt; The idea of not setting the user style sheet if the locationString is nil is a little strange. Maybe setting it to the empty string or removing the preference setting entirely would be appropriate.
&gt; I have no knowledge of ObjC :-/. Can you post me a snippet for the patch?

I know lots about Objective-C, but I’m not sure this truly is an Objective-C question. Here are the questions we need to answer to get the code right:

Under what circumstances can locationString end up nil? What is the best behavior for the API in that case? Is this a change from the behavior of the existing code?

Once we answer those I can advise on how to write the code. It may be that your early exit is the right thing to do. By the way, in WebKit we normally use a coding style called early return so a version that uses return rather than nesting the _setStringValue call inside an if would be our preferred style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278988</commentid>
    <comment_count>43</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-14 09:58:27 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; Under what circumstances can locationString end up nil? What is the best behavior for the API in that case? Is this a change from the behavior of the existing code?
I don&apos;t think that we change behaviour, because it crashes at the moment (not so cool behaviour ;-))
IMHO we should set it to an empty string, because this is the best (string) representation for invalid. If we can remove the setting that would be better (but I don&apos;t know how to do it).

&gt; By the way, in WebKit we normally use a coding style called early return.
I normally try to use early return where possible. I saw such an if statement in the file and copied it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279026</commentid>
    <comment_count>44</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-14 10:55:00 -0700</bug_when>
    <thetext>(In reply to comment #43)
&gt; (In reply to comment #42)
&gt; &gt; Under what circumstances can locationString end up nil? What is the best behavior for the API in that case? Is this a change from the behavior of the existing code?
&gt; I don&apos;t think that we change behaviour, because it crashes at the moment (not so cool behaviour ;-))

The crash is not introduced by your changes? If this is a pre-existing bug, this fix should go in separately. Maybe you think “existing code” means an earlier version of your patch?

I think maybe you misunderstood my question. What was the behavior of this method if called in this way before any of your changes?

&gt; IMHO we should set it to an empty string, because this is the best (string) representation for invalid. If we can remove the setting that would be better (but I don&apos;t know how to do it).

Empty string sounds OK.

&gt; I saw such an if statement in the file and copied it.

Understood. Not the best thing to do in this case, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279035</commentid>
    <comment_count>45</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-14 11:11:01 -0700</bug_when>
    <thetext>(In reply to comment #44)
&gt; The crash is not introduced by your changes?
I don&apos;t thinks so, but I don&apos;t have a mac to evaluate it. It was already hard enough to find a (possible?) fix. But maybe someone will send me one? ;-)

&gt; If this is a pre-existing bug, this fix should go in separately.
I don&apos;t know what it fixes exactly, because I can check. :-( IMHO it should crash if you only apply my LayoutTest changes. I added test cases for invalid stylesheets, what maybe causes the crash.

&gt; Maybe you think “existing code” means an earlier version of your patch?
existing code = SVN trunk

&gt; I think maybe you misunderstood my question. What was the behavior of this method if called in this way before any of your changes?
I think a crash, but can&apos;t try.

&gt; &gt; IMHO we should set it to an empty string, because this is the best (string) representation for invalid. If we can remove the setting that would be better (but I don&apos;t know how to do it).
&gt; 
&gt; Empty string sounds OK.
Can you post me a snippet for it? I&apos;m not sure if a &gt;&gt;locationString = &quot;&quot;&lt;&lt; will work, because it is a NSURL*.

&gt; &gt; I saw such an if statement in the file and copied it.
&gt; 
&gt; Understood. Not the best thing to do in this case, I think.
You&apos;re right, sorry!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279036</commentid>
    <comment_count>46</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-14 11:12:39 -0700</bug_when>
    <thetext>(In reply to comment #45)
&gt; &gt; Empty string sounds OK.
&gt; Can you post me a snippet for it? I&apos;m not sure if a &gt;&gt;locationString = &quot;&quot;&lt;&lt; will work, because it is a NSURL*.

It’s an NSString, not an NSURL.

It would be:

    if (!locationString)
        locationString = @&quot;&quot;;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279045</commentid>
    <comment_count>47</comment_count>
      <attachid>67578</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-14 11:27:42 -0700</bug_when>
    <thetext>Created attachment 67578
Patch for nil value

(In reply to comment #46)
&gt; It would be:
&gt; 
&gt;     if (!locationString)
&gt;         locationString = @&quot;&quot;;
THX!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279047</commentid>
    <comment_count>48</comment_count>
      <attachid>67579</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-14 11:37:29 -0700</bug_when>
    <thetext>Created attachment 67579
Patch for nil value

Ok, now with LayoutTest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279142</commentid>
    <comment_count>49</comment_count>
      <attachid>67599</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-14 13:53:10 -0700</bug_when>
    <thetext>Created attachment 67599
Patch for nil value

Should apply now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280141</commentid>
    <comment_count>50</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-16 09:27:55 -0700</bug_when>
    <thetext>@Darin: Can you r+ attachment 67599?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280220</commentid>
    <comment_count>51</comment_count>
      <attachid>67599</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-16 11:19:12 -0700</bug_when>
    <thetext>Comment on attachment 67599
Patch for nil value

Clearing flags on attachment: 67599

Committed r67642: &lt;http://trac.webkit.org/changeset/67642&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280256</commentid>
    <comment_count>52</comment_count>
      <attachid>67826</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-16 12:08:27 -0700</bug_when>
    <thetext>Created attachment 67826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280857</commentid>
    <comment_count>53</comment_count>
      <attachid>67826</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-17 14:20:55 -0700</bug_when>
    <thetext>Comment on attachment 67826
Patch

Rejecting patch 67826 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;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Projects/CommitQueue/LayoutTests
Testing 21312 test cases.
platform/mac/fast/loader/user-stylesheet-fast-path.html -&gt; failed

Exiting early after 1 failures. 17762 tests run.
334.59s total testing time

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

Full output: http://queues.webkit.org/results/4044046</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280892</commentid>
    <comment_count>54</comment_count>
      <attachid>67826</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-17 15:00:08 -0700</bug_when>
    <thetext>Comment on attachment 67826
Patch

Flaky test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280951</commentid>
    <comment_count>55</comment_count>
      <attachid>67826</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-17 15:53:08 -0700</bug_when>
    <thetext>Comment on attachment 67826
Patch

Rejecting patch 67826 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;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Projects/CommitQueue/LayoutTests
Testing 21312 test cases.
platform/mac/fast/loader/user-stylesheet-fast-path.html -&gt; failed

Exiting early after 1 failures. 17762 tests run.
321.84s total testing time

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

Full output: http://queues.webkit.org/results/4047043</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281108</commentid>
    <comment_count>56</comment_count>
      <attachid>66975</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-18 03:19:56 -0700</bug_when>
    <thetext>Comment on attachment 66975
Patch

Cleared Adam Roben&apos;s review+ from obsolete attachment 66975 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288684</commentid>
    <comment_count>57</comment_count>
      <attachid>69572</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-10-02 07:14:45 -0700</bug_when>
    <thetext>Created attachment 69572
Patch

Added missing encodeURI() at the new tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289434</commentid>
    <comment_count>58</comment_count>
      <attachid>69572</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-04 22:06:10 -0700</bug_when>
    <thetext>Comment on attachment 69572
Patch

Clearing flags on attachment: 69572

Committed r69072: &lt;http://trac.webkit.org/changeset/69072&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289435</commentid>
    <comment_count>59</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-04 22:06:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60348</attachid>
            <date>2010-07-02 01:23:47 -0700</date>
            <delta_ts>2010-07-03 14:05:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41510.patch</filename>
            <type>text/plain</type>
            <size>7592</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDYyMzY4KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDE5IEBADQorMjAxMC0wNy0wMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAcGFyb2dhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgaWdub3JlV2hpdGVzcGFjZSBvcHRpb24gYXQgYmFzZTY0RGVjb2RlKCkuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTUxMAorCisg
ICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93
OjphdG9iKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL3Rl
eHQvQmFzZTY0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJhc2U2NEVuY29kZSk6CisgICAgICAg
IChXZWJDb3JlOjpiYXNlNjREZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvQmFzZTY0
Lmg6CisKIDIwMTAtMDctMDEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBCdWlsZCBmaXgKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDYyMzY4KQ0KKysr
IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtOTM3LDcgKzkz
Nyw3IEBADQogICAgIGluLmFwcGVuZChlbmNvZGVkU3RyaW5nLmNoYXJhY3RlcnMoKSwgZW5jb2Rl
ZFN0cmluZy5sZW5ndGgoKSk7CiAgICAgVmVjdG9yPGNoYXI+IG91dDsKIAotICAgIGlmICghYmFz
ZTY0RGVjb2RlKGluLCBvdXQpKSB7CisgICAgaWYgKCFiYXNlNjREZWNvZGUoaW4sIG91dCwgZmFs
c2UpKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9DSEFSQUNURVJfRVJSOwogICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9wYWdlL1BhZ2UuY3BwDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiA2MjM2OCkNCisrKyBXZWJD
b3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC01NjgsMjIgKzU2OCwxNyBAQA0K
ICAgICBtX2RpZExvYWRVc2VyU3R5bGVTaGVldCA9IGZhbHNlOwogICAgIG1fdXNlclN0eWxlU2hl
ZXQgPSBTdHJpbmcoKTsKICAgICBtX3VzZXJTdHlsZVNoZWV0TW9kaWZpY2F0aW9uVGltZSA9IDA7
Ci0gICAgCisKICAgICAvLyBEYXRhIFVSTHMgd2l0aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBzdHls
ZSBzaGVldHMgYXJlIGNvbW1vbi4gV2UgY2FuIHByb2Nlc3MgdGhlbQogICAgIC8vIHN5bmNocm9u
b3VzbHkgYW5kIGF2b2lkIHVzaW5nIGEgbG9hZGVyLiAKICAgICBpZiAodXJsLnByb3RvY29sSXMo
ImRhdGEiKSAmJiB1cmwuc3RyaW5nKCkuc3RhcnRzV2l0aCgiZGF0YTp0ZXh0L2NzcztjaGFyc2V0
PXV0Zi04O2Jhc2U2NCwiKSkgewogICAgICAgICBtX2RpZExvYWRVc2VyU3R5bGVTaGVldCA9IHRy
dWU7Ci0gICAgICAgIAotICAgICAgICBjb25zdCB1bnNpZ25lZCBwcmVmaXhMZW5ndGggPSAzNTsK
LSAgICAgICAgVmVjdG9yPGNoYXI+IGVuY29kZWREYXRhKHVybC5zdHJpbmcoKS5sZW5ndGgoKSAt
IHByZWZpeExlbmd0aCk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IHByZWZpeExlbmd0aDsg
aSA8IHVybC5zdHJpbmcoKS5sZW5ndGgoKTsgKytpKQotICAgICAgICAgICAgZW5jb2RlZERhdGFb
aSAtIHByZWZpeExlbmd0aF0gPSBzdGF0aWNfY2FzdDxjaGFyPih1cmwuc3RyaW5nKClbaV0pOwog
CiAgICAgICAgIFZlY3RvcjxjaGFyPiBzdHlsZVNoZWV0QXNVVEY4OwotICAgICAgICBpZiAoYmFz
ZTY0RGVjb2RlKGVuY29kZWREYXRhLCBzdHlsZVNoZWV0QXNVVEY4KSkKKyAgICAgICAgaWYgKGJh
c2U2NERlY29kZSh1cmwuc3RyaW5nKCkuc3Vic3RyaW5nKDM1KSwgc3R5bGVTaGVldEFzVVRGOCkp
CiAgICAgICAgICAgICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nOjpmcm9tVVRGOChzdHlsZVNo
ZWV0QXNVVEY4LmRhdGEoKSwgc3R5bGVTaGVldEFzVVRGOC5zaXplKCkpOwogICAgIH0KLSAgICAK
KwogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZy
YW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1l
bnQoKSkKICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5jbGVhclBhZ2VVc2VyU2hlZXQo
KTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3BwDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAJKHJldmlzaW9uIDYyMzY4KQ0KKysr
IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMiw2
ICsyLDcgQEANCiAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEYXdpdCBBbGVtYXllaHUgPGFk
YXdpdEBrZGUub3JnPgogICAgQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3Yg
PGFwQHdlYmtpdC5vcmc+CiAgICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICAgQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fuc3Rl
cmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChMR1BMKQpA
QCAtMjUsNiArMjYsNyBAQA0KIAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9T
dHJpbmdFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC03MCw3ICs3Miw3IEBADQogICAgICAgICByZXR1cm47CiAKICAg
ICAvLyBJZiB0aGUgaW5wdXQgc3RyaW5nIGlzIHBhdGhvbG9naWNhbGx5IGxhcmdlLCBqdXN0IHJl
dHVybiBub3RoaW5nLgotICAgIC8vIE5vdGU6IEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlICJv
dXRfbGVuIiBjb21wdXRhdGlvbiBiZWxvdy4KKyAgICAvLyBOb3RlOiBLZWVwIHRoaXMgaW4gc3lu
YyB3aXRoIHRoZSAib3V0TGVuIiBjb21wdXRhdGlvbiBiZWxvdy4KICAgICAvLyBSYXRoZXIgdGhh
biBiZWluZyBwZXJmZWN0bHkgcHJlY2lzZSwgdGhpcyBpcyBhIGJpdCBjb25zZXJ2YXRpdmUuCiAg
ICAgY29uc3QgdW5zaWduZWQgbWF4SW5wdXRCdWZmZXJTaXplID0gVUlOVF9NQVggLyA3NyAqIDc2
IC8gNCAqIDMgLSAyOwogICAgIGlmIChsZW4gPiBtYXhJbnB1dEJ1ZmZlclNpemUpCkBAIC03OSwy
MSArODEsMjEgQEANCiAgICAgdW5zaWduZWQgc2lkeCA9IDA7CiAgICAgdW5zaWduZWQgZGlkeCA9
IDA7CiAKLSAgICB1bnNpZ25lZCBvdXRfbGVuID0gKChsZW4gKyAyKSAvIDMpICogNDsKKyAgICB1
bnNpZ25lZCBvdXRMZW4gPSAoKGxlbiArIDIpIC8gMykgKiA0OwogCiAgICAgLy8gRGVhbCB3aXRo
IHRoZSA3NiBjaGFyYWN0ZXIgcGVyIGxpbmUgbGltaXQgc3BlY2lmaWVkIGluIFJGQyAyMDQ1Lgot
ICAgIGluc2VydExGcyA9IChpbnNlcnRMRnMgJiYgb3V0X2xlbiA+IDc2KTsKKyAgICBpbnNlcnRM
RnMgPSAoaW5zZXJ0TEZzICYmIG91dExlbiA+IDc2KTsKICAgICBpZiAoaW5zZXJ0TEZzKQotICAg
ICAgICBvdXRfbGVuICs9ICgob3V0X2xlbiAtIDEpIC8gNzYpOworICAgICAgICBvdXRMZW4gKz0g
KChvdXRMZW4gLSAxKSAvIDc2KTsKIAogICAgIGludCBjb3VudCA9IDA7Ci0gICAgb3V0Lmdyb3co
b3V0X2xlbik7CisgICAgb3V0Lmdyb3cob3V0TGVuKTsKIAogICAgIC8vIDMtYnl0ZSB0byA0LWJ5
dGUgY29udmVyc2lvbiArIDAtNjMgdG8gYXNjaWkgcHJpbnRhYmxlIGNvbnZlcnNpb24KICAgICBp
ZiAobGVuID4gMSkgewogICAgICAgICB3aGlsZSAoc2lkeCA8IGxlbiAtIDIpIHsKICAgICAgICAg
ICAgIGlmIChpbnNlcnRMRnMpIHsKLSAgICAgICAgICAgICAgICBpZiAoY291bnQgJiYgKGNvdW50
ICUgNzYpID09IDApCisgICAgICAgICAgICAgICAgaWYgKGNvdW50ICYmICEoY291bnQgJSA3Nikp
CiAgICAgICAgICAgICAgICAgICAgIG91dFtkaWR4KytdID0gJ1xuJzsKICAgICAgICAgICAgICAg
ICBjb3VudCArPSA0OwogICAgICAgICAgICAgfQpAQCAtMTA2LDcgKzEwOCw3IEBADQogICAgIH0K
IAogICAgIGlmIChzaWR4IDwgbGVuKSB7Ci0gICAgICAgIGlmIChpbnNlcnRMRnMgJiYgKGNvdW50
ID4gMCkgJiYgKGNvdW50ICUgNzYpID09IDApCisgICAgICAgIGlmIChpbnNlcnRMRnMgJiYgKGNv
dW50ID4gMCkgJiYgIShjb3VudCAlIDc2KSkKICAgICAgICAgICAgb3V0W2RpZHgrK10gPSAnXG4n
OwogCiAgICAgICAgIG91dFtkaWR4KytdID0gYmFzZTY0RW5jTWFwWyhkYXRhW3NpZHhdID4+IDIp
ICYgMDc3XTsKQEAgLTEyNCwzNyArMTI2LDQ3IEBADQogICAgIH0KIH0KIAotYm9vbCBiYXNlNjRE
ZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiBpbiwgVmVjdG9yPGNoYXI+JiBvdXQpCitib29sIGJh
c2U2NERlY29kZShjb25zdCBTdHJpbmcmIGluLCBWZWN0b3I8Y2hhcj4mIG91dCwgYm9vbCBpZ25v
cmVXaGl0ZXNwYWNlKQogeworICAgIC8vIEFsbG93ZWQgYmVjYXVzZSBTdHJpbmc6OmFzY2lpKCkg
Y29udmVydHMgaW52YWxpZCBjaGFyY3RlcnMgdG8gJz8nLAorICAgIC8vIHdoaWNoIGlzbid0IGNv
bnRhaW5lZCBpbiB0aGUgYmFzZTY0IGNoYXJhY3RlcnNldC4KKyAgICByZXR1cm4gYmFzZTY0RGVj
b2RlKGluLmFzY2lpKCksIG91dCwgaWdub3JlV2hpdGVzcGFjZSk7Cit9CisKK2Jvb2wgYmFzZTY0
RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBib29sIGln
bm9yZVdoaXRlc3BhY2UpCit7CiAgICAgb3V0LmNsZWFyKCk7CiAKICAgICAvLyBJZiB0aGUgaW5w
dXQgc3RyaW5nIGlzIHBhdGhvbG9naWNhbGx5IGxhcmdlLCBqdXN0IHJldHVybiBub3RoaW5nLgog
ICAgIGlmIChpbi5zaXplKCkgPiBVSU5UX01BWCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgcmV0dXJuIGJhc2U2NERlY29kZShpbi5kYXRhKCksIGluLnNpemUoKSwgb3V0KTsKKyAgICBy
ZXR1cm4gYmFzZTY0RGVjb2RlKGluLmRhdGEoKSwgaW4uc2l6ZSgpLCBvdXQsIGlnbm9yZVdoaXRl
c3BhY2UpOwogfQogCi1ib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25l
ZCBsZW4sIFZlY3RvcjxjaGFyPiYgb3V0KQorYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciog
ZGF0YSwgdW5zaWduZWQgbGVuLCBWZWN0b3I8Y2hhcj4mIG91dCwgYm9vbCBpZ25vcmVXaGl0ZXNw
YWNlKQogewogICAgIG91dC5jbGVhcigpOwotICAgIGlmIChsZW4gPT0gMCkKKyAgICBpZiAoIWxl
bikKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICB3aGlsZSAobGVuICYmIGRhdGFbbGVuLTFd
ID09ICc9JykKICAgICAgICAgLS1sZW47CiAKICAgICBvdXQuZ3JvdyhsZW4pOworICAgIHVuc2ln
bmVkIHdoaXRlc3BhY2VDb3VudCA9IDA7CiAgICAgZm9yICh1bnNpZ25lZCBpZHggPSAwOyBpZHgg
PCBsZW47IGlkeCsrKSB7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgY2ggPSBkYXRhW2lkeF07CiAg
ICAgICAgIGlmICgoY2ggPiA0NyAmJiBjaCA8IDU4KSB8fCAoY2ggPiA2NCAmJiBjaCA8IDkxKSB8
fCAoY2ggPiA5NiAmJiBjaCA8IDEyMykgfHwgY2ggPT0gJysnIHx8IGNoID09ICcvJyB8fCBjaCA9
PSAnPScpCi0gICAgICAgICAgICBvdXRbaWR4XSA9IGJhc2U2NERlY01hcFtjaF07CisgICAgICAg
ICAgICBvdXRbaWR4IC0gd2hpdGVzcGFjZUNvdW50XSA9IGJhc2U2NERlY01hcFtjaF07CisgICAg
ICAgIGVsc2UgaWYgKGlnbm9yZVdoaXRlc3BhY2UgJiYgKGNoID09ICcgJyB8fCBjaCA9PSAnXHQn
IHx8IGNoID09ICdcbicgfHwgY2ggPT0gJ1xyJykpCisgICAgICAgICAgICArK3doaXRlc3BhY2VD
b3VudDsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAog
ICAgIC8vIDQtYnl0ZSB0byAzLWJ5dGUgY29udmVyc2lvbgotICAgIHVuc2lnbmVkIG91dExlbiA9
IGxlbiAtICgobGVuICsgMykgLyA0KTsKKyAgICB1bnNpZ25lZCBvdXRMZW4gPSBsZW4gLSB3aGl0
ZXNwYWNlQ291bnQgLSAoKGxlbiArIDMpIC8gNCk7CiAgICAgaWYgKCFvdXRMZW4gfHwgKChvdXRM
ZW4gKyAyKSAvIDMpICogNCA8IGxlbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL3RleHQvQmFzZTY0LmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL3Bs
YXRmb3JtL3RleHQvQmFzZTY0LmgJKHJldmlzaW9uIDYyMzY4KQ0KKysrIFdlYkNvcmUvcGxhdGZv
cm0vdGV4dC9CYXNlNjQuaAkod29ya2luZyBjb3B5KQ0KQEAgLTMwLDEyICszMCwxNCBAQA0KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTdHJpbmc7CisKIHZvaWQgYmFzZTY0RW5jb2Rl
KGNvbnN0IFZlY3RvcjxjaGFyPiYsIFZlY3RvcjxjaGFyPiYsIGJvb2wgaW5zZXJ0TEZzID0gZmFs
c2UpOwogdm9pZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBWZWN0b3I8Y2hh
cj4mLCBib29sIGluc2VydExGcyA9IGZhbHNlKTsKIAotLy8gdGhpcyBkZWNvZGVyIGlzIG5vdCBn
ZW5lcmFsIHB1cnBvc2UgLSBpdCByZXR1cm5zIGFuIGVycm9yIGlmIGl0IGVuY291bnRlcnMgYSBs
aW5lZmVlZCwgYXMgbmVlZGVkIGZvciB3aW5kb3cuYXRvYgotYm9vbCBiYXNlNjREZWNvZGUoY29u
c3QgVmVjdG9yPGNoYXI+JiwgVmVjdG9yPGNoYXI+Jik7Ci1ib29sIGJhc2U2NERlY29kZShjb25z
dCBjaGFyKiwgdW5zaWduZWQsIFZlY3RvcjxjaGFyPiYpOworYm9vbCBiYXNlNjREZWNvZGUoY29u
c3QgU3RyaW5nJiwgVmVjdG9yPGNoYXI+JiwgYm9vbCBpZ25vcmVXaGl0ZXNwYWNlID0gdHJ1ZSk7
Citib29sIGJhc2U2NERlY29kZShjb25zdCBWZWN0b3I8Y2hhcj4mLCBWZWN0b3I8Y2hhcj4mLCBi
b29sIGlnbm9yZVdoaXRlc3BhY2UgPSB0cnVlKTsKK2Jvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IGNo
YXIqLCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+JiwgYm9vbCBpZ25vcmVXaGl0ZXNwYWNlID0gdHJ1
ZSk7CiAKIH0KIAo=
</data>
<flag name="review"
          id="47787"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="47788"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60456</attachid>
            <date>2010-07-03 14:05:49 -0700</date>
            <delta_ts>2010-08-02 09:15:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41510.patch</filename>
            <type>text/plain</type>
            <size>12746</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNjI0NDkpDQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDE0IEBADQorMjAxMC0wNy0wMyAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDE1MTAgCisKKyAgICAgICAgQWRkZWQgYWRkaXRpb25hbCBkYXRhIHVybHMgdGVzdHMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3Qt
cGF0aC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3Vz
ZXItc3R5bGVzaGVldC1mYXN0LXBhdGguaHRtbDoKKwogMjAxMC0wNy0wMyAgUm9iZXJ0IEhvZ2Fu
ICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVcGRhdGUgUXQgZXhwZWN0ZWQg
cmVzdWx0cyBhZnRlciByNjI0NDQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4dA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hl
ZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjIzNjgpDQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGgtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDkgQEANCiBUaGlzIHRlc3RzIHRo
YXQgd2hlbiB0aGUgdXNlciBzdHlsZSBzaGVldCBsb2NhdGlvbiBpcyBzZXQgdG8gYSBkYXRhOiBV
Ukwgd2l0aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBkYXRhLCB0aGUgc3R5bGUgc2hlZXQgaXMgcHJv
Y2Vzc2VkIHN5bmNocm9ub3VzbHksIGluc3RlYWQgb2YgaW52b2tpbmcgdGhlIGFzeW5jaHJvbm91
cyBsb2FkZXIuCiAKLVBBU1MKK1BBU1MgMTAwcHgKK1BBU1MgMTEwcHgKK1BBU1MgMTIwcHgKK1BB
U1MgMTMwcHgKK1BBU1MgMTQwcHgKK1BBU1MgMTUwcHgKK1BBU1MgMTYwcHgKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRo
Lmh0bWwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2Fk
ZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1sCShyZXZpc2lvbiA2MjM2OCkNCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3Qt
cGF0aC5odG1sCSh3b3JraW5nIGNvcHkpDQpAQCAtMywyMCArMywzMSBAQA0KICAgICBVUkwgd2l0
aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBkYXRhLCB0aGUgc3R5bGUgc2hlZXQgaXMgcHJvY2Vzc2Vk
CiAgICAgc3luY2hyb25vdXNseSwgaW5zdGVhZCBvZiBpbnZva2luZyB0aGUgYXN5bmNocm9ub3Vz
IGxvYWRlci4KIDwvcD4KLTxwIGlkPSJyZXN1bHQiPjwvcD4KIDxzY3JpcHQ+Ci0gICAgdmFyIHJl
c3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKKyAgICB2YXIgdGVzdE9i
amVjdHMgPSBbCisgICAgICAgIHtyZXN1bHQ6dHJ1ZSwgIHNpemU6IjEwMHB4IiwgdXJsOiJkYXRh
OnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFltOWtlU0I3Wm05dWRDMXphWHBsT2lBeE1E
QndlSDA9In0sCisgICAgICAgIHtyZXN1bHQ6dHJ1ZSwgIHNpemU6IjExMHB4IiwgdXJsOiJkYXRh
OnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCAgICAgICAgICAgICAgICAgICAgICAgWW05
a2VTQjdabTl1ZEMxemFYcGxPaUF4TVRCd2VIMD0gICAgICAgICAgICAgICAgICAifSwKKyAgICAg
ICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTIwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNl
dD11dGYtODtiYXNlNjQsXG4gXHIgXHQgWW05ayBcdCBlU0I3IFxyIFptOXVkIFxuIFxuIEMxemFY
cCBcciBsT2lBeE0gXHQgakJ3ZUgwPSBcdCBcciBcbiJ9LAorICAgICAgICB7cmVzdWx0OnRydWUs
ICBzaXplOiIxMzBweCIsIHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwl
NTkgJTZEICUzOSAlNkIgZVNCN1ptOXVkICUyMCAlMjAgJTIwIEMxemFYcGxPaUF4TXpCd2UgJTQ4
ICUzMCAlM0QifSwKKyAgICAgICAge3Jlc3VsdDpmYWxzZSwgc2l6ZToiMTQwcHgiLCB1cmw6ImRh
dGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsWW05ayQjZVNCN1ptIzl1ZChDMXphWHAp
bE9pQXhOREJ3ZUgwPSJ9LAorICAgICAgICB7cmVzdWx0OmZhbHNlLCBzaXplOiIxNTBweCIsIHVy
bDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxZbTlrZSUwMFNCN1olMjBtOXVk
QzF6XG5cdGFYcGxPI2lBeCUwM05UQnclZUgwPSJ9LAorICAgICAgICB7cmVzdWx0OmZhbHNlLCBz
aXplOiIxNjBweCIsIHVybDoiJTUwJTMwJTEwJTAwJTIwJTQwIn0KKyAgICBdOwogCiAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJT
dHlsZVNoZWV0RW5hYmxlZCh0cnVlKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
VXNlclN0eWxlU2hlZXRMb2NhdGlvbigiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2
NCxZbTlrZVNCN1ptOXVkQzF6YVhwbE9pQXhNREJ3ZUgwPSIpOwogCi0gICAgICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5i
b2R5KS5mb250U2l6ZSA9PSAiMTAwcHgiKQotICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9
ICJQQVNTIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9ICJG
QUlMIjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0T2JqZWN0cy5sZW5ndGg7IGkr
KykgeworICAgICAgICAgICAgdmFyIG9iaiA9IHRlc3RPYmplY3RzW2ldOworICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihvYmoudXJsKTsK
KworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisgICAgICAgICAgICB2YXIg
cmVzdWx0ID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5mb250U2l6ZSA9PSBvYmou
c2l6ZTsKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKChyZXN1bHQgPT0gb2JqLnJlc3VsdCA/
ICJQQVNTIiA6ICJGQUlMIikgKyAiICIgKyBvYmouc2l6ZSArICI8YnI+Iik7CisKKyAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oIiIpOwor
ICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiVGhpcyB0
ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBEdW1wUmVuZGVyVHJlZS4iOworICAgICAgICBkb2N1bWVu
dC53cml0ZSgiVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBEdW1wUmVuZGVyVHJlZS4iKTsK
IDwvc2NyaXB0PgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNjIzNjkpDQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkNCkBAIC0xLDMgKzEsMjIgQEANCisyMDEwLTA3LTAyICBQYXRyaWNrIEdhbnN0
ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBCYXNlNjREZWNvZGVQb2xpY3kgb3B0aW9uIGF0IGJhc2U2
NERlY29kZSgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDE1MTAKKworICAgICAgICBBZGQgYW4gb3B0aW9uIGZvciBpZ25vcmluZyB3aGl0ZXNwYWNl
IGluIGJhc2U2NCBkYXRhLgorICAgICAgICBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgZGVjb2Rpbmcg
ZGF0YSB1cmxzLgorCisgICAgICAgIEFsc28gZml4IHRoZSB1c2VyU3R5bGVTaGVldCBmYXN0IHBh
dGggZGVjb2RpbmcuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvQmFzZTY0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJhc2U2NEVuY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpiYXNlNjREZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
QmFzZTY0Lmg6CisKIDIwMTAtMDctMDIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYkNvcmUvcGFnZS9Q
YWdlLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24g
NjIzNjgpDQorKysgV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNTY4
LDIyICs1NjgsMTcgQEANCiAgICAgbV9kaWRMb2FkVXNlclN0eWxlU2hlZXQgPSBmYWxzZTsKICAg
ICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nKCk7CiAgICAgbV91c2VyU3R5bGVTaGVldE1vZGlm
aWNhdGlvblRpbWUgPSAwOwotICAgIAorCiAgICAgLy8gRGF0YSBVUkxzIHdpdGggYmFzZTY0LWVu
Y29kZWQgVVRGLTggc3R5bGUgc2hlZXRzIGFyZSBjb21tb24uIFdlIGNhbiBwcm9jZXNzIHRoZW0K
ICAgICAvLyBzeW5jaHJvbm91c2x5IGFuZCBhdm9pZCB1c2luZyBhIGxvYWRlci4gCiAgICAgaWYg
KHVybC5wcm90b2NvbElzKCJkYXRhIikgJiYgdXJsLnN0cmluZygpLnN0YXJ0c1dpdGgoImRhdGE6
dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsIikpIHsKICAgICAgICAgbV9kaWRMb2FkVXNl
clN0eWxlU2hlZXQgPSB0cnVlOwotICAgICAgICAKLSAgICAgICAgY29uc3QgdW5zaWduZWQgcHJl
Zml4TGVuZ3RoID0gMzU7Ci0gICAgICAgIFZlY3RvcjxjaGFyPiBlbmNvZGVkRGF0YSh1cmwuc3Ry
aW5nKCkubGVuZ3RoKCkgLSBwcmVmaXhMZW5ndGgpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSBwcmVmaXhMZW5ndGg7IGkgPCB1cmwuc3RyaW5nKCkubGVuZ3RoKCk7ICsraSkKLSAgICAgICAg
ICAgIGVuY29kZWREYXRhW2kgLSBwcmVmaXhMZW5ndGhdID0gc3RhdGljX2Nhc3Q8Y2hhcj4odXJs
LnN0cmluZygpW2ldKTsKIAogICAgICAgICBWZWN0b3I8Y2hhcj4gc3R5bGVTaGVldEFzVVRGODsK
LSAgICAgICAgaWYgKGJhc2U2NERlY29kZShlbmNvZGVkRGF0YSwgc3R5bGVTaGVldEFzVVRGOCkp
CisgICAgICAgIGlmIChiYXNlNjREZWNvZGUoZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHVybC5z
dHJpbmcoKS5zdWJzdHJpbmcoMzUpKSwgc3R5bGVTaGVldEFzVVRGOCwgSWdub3JlV2hpdGVzcGFj
ZSkpCiAgICAgICAgICAgICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nOjpmcm9tVVRGOChzdHls
ZVNoZWV0QXNVVEY4LmRhdGEoKSwgc3R5bGVTaGVldEFzVVRGOC5zaXplKCkpOwogICAgIH0KLSAg
ICAKKwogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9
IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgIGlmIChmcmFtZS0+ZG9j
dW1lbnQoKSkKICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5jbGVhclBhZ2VVc2VyU2hl
ZXQoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3BwDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAJKHJldmlzaW9uIDYyMzY4KQ0K
KysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAt
Miw2ICsyLDcgQEANCiAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEYXdpdCBBbGVtYXllaHUg
PGFkYXdpdEBrZGUub3JnPgogICAgQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFr
b3YgPGFwQHdlYmtpdC5vcmc+CiAgICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICAgQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fu
c3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChMR1BM
KQpAQCAtMjUsNiArMjYsNyBAQA0KIAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0
Zi9TdHJpbmdFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC03MCw3ICs3Miw3IEBADQogICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBJZiB0aGUgaW5wdXQgc3RyaW5nIGlzIHBhdGhvbG9naWNhbGx5IGxhcmdlLCBqdXN0
IHJldHVybiBub3RoaW5nLgotICAgIC8vIE5vdGU6IEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhl
ICJvdXRfbGVuIiBjb21wdXRhdGlvbiBiZWxvdy4KKyAgICAvLyBOb3RlOiBLZWVwIHRoaXMgaW4g
c3luYyB3aXRoIHRoZSAib3V0TGVuZ3RoIiBjb21wdXRhdGlvbiBiZWxvdy4KICAgICAvLyBSYXRo
ZXIgdGhhbiBiZWluZyBwZXJmZWN0bHkgcHJlY2lzZSwgdGhpcyBpcyBhIGJpdCBjb25zZXJ2YXRp
dmUuCiAgICAgY29uc3QgdW5zaWduZWQgbWF4SW5wdXRCdWZmZXJTaXplID0gVUlOVF9NQVggLyA3
NyAqIDc2IC8gNCAqIDMgLSAyOwogICAgIGlmIChsZW4gPiBtYXhJbnB1dEJ1ZmZlclNpemUpCkBA
IC03OSwyMSArODEsMjEgQEANCiAgICAgdW5zaWduZWQgc2lkeCA9IDA7CiAgICAgdW5zaWduZWQg
ZGlkeCA9IDA7CiAKLSAgICB1bnNpZ25lZCBvdXRfbGVuID0gKChsZW4gKyAyKSAvIDMpICogNDsK
KyAgICB1bnNpZ25lZCBvdXRMZW5ndGggPSAoKGxlbiArIDIpIC8gMykgKiA0OwogCiAgICAgLy8g
RGVhbCB3aXRoIHRoZSA3NiBjaGFyYWN0ZXIgcGVyIGxpbmUgbGltaXQgc3BlY2lmaWVkIGluIFJG
QyAyMDQ1LgotICAgIGluc2VydExGcyA9IChpbnNlcnRMRnMgJiYgb3V0X2xlbiA+IDc2KTsKKyAg
ICBpbnNlcnRMRnMgPSAoaW5zZXJ0TEZzICYmIG91dExlbmd0aCA+IDc2KTsKICAgICBpZiAoaW5z
ZXJ0TEZzKQotICAgICAgICBvdXRfbGVuICs9ICgob3V0X2xlbiAtIDEpIC8gNzYpOworICAgICAg
ICBvdXRMZW5ndGggKz0gKChvdXRMZW5ndGggLSAxKSAvIDc2KTsKIAogICAgIGludCBjb3VudCA9
IDA7Ci0gICAgb3V0Lmdyb3cob3V0X2xlbik7CisgICAgb3V0Lmdyb3cob3V0TGVuZ3RoKTsKIAog
ICAgIC8vIDMtYnl0ZSB0byA0LWJ5dGUgY29udmVyc2lvbiArIDAtNjMgdG8gYXNjaWkgcHJpbnRh
YmxlIGNvbnZlcnNpb24KICAgICBpZiAobGVuID4gMSkgewogICAgICAgICB3aGlsZSAoc2lkeCA8
IGxlbiAtIDIpIHsKICAgICAgICAgICAgIGlmIChpbnNlcnRMRnMpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoY291bnQgJiYgKGNvdW50ICUgNzYpID09IDApCisgICAgICAgICAgICAgICAgaWYgKGNv
dW50ICYmICEoY291bnQgJSA3NikpCiAgICAgICAgICAgICAgICAgICAgIG91dFtkaWR4KytdID0g
J1xuJzsKICAgICAgICAgICAgICAgICBjb3VudCArPSA0OwogICAgICAgICAgICAgfQpAQCAtMTA2
LDcgKzEwOCw3IEBADQogICAgIH0KIAogICAgIGlmIChzaWR4IDwgbGVuKSB7Ci0gICAgICAgIGlm
IChpbnNlcnRMRnMgJiYgKGNvdW50ID4gMCkgJiYgKGNvdW50ICUgNzYpID09IDApCisgICAgICAg
IGlmIChpbnNlcnRMRnMgJiYgKGNvdW50ID4gMCkgJiYgIShjb3VudCAlIDc2KSkKICAgICAgICAg
ICAgb3V0W2RpZHgrK10gPSAnXG4nOwogCiAgICAgICAgIG91dFtkaWR4KytdID0gYmFzZTY0RW5j
TWFwWyhkYXRhW3NpZHhdID4+IDIpICYgMDc3XTsKQEAgLTEyNCw0NCArMTI2LDU0IEBADQogICAg
IH0KIH0KIAotYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiBpbiwgVmVjdG9y
PGNoYXI+JiBvdXQpCitib29sIGJhc2U2NERlY29kZShjb25zdCBTdHJpbmcmIGluLCBWZWN0b3I8
Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2RlUG9saWN5IHBvbGljeSkKIHsKKyAgICAvLyBUaGUgYXNj
aWkoKSBmdW5jdGlvbiB0dXJucyBhbnkgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW50byAiPyIgY2hh
cmFjdGVycywKKyAgICAvLyB3aGljaCB5aWVsZHMgY29ycmVjdCBiZWhhdmlvciBiZWNhdXNlIHRo
b3NlIGFyZSBpbGxlZ2FsIGluIGJhc2UgNjQuCisgICAgcmV0dXJuIGJhc2U2NERlY29kZShpbi5h
c2NpaSgpLCBvdXQsIHBvbGljeSk7Cit9CisKK2Jvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3Rv
cjxjaGFyPiYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5
KQorewogICAgIG91dC5jbGVhcigpOwogCiAgICAgLy8gSWYgdGhlIGlucHV0IHN0cmluZyBpcyBw
YXRob2xvZ2ljYWxseSBsYXJnZSwganVzdCByZXR1cm4gbm90aGluZy4KICAgICBpZiAoaW4uc2l6
ZSgpID4gVUlOVF9NQVgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBiYXNl
NjREZWNvZGUoaW4uZGF0YSgpLCBpbi5zaXplKCksIG91dCk7CisgICAgcmV0dXJuIGJhc2U2NERl
Y29kZShpbi5kYXRhKCksIGluLnNpemUoKSwgb3V0LCBwb2xpY3kpOwogfQogCi1ib29sIGJhc2U2
NERlY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW4sIFZlY3RvcjxjaGFyPiYgb3V0
KQorYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuLCBWZWN0
b3I8Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2RlUG9saWN5IHBvbGljeSkKIHsKICAgICBvdXQuY2xl
YXIoKTsKLSAgICBpZiAobGVuID09IDApCisgICAgaWYgKCFsZW4pCiAgICAgICAgIHJldHVybiB0
cnVlOwogCiAgICAgd2hpbGUgKGxlbiAmJiBkYXRhW2xlbi0xXSA9PSAnPScpCiAgICAgICAgIC0t
bGVuOwogCiAgICAgb3V0Lmdyb3cobGVuKTsKKworICAgIHVuc2lnbmVkIG91dExlbmd0aCA9IDA7
CiAgICAgZm9yICh1bnNpZ25lZCBpZHggPSAwOyBpZHggPCBsZW47IGlkeCsrKSB7CiAgICAgICAg
IHVuc2lnbmVkIGNoYXIgY2ggPSBkYXRhW2lkeF07Ci0gICAgICAgIGlmICgoY2ggPiA0NyAmJiBj
aCA8IDU4KSB8fCAoY2ggPiA2NCAmJiBjaCA8IDkxKSB8fCAoY2ggPiA5NiAmJiBjaCA8IDEyMykg
fHwgY2ggPT0gJysnIHx8IGNoID09ICcvJyB8fCBjaCA9PSAnPScpCi0gICAgICAgICAgICBvdXRb
aWR4XSA9IGJhc2U2NERlY01hcFtjaF07Ci0gICAgICAgIGVsc2UKKyAgICAgICAgaWYgKChjaCA+
IDQ3ICYmIGNoIDwgNTgpIHx8IChjaCA+IDY0ICYmIGNoIDwgOTEpIHx8IChjaCA+IDk2ICYmIGNo
IDwgMTIzKSB8fCBjaCA9PSAnKycgfHwgY2ggPT0gJy8nIHx8IGNoID09ICc9JykgeworICAgICAg
ICAgICAgb3V0W291dExlbmd0aF0gPSBiYXNlNjREZWNNYXBbY2hdOworICAgICAgICAgICAgKytv
dXRMZW5ndGg7CisgICAgICAgIH0gZWxzZSBpZiAocG9saWN5ID09IEZhaWxPbkludmFsaWRDaGFy
YWN0ZXIgfHwgKHBvbGljeSA9PSBJZ25vcmVXaGl0ZXNwYWNlICYmICFpc1NwYWNlT3JOZXdsaW5l
KGNoKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgLy8gNC1ieXRl
IHRvIDMtYnl0ZSBjb252ZXJzaW9uCi0gICAgdW5zaWduZWQgb3V0TGVuID0gbGVuIC0gKChsZW4g
KyAzKSAvIDQpOwotICAgIGlmICghb3V0TGVuIHx8ICgob3V0TGVuICsgMikgLyAzKSAqIDQgPCBs
ZW4pCisgICAgb3V0TGVuZ3RoIC09IChvdXRMZW5ndGggKyAzKSAvIDQ7CisgICAgaWYgKCFvdXRM
ZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHVuc2lnbmVkIHNpZHggPSAwOwog
ICAgIHVuc2lnbmVkIGRpZHggPSAwOwotICAgIGlmIChvdXRMZW4gPiAxKSB7Ci0gICAgICAgIHdo
aWxlIChkaWR4IDwgb3V0TGVuIC0gMikgeworICAgIGlmIChvdXRMZW5ndGggPiAxKSB7CisgICAg
ICAgIHdoaWxlIChkaWR4IDwgb3V0TGVuZ3RoIC0gMikgewogICAgICAgICAgICAgb3V0W2RpZHhd
ID0gKCgob3V0W3NpZHhdIDw8IDIpICYgMjU1KSB8ICgob3V0W3NpZHggKyAxXSA+PiA0KSAmIDAw
MykpOwogICAgICAgICAgICAgb3V0W2RpZHggKyAxXSA9ICgoKG91dFtzaWR4ICsgMV0gPDwgNCkg
JiAyNTUpIHwgKChvdXRbc2lkeCArIDJdID4+IDIpICYgMDE3KSk7CiAgICAgICAgICAgICBvdXRb
ZGlkeCArIDJdID0gKCgob3V0W3NpZHggKyAyXSA8PCA2KSAmIDI1NSkgfCAob3V0W3NpZHggKyAz
XSAmIDA3NykpOwpAQCAtMTcwLDE0ICsxODIsMTQgQEANCiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBpZiAoZGlkeCA8IG91dExlbikKKyAgICBpZiAoZGlkeCA8IG91dExlbmd0aCkKICAgICAgICAg
b3V0W2RpZHhdID0gKCgob3V0W3NpZHhdIDw8IDIpICYgMjU1KSB8ICgob3V0W3NpZHggKyAxXSA+
PiA0KSAmIDAwMykpOwogCi0gICAgaWYgKCsrZGlkeCA8IG91dExlbikKKyAgICBpZiAoKytkaWR4
IDwgb3V0TGVuZ3RoKQogICAgICAgICBvdXRbZGlkeF0gPSAoKChvdXRbc2lkeCArIDFdIDw8IDQp
ICYgMjU1KSB8ICgob3V0W3NpZHggKyAyXSA+PiAyKSAmIDAxNykpOwogCi0gICAgaWYgKG91dExl
biA8IG91dC5zaXplKCkpCi0gICAgICAgIG91dC5zaHJpbmsob3V0TGVuKTsKKyAgICBpZiAob3V0
TGVuZ3RoIDwgb3V0LnNpemUoKSkKKyAgICAgICAgb3V0LnNocmluayhvdXRMZW5ndGgpOwogCiAg
ICAgcmV0dXJuIHRydWU7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3RleHQvQmFzZTY0LmgN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL3BsYXRmb3JtL3RleHQvQmFzZTY0LmgJKHJldmlzaW9u
IDYyMzY4KQ0KKysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuaAkod29ya2luZyBjb3B5
KQ0KQEAgLTEsNSArMSw2IEBADQogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJv
c2t1cnlha292IChhcEB3ZWJraXQub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmlj
ayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2EuY29tPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMCwxMiArMzEsMTYgQEANCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xh
c3MgU3RyaW5nOworCitlbnVtIEJhc2U2NERlY29kZVBvbGljeSB7IEZhaWxPbkludmFsaWRDaGFy
YWN0ZXIsIElnbm9yZVdoaXRlc3BhY2UsIElnbm9yZUludmFsaWRDaGFyYWN0ZXJzIH07CisKIHZv
aWQgYmFzZTY0RW5jb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYsIFZlY3RvcjxjaGFyPiYsIGJvb2wg
aW5zZXJ0TEZzID0gZmFsc2UpOwogdm9pZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciosIHVuc2ln
bmVkLCBWZWN0b3I8Y2hhcj4mLCBib29sIGluc2VydExGcyA9IGZhbHNlKTsKIAotLy8gdGhpcyBk
ZWNvZGVyIGlzIG5vdCBnZW5lcmFsIHB1cnBvc2UgLSBpdCByZXR1cm5zIGFuIGVycm9yIGlmIGl0
IGVuY291bnRlcnMgYSBsaW5lZmVlZCwgYXMgbmVlZGVkIGZvciB3aW5kb3cuYXRvYgotYm9vbCBi
YXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiwgVmVjdG9yPGNoYXI+Jik7Ci1ib29sIGJh
c2U2NERlY29kZShjb25zdCBjaGFyKiwgdW5zaWduZWQsIFZlY3RvcjxjaGFyPiYpOworYm9vbCBi
YXNlNjREZWNvZGUoY29uc3QgU3RyaW5nJiwgVmVjdG9yPGNoYXI+JiwgQmFzZTY0RGVjb2RlUG9s
aWN5IHBvbGljeSA9IEZhaWxPbkludmFsaWRDaGFyYWN0ZXIpOworYm9vbCBiYXNlNjREZWNvZGUo
Y29uc3QgVmVjdG9yPGNoYXI+JiwgVmVjdG9yPGNoYXI+JiwgQmFzZTY0RGVjb2RlUG9saWN5IHBv
bGljeSA9IEZhaWxPbkludmFsaWRDaGFyYWN0ZXIpOworYm9vbCBiYXNlNjREZWNvZGUoY29uc3Qg
Y2hhciosIHVuc2lnbmVkLCBWZWN0b3I8Y2hhcj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5
ID0gRmFpbE9uSW52YWxpZENoYXJhY3Rlcik7CiAKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>60472</attachid>
            <date>2010-07-04 08:05:26 -0700</date>
            <delta_ts>2010-07-04 08:05:26 -0700</delta_ts>
            <desc>testcase</desc>
            <filename>base64test.html</filename>
            <type>text/html</type>
            <size>38683</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">PGh0bWw+PGhlYWQ+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCUwMEkyVXdlMkpoWTJ0bmNtOTFi
bVF0WTI5c2IzSTZiR2x0WlgwPSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4
dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTAxSTJVeGUy
SmhZMnRuY205MWJtUXRZMjlzYjNJNmJHbHRaWDA9IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2
NCwlMDJJMlV5ZTJKaFkydG5jbTkxYm1RdFkyOXNiM0k2YkdsdFpYMD0iIC8+DQo8bGluayByZWw9
InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9
dXRmLTg7YmFzZTY0LCUwM0kyVXplMkpoWTJ0bmNtOTFibVF0WTI5c2IzSTZiR2x0WlgwPSIgLz4N
CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9j
c3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTA0STJVMGUySmhZMnRuY205MWJtUXRZMjlzYjNJNmJH
bHRaWDA9IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0i
ZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlMDVJMlUxZTJKaFkydG5jbTkxYm1R
dFkyOXNiM0k2YkdsdFpYMD0iIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQv
Y3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCUwNkkyVTJlMkpo
WTJ0bmNtOTFibVF0WTI5c2IzSTZiR2x0WlgwPSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQs
JTA3STJVM2UySmhZMnRuY205MWJtUXRZMjlzYjNJNmJHbHRaWDA9IiAvPg0KPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0
Zi04O2Jhc2U2NCwlMDhJMlU0ZTJKaFkydG5jbTkxYm1RdFkyOXNiM0k2YkdsdFpYMD0iIC8+DQo8
bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3Nz
O2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCUwOUkyVTVlMkpoWTJ0bmNtOTFibVF0WTI5c2IzSTZiR2x0
WlgwPSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRh
dGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTBBSTJWaGUySmhZMnRuY205MWJtUXRZ
MjlzYjNJNmJHbHRaWDA9IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlMEJJMlZpZTJKaFky
dG5jbTkxYm1RdFkyOXNiM0k2YkdsdFpYMD0iIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5
cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCUw
Q0kyVmplMkpoWTJ0bmNtOTFibVF0WTI5c2IzSTZiR2x0WlgwPSIgLz4NCjxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYt
ODtiYXNlNjQsJTBESTJWa2UySmhZMnRuY205MWJtUXRZMjlzYjNJNmJHbHRaWDA9IiAvPg0KPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2Nzcztj
aGFyc2V0PXV0Zi04O2Jhc2U2NCwlMEVJMlZsZTJKaFkydG5jbTkxYm1RdFkyOXNiM0k2YkdsdFpY
MD0iIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRh
OnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCUwRkkyVm1lMkpoWTJ0bmNtOTFibVF0WTI5
c2IzSTZiR2x0WlgwPSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3Mi
IGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTEwSTJVeE1IdGlZV05y
WjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBl
PSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlMTFJ
MlV4TVh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxl
c2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7
YmFzZTY0LCUxMkkyVXhNbnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hh
cnNldD11dGYtODtiYXNlNjQsJTEzSTJVeE0zdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5
IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0
ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlMTRJMlV4Tkh0aVlXTnJaM0p2ZFc1a0xXTnZi
Rzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBo
cmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCUxNUkyVXhOWHRpWVdOcloz
SnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0i
dGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTE2STJV
eE5udGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jh
c2U2NCwlMTdJMlV4TjN0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayBy
ZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJz
ZXQ9dXRmLTg7YmFzZTY0LCUxOEkyVXhPSHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIg
Lz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4
dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTE5STJVeE9YdGlZV05yWjNKdmRXNWtMV052Ykc5
eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJl
Zj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlMUFJMlV4WVh0aVlXTnJaM0p2
ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRl
eHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCUxQkkyVXhZ
bnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNl
NjQsJTFDSTJVeFkzdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0
PXV0Zi04O2Jhc2U2NCwlMURJMlV4Wkh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+
DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQv
Y3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCUxRUkyVXhaWHRpWVdOclozSnZkVzVrTFdOdmJHOXlP
bXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9
ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTFGSTJVeFpudGlZV05yWjNKdmRX
NWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0
L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlMjBJMlV5TUh0
aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQi
IHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0
LCUyMUkyVXlNWHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11
dGYtODtiYXNlNjQsJTIySTJVeU1udGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0K
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2Nz
cztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlMjNJMlV5TTN0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214
cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJk
YXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCUyNEkyVXlOSHRpWVdOclozSnZkVzVr
TFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9j
c3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTI1STJVeU5YdGlZ
V05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0
eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwl
MjZJMlV5Tm50aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0
eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRm
LTg7YmFzZTY0LCUyN0kyVXlOM3RpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7
Y2hhcnNldD11dGYtODtiYXNlNjQsJTI4STJVeU9IdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBi
V1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0
YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlMjlJMlV5T1h0aVlXTnJaM0p2ZFc1a0xX
TnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3Nz
IiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCUyQUkyVXlZWHRpWVdO
clozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlw
ZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTJC
STJVeVludGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04
O2Jhc2U2NCwlMkNJMlV5WTN0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGlu
ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2No
YXJzZXQ9dXRmLTg7YmFzZTY0LCUyREkyVXlaSHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldW
OSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6
dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTJFSTJVeVpYdGlZV05yWjNKdmRXNWtMV052
Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIg
aHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlMkZJMlV5Wm50aVlXTnJa
M0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9
InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCUzMEky
VXpNSHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODti
YXNlNjQsJTMxSTJVek1YdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFy
c2V0PXV0Zi04O2Jhc2U2NCwlMzJJMlV6TW50aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjki
IC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRl
eHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCUzM0kyVXpNM3RpWVdOclozSnZkVzVrTFdOdmJH
OXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhy
ZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTM0STJVek5IdGlZV05yWjNK
dmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0
ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlMzVJMlV6
Tlh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hl
ZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFz
ZTY0LCUzNkkyVXpObnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNl
dD11dGYtODtiYXNlNjQsJTM3STJVek4zdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAv
Pg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0
L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlMzhJMlV6T0h0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5
T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCUzOUkyVXpPWHRpWVdOclozSnZk
VzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4
dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTNBSTJVellY
dGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2
NCwlM0JJMlV6WW50aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9
InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9
dXRmLTg7YmFzZTY0LCUzQ0kyVXpZM3RpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4N
CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9j
c3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTNESTJVelpIdGlZV05yWjNKdmRXNWtMV052Ykc5eU9t
eHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0i
ZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlM0VJMlV6Wlh0aVlXTnJaM0p2ZFc1
a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQv
Y3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCUzRkkyVXpabnRp
WVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQs
JTQwSTJVME1IdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0
Zi04O2Jhc2U2NCwlNDFJMlUwTVh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8
bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3Nz
O2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU0MkkyVTBNbnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhw
YldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRh
dGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTQzSTJVME0zdGlZV05yWjNKdmRXNWtM
V052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlNDRJMlUwTkh0aVlX
TnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5
cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU0
NUkyVTBOWHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYt
ODtiYXNlNjQsJTQ2STJVME5udGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2Nzcztj
aGFyc2V0PXV0Zi04O2Jhc2U2NCwlNDdJMlUwTjN0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJX
VjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRh
OnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU0OEkyVTBPSHRpWVdOclozSnZkVzVrTFdO
dmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3Mi
IGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTQ5STJVME9YdGlZV05y
WjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBl
PSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlNEFJ
MlUwWVh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxl
c2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7
YmFzZTY0LCU0QkkyVTBZbnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hh
cnNldD11dGYtODtiYXNlNjQsJTRDSTJVMFkzdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5
IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0
ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlNERJMlUwWkh0aVlXTnJaM0p2ZFc1a0xXTnZi
Rzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBo
cmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU0RUkyVTBaWHRpWVdOcloz
SnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0i
dGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTRGSTJV
MFpudGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jh
c2U2NCwlNTBJMlUxTUh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayBy
ZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJz
ZXQ9dXRmLTg7YmFzZTY0LCU1MUkyVTFNWHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIg
Lz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4
dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTUySTJVMU1udGlZV05yWjNKdmRXNWtMV052Ykc5
eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJl
Zj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlNTNJMlUxTTN0aVlXTnJaM0p2
ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRl
eHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU1NEkyVTFO
SHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNl
NjQsJTU1STJVMU5YdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0
PXV0Zi04O2Jhc2U2NCwlNTZJMlUxTm50aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+
DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQv
Y3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU1N0kyVTFOM3RpWVdOclozSnZkVzVrTFdOdmJHOXlP
bXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9
ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTU4STJVMU9IdGlZV05yWjNKdmRX
NWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0
L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlNTlJMlUxT1h0
aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQi
IHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0
LCU1QUkyVTFZWHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11
dGYtODtiYXNlNjQsJTVCSTJVMVludGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0K
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2Nz
cztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlNUNJMlUxWTN0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214
cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJk
YXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU1REkyVTFaSHRpWVdOclozSnZkVzVr
TFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9j
c3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTVFSTJVMVpYdGlZ
V05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0
eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwl
NUZJMlUxWm50aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0
eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRm
LTg7YmFzZTY0LCU2MEkyVTJNSHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7
Y2hhcnNldD11dGYtODtiYXNlNjQsJTYxSTJVMk1YdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBi
V1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0
YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlNjJJMlUyTW50aVlXTnJaM0p2ZFc1a0xX
TnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3Nz
IiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU2M0kyVTJNM3RpWVdO
clozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlw
ZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTY0
STJVMk5IdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04
O2Jhc2U2NCwlNjVJMlUyTlh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGlu
ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2No
YXJzZXQ9dXRmLTg7YmFzZTY0LCU2NkkyVTJObnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldW
OSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6
dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTY3STJVMk4zdGlZV05yWjNKdmRXNWtMV052
Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIg
aHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlNjhJMlUyT0h0aVlXTnJa
M0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9
InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU2OUky
VTJPWHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODti
YXNlNjQsJTZBSTJVMllYdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFy
c2V0PXV0Zi04O2Jhc2U2NCwlNkJJMlUyWW50aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjki
IC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRl
eHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU2Q0kyVTJZM3RpWVdOclozSnZkVzVrTFdOdmJH
OXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhy
ZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTZESTJVMlpIdGlZV05yWjNK
dmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0
ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlNkVJMlUy
Wlh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hl
ZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFz
ZTY0LCU2RkkyVTJabnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNl
dD11dGYtODtiYXNlNjQsJTcwSTJVM01IdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAv
Pg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0
L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlNzFJMlUzTVh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5
T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU3MkkyVTNNbnRpWVdOclozSnZk
VzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4
dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTczSTJVM00z
dGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2
NCwlNzRJMlUzTkh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9
InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9
dXRmLTg7YmFzZTY0LCU3NUkyVTNOWHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4N
CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9j
c3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTc2STJVM05udGlZV05yWjNKdmRXNWtMV052Ykc5eU9t
eHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0i
ZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlNzdJMlUzTjN0aVlXTnJaM0p2ZFc1
a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQv
Y3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU3OEkyVTNPSHRp
WVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQs
JTc5STJVM09YdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0
Zi04O2Jhc2U2NCwlN0FJMlUzWVh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8
bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3Nz
O2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU3QkkyVTNZbnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhw
YldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRh
dGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTdDSTJVM1kzdGlZV05yWjNKdmRXNWtM
V052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlN0RJMlUzWkh0aVlX
TnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5
cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU3
RUkyVTNaWHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYt
ODtiYXNlNjQsJTdGSTJVM1pudGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2Nzcztj
aGFyc2V0PXV0Zi04O2Jhc2U2NCwlODBJMlU0TUh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJX
VjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRh
OnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU4MUkyVTRNWHRpWVdOclozSnZkVzVrTFdO
dmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3Mi
IGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTgySTJVNE1udGlZV05y
WjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBl
PSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlODNJ
MlU0TTN0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxl
c2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7
YmFzZTY0LCU4NEkyVTROSHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hh
cnNldD11dGYtODtiYXNlNjQsJTg1STJVNE5YdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5
IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0
ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlODZJMlU0Tm50aVlXTnJaM0p2ZFc1a0xXTnZi
Rzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBo
cmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU4N0kyVTROM3RpWVdOcloz
SnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0i
dGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTg4STJV
NE9IdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jh
c2U2NCwlODlJMlU0T1h0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayBy
ZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJz
ZXQ9dXRmLTg7YmFzZTY0LCU4QUkyVTRZWHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIg
Lz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4
dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJThCSTJVNFludGlZV05yWjNKdmRXNWtMV052Ykc5
eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJl
Zj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlOENJMlU0WTN0aVlXTnJaM0p2
ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRl
eHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU4REkyVTRa
SHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNl
NjQsJThFSTJVNFpYdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0
PXV0Zi04O2Jhc2U2NCwlOEZJMlU0Wm50aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+
DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQv
Y3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU5MEkyVTVNSHRpWVdOclozSnZkVzVrTFdOdmJHOXlP
bXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9
ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTkxSTJVNU1YdGlZV05yWjNKdmRX
NWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0
L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlOTJJMlU1TW50
aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQi
IHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0
LCU5M0kyVTVNM3RpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11
dGYtODtiYXNlNjQsJTk0STJVNU5IdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0K
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2Nz
cztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlOTVJMlU1Tlh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214
cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJk
YXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU5NkkyVTVObnRpWVdOclozSnZkVzVr
TFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9j
c3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTk3STJVNU4zdGlZ
V05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0
eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwl
OThJMlU1T0h0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0
eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRm
LTg7YmFzZTY0LCU5OUkyVTVPWHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7
Y2hhcnNldD11dGYtODtiYXNlNjQsJTlBSTJVNVlYdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBi
V1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0
YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlOUJJMlU1WW50aVlXTnJaM0p2ZFc1a0xX
TnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3Nz
IiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCU5Q0kyVTVZM3RpWVdO
clozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlw
ZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJTlE
STJVNVpIdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04
O2Jhc2U2NCwlOUVJMlU1Wlh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGlu
ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2No
YXJzZXQ9dXRmLTg7YmFzZTY0LCU5RkkyVTVabnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldW
OSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6
dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUEwSTJWaE1IdGlZV05yWjNKdmRXNWtMV052
Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIg
aHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlQTFJMlZoTVh0aVlXTnJa
M0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9
InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVBMkky
VmhNbnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODti
YXNlNjQsJUEzSTJWaE0zdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFy
c2V0PXV0Zi04O2Jhc2U2NCwlQTRJMlZoTkh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjki
IC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRl
eHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVBNUkyVmhOWHRpWVdOclozSnZkVzVrTFdOdmJH
OXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhy
ZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUE2STJWaE5udGlZV05yWjNK
dmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0
ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlQTdJMlZo
TjN0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hl
ZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFz
ZTY0LCVBOEkyVmhPSHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNl
dD11dGYtODtiYXNlNjQsJUE5STJWaE9YdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAv
Pg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0
L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlQUFJMlZoWVh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5
T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVBQkkyVmhZbnRpWVdOclozSnZk
VzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4
dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUFDSTJWaFkz
dGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2
NCwlQURJMlZoWkh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9
InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9
dXRmLTg7YmFzZTY0LCVBRUkyVmhaWHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4N
CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9j
c3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUFGSTJWaFpudGlZV05yWjNKdmRXNWtMV052Ykc5eU9t
eHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0i
ZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlQjBJMlZpTUh0aVlXTnJaM0p2ZFc1
a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQv
Y3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVCMUkyVmlNWHRp
WVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQs
JUIySTJWaU1udGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0
Zi04O2Jhc2U2NCwlQjNJMlZpTTN0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8
bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3Nz
O2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVCNEkyVmlOSHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhw
YldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRh
dGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUI1STJWaU5YdGlZV05yWjNKdmRXNWtM
V052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlQjZJMlZpTm50aVlX
TnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5
cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVC
N0kyVmlOM3RpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYt
ODtiYXNlNjQsJUI4STJWaU9IdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2Nzcztj
aGFyc2V0PXV0Zi04O2Jhc2U2NCwlQjlJMlZpT1h0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJX
VjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRh
OnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVCQUkyVmlZWHRpWVdOclozSnZkVzVrTFdO
dmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3Mi
IGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUJCSTJWaVludGlZV05y
WjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBl
PSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlQkNJ
MlZpWTN0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxl
c2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7
YmFzZTY0LCVCREkyVmlaSHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hh
cnNldD11dGYtODtiYXNlNjQsJUJFSTJWaVpYdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5
IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0
ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlQkZJMlZpWm50aVlXTnJaM0p2ZFc1a0xXTnZi
Rzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBo
cmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVDMEkyVmpNSHRpWVdOcloz
SnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0i
dGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUMxSTJW
ak1YdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jh
c2U2NCwlQzJJMlZqTW50aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayBy
ZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJz
ZXQ9dXRmLTg7YmFzZTY0LCVDM0kyVmpNM3RpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIg
Lz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4
dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUM0STJWak5IdGlZV05yWjNKdmRXNWtMV052Ykc5
eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJl
Zj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlQzVJMlZqTlh0aVlXTnJaM0p2
ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRl
eHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVDNkkyVmpO
bnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNl
NjQsJUM3STJWak4zdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0
PXV0Zi04O2Jhc2U2NCwlQzhJMlZqT0h0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+
DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQv
Y3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVDOUkyVmpPWHRpWVdOclozSnZkVzVrTFdOdmJHOXlP
bXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9
ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUNBSTJWallYdGlZV05yWjNKdmRX
NWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0
L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlQ0JJMlZqWW50
aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQi
IHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0
LCVDQ0kyVmpZM3RpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11
dGYtODtiYXNlNjQsJUNESTJWalpIdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0K
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2Nz
cztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlQ0VJMlZqWlh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214
cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJk
YXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVDRkkyVmpabnRpWVdOclozSnZkVzVr
TFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9j
c3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUQwSTJWa01IdGlZ
V05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0
eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwl
RDFJMlZrTVh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0
eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRm
LTg7YmFzZTY0LCVEMkkyVmtNbnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7
Y2hhcnNldD11dGYtODtiYXNlNjQsJUQzSTJWa00zdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBi
V1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0
YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlRDRJMlZrTkh0aVlXTnJaM0p2ZFc1a0xX
TnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3Nz
IiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVENUkyVmtOWHRpWVdO
clozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlw
ZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUQ2
STJWa05udGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04
O2Jhc2U2NCwlRDdJMlZrTjN0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGlu
ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2No
YXJzZXQ9dXRmLTg7YmFzZTY0LCVEOEkyVmtPSHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldW
OSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6
dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUQ5STJWa09YdGlZV05yWjNKdmRXNWtMV052
Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIg
aHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlREFJMlZrWVh0aVlXTnJa
M0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9
InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVEQkky
VmtZbnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODti
YXNlNjQsJURDSTJWa1kzdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFy
c2V0PXV0Zi04O2Jhc2U2NCwlRERJMlZrWkh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjki
IC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRl
eHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVERUkyVmtaWHRpWVdOclozSnZkVzVrTFdOdmJH
OXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhy
ZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJURGSTJWa1pudGlZV05yWjNK
dmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0
ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlRTBJMlZs
TUh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hl
ZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFz
ZTY0LCVFMUkyVmxNWHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNl
dD11dGYtODtiYXNlNjQsJUUySTJWbE1udGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAv
Pg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0
L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlRTNJMlZsTTN0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5
T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVFNEkyVmxOSHRpWVdOclozSnZk
VzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4
dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUU1STJWbE5Y
dGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2
NCwlRTZJMlZsTm50aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9
InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9
dXRmLTg7YmFzZTY0LCVFN0kyVmxOM3RpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4N
CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9j
c3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUU4STJWbE9IdGlZV05yWjNKdmRXNWtMV052Ykc5eU9t
eHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0i
ZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlRTlJMlZsT1h0aVlXTnJaM0p2ZFc1
a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQv
Y3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVFQUkyVmxZWHRp
WVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQs
JUVCSTJWbFludGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0
Zi04O2Jhc2U2NCwlRUNJMlZsWTN0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8
bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3Nz
O2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVFREkyVmxaSHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhw
YldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRh
dGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUVFSTJWbFpYdGlZV05yWjNKdmRXNWtM
V052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlRUZJMlZsWm50aVlX
TnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5
cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVG
MEkyVm1NSHRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYt
ODtiYXNlNjQsJUYxSTJWbU1YdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2Nzcztj
aGFyc2V0PXV0Zi04O2Jhc2U2NCwlRjJJMlZtTW50aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJX
VjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRh
OnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVGM0kyVm1NM3RpWVdOclozSnZkVzVrTFdO
dmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3Mi
IGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUY0STJWbU5IdGlZV05y
WjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBl
PSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlRjVJ
MlZtTlh0aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxl
c2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7
YmFzZTY0LCVGNkkyVm1ObnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hh
cnNldD11dGYtODtiYXNlNjQsJUY3STJWbU4zdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5
IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0
ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlRjhJMlZtT0h0aVlXTnJaM0p2ZFc1a0xXTnZi
Rzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBo
cmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVGOUkyVm1PWHRpWVdOcloz
SnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0i
dGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUZBSTJW
bVlYdGlZV05yWjNKdmRXNWtMV052Ykc5eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jh
c2U2NCwlRkJJMlZtWW50aVlXTnJaM0p2ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayBy
ZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJz
ZXQ9dXRmLTg7YmFzZTY0LCVGQ0kyVm1ZM3RpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIg
Lz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRhdGE6dGV4
dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJUZESTJWbVpIdGlZV05yWjNKdmRXNWtMV052Ykc5
eU9teHBiV1Y5IiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJl
Zj0iZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwlRkVJMlZtWlh0aVlXTnJaM0p2
ZFc1a0xXTnZiRzl5T214cGJXVjkiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRl
eHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVGRkkyVm1a
bnRpWVdOclozSnZkVzVrTFdOdmJHOXlPbXhwYldWOSIgLz4NCjwvaGVhZD48Ym9keT4NCjxkaXYg
aWQ9ImUwIj4weDAwPC9kaXY+DQo8ZGl2IGlkPSJlMSI+MHgwMTwvZGl2Pg0KPGRpdiBpZD0iZTIi
PjB4MDI8L2Rpdj4NCjxkaXYgaWQ9ImUzIj4weDAzPC9kaXY+DQo8ZGl2IGlkPSJlNCI+MHgwNDwv
ZGl2Pg0KPGRpdiBpZD0iZTUiPjB4MDU8L2Rpdj4NCjxkaXYgaWQ9ImU2Ij4weDA2PC9kaXY+DQo8
ZGl2IGlkPSJlNyI+MHgwNzwvZGl2Pg0KPGRpdiBpZD0iZTgiPjB4MDg8L2Rpdj4NCjxkaXYgaWQ9
ImU5Ij4weDA5PC9kaXY+DQo8ZGl2IGlkPSJlYSI+MHgwYTwvZGl2Pg0KPGRpdiBpZD0iZWIiPjB4
MGI8L2Rpdj4NCjxkaXYgaWQ9ImVjIj4weDBjPC9kaXY+DQo8ZGl2IGlkPSJlZCI+MHgwZDwvZGl2
Pg0KPGRpdiBpZD0iZWUiPjB4MGU8L2Rpdj4NCjxkaXYgaWQ9ImVmIj4weDBmPC9kaXY+DQo8ZGl2
IGlkPSJlMTAiPjB4MTA8L2Rpdj4NCjxkaXYgaWQ9ImUxMSI+MHgxMTwvZGl2Pg0KPGRpdiBpZD0i
ZTEyIj4weDEyPC9kaXY+DQo8ZGl2IGlkPSJlMTMiPjB4MTM8L2Rpdj4NCjxkaXYgaWQ9ImUxNCI+
MHgxNDwvZGl2Pg0KPGRpdiBpZD0iZTE1Ij4weDE1PC9kaXY+DQo8ZGl2IGlkPSJlMTYiPjB4MTY8
L2Rpdj4NCjxkaXYgaWQ9ImUxNyI+MHgxNzwvZGl2Pg0KPGRpdiBpZD0iZTE4Ij4weDE4PC9kaXY+
DQo8ZGl2IGlkPSJlMTkiPjB4MTk8L2Rpdj4NCjxkaXYgaWQ9ImUxYSI+MHgxYTwvZGl2Pg0KPGRp
diBpZD0iZTFiIj4weDFiPC9kaXY+DQo8ZGl2IGlkPSJlMWMiPjB4MWM8L2Rpdj4NCjxkaXYgaWQ9
ImUxZCI+MHgxZDwvZGl2Pg0KPGRpdiBpZD0iZTFlIj4weDFlPC9kaXY+DQo8ZGl2IGlkPSJlMWYi
PjB4MWY8L2Rpdj4NCjxkaXYgaWQ9ImUyMCI+MHgyMDwvZGl2Pg0KPGRpdiBpZD0iZTIxIj4weDIx
PC9kaXY+DQo8ZGl2IGlkPSJlMjIiPjB4MjI8L2Rpdj4NCjxkaXYgaWQ9ImUyMyI+MHgyMzwvZGl2
Pg0KPGRpdiBpZD0iZTI0Ij4weDI0PC9kaXY+DQo8ZGl2IGlkPSJlMjUiPjB4MjU8L2Rpdj4NCjxk
aXYgaWQ9ImUyNiI+MHgyNjwvZGl2Pg0KPGRpdiBpZD0iZTI3Ij4weDI3PC9kaXY+DQo8ZGl2IGlk
PSJlMjgiPjB4Mjg8L2Rpdj4NCjxkaXYgaWQ9ImUyOSI+MHgyOTwvZGl2Pg0KPGRpdiBpZD0iZTJh
Ij4weDJhPC9kaXY+DQo8ZGl2IGlkPSJlMmIiPjB4MmI8L2Rpdj4NCjxkaXYgaWQ9ImUyYyI+MHgy
YzwvZGl2Pg0KPGRpdiBpZD0iZTJkIj4weDJkPC9kaXY+DQo8ZGl2IGlkPSJlMmUiPjB4MmU8L2Rp
dj4NCjxkaXYgaWQ9ImUyZiI+MHgyZjwvZGl2Pg0KPGRpdiBpZD0iZTMwIj4weDMwPC9kaXY+DQo8
ZGl2IGlkPSJlMzEiPjB4MzE8L2Rpdj4NCjxkaXYgaWQ9ImUzMiI+MHgzMjwvZGl2Pg0KPGRpdiBp
ZD0iZTMzIj4weDMzPC9kaXY+DQo8ZGl2IGlkPSJlMzQiPjB4MzQ8L2Rpdj4NCjxkaXYgaWQ9ImUz
NSI+MHgzNTwvZGl2Pg0KPGRpdiBpZD0iZTM2Ij4weDM2PC9kaXY+DQo8ZGl2IGlkPSJlMzciPjB4
Mzc8L2Rpdj4NCjxkaXYgaWQ9ImUzOCI+MHgzODwvZGl2Pg0KPGRpdiBpZD0iZTM5Ij4weDM5PC9k
aXY+DQo8ZGl2IGlkPSJlM2EiPjB4M2E8L2Rpdj4NCjxkaXYgaWQ9ImUzYiI+MHgzYjwvZGl2Pg0K
PGRpdiBpZD0iZTNjIj4weDNjPC9kaXY+DQo8ZGl2IGlkPSJlM2QiPjB4M2Q8L2Rpdj4NCjxkaXYg
aWQ9ImUzZSI+MHgzZTwvZGl2Pg0KPGRpdiBpZD0iZTNmIj4weDNmPC9kaXY+DQo8ZGl2IGlkPSJl
NDAiPjB4NDA8L2Rpdj4NCjxkaXYgaWQ9ImU0MSI+MHg0MTwvZGl2Pg0KPGRpdiBpZD0iZTQyIj4w
eDQyPC9kaXY+DQo8ZGl2IGlkPSJlNDMiPjB4NDM8L2Rpdj4NCjxkaXYgaWQ9ImU0NCI+MHg0NDwv
ZGl2Pg0KPGRpdiBpZD0iZTQ1Ij4weDQ1PC9kaXY+DQo8ZGl2IGlkPSJlNDYiPjB4NDY8L2Rpdj4N
CjxkaXYgaWQ9ImU0NyI+MHg0NzwvZGl2Pg0KPGRpdiBpZD0iZTQ4Ij4weDQ4PC9kaXY+DQo8ZGl2
IGlkPSJlNDkiPjB4NDk8L2Rpdj4NCjxkaXYgaWQ9ImU0YSI+MHg0YTwvZGl2Pg0KPGRpdiBpZD0i
ZTRiIj4weDRiPC9kaXY+DQo8ZGl2IGlkPSJlNGMiPjB4NGM8L2Rpdj4NCjxkaXYgaWQ9ImU0ZCI+
MHg0ZDwvZGl2Pg0KPGRpdiBpZD0iZTRlIj4weDRlPC9kaXY+DQo8ZGl2IGlkPSJlNGYiPjB4NGY8
L2Rpdj4NCjxkaXYgaWQ9ImU1MCI+MHg1MDwvZGl2Pg0KPGRpdiBpZD0iZTUxIj4weDUxPC9kaXY+
DQo8ZGl2IGlkPSJlNTIiPjB4NTI8L2Rpdj4NCjxkaXYgaWQ9ImU1MyI+MHg1MzwvZGl2Pg0KPGRp
diBpZD0iZTU0Ij4weDU0PC9kaXY+DQo8ZGl2IGlkPSJlNTUiPjB4NTU8L2Rpdj4NCjxkaXYgaWQ9
ImU1NiI+MHg1NjwvZGl2Pg0KPGRpdiBpZD0iZTU3Ij4weDU3PC9kaXY+DQo8ZGl2IGlkPSJlNTgi
PjB4NTg8L2Rpdj4NCjxkaXYgaWQ9ImU1OSI+MHg1OTwvZGl2Pg0KPGRpdiBpZD0iZTVhIj4weDVh
PC9kaXY+DQo8ZGl2IGlkPSJlNWIiPjB4NWI8L2Rpdj4NCjxkaXYgaWQ9ImU1YyI+MHg1YzwvZGl2
Pg0KPGRpdiBpZD0iZTVkIj4weDVkPC9kaXY+DQo8ZGl2IGlkPSJlNWUiPjB4NWU8L2Rpdj4NCjxk
aXYgaWQ9ImU1ZiI+MHg1ZjwvZGl2Pg0KPGRpdiBpZD0iZTYwIj4weDYwPC9kaXY+DQo8ZGl2IGlk
PSJlNjEiPjB4NjE8L2Rpdj4NCjxkaXYgaWQ9ImU2MiI+MHg2MjwvZGl2Pg0KPGRpdiBpZD0iZTYz
Ij4weDYzPC9kaXY+DQo8ZGl2IGlkPSJlNjQiPjB4NjQ8L2Rpdj4NCjxkaXYgaWQ9ImU2NSI+MHg2
NTwvZGl2Pg0KPGRpdiBpZD0iZTY2Ij4weDY2PC9kaXY+DQo8ZGl2IGlkPSJlNjciPjB4Njc8L2Rp
dj4NCjxkaXYgaWQ9ImU2OCI+MHg2ODwvZGl2Pg0KPGRpdiBpZD0iZTY5Ij4weDY5PC9kaXY+DQo8
ZGl2IGlkPSJlNmEiPjB4NmE8L2Rpdj4NCjxkaXYgaWQ9ImU2YiI+MHg2YjwvZGl2Pg0KPGRpdiBp
ZD0iZTZjIj4weDZjPC9kaXY+DQo8ZGl2IGlkPSJlNmQiPjB4NmQ8L2Rpdj4NCjxkaXYgaWQ9ImU2
ZSI+MHg2ZTwvZGl2Pg0KPGRpdiBpZD0iZTZmIj4weDZmPC9kaXY+DQo8ZGl2IGlkPSJlNzAiPjB4
NzA8L2Rpdj4NCjxkaXYgaWQ9ImU3MSI+MHg3MTwvZGl2Pg0KPGRpdiBpZD0iZTcyIj4weDcyPC9k
aXY+DQo8ZGl2IGlkPSJlNzMiPjB4NzM8L2Rpdj4NCjxkaXYgaWQ9ImU3NCI+MHg3NDwvZGl2Pg0K
PGRpdiBpZD0iZTc1Ij4weDc1PC9kaXY+DQo8ZGl2IGlkPSJlNzYiPjB4NzY8L2Rpdj4NCjxkaXYg
aWQ9ImU3NyI+MHg3NzwvZGl2Pg0KPGRpdiBpZD0iZTc4Ij4weDc4PC9kaXY+DQo8ZGl2IGlkPSJl
NzkiPjB4Nzk8L2Rpdj4NCjxkaXYgaWQ9ImU3YSI+MHg3YTwvZGl2Pg0KPGRpdiBpZD0iZTdiIj4w
eDdiPC9kaXY+DQo8ZGl2IGlkPSJlN2MiPjB4N2M8L2Rpdj4NCjxkaXYgaWQ9ImU3ZCI+MHg3ZDwv
ZGl2Pg0KPGRpdiBpZD0iZTdlIj4weDdlPC9kaXY+DQo8ZGl2IGlkPSJlN2YiPjB4N2Y8L2Rpdj4N
CjxkaXYgaWQ9ImU4MCI+MHg4MDwvZGl2Pg0KPGRpdiBpZD0iZTgxIj4weDgxPC9kaXY+DQo8ZGl2
IGlkPSJlODIiPjB4ODI8L2Rpdj4NCjxkaXYgaWQ9ImU4MyI+MHg4MzwvZGl2Pg0KPGRpdiBpZD0i
ZTg0Ij4weDg0PC9kaXY+DQo8ZGl2IGlkPSJlODUiPjB4ODU8L2Rpdj4NCjxkaXYgaWQ9ImU4NiI+
MHg4NjwvZGl2Pg0KPGRpdiBpZD0iZTg3Ij4weDg3PC9kaXY+DQo8ZGl2IGlkPSJlODgiPjB4ODg8
L2Rpdj4NCjxkaXYgaWQ9ImU4OSI+MHg4OTwvZGl2Pg0KPGRpdiBpZD0iZThhIj4weDhhPC9kaXY+
DQo8ZGl2IGlkPSJlOGIiPjB4OGI8L2Rpdj4NCjxkaXYgaWQ9ImU4YyI+MHg4YzwvZGl2Pg0KPGRp
diBpZD0iZThkIj4weDhkPC9kaXY+DQo8ZGl2IGlkPSJlOGUiPjB4OGU8L2Rpdj4NCjxkaXYgaWQ9
ImU4ZiI+MHg4ZjwvZGl2Pg0KPGRpdiBpZD0iZTkwIj4weDkwPC9kaXY+DQo8ZGl2IGlkPSJlOTEi
PjB4OTE8L2Rpdj4NCjxkaXYgaWQ9ImU5MiI+MHg5MjwvZGl2Pg0KPGRpdiBpZD0iZTkzIj4weDkz
PC9kaXY+DQo8ZGl2IGlkPSJlOTQiPjB4OTQ8L2Rpdj4NCjxkaXYgaWQ9ImU5NSI+MHg5NTwvZGl2
Pg0KPGRpdiBpZD0iZTk2Ij4weDk2PC9kaXY+DQo8ZGl2IGlkPSJlOTciPjB4OTc8L2Rpdj4NCjxk
aXYgaWQ9ImU5OCI+MHg5ODwvZGl2Pg0KPGRpdiBpZD0iZTk5Ij4weDk5PC9kaXY+DQo8ZGl2IGlk
PSJlOWEiPjB4OWE8L2Rpdj4NCjxkaXYgaWQ9ImU5YiI+MHg5YjwvZGl2Pg0KPGRpdiBpZD0iZTlj
Ij4weDljPC9kaXY+DQo8ZGl2IGlkPSJlOWQiPjB4OWQ8L2Rpdj4NCjxkaXYgaWQ9ImU5ZSI+MHg5
ZTwvZGl2Pg0KPGRpdiBpZD0iZTlmIj4weDlmPC9kaXY+DQo8ZGl2IGlkPSJlYTAiPjB4YTA8L2Rp
dj4NCjxkaXYgaWQ9ImVhMSI+MHhhMTwvZGl2Pg0KPGRpdiBpZD0iZWEyIj4weGEyPC9kaXY+DQo8
ZGl2IGlkPSJlYTMiPjB4YTM8L2Rpdj4NCjxkaXYgaWQ9ImVhNCI+MHhhNDwvZGl2Pg0KPGRpdiBp
ZD0iZWE1Ij4weGE1PC9kaXY+DQo8ZGl2IGlkPSJlYTYiPjB4YTY8L2Rpdj4NCjxkaXYgaWQ9ImVh
NyI+MHhhNzwvZGl2Pg0KPGRpdiBpZD0iZWE4Ij4weGE4PC9kaXY+DQo8ZGl2IGlkPSJlYTkiPjB4
YTk8L2Rpdj4NCjxkaXYgaWQ9ImVhYSI+MHhhYTwvZGl2Pg0KPGRpdiBpZD0iZWFiIj4weGFiPC9k
aXY+DQo8ZGl2IGlkPSJlYWMiPjB4YWM8L2Rpdj4NCjxkaXYgaWQ9ImVhZCI+MHhhZDwvZGl2Pg0K
PGRpdiBpZD0iZWFlIj4weGFlPC9kaXY+DQo8ZGl2IGlkPSJlYWYiPjB4YWY8L2Rpdj4NCjxkaXYg
aWQ9ImViMCI+MHhiMDwvZGl2Pg0KPGRpdiBpZD0iZWIxIj4weGIxPC9kaXY+DQo8ZGl2IGlkPSJl
YjIiPjB4YjI8L2Rpdj4NCjxkaXYgaWQ9ImViMyI+MHhiMzwvZGl2Pg0KPGRpdiBpZD0iZWI0Ij4w
eGI0PC9kaXY+DQo8ZGl2IGlkPSJlYjUiPjB4YjU8L2Rpdj4NCjxkaXYgaWQ9ImViNiI+MHhiNjwv
ZGl2Pg0KPGRpdiBpZD0iZWI3Ij4weGI3PC9kaXY+DQo8ZGl2IGlkPSJlYjgiPjB4Yjg8L2Rpdj4N
CjxkaXYgaWQ9ImViOSI+MHhiOTwvZGl2Pg0KPGRpdiBpZD0iZWJhIj4weGJhPC9kaXY+DQo8ZGl2
IGlkPSJlYmIiPjB4YmI8L2Rpdj4NCjxkaXYgaWQ9ImViYyI+MHhiYzwvZGl2Pg0KPGRpdiBpZD0i
ZWJkIj4weGJkPC9kaXY+DQo8ZGl2IGlkPSJlYmUiPjB4YmU8L2Rpdj4NCjxkaXYgaWQ9ImViZiI+
MHhiZjwvZGl2Pg0KPGRpdiBpZD0iZWMwIj4weGMwPC9kaXY+DQo8ZGl2IGlkPSJlYzEiPjB4YzE8
L2Rpdj4NCjxkaXYgaWQ9ImVjMiI+MHhjMjwvZGl2Pg0KPGRpdiBpZD0iZWMzIj4weGMzPC9kaXY+
DQo8ZGl2IGlkPSJlYzQiPjB4YzQ8L2Rpdj4NCjxkaXYgaWQ9ImVjNSI+MHhjNTwvZGl2Pg0KPGRp
diBpZD0iZWM2Ij4weGM2PC9kaXY+DQo8ZGl2IGlkPSJlYzciPjB4Yzc8L2Rpdj4NCjxkaXYgaWQ9
ImVjOCI+MHhjODwvZGl2Pg0KPGRpdiBpZD0iZWM5Ij4weGM5PC9kaXY+DQo8ZGl2IGlkPSJlY2Ei
PjB4Y2E8L2Rpdj4NCjxkaXYgaWQ9ImVjYiI+MHhjYjwvZGl2Pg0KPGRpdiBpZD0iZWNjIj4weGNj
PC9kaXY+DQo8ZGl2IGlkPSJlY2QiPjB4Y2Q8L2Rpdj4NCjxkaXYgaWQ9ImVjZSI+MHhjZTwvZGl2
Pg0KPGRpdiBpZD0iZWNmIj4weGNmPC9kaXY+DQo8ZGl2IGlkPSJlZDAiPjB4ZDA8L2Rpdj4NCjxk
aXYgaWQ9ImVkMSI+MHhkMTwvZGl2Pg0KPGRpdiBpZD0iZWQyIj4weGQyPC9kaXY+DQo8ZGl2IGlk
PSJlZDMiPjB4ZDM8L2Rpdj4NCjxkaXYgaWQ9ImVkNCI+MHhkNDwvZGl2Pg0KPGRpdiBpZD0iZWQ1
Ij4weGQ1PC9kaXY+DQo8ZGl2IGlkPSJlZDYiPjB4ZDY8L2Rpdj4NCjxkaXYgaWQ9ImVkNyI+MHhk
NzwvZGl2Pg0KPGRpdiBpZD0iZWQ4Ij4weGQ4PC9kaXY+DQo8ZGl2IGlkPSJlZDkiPjB4ZDk8L2Rp
dj4NCjxkaXYgaWQ9ImVkYSI+MHhkYTwvZGl2Pg0KPGRpdiBpZD0iZWRiIj4weGRiPC9kaXY+DQo8
ZGl2IGlkPSJlZGMiPjB4ZGM8L2Rpdj4NCjxkaXYgaWQ9ImVkZCI+MHhkZDwvZGl2Pg0KPGRpdiBp
ZD0iZWRlIj4weGRlPC9kaXY+DQo8ZGl2IGlkPSJlZGYiPjB4ZGY8L2Rpdj4NCjxkaXYgaWQ9ImVl
MCI+MHhlMDwvZGl2Pg0KPGRpdiBpZD0iZWUxIj4weGUxPC9kaXY+DQo8ZGl2IGlkPSJlZTIiPjB4
ZTI8L2Rpdj4NCjxkaXYgaWQ9ImVlMyI+MHhlMzwvZGl2Pg0KPGRpdiBpZD0iZWU0Ij4weGU0PC9k
aXY+DQo8ZGl2IGlkPSJlZTUiPjB4ZTU8L2Rpdj4NCjxkaXYgaWQ9ImVlNiI+MHhlNjwvZGl2Pg0K
PGRpdiBpZD0iZWU3Ij4weGU3PC9kaXY+DQo8ZGl2IGlkPSJlZTgiPjB4ZTg8L2Rpdj4NCjxkaXYg
aWQ9ImVlOSI+MHhlOTwvZGl2Pg0KPGRpdiBpZD0iZWVhIj4weGVhPC9kaXY+DQo8ZGl2IGlkPSJl
ZWIiPjB4ZWI8L2Rpdj4NCjxkaXYgaWQ9ImVlYyI+MHhlYzwvZGl2Pg0KPGRpdiBpZD0iZWVkIj4w
eGVkPC9kaXY+DQo8ZGl2IGlkPSJlZWUiPjB4ZWU8L2Rpdj4NCjxkaXYgaWQ9ImVlZiI+MHhlZjwv
ZGl2Pg0KPGRpdiBpZD0iZWYwIj4weGYwPC9kaXY+DQo8ZGl2IGlkPSJlZjEiPjB4ZjE8L2Rpdj4N
CjxkaXYgaWQ9ImVmMiI+MHhmMjwvZGl2Pg0KPGRpdiBpZD0iZWYzIj4weGYzPC9kaXY+DQo8ZGl2
IGlkPSJlZjQiPjB4ZjQ8L2Rpdj4NCjxkaXYgaWQ9ImVmNSI+MHhmNTwvZGl2Pg0KPGRpdiBpZD0i
ZWY2Ij4weGY2PC9kaXY+DQo8ZGl2IGlkPSJlZjciPjB4Zjc8L2Rpdj4NCjxkaXYgaWQ9ImVmOCI+
MHhmODwvZGl2Pg0KPGRpdiBpZD0iZWY5Ij4weGY5PC9kaXY+DQo8ZGl2IGlkPSJlZmEiPjB4ZmE8
L2Rpdj4NCjxkaXYgaWQ9ImVmYiI+MHhmYjwvZGl2Pg0KPGRpdiBpZD0iZWZjIj4weGZjPC9kaXY+
DQo8ZGl2IGlkPSJlZmQiPjB4ZmQ8L2Rpdj4NCjxkaXYgaWQ9ImVmZSI+MHhmZTwvZGl2Pg0KPGRp
diBpZD0iZWZmIj4weGZmPC9kaXY+DQo8L2JvZHk+PC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63224</attachid>
            <date>2010-08-02 09:15:03 -0700</date>
            <delta_ts>2010-08-02 11:00:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41510b.patch</filename>
            <type>text/plain</type>
            <size>13192</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNjI0NDkpDQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDE0IEBADQorMjAxMC0wNy0wMyAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDE1MTAgCisKKyAgICAgICAgQWRkZWQgYWRkaXRpb25hbCBkYXRhIHVybHMgdGVzdHMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3Qt
cGF0aC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3Vz
ZXItc3R5bGVzaGVldC1mYXN0LXBhdGguaHRtbDoKKwogMjAxMC0wNy0wMyAgUm9iZXJ0IEhvZ2Fu
ICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVcGRhdGUgUXQgZXhwZWN0ZWQg
cmVzdWx0cyBhZnRlciByNjI0NDQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4dA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hl
ZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjIzNjgpDQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGgtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDkgQEANCiBUaGlzIHRlc3RzIHRo
YXQgd2hlbiB0aGUgdXNlciBzdHlsZSBzaGVldCBsb2NhdGlvbiBpcyBzZXQgdG8gYSBkYXRhOiBV
Ukwgd2l0aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBkYXRhLCB0aGUgc3R5bGUgc2hlZXQgaXMgcHJv
Y2Vzc2VkIHN5bmNocm9ub3VzbHksIGluc3RlYWQgb2YgaW52b2tpbmcgdGhlIGFzeW5jaHJvbm91
cyBsb2FkZXIuCiAKLVBBU1MKK1BBU1MgMTAwcHgKK1BBU1MgMTEwcHgKK1BBU1MgMTIwcHgKK1BB
U1MgMTMwcHgKK1BBU1MgMTQwcHgKK1BBU1MgMTUwcHgKK1BBU1MgMTYwcHgKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRo
Lmh0bWwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2Fk
ZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1sCShyZXZpc2lvbiA2MjM2OCkNCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3Qt
cGF0aC5odG1sCSh3b3JraW5nIGNvcHkpDQpAQCAtMywyMCArMywzMSBAQA0KICAgICBVUkwgd2l0
aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBkYXRhLCB0aGUgc3R5bGUgc2hlZXQgaXMgcHJvY2Vzc2Vk
CiAgICAgc3luY2hyb25vdXNseSwgaW5zdGVhZCBvZiBpbnZva2luZyB0aGUgYXN5bmNocm9ub3Vz
IGxvYWRlci4KIDwvcD4KLTxwIGlkPSJyZXN1bHQiPjwvcD4KIDxzY3JpcHQ+Ci0gICAgdmFyIHJl
c3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKKyAgICB2YXIgdGVzdE9i
amVjdHMgPSBbCisgICAgICAgIHtyZXN1bHQ6dHJ1ZSwgIHNpemU6IjEwMHB4IiwgdXJsOiJkYXRh
OnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFltOWtlU0I3Wm05dWRDMXphWHBsT2lBeE1E
QndlSDA9In0sCisgICAgICAgIHtyZXN1bHQ6dHJ1ZSwgIHNpemU6IjExMHB4IiwgdXJsOiJkYXRh
OnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCAgICAgICAgICAgICAgICAgICAgICAgWW05
a2VTQjdabTl1ZEMxemFYcGxPaUF4TVRCd2VIMD0gICAgICAgICAgICAgICAgICAifSwKKyAgICAg
ICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTIwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNl
dD11dGYtODtiYXNlNjQsXG4gXHIgXHQgWW05ayBcdCBlU0I3IFxyIFptOXVkIFxuIFxuIEMxemFY
cCBcciBsT2lBeE0gXHQgakJ3ZUgwPSBcdCBcciBcbiJ9LAorICAgICAgICB7cmVzdWx0OnRydWUs
ICBzaXplOiIxMzBweCIsIHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwl
NTkgJTZEICUzOSAlNkIgZVNCN1ptOXVkICUyMCAlMjAgJTIwIEMxemFYcGxPaUF4TXpCd2UgJTQ4
ICUzMCAlM0QifSwKKyAgICAgICAge3Jlc3VsdDpmYWxzZSwgc2l6ZToiMTQwcHgiLCB1cmw6ImRh
dGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsWW05ayQjZVNCN1ptIzl1ZChDMXphWHAp
bE9pQXhOREJ3ZUgwPSJ9LAorICAgICAgICB7cmVzdWx0OmZhbHNlLCBzaXplOiIxNTBweCIsIHVy
bDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxZbTlrZSUwMFNCN1olMjBtOXVk
QzF6XG5cdGFYcGxPI2lBeCUwM05UQnclZUgwPSJ9LAorICAgICAgICB7cmVzdWx0OmZhbHNlLCBz
aXplOiIxNjBweCIsIHVybDoiJTUwJTMwJTEwJTAwJTIwJTQwIn0KKyAgICBdOwogCiAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJT
dHlsZVNoZWV0RW5hYmxlZCh0cnVlKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
VXNlclN0eWxlU2hlZXRMb2NhdGlvbigiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2
NCxZbTlrZVNCN1ptOXVkQzF6YVhwbE9pQXhNREJ3ZUgwPSIpOwogCi0gICAgICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5i
b2R5KS5mb250U2l6ZSA9PSAiMTAwcHgiKQotICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9
ICJQQVNTIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9ICJG
QUlMIjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0T2JqZWN0cy5sZW5ndGg7IGkr
KykgeworICAgICAgICAgICAgdmFyIG9iaiA9IHRlc3RPYmplY3RzW2ldOworICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihvYmoudXJsKTsK
KworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisgICAgICAgICAgICB2YXIg
cmVzdWx0ID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5mb250U2l6ZSA9PSBvYmou
c2l6ZTsKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKChyZXN1bHQgPT0gb2JqLnJlc3VsdCA/
ICJQQVNTIiA6ICJGQUlMIikgKyAiICIgKyBvYmouc2l6ZSArICI8YnI+Iik7CisKKyAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oIiIpOwor
ICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiVGhpcyB0
ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBEdW1wUmVuZGVyVHJlZS4iOworICAgICAgICBkb2N1bWVu
dC53cml0ZSgiVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBEdW1wUmVuZGVyVHJlZS4iKTsK
IDwvc2NyaXB0PgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNjIzNjkpDQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkNCkBAIC0xLDMgKzEsMjIgQEANCisyMDEwLTA3LTAyICBQYXRyaWNrIEdhbnN0
ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBCYXNlNjREZWNvZGVQb2xpY3kgb3B0aW9uIGF0IGJhc2U2
NERlY29kZSgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDE1MTAKKworICAgICAgICBBZGQgYW4gb3B0aW9uIGZvciBpZ25vcmluZyB3aGl0ZXNwYWNl
IGluIGJhc2U2NCBkYXRhLgorICAgICAgICBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgZGVjb2Rpbmcg
ZGF0YSB1cmxzLgorCisgICAgICAgIEFsc28gZml4IHRoZSB1c2VyU3R5bGVTaGVldCBmYXN0IHBh
dGggZGVjb2RpbmcuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvQmFzZTY0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJhc2U2NEVuY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpiYXNlNjREZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
QmFzZTY0Lmg6CisKIDIwMTAtMDctMDIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYkNvcmUvcGFnZS9Q
YWdlLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24g
NjIzNjgpDQorKysgV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNTY4
LDIyICs1NjgsMTcgQEANCiAgICAgbV9kaWRMb2FkVXNlclN0eWxlU2hlZXQgPSBmYWxzZTsKICAg
ICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nKCk7CiAgICAgbV91c2VyU3R5bGVTaGVldE1vZGlm
aWNhdGlvblRpbWUgPSAwOwotICAgIAorCiAgICAgLy8gRGF0YSBVUkxzIHdpdGggYmFzZTY0LWVu
Y29kZWQgVVRGLTggc3R5bGUgc2hlZXRzIGFyZSBjb21tb24uIFdlIGNhbiBwcm9jZXNzIHRoZW0K
ICAgICAvLyBzeW5jaHJvbm91c2x5IGFuZCBhdm9pZCB1c2luZyBhIGxvYWRlci4gCiAgICAgaWYg
KHVybC5wcm90b2NvbElzKCJkYXRhIikgJiYgdXJsLnN0cmluZygpLnN0YXJ0c1dpdGgoImRhdGE6
dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsIikpIHsKICAgICAgICAgbV9kaWRMb2FkVXNl
clN0eWxlU2hlZXQgPSB0cnVlOwotICAgICAgICAKLSAgICAgICAgY29uc3QgdW5zaWduZWQgcHJl
Zml4TGVuZ3RoID0gMzU7Ci0gICAgICAgIFZlY3RvcjxjaGFyPiBlbmNvZGVkRGF0YSh1cmwuc3Ry
aW5nKCkubGVuZ3RoKCkgLSBwcmVmaXhMZW5ndGgpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSBwcmVmaXhMZW5ndGg7IGkgPCB1cmwuc3RyaW5nKCkubGVuZ3RoKCk7ICsraSkKLSAgICAgICAg
ICAgIGVuY29kZWREYXRhW2kgLSBwcmVmaXhMZW5ndGhdID0gc3RhdGljX2Nhc3Q8Y2hhcj4odXJs
LnN0cmluZygpW2ldKTsKIAogICAgICAgICBWZWN0b3I8Y2hhcj4gc3R5bGVTaGVldEFzVVRGODsK
LSAgICAgICAgaWYgKGJhc2U2NERlY29kZShlbmNvZGVkRGF0YSwgc3R5bGVTaGVldEFzVVRGOCkp
CisgICAgICAgIGlmIChiYXNlNjREZWNvZGUoZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHVybC5z
dHJpbmcoKS5zdWJzdHJpbmcoMzUpKSwgc3R5bGVTaGVldEFzVVRGOCwgSWdub3JlV2hpdGVzcGFj
ZSkpCiAgICAgICAgICAgICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nOjpmcm9tVVRGOChzdHls
ZVNoZWV0QXNVVEY4LmRhdGEoKSwgc3R5bGVTaGVldEFzVVRGOC5zaXplKCkpOwogICAgIH0KLSAg
ICAKKwogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9
IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgIGlmIChmcmFtZS0+ZG9j
dW1lbnQoKSkKICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5jbGVhclBhZ2VVc2VyU2hl
ZXQoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3BwDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAJKHJldmlzaW9uIDY0NDE2KQ0K
KysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAt
Miw2ICsyLDcgQEANCiAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEYXdpdCBBbGVtYXllaHUg
PGFkYXdpdEBrZGUub3JnPg0KICAgIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlh
a292IDxhcEB3ZWJraXQub3JnPg0KICAgIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorICAgQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sg
R2Fuc3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4NCiANCiAgICBUaGlzIHByb2dyYW0gaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KICAgIGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IChMR1BMKQ0KQEAgLTI1LDYgKzI2LDcgQEANCiANCiAjaW5jbHVkZSA8bGltaXRzLmg+DQogI2lu
Y2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4NCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+DQogDQogbmFtZXNwYWNlIFdlYkNvcmUgew0KIA0KQEAgLTcwLDcgKzcyLDcgQEAgdm9pZCBi
YXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQ0KICAgICAgICAgcmV0dXJuOw0KIA0K
ICAgICAvLyBJZiB0aGUgaW5wdXQgc3RyaW5nIGlzIHBhdGhvbG9naWNhbGx5IGxhcmdlLCBqdXN0
IHJldHVybiBub3RoaW5nLg0KLSAgICAvLyBOb3RlOiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRo
ZSAib3V0X2xlbiIgY29tcHV0YXRpb24gYmVsb3cuDQorICAgIC8vIE5vdGU6IEtlZXAgdGhpcyBp
biBzeW5jIHdpdGggdGhlICJvdXRMZW5ndGgiIGNvbXB1dGF0aW9uIGJlbG93Lg0KICAgICAvLyBS
YXRoZXIgdGhhbiBiZWluZyBwZXJmZWN0bHkgcHJlY2lzZSwgdGhpcyBpcyBhIGJpdCBjb25zZXJ2
YXRpdmUuDQogICAgIGNvbnN0IHVuc2lnbmVkIG1heElucHV0QnVmZmVyU2l6ZSA9IFVJTlRfTUFY
IC8gNzcgKiA3NiAvIDQgKiAzIC0gMjsNCiAgICAgaWYgKGxlbiA+IG1heElucHV0QnVmZmVyU2l6
ZSkNCkBAIC03OSwyMSArODEsMjEgQEAgdm9pZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0
YSwgdW5zaQ0KICAgICB1bnNpZ25lZCBzaWR4ID0gMDsNCiAgICAgdW5zaWduZWQgZGlkeCA9IDA7
DQogDQotICAgIHVuc2lnbmVkIG91dF9sZW4gPSAoKGxlbiArIDIpIC8gMykgKiA0Ow0KKyAgICB1
bnNpZ25lZCBvdXRMZW5ndGggPSAoKGxlbiArIDIpIC8gMykgKiA0Ow0KIA0KICAgICAvLyBEZWFs
IHdpdGggdGhlIDc2IGNoYXJhY3RlciBwZXIgbGluZSBsaW1pdCBzcGVjaWZpZWQgaW4gUkZDIDIw
NDUuDQotICAgIGluc2VydExGcyA9IChpbnNlcnRMRnMgJiYgb3V0X2xlbiA+IDc2KTsNCisgICAg
aW5zZXJ0TEZzID0gKGluc2VydExGcyAmJiBvdXRMZW5ndGggPiA3Nik7DQogICAgIGlmIChpbnNl
cnRMRnMpDQotICAgICAgICBvdXRfbGVuICs9ICgob3V0X2xlbiAtIDEpIC8gNzYpOw0KKyAgICAg
ICAgb3V0TGVuZ3RoICs9ICgob3V0TGVuZ3RoIC0gMSkgLyA3Nik7DQogDQogICAgIGludCBjb3Vu
dCA9IDA7DQotICAgIG91dC5ncm93KG91dF9sZW4pOw0KKyAgICBvdXQuZ3JvdyhvdXRMZW5ndGgp
Ow0KIA0KICAgICAvLyAzLWJ5dGUgdG8gNC1ieXRlIGNvbnZlcnNpb24gKyAwLTYzIHRvIGFzY2lp
IHByaW50YWJsZSBjb252ZXJzaW9uDQogICAgIGlmIChsZW4gPiAxKSB7DQogICAgICAgICB3aGls
ZSAoc2lkeCA8IGxlbiAtIDIpIHsNCiAgICAgICAgICAgICBpZiAoaW5zZXJ0TEZzKSB7DQotICAg
ICAgICAgICAgICAgIGlmIChjb3VudCAmJiAoY291bnQgJSA3NikgPT0gMCkNCisgICAgICAgICAg
ICAgICAgaWYgKGNvdW50ICYmICEoY291bnQgJSA3NikpDQogICAgICAgICAgICAgICAgICAgICBv
dXRbZGlkeCsrXSA9ICdcbic7DQogICAgICAgICAgICAgICAgIGNvdW50ICs9IDQ7DQogICAgICAg
ICAgICAgfQ0KQEAgLTEwNiw3ICsxMDgsNyBAQCB2b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFy
KiBkYXRhLCB1bnNpDQogICAgIH0NCiANCiAgICAgaWYgKHNpZHggPCBsZW4pIHsNCi0gICAgICAg
IGlmIChpbnNlcnRMRnMgJiYgKGNvdW50ID4gMCkgJiYgKGNvdW50ICUgNzYpID09IDApDQorICAg
ICAgICBpZiAoaW5zZXJ0TEZzICYmIChjb3VudCA+IDApICYmICEoY291bnQgJSA3NikpDQogICAg
ICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7DQogDQogICAgICAgICBvdXRbZGlkeCsrXSA9IGJh
c2U2NEVuY01hcFsoZGF0YVtzaWR4XSA+PiAyKSAmIDA3N107DQpAQCAtMTI0LDcgKzEyNiwxNiBA
QCB2b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpDQogICAgIH0NCiB9DQog
DQotYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiBpbiwgVmVjdG9yPGNoYXI+
JiBvdXQpDQorYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgU3RyaW5nJiBpbiwgVmVjdG9yPGNoYXI+
JiBvdXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpDQorew0KKyAgICAvLyBUaGUgYXNjaWko
KSBmdW5jdGlvbiB0dXJucyBhbnkgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW50byAiPyIgY2hhcmFj
dGVycywNCisgICAgLy8gd2hpY2ggeWllbGRzIGNvcnJlY3QgYmVoYXZpb3IgYmVjYXVzZSB0aG9z
ZSBhcmUgaWxsZWdhbCBpbiBiYXNlIDY0Lg0KKyAgICBWZWN0b3I8Y2hhcj4gYXNjaWlDaGFyYWN0
ZXJzID0gaW4uYXNjaWkoKTsNCisgICAgYXNjaWlDaGFyYWN0ZXJzLnJlbW92ZUxhc3QoKTsgLy8g
UmVtb3ZlIHRyYWlsaW5nICdcMCcuDQorICAgIHJldHVybiBiYXNlNjREZWNvZGUoYXNjaWlDaGFy
YWN0ZXJzLCBvdXQsIHBvbGljeSk7DQorfQ0KKw0KK2Jvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZl
Y3RvcjxjaGFyPiYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9s
aWN5KQ0KIHsNCiAgICAgb3V0LmNsZWFyKCk7DQogDQpAQCAtMTMyLDM2ICsxNDMsMzkgQEAgYm9v
bCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiBpbg0KICAgICBpZiAoaW4uc2l6ZSgp
ID4gVUlOVF9NQVgpDQogICAgICAgICByZXR1cm4gZmFsc2U7DQogDQotICAgIHJldHVybiBiYXNl
NjREZWNvZGUoaW4uZGF0YSgpLCBpbi5zaXplKCksIG91dCk7DQorICAgIHJldHVybiBiYXNlNjRE
ZWNvZGUoaW4uZGF0YSgpLCBpbi5zaXplKCksIG91dCwgcG9saWN5KTsNCiB9DQogDQotYm9vbCBi
YXNlNjREZWNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuLCBWZWN0b3I8Y2hhcj4m
IG91dCkNCitib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW4s
IFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5KQ0KIHsNCiAgICAg
b3V0LmNsZWFyKCk7DQotICAgIGlmIChsZW4gPT0gMCkNCisgICAgaWYgKCFsZW4pDQogICAgICAg
ICByZXR1cm4gdHJ1ZTsNCiANCiAgICAgd2hpbGUgKGxlbiAmJiBkYXRhW2xlbi0xXSA9PSAnPScp
DQogICAgICAgICAtLWxlbjsNCiANCiAgICAgb3V0Lmdyb3cobGVuKTsNCisNCisgICAgdW5zaWdu
ZWQgb3V0TGVuZ3RoID0gMDsNCiAgICAgZm9yICh1bnNpZ25lZCBpZHggPSAwOyBpZHggPCBsZW47
IGlkeCsrKSB7DQogICAgICAgICB1bnNpZ25lZCBjaGFyIGNoID0gZGF0YVtpZHhdOw0KLSAgICAg
ICAgaWYgKChjaCA+IDQ3ICYmIGNoIDwgNTgpIHx8IChjaCA+IDY0ICYmIGNoIDwgOTEpIHx8IChj
aCA+IDk2ICYmIGNoIDwgMTIzKSB8fCBjaCA9PSAnKycgfHwgY2ggPT0gJy8nIHx8IGNoID09ICc9
JykNCi0gICAgICAgICAgICBvdXRbaWR4XSA9IGJhc2U2NERlY01hcFtjaF07DQotICAgICAgICBl
bHNlDQorICAgICAgICBpZiAoKGNoID4gNDcgJiYgY2ggPCA1OCkgfHwgKGNoID4gNjQgJiYgY2gg
PCA5MSkgfHwgKGNoID4gOTYgJiYgY2ggPCAxMjMpIHx8IGNoID09ICcrJyB8fCBjaCA9PSAnLycg
fHwgY2ggPT0gJz0nKSB7DQorICAgICAgICAgICAgb3V0W291dExlbmd0aF0gPSBiYXNlNjREZWNN
YXBbY2hdOw0KKyAgICAgICAgICAgICsrb3V0TGVuZ3RoOw0KKyAgICAgICAgfSBlbHNlIGlmIChw
b2xpY3kgPT0gRmFpbE9uSW52YWxpZENoYXJhY3RlciB8fCAocG9saWN5ID09IElnbm9yZVdoaXRl
c3BhY2UgJiYgIWlzU3BhY2VPck5ld2xpbmUoY2gpKSkNCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7DQogICAgIH0NCiANCiAgICAgLy8gNC1ieXRlIHRvIDMtYnl0ZSBjb252ZXJzaW9uDQotICAg
IHVuc2lnbmVkIG91dExlbiA9IGxlbiAtICgobGVuICsgMykgLyA0KTsNCi0gICAgaWYgKCFvdXRM
ZW4gfHwgKChvdXRMZW4gKyAyKSAvIDMpICogNCA8IGxlbikNCisgICAgb3V0TGVuZ3RoIC09IChv
dXRMZW5ndGggKyAzKSAvIDQ7DQorICAgIGlmICghb3V0TGVuZ3RoKQ0KICAgICAgICAgcmV0dXJu
IGZhbHNlOw0KIA0KICAgICB1bnNpZ25lZCBzaWR4ID0gMDsNCiAgICAgdW5zaWduZWQgZGlkeCA9
IDA7DQotICAgIGlmIChvdXRMZW4gPiAxKSB7DQotICAgICAgICB3aGlsZSAoZGlkeCA8IG91dExl
biAtIDIpIHsNCisgICAgaWYgKG91dExlbmd0aCA+IDEpIHsNCisgICAgICAgIHdoaWxlIChkaWR4
IDwgb3V0TGVuZ3RoIC0gMikgew0KICAgICAgICAgICAgIG91dFtkaWR4XSA9ICgoKG91dFtzaWR4
XSA8PCAyKSAmIDI1NSkgfCAoKG91dFtzaWR4ICsgMV0gPj4gNCkgJiAwMDMpKTsNCiAgICAgICAg
ICAgICBvdXRbZGlkeCArIDFdID0gKCgob3V0W3NpZHggKyAxXSA8PCA0KSAmIDI1NSkgfCAoKG91
dFtzaWR4ICsgMl0gPj4gMikgJiAwMTcpKTsNCiAgICAgICAgICAgICBvdXRbZGlkeCArIDJdID0g
KCgob3V0W3NpZHggKyAyXSA8PCA2KSAmIDI1NSkgfCAob3V0W3NpZHggKyAzXSAmIDA3NykpOw0K
QEAgLTE3MCwxNCArMTg0LDE0IEBAIGJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IGNoYXIqIGRhdGEs
IHVuc2kNCiAgICAgICAgIH0NCiAgICAgfQ0KIA0KLSAgICBpZiAoZGlkeCA8IG91dExlbikNCisg
ICAgaWYgKGRpZHggPCBvdXRMZW5ndGgpDQogICAgICAgICBvdXRbZGlkeF0gPSAoKChvdXRbc2lk
eF0gPDwgMikgJiAyNTUpIHwgKChvdXRbc2lkeCArIDFdID4+IDQpICYgMDAzKSk7DQogDQotICAg
IGlmICgrK2RpZHggPCBvdXRMZW4pDQorICAgIGlmICgrK2RpZHggPCBvdXRMZW5ndGgpDQogICAg
ICAgICBvdXRbZGlkeF0gPSAoKChvdXRbc2lkeCArIDFdIDw8IDQpICYgMjU1KSB8ICgob3V0W3Np
ZHggKyAyXSA+PiAyKSAmIDAxNykpOw0KIA0KLSAgICBpZiAob3V0TGVuIDwgb3V0LnNpemUoKSkN
Ci0gICAgICAgIG91dC5zaHJpbmsob3V0TGVuKTsNCisgICAgaWYgKG91dExlbmd0aCA8IG91dC5z
aXplKCkpDQorICAgICAgICBvdXQuc2hyaW5rKG91dExlbmd0aCk7DQogDQogICAgIHJldHVybiB0
cnVlOw0KIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuaA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuaAkocmV2aXNpb24gNjIzNjgpDQor
KysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMSw1
ICsxLDYgQEANCiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3Yg
KGFwQHdlYmtpdC5vcmcpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtv
diA8YXBAd2Via2l0Lm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBQYXRyaWNrIEdhbnN0ZXJl
ciA8cGFyb2dhQHBhcm9nYS5jb20+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMwLDEyICszMSwxNiBAQA0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTdHJpbmc7
CisKK2VudW0gQmFzZTY0RGVjb2RlUG9saWN5IHsgRmFpbE9uSW52YWxpZENoYXJhY3RlciwgSWdu
b3JlV2hpdGVzcGFjZSwgSWdub3JlSW52YWxpZENoYXJhY3RlcnMgfTsKKwogdm9pZCBiYXNlNjRF
bmNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiwgVmVjdG9yPGNoYXI+JiwgYm9vbCBpbnNlcnRMRnMg
PSBmYWxzZSk7CiB2b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFyKiwgdW5zaWduZWQsIFZlY3Rv
cjxjaGFyPiYsIGJvb2wgaW5zZXJ0TEZzID0gZmFsc2UpOwogCi0vLyB0aGlzIGRlY29kZXIgaXMg
bm90IGdlbmVyYWwgcHVycG9zZSAtIGl0IHJldHVybnMgYW4gZXJyb3IgaWYgaXQgZW5jb3VudGVy
cyBhIGxpbmVmZWVkLCBhcyBuZWVkZWQgZm9yIHdpbmRvdy5hdG9iCi1ib29sIGJhc2U2NERlY29k
ZShjb25zdCBWZWN0b3I8Y2hhcj4mLCBWZWN0b3I8Y2hhcj4mKTsKLWJvb2wgYmFzZTY0RGVjb2Rl
KGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+Jik7Citib29sIGJhc2U2NERlY29k
ZShjb25zdCBTdHJpbmcmLCBWZWN0b3I8Y2hhcj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5
ID0gRmFpbE9uSW52YWxpZENoYXJhY3Rlcik7Citib29sIGJhc2U2NERlY29kZShjb25zdCBWZWN0
b3I8Y2hhcj4mLCBWZWN0b3I8Y2hhcj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5ID0gRmFp
bE9uSW52YWxpZENoYXJhY3Rlcik7Citib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFyKiwgdW5z
aWduZWQsIFZlY3RvcjxjaGFyPiYsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kgPSBGYWlsT25J
bnZhbGlkQ2hhcmFjdGVyKTsKIAogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63238</attachid>
            <date>2010-08-02 11:00:50 -0700</date>
            <delta_ts>2010-08-09 03:16:43 -0700</delta_ts>
            <desc>Patch (added null-string handling)</desc>
            <filename>bug-41510c.patch</filename>
            <type>text/plain</type>
            <size>13276</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNjI0NDkpDQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDE0IEBADQorMjAxMC0wNy0wMyAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDE1MTAgCisKKyAgICAgICAgQWRkZWQgYWRkaXRpb25hbCBkYXRhIHVybHMgdGVzdHMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3Qt
cGF0aC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3Vz
ZXItc3R5bGVzaGVldC1mYXN0LXBhdGguaHRtbDoKKwogMjAxMC0wNy0wMyAgUm9iZXJ0IEhvZ2Fu
ICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVcGRhdGUgUXQgZXhwZWN0ZWQg
cmVzdWx0cyBhZnRlciByNjI0NDQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4dA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hl
ZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjIzNjgpDQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGgtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDkgQEANCiBUaGlzIHRlc3RzIHRo
YXQgd2hlbiB0aGUgdXNlciBzdHlsZSBzaGVldCBsb2NhdGlvbiBpcyBzZXQgdG8gYSBkYXRhOiBV
Ukwgd2l0aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBkYXRhLCB0aGUgc3R5bGUgc2hlZXQgaXMgcHJv
Y2Vzc2VkIHN5bmNocm9ub3VzbHksIGluc3RlYWQgb2YgaW52b2tpbmcgdGhlIGFzeW5jaHJvbm91
cyBsb2FkZXIuCiAKLVBBU1MKK1BBU1MgMTAwcHgKK1BBU1MgMTEwcHgKK1BBU1MgMTIwcHgKK1BB
U1MgMTMwcHgKK1BBU1MgMTQwcHgKK1BBU1MgMTUwcHgKK1BBU1MgMTYwcHgKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRo
Lmh0bWwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2Fk
ZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1sCShyZXZpc2lvbiA2MjM2OCkNCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3Qt
cGF0aC5odG1sCSh3b3JraW5nIGNvcHkpDQpAQCAtMywyMCArMywzMSBAQA0KICAgICBVUkwgd2l0
aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBkYXRhLCB0aGUgc3R5bGUgc2hlZXQgaXMgcHJvY2Vzc2Vk
CiAgICAgc3luY2hyb25vdXNseSwgaW5zdGVhZCBvZiBpbnZva2luZyB0aGUgYXN5bmNocm9ub3Vz
IGxvYWRlci4KIDwvcD4KLTxwIGlkPSJyZXN1bHQiPjwvcD4KIDxzY3JpcHQ+Ci0gICAgdmFyIHJl
c3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKKyAgICB2YXIgdGVzdE9i
amVjdHMgPSBbCisgICAgICAgIHtyZXN1bHQ6dHJ1ZSwgIHNpemU6IjEwMHB4IiwgdXJsOiJkYXRh
OnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFltOWtlU0I3Wm05dWRDMXphWHBsT2lBeE1E
QndlSDA9In0sCisgICAgICAgIHtyZXN1bHQ6dHJ1ZSwgIHNpemU6IjExMHB4IiwgdXJsOiJkYXRh
OnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCAgICAgICAgICAgICAgICAgICAgICAgWW05
a2VTQjdabTl1ZEMxemFYcGxPaUF4TVRCd2VIMD0gICAgICAgICAgICAgICAgICAifSwKKyAgICAg
ICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTIwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNl
dD11dGYtODtiYXNlNjQsXG4gXHIgXHQgWW05ayBcdCBlU0I3IFxyIFptOXVkIFxuIFxuIEMxemFY
cCBcciBsT2lBeE0gXHQgakJ3ZUgwPSBcdCBcciBcbiJ9LAorICAgICAgICB7cmVzdWx0OnRydWUs
ICBzaXplOiIxMzBweCIsIHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCwl
NTkgJTZEICUzOSAlNkIgZVNCN1ptOXVkICUyMCAlMjAgJTIwIEMxemFYcGxPaUF4TXpCd2UgJTQ4
ICUzMCAlM0QifSwKKyAgICAgICAge3Jlc3VsdDpmYWxzZSwgc2l6ZToiMTQwcHgiLCB1cmw6ImRh
dGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsWW05ayQjZVNCN1ptIzl1ZChDMXphWHAp
bE9pQXhOREJ3ZUgwPSJ9LAorICAgICAgICB7cmVzdWx0OmZhbHNlLCBzaXplOiIxNTBweCIsIHVy
bDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxZbTlrZSUwMFNCN1olMjBtOXVk
QzF6XG5cdGFYcGxPI2lBeCUwM05UQnclZUgwPSJ9LAorICAgICAgICB7cmVzdWx0OmZhbHNlLCBz
aXplOiIxNjBweCIsIHVybDoiJTUwJTMwJTEwJTAwJTIwJTQwIn0KKyAgICBdOwogCiAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJT
dHlsZVNoZWV0RW5hYmxlZCh0cnVlKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
VXNlclN0eWxlU2hlZXRMb2NhdGlvbigiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2
NCxZbTlrZVNCN1ptOXVkQzF6YVhwbE9pQXhNREJ3ZUgwPSIpOwogCi0gICAgICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5i
b2R5KS5mb250U2l6ZSA9PSAiMTAwcHgiKQotICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9
ICJQQVNTIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9ICJG
QUlMIjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0T2JqZWN0cy5sZW5ndGg7IGkr
KykgeworICAgICAgICAgICAgdmFyIG9iaiA9IHRlc3RPYmplY3RzW2ldOworICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihvYmoudXJsKTsK
KworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisgICAgICAgICAgICB2YXIg
cmVzdWx0ID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5mb250U2l6ZSA9PSBvYmou
c2l6ZTsKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKChyZXN1bHQgPT0gb2JqLnJlc3VsdCA/
ICJQQVNTIiA6ICJGQUlMIikgKyAiICIgKyBvYmouc2l6ZSArICI8YnI+Iik7CisKKyAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oIiIpOwor
ICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiVGhpcyB0
ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBEdW1wUmVuZGVyVHJlZS4iOworICAgICAgICBkb2N1bWVu
dC53cml0ZSgiVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBEdW1wUmVuZGVyVHJlZS4iKTsK
IDwvc2NyaXB0PgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNjIzNjkpDQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkNCkBAIC0xLDMgKzEsMjIgQEANCisyMDEwLTA3LTAyICBQYXRyaWNrIEdhbnN0
ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBCYXNlNjREZWNvZGVQb2xpY3kgb3B0aW9uIGF0IGJhc2U2
NERlY29kZSgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDE1MTAKKworICAgICAgICBBZGQgYW4gb3B0aW9uIGZvciBpZ25vcmluZyB3aGl0ZXNwYWNl
IGluIGJhc2U2NCBkYXRhLgorICAgICAgICBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgZGVjb2Rpbmcg
ZGF0YSB1cmxzLgorCisgICAgICAgIEFsc28gZml4IHRoZSB1c2VyU3R5bGVTaGVldCBmYXN0IHBh
dGggZGVjb2RpbmcuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvQmFzZTY0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJhc2U2NEVuY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpiYXNlNjREZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
QmFzZTY0Lmg6CisKIDIwMTAtMDctMDIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYkNvcmUvcGFnZS9Q
YWdlLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24g
NjIzNjgpDQorKysgV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNTY4
LDIyICs1NjgsMTcgQEANCiAgICAgbV9kaWRMb2FkVXNlclN0eWxlU2hlZXQgPSBmYWxzZTsKICAg
ICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nKCk7CiAgICAgbV91c2VyU3R5bGVTaGVldE1vZGlm
aWNhdGlvblRpbWUgPSAwOwotICAgIAorCiAgICAgLy8gRGF0YSBVUkxzIHdpdGggYmFzZTY0LWVu
Y29kZWQgVVRGLTggc3R5bGUgc2hlZXRzIGFyZSBjb21tb24uIFdlIGNhbiBwcm9jZXNzIHRoZW0K
ICAgICAvLyBzeW5jaHJvbm91c2x5IGFuZCBhdm9pZCB1c2luZyBhIGxvYWRlci4gCiAgICAgaWYg
KHVybC5wcm90b2NvbElzKCJkYXRhIikgJiYgdXJsLnN0cmluZygpLnN0YXJ0c1dpdGgoImRhdGE6
dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsIikpIHsKICAgICAgICAgbV9kaWRMb2FkVXNl
clN0eWxlU2hlZXQgPSB0cnVlOwotICAgICAgICAKLSAgICAgICAgY29uc3QgdW5zaWduZWQgcHJl
Zml4TGVuZ3RoID0gMzU7Ci0gICAgICAgIFZlY3RvcjxjaGFyPiBlbmNvZGVkRGF0YSh1cmwuc3Ry
aW5nKCkubGVuZ3RoKCkgLSBwcmVmaXhMZW5ndGgpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSBwcmVmaXhMZW5ndGg7IGkgPCB1cmwuc3RyaW5nKCkubGVuZ3RoKCk7ICsraSkKLSAgICAgICAg
ICAgIGVuY29kZWREYXRhW2kgLSBwcmVmaXhMZW5ndGhdID0gc3RhdGljX2Nhc3Q8Y2hhcj4odXJs
LnN0cmluZygpW2ldKTsKIAogICAgICAgICBWZWN0b3I8Y2hhcj4gc3R5bGVTaGVldEFzVVRGODsK
LSAgICAgICAgaWYgKGJhc2U2NERlY29kZShlbmNvZGVkRGF0YSwgc3R5bGVTaGVldEFzVVRGOCkp
CisgICAgICAgIGlmIChiYXNlNjREZWNvZGUoZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHVybC5z
dHJpbmcoKS5zdWJzdHJpbmcoMzUpKSwgc3R5bGVTaGVldEFzVVRGOCwgSWdub3JlV2hpdGVzcGFj
ZSkpCiAgICAgICAgICAgICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nOjpmcm9tVVRGOChzdHls
ZVNoZWV0QXNVVEY4LmRhdGEoKSwgc3R5bGVTaGVldEFzVVRGOC5zaXplKCkpOwogICAgIH0KLSAg
ICAKKwogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9
IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgIGlmIChmcmFtZS0+ZG9j
dW1lbnQoKSkKICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5jbGVhclBhZ2VVc2VyU2hl
ZXQoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3BwDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAJKHJldmlzaW9uIDY0NDE2KQ0K
KysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAt
Miw2ICsyLDcgQEANCiAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEYXdpdCBBbGVtYXllaHUg
PGFkYXdpdEBrZGUub3JnPg0KICAgIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlh
a292IDxhcEB3ZWJraXQub3JnPg0KICAgIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorICAgQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sg
R2Fuc3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4NCiANCiAgICBUaGlzIHByb2dyYW0gaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KICAgIGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IChMR1BMKQ0KQEAgLTI1LDYgKzI2LDcgQEANCiANCiAjaW5jbHVkZSA8bGltaXRzLmg+DQogI2lu
Y2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4NCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+DQogDQogbmFtZXNwYWNlIFdlYkNvcmUgew0KIA0KQEAgLTcwLDcgKzcyLDcgQEAgdm9pZCBi
YXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQ0KICAgICAgICAgcmV0dXJuOw0KIA0K
ICAgICAvLyBJZiB0aGUgaW5wdXQgc3RyaW5nIGlzIHBhdGhvbG9naWNhbGx5IGxhcmdlLCBqdXN0
IHJldHVybiBub3RoaW5nLg0KLSAgICAvLyBOb3RlOiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRo
ZSAib3V0X2xlbiIgY29tcHV0YXRpb24gYmVsb3cuDQorICAgIC8vIE5vdGU6IEtlZXAgdGhpcyBp
biBzeW5jIHdpdGggdGhlICJvdXRMZW5ndGgiIGNvbXB1dGF0aW9uIGJlbG93Lg0KICAgICAvLyBS
YXRoZXIgdGhhbiBiZWluZyBwZXJmZWN0bHkgcHJlY2lzZSwgdGhpcyBpcyBhIGJpdCBjb25zZXJ2
YXRpdmUuDQogICAgIGNvbnN0IHVuc2lnbmVkIG1heElucHV0QnVmZmVyU2l6ZSA9IFVJTlRfTUFY
IC8gNzcgKiA3NiAvIDQgKiAzIC0gMjsNCiAgICAgaWYgKGxlbiA+IG1heElucHV0QnVmZmVyU2l6
ZSkNCkBAIC03OSwyMSArODEsMjEgQEAgdm9pZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0
YSwgdW5zaQ0KICAgICB1bnNpZ25lZCBzaWR4ID0gMDsNCiAgICAgdW5zaWduZWQgZGlkeCA9IDA7
DQogDQotICAgIHVuc2lnbmVkIG91dF9sZW4gPSAoKGxlbiArIDIpIC8gMykgKiA0Ow0KKyAgICB1
bnNpZ25lZCBvdXRMZW5ndGggPSAoKGxlbiArIDIpIC8gMykgKiA0Ow0KIA0KICAgICAvLyBEZWFs
IHdpdGggdGhlIDc2IGNoYXJhY3RlciBwZXIgbGluZSBsaW1pdCBzcGVjaWZpZWQgaW4gUkZDIDIw
NDUuDQotICAgIGluc2VydExGcyA9IChpbnNlcnRMRnMgJiYgb3V0X2xlbiA+IDc2KTsNCisgICAg
aW5zZXJ0TEZzID0gKGluc2VydExGcyAmJiBvdXRMZW5ndGggPiA3Nik7DQogICAgIGlmIChpbnNl
cnRMRnMpDQotICAgICAgICBvdXRfbGVuICs9ICgob3V0X2xlbiAtIDEpIC8gNzYpOw0KKyAgICAg
ICAgb3V0TGVuZ3RoICs9ICgob3V0TGVuZ3RoIC0gMSkgLyA3Nik7DQogDQogICAgIGludCBjb3Vu
dCA9IDA7DQotICAgIG91dC5ncm93KG91dF9sZW4pOw0KKyAgICBvdXQuZ3JvdyhvdXRMZW5ndGgp
Ow0KIA0KICAgICAvLyAzLWJ5dGUgdG8gNC1ieXRlIGNvbnZlcnNpb24gKyAwLTYzIHRvIGFzY2lp
IHByaW50YWJsZSBjb252ZXJzaW9uDQogICAgIGlmIChsZW4gPiAxKSB7DQogICAgICAgICB3aGls
ZSAoc2lkeCA8IGxlbiAtIDIpIHsNCiAgICAgICAgICAgICBpZiAoaW5zZXJ0TEZzKSB7DQotICAg
ICAgICAgICAgICAgIGlmIChjb3VudCAmJiAoY291bnQgJSA3NikgPT0gMCkNCisgICAgICAgICAg
ICAgICAgaWYgKGNvdW50ICYmICEoY291bnQgJSA3NikpDQogICAgICAgICAgICAgICAgICAgICBv
dXRbZGlkeCsrXSA9ICdcbic7DQogICAgICAgICAgICAgICAgIGNvdW50ICs9IDQ7DQogICAgICAg
ICAgICAgfQ0KQEAgLTEwNiw3ICsxMDgsNyBAQCB2b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFy
KiBkYXRhLCB1bnNpDQogICAgIH0NCiANCiAgICAgaWYgKHNpZHggPCBsZW4pIHsNCi0gICAgICAg
IGlmIChpbnNlcnRMRnMgJiYgKGNvdW50ID4gMCkgJiYgKGNvdW50ICUgNzYpID09IDApDQorICAg
ICAgICBpZiAoaW5zZXJ0TEZzICYmIChjb3VudCA+IDApICYmICEoY291bnQgJSA3NikpDQogICAg
ICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7DQogDQogICAgICAgICBvdXRbZGlkeCsrXSA9IGJh
c2U2NEVuY01hcFsoZGF0YVtzaWR4XSA+PiAyKSAmIDA3N107DQpAQCAtMTI0LDcgKzEyNiwyMSBA
QCB2b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpDQogICAgIH0NCiB9DQog
DQotYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiBpbiwgVmVjdG9yPGNoYXI+
JiBvdXQpDQorYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgU3RyaW5nJiBpbiwgVmVjdG9yPGNoYXI+
JiBvdXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpDQorew0KKyAgICBpZiAoaW4uaXNFbXB0
eSgpKSB7DQorICAgICAgICBvdXQuY2xlYXIoKTsNCisgICAgICAgIHJldHVybiB0cnVlOw0KKyAg
ICB9DQorDQorICAgIC8vIFRoZSBhc2NpaSgpIGZ1bmN0aW9uIHR1cm5zIGFueSBub24tQVNDSUkg
Y2hhcmFjdGVycyBpbnRvICI/IiBjaGFyYWN0ZXJzLA0KKyAgICAvLyB3aGljaCB5aWVsZHMgY29y
cmVjdCBiZWhhdmlvciBiZWNhdXNlIHRob3NlIGFyZSBpbGxlZ2FsIGluIGJhc2UgNjQuDQorICAg
IFZlY3RvcjxjaGFyPiBhc2NpaUNoYXJhY3RlcnMgPSBpbi5hc2NpaSgpOw0KKyAgICBhc2NpaUNo
YXJhY3RlcnMucmVtb3ZlTGFzdCgpOyAvLyBSZW1vdmUgdHJhaWxpbmcgJ1wwJy4NCisgICAgcmV0
dXJuIGJhc2U2NERlY29kZShhc2NpaUNoYXJhY3RlcnMsIG91dCwgcG9saWN5KTsNCit9DQorDQor
Ym9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiBpbiwgVmVjdG9yPGNoYXI+JiBv
dXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpDQogew0KICAgICBvdXQuY2xlYXIoKTsNCiAN
CkBAIC0xMzIsMzYgKzE0OCwzOSBAQCBib29sIGJhc2U2NERlY29kZShjb25zdCBWZWN0b3I8Y2hh
cj4mIGluDQogICAgIGlmIChpbi5zaXplKCkgPiBVSU5UX01BWCkNCiAgICAgICAgIHJldHVybiBm
YWxzZTsNCiANCi0gICAgcmV0dXJuIGJhc2U2NERlY29kZShpbi5kYXRhKCksIGluLnNpemUoKSwg
b3V0KTsNCisgICAgcmV0dXJuIGJhc2U2NERlY29kZShpbi5kYXRhKCksIGluLnNpemUoKSwgb3V0
LCBwb2xpY3kpOw0KIH0NCiANCi1ib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFyKiBkYXRhLCB1
bnNpZ25lZCBsZW4sIFZlY3RvcjxjaGFyPiYgb3V0KQ0KK2Jvb2wgYmFzZTY0RGVjb2RlKGNvbnN0
IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbiwgVmVjdG9yPGNoYXI+JiBvdXQsIEJhc2U2NERlY29k
ZVBvbGljeSBwb2xpY3kpDQogew0KICAgICBvdXQuY2xlYXIoKTsNCi0gICAgaWYgKGxlbiA9PSAw
KQ0KKyAgICBpZiAoIWxlbikNCiAgICAgICAgIHJldHVybiB0cnVlOw0KIA0KICAgICB3aGlsZSAo
bGVuICYmIGRhdGFbbGVuLTFdID09ICc9JykNCiAgICAgICAgIC0tbGVuOw0KIA0KICAgICBvdXQu
Z3JvdyhsZW4pOw0KKw0KKyAgICB1bnNpZ25lZCBvdXRMZW5ndGggPSAwOw0KICAgICBmb3IgKHVu
c2lnbmVkIGlkeCA9IDA7IGlkeCA8IGxlbjsgaWR4KyspIHsNCiAgICAgICAgIHVuc2lnbmVkIGNo
YXIgY2ggPSBkYXRhW2lkeF07DQotICAgICAgICBpZiAoKGNoID4gNDcgJiYgY2ggPCA1OCkgfHwg
KGNoID4gNjQgJiYgY2ggPCA5MSkgfHwgKGNoID4gOTYgJiYgY2ggPCAxMjMpIHx8IGNoID09ICcr
JyB8fCBjaCA9PSAnLycgfHwgY2ggPT0gJz0nKQ0KLSAgICAgICAgICAgIG91dFtpZHhdID0gYmFz
ZTY0RGVjTWFwW2NoXTsNCi0gICAgICAgIGVsc2UNCisgICAgICAgIGlmICgoY2ggPiA0NyAmJiBj
aCA8IDU4KSB8fCAoY2ggPiA2NCAmJiBjaCA8IDkxKSB8fCAoY2ggPiA5NiAmJiBjaCA8IDEyMykg
fHwgY2ggPT0gJysnIHx8IGNoID09ICcvJyB8fCBjaCA9PSAnPScpIHsNCisgICAgICAgICAgICBv
dXRbb3V0TGVuZ3RoXSA9IGJhc2U2NERlY01hcFtjaF07DQorICAgICAgICAgICAgKytvdXRMZW5n
dGg7DQorICAgICAgICB9IGVsc2UgaWYgKHBvbGljeSA9PSBGYWlsT25JbnZhbGlkQ2hhcmFjdGVy
IHx8IChwb2xpY3kgPT0gSWdub3JlV2hpdGVzcGFjZSAmJiAhaXNTcGFjZU9yTmV3bGluZShjaCkp
KQ0KICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgfQ0KIA0KICAgICAvLyA0LWJ5dGUg
dG8gMy1ieXRlIGNvbnZlcnNpb24NCi0gICAgdW5zaWduZWQgb3V0TGVuID0gbGVuIC0gKChsZW4g
KyAzKSAvIDQpOw0KLSAgICBpZiAoIW91dExlbiB8fCAoKG91dExlbiArIDIpIC8gMykgKiA0IDwg
bGVuKQ0KKyAgICBvdXRMZW5ndGggLT0gKG91dExlbmd0aCArIDMpIC8gNDsNCisgICAgaWYgKCFv
dXRMZW5ndGgpDQogICAgICAgICByZXR1cm4gZmFsc2U7DQogDQogICAgIHVuc2lnbmVkIHNpZHgg
PSAwOw0KICAgICB1bnNpZ25lZCBkaWR4ID0gMDsNCi0gICAgaWYgKG91dExlbiA+IDEpIHsNCi0g
ICAgICAgIHdoaWxlIChkaWR4IDwgb3V0TGVuIC0gMikgew0KKyAgICBpZiAob3V0TGVuZ3RoID4g
MSkgew0KKyAgICAgICAgd2hpbGUgKGRpZHggPCBvdXRMZW5ndGggLSAyKSB7DQogICAgICAgICAg
ICAgb3V0W2RpZHhdID0gKCgob3V0W3NpZHhdIDw8IDIpICYgMjU1KSB8ICgob3V0W3NpZHggKyAx
XSA+PiA0KSAmIDAwMykpOw0KICAgICAgICAgICAgIG91dFtkaWR4ICsgMV0gPSAoKChvdXRbc2lk
eCArIDFdIDw8IDQpICYgMjU1KSB8ICgob3V0W3NpZHggKyAyXSA+PiAyKSAmIDAxNykpOw0KICAg
ICAgICAgICAgIG91dFtkaWR4ICsgMl0gPSAoKChvdXRbc2lkeCArIDJdIDw8IDYpICYgMjU1KSB8
IChvdXRbc2lkeCArIDNdICYgMDc3KSk7DQpAQCAtMTcwLDE0ICsxODksMTQgQEAgYm9vbCBiYXNl
NjREZWNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQ0KICAgICAgICAgfQ0KICAgICB9DQogDQot
ICAgIGlmIChkaWR4IDwgb3V0TGVuKQ0KKyAgICBpZiAoZGlkeCA8IG91dExlbmd0aCkNCiAgICAg
ICAgIG91dFtkaWR4XSA9ICgoKG91dFtzaWR4XSA8PCAyKSAmIDI1NSkgfCAoKG91dFtzaWR4ICsg
MV0gPj4gNCkgJiAwMDMpKTsNCiANCi0gICAgaWYgKCsrZGlkeCA8IG91dExlbikNCisgICAgaWYg
KCsrZGlkeCA8IG91dExlbmd0aCkNCiAgICAgICAgIG91dFtkaWR4XSA9ICgoKG91dFtzaWR4ICsg
MV0gPDwgNCkgJiAyNTUpIHwgKChvdXRbc2lkeCArIDJdID4+IDIpICYgMDE3KSk7DQogDQotICAg
IGlmIChvdXRMZW4gPCBvdXQuc2l6ZSgpKQ0KLSAgICAgICAgb3V0LnNocmluayhvdXRMZW4pOw0K
KyAgICBpZiAob3V0TGVuZ3RoIDwgb3V0LnNpemUoKSkNCisgICAgICAgIG91dC5zaHJpbmsob3V0
TGVuZ3RoKTsNCiANCiAgICAgcmV0dXJuIHRydWU7DQogfQ0KSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vdGV4dC9CYXNlNjQuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9C
YXNlNjQuaAkocmV2aXNpb24gNjIzNjgpDQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2
NC5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMSw1ICsxLDYgQEANCiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQHdlYmtpdC5vcmcpCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiA8YXBAd2Via2l0Lm9yZz4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBQYXRyaWNrIEdhbnN0ZXJlciA8cGFyb2dhQHBhcm9nYS5jb20+CiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDEyICszMSwxNiBAQA0KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBTdHJpbmc7CisKK2VudW0gQmFzZTY0RGVjb2RlUG9saWN5IHsg
RmFpbE9uSW52YWxpZENoYXJhY3RlciwgSWdub3JlV2hpdGVzcGFjZSwgSWdub3JlSW52YWxpZENo
YXJhY3RlcnMgfTsKKwogdm9pZCBiYXNlNjRFbmNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiwgVmVj
dG9yPGNoYXI+JiwgYm9vbCBpbnNlcnRMRnMgPSBmYWxzZSk7CiB2b2lkIGJhc2U2NEVuY29kZShj
b25zdCBjaGFyKiwgdW5zaWduZWQsIFZlY3RvcjxjaGFyPiYsIGJvb2wgaW5zZXJ0TEZzID0gZmFs
c2UpOwogCi0vLyB0aGlzIGRlY29kZXIgaXMgbm90IGdlbmVyYWwgcHVycG9zZSAtIGl0IHJldHVy
bnMgYW4gZXJyb3IgaWYgaXQgZW5jb3VudGVycyBhIGxpbmVmZWVkLCBhcyBuZWVkZWQgZm9yIHdp
bmRvdy5hdG9iCi1ib29sIGJhc2U2NERlY29kZShjb25zdCBWZWN0b3I8Y2hhcj4mLCBWZWN0b3I8
Y2hhcj4mKTsKLWJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgVmVjdG9y
PGNoYXI+Jik7Citib29sIGJhc2U2NERlY29kZShjb25zdCBTdHJpbmcmLCBWZWN0b3I8Y2hhcj4m
LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5ID0gRmFpbE9uSW52YWxpZENoYXJhY3Rlcik7Citi
b29sIGJhc2U2NERlY29kZShjb25zdCBWZWN0b3I8Y2hhcj4mLCBWZWN0b3I8Y2hhcj4mLCBCYXNl
NjREZWNvZGVQb2xpY3kgcG9saWN5ID0gRmFpbE9uSW52YWxpZENoYXJhY3Rlcik7Citib29sIGJh
c2U2NERlY29kZShjb25zdCBjaGFyKiwgdW5zaWduZWQsIFZlY3RvcjxjaGFyPiYsIEJhc2U2NERl
Y29kZVBvbGljeSBwb2xpY3kgPSBGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKTsKIAogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63844</attachid>
            <date>2010-08-08 09:51:32 -0700</date>
            <delta_ts>2010-08-08 10:00:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41510.patch</filename>
            <type>text/plain</type>
            <size>16228</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDk0OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDgtMDggIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBh
cm9nYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIEJhc2U2NERlY29kZVBvbGljeSBvcHRpb24gYXQgYmFzZTY0RGVjb2RlKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTEwCisKKyAgICAg
ICAgQWRkIGFuIG9wdGlvbiBmb3IgaWdub3JpbmcgY2hhcmFjdGVycyBpbiBiYXNlNjQgZGF0YS4K
KyAgICAgICAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGRlY29kaW5nIGRhdGEgdXJscy4KKworICAg
ICAgICBBbHNvIGFkZCBhbiBvdmVybG9hZCB0byBkZWNvZGUgV2ViQ29yZTo6U3RyaW5nIGRpcmVj
dGx5LgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjphdG9iKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL3RleHQvQmFzZTY0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJhc2U2NEVuY29kZSk6
CisgICAgICAgIChXZWJDb3JlOjpiYXNlNjREZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6YmFz
ZTY0RGVjb2RlSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvQmFzZTY0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjopOgorCiAyMDEwLTA4LTA4ICBEaXJrIFNjaHVsemUgIDxrcml0QHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTmlrb2xhcyBaaW1tZXJtYW5uLgpJbmRl
eDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDY0OTE0KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk1OSwxMSArOTU5LDggQEAgU3RyaW5nIERPTVdpbmRv
dzo6YXRvYihjb25zdCBTdHJpbmcmIGVuYwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAg
fQogCi0gICAgVmVjdG9yPGNoYXI+IGluOwotICAgIGluLmFwcGVuZChlbmNvZGVkU3RyaW5nLmNo
YXJhY3RlcnMoKSwgZW5jb2RlZFN0cmluZy5sZW5ndGgoKSk7CiAgICAgVmVjdG9yPGNoYXI+IG91
dDsKLQotICAgIGlmICghYmFzZTY0RGVjb2RlKGluLCBvdXQpKSB7CisgICAgaWYgKCFiYXNlNjRE
ZWNvZGUoZW5jb2RlZFN0cmluZywgb3V0LCBGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKSkgewogICAg
ICAgICBlYyA9IElOVkFMSURfQ0hBUkFDVEVSX0VSUjsKICAgICAgICAgcmV0dXJuIFN0cmluZygp
OwogICAgIH0KSW5kZXg6IFdlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlzaW9uIDY0OTE0KQorKysgV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTUsMjIgKzYxNSwxNyBAQCB2b2lkIFBhZ2U6OnVzZXJT
dHlsZVNoZWV0TG9jYXRpb25DaGFuZ2VkCiAgICAgbV9kaWRMb2FkVXNlclN0eWxlU2hlZXQgPSBm
YWxzZTsKICAgICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nKCk7CiAgICAgbV91c2VyU3R5bGVT
aGVldE1vZGlmaWNhdGlvblRpbWUgPSAwOwotICAgIAorCiAgICAgLy8gRGF0YSBVUkxzIHdpdGgg
YmFzZTY0LWVuY29kZWQgVVRGLTggc3R5bGUgc2hlZXRzIGFyZSBjb21tb24uIFdlIGNhbiBwcm9j
ZXNzIHRoZW0KICAgICAvLyBzeW5jaHJvbm91c2x5IGFuZCBhdm9pZCB1c2luZyBhIGxvYWRlci4g
CiAgICAgaWYgKHVybC5wcm90b2NvbElzKCJkYXRhIikgJiYgdXJsLnN0cmluZygpLnN0YXJ0c1dp
dGgoImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsIikpIHsKICAgICAgICAgbV9k
aWRMb2FkVXNlclN0eWxlU2hlZXQgPSB0cnVlOwotICAgICAgICAKLSAgICAgICAgY29uc3QgdW5z
aWduZWQgcHJlZml4TGVuZ3RoID0gMzU7Ci0gICAgICAgIFZlY3RvcjxjaGFyPiBlbmNvZGVkRGF0
YSh1cmwuc3RyaW5nKCkubGVuZ3RoKCkgLSBwcmVmaXhMZW5ndGgpOwotICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSBwcmVmaXhMZW5ndGg7IGkgPCB1cmwuc3RyaW5nKCkubGVuZ3RoKCk7ICsraSkK
LSAgICAgICAgICAgIGVuY29kZWREYXRhW2kgLSBwcmVmaXhMZW5ndGhdID0gc3RhdGljX2Nhc3Q8
Y2hhcj4odXJsLnN0cmluZygpW2ldKTsKIAogICAgICAgICBWZWN0b3I8Y2hhcj4gc3R5bGVTaGVl
dEFzVVRGODsKLSAgICAgICAgaWYgKGJhc2U2NERlY29kZShlbmNvZGVkRGF0YSwgc3R5bGVTaGVl
dEFzVVRGOCkpCisgICAgICAgIGlmIChiYXNlNjREZWNvZGUoZGVjb2RlVVJMRXNjYXBlU2VxdWVu
Y2VzKHVybC5zdHJpbmcoKS5zdWJzdHJpbmcoMzUpKSwgc3R5bGVTaGVldEFzVVRGOCwgSWdub3Jl
V2hpdGVzcGFjZSkpCiAgICAgICAgICAgICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nOjpmcm9t
VVRGOChzdHlsZVNoZWV0QXNVVEY4LmRhdGEoKSwgc3R5bGVTaGVldEFzVVRGOC5zaXplKCkpOwog
ICAgIH0KLSAgICAKKwogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7IGZyYW1l
OyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgIGlmIChm
cmFtZS0+ZG9jdW1lbnQoKSkKICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5jbGVhclBh
Z2VVc2VyU2hlZXQoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3BwCShyZXZpc2lvbiA2
NDkxNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yLDYgKzIsNyBAQAogICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDEgRGF3aXQgQWxlbWF5
ZWh1IDxhZGF3aXRAa2RlLm9yZz4KICAgIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1
cnlha292IDxhcEB3ZWJraXQub3JnPgogICAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgIENvcHlyaWdodCAoQykgMjAxMCBQYXRyaWNr
IEdhbnN0ZXJlciA8cGFyb2dhQHBhcm9nYS5jb20+CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAo
TEdQTCkKQEAgLTI1LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUg
PHd0Zi9TdHJpbmdFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03MCw3ICs3Miw3IEBAIHZvaWQgYmFzZTY0RW5jb2Rl
KGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgdGhl
IGlucHV0IHN0cmluZyBpcyBwYXRob2xvZ2ljYWxseSBsYXJnZSwganVzdCByZXR1cm4gbm90aGlu
Zy4KLSAgICAvLyBOb3RlOiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSAib3V0X2xlbiIgY29t
cHV0YXRpb24gYmVsb3cuCisgICAgLy8gTm90ZTogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB0aGUg
Im91dExlbmd0aCIgY29tcHV0YXRpb24gYmVsb3cuCiAgICAgLy8gUmF0aGVyIHRoYW4gYmVpbmcg
cGVyZmVjdGx5IHByZWNpc2UsIHRoaXMgaXMgYSBiaXQgY29uc2VydmF0aXZlLgogICAgIGNvbnN0
IHVuc2lnbmVkIG1heElucHV0QnVmZmVyU2l6ZSA9IFVJTlRfTUFYIC8gNzcgKiA3NiAvIDQgKiAz
IC0gMjsKICAgICBpZiAobGVuID4gbWF4SW5wdXRCdWZmZXJTaXplKQpAQCAtNzksMjEgKzgxLDIx
IEBAIHZvaWQgYmFzZTY0RW5jb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kKICAgICB1bnNpZ25l
ZCBzaWR4ID0gMDsKICAgICB1bnNpZ25lZCBkaWR4ID0gMDsKIAotICAgIHVuc2lnbmVkIG91dF9s
ZW4gPSAoKGxlbiArIDIpIC8gMykgKiA0OworICAgIHVuc2lnbmVkIG91dExlbmd0aCA9ICgobGVu
ICsgMikgLyAzKSAqIDQ7CiAKICAgICAvLyBEZWFsIHdpdGggdGhlIDc2IGNoYXJhY3RlciBwZXIg
bGluZSBsaW1pdCBzcGVjaWZpZWQgaW4gUkZDIDIwNDUuCi0gICAgaW5zZXJ0TEZzID0gKGluc2Vy
dExGcyAmJiBvdXRfbGVuID4gNzYpOworICAgIGluc2VydExGcyA9IChpbnNlcnRMRnMgJiYgb3V0
TGVuZ3RoID4gNzYpOwogICAgIGlmIChpbnNlcnRMRnMpCi0gICAgICAgIG91dF9sZW4gKz0gKChv
dXRfbGVuIC0gMSkgLyA3Nik7CisgICAgICAgIG91dExlbmd0aCArPSAoKG91dExlbmd0aCAtIDEp
IC8gNzYpOwogCiAgICAgaW50IGNvdW50ID0gMDsKLSAgICBvdXQuZ3JvdyhvdXRfbGVuKTsKKyAg
ICBvdXQuZ3JvdyhvdXRMZW5ndGgpOwogCiAgICAgLy8gMy1ieXRlIHRvIDQtYnl0ZSBjb252ZXJz
aW9uICsgMC02MyB0byBhc2NpaSBwcmludGFibGUgY29udmVyc2lvbgogICAgIGlmIChsZW4gPiAx
KSB7CiAgICAgICAgIHdoaWxlIChzaWR4IDwgbGVuIC0gMikgewogICAgICAgICAgICAgaWYgKGlu
c2VydExGcykgewotICAgICAgICAgICAgICAgIGlmIChjb3VudCAmJiAoY291bnQgJSA3NikgPT0g
MCkKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgJiYgIShjb3VudCAlIDc2KSkKICAgICAgICAg
ICAgICAgICAgICAgb3V0W2RpZHgrK10gPSAnXG4nOwogICAgICAgICAgICAgICAgIGNvdW50ICs9
IDQ7CiAgICAgICAgICAgICB9CkBAIC0xMDYsNyArMTA4LDcgQEAgdm9pZCBiYXNlNjRFbmNvZGUo
Y29uc3QgY2hhciogZGF0YSwgdW5zaQogICAgIH0KIAogICAgIGlmIChzaWR4IDwgbGVuKSB7Ci0g
ICAgICAgIGlmIChpbnNlcnRMRnMgJiYgKGNvdW50ID4gMCkgJiYgKGNvdW50ICUgNzYpID09IDAp
CisgICAgICAgIGlmIChpbnNlcnRMRnMgJiYgKGNvdW50ID4gMCkgJiYgIShjb3VudCAlIDc2KSkK
ICAgICAgICAgICAgb3V0W2RpZHgrK10gPSAnXG4nOwogCiAgICAgICAgIG91dFtkaWR4KytdID0g
YmFzZTY0RW5jTWFwWyhkYXRhW3NpZHhdID4+IDIpICYgMDc3XTsKQEAgLTEyNCw3ICsxMjYsNyBA
QCB2b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpCiAgICAgfQogfQogCi1i
b29sIGJhc2U2NERlY29kZShjb25zdCBWZWN0b3I8Y2hhcj4mIGluLCBWZWN0b3I8Y2hhcj4mIG91
dCkKK2Jvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4sIFZlY3RvcjxjaGFy
PiYgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5KQogewogICAgIG91dC5jbGVhcigpOwog
CkBAIC0xMzIsMzYgKzEzNCw0OSBAQCBib29sIGJhc2U2NERlY29kZShjb25zdCBWZWN0b3I8Y2hh
cj4mIGluCiAgICAgaWYgKGluLnNpemUoKSA+IFVJTlRfTUFYKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICByZXR1cm4gYmFzZTY0RGVjb2RlKGluLmRhdGEoKSwgaW4uc2l6ZSgpLCBvdXQp
OworICAgIHJldHVybiBiYXNlNjREZWNvZGUoaW4uZGF0YSgpLCBpbi5zaXplKCksIG91dCwgcG9s
aWN5KTsKIH0KIAotYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQg
bGVuLCBWZWN0b3I8Y2hhcj4mIG91dCkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdGF0aWMgaW5s
aW5lIGJvb2wgYmFzZTY0RGVjb2RlSW50ZXJuYWwoY29uc3QgVCogZGF0YSwgdW5zaWduZWQgbGVu
LCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2RlUG9saWN5IHBvbGljeSkKIHsKICAgICBv
dXQuY2xlYXIoKTsKLSAgICBpZiAobGVuID09IDApCisgICAgaWYgKCFsZW4pCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgd2hpbGUgKGxlbiAmJiBkYXRhW2xlbi0xXSA9PSAnPScpCi0gICAg
ICAgIC0tbGVuOwotCiAgICAgb3V0Lmdyb3cobGVuKTsKKworICAgIGJvb2wgc2F3RXF1YWxzU2ln
biA9IGZhbHNlOworICAgIHVuc2lnbmVkIG91dExlbmd0aCA9IDA7CiAgICAgZm9yICh1bnNpZ25l
ZCBpZHggPSAwOyBpZHggPCBsZW47IGlkeCsrKSB7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgY2gg
PSBkYXRhW2lkeF07Ci0gICAgICAgIGlmICgoY2ggPiA0NyAmJiBjaCA8IDU4KSB8fCAoY2ggPiA2
NCAmJiBjaCA8IDkxKSB8fCAoY2ggPiA5NiAmJiBjaCA8IDEyMykgfHwgY2ggPT0gJysnIHx8IGNo
ID09ICcvJyB8fCBjaCA9PSAnPScpCi0gICAgICAgICAgICBvdXRbaWR4XSA9IGJhc2U2NERlY01h
cFtjaF07Ci0gICAgICAgIGVsc2UKKyAgICAgICAgdW5zaWduZWQgY2ggPSBkYXRhW2lkeF07Cisg
ICAgICAgIGlmIChjaCA9PSAnPScpCisgICAgICAgICAgICBzYXdFcXVhbHNTaWduID0gdHJ1ZTsK
KyAgICAgICAgZWxzZSBpZiAoKCcwJyA8PSBjaCAmJiBjaCA8PSAnOScpIHx8ICgnQScgPD0gY2gg
JiYgY2ggPD0gJ1onKSB8fCAoJ2EnIDw9IGNoICYmIGNoIDw9ICd6JykgfHwgY2ggPT0gJysnIHx8
IGNoID09ICcvJykgeworICAgICAgICAgICAgaWYgKHNhd0VxdWFsc1NpZ24pCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgb3V0W291dExlbmd0aF0gPSBiYXNlNjRE
ZWNNYXBbY2hdOworICAgICAgICAgICAgb3V0TGVuZ3RoKys7CisgICAgICAgIH0gZWxzZSBpZiAo
cG9saWN5ID09IEZhaWxPbkludmFsaWRDaGFyYWN0ZXIgfHwgKHBvbGljeSA9PSBJZ25vcmVXaGl0
ZXNwYWNlICYmICFpc1NwYWNlT3JOZXdsaW5lKGNoKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCisgICAgaWYgKCFvdXRMZW5ndGgpCisgICAgICAgIHJldHVybiAhc2F3RXF1
YWxzU2lnbjsKKworICAgIC8vIFZhbGlkIGRhdGEgaXMgKG4gKiA0ICsgWzAsMiwzXSkgY2hhcmFj
dGVycyBsb25nLgorICAgIGlmICgob3V0TGVuZ3RoICUgNCkgPT0gMSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIAogICAgIC8vIDQtYnl0ZSB0byAzLWJ5dGUgY29udmVyc2lvbgotICAgIHVu
c2lnbmVkIG91dExlbiA9IGxlbiAtICgobGVuICsgMykgLyA0KTsKLSAgICBpZiAoIW91dExlbiB8
fCAoKG91dExlbiArIDIpIC8gMykgKiA0IDwgbGVuKQorICAgIG91dExlbmd0aCAtPSAob3V0TGVu
Z3RoICsgMykgLyA0OworICAgIGlmICghb3V0TGVuZ3RoKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICB1bnNpZ25lZCBzaWR4ID0gMDsKICAgICB1bnNpZ25lZCBkaWR4ID0gMDsKLSAgICBp
ZiAob3V0TGVuID4gMSkgewotICAgICAgICB3aGlsZSAoZGlkeCA8IG91dExlbiAtIDIpIHsKKyAg
ICBpZiAob3V0TGVuZ3RoID4gMSkgeworICAgICAgICB3aGlsZSAoZGlkeCA8IG91dExlbmd0aCAt
IDIpIHsKICAgICAgICAgICAgIG91dFtkaWR4XSA9ICgoKG91dFtzaWR4XSA8PCAyKSAmIDI1NSkg
fCAoKG91dFtzaWR4ICsgMV0gPj4gNCkgJiAwMDMpKTsKICAgICAgICAgICAgIG91dFtkaWR4ICsg
MV0gPSAoKChvdXRbc2lkeCArIDFdIDw8IDQpICYgMjU1KSB8ICgob3V0W3NpZHggKyAyXSA+PiAy
KSAmIDAxNykpOwogICAgICAgICAgICAgb3V0W2RpZHggKyAyXSA9ICgoKG91dFtzaWR4ICsgMl0g
PDwgNikgJiAyNTUpIHwgKG91dFtzaWR4ICsgM10gJiAwNzcpKTsKQEAgLTE3MCwxNiArMTg1LDI2
IEBAIGJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kKICAgICAgICAgfQog
ICAgIH0KIAotICAgIGlmIChkaWR4IDwgb3V0TGVuKQorICAgIGlmIChkaWR4IDwgb3V0TGVuZ3Ro
KQogICAgICAgICBvdXRbZGlkeF0gPSAoKChvdXRbc2lkeF0gPDwgMikgJiAyNTUpIHwgKChvdXRb
c2lkeCArIDFdID4+IDQpICYgMDAzKSk7CiAKLSAgICBpZiAoKytkaWR4IDwgb3V0TGVuKQorICAg
IGlmICgrK2RpZHggPCBvdXRMZW5ndGgpCiAgICAgICAgIG91dFtkaWR4XSA9ICgoKG91dFtzaWR4
ICsgMV0gPDwgNCkgJiAyNTUpIHwgKChvdXRbc2lkeCArIDJdID4+IDIpICYgMDE3KSk7CiAKLSAg
ICBpZiAob3V0TGVuIDwgb3V0LnNpemUoKSkKLSAgICAgICAgb3V0LnNocmluayhvdXRMZW4pOwor
ICAgIGlmIChvdXRMZW5ndGggPCBvdXQuc2l6ZSgpKQorICAgICAgICBvdXQuc2hyaW5rKG91dExl
bmd0aCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBiYXNlNjREZWNvZGUoY29uc3Qg
Y2hhciogZGF0YSwgdW5zaWduZWQgbGVuLCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2Rl
UG9saWN5IHBvbGljeSkKK3sKKyAgICByZXR1cm4gYmFzZTY0RGVjb2RlSW50ZXJuYWw8Y2hhcj4o
ZGF0YSwgbGVuLCBvdXQsIHBvbGljeSk7CiB9CisKK2Jvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFN0
cmluZyYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5KQor
eworICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRlcm5hbDxVQ2hhcj4oaW4uY2hhcmFjdGVycygp
LCBpbi5sZW5ndGgoKSwgb3V0LCBwb2xpY3kpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3RleHQvQmFzZTY0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5oCShyZXZpc2lvbiA2NDkxNCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vdGV4dC9CYXNlNjQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAd2Via2l0Lm9y
ZykKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEB3ZWJraXQu
b3JnPgorICogQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFy
b2dhLmNvbT4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMTIgKzMxLDE2
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU3RyaW5nOworCitlbnVtIEJhc2U2
NERlY29kZVBvbGljeSB7IEZhaWxPbkludmFsaWRDaGFyYWN0ZXIsIElnbm9yZVdoaXRlc3BhY2Us
IElnbm9yZUludmFsaWRDaGFyYWN0ZXJzIH07CisKIHZvaWQgYmFzZTY0RW5jb2RlKGNvbnN0IFZl
Y3RvcjxjaGFyPiYsIFZlY3RvcjxjaGFyPiYsIGJvb2wgaW5zZXJ0TEZzID0gZmFsc2UpOwogdm9p
ZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBWZWN0b3I8Y2hhcj4mLCBib29s
IGluc2VydExGcyA9IGZhbHNlKTsKIAotLy8gdGhpcyBkZWNvZGVyIGlzIG5vdCBnZW5lcmFsIHB1
cnBvc2UgLSBpdCByZXR1cm5zIGFuIGVycm9yIGlmIGl0IGVuY291bnRlcnMgYSBsaW5lZmVlZCwg
YXMgbmVlZGVkIGZvciB3aW5kb3cuYXRvYgotYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9y
PGNoYXI+JiwgVmVjdG9yPGNoYXI+Jik7Ci1ib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFyKiwg
dW5zaWduZWQsIFZlY3RvcjxjaGFyPiYpOworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgU3RyaW5n
JiwgVmVjdG9yPGNoYXI+JiwgQmFzZTY0RGVjb2RlUG9saWN5IHBvbGljeSA9IEZhaWxPbkludmFs
aWRDaGFyYWN0ZXIpOworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiwgVmVj
dG9yPGNoYXI+JiwgQmFzZTY0RGVjb2RlUG9saWN5IHBvbGljeSA9IEZhaWxPbkludmFsaWRDaGFy
YWN0ZXIpOworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBWZWN0b3I8
Y2hhcj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5ID0gRmFpbE9uSW52YWxpZENoYXJhY3Rl
cik7CiAKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjQ5NDkpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wOC0wOCAgUGF0cmlj
ayBHYW5zdGVyZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQmFzZTY0RGVjb2RlUG9saWN5IG9wdGlvbiBh
dCBiYXNlNjREZWNvZGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDE1MTAKKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0
aC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXIt
c3R5bGVzaGVldC1mYXN0LXBhdGguaHRtbDogQWRkZWQgYWRkaXRpb25hbCBkYXRhIHVybHMgdGVz
dHMuCisKIDIwMTAtMDgtMDggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvYXRvYi1idG9hLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjQ5
MTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMzUsOCArMzUsMTMgQEAgUEFTUyB3aW5kb3cuYXRvYigi0YLQ
tdGB0YIiKSB0aHJldyBleGNlcAogUEFTUyB3aW5kb3cuYXRvYigieiIpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUuCiBQQVNTIHdp
bmRvdy5hdG9iKCJ6eiIpIGlzICLDjyIKIFBBU1Mgd2luZG93LmF0b2IoInp6eiIpIGlzICLDjzwi
CitQQVNTIHdpbmRvdy5hdG9iKCJ6eno9IikgaXMgIsOPPCIKK1BBU1Mgd2luZG93LmF0b2IoInp6
ej09IikgaXMgIsOPPCIKK1BBU1Mgd2luZG93LmF0b2IoInp6ej09PSIpIGlzICLDjzwiCitQQVNT
IHdpbmRvdy5hdG9iKCJ6eno9PT09IikgaXMgIsOPPCIKIFBBU1Mgd2luZG93LmF0b2IoInp6enoi
KSBpcyAiw488w7MiCiBQQVNTIHdpbmRvdy5hdG9iKCJ6enp6eiIpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUuCitQQVNTIHdpbmRv
dy5hdG9iKCJ6PXp6IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0NIQVJBQ1RFUl9F
UlI6IERPTSBFeGNlcHRpb24gNS4KIFBBU1Mgd2luZG93LmF0b2IoIj0iKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOVkFMSURfQ0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgogUEFTUyB3
aW5kb3cuYXRvYigiPT0iKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQ0hBUkFDVEVS
X0VSUjogRE9NIEV4Y2VwdGlvbiA1LgogUEFTUyB3aW5kb3cuYXRvYigiPT09IikgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTlZBTElEX0NIQVJBQ1RFUl9FUlI6IERPTSBFeGNlcHRpb24gNS4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWwJKHJldmlzaW9u
IDY0OTE0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC00OCw4ICs0OCwxMyBAQCBzaG91bGRUaHJvdygnd2luZG93LmF0b2Io
ItGC0LXRgdGCIiknKTsKIHNob3VsZFRocm93KCd3aW5kb3cuYXRvYigieiIpJyk7CiBzaG91bGRC
ZSgnd2luZG93LmF0b2IoInp6IiknLCAnIsOPIicpOwogc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6
enoiKScsICciw49cdTAwM0MiJyk7CitzaG91bGRCZSgnd2luZG93LmF0b2IoInp6ej0iKScsICci
w49cdTAwM0MiJyk7CitzaG91bGRCZSgnd2luZG93LmF0b2IoInp6ej09IiknLCAnIsOPXHUwMDND
IicpOworc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6eno9PT0iKScsICciw49cdTAwM0MiJyk7Citz
aG91bGRCZSgnd2luZG93LmF0b2IoInp6ej09PT0iKScsICciw49cdTAwM0MiJyk7CiBzaG91bGRC
ZSgnd2luZG93LmF0b2IoInp6enoiKScsICciw49cdTAwM0PDsyInKTsKIHNob3VsZFRocm93KCd3
aW5kb3cuYXRvYigienp6enoiKScpOworc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCJ6PXp6Iikn
KTsKIHNob3VsZFRocm93KCd3aW5kb3cuYXRvYigiPSIpJyk7CiBzaG91bGRUaHJvdygnd2luZG93
LmF0b2IoIj09IiknKTsKIHNob3VsZFRocm93KCd3aW5kb3cuYXRvYigiPT09IiknKTsKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFz
dC1wYXRoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDY0OTE0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3Vz
ZXItc3R5bGVzaGVldC1mYXN0LXBhdGgtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsOSBAQAogVGhpcyB0ZXN0cyB0aGF0IHdoZW4gdGhlIHVzZXIgc3R5bGUgc2hlZXQgbG9j
YXRpb24gaXMgc2V0IHRvIGEgZGF0YTogVVJMIHdpdGggYmFzZTY0LWVuY29kZWQgVVRGLTggZGF0
YSwgdGhlIHN0eWxlIHNoZWV0IGlzIHByb2Nlc3NlZCBzeW5jaHJvbm91c2x5LCBpbnN0ZWFkIG9m
IGludm9raW5nIHRoZSBhc3luY2hyb25vdXMgbG9hZGVyLgogCi1QQVNTCitQQVNTIDEwMHB4CitQ
QVNTIDExMHB4CitQQVNTIDEyMHB4CitQQVNTIDEzMHB4CitQQVNTIDE0MHB4CitQQVNTIDE1MHB4
CitQQVNTIDE2MHB4CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIv
dXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLmh0bWwJ
KHJldmlzaW9uIDY0OTE0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVy
L3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywyMCAr
MywzMSBAQAogICAgIFVSTCB3aXRoIGJhc2U2NC1lbmNvZGVkIFVURi04IGRhdGEsIHRoZSBzdHls
ZSBzaGVldCBpcyBwcm9jZXNzZWQKICAgICBzeW5jaHJvbm91c2x5LCBpbnN0ZWFkIG9mIGludm9r
aW5nIHRoZSBhc3luY2hyb25vdXMgbG9hZGVyLgogPC9wPgotPHAgaWQ9InJlc3VsdCI+PC9wPgog
PHNjcmlwdD4KLSAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3Vs
dCIpOworICAgIHZhciB0ZXN0T2JqZWN0cyA9IFsKKyAgICAgICAge3Jlc3VsdDp0cnVlLCAgc2l6
ZToiMTAwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsWW05a2VT
QjdabTl1ZEMxemFYcGxPaUF4TURCd2VIMD0ifSwKKyAgICAgICAge3Jlc3VsdDp0cnVlLCAgc2l6
ZToiMTEwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsICAgICAg
ICAgICAgICAgICAgICAgICBZbTlrZVNCN1ptOXVkQzF6YVhwbE9pQXhNVEJ3ZUgwPSAgICAgICAg
ICAgICAgICAgICJ9LAorICAgICAgICB7cmVzdWx0OnRydWUsICBzaXplOiIxMjBweCIsIHVybDoi
ZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxcbiBcciBcdCBZbTlrIFx0IGVTQjcg
XHIgWm05dWQgXG4gXG4gQzF6YVhwIFxyIGxPaUF4TSBcdCBqQndlSDA9IFx0IFxyIFxuIn0sCisg
ICAgICAgIHtyZXN1bHQ6dHJ1ZSwgIHNpemU6IjEzMHB4IiwgdXJsOiJkYXRhOnRleHQvY3NzO2No
YXJzZXQ9dXRmLTg7YmFzZTY0LFx1MDA1OSBcdTAwNkQgXHUwMDM5IFx1MDA2QiBlU0I3Wm05dWQg
QzF6YVhwbE9pQXhNekJ3ZSBcdTAwNDggXHUwMDMwIFx1MDAzRCJ9LAorICAgICAgICB7cmVzdWx0
OmZhbHNlLCBzaXplOiIxNDBweCIsIHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jh
c2U2NCxZbTlrJCNlU0I3Wm0jOXVkKEMxemFYcClsT2lBeE5EQndlSDA9In0sCisgICAgICAgIHty
ZXN1bHQ6ZmFsc2UsIHNpemU6IjE1MHB4IiwgdXJsOiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRm
LTg7YmFzZTY0LFltOWtlJTAwU0I3WiUyMG05dWRDMXpcblx0YVhwbE8jaUF4JTAzTlRCdyVlSDA9
In0sCisgICAgICAgIHtyZXN1bHQ6ZmFsc2UsIHNpemU6IjE2MHB4IiwgdXJsOiIlNTAlMzAlMTAl
MDAlMjAlNDAifQorICAgIF07CiAKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKHRydWUpOwotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKCJkYXRh
OnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFltOWtlU0I3Wm05dWRDMXphWHBsT2lBeE1E
QndlSDA9Iik7CiAKLSAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIGlm
IChnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmZvbnRTaXplID09ICIxMDBweCIpCi0g
ICAgICAgICAgICByZXN1bHQuaW5uZXJUZXh0ID0gIlBBU1MiOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICByZXN1bHQuaW5uZXJUZXh0ID0gIkZBSUwiOworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRlc3RPYmplY3RzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgb2JqID0g
dGVzdE9iamVjdHNbaV07CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRVc2Vy
U3R5bGVTaGVldExvY2F0aW9uKG9iai51cmwpOworCisgICAgICAgICAgICBkb2N1bWVudC5ib2R5
Lm9mZnNldFRvcDsKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmJvZHkpLmZvbnRTaXplID09IG9iai5zaXplOworICAgICAgICAgICAgZG9jdW1lbnQu
d3JpdGUoKHJlc3VsdCA9PSBvYmoucmVzdWx0ID8gIlBBU1MiIDogIkZBSUwiKSArICIgIiArIG9i
ai5zaXplICsgIjxicj4iKTsKKworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
VXNlclN0eWxlU2hlZXRMb2NhdGlvbigiIik7CisgICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAg
ICAgcmVzdWx0LmlubmVyVGV4dCA9ICJUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIGluIER1bXBS
ZW5kZXJUcmVlLiI7CisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGlzIHRlc3QgY2FuIG9ubHkg
YmUgcnVuIGluIER1bXBSZW5kZXJUcmVlLiIpOwogPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63845</attachid>
            <date>2010-08-08 10:00:38 -0700</date>
            <delta_ts>2010-08-31 10:35:48 -0700</delta_ts>
            <desc>Patch (remove argument name &quot;policy&quot;)</desc>
            <filename>bug-41510d.patch</filename>
            <type>text/plain</type>
            <size>16207</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDk0OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDgtMDggIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBh
cm9nYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIEJhc2U2NERlY29kZVBvbGljeSBvcHRpb24gYXQgYmFzZTY0RGVjb2RlKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTEwCisKKyAgICAg
ICAgQWRkIGFuIG9wdGlvbiBmb3IgaWdub3JpbmcgY2hhcmFjdGVycyBpbiBiYXNlNjQgZGF0YS4K
KyAgICAgICAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGRlY29kaW5nIGRhdGEgdXJscy4KKworICAg
ICAgICBBbHNvIGFkZCBhbiBvdmVybG9hZCB0byBkZWNvZGUgV2ViQ29yZTo6U3RyaW5nIGRpcmVj
dGx5LgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjphdG9iKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL3RleHQvQmFzZTY0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJhc2U2NEVuY29kZSk6
CisgICAgICAgIChXZWJDb3JlOjpiYXNlNjREZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6YmFz
ZTY0RGVjb2RlSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvQmFzZTY0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjopOgorCiAyMDEwLTA4LTA4ICBEaXJrIFNjaHVsemUgIDxrcml0QHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTmlrb2xhcyBaaW1tZXJtYW5uLgpJbmRl
eDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDY0OTE0KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk1OSwxMSArOTU5LDggQEAgU3RyaW5nIERPTVdpbmRv
dzo6YXRvYihjb25zdCBTdHJpbmcmIGVuYwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAg
fQogCi0gICAgVmVjdG9yPGNoYXI+IGluOwotICAgIGluLmFwcGVuZChlbmNvZGVkU3RyaW5nLmNo
YXJhY3RlcnMoKSwgZW5jb2RlZFN0cmluZy5sZW5ndGgoKSk7CiAgICAgVmVjdG9yPGNoYXI+IG91
dDsKLQotICAgIGlmICghYmFzZTY0RGVjb2RlKGluLCBvdXQpKSB7CisgICAgaWYgKCFiYXNlNjRE
ZWNvZGUoZW5jb2RlZFN0cmluZywgb3V0LCBGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKSkgewogICAg
ICAgICBlYyA9IElOVkFMSURfQ0hBUkFDVEVSX0VSUjsKICAgICAgICAgcmV0dXJuIFN0cmluZygp
OwogICAgIH0KSW5kZXg6IFdlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlzaW9uIDY0OTE0KQorKysgV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTUsMjIgKzYxNSwxNyBAQCB2b2lkIFBhZ2U6OnVzZXJT
dHlsZVNoZWV0TG9jYXRpb25DaGFuZ2VkCiAgICAgbV9kaWRMb2FkVXNlclN0eWxlU2hlZXQgPSBm
YWxzZTsKICAgICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nKCk7CiAgICAgbV91c2VyU3R5bGVT
aGVldE1vZGlmaWNhdGlvblRpbWUgPSAwOwotICAgIAorCiAgICAgLy8gRGF0YSBVUkxzIHdpdGgg
YmFzZTY0LWVuY29kZWQgVVRGLTggc3R5bGUgc2hlZXRzIGFyZSBjb21tb24uIFdlIGNhbiBwcm9j
ZXNzIHRoZW0KICAgICAvLyBzeW5jaHJvbm91c2x5IGFuZCBhdm9pZCB1c2luZyBhIGxvYWRlci4g
CiAgICAgaWYgKHVybC5wcm90b2NvbElzKCJkYXRhIikgJiYgdXJsLnN0cmluZygpLnN0YXJ0c1dp
dGgoImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsIikpIHsKICAgICAgICAgbV9k
aWRMb2FkVXNlclN0eWxlU2hlZXQgPSB0cnVlOwotICAgICAgICAKLSAgICAgICAgY29uc3QgdW5z
aWduZWQgcHJlZml4TGVuZ3RoID0gMzU7Ci0gICAgICAgIFZlY3RvcjxjaGFyPiBlbmNvZGVkRGF0
YSh1cmwuc3RyaW5nKCkubGVuZ3RoKCkgLSBwcmVmaXhMZW5ndGgpOwotICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSBwcmVmaXhMZW5ndGg7IGkgPCB1cmwuc3RyaW5nKCkubGVuZ3RoKCk7ICsraSkK
LSAgICAgICAgICAgIGVuY29kZWREYXRhW2kgLSBwcmVmaXhMZW5ndGhdID0gc3RhdGljX2Nhc3Q8
Y2hhcj4odXJsLnN0cmluZygpW2ldKTsKIAogICAgICAgICBWZWN0b3I8Y2hhcj4gc3R5bGVTaGVl
dEFzVVRGODsKLSAgICAgICAgaWYgKGJhc2U2NERlY29kZShlbmNvZGVkRGF0YSwgc3R5bGVTaGVl
dEFzVVRGOCkpCisgICAgICAgIGlmIChiYXNlNjREZWNvZGUoZGVjb2RlVVJMRXNjYXBlU2VxdWVu
Y2VzKHVybC5zdHJpbmcoKS5zdWJzdHJpbmcoMzUpKSwgc3R5bGVTaGVldEFzVVRGOCwgSWdub3Jl
V2hpdGVzcGFjZSkpCiAgICAgICAgICAgICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nOjpmcm9t
VVRGOChzdHlsZVNoZWV0QXNVVEY4LmRhdGEoKSwgc3R5bGVTaGVldEFzVVRGOC5zaXplKCkpOwog
ICAgIH0KLSAgICAKKwogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7IGZyYW1l
OyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgIGlmIChm
cmFtZS0+ZG9jdW1lbnQoKSkKICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5jbGVhclBh
Z2VVc2VyU2hlZXQoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3BwCShyZXZpc2lvbiA2
NDkxNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yLDYgKzIsNyBAQAogICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDEgRGF3aXQgQWxlbWF5
ZWh1IDxhZGF3aXRAa2RlLm9yZz4KICAgIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1
cnlha292IDxhcEB3ZWJraXQub3JnPgogICAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgIENvcHlyaWdodCAoQykgMjAxMCBQYXRyaWNr
IEdhbnN0ZXJlciA8cGFyb2dhQHBhcm9nYS5jb20+CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAo
TEdQTCkKQEAgLTI1LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUg
PHd0Zi9TdHJpbmdFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03MCw3ICs3Miw3IEBAIHZvaWQgYmFzZTY0RW5jb2Rl
KGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgdGhl
IGlucHV0IHN0cmluZyBpcyBwYXRob2xvZ2ljYWxseSBsYXJnZSwganVzdCByZXR1cm4gbm90aGlu
Zy4KLSAgICAvLyBOb3RlOiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSAib3V0X2xlbiIgY29t
cHV0YXRpb24gYmVsb3cuCisgICAgLy8gTm90ZTogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB0aGUg
Im91dExlbmd0aCIgY29tcHV0YXRpb24gYmVsb3cuCiAgICAgLy8gUmF0aGVyIHRoYW4gYmVpbmcg
cGVyZmVjdGx5IHByZWNpc2UsIHRoaXMgaXMgYSBiaXQgY29uc2VydmF0aXZlLgogICAgIGNvbnN0
IHVuc2lnbmVkIG1heElucHV0QnVmZmVyU2l6ZSA9IFVJTlRfTUFYIC8gNzcgKiA3NiAvIDQgKiAz
IC0gMjsKICAgICBpZiAobGVuID4gbWF4SW5wdXRCdWZmZXJTaXplKQpAQCAtNzksMjEgKzgxLDIx
IEBAIHZvaWQgYmFzZTY0RW5jb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kKICAgICB1bnNpZ25l
ZCBzaWR4ID0gMDsKICAgICB1bnNpZ25lZCBkaWR4ID0gMDsKIAotICAgIHVuc2lnbmVkIG91dF9s
ZW4gPSAoKGxlbiArIDIpIC8gMykgKiA0OworICAgIHVuc2lnbmVkIG91dExlbmd0aCA9ICgobGVu
ICsgMikgLyAzKSAqIDQ7CiAKICAgICAvLyBEZWFsIHdpdGggdGhlIDc2IGNoYXJhY3RlciBwZXIg
bGluZSBsaW1pdCBzcGVjaWZpZWQgaW4gUkZDIDIwNDUuCi0gICAgaW5zZXJ0TEZzID0gKGluc2Vy
dExGcyAmJiBvdXRfbGVuID4gNzYpOworICAgIGluc2VydExGcyA9IChpbnNlcnRMRnMgJiYgb3V0
TGVuZ3RoID4gNzYpOwogICAgIGlmIChpbnNlcnRMRnMpCi0gICAgICAgIG91dF9sZW4gKz0gKChv
dXRfbGVuIC0gMSkgLyA3Nik7CisgICAgICAgIG91dExlbmd0aCArPSAoKG91dExlbmd0aCAtIDEp
IC8gNzYpOwogCiAgICAgaW50IGNvdW50ID0gMDsKLSAgICBvdXQuZ3JvdyhvdXRfbGVuKTsKKyAg
ICBvdXQuZ3JvdyhvdXRMZW5ndGgpOwogCiAgICAgLy8gMy1ieXRlIHRvIDQtYnl0ZSBjb252ZXJz
aW9uICsgMC02MyB0byBhc2NpaSBwcmludGFibGUgY29udmVyc2lvbgogICAgIGlmIChsZW4gPiAx
KSB7CiAgICAgICAgIHdoaWxlIChzaWR4IDwgbGVuIC0gMikgewogICAgICAgICAgICAgaWYgKGlu
c2VydExGcykgewotICAgICAgICAgICAgICAgIGlmIChjb3VudCAmJiAoY291bnQgJSA3NikgPT0g
MCkKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgJiYgIShjb3VudCAlIDc2KSkKICAgICAgICAg
ICAgICAgICAgICAgb3V0W2RpZHgrK10gPSAnXG4nOwogICAgICAgICAgICAgICAgIGNvdW50ICs9
IDQ7CiAgICAgICAgICAgICB9CkBAIC0xMDYsNyArMTA4LDcgQEAgdm9pZCBiYXNlNjRFbmNvZGUo
Y29uc3QgY2hhciogZGF0YSwgdW5zaQogICAgIH0KIAogICAgIGlmIChzaWR4IDwgbGVuKSB7Ci0g
ICAgICAgIGlmIChpbnNlcnRMRnMgJiYgKGNvdW50ID4gMCkgJiYgKGNvdW50ICUgNzYpID09IDAp
CisgICAgICAgIGlmIChpbnNlcnRMRnMgJiYgKGNvdW50ID4gMCkgJiYgIShjb3VudCAlIDc2KSkK
ICAgICAgICAgICAgb3V0W2RpZHgrK10gPSAnXG4nOwogCiAgICAgICAgIG91dFtkaWR4KytdID0g
YmFzZTY0RW5jTWFwWyhkYXRhW3NpZHhdID4+IDIpICYgMDc3XTsKQEAgLTEyNCw3ICsxMjYsNyBA
QCB2b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpCiAgICAgfQogfQogCi1i
b29sIGJhc2U2NERlY29kZShjb25zdCBWZWN0b3I8Y2hhcj4mIGluLCBWZWN0b3I8Y2hhcj4mIG91
dCkKK2Jvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4sIFZlY3RvcjxjaGFy
PiYgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5KQogewogICAgIG91dC5jbGVhcigpOwog
CkBAIC0xMzIsMzYgKzEzNCw0OSBAQCBib29sIGJhc2U2NERlY29kZShjb25zdCBWZWN0b3I8Y2hh
cj4mIGluCiAgICAgaWYgKGluLnNpemUoKSA+IFVJTlRfTUFYKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICByZXR1cm4gYmFzZTY0RGVjb2RlKGluLmRhdGEoKSwgaW4uc2l6ZSgpLCBvdXQp
OworICAgIHJldHVybiBiYXNlNjREZWNvZGUoaW4uZGF0YSgpLCBpbi5zaXplKCksIG91dCwgcG9s
aWN5KTsKIH0KIAotYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQg
bGVuLCBWZWN0b3I8Y2hhcj4mIG91dCkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdGF0aWMgaW5s
aW5lIGJvb2wgYmFzZTY0RGVjb2RlSW50ZXJuYWwoY29uc3QgVCogZGF0YSwgdW5zaWduZWQgbGVu
LCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2RlUG9saWN5IHBvbGljeSkKIHsKICAgICBv
dXQuY2xlYXIoKTsKLSAgICBpZiAobGVuID09IDApCisgICAgaWYgKCFsZW4pCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgd2hpbGUgKGxlbiAmJiBkYXRhW2xlbi0xXSA9PSAnPScpCi0gICAg
ICAgIC0tbGVuOwotCiAgICAgb3V0Lmdyb3cobGVuKTsKKworICAgIGJvb2wgc2F3RXF1YWxzU2ln
biA9IGZhbHNlOworICAgIHVuc2lnbmVkIG91dExlbmd0aCA9IDA7CiAgICAgZm9yICh1bnNpZ25l
ZCBpZHggPSAwOyBpZHggPCBsZW47IGlkeCsrKSB7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgY2gg
PSBkYXRhW2lkeF07Ci0gICAgICAgIGlmICgoY2ggPiA0NyAmJiBjaCA8IDU4KSB8fCAoY2ggPiA2
NCAmJiBjaCA8IDkxKSB8fCAoY2ggPiA5NiAmJiBjaCA8IDEyMykgfHwgY2ggPT0gJysnIHx8IGNo
ID09ICcvJyB8fCBjaCA9PSAnPScpCi0gICAgICAgICAgICBvdXRbaWR4XSA9IGJhc2U2NERlY01h
cFtjaF07Ci0gICAgICAgIGVsc2UKKyAgICAgICAgdW5zaWduZWQgY2ggPSBkYXRhW2lkeF07Cisg
ICAgICAgIGlmIChjaCA9PSAnPScpCisgICAgICAgICAgICBzYXdFcXVhbHNTaWduID0gdHJ1ZTsK
KyAgICAgICAgZWxzZSBpZiAoKCcwJyA8PSBjaCAmJiBjaCA8PSAnOScpIHx8ICgnQScgPD0gY2gg
JiYgY2ggPD0gJ1onKSB8fCAoJ2EnIDw9IGNoICYmIGNoIDw9ICd6JykgfHwgY2ggPT0gJysnIHx8
IGNoID09ICcvJykgeworICAgICAgICAgICAgaWYgKHNhd0VxdWFsc1NpZ24pCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgb3V0W291dExlbmd0aF0gPSBiYXNlNjRE
ZWNNYXBbY2hdOworICAgICAgICAgICAgb3V0TGVuZ3RoKys7CisgICAgICAgIH0gZWxzZSBpZiAo
cG9saWN5ID09IEZhaWxPbkludmFsaWRDaGFyYWN0ZXIgfHwgKHBvbGljeSA9PSBJZ25vcmVXaGl0
ZXNwYWNlICYmICFpc1NwYWNlT3JOZXdsaW5lKGNoKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCisgICAgaWYgKCFvdXRMZW5ndGgpCisgICAgICAgIHJldHVybiAhc2F3RXF1
YWxzU2lnbjsKKworICAgIC8vIFZhbGlkIGRhdGEgaXMgKG4gKiA0ICsgWzAsMiwzXSkgY2hhcmFj
dGVycyBsb25nLgorICAgIGlmICgob3V0TGVuZ3RoICUgNCkgPT0gMSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIAogICAgIC8vIDQtYnl0ZSB0byAzLWJ5dGUgY29udmVyc2lvbgotICAgIHVu
c2lnbmVkIG91dExlbiA9IGxlbiAtICgobGVuICsgMykgLyA0KTsKLSAgICBpZiAoIW91dExlbiB8
fCAoKG91dExlbiArIDIpIC8gMykgKiA0IDwgbGVuKQorICAgIG91dExlbmd0aCAtPSAob3V0TGVu
Z3RoICsgMykgLyA0OworICAgIGlmICghb3V0TGVuZ3RoKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICB1bnNpZ25lZCBzaWR4ID0gMDsKICAgICB1bnNpZ25lZCBkaWR4ID0gMDsKLSAgICBp
ZiAob3V0TGVuID4gMSkgewotICAgICAgICB3aGlsZSAoZGlkeCA8IG91dExlbiAtIDIpIHsKKyAg
ICBpZiAob3V0TGVuZ3RoID4gMSkgeworICAgICAgICB3aGlsZSAoZGlkeCA8IG91dExlbmd0aCAt
IDIpIHsKICAgICAgICAgICAgIG91dFtkaWR4XSA9ICgoKG91dFtzaWR4XSA8PCAyKSAmIDI1NSkg
fCAoKG91dFtzaWR4ICsgMV0gPj4gNCkgJiAwMDMpKTsKICAgICAgICAgICAgIG91dFtkaWR4ICsg
MV0gPSAoKChvdXRbc2lkeCArIDFdIDw8IDQpICYgMjU1KSB8ICgob3V0W3NpZHggKyAyXSA+PiAy
KSAmIDAxNykpOwogICAgICAgICAgICAgb3V0W2RpZHggKyAyXSA9ICgoKG91dFtzaWR4ICsgMl0g
PDwgNikgJiAyNTUpIHwgKG91dFtzaWR4ICsgM10gJiAwNzcpKTsKQEAgLTE3MCwxNiArMTg1LDI2
IEBAIGJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kKICAgICAgICAgfQog
ICAgIH0KIAotICAgIGlmIChkaWR4IDwgb3V0TGVuKQorICAgIGlmIChkaWR4IDwgb3V0TGVuZ3Ro
KQogICAgICAgICBvdXRbZGlkeF0gPSAoKChvdXRbc2lkeF0gPDwgMikgJiAyNTUpIHwgKChvdXRb
c2lkeCArIDFdID4+IDQpICYgMDAzKSk7CiAKLSAgICBpZiAoKytkaWR4IDwgb3V0TGVuKQorICAg
IGlmICgrK2RpZHggPCBvdXRMZW5ndGgpCiAgICAgICAgIG91dFtkaWR4XSA9ICgoKG91dFtzaWR4
ICsgMV0gPDwgNCkgJiAyNTUpIHwgKChvdXRbc2lkeCArIDJdID4+IDIpICYgMDE3KSk7CiAKLSAg
ICBpZiAob3V0TGVuIDwgb3V0LnNpemUoKSkKLSAgICAgICAgb3V0LnNocmluayhvdXRMZW4pOwor
ICAgIGlmIChvdXRMZW5ndGggPCBvdXQuc2l6ZSgpKQorICAgICAgICBvdXQuc2hyaW5rKG91dExl
bmd0aCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBiYXNlNjREZWNvZGUoY29uc3Qg
Y2hhciogZGF0YSwgdW5zaWduZWQgbGVuLCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2Rl
UG9saWN5IHBvbGljeSkKK3sKKyAgICByZXR1cm4gYmFzZTY0RGVjb2RlSW50ZXJuYWw8Y2hhcj4o
ZGF0YSwgbGVuLCBvdXQsIHBvbGljeSk7CiB9CisKK2Jvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFN0
cmluZyYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5KQor
eworICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRlcm5hbDxVQ2hhcj4oaW4uY2hhcmFjdGVycygp
LCBpbi5sZW5ndGgoKSwgb3V0LCBwb2xpY3kpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3RleHQvQmFzZTY0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5oCShyZXZpc2lvbiA2NDkxNCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vdGV4dC9CYXNlNjQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAd2Via2l0Lm9y
ZykKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEB3ZWJraXQu
b3JnPgorICogQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFy
b2dhLmNvbT4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMTIgKzMxLDE2
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU3RyaW5nOworCitlbnVtIEJhc2U2
NERlY29kZVBvbGljeSB7IEZhaWxPbkludmFsaWRDaGFyYWN0ZXIsIElnbm9yZVdoaXRlc3BhY2Us
IElnbm9yZUludmFsaWRDaGFyYWN0ZXJzIH07CisKIHZvaWQgYmFzZTY0RW5jb2RlKGNvbnN0IFZl
Y3RvcjxjaGFyPiYsIFZlY3RvcjxjaGFyPiYsIGJvb2wgaW5zZXJ0TEZzID0gZmFsc2UpOwogdm9p
ZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBWZWN0b3I8Y2hhcj4mLCBib29s
IGluc2VydExGcyA9IGZhbHNlKTsKIAotLy8gdGhpcyBkZWNvZGVyIGlzIG5vdCBnZW5lcmFsIHB1
cnBvc2UgLSBpdCByZXR1cm5zIGFuIGVycm9yIGlmIGl0IGVuY291bnRlcnMgYSBsaW5lZmVlZCwg
YXMgbmVlZGVkIGZvciB3aW5kb3cuYXRvYgotYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9y
PGNoYXI+JiwgVmVjdG9yPGNoYXI+Jik7Ci1ib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFyKiwg
dW5zaWduZWQsIFZlY3RvcjxjaGFyPiYpOworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgU3RyaW5n
JiwgVmVjdG9yPGNoYXI+JiwgQmFzZTY0RGVjb2RlUG9saWN5ID0gRmFpbE9uSW52YWxpZENoYXJh
Y3Rlcik7Citib29sIGJhc2U2NERlY29kZShjb25zdCBWZWN0b3I8Y2hhcj4mLCBWZWN0b3I8Y2hh
cj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgPSBGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKTsKK2Jvb2wg
YmFzZTY0RGVjb2RlKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+JiwgQmFzZTY0
RGVjb2RlUG9saWN5ID0gRmFpbE9uSW52YWxpZENoYXJhY3Rlcik7CiAKIH0KIApJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gNjQ5NDkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNSBAQAorMjAxMC0wOC0wOCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FA
cGFyb2dhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgQmFzZTY0RGVjb2RlUG9saWN5IG9wdGlvbiBhdCBiYXNlNjREZWNvZGUoKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE1MTAKKworICAg
ICAgICAqIGZhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
ZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGgu
aHRtbDogQWRkZWQgYWRkaXRpb25hbCBkYXRhIHVybHMgdGVzdHMuCisKIDIwMTAtMDgtMDggIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1p
dHJpIEdsYXprb3YuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9h
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
YXRvYi1idG9hLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjQ5MTQpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MzUsOCArMzUsMTMgQEAgUEFTUyB3aW5kb3cuYXRvYigi0YLQtdGB0YIiKSB0aHJldyBleGNlcAog
UEFTUyB3aW5kb3cuYXRvYigieiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFS
QUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUuCiBQQVNTIHdpbmRvdy5hdG9iKCJ6eiIpIGlzICLD
jyIKIFBBU1Mgd2luZG93LmF0b2IoInp6eiIpIGlzICLDjzwiCitQQVNTIHdpbmRvdy5hdG9iKCJ6
eno9IikgaXMgIsOPPCIKK1BBU1Mgd2luZG93LmF0b2IoInp6ej09IikgaXMgIsOPPCIKK1BBU1Mg
d2luZG93LmF0b2IoInp6ej09PSIpIGlzICLDjzwiCitQQVNTIHdpbmRvdy5hdG9iKCJ6eno9PT09
IikgaXMgIsOPPCIKIFBBU1Mgd2luZG93LmF0b2IoInp6enoiKSBpcyAiw488w7MiCiBQQVNTIHdp
bmRvdy5hdG9iKCJ6enp6eiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFSQUNU
RVJfRVJSOiBET00gRXhjZXB0aW9uIDUuCitQQVNTIHdpbmRvdy5hdG9iKCJ6PXp6IikgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0NIQVJBQ1RFUl9FUlI6IERPTSBFeGNlcHRpb24gNS4K
IFBBU1Mgd2luZG93LmF0b2IoIj0iKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQ0hB
UkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgogUEFTUyB3aW5kb3cuYXRvYigiPT0iKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQ0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1
LgogUEFTUyB3aW5kb3cuYXRvYigiPT09IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElE
X0NIQVJBQ1RFUl9FUlI6IERPTSBFeGNlcHRpb24gNS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWwJKHJldmlzaW9uIDY0OTE0KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00OCw4
ICs0OCwxMyBAQCBzaG91bGRUaHJvdygnd2luZG93LmF0b2IoItGC0LXRgdGCIiknKTsKIHNob3Vs
ZFRocm93KCd3aW5kb3cuYXRvYigieiIpJyk7CiBzaG91bGRCZSgnd2luZG93LmF0b2IoInp6Iikn
LCAnIsOPIicpOwogc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6enoiKScsICciw49cdTAwM0MiJyk7
CitzaG91bGRCZSgnd2luZG93LmF0b2IoInp6ej0iKScsICciw49cdTAwM0MiJyk7CitzaG91bGRC
ZSgnd2luZG93LmF0b2IoInp6ej09IiknLCAnIsOPXHUwMDNDIicpOworc2hvdWxkQmUoJ3dpbmRv
dy5hdG9iKCJ6eno9PT0iKScsICciw49cdTAwM0MiJyk7CitzaG91bGRCZSgnd2luZG93LmF0b2Io
Inp6ej09PT0iKScsICciw49cdTAwM0MiJyk7CiBzaG91bGRCZSgnd2luZG93LmF0b2IoInp6enoi
KScsICciw49cdTAwM0PDsyInKTsKIHNob3VsZFRocm93KCd3aW5kb3cuYXRvYigienp6enoiKScp
Oworc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCJ6PXp6IiknKTsKIHNob3VsZFRocm93KCd3aW5k
b3cuYXRvYigiPSIpJyk7CiBzaG91bGRUaHJvdygnd2luZG93LmF0b2IoIj09IiknKTsKIHNob3Vs
ZFRocm93KCd3aW5kb3cuYXRvYigiPT09IiknKTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1z
dHlsZXNoZWV0LWZhc3QtcGF0aC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY0OTE0KQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBh
dGgtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOSBAQAogVGhpcyB0ZXN0
cyB0aGF0IHdoZW4gdGhlIHVzZXIgc3R5bGUgc2hlZXQgbG9jYXRpb24gaXMgc2V0IHRvIGEgZGF0
YTogVVJMIHdpdGggYmFzZTY0LWVuY29kZWQgVVRGLTggZGF0YSwgdGhlIHN0eWxlIHNoZWV0IGlz
IHByb2Nlc3NlZCBzeW5jaHJvbm91c2x5LCBpbnN0ZWFkIG9mIGludm9raW5nIHRoZSBhc3luY2hy
b25vdXMgbG9hZGVyLgogCi1QQVNTCitQQVNTIDEwMHB4CitQQVNTIDExMHB4CitQQVNTIDEyMHB4
CitQQVNTIDEzMHB4CitQQVNTIDE0MHB4CitQQVNTIDE1MHB4CitQQVNTIDE2MHB4CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3Qt
cGF0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xv
YWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLmh0bWwJKHJldmlzaW9uIDY0OTE0KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0
LXBhdGguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywyMCArMywzMSBAQAogICAgIFVSTCB3aXRo
IGJhc2U2NC1lbmNvZGVkIFVURi04IGRhdGEsIHRoZSBzdHlsZSBzaGVldCBpcyBwcm9jZXNzZWQK
ICAgICBzeW5jaHJvbm91c2x5LCBpbnN0ZWFkIG9mIGludm9raW5nIHRoZSBhc3luY2hyb25vdXMg
bG9hZGVyLgogPC9wPgotPHAgaWQ9InJlc3VsdCI+PC9wPgogPHNjcmlwdD4KLSAgICB2YXIgcmVz
dWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOworICAgIHZhciB0ZXN0T2Jq
ZWN0cyA9IFsKKyAgICAgICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTAwcHgiLCB1cmw6ImRhdGE6
dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsWW05a2VTQjdabTl1ZEMxemFYcGxPaUF4TURC
d2VIMD0ifSwKKyAgICAgICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTEwcHgiLCB1cmw6ImRhdGE6
dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsICAgICAgICAgICAgICAgICAgICAgICBZbTlr
ZVNCN1ptOXVkQzF6YVhwbE9pQXhNVEJ3ZUgwPSAgICAgICAgICAgICAgICAgICJ9LAorICAgICAg
ICB7cmVzdWx0OnRydWUsICBzaXplOiIxMjBweCIsIHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0
PXV0Zi04O2Jhc2U2NCxcbiBcciBcdCBZbTlrIFx0IGVTQjcgXHIgWm05dWQgXG4gXG4gQzF6YVhw
IFxyIGxPaUF4TSBcdCBqQndlSDA9IFx0IFxyIFxuIn0sCisgICAgICAgIHtyZXN1bHQ6dHJ1ZSwg
IHNpemU6IjEzMHB4IiwgdXJsOiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFx1
MDA1OSBcdTAwNkQgXHUwMDM5IFx1MDA2QiBlU0I3Wm05dWQgQzF6YVhwbE9pQXhNekJ3ZSBcdTAw
NDggXHUwMDMwIFx1MDAzRCJ9LAorICAgICAgICB7cmVzdWx0OmZhbHNlLCBzaXplOiIxNDBweCIs
IHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxZbTlrJCNlU0I3Wm0jOXVk
KEMxemFYcClsT2lBeE5EQndlSDA9In0sCisgICAgICAgIHtyZXN1bHQ6ZmFsc2UsIHNpemU6IjE1
MHB4IiwgdXJsOiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFltOWtlJTAwU0I3
WiUyMG05dWRDMXpcblx0YVhwbE8jaUF4JTAzTlRCdyVlSDA9In0sCisgICAgICAgIHtyZXN1bHQ6
ZmFsc2UsIHNpemU6IjE2MHB4IiwgdXJsOiIlNTAlMzAlMTAlMDAlMjAlNDAifQorICAgIF07CiAK
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKHRydWUpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKCJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRm
LTg7YmFzZTY0LFltOWtlU0I3Wm05dWRDMXphWHBsT2lBeE1EQndlSDA9Iik7CiAKLSAgICAgICAg
ZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmJvZHkpLmZvbnRTaXplID09ICIxMDBweCIpCi0gICAgICAgICAgICByZXN1bHQuaW5u
ZXJUZXh0ID0gIlBBU1MiOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQuaW5uZXJU
ZXh0ID0gIkZBSUwiOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RPYmplY3RzLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgb2JqID0gdGVzdE9iamVjdHNbaV07CisgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKG9i
ai51cmwpOworCisgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKyAgICAgICAg
ICAgIHZhciByZXN1bHQgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmZvbnRTaXpl
ID09IG9iai5zaXplOworICAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoKHJlc3VsdCA9PSBvYmou
cmVzdWx0ID8gIlBBU1MiIDogIkZBSUwiKSArICIgIiArIG9iai5zaXplICsgIjxicj4iKTsKKwor
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlv
bigiIik7CisgICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9
ICJUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIGluIER1bXBSZW5kZXJUcmVlLiI7CisgICAgICAg
IGRvY3VtZW50LndyaXRlKCJUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIGluIER1bXBSZW5kZXJU
cmVlLiIpOwogPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66070</attachid>
            <date>2010-08-31 10:35:48 -0700</date>
            <delta_ts>2010-09-10 23:04:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41510e.patch</filename>
            <type>text/plain</type>
            <size>16653</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDY0OTQ5KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDI2IEBADQorMjAxMC0wOC0wOCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAcGFyb2dhLmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0K
Kw0KKyAgICAgICAgQWRkIEJhc2U2NERlY29kZVBvbGljeSBvcHRpb24gYXQgYmFzZTY0RGVjb2Rl
KCkNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTUx
MA0KKw0KKyAgICAgICAgQWRkIGFuIG9wdGlvbiBmb3IgaWdub3JpbmcgY2hhcmFjdGVycyBpbiBi
YXNlNjQgZGF0YS4NCisgICAgICAgIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBkZWNvZGluZyBkYXRh
IHVybHMuDQorDQorICAgICAgICBBbHNvIGFkZCBhbiBvdmVybG9hZCB0byBkZWNvZGUgV2ViQ29y
ZTo6U3RyaW5nIGRpcmVjdGx5Lg0KKw0KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6DQor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjphdG9iKToNCisgICAgICAgICogcGFnZS9QYWdl
LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1c2VyU3R5bGVTaGVldExvY2F0aW9uQ2hh
bmdlZCk6DQorICAgICAgICAqIHBsYXRmb3JtL3RleHQvQmFzZTY0LmNwcDoNCisgICAgICAgIChX
ZWJDb3JlOjpiYXNlNjRFbmNvZGUpOg0KKyAgICAgICAgKFdlYkNvcmU6OmJhc2U2NERlY29kZSk6
DQorICAgICAgICAoV2ViQ29yZTo6YmFzZTY0RGVjb2RlSW50ZXJuYWwpOg0KKyAgICAgICAgKiBw
bGF0Zm9ybS90ZXh0L0Jhc2U2NC5oOg0KKyAgICAgICAgKFdlYkNvcmU6Oik6DQorDQogMjAxMC0w
OC0wOCAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPg0KIA0KICAgICAgICAgUmV2aWV3
ZWQgYnkgTmlrb2xhcyBaaW1tZXJtYW5uLg0KSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9u
IDY0OTE0KQ0KKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpDQpA
QCAtOTU5LDExICs5NTksOCBAQCBTdHJpbmcgRE9NV2luZG93OjphdG9iKGNvbnN0IFN0cmluZyYg
ZW5jDQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7DQogICAgIH0NCiANCi0gICAgVmVjdG9yPGNo
YXI+IGluOw0KLSAgICBpbi5hcHBlbmQoZW5jb2RlZFN0cmluZy5jaGFyYWN0ZXJzKCksIGVuY29k
ZWRTdHJpbmcubGVuZ3RoKCkpOw0KICAgICBWZWN0b3I8Y2hhcj4gb3V0Ow0KLQ0KLSAgICBpZiAo
IWJhc2U2NERlY29kZShpbiwgb3V0KSkgew0KKyAgICBpZiAoIWJhc2U2NERlY29kZShlbmNvZGVk
U3RyaW5nLCBvdXQsIEZhaWxPbkludmFsaWRDaGFyYWN0ZXIpKSB7DQogICAgICAgICBlYyA9IElO
VkFMSURfQ0hBUkFDVEVSX0VSUjsNCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsNCiAgICAgfQ0K
SW5kZXg6IFdlYkNvcmUvcGFnZS9QYWdlLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGFn
ZS9QYWdlLmNwcAkocmV2aXNpb24gNjQ5MTQpDQorKysgV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpDQpAQCAtNjE1LDIyICs2MTUsMTcgQEAgdm9pZCBQYWdlOjp1c2VyU3R5bGVT
aGVldExvY2F0aW9uQ2hhbmdlZA0KICAgICBtX2RpZExvYWRVc2VyU3R5bGVTaGVldCA9IGZhbHNl
Ow0KICAgICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nKCk7DQogICAgIG1fdXNlclN0eWxlU2hl
ZXRNb2RpZmljYXRpb25UaW1lID0gMDsNCi0gICAgDQorDQogICAgIC8vIERhdGEgVVJMcyB3aXRo
IGJhc2U2NC1lbmNvZGVkIFVURi04IHN0eWxlIHNoZWV0cyBhcmUgY29tbW9uLiBXZSBjYW4gcHJv
Y2VzcyB0aGVtDQogICAgIC8vIHN5bmNocm9ub3VzbHkgYW5kIGF2b2lkIHVzaW5nIGEgbG9hZGVy
LiANCiAgICAgaWYgKHVybC5wcm90b2NvbElzKCJkYXRhIikgJiYgdXJsLnN0cmluZygpLnN0YXJ0
c1dpdGgoImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsIikpIHsNCiAgICAgICAg
IG1fZGlkTG9hZFVzZXJTdHlsZVNoZWV0ID0gdHJ1ZTsNCi0gICAgICAgIA0KLSAgICAgICAgY29u
c3QgdW5zaWduZWQgcHJlZml4TGVuZ3RoID0gMzU7DQotICAgICAgICBWZWN0b3I8Y2hhcj4gZW5j
b2RlZERhdGEodXJsLnN0cmluZygpLmxlbmd0aCgpIC0gcHJlZml4TGVuZ3RoKTsNCi0gICAgICAg
IGZvciAodW5zaWduZWQgaSA9IHByZWZpeExlbmd0aDsgaSA8IHVybC5zdHJpbmcoKS5sZW5ndGgo
KTsgKytpKQ0KLSAgICAgICAgICAgIGVuY29kZWREYXRhW2kgLSBwcmVmaXhMZW5ndGhdID0gc3Rh
dGljX2Nhc3Q8Y2hhcj4odXJsLnN0cmluZygpW2ldKTsNCiANCiAgICAgICAgIFZlY3RvcjxjaGFy
PiBzdHlsZVNoZWV0QXNVVEY4Ow0KLSAgICAgICAgaWYgKGJhc2U2NERlY29kZShlbmNvZGVkRGF0
YSwgc3R5bGVTaGVldEFzVVRGOCkpDQorICAgICAgICBpZiAoYmFzZTY0RGVjb2RlKGRlY29kZVVS
TEVzY2FwZVNlcXVlbmNlcyh1cmwuc3RyaW5nKCkuc3Vic3RyaW5nKDM1KSksIHN0eWxlU2hlZXRB
c1VURjgsIElnbm9yZVdoaXRlc3BhY2UpKQ0KICAgICAgICAgICAgIG1fdXNlclN0eWxlU2hlZXQg
PSBTdHJpbmc6OmZyb21VVEY4KHN0eWxlU2hlZXRBc1VURjguZGF0YSgpLCBzdHlsZVNoZWV0QXNV
VEY4LnNpemUoKSk7DQogICAgIH0NCi0gICAgDQorDQogICAgIGZvciAoRnJhbWUqIGZyYW1lID0g
bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgp
KSB7DQogICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkpDQogICAgICAgICAgICAgZnJhbWUt
PmRvY3VtZW50KCktPmNsZWFyUGFnZVVzZXJTaGVldCgpOw0KSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vdGV4dC9CYXNlNjQuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0Jhc2U2NC5jcHAJKHJldmlzaW9uIDY2NDg4KQ0KKysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9C
YXNlNjQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMiw2ICsyLDcgQEANCiAgICBDb3B5cmlnaHQg
KEMpIDIwMDAtMjAwMSBEYXdpdCBBbGVtYXllaHUgPGFkYXdpdEBrZGUub3JnPg0KICAgIENvcHly
aWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEB3ZWJraXQub3JnPg0KICAgIENv
cHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQor
ICAgQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNv
bT4NCiANCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChMR1BMKQ0KQEAgLTI1LDYgKzI2LDcgQEAN
CiANCiAjaW5jbHVkZSA8bGltaXRzLmg+DQogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4N
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+DQogDQogbmFtZXNwYWNlIFdlYkNvcmUg
ew0KIA0KQEAgLTcwLDcgKzcyLDcgQEAgdm9pZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0
YSwgdW5zaQ0KICAgICAgICAgcmV0dXJuOw0KIA0KICAgICAvLyBJZiB0aGUgaW5wdXQgc3RyaW5n
IGlzIHBhdGhvbG9naWNhbGx5IGxhcmdlLCBqdXN0IHJldHVybiBub3RoaW5nLg0KLSAgICAvLyBO
b3RlOiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSAib3V0X2xlbiIgY29tcHV0YXRpb24gYmVs
b3cuDQorICAgIC8vIE5vdGU6IEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlICJvdXRMZW5ndGgi
IGNvbXB1dGF0aW9uIGJlbG93Lg0KICAgICAvLyBSYXRoZXIgdGhhbiBiZWluZyBwZXJmZWN0bHkg
cHJlY2lzZSwgdGhpcyBpcyBhIGJpdCBjb25zZXJ2YXRpdmUuDQogICAgIGNvbnN0IHVuc2lnbmVk
IG1heElucHV0QnVmZmVyU2l6ZSA9IFVJTlRfTUFYIC8gNzcgKiA3NiAvIDQgKiAzIC0gMjsNCiAg
ICAgaWYgKGxlbiA+IG1heElucHV0QnVmZmVyU2l6ZSkNCkBAIC03OSwyMSArODEsMjEgQEAgdm9p
ZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQ0KICAgICB1bnNpZ25lZCBzaWR4
ID0gMDsNCiAgICAgdW5zaWduZWQgZGlkeCA9IDA7DQogDQotICAgIHVuc2lnbmVkIG91dF9sZW4g
PSAoKGxlbiArIDIpIC8gMykgKiA0Ow0KKyAgICB1bnNpZ25lZCBvdXRMZW5ndGggPSAoKGxlbiAr
IDIpIC8gMykgKiA0Ow0KIA0KICAgICAvLyBEZWFsIHdpdGggdGhlIDc2IGNoYXJhY3RlciBwZXIg
bGluZSBsaW1pdCBzcGVjaWZpZWQgaW4gUkZDIDIwNDUuDQotICAgIGluc2VydExGcyA9IChpbnNl
cnRMRnMgJiYgb3V0X2xlbiA+IDc2KTsNCisgICAgaW5zZXJ0TEZzID0gKGluc2VydExGcyAmJiBv
dXRMZW5ndGggPiA3Nik7DQogICAgIGlmIChpbnNlcnRMRnMpDQotICAgICAgICBvdXRfbGVuICs9
ICgob3V0X2xlbiAtIDEpIC8gNzYpOw0KKyAgICAgICAgb3V0TGVuZ3RoICs9ICgob3V0TGVuZ3Ro
IC0gMSkgLyA3Nik7DQogDQogICAgIGludCBjb3VudCA9IDA7DQotICAgIG91dC5ncm93KG91dF9s
ZW4pOw0KKyAgICBvdXQuZ3JvdyhvdXRMZW5ndGgpOw0KIA0KICAgICAvLyAzLWJ5dGUgdG8gNC1i
eXRlIGNvbnZlcnNpb24gKyAwLTYzIHRvIGFzY2lpIHByaW50YWJsZSBjb252ZXJzaW9uDQogICAg
IGlmIChsZW4gPiAxKSB7DQogICAgICAgICB3aGlsZSAoc2lkeCA8IGxlbiAtIDIpIHsNCiAgICAg
ICAgICAgICBpZiAoaW5zZXJ0TEZzKSB7DQotICAgICAgICAgICAgICAgIGlmIChjb3VudCAmJiAo
Y291bnQgJSA3NikgPT0gMCkNCisgICAgICAgICAgICAgICAgaWYgKGNvdW50ICYmICEoY291bnQg
JSA3NikpDQogICAgICAgICAgICAgICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7DQogICAgICAg
ICAgICAgICAgIGNvdW50ICs9IDQ7DQogICAgICAgICAgICAgfQ0KQEAgLTEwNiw3ICsxMDgsNyBA
QCB2b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpDQogICAgIH0NCiANCiAg
ICAgaWYgKHNpZHggPCBsZW4pIHsNCi0gICAgICAgIGlmIChpbnNlcnRMRnMgJiYgKGNvdW50ID4g
MCkgJiYgKGNvdW50ICUgNzYpID09IDApDQorICAgICAgICBpZiAoaW5zZXJ0TEZzICYmIChjb3Vu
dCA+IDApICYmICEoY291bnQgJSA3NikpDQogICAgICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7
DQogDQogICAgICAgICBvdXRbZGlkeCsrXSA9IGJhc2U2NEVuY01hcFsoZGF0YVtzaWR4XSA+PiAy
KSAmIDA3N107DQpAQCAtMTI0LDcgKzEyNiw3IEBAIHZvaWQgYmFzZTY0RW5jb2RlKGNvbnN0IGNo
YXIqIGRhdGEsIHVuc2kNCiAgICAgfQ0KIH0NCiANCi1ib29sIGJhc2U2NERlY29kZShjb25zdCBW
ZWN0b3I8Y2hhcj4mIGluLCBWZWN0b3I8Y2hhcj4mIG91dCkNCitib29sIGJhc2U2NERlY29kZShj
b25zdCBWZWN0b3I8Y2hhcj4mIGluLCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2RlUG9s
aWN5IHBvbGljeSkNCiB7DQogICAgIG91dC5jbGVhcigpOw0KIA0KQEAgLTEzMiwzNiArMTM0LDQ5
IEBAIGJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4NCiAgICAgaWYgKGlu
LnNpemUoKSA+IFVJTlRfTUFYKQ0KICAgICAgICAgcmV0dXJuIGZhbHNlOw0KIA0KLSAgICByZXR1
cm4gYmFzZTY0RGVjb2RlKGluLmRhdGEoKSwgaW4uc2l6ZSgpLCBvdXQpOw0KKyAgICByZXR1cm4g
YmFzZTY0RGVjb2RlKGluLmRhdGEoKSwgaW4uc2l6ZSgpLCBvdXQsIHBvbGljeSk7DQogfQ0KIA0K
LWJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbiwgVmVjdG9y
PGNoYXI+JiBvdXQpDQordGVtcGxhdGU8dHlwZW5hbWUgVD4NCitzdGF0aWMgaW5saW5lIGJvb2wg
YmFzZTY0RGVjb2RlSW50ZXJuYWwoY29uc3QgVCogZGF0YSwgdW5zaWduZWQgbGVuLCBWZWN0b3I8
Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2RlUG9saWN5IHBvbGljeSkNCiB7DQogICAgIG91dC5jbGVh
cigpOw0KLSAgICBpZiAobGVuID09IDApDQorICAgIGlmICghbGVuKQ0KICAgICAgICAgcmV0dXJu
IHRydWU7DQogDQotICAgIHdoaWxlIChsZW4gJiYgZGF0YVtsZW4tMV0gPT0gJz0nKQ0KLSAgICAg
ICAgLS1sZW47DQotDQogICAgIG91dC5ncm93KGxlbik7DQorDQorICAgIGJvb2wgc2F3RXF1YWxz
U2lnbiA9IGZhbHNlOw0KKyAgICB1bnNpZ25lZCBvdXRMZW5ndGggPSAwOw0KICAgICBmb3IgKHVu
c2lnbmVkIGlkeCA9IDA7IGlkeCA8IGxlbjsgaWR4KyspIHsNCi0gICAgICAgIHVuc2lnbmVkIGNo
YXIgY2ggPSBkYXRhW2lkeF07DQotICAgICAgICBpZiAoKGNoID4gNDcgJiYgY2ggPCA1OCkgfHwg
KGNoID4gNjQgJiYgY2ggPCA5MSkgfHwgKGNoID4gOTYgJiYgY2ggPCAxMjMpIHx8IGNoID09ICcr
JyB8fCBjaCA9PSAnLycgfHwgY2ggPT0gJz0nKQ0KLSAgICAgICAgICAgIG91dFtpZHhdID0gYmFz
ZTY0RGVjTWFwW2NoXTsNCi0gICAgICAgIGVsc2UNCisgICAgICAgIHVuc2lnbmVkIGNoID0gZGF0
YVtpZHhdOw0KKyAgICAgICAgaWYgKGNoID09ICc9JykNCisgICAgICAgICAgICBzYXdFcXVhbHNT
aWduID0gdHJ1ZTsNCisgICAgICAgIGVsc2UgaWYgKCgnMCcgPD0gY2ggJiYgY2ggPD0gJzknKSB8
fCAoJ0EnIDw9IGNoICYmIGNoIDw9ICdaJykgfHwgKCdhJyA8PSBjaCAmJiBjaCA8PSAneicpIHx8
IGNoID09ICcrJyB8fCBjaCA9PSAnLycpIHsNCisgICAgICAgICAgICBpZiAoc2F3RXF1YWxzU2ln
bikNCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgIG91dFtvdXRM
ZW5ndGhdID0gYmFzZTY0RGVjTWFwW2NoXTsNCisgICAgICAgICAgICBvdXRMZW5ndGgrKzsNCisg
ICAgICAgIH0gZWxzZSBpZiAocG9saWN5ID09IEZhaWxPbkludmFsaWRDaGFyYWN0ZXIgfHwgKHBv
bGljeSA9PSBJZ25vcmVXaGl0ZXNwYWNlICYmICFpc1NwYWNlT3JOZXdsaW5lKGNoKSkpDQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICB9DQogDQorICAgIGlmICghb3V0TGVuZ3RoKQ0K
KyAgICAgICAgcmV0dXJuICFzYXdFcXVhbHNTaWduOw0KKw0KKyAgICAvLyBWYWxpZCBkYXRhIGlz
IChuICogNCArIFswLDIsM10pIGNoYXJhY3RlcnMgbG9uZy4NCisgICAgaWYgKChvdXRMZW5ndGgg
JSA0KSA9PSAxKQ0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICANCiAgICAgLy8gNC1ieXRl
IHRvIDMtYnl0ZSBjb252ZXJzaW9uDQotICAgIHVuc2lnbmVkIG91dExlbiA9IGxlbiAtICgobGVu
ICsgMykgLyA0KTsNCi0gICAgaWYgKCFvdXRMZW4gfHwgKChvdXRMZW4gKyAyKSAvIDMpICogNCA8
IGxlbikNCisgICAgb3V0TGVuZ3RoIC09IChvdXRMZW5ndGggKyAzKSAvIDQ7DQorICAgIGlmICgh
b3V0TGVuZ3RoKQ0KICAgICAgICAgcmV0dXJuIGZhbHNlOw0KIA0KICAgICB1bnNpZ25lZCBzaWR4
ID0gMDsNCiAgICAgdW5zaWduZWQgZGlkeCA9IDA7DQotICAgIGlmIChvdXRMZW4gPiAxKSB7DQot
ICAgICAgICB3aGlsZSAoZGlkeCA8IG91dExlbiAtIDIpIHsNCisgICAgaWYgKG91dExlbmd0aCA+
IDEpIHsNCisgICAgICAgIHdoaWxlIChkaWR4IDwgb3V0TGVuZ3RoIC0gMikgew0KICAgICAgICAg
ICAgIG91dFtkaWR4XSA9ICgoKG91dFtzaWR4XSA8PCAyKSAmIDI1NSkgfCAoKG91dFtzaWR4ICsg
MV0gPj4gNCkgJiAwMDMpKTsNCiAgICAgICAgICAgICBvdXRbZGlkeCArIDFdID0gKCgob3V0W3Np
ZHggKyAxXSA8PCA0KSAmIDI1NSkgfCAoKG91dFtzaWR4ICsgMl0gPj4gMikgJiAwMTcpKTsNCiAg
ICAgICAgICAgICBvdXRbZGlkeCArIDJdID0gKCgob3V0W3NpZHggKyAyXSA8PCA2KSAmIDI1NSkg
fCAob3V0W3NpZHggKyAzXSAmIDA3NykpOw0KQEAgLTE3MCwxNiArMTg1LDI2IEBAIGJvb2wgYmFz
ZTY0RGVjb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kNCiAgICAgICAgIH0NCiAgICAgfQ0KIA0K
LSAgICBpZiAoZGlkeCA8IG91dExlbikNCisgICAgaWYgKGRpZHggPCBvdXRMZW5ndGgpDQogICAg
ICAgICBvdXRbZGlkeF0gPSAoKChvdXRbc2lkeF0gPDwgMikgJiAyNTUpIHwgKChvdXRbc2lkeCAr
IDFdID4+IDQpICYgMDAzKSk7DQogDQotICAgIGlmICgrK2RpZHggPCBvdXRMZW4pDQorICAgIGlm
ICgrK2RpZHggPCBvdXRMZW5ndGgpDQogICAgICAgICBvdXRbZGlkeF0gPSAoKChvdXRbc2lkeCAr
IDFdIDw8IDQpICYgMjU1KSB8ICgob3V0W3NpZHggKyAyXSA+PiAyKSAmIDAxNykpOw0KIA0KLSAg
ICBpZiAob3V0TGVuIDwgb3V0LnNpemUoKSkNCi0gICAgICAgIG91dC5zaHJpbmsob3V0TGVuKTsN
CisgICAgaWYgKG91dExlbmd0aCA8IG91dC5zaXplKCkpDQorICAgICAgICBvdXQuc2hyaW5rKG91
dExlbmd0aCk7DQogDQogICAgIHJldHVybiB0cnVlOw0KIH0NCiANCitib29sIGJhc2U2NERlY29k
ZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNl
NjREZWNvZGVQb2xpY3kgcG9saWN5KQ0KK3sNCisgICAgcmV0dXJuIGJhc2U2NERlY29kZUludGVy
bmFsPGNoYXI+KGRhdGEsIGxlbiwgb3V0LCBwb2xpY3kpOw0KIH0NCisNCitib29sIGJhc2U2NERl
Y29kZShjb25zdCBTdHJpbmcmIGluLCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2RlUG9s
aWN5IHBvbGljeSkNCit7DQorICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRlcm5hbDxVQ2hhcj4o
aW4uY2hhcmFjdGVycygpLCBpbi5sZW5ndGgoKSwgb3V0LCBwb2xpY3kpOw0KK30NCisNCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlDQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5o
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5oCShyZXZpc2lv
biA2NjQ4OCkNCisrKyBXZWJDb3JlL3BsYXRmb3JtL3RleHQvQmFzZTY0LmgJKHdvcmtpbmcgY29w
eSkNCkBAIC0xLDUgKzEsNiBAQA0KIC8qDQotICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgKGFwQHdlYmtpdC5vcmcpDQorICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhl
eSBQcm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+DQorICogQ29weXJpZ2h0IChDKSAyMDEwIFBh
dHJpY2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4NCiAgKg0KICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0K
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucw0KQEAgLTI2LDE2ICsyNywxOSBAQA0KICNpZm5kZWYgQmFzZTY0X2gNCiAj
ZGVmaW5lIEJhc2U2NF9oDQogDQorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+DQogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4NCiANCiBuYW1lc3BhY2UgV2ViQ29yZSB7DQogDQorZW51bSBCYXNlNjRE
ZWNvZGVQb2xpY3kgeyBGYWlsT25JbnZhbGlkQ2hhcmFjdGVyLCBJZ25vcmVXaGl0ZXNwYWNlLCBJ
Z25vcmVJbnZhbGlkQ2hhcmFjdGVycyB9Ow0KKw0KIHZvaWQgYmFzZTY0RW5jb2RlKGNvbnN0IFZl
Y3RvcjxjaGFyPiYsIFZlY3RvcjxjaGFyPiYsIGJvb2wgaW5zZXJ0TEZzID0gZmFsc2UpOw0KIHZv
aWQgYmFzZTY0RW5jb2RlKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+JiwgYm9v
bCBpbnNlcnRMRnMgPSBmYWxzZSk7DQogDQotLy8gdGhpcyBkZWNvZGVyIGlzIG5vdCBnZW5lcmFs
IHB1cnBvc2UgLSBpdCByZXR1cm5zIGFuIGVycm9yIGlmIGl0IGVuY291bnRlcnMgYSBsaW5lZmVl
ZCwgYXMgbmVlZGVkIGZvciB3aW5kb3cuYXRvYg0KLWJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZl
Y3RvcjxjaGFyPiYsIFZlY3RvcjxjaGFyPiYpOw0KLWJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IGNo
YXIqLCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+Jik7DQorYm9vbCBiYXNlNjREZWNvZGUoY29uc3Qg
U3RyaW5nJiwgVmVjdG9yPGNoYXI+JiwgQmFzZTY0RGVjb2RlUG9saWN5ID0gRmFpbE9uSW52YWxp
ZENoYXJhY3Rlcik7DQorYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiwgVmVj
dG9yPGNoYXI+JiwgQmFzZTY0RGVjb2RlUG9saWN5ID0gRmFpbE9uSW52YWxpZENoYXJhY3Rlcik7
DQorYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBWZWN0b3I8Y2hhcj4m
LCBCYXNlNjREZWNvZGVQb2xpY3kgPSBGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKTsNCiANCiB9DQog
DQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NDk0OSkNCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkNCkBAIC0xLDMgKzEsMTUgQEANCisyMDEwLTA4LTA4ICBQYXRyaWNrIEdh
bnN0ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuDQorDQorICAgICAgICBBZGQgQmFzZTY0RGVjb2RlUG9saWN5IG9wdGlvbiBh
dCBiYXNlNjREZWNvZGUoKQ0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxNTEwDQorDQorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2Et
ZXhwZWN0ZWQudHh0Og0KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWw6
DQorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFz
dC1wYXRoLWV4cGVjdGVkLnR4dDoNCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVy
L3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGguaHRtbDogQWRkZWQgYWRkaXRpb25hbCBkYXRhIHVy
bHMgdGVzdHMuDQorDQogMjAxMC0wOC0wOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3Jn
Pg0KIA0KICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292Lg0KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EtZXhwZWN0ZWQudHh0DQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDY0OTE0KQ0KKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0
b2EtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpDQpAQCAtMzUsOCArMzUsMTMgQEAgUEFTUyB3
aW5kb3cuYXRvYigiPz8/PyIpIHRocmV3IGV4Y2VwDQogUEFTUyB3aW5kb3cuYXRvYigieiIpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9u
IDUuDQogUEFTUyB3aW5kb3cuYXRvYigienoiKSBpcyAizyINCiBQQVNTIHdpbmRvdy5hdG9iKCJ6
enoiKSBpcyAizzwiDQorUEFTUyB3aW5kb3cuYXRvYigienp6PSIpIGlzICLPPCINCitQQVNTIHdp
bmRvdy5hdG9iKCJ6eno9PSIpIGlzICLPPCINCitQQVNTIHdpbmRvdy5hdG9iKCJ6eno9PT0iKSBp
cyAizzwiDQorUEFTUyB3aW5kb3cuYXRvYigienp6PT09PSIpIGlzICLPPCINCiBQQVNTIHdpbmRv
dy5hdG9iKCJ6enp6IikgaXMgIs888yINCiBQQVNTIHdpbmRvdy5hdG9iKCJ6enp6eiIpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUu
DQorUEFTUyB3aW5kb3cuYXRvYigiej16eiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUuDQogUEFTUyB3aW5kb3cuYXRvYigiPSIp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0
aW9uIDUuDQogUEFTUyB3aW5kb3cuYXRvYigiPT0iKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
VkFMSURfQ0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1Lg0KIFBBU1Mgd2luZG93LmF0b2Io
Ij09PSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00g
RXhjZXB0aW9uIDUuDQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRv
YS5odG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2It
YnRvYS5odG1sCShyZXZpc2lvbiA2NDkxNCkNCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvYXRvYi1idG9hLmh0bWwJKHdvcmtpbmcgY29weSkNCkBAIC00OCw4ICs0OCwxMyBAQCBzaG91
bGRUaHJvdygnd2luZG93LmF0b2IoIj8/Pz8iKScpOw0KIHNob3VsZFRocm93KCd3aW5kb3cuYXRv
YigieiIpJyk7DQogc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6eiIpJywgJyLPIicpOw0KIHNob3Vs
ZEJlKCd3aW5kb3cuYXRvYigienp6IiknLCAnIs9cdTAwM0MiJyk7DQorc2hvdWxkQmUoJ3dpbmRv
dy5hdG9iKCJ6eno9IiknLCAnIs9cdTAwM0MiJyk7DQorc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6
eno9PSIpJywgJyLPXHUwMDNDIicpOw0KK3Nob3VsZEJlKCd3aW5kb3cuYXRvYigienp6PT09Iikn
LCAnIs9cdTAwM0MiJyk7DQorc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6eno9PT09IiknLCAnIs9c
dTAwM0MiJyk7DQogc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6enp6IiknLCAnIs9cdTAwM0PzIicp
Ow0KIHNob3VsZFRocm93KCd3aW5kb3cuYXRvYigienp6enoiKScpOw0KK3Nob3VsZFRocm93KCd3
aW5kb3cuYXRvYigiej16eiIpJyk7DQogc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCI9IiknKTsN
CiBzaG91bGRUaHJvdygnd2luZG93LmF0b2IoIj09IiknKTsNCiBzaG91bGRUaHJvdygnd2luZG93
LmF0b2IoIj09PSIpJyk7DQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9h
ZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGgtZXhwZWN0ZWQudHh0DQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1m
YXN0LXBhdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NDkxNCkNCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkNCkBAIC0xLDMgKzEsOSBAQA0KIFRoaXMgdGVzdHMgdGhhdCB3
aGVuIHRoZSB1c2VyIHN0eWxlIHNoZWV0IGxvY2F0aW9uIGlzIHNldCB0byBhIGRhdGE6IFVSTCB3
aXRoIGJhc2U2NC1lbmNvZGVkIFVURi04IGRhdGEsIHRoZSBzdHlsZSBzaGVldCBpcyBwcm9jZXNz
ZWQgc3luY2hyb25vdXNseSwgaW5zdGVhZCBvZiBpbnZva2luZyB0aGUgYXN5bmNocm9ub3VzIGxv
YWRlci4NCiANCi1QQVNTDQorUEFTUyAxMDBweA0KK1BBU1MgMTEwcHgNCitQQVNTIDEyMHB4DQor
UEFTUyAxMzBweA0KK1BBU1MgMTQwcHgNCitQQVNTIDE1MHB4DQorUEFTUyAxNjBweA0KSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFz
dC1wYXRoLmh0bWwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1sCShyZXZpc2lvbiA2NDkxNCkN
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0
LWZhc3QtcGF0aC5odG1sCSh3b3JraW5nIGNvcHkpDQpAQCAtMywyMCArMywzMSBAQA0KICAgICBV
Ukwgd2l0aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBkYXRhLCB0aGUgc3R5bGUgc2hlZXQgaXMgcHJv
Y2Vzc2VkDQogICAgIHN5bmNocm9ub3VzbHksIGluc3RlYWQgb2YgaW52b2tpbmcgdGhlIGFzeW5j
aHJvbm91cyBsb2FkZXIuDQogPC9wPg0KLTxwIGlkPSJyZXN1bHQiPjwvcD4NCiA8c2NyaXB0Pg0K
LSAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOw0KKyAg
ICB2YXIgdGVzdE9iamVjdHMgPSBbDQorICAgICAgICB7cmVzdWx0OnRydWUsICBzaXplOiIxMDBw
eCIsIHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxZbTlrZVNCN1ptOXVk
QzF6YVhwbE9pQXhNREJ3ZUgwPSJ9LA0KKyAgICAgICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTEw
cHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsICAgICAgICAgICAg
ICAgICAgICAgICBZbTlrZVNCN1ptOXVkQzF6YVhwbE9pQXhNVEJ3ZUgwPSAgICAgICAgICAgICAg
ICAgICJ9LA0KKyAgICAgICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTIwcHgiLCB1cmw6ImRhdGE6
dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsXG4gXHIgXHQgWW05ayBcdCBlU0I3IFxyIFpt
OXVkIFxuIFxuIEMxemFYcCBcciBsT2lBeE0gXHQgakJ3ZUgwPSBcdCBcciBcbiJ9LA0KKyAgICAg
ICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTMwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNl
dD11dGYtODtiYXNlNjQsXHUwMDU5IFx1MDA2RCBcdTAwMzkgXHUwMDZCIGVTQjdabTl1ZCBDMXph
WHBsT2lBeE16QndlIFx1MDA0OCBcdTAwMzAgXHUwMDNEIn0sDQorICAgICAgICB7cmVzdWx0OmZh
bHNlLCBzaXplOiIxNDBweCIsIHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2
NCxZbTlrJCNlU0I3Wm0jOXVkKEMxemFYcClsT2lBeE5EQndlSDA9In0sDQorICAgICAgICB7cmVz
dWx0OmZhbHNlLCBzaXplOiIxNTBweCIsIHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04
O2Jhc2U2NCxZbTlrZSUwMFNCN1olMjBtOXVkQzF6XG5cdGFYcGxPI2lBeCUwM05UQnclZUgwPSJ9
LA0KKyAgICAgICAge3Jlc3VsdDpmYWxzZSwgc2l6ZToiMTYwcHgiLCB1cmw6IiU1MCUzMCUxMCUw
MCUyMCU0MCJ9DQorICAgIF07DQogDQogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsNCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsNCiAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0RW5hYmxlZCh0cnVlKTsN
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24o
ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsWW05a2VTQjdabTl1ZEMxemFYcGxP
aUF4TURCd2VIMD0iKTsNCiANCi0gICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOw0KLSAg
ICAgICAgaWYgKGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZm9udFNpemUgPT0gIjEw
MHB4IikNCi0gICAgICAgICAgICByZXN1bHQuaW5uZXJUZXh0ID0gIlBBU1MiOw0KLSAgICAgICAg
ZWxzZQ0KLSAgICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiRkFJTCI7DQorICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHRlc3RPYmplY3RzLmxlbmd0aDsgaSsrKSB7DQorICAgICAgICAg
ICAgdmFyIG9iaiA9IHRlc3RPYmplY3RzW2ldOw0KKyAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24ob2JqLnVybCk7DQorDQorICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7DQorICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZm9udFNpemUgPT0gb2JqLnNpemU7DQorICAg
ICAgICAgICAgZG9jdW1lbnQud3JpdGUoKHJlc3VsdCA9PSBvYmoucmVzdWx0ID8gIlBBU1MiIDog
IkZBSUwiKSArICIgIiArIG9iai5zaXplICsgIjxicj4iKTsNCisNCisgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKCIiKTsNCisgICAgICAg
IH0NCiAgICAgfSBlbHNlDQotICAgICAgICByZXN1bHQuaW5uZXJUZXh0ID0gIlRoaXMgdGVzdCBj
YW4gb25seSBiZSBydW4gaW4gRHVtcFJlbmRlclRyZWUuIjsNCisgICAgICAgIGRvY3VtZW50Lndy
aXRlKCJUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIGluIER1bXBSZW5kZXJUcmVlLiIpOw0KIDwv
c2NyaXB0Pg0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66276</attachid>
            <date>2010-09-01 14:40:25 -0700</date>
            <delta_ts>2010-09-10 23:04:54 -0700</delta_ts>
            <desc>Patch (from linux)</desc>
            <filename>base64.patch</filename>
            <type>text/plain</type>
            <size>16671</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDY0OTQ5KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDI2IEBADQorMjAxMC0wOC0wOCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAcGFyb2dhLmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLg0KKw0K
KyAgICAgICAgQWRkIEJhc2U2NERlY29kZVBvbGljeSBvcHRpb24gYXQgYmFzZTY0RGVjb2RlKCkN
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTUxMA0K
Kw0KKyAgICAgICAgQWRkIGFuIG9wdGlvbiBmb3IgaWdub3JpbmcgY2hhcmFjdGVycyBpbiBiYXNl
NjQgZGF0YS4NCisgICAgICAgIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBkZWNvZGluZyBkYXRhIHVy
bHMuDQorDQorICAgICAgICBBbHNvIGFkZCBhbiBvdmVybG9hZCB0byBkZWNvZGUgV2ViQ29yZTo6
U3RyaW5nIGRpcmVjdGx5Lg0KKw0KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6DQorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjphdG9iKToNCisgICAgICAgICogcGFnZS9QYWdlLmNw
cDoNCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1c2VyU3R5bGVTaGVldExvY2F0aW9uQ2hhbmdl
ZCk6DQorICAgICAgICAqIHBsYXRmb3JtL3RleHQvQmFzZTY0LmNwcDoNCisgICAgICAgIChXZWJD
b3JlOjpiYXNlNjRFbmNvZGUpOg0KKyAgICAgICAgKFdlYkNvcmU6OmJhc2U2NERlY29kZSk6DQor
ICAgICAgICAoV2ViQ29yZTo6YmFzZTY0RGVjb2RlSW50ZXJuYWwpOg0KKyAgICAgICAgKiBwbGF0
Zm9ybS90ZXh0L0Jhc2U2NC5oOg0KKyAgICAgICAgKFdlYkNvcmU6Oik6DQorDQogMjAxMC0wOC0w
OCAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPg0KIA0KICAgICAgICAgUmV2aWV3ZWQg
YnkgTmlrb2xhcyBaaW1tZXJtYW5uLg0KSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDY0
OTE0KQ0KKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAt
OTU5LDExICs5NTksOCBAQCBTdHJpbmcgRE9NV2luZG93OjphdG9iKGNvbnN0IFN0cmluZyYgZW5j
DQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7DQogICAgIH0NCiANCi0gICAgVmVjdG9yPGNoYXI+
IGluOw0KLSAgICBpbi5hcHBlbmQoZW5jb2RlZFN0cmluZy5jaGFyYWN0ZXJzKCksIGVuY29kZWRT
dHJpbmcubGVuZ3RoKCkpOw0KICAgICBWZWN0b3I8Y2hhcj4gb3V0Ow0KLQ0KLSAgICBpZiAoIWJh
c2U2NERlY29kZShpbiwgb3V0KSkgew0KKyAgICBpZiAoIWJhc2U2NERlY29kZShlbmNvZGVkU3Ry
aW5nLCBvdXQsIEZhaWxPbkludmFsaWRDaGFyYWN0ZXIpKSB7DQogICAgICAgICBlYyA9IElOVkFM
SURfQ0hBUkFDVEVSX0VSUjsNCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsNCiAgICAgfQ0KSW5k
ZXg6IFdlYkNvcmUvcGFnZS9QYWdlLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGFnZS9Q
YWdlLmNwcAkocmV2aXNpb24gNjQ5MTQpDQorKysgV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtNjE1LDIyICs2MTUsMTcgQEAgdm9pZCBQYWdlOjp1c2VyU3R5bGVTaGVl
dExvY2F0aW9uQ2hhbmdlZA0KICAgICBtX2RpZExvYWRVc2VyU3R5bGVTaGVldCA9IGZhbHNlOw0K
ICAgICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nKCk7DQogICAgIG1fdXNlclN0eWxlU2hlZXRN
b2RpZmljYXRpb25UaW1lID0gMDsNCi0gICAgDQorDQogICAgIC8vIERhdGEgVVJMcyB3aXRoIGJh
c2U2NC1lbmNvZGVkIFVURi04IHN0eWxlIHNoZWV0cyBhcmUgY29tbW9uLiBXZSBjYW4gcHJvY2Vz
cyB0aGVtDQogICAgIC8vIHN5bmNocm9ub3VzbHkgYW5kIGF2b2lkIHVzaW5nIGEgbG9hZGVyLiAN
CiAgICAgaWYgKHVybC5wcm90b2NvbElzKCJkYXRhIikgJiYgdXJsLnN0cmluZygpLnN0YXJ0c1dp
dGgoImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsIikpIHsNCiAgICAgICAgIG1f
ZGlkTG9hZFVzZXJTdHlsZVNoZWV0ID0gdHJ1ZTsNCi0gICAgICAgIA0KLSAgICAgICAgY29uc3Qg
dW5zaWduZWQgcHJlZml4TGVuZ3RoID0gMzU7DQotICAgICAgICBWZWN0b3I8Y2hhcj4gZW5jb2Rl
ZERhdGEodXJsLnN0cmluZygpLmxlbmd0aCgpIC0gcHJlZml4TGVuZ3RoKTsNCi0gICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IHByZWZpeExlbmd0aDsgaSA8IHVybC5zdHJpbmcoKS5sZW5ndGgoKTsg
KytpKQ0KLSAgICAgICAgICAgIGVuY29kZWREYXRhW2kgLSBwcmVmaXhMZW5ndGhdID0gc3RhdGlj
X2Nhc3Q8Y2hhcj4odXJsLnN0cmluZygpW2ldKTsNCiANCiAgICAgICAgIFZlY3RvcjxjaGFyPiBz
dHlsZVNoZWV0QXNVVEY4Ow0KLSAgICAgICAgaWYgKGJhc2U2NERlY29kZShlbmNvZGVkRGF0YSwg
c3R5bGVTaGVldEFzVVRGOCkpDQorICAgICAgICBpZiAoYmFzZTY0RGVjb2RlKGRlY29kZVVSTEVz
Y2FwZVNlcXVlbmNlcyh1cmwuc3RyaW5nKCkuc3Vic3RyaW5nKDM1KSksIHN0eWxlU2hlZXRBc1VU
RjgsIElnbm9yZVdoaXRlc3BhY2UpKQ0KICAgICAgICAgICAgIG1fdXNlclN0eWxlU2hlZXQgPSBT
dHJpbmc6OmZyb21VVEY4KHN0eWxlU2hlZXRBc1VURjguZGF0YSgpLCBzdHlsZVNoZWV0QXNVVEY4
LnNpemUoKSk7DQogICAgIH0NCi0gICAgDQorDQogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbWFp
bkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7
DQogICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkpDQogICAgICAgICAgICAgZnJhbWUtPmRv
Y3VtZW50KCktPmNsZWFyUGFnZVVzZXJTaGVldCgpOw0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
dGV4dC9CYXNlNjQuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jh
c2U2NC5jcHAJKHJldmlzaW9uIDY2NDg4KQ0KKysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNl
NjQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMiw2ICsyLDcgQEANCiAgICBDb3B5cmlnaHQgKEMp
IDIwMDAtMjAwMSBEYXdpdCBBbGVtYXllaHUgPGFkYXdpdEBrZGUub3JnPg0KICAgIENvcHlyaWdo
dCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEB3ZWJraXQub3JnPg0KICAgIENvcHly
aWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorICAg
Q29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4N
CiANCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yIG1vZGlmeQ0KICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChMR1BMKQ0KQEAgLTI1LDYgKzI2LDcgQEANCiAN
CiAjaW5jbHVkZSA8bGltaXRzLmg+DQogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4NCisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+DQogDQogbmFtZXNwYWNlIFdlYkNvcmUgew0K
IA0KQEAgLTcwLDcgKzcyLDcgQEAgdm9pZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0YSwg
dW5zaQ0KICAgICAgICAgcmV0dXJuOw0KIA0KICAgICAvLyBJZiB0aGUgaW5wdXQgc3RyaW5nIGlz
IHBhdGhvbG9naWNhbGx5IGxhcmdlLCBqdXN0IHJldHVybiBub3RoaW5nLg0KLSAgICAvLyBOb3Rl
OiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSAib3V0X2xlbiIgY29tcHV0YXRpb24gYmVsb3cu
DQorICAgIC8vIE5vdGU6IEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlICJvdXRMZW5ndGgiIGNv
bXB1dGF0aW9uIGJlbG93Lg0KICAgICAvLyBSYXRoZXIgdGhhbiBiZWluZyBwZXJmZWN0bHkgcHJl
Y2lzZSwgdGhpcyBpcyBhIGJpdCBjb25zZXJ2YXRpdmUuDQogICAgIGNvbnN0IHVuc2lnbmVkIG1h
eElucHV0QnVmZmVyU2l6ZSA9IFVJTlRfTUFYIC8gNzcgKiA3NiAvIDQgKiAzIC0gMjsNCiAgICAg
aWYgKGxlbiA+IG1heElucHV0QnVmZmVyU2l6ZSkNCkBAIC03OSwyMSArODEsMjEgQEAgdm9pZCBi
YXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQ0KICAgICB1bnNpZ25lZCBzaWR4ID0g
MDsNCiAgICAgdW5zaWduZWQgZGlkeCA9IDA7DQogDQotICAgIHVuc2lnbmVkIG91dF9sZW4gPSAo
KGxlbiArIDIpIC8gMykgKiA0Ow0KKyAgICB1bnNpZ25lZCBvdXRMZW5ndGggPSAoKGxlbiArIDIp
IC8gMykgKiA0Ow0KIA0KICAgICAvLyBEZWFsIHdpdGggdGhlIDc2IGNoYXJhY3RlciBwZXIgbGlu
ZSBsaW1pdCBzcGVjaWZpZWQgaW4gUkZDIDIwNDUuDQotICAgIGluc2VydExGcyA9IChpbnNlcnRM
RnMgJiYgb3V0X2xlbiA+IDc2KTsNCisgICAgaW5zZXJ0TEZzID0gKGluc2VydExGcyAmJiBvdXRM
ZW5ndGggPiA3Nik7DQogICAgIGlmIChpbnNlcnRMRnMpDQotICAgICAgICBvdXRfbGVuICs9ICgo
b3V0X2xlbiAtIDEpIC8gNzYpOw0KKyAgICAgICAgb3V0TGVuZ3RoICs9ICgob3V0TGVuZ3RoIC0g
MSkgLyA3Nik7DQogDQogICAgIGludCBjb3VudCA9IDA7DQotICAgIG91dC5ncm93KG91dF9sZW4p
Ow0KKyAgICBvdXQuZ3JvdyhvdXRMZW5ndGgpOw0KIA0KICAgICAvLyAzLWJ5dGUgdG8gNC1ieXRl
IGNvbnZlcnNpb24gKyAwLTYzIHRvIGFzY2lpIHByaW50YWJsZSBjb252ZXJzaW9uDQogICAgIGlm
IChsZW4gPiAxKSB7DQogICAgICAgICB3aGlsZSAoc2lkeCA8IGxlbiAtIDIpIHsNCiAgICAgICAg
ICAgICBpZiAoaW5zZXJ0TEZzKSB7DQotICAgICAgICAgICAgICAgIGlmIChjb3VudCAmJiAoY291
bnQgJSA3NikgPT0gMCkNCisgICAgICAgICAgICAgICAgaWYgKGNvdW50ICYmICEoY291bnQgJSA3
NikpDQogICAgICAgICAgICAgICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7DQogICAgICAgICAg
ICAgICAgIGNvdW50ICs9IDQ7DQogICAgICAgICAgICAgfQ0KQEAgLTEwNiw3ICsxMDgsNyBAQCB2
b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpDQogICAgIH0NCiANCiAgICAg
aWYgKHNpZHggPCBsZW4pIHsNCi0gICAgICAgIGlmIChpbnNlcnRMRnMgJiYgKGNvdW50ID4gMCkg
JiYgKGNvdW50ICUgNzYpID09IDApDQorICAgICAgICBpZiAoaW5zZXJ0TEZzICYmIChjb3VudCA+
IDApICYmICEoY291bnQgJSA3NikpDQogICAgICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7DQog
DQogICAgICAgICBvdXRbZGlkeCsrXSA9IGJhc2U2NEVuY01hcFsoZGF0YVtzaWR4XSA+PiAyKSAm
IDA3N107DQpAQCAtMTI0LDcgKzEyNiw3IEBAIHZvaWQgYmFzZTY0RW5jb2RlKGNvbnN0IGNoYXIq
IGRhdGEsIHVuc2kNCiAgICAgfQ0KIH0NCiANCi1ib29sIGJhc2U2NERlY29kZShjb25zdCBWZWN0
b3I8Y2hhcj4mIGluLCBWZWN0b3I8Y2hhcj4mIG91dCkNCitib29sIGJhc2U2NERlY29kZShjb25z
dCBWZWN0b3I8Y2hhcj4mIGluLCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2RlUG9saWN5
IHBvbGljeSkNCiB7DQogICAgIG91dC5jbGVhcigpOw0KIA0KQEAgLTEzMiwzNiArMTM0LDQ5IEBA
IGJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4NCiAgICAgaWYgKGluLnNp
emUoKSA+IFVJTlRfTUFYKQ0KICAgICAgICAgcmV0dXJuIGZhbHNlOw0KIA0KLSAgICByZXR1cm4g
YmFzZTY0RGVjb2RlKGluLmRhdGEoKSwgaW4uc2l6ZSgpLCBvdXQpOw0KKyAgICByZXR1cm4gYmFz
ZTY0RGVjb2RlKGluLmRhdGEoKSwgaW4uc2l6ZSgpLCBvdXQsIHBvbGljeSk7DQogfQ0KIA0KLWJv
b2wgYmFzZTY0RGVjb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbiwgVmVjdG9yPGNo
YXI+JiBvdXQpDQordGVtcGxhdGU8dHlwZW5hbWUgVD4NCitzdGF0aWMgaW5saW5lIGJvb2wgYmFz
ZTY0RGVjb2RlSW50ZXJuYWwoY29uc3QgVCogZGF0YSwgdW5zaWduZWQgbGVuLCBWZWN0b3I8Y2hh
cj4mIG91dCwgQmFzZTY0RGVjb2RlUG9saWN5IHBvbGljeSkNCiB7DQogICAgIG91dC5jbGVhcigp
Ow0KLSAgICBpZiAobGVuID09IDApDQorICAgIGlmICghbGVuKQ0KICAgICAgICAgcmV0dXJuIHRy
dWU7DQogDQotICAgIHdoaWxlIChsZW4gJiYgZGF0YVtsZW4tMV0gPT0gJz0nKQ0KLSAgICAgICAg
LS1sZW47DQotDQogICAgIG91dC5ncm93KGxlbik7DQorDQorICAgIGJvb2wgc2F3RXF1YWxzU2ln
biA9IGZhbHNlOw0KKyAgICB1bnNpZ25lZCBvdXRMZW5ndGggPSAwOw0KICAgICBmb3IgKHVuc2ln
bmVkIGlkeCA9IDA7IGlkeCA8IGxlbjsgaWR4KyspIHsNCi0gICAgICAgIHVuc2lnbmVkIGNoYXIg
Y2ggPSBkYXRhW2lkeF07DQotICAgICAgICBpZiAoKGNoID4gNDcgJiYgY2ggPCA1OCkgfHwgKGNo
ID4gNjQgJiYgY2ggPCA5MSkgfHwgKGNoID4gOTYgJiYgY2ggPCAxMjMpIHx8IGNoID09ICcrJyB8
fCBjaCA9PSAnLycgfHwgY2ggPT0gJz0nKQ0KLSAgICAgICAgICAgIG91dFtpZHhdID0gYmFzZTY0
RGVjTWFwW2NoXTsNCi0gICAgICAgIGVsc2UNCisgICAgICAgIHVuc2lnbmVkIGNoID0gZGF0YVtp
ZHhdOw0KKyAgICAgICAgaWYgKGNoID09ICc9JykNCisgICAgICAgICAgICBzYXdFcXVhbHNTaWdu
ID0gdHJ1ZTsNCisgICAgICAgIGVsc2UgaWYgKCgnMCcgPD0gY2ggJiYgY2ggPD0gJzknKSB8fCAo
J0EnIDw9IGNoICYmIGNoIDw9ICdaJykgfHwgKCdhJyA8PSBjaCAmJiBjaCA8PSAneicpIHx8IGNo
ID09ICcrJyB8fCBjaCA9PSAnLycpIHsNCisgICAgICAgICAgICBpZiAoc2F3RXF1YWxzU2lnbikN
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgIG91dFtvdXRMZW5n
dGhdID0gYmFzZTY0RGVjTWFwW2NoXTsNCisgICAgICAgICAgICBvdXRMZW5ndGgrKzsNCisgICAg
ICAgIH0gZWxzZSBpZiAocG9saWN5ID09IEZhaWxPbkludmFsaWRDaGFyYWN0ZXIgfHwgKHBvbGlj
eSA9PSBJZ25vcmVXaGl0ZXNwYWNlICYmICFpc1NwYWNlT3JOZXdsaW5lKGNoKSkpDQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICB9DQogDQorICAgIGlmICghb3V0TGVuZ3RoKQ0KKyAg
ICAgICAgcmV0dXJuICFzYXdFcXVhbHNTaWduOw0KKw0KKyAgICAvLyBWYWxpZCBkYXRhIGlzIChu
ICogNCArIFswLDIsM10pIGNoYXJhY3RlcnMgbG9uZy4NCisgICAgaWYgKChvdXRMZW5ndGggJSA0
KSA9PSAxKQ0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICANCiAgICAgLy8gNC1ieXRlIHRv
IDMtYnl0ZSBjb252ZXJzaW9uDQotICAgIHVuc2lnbmVkIG91dExlbiA9IGxlbiAtICgobGVuICsg
MykgLyA0KTsNCi0gICAgaWYgKCFvdXRMZW4gfHwgKChvdXRMZW4gKyAyKSAvIDMpICogNCA8IGxl
bikNCisgICAgb3V0TGVuZ3RoIC09IChvdXRMZW5ndGggKyAzKSAvIDQ7DQorICAgIGlmICghb3V0
TGVuZ3RoKQ0KICAgICAgICAgcmV0dXJuIGZhbHNlOw0KIA0KICAgICB1bnNpZ25lZCBzaWR4ID0g
MDsNCiAgICAgdW5zaWduZWQgZGlkeCA9IDA7DQotICAgIGlmIChvdXRMZW4gPiAxKSB7DQotICAg
ICAgICB3aGlsZSAoZGlkeCA8IG91dExlbiAtIDIpIHsNCisgICAgaWYgKG91dExlbmd0aCA+IDEp
IHsNCisgICAgICAgIHdoaWxlIChkaWR4IDwgb3V0TGVuZ3RoIC0gMikgew0KICAgICAgICAgICAg
IG91dFtkaWR4XSA9ICgoKG91dFtzaWR4XSA8PCAyKSAmIDI1NSkgfCAoKG91dFtzaWR4ICsgMV0g
Pj4gNCkgJiAwMDMpKTsNCiAgICAgICAgICAgICBvdXRbZGlkeCArIDFdID0gKCgob3V0W3NpZHgg
KyAxXSA8PCA0KSAmIDI1NSkgfCAoKG91dFtzaWR4ICsgMl0gPj4gMikgJiAwMTcpKTsNCiAgICAg
ICAgICAgICBvdXRbZGlkeCArIDJdID0gKCgob3V0W3NpZHggKyAyXSA8PCA2KSAmIDI1NSkgfCAo
b3V0W3NpZHggKyAzXSAmIDA3NykpOw0KQEAgLTE3MCwxNiArMTg1LDI2IEBAIGJvb2wgYmFzZTY0
RGVjb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kNCiAgICAgICAgIH0NCiAgICAgfQ0KIA0KLSAg
ICBpZiAoZGlkeCA8IG91dExlbikNCisgICAgaWYgKGRpZHggPCBvdXRMZW5ndGgpDQogICAgICAg
ICBvdXRbZGlkeF0gPSAoKChvdXRbc2lkeF0gPDwgMikgJiAyNTUpIHwgKChvdXRbc2lkeCArIDFd
ID4+IDQpICYgMDAzKSk7DQogDQotICAgIGlmICgrK2RpZHggPCBvdXRMZW4pDQorICAgIGlmICgr
K2RpZHggPCBvdXRMZW5ndGgpDQogICAgICAgICBvdXRbZGlkeF0gPSAoKChvdXRbc2lkeCArIDFd
IDw8IDQpICYgMjU1KSB8ICgob3V0W3NpZHggKyAyXSA+PiAyKSAmIDAxNykpOw0KIA0KLSAgICBp
ZiAob3V0TGVuIDwgb3V0LnNpemUoKSkNCi0gICAgICAgIG91dC5zaHJpbmsob3V0TGVuKTsNCisg
ICAgaWYgKG91dExlbmd0aCA8IG91dC5zaXplKCkpDQorICAgICAgICBvdXQuc2hyaW5rKG91dExl
bmd0aCk7DQogDQogICAgIHJldHVybiB0cnVlOw0KIH0NCiANCitib29sIGJhc2U2NERlY29kZShj
b25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjRE
ZWNvZGVQb2xpY3kgcG9saWN5KQ0KK3sNCisgICAgcmV0dXJuIGJhc2U2NERlY29kZUludGVybmFs
PGNoYXI+KGRhdGEsIGxlbiwgb3V0LCBwb2xpY3kpOw0KIH0NCisNCitib29sIGJhc2U2NERlY29k
ZShjb25zdCBTdHJpbmcmIGluLCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2RlUG9saWN5
IHBvbGljeSkNCit7DQorICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRlcm5hbDxVQ2hhcj4oaW4u
Y2hhcmFjdGVycygpLCBpbi5sZW5ndGgoKSwgb3V0LCBwb2xpY3kpOw0KK30NCisNCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlDQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5oDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5oCShyZXZpc2lvbiA2
NjQ4OCkNCisrKyBXZWJDb3JlL3BsYXRmb3JtL3RleHQvQmFzZTY0LmgJKHdvcmtpbmcgY29weSkN
CkBAIC0xLDUgKzEsNiBAQA0KIC8qDQotICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9z
a3VyeWFrb3YgKGFwQHdlYmtpdC5vcmcpDQorICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+DQorICogQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJp
Y2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4NCiAgKg0KICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucw0KQEAgLTI2LDE2ICsyNywxOSBAQA0KICNpZm5kZWYgQmFzZTY0X2gNCiAjZGVm
aW5lIEJhc2U2NF9oDQogDQorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+DQogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4NCiANCiBuYW1lc3BhY2UgV2ViQ29yZSB7DQogDQorZW51bSBCYXNlNjREZWNv
ZGVQb2xpY3kgeyBGYWlsT25JbnZhbGlkQ2hhcmFjdGVyLCBJZ25vcmVXaGl0ZXNwYWNlLCBJZ25v
cmVJbnZhbGlkQ2hhcmFjdGVycyB9Ow0KKw0KIHZvaWQgYmFzZTY0RW5jb2RlKGNvbnN0IFZlY3Rv
cjxjaGFyPiYsIFZlY3RvcjxjaGFyPiYsIGJvb2wgaW5zZXJ0TEZzID0gZmFsc2UpOw0KIHZvaWQg
YmFzZTY0RW5jb2RlKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+JiwgYm9vbCBp
bnNlcnRMRnMgPSBmYWxzZSk7DQogDQotLy8gdGhpcyBkZWNvZGVyIGlzIG5vdCBnZW5lcmFsIHB1
cnBvc2UgLSBpdCByZXR1cm5zIGFuIGVycm9yIGlmIGl0IGVuY291bnRlcnMgYSBsaW5lZmVlZCwg
YXMgbmVlZGVkIGZvciB3aW5kb3cuYXRvYg0KLWJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3Rv
cjxjaGFyPiYsIFZlY3RvcjxjaGFyPiYpOw0KLWJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IGNoYXIq
LCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+Jik7DQorYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgU3Ry
aW5nJiwgVmVjdG9yPGNoYXI+JiwgQmFzZTY0RGVjb2RlUG9saWN5ID0gRmFpbE9uSW52YWxpZENo
YXJhY3Rlcik7DQorYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiwgVmVjdG9y
PGNoYXI+JiwgQmFzZTY0RGVjb2RlUG9saWN5ID0gRmFpbE9uSW52YWxpZENoYXJhY3Rlcik7DQor
Ym9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBWZWN0b3I8Y2hhcj4mLCBC
YXNlNjREZWNvZGVQb2xpY3kgPSBGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKTsNCiANCiB9DQogDQpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA2NDk0OSkNCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkNCkBAIC0xLDMgKzEsMTUgQEANCisyMDEwLTA4LTA4ICBQYXRyaWNrIEdhbnN0
ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuDQorDQorICAgICAgICBBZGQgQmFzZTY0RGVjb2RlUG9saWN5IG9wdGlvbiBhdCBiYXNl
NjREZWNvZGUoKQ0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQxNTEwDQorDQorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EtZXhwZWN0
ZWQudHh0Og0KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWw6DQorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRo
LWV4cGVjdGVkLnR4dDoNCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXIt
c3R5bGVzaGVldC1mYXN0LXBhdGguaHRtbDogQWRkZWQgYWRkaXRpb25hbCBkYXRhIHVybHMgdGVz
dHMuDQorDQogMjAxMC0wOC0wOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPg0KIA0K
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292Lg0KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EtZXhwZWN0ZWQudHh0DQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDY2NjE3KQ0KKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpDQpAQCAtMzUsOCArMzUsMTMgQEAgUEFTUyB3aW5kb3cu
YXRvYigi0YLQtdGB0YIiKSB0aHJldyBleGNlcA0KIFBBU1Mgd2luZG93LmF0b2IoInoiKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQ0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1
Lg0KIFBBU1Mgd2luZG93LmF0b2IoInp6IikgaXMgIsOPIg0KIFBBU1Mgd2luZG93LmF0b2IoInp6
eiIpIGlzICLDjzwiDQorUEFTUyB3aW5kb3cuYXRvYigienp6PSIpIGlzICLDjzwiDQorUEFTUyB3
aW5kb3cuYXRvYigienp6PT0iKSBpcyAiw488Ig0KK1BBU1Mgd2luZG93LmF0b2IoInp6ej09PSIp
IGlzICLDjzwiDQorUEFTUyB3aW5kb3cuYXRvYigienp6PT09PSIpIGlzICLDjzwiDQogUEFTUyB3
aW5kb3cuYXRvYigienp6eiIpIGlzICLDjzzDsyINCiBQQVNTIHdpbmRvdy5hdG9iKCJ6enp6eiIp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0
aW9uIDUuDQorUEFTUyB3aW5kb3cuYXRvYigiej16eiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUuDQogUEFTUyB3aW5kb3cuYXRv
YigiPSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00g
RXhjZXB0aW9uIDUuDQogUEFTUyB3aW5kb3cuYXRvYigiPT0iKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOVkFMSURfQ0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1Lg0KIFBBU1Mgd2luZG93
LmF0b2IoIj09PSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFSQUNURVJfRVJS
OiBET00gRXhjZXB0aW9uIDUuDQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0
b2ItYnRvYS5odG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L2F0b2ItYnRvYS5odG1sCShyZXZpc2lvbiA2NjYxNykNCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvYXRvYi1idG9hLmh0bWwJKHdvcmtpbmcgY29weSkNCkBAIC00OCw4ICs0OCwxMyBA
QCBzaG91bGRUaHJvdygnd2luZG93LmF0b2IoItGC0LXRgdGCIiknKTsNCiBzaG91bGRUaHJvdygn
d2luZG93LmF0b2IoInoiKScpOw0KIHNob3VsZEJlKCd3aW5kb3cuYXRvYigienoiKScsICciw48i
Jyk7DQogc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6enoiKScsICciw49cdTAwM0MiJyk7DQorc2hv
dWxkQmUoJ3dpbmRvdy5hdG9iKCJ6eno9IiknLCAnIsOPXHUwMDNDIicpOw0KK3Nob3VsZEJlKCd3
aW5kb3cuYXRvYigienp6PT0iKScsICciw49cdTAwM0MiJyk7DQorc2hvdWxkQmUoJ3dpbmRvdy5h
dG9iKCJ6eno9PT0iKScsICciw49cdTAwM0MiJyk7DQorc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6
eno9PT09IiknLCAnIsOPXHUwMDNDIicpOw0KIHNob3VsZEJlKCd3aW5kb3cuYXRvYigienp6eiIp
JywgJyLDj1x1MDAzQ8OzIicpOw0KIHNob3VsZFRocm93KCd3aW5kb3cuYXRvYigienp6enoiKScp
Ow0KK3Nob3VsZFRocm93KCd3aW5kb3cuYXRvYigiej16eiIpJyk7DQogc2hvdWxkVGhyb3coJ3dp
bmRvdy5hdG9iKCI9IiknKTsNCiBzaG91bGRUaHJvdygnd2luZG93LmF0b2IoIj09IiknKTsNCiBz
aG91bGRUaHJvdygnd2luZG93LmF0b2IoIj09PSIpJyk7DQpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGgtZXhwZWN0ZWQu
dHh0DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVy
L3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NDkxNCkN
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0
LWZhc3QtcGF0aC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkNCkBAIC0xLDMgKzEsOSBAQA0K
IFRoaXMgdGVzdHMgdGhhdCB3aGVuIHRoZSB1c2VyIHN0eWxlIHNoZWV0IGxvY2F0aW9uIGlzIHNl
dCB0byBhIGRhdGE6IFVSTCB3aXRoIGJhc2U2NC1lbmNvZGVkIFVURi04IGRhdGEsIHRoZSBzdHls
ZSBzaGVldCBpcyBwcm9jZXNzZWQgc3luY2hyb25vdXNseSwgaW5zdGVhZCBvZiBpbnZva2luZyB0
aGUgYXN5bmNocm9ub3VzIGxvYWRlci4NCiANCi1QQVNTDQorUEFTUyAxMDBweA0KK1BBU1MgMTEw
cHgNCitQQVNTIDEyMHB4DQorUEFTUyAxMzBweA0KK1BBU1MgMTQwcHgNCitQQVNTIDE1MHB4DQor
UEFTUyAxNjBweA0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91
c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLmh0bWwNCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1s
CShyZXZpc2lvbiA2NDkxNCkNCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2Fk
ZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1sCSh3b3JraW5nIGNvcHkpDQpAQCAtMywy
MCArMywzMSBAQA0KICAgICBVUkwgd2l0aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBkYXRhLCB0aGUg
c3R5bGUgc2hlZXQgaXMgcHJvY2Vzc2VkDQogICAgIHN5bmNocm9ub3VzbHksIGluc3RlYWQgb2Yg
aW52b2tpbmcgdGhlIGFzeW5jaHJvbm91cyBsb2FkZXIuDQogPC9wPg0KLTxwIGlkPSJyZXN1bHQi
PjwvcD4NCiA8c2NyaXB0Pg0KLSAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlc3VsdCIpOw0KKyAgICB2YXIgdGVzdE9iamVjdHMgPSBbDQorICAgICAgICB7cmVzdWx0
OnRydWUsICBzaXplOiIxMDBweCIsIHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jh
c2U2NCxZbTlrZVNCN1ptOXVkQzF6YVhwbE9pQXhNREJ3ZUgwPSJ9LA0KKyAgICAgICAge3Jlc3Vs
dDp0cnVlLCAgc2l6ZToiMTEwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODti
YXNlNjQsICAgICAgICAgICAgICAgICAgICAgICBZbTlrZVNCN1ptOXVkQzF6YVhwbE9pQXhNVEJ3
ZUgwPSAgICAgICAgICAgICAgICAgICJ9LA0KKyAgICAgICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToi
MTIwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsXG4gXHIgXHQg
WW05ayBcdCBlU0I3IFxyIFptOXVkIFxuIFxuIEMxemFYcCBcciBsT2lBeE0gXHQgakJ3ZUgwPSBc
dCBcciBcbiJ9LA0KKyAgICAgICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTMwcHgiLCB1cmw6ImRh
dGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsXHUwMDU5IFx1MDA2RCBcdTAwMzkgXHUw
MDZCIGVTQjdabTl1ZCBDMXphWHBsT2lBeE16QndlIFx1MDA0OCBcdTAwMzAgXHUwMDNEIn0sDQor
ICAgICAgICB7cmVzdWx0OmZhbHNlLCBzaXplOiIxNDBweCIsIHVybDoiZGF0YTp0ZXh0L2Nzcztj
aGFyc2V0PXV0Zi04O2Jhc2U2NCxZbTlrJCNlU0I3Wm0jOXVkKEMxemFYcClsT2lBeE5EQndlSDA9
In0sDQorICAgICAgICB7cmVzdWx0OmZhbHNlLCBzaXplOiIxNTBweCIsIHVybDoiZGF0YTp0ZXh0
L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxZbTlrZSUwMFNCN1olMjBtOXVkQzF6XG5cdGFYcGxP
I2lBeCUwM05UQnclZUgwPSJ9LA0KKyAgICAgICAge3Jlc3VsdDpmYWxzZSwgc2l6ZToiMTYwcHgi
LCB1cmw6IiU1MCUzMCUxMCUwMCUyMCU0MCJ9DQorICAgIF07DQogDQogICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsNCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsNCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJTdHlsZVNo
ZWV0RW5hYmxlZCh0cnVlKTsNCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJT
dHlsZVNoZWV0TG9jYXRpb24oImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsWW05
a2VTQjdabTl1ZEMxemFYcGxPaUF4TURCd2VIMD0iKTsNCiANCi0gICAgICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOw0KLSAgICAgICAgaWYgKGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9k
eSkuZm9udFNpemUgPT0gIjEwMHB4IikNCi0gICAgICAgICAgICByZXN1bHQuaW5uZXJUZXh0ID0g
IlBBU1MiOw0KLSAgICAgICAgZWxzZQ0KLSAgICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAi
RkFJTCI7DQorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RPYmplY3RzLmxlbmd0aDsg
aSsrKSB7DQorICAgICAgICAgICAgdmFyIG9iaiA9IHRlc3RPYmplY3RzW2ldOw0KKyAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24ob2JqLnVy
bCk7DQorDQorICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7DQorICAgICAgICAg
ICAgdmFyIHJlc3VsdCA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZm9udFNpemUg
PT0gb2JqLnNpemU7DQorICAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoKHJlc3VsdCA9PSBvYmou
cmVzdWx0ID8gIlBBU1MiIDogIkZBSUwiKSArICIgIiArIG9iai5zaXplICsgIjxicj4iKTsNCisN
CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRVc2VyU3R5bGVTaGVldExvY2F0
aW9uKCIiKTsNCisgICAgICAgIH0NCiAgICAgfSBlbHNlDQotICAgICAgICByZXN1bHQuaW5uZXJU
ZXh0ID0gIlRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gaW4gRHVtcFJlbmRlclRyZWUuIjsNCisg
ICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIGluIER1bXBS
ZW5kZXJUcmVlLiIpOw0KIDwvc2NyaXB0Pg0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66975</attachid>
            <date>2010-09-08 17:59:53 -0700</date>
            <delta_ts>2010-09-18 03:19:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41510g.patch</filename>
            <type>text/plain</type>
            <size>16271</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDktMDggIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBh
cm9nYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
QWRkIEJhc2U2NERlY29kZVBvbGljeSBvcHRpb24gYXQgYmFzZTY0RGVjb2RlKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTEwCisKKyAgICAgICAg
QWRkIGFuIG9wdGlvbiBmb3IgaWdub3JpbmcgY2hhcmFjdGVycyBpbiBiYXNlNjQgZGF0YS4KKyAg
ICAgICAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGRlY29kaW5nIGRhdGEgdXJscy4KKworICAgICAg
ICBBbHNvIGFkZCBhbiBvdmVybG9hZCB0byBkZWNvZGUgV2ViQ29yZTo6U3RyaW5nIGRpcmVjdGx5
LgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjphdG9iKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvQmFzZTY0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJhc2U2NEVuY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpiYXNlNjREZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6YmFzZTY0
RGVjb2RlSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvQmFzZTY0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjopOgorCiAyMDEwLTA5LTA4ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05OTQsMTEgKzk5NCw4IEBAIFN0cmluZyBET01XaW5kb3c6OmF0
b2IoY29uc3QgU3RyaW5nJiBlbmMKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAot
ICAgIFZlY3RvcjxjaGFyPiBpbjsKLSAgICBpbi5hcHBlbmQoZW5jb2RlZFN0cmluZy5jaGFyYWN0
ZXJzKCksIGVuY29kZWRTdHJpbmcubGVuZ3RoKCkpOwogICAgIFZlY3RvcjxjaGFyPiBvdXQ7Ci0K
LSAgICBpZiAoIWJhc2U2NERlY29kZShpbiwgb3V0KSkgeworICAgIGlmICghYmFzZTY0RGVjb2Rl
KGVuY29kZWRTdHJpbmcsIG91dCwgRmFpbE9uSW52YWxpZENoYXJhY3RlcikpIHsKICAgICAgICAg
ZWMgPSBJTlZBTElEX0NIQVJBQ1RFUl9FUlI7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAg
ICB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvcGFnZS9QYWdlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjIxLDIyICs2MjEsMTcgQEAgdm9pZCBQYWdlOjp1c2VyU3R5bGVT
aGVldExvY2F0aW9uQ2hhbmdlZAogICAgIG1fZGlkTG9hZFVzZXJTdHlsZVNoZWV0ID0gZmFsc2U7
CiAgICAgbV91c2VyU3R5bGVTaGVldCA9IFN0cmluZygpOwogICAgIG1fdXNlclN0eWxlU2hlZXRN
b2RpZmljYXRpb25UaW1lID0gMDsKLSAgICAKKwogICAgIC8vIERhdGEgVVJMcyB3aXRoIGJhc2U2
NC1lbmNvZGVkIFVURi04IHN0eWxlIHNoZWV0cyBhcmUgY29tbW9uLiBXZSBjYW4gcHJvY2VzcyB0
aGVtCiAgICAgLy8gc3luY2hyb25vdXNseSBhbmQgYXZvaWQgdXNpbmcgYSBsb2FkZXIuIAogICAg
IGlmICh1cmwucHJvdG9jb2xJcygiZGF0YSIpICYmIHVybC5zdHJpbmcoKS5zdGFydHNXaXRoKCJk
YXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCIpKSB7CiAgICAgICAgIG1fZGlkTG9h
ZFVzZXJTdHlsZVNoZWV0ID0gdHJ1ZTsKLSAgICAgICAgCi0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IHByZWZpeExlbmd0aCA9IDM1OwotICAgICAgICBWZWN0b3I8Y2hhcj4gZW5jb2RlZERhdGEodXJs
LnN0cmluZygpLmxlbmd0aCgpIC0gcHJlZml4TGVuZ3RoKTsKLSAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gcHJlZml4TGVuZ3RoOyBpIDwgdXJsLnN0cmluZygpLmxlbmd0aCgpOyArK2kpCi0gICAg
ICAgICAgICBlbmNvZGVkRGF0YVtpIC0gcHJlZml4TGVuZ3RoXSA9IHN0YXRpY19jYXN0PGNoYXI+
KHVybC5zdHJpbmcoKVtpXSk7CiAKICAgICAgICAgVmVjdG9yPGNoYXI+IHN0eWxlU2hlZXRBc1VU
Rjg7Ci0gICAgICAgIGlmIChiYXNlNjREZWNvZGUoZW5jb2RlZERhdGEsIHN0eWxlU2hlZXRBc1VU
RjgpKQorICAgICAgICBpZiAoYmFzZTY0RGVjb2RlKGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyh1
cmwuc3RyaW5nKCkuc3Vic3RyaW5nKDM1KSksIHN0eWxlU2hlZXRBc1VURjgsIElnbm9yZVdoaXRl
c3BhY2UpKQogICAgICAgICAgICAgbV91c2VyU3R5bGVTaGVldCA9IFN0cmluZzo6ZnJvbVVURjgo
c3R5bGVTaGVldEFzVVRGOC5kYXRhKCksIHN0eWxlU2hlZXRBc1VURjguc2l6ZSgpKTsKICAgICB9
Ci0gICAgCisKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBpZiAoZnJhbWUt
PmRvY3VtZW50KCkpCiAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlUGFnZVVz
ZXJTaGVldCgpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAJKHJldmlzaW9uIDY2OTk3
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIsNiArMiw3IEBACiAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEYXdpdCBBbGVtYXllaHUg
PGFkYXdpdEBrZGUub3JnPgogICAgQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFr
b3YgPGFwQHdlYmtpdC5vcmc+CiAgICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICAgQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fu
c3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChMR1BM
KQpAQCAtMjUsNiArMjYsNyBAQAogCiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8d3Rm
L1N0cmluZ0V4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcwLDcgKzcyLDcgQEAgdm9pZCBiYXNlNjRFbmNvZGUoY29u
c3QgY2hhciogZGF0YSwgdW5zaQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiB0aGUgaW5w
dXQgc3RyaW5nIGlzIHBhdGhvbG9naWNhbGx5IGxhcmdlLCBqdXN0IHJldHVybiBub3RoaW5nLgot
ICAgIC8vIE5vdGU6IEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlICJvdXRfbGVuIiBjb21wdXRh
dGlvbiBiZWxvdy4KKyAgICAvLyBOb3RlOiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSAib3V0
TGVuZ3RoIiBjb21wdXRhdGlvbiBiZWxvdy4KICAgICAvLyBSYXRoZXIgdGhhbiBiZWluZyBwZXJm
ZWN0bHkgcHJlY2lzZSwgdGhpcyBpcyBhIGJpdCBjb25zZXJ2YXRpdmUuCiAgICAgY29uc3QgdW5z
aWduZWQgbWF4SW5wdXRCdWZmZXJTaXplID0gVUlOVF9NQVggLyA3NyAqIDc2IC8gNCAqIDMgLSAy
OwogICAgIGlmIChsZW4gPiBtYXhJbnB1dEJ1ZmZlclNpemUpCkBAIC03OSwyMSArODEsMjEgQEAg
dm9pZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQogICAgIHVuc2lnbmVkIHNp
ZHggPSAwOwogICAgIHVuc2lnbmVkIGRpZHggPSAwOwogCi0gICAgdW5zaWduZWQgb3V0X2xlbiA9
ICgobGVuICsgMikgLyAzKSAqIDQ7CisgICAgdW5zaWduZWQgb3V0TGVuZ3RoID0gKChsZW4gKyAy
KSAvIDMpICogNDsKIAogICAgIC8vIERlYWwgd2l0aCB0aGUgNzYgY2hhcmFjdGVyIHBlciBsaW5l
IGxpbWl0IHNwZWNpZmllZCBpbiBSRkMgMjA0NS4KLSAgICBpbnNlcnRMRnMgPSAoaW5zZXJ0TEZz
ICYmIG91dF9sZW4gPiA3Nik7CisgICAgaW5zZXJ0TEZzID0gKGluc2VydExGcyAmJiBvdXRMZW5n
dGggPiA3Nik7CiAgICAgaWYgKGluc2VydExGcykKLSAgICAgICAgb3V0X2xlbiArPSAoKG91dF9s
ZW4gLSAxKSAvIDc2KTsKKyAgICAgICAgb3V0TGVuZ3RoICs9ICgob3V0TGVuZ3RoIC0gMSkgLyA3
Nik7CiAKICAgICBpbnQgY291bnQgPSAwOwotICAgIG91dC5ncm93KG91dF9sZW4pOworICAgIG91
dC5ncm93KG91dExlbmd0aCk7CiAKICAgICAvLyAzLWJ5dGUgdG8gNC1ieXRlIGNvbnZlcnNpb24g
KyAwLTYzIHRvIGFzY2lpIHByaW50YWJsZSBjb252ZXJzaW9uCiAgICAgaWYgKGxlbiA+IDEpIHsK
ICAgICAgICAgd2hpbGUgKHNpZHggPCBsZW4gLSAyKSB7CiAgICAgICAgICAgICBpZiAoaW5zZXJ0
TEZzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNvdW50ICYmIChjb3VudCAlIDc2KSA9PSAwKQor
ICAgICAgICAgICAgICAgIGlmIChjb3VudCAmJiAhKGNvdW50ICUgNzYpKQogICAgICAgICAgICAg
ICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7CiAgICAgICAgICAgICAgICAgY291bnQgKz0gNDsK
ICAgICAgICAgICAgIH0KQEAgLTEwNiw3ICsxMDgsNyBAQCB2b2lkIGJhc2U2NEVuY29kZShjb25z
dCBjaGFyKiBkYXRhLCB1bnNpCiAgICAgfQogCiAgICAgaWYgKHNpZHggPCBsZW4pIHsKLSAgICAg
ICAgaWYgKGluc2VydExGcyAmJiAoY291bnQgPiAwKSAmJiAoY291bnQgJSA3NikgPT0gMCkKKyAg
ICAgICAgaWYgKGluc2VydExGcyAmJiAoY291bnQgPiAwKSAmJiAhKGNvdW50ICUgNzYpKQogICAg
ICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7CiAKICAgICAgICAgb3V0W2RpZHgrK10gPSBiYXNl
NjRFbmNNYXBbKGRhdGFbc2lkeF0gPj4gMikgJiAwNzddOwpAQCAtMTI0LDcgKzEyNiw3IEBAIHZv
aWQgYmFzZTY0RW5jb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kKICAgICB9CiB9CiAKLWJvb2wg
YmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0KQor
Ym9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiBpbiwgVmVjdG9yPGNoYXI+JiBv
dXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCiB7CiAgICAgb3V0LmNsZWFyKCk7CiAKQEAg
LTEzMiwzNiArMTM0LDQ5IEBAIGJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYg
aW4KICAgICBpZiAoaW4uc2l6ZSgpID4gVUlOVF9NQVgpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHJldHVybiBiYXNlNjREZWNvZGUoaW4uZGF0YSgpLCBpbi5zaXplKCksIG91dCk7Cisg
ICAgcmV0dXJuIGJhc2U2NERlY29kZShpbi5kYXRhKCksIGluLnNpemUoKSwgb3V0LCBwb2xpY3kp
OwogfQogCi1ib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW4s
IFZlY3RvcjxjaGFyPiYgb3V0KQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0YXRpYyBpbmxpbmUg
Ym9vbCBiYXNlNjREZWNvZGVJbnRlcm5hbChjb25zdCBUKiBkYXRhLCB1bnNpZ25lZCBsZW4sIFZl
Y3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5KQogewogICAgIG91dC5j
bGVhcigpOwotICAgIGlmIChsZW4gPT0gMCkKKyAgICBpZiAoIWxlbikKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICB3aGlsZSAobGVuICYmIGRhdGFbbGVuLTFdID09ICc9JykKLSAgICAgICAg
LS1sZW47Ci0KICAgICBvdXQuZ3JvdyhsZW4pOworCisgICAgYm9vbCBzYXdFcXVhbHNTaWduID0g
ZmFsc2U7CisgICAgdW5zaWduZWQgb3V0TGVuZ3RoID0gMDsKICAgICBmb3IgKHVuc2lnbmVkIGlk
eCA9IDA7IGlkeCA8IGxlbjsgaWR4KyspIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBjaCA9IGRh
dGFbaWR4XTsKLSAgICAgICAgaWYgKChjaCA+IDQ3ICYmIGNoIDwgNTgpIHx8IChjaCA+IDY0ICYm
IGNoIDwgOTEpIHx8IChjaCA+IDk2ICYmIGNoIDwgMTIzKSB8fCBjaCA9PSAnKycgfHwgY2ggPT0g
Jy8nIHx8IGNoID09ICc9JykKLSAgICAgICAgICAgIG91dFtpZHhdID0gYmFzZTY0RGVjTWFwW2No
XTsKLSAgICAgICAgZWxzZQorICAgICAgICB1bnNpZ25lZCBjaCA9IGRhdGFbaWR4XTsKKyAgICAg
ICAgaWYgKGNoID09ICc9JykKKyAgICAgICAgICAgIHNhd0VxdWFsc1NpZ24gPSB0cnVlOworICAg
ICAgICBlbHNlIGlmICgoJzAnIDw9IGNoICYmIGNoIDw9ICc5JykgfHwgKCdBJyA8PSBjaCAmJiBj
aCA8PSAnWicpIHx8ICgnYScgPD0gY2ggJiYgY2ggPD0gJ3onKSB8fCBjaCA9PSAnKycgfHwgY2gg
PT0gJy8nKSB7CisgICAgICAgICAgICBpZiAoc2F3RXF1YWxzU2lnbikKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBvdXRbb3V0TGVuZ3RoXSA9IGJhc2U2NERlY01h
cFtjaF07CisgICAgICAgICAgICBvdXRMZW5ndGgrKzsKKyAgICAgICAgfSBlbHNlIGlmIChwb2xp
Y3kgPT0gRmFpbE9uSW52YWxpZENoYXJhY3RlciB8fCAocG9saWN5ID09IElnbm9yZVdoaXRlc3Bh
Y2UgJiYgIWlzU3BhY2VPck5ld2xpbmUoY2gpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKKyAgICBpZiAoIW91dExlbmd0aCkKKyAgICAgICAgcmV0dXJuICFzYXdFcXVhbHNT
aWduOworCisgICAgLy8gVmFsaWQgZGF0YSBpcyAobiAqIDQgKyBbMCwyLDNdKSBjaGFyYWN0ZXJz
IGxvbmcuCisgICAgaWYgKChvdXRMZW5ndGggJSA0KSA9PSAxKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCiAgICAgLy8gNC1ieXRlIHRvIDMtYnl0ZSBjb252ZXJzaW9uCi0gICAgdW5zaWdu
ZWQgb3V0TGVuID0gbGVuIC0gKChsZW4gKyAzKSAvIDQpOwotICAgIGlmICghb3V0TGVuIHx8ICgo
b3V0TGVuICsgMikgLyAzKSAqIDQgPCBsZW4pCisgICAgb3V0TGVuZ3RoIC09IChvdXRMZW5ndGgg
KyAzKSAvIDQ7CisgICAgaWYgKCFvdXRMZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIHVuc2lnbmVkIHNpZHggPSAwOwogICAgIHVuc2lnbmVkIGRpZHggPSAwOwotICAgIGlmIChv
dXRMZW4gPiAxKSB7Ci0gICAgICAgIHdoaWxlIChkaWR4IDwgb3V0TGVuIC0gMikgeworICAgIGlm
IChvdXRMZW5ndGggPiAxKSB7CisgICAgICAgIHdoaWxlIChkaWR4IDwgb3V0TGVuZ3RoIC0gMikg
ewogICAgICAgICAgICAgb3V0W2RpZHhdID0gKCgob3V0W3NpZHhdIDw8IDIpICYgMjU1KSB8ICgo
b3V0W3NpZHggKyAxXSA+PiA0KSAmIDAwMykpOwogICAgICAgICAgICAgb3V0W2RpZHggKyAxXSA9
ICgoKG91dFtzaWR4ICsgMV0gPDwgNCkgJiAyNTUpIHwgKChvdXRbc2lkeCArIDJdID4+IDIpICYg
MDE3KSk7CiAgICAgICAgICAgICBvdXRbZGlkeCArIDJdID0gKCgob3V0W3NpZHggKyAyXSA8PCA2
KSAmIDI1NSkgfCAob3V0W3NpZHggKyAzXSAmIDA3NykpOwpAQCAtMTcwLDE2ICsxODUsMjYgQEAg
Ym9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQogICAgICAgICB9CiAgICAg
fQogCi0gICAgaWYgKGRpZHggPCBvdXRMZW4pCisgICAgaWYgKGRpZHggPCBvdXRMZW5ndGgpCiAg
ICAgICAgIG91dFtkaWR4XSA9ICgoKG91dFtzaWR4XSA8PCAyKSAmIDI1NSkgfCAoKG91dFtzaWR4
ICsgMV0gPj4gNCkgJiAwMDMpKTsKIAotICAgIGlmICgrK2RpZHggPCBvdXRMZW4pCisgICAgaWYg
KCsrZGlkeCA8IG91dExlbmd0aCkKICAgICAgICAgb3V0W2RpZHhdID0gKCgob3V0W3NpZHggKyAx
XSA8PCA0KSAmIDI1NSkgfCAoKG91dFtzaWR4ICsgMl0gPj4gMikgJiAwMTcpKTsKIAotICAgIGlm
IChvdXRMZW4gPCBvdXQuc2l6ZSgpKQotICAgICAgICBvdXQuc2hyaW5rKG91dExlbik7CisgICAg
aWYgKG91dExlbmd0aCA8IG91dC5zaXplKCkpCisgICAgICAgIG91dC5zaHJpbmsob3V0TGVuZ3Ro
KTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBsZW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xp
Y3kgcG9saWN5KQoreworICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRlcm5hbDxjaGFyPihkYXRh
LCBsZW4sIG91dCwgcG9saWN5KTsKIH0KKworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgU3RyaW5n
JiBpbiwgVmVjdG9yPGNoYXI+JiBvdXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCit7Cisg
ICAgcmV0dXJuIGJhc2U2NERlY29kZUludGVybmFsPFVDaGFyPihpbi5jaGFyYWN0ZXJzKCksIGlu
Lmxlbmd0aCgpLCBvdXQsIHBvbGljeSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL3RleHQvQmFzZTY0LmgJKHJldmlzaW9uIDY2OTk3KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0Jhc2U2NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQor
ICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2Eu
Y29tPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxNiArMjcsMTkgQEAK
ICNpZm5kZWYgQmFzZTY0X2gKICNkZWZpbmUgQmFzZTY0X2gKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2VudW0gQmFzZTY0RGVjb2RlUG9saWN5IHsgRmFpbE9uSW52YWxpZENoYXJhY3RlciwgSWdub3Jl
V2hpdGVzcGFjZSwgSWdub3JlSW52YWxpZENoYXJhY3RlcnMgfTsKKwogdm9pZCBiYXNlNjRFbmNv
ZGUoY29uc3QgVmVjdG9yPGNoYXI+JiwgVmVjdG9yPGNoYXI+JiwgYm9vbCBpbnNlcnRMRnMgPSBm
YWxzZSk7CiB2b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFyKiwgdW5zaWduZWQsIFZlY3Rvcjxj
aGFyPiYsIGJvb2wgaW5zZXJ0TEZzID0gZmFsc2UpOwogCi0vLyB0aGlzIGRlY29kZXIgaXMgbm90
IGdlbmVyYWwgcHVycG9zZSAtIGl0IHJldHVybnMgYW4gZXJyb3IgaWYgaXQgZW5jb3VudGVycyBh
IGxpbmVmZWVkLCBhcyBuZWVkZWQgZm9yIHdpbmRvdy5hdG9iCi1ib29sIGJhc2U2NERlY29kZShj
b25zdCBWZWN0b3I8Y2hhcj4mLCBWZWN0b3I8Y2hhcj4mKTsKLWJvb2wgYmFzZTY0RGVjb2RlKGNv
bnN0IGNoYXIqLCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+Jik7Citib29sIGJhc2U2NERlY29kZShj
b25zdCBTdHJpbmcmLCBWZWN0b3I8Y2hhcj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgPSBGYWlsT25J
bnZhbGlkQ2hhcmFjdGVyKTsKK2Jvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYs
IFZlY3RvcjxjaGFyPiYsIEJhc2U2NERlY29kZVBvbGljeSA9IEZhaWxPbkludmFsaWRDaGFyYWN0
ZXIpOworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBWZWN0b3I8Y2hh
cj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgPSBGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKTsKIAogfQog
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA2Njk5NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA5LTA4ICBQYXRyaWNrIEdhbnN0ZXJl
ciAgPHBhcm9nYUBwYXJvZ2EuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIEFkZCBCYXNlNjREZWNvZGVQb2xpY3kgb3B0aW9uIGF0IGJhc2U2NERlY29k
ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTUx
MAorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sOgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZh
c3QtcGF0aC5odG1sOiBBZGRlZCBhZGRpdGlvbmFsIGRhdGEgdXJscyB0ZXN0cy4KKwogMjAxMC0w
OS0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2It
YnRvYS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY2OTk3KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDggKzM1LDEzIEBAIFBBU1Mgd2luZG93LmF0b2IoItGC0LXRgdGCIikgdGhyZXcgZXhj
ZXAKIFBBU1Mgd2luZG93LmF0b2IoInoiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURf
Q0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgogUEFTUyB3aW5kb3cuYXRvYigienoiKSBp
cyAiw48iCiBQQVNTIHdpbmRvdy5hdG9iKCJ6enoiKSBpcyAiw488IgorUEFTUyB3aW5kb3cuYXRv
Yigienp6PSIpIGlzICLDjzwiCitQQVNTIHdpbmRvdy5hdG9iKCJ6eno9PSIpIGlzICLDjzwiCitQ
QVNTIHdpbmRvdy5hdG9iKCJ6eno9PT0iKSBpcyAiw488IgorUEFTUyB3aW5kb3cuYXRvYigienp6
PT09PSIpIGlzICLDjzwiCiBQQVNTIHdpbmRvdy5hdG9iKCJ6enp6IikgaXMgIsOPPMOzIgogUEFT
UyB3aW5kb3cuYXRvYigienp6enoiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQ0hB
UkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgorUEFTUyB3aW5kb3cuYXRvYigiej16eiIpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9u
IDUuCiBQQVNTIHdpbmRvdy5hdG9iKCI9IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElE
X0NIQVJBQ1RFUl9FUlI6IERPTSBFeGNlcHRpb24gNS4KIFBBU1Mgd2luZG93LmF0b2IoIj09Iikg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0NIQVJBQ1RFUl9FUlI6IERPTSBFeGNlcHRp
b24gNS4KIFBBU1Mgd2luZG93LmF0b2IoIj09PSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5W
QUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sCShyZXZpc2lvbiA2Njk5NykKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NDgsOCArNDgsMTMgQEAgc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCLRgtC10YHRgiIpJyk7CiBz
aG91bGRUaHJvdygnd2luZG93LmF0b2IoInoiKScpOwogc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6
eiIpJywgJyLDjyInKTsKIHNob3VsZEJlKCd3aW5kb3cuYXRvYigienp6IiknLCAnIsOPXHUwMDND
IicpOworc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6eno9IiknLCAnIsOPXHUwMDNDIicpOworc2hv
dWxkQmUoJ3dpbmRvdy5hdG9iKCJ6eno9PSIpJywgJyLDj1x1MDAzQyInKTsKK3Nob3VsZEJlKCd3
aW5kb3cuYXRvYigienp6PT09IiknLCAnIsOPXHUwMDNDIicpOworc2hvdWxkQmUoJ3dpbmRvdy5h
dG9iKCJ6eno9PT09IiknLCAnIsOPXHUwMDNDIicpOwogc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6
enp6IiknLCAnIsOPXHUwMDNDw7MiJyk7CiBzaG91bGRUaHJvdygnd2luZG93LmF0b2IoInp6enp6
IiknKTsKK3Nob3VsZFRocm93KCd3aW5kb3cuYXRvYigiej16eiIpJyk7CiBzaG91bGRUaHJvdygn
d2luZG93LmF0b2IoIj0iKScpOwogc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCI9PSIpJyk7CiBz
aG91bGRUaHJvdygnd2luZG93LmF0b2IoIj09PSIpJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3Vz
ZXItc3R5bGVzaGVldC1mYXN0LXBhdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2Njk5NykKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFz
dC1wYXRoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwIEBACiBUaGlz
IHRlc3RzIHRoYXQgd2hlbiB0aGUgdXNlciBzdHlsZSBzaGVldCBsb2NhdGlvbiBpcyBzZXQgdG8g
YSBkYXRhOiBVUkwgd2l0aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBkYXRhLCB0aGUgc3R5bGUgc2hl
ZXQgaXMgcHJvY2Vzc2VkIHN5bmNocm9ub3VzbHksIGluc3RlYWQgb2YgaW52b2tpbmcgdGhlIGFz
eW5jaHJvbm91cyBsb2FkZXIuCiAKLVBBU1MKK1BBU1MgMTAwcHgKK1BBU1MgMTEwcHgKK1BBU1Mg
MTIwcHgKK1BBU1MgMTMwcHgKK1BBU1MgMTQwcHgKK1BBU1MgMTUwcHgKK1BBU1MgMTYwcHgKKwpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVl
dC1mYXN0LXBhdGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1sCShyZXZpc2lvbiA2Njk5
NykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hl
ZXQtZmFzdC1wYXRoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMjAgKzMsMzEgQEAKICAgICBV
Ukwgd2l0aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBkYXRhLCB0aGUgc3R5bGUgc2hlZXQgaXMgcHJv
Y2Vzc2VkCiAgICAgc3luY2hyb25vdXNseSwgaW5zdGVhZCBvZiBpbnZva2luZyB0aGUgYXN5bmNo
cm9ub3VzIGxvYWRlci4KIDwvcD4KLTxwIGlkPSJyZXN1bHQiPjwvcD4KIDxzY3JpcHQ+Ci0gICAg
dmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKKyAgICB2YXIg
dGVzdE9iamVjdHMgPSBbCisgICAgICAgIHtyZXN1bHQ6dHJ1ZSwgIHNpemU6IjEwMHB4IiwgdXJs
OiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFltOWtlU0I3Wm05dWRDMXphWHBs
T2lBeE1EQndlSDA9In0sCisgICAgICAgIHtyZXN1bHQ6dHJ1ZSwgIHNpemU6IjExMHB4IiwgdXJs
OiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCAgICAgICAgICAgICAgICAgICAg
ICAgWW05a2VTQjdabTl1ZEMxemFYcGxPaUF4TVRCd2VIMD0gICAgICAgICAgICAgICAgICAifSwK
KyAgICAgICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTIwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7
Y2hhcnNldD11dGYtODtiYXNlNjQsXG4gXHIgXHQgWW05ayBcdCBlU0I3IFxyIFptOXVkIFxuIFxu
IEMxemFYcCBcciBsT2lBeE0gXHQgakJ3ZUgwPSBcdCBcciBcbiJ9LAorICAgICAgICB7cmVzdWx0
OnRydWUsICBzaXplOiIxMzBweCIsIHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jh
c2U2NCxcdTAwNTkgXHUwMDZEIFx1MDAzOSBcdTAwNkIgZVNCN1ptOXVkIEMxemFYcGxPaUF4TXpC
d2UgXHUwMDQ4IFx1MDAzMCBcdTAwM0QifSwKKyAgICAgICAge3Jlc3VsdDpmYWxzZSwgc2l6ZToi
MTQwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsWW05ayQjZVNC
N1ptIzl1ZChDMXphWHApbE9pQXhOREJ3ZUgwPSJ9LAorICAgICAgICB7cmVzdWx0OmZhbHNlLCBz
aXplOiIxNTBweCIsIHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxZbTlr
ZSUwMFNCN1olMjBtOXVkQzF6XG5cdGFYcGxPI2lBeCUwM05UQnclZUgwPSJ9LAorICAgICAgICB7
cmVzdWx0OmZhbHNlLCBzaXplOiIxNjBweCIsIHVybDoiJTUwJTMwJTEwJTAwJTIwJTQwIn0KKyAg
ICBdOwogCiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0RW5hYmxlZCh0cnVlKTsKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbigiZGF0YTp0ZXh0L2NzcztjaGFy
c2V0PXV0Zi04O2Jhc2U2NCxZbTlrZVNCN1ptOXVkQzF6YVhwbE9pQXhNREJ3ZUgwPSIpOwogCi0g
ICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICBpZiAoZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5ib2R5KS5mb250U2l6ZSA9PSAiMTAwcHgiKQotICAgICAgICAgICAgcmVz
dWx0LmlubmVyVGV4dCA9ICJQQVNTIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0
LmlubmVyVGV4dCA9ICJGQUlMIjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0T2Jq
ZWN0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIG9iaiA9IHRlc3RPYmplY3RzW2ld
OworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0VXNlclN0eWxlU2hlZXRMb2Nh
dGlvbihvYmoudXJsKTsKKworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Cisg
ICAgICAgICAgICB2YXIgcmVzdWx0ID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5m
b250U2l6ZSA9PSBvYmouc2l6ZTsKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKChyZXN1bHQg
PT0gb2JqLnJlc3VsdCA/ICJQQVNTIiA6ICJGQUlMIikgKyAiICIgKyBvYmouc2l6ZSArICI8YnI+
Iik7CisKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0
TG9jYXRpb24oIiIpOworICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIHJlc3VsdC5pbm5l
clRleHQgPSAiVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBEdW1wUmVuZGVyVHJlZS4iOwor
ICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBEdW1w
UmVuZGVyVHJlZS4iKTsKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>67480</attachid>
            <date>2010-09-13 15:30:52 -0700</date>
            <delta_ts>2010-09-13 15:30:52 -0700</delta_ts>
            <desc>crash log from bot</desc>
            <filename>DumpRenderTree_2010-09-09-093151_eseidel-macpro.crash</filename>
            <type>text/plain</type>
            <size>40716</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">UHJvY2VzczogICAgICAgICBEdW1wUmVuZGVyVHJlZSBbMjkyNDVdClBhdGg6ICAgICAgICAgICAg
L1VzZXJzL2VzZWlkZWwvUHJvamVjdHMvQ29tbWl0UXVldWUvV2ViS2l0QnVpbGQvUmVsZWFzZS9E
dW1wUmVuZGVyVHJlZQpJZGVudGlmaWVyOiAgICAgIER1bXBSZW5kZXJUcmVlClZlcnNpb246ICAg
ICAgICAgPz8/ICg/Pz8pCkNvZGUgVHlwZTogICAgICAgWDg2IChOYXRpdmUpClBhcmVudCBQcm9j
ZXNzOiAgcGVybCBbMjg2MzRdCgpEYXRlL1RpbWU6ICAgICAgIDIwMTAtMDktMDkgMDk6MzE6NTEu
MzIzIC0wNzAwCk9TIFZlcnNpb246ICAgICAgTWFjIE9TIFggMTAuNS44ICg5TDMxYSkKUmVwb3J0
IFZlcnNpb246ICA2CkFub255bW91cyBVVUlEOiAgMjJEN0NFRkUtRjZBNi00ODQ5LTk4NUMtNEY1
OUYzMTJGRERDCgpFeGNlcHRpb24gVHlwZTogIEVYQ19CUkVBS1BPSU5UIChTSUdUUkFQKQpFeGNl
cHRpb24gQ29kZXM6IDB4MDAwMDAwMDAwMDAwMDAwMiwgMHgwMDAwMDAwMDAwMDAwMDAwCkNyYXNo
ZWQgVGhyZWFkOiAgMAoKQXBwbGljYXRpb24gU3BlY2lmaWMgSW5mb3JtYXRpb246CioqKiBUZXJt
aW5hdGluZyBhcHAgZHVlIHRvIHVuY2F1Z2h0IGV4Y2VwdGlvbiAnTlNJbnZhbGlkQXJndW1lbnRF
eGNlcHRpb24nLCByZWFzb246ICcqKiogLVtOU0NGRGljdGlvbmFyeSBzZXRPYmplY3Q6Zm9yS2V5
Ol06IGF0dGVtcHQgdG8gaW5zZXJ0IG5pbCB2YWx1ZSAoa2V5OiBXZWJLaXRVc2VyU3R5bGVTaGVl
dExvY2F0aW9uUHJlZmVyZW5jZUtleSknCgpUaHJlYWQgMCBDcmFzaGVkOgowICAgY29tLmFwcGxl
LkNvcmVGb3VuZGF0aW9uICAgICAgCTB4OTY0YzJlOTQgX19fVEVSTUlOQVRJTkdfRFVFX1RPX1VO
Q0FVR0hUX0VYQ0VQVElPTl9fXyArIDQKMSAgIGxpYm9iamMuQS5keWxpYiAgICAgICAgICAgICAg
IAkweDk2MjY0ZTNiIG9iamNfZXhjZXB0aW9uX3Rocm93ICsgNDAKMiAgIGNvbS5hcHBsZS5Db3Jl
Rm91bmRhdGlvbiAgICAgIAkweDk2NDQ5ODgzIENGUnVuTG9vcFJ1blNwZWNpZmljICsgNDM1NQoz
ICAgY29tLmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4OTY0NDlhYTggQ0ZSdW5Mb29wUnVu
SW5Nb2RlICsgODgKNCAgIGNvbS5hcHBsZS5Gb3VuZGF0aW9uICAgICAgICAgIAkweDk2OGZlM2Q1
IC1bTlNSdW5Mb29wKE5TUnVuTG9vcCkgcnVuTW9kZTpiZWZvcmVEYXRlOl0gKyAyMTMKNSAgIER1
bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgIAkweDAwMDEwZjA2IF9fWkw3cnVuVGVzdFJLU3Mg
KyAxNDk2CjYgICBEdW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAJMHgwMDAxMTg2NyBkdW1w
UmVuZGVyVHJlZShpbnQsIGNoYXIgY29uc3QqKikgKyAxMzU1CjcgICBEdW1wUmVuZGVyVHJlZSAg
ICAgICAgICAgICAgICAJMHgwMDAxMWI2NCBtYWluICsgOTAgKER1bXBSZW5kZXJUcmVlLm1tOjcw
NCkKOCAgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgIAkweDAwMDAyYzQyIHN0YXJ0ICsg
NTQKClRocmVhZCAxOgowICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTM5MDEy
NjYgbWFjaF9tc2dfdHJhcCArIDEwCjEgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJ
MHg5MzkwOGE1YyBtYWNoX21zZyArIDcyCjIgICBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24gICAg
ICAJMHg5NjQ0OGU3ZSBDRlJ1bkxvb3BSdW5TcGVjaWZpYyArIDE3OTAKMyAgIGNvbS5hcHBsZS5D
b3JlRm91bmRhdGlvbiAgICAgIAkweDk2NDQ5YWE4IENGUnVuTG9vcFJ1bkluTW9kZSArIDg4CjQg
ICBjb20uYXBwbGUuRm91bmRhdGlvbiAgICAgICAgICAJMHg5NjkyZDUyMCArW05TVVJMQ29ubmVj
dGlvbihOU1VSTENvbm5lY3Rpb25SZWFsbHlJbnRlcm5hbCkgX3Jlc291cmNlTG9hZExvb3A6XSAr
IDMyMAo1ICAgY29tLmFwcGxlLkZvdW5kYXRpb24gICAgICAgICAgCTB4OTY4YzlkZmQgLVtOU1Ro
cmVhZCBtYWluXSArIDQ1CjYgICBjb20uYXBwbGUuRm91bmRhdGlvbiAgICAgICAgICAJMHg5Njhj
OTlhNCBfX05TVGhyZWFkX19tYWluX18gKyAzMDgKNyAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAg
ICAgICAgIAkweDkzOTMyMTU1IF9wdGhyZWFkX3N0YXJ0ICsgMzIxCjggICBsaWJTeXN0ZW0uQi5k
eWxpYiAgICAgICAgICAgICAJMHg5MzkzMjAxMiB0aHJlYWRfc3RhcnQgKyAzNAoKVGhyZWFkIDI6
CjAgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJMHg5MzkwMTI2NiBtYWNoX21zZ190
cmFwICsgMTAKMSAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkzOTA4YTVjIG1h
Y2hfbXNnICsgNzIKMiAgIGNvbS5hcHBsZS5Db3JlRm91bmRhdGlvbiAgICAgIAkweDk2NDQ4ZTdl
IENGUnVuTG9vcFJ1blNwZWNpZmljICsgMTc5MAozICAgY29tLmFwcGxlLkNvcmVGb3VuZGF0aW9u
ICAgICAgCTB4OTY0NDlhYTggQ0ZSdW5Mb29wUnVuSW5Nb2RlICsgODgKNCAgIGNvbS5hcHBsZS5D
Rk5ldHdvcmsgICAgICAgICAgIAkweDkwMWQ3MjY0IENGVVJMQ2FjaGVXb3JrZXJUaHJlYWQodm9p
ZCopICsgMzg4CjUgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJMHg5MzkzMjE1NSBf
cHRocmVhZF9zdGFydCArIDMyMQo2ICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4
OTM5MzIwMTIgdGhyZWFkX3N0YXJ0ICsgMzQKClRocmVhZCAzOgowICAgbGliU3lzdGVtLkIuZHls
aWIgICAgICAgICAgICAgCTB4OTM5MDg0NGUgX19zZW13YWl0X3NpZ25hbCArIDEwCjEgICBsaWJT
eXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJMHg5MzkzMmRjZCBwdGhyZWFkX2NvbmRfd2FpdCRV
TklYMjAwMyArIDczCjIgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDMxZmVl
ZiBXVEY6OlRDTWFsbG9jX1BhZ2VIZWFwOjpzY2F2ZW5nZXJUaHJlYWQoKSArIDE3NSAoRmFzdE1h
bGxvYy5jcHA6MjQwMCkKMyAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMzIw
MTlmIFdURjo6VENNYWxsb2NfUGFnZUhlYXA6OnJ1blNjYXZlbmdlclRocmVhZCh2b2lkKikgKyAx
NSAoRmFzdE1hbGxvYy5jcHA6MTUxNikKNCAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAg
IAkweDkzOTMyMTU1IF9wdGhyZWFkX3N0YXJ0ICsgMzIxCjUgICBsaWJTeXN0ZW0uQi5keWxpYiAg
ICAgICAgICAgICAJMHg5MzkzMjAxMiB0aHJlYWRfc3RhcnQgKyAzNAoKVGhyZWFkIDQ6CjAgICBs
aWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJMHg5Mzk1MDZmYSBzZWxlY3QkREFSV0lOX0VY
VFNOICsgMTAKMSAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkzOTMyMTU1IF9w
dGhyZWFkX3N0YXJ0ICsgMzIxCjIgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJMHg5
MzkzMjAxMiB0aHJlYWRfc3RhcnQgKyAzNAoKVGhyZWFkIDU6CjAgICBsaWJTeXN0ZW0uQi5keWxp
YiAgICAgICAgICAgICAJMHg5MzkwMTI2NiBtYWNoX21zZ190cmFwICsgMTAKMSAgIGxpYlN5c3Rl
bS5CLmR5bGliICAgICAgICAgICAgIAkweDkzOTA4YTVjIG1hY2hfbXNnICsgNzIKMiAgIGxpYlN5
c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkzOTc2MTJmIG1hY2hfbXNnX3NlcnZlciArIDQ5
MQozICAgbGlianZtLmR5bGliICAgICAgICAgICAgICAgICAgCTB4MWI2NGVkMjUgMHgxYjY0MDAw
MCArIDYwNzA5CjQgICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjY0ZWFlNSAw
eDFiNjQwMDAwICsgNjAxMzMKNSAgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFi
OTA2MDkxIEpWTV9SYWlzZVNpZ25hbCArIDQ0MjE3Nwo2ICAgbGliU3lzdGVtLkIuZHlsaWIgICAg
ICAgICAgICAgCTB4OTM5N2QyMDAgX3B0aHJlYWRfYm9keSArIDI3CgpUaHJlYWQgNjoKMCAgIGxp
YlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkzOTAxMjY2IG1hY2hfbXNnX3RyYXAgKyAx
MAoxICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTM5MDhhNWMgbWFjaF9tc2cg
KyA3MgoyICAgbGlianZtLmR5bGliICAgICAgICAgICAgICAgICAgCTB4MWI3NTg3MjMgMHgxYjY0
MDAwMCArIDExNDg3MDcKMyAgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFiNzU4
NWJjIDB4MWI2NDAwMDAgKyAxMTQ4MzQ4CjQgICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAg
ICAJMHgxYjY5ZDA2ZCAweDFiNjQwMDAwICsgMzgxMDM3CjUgICBsaWJqdm0uZHlsaWIgICAgICAg
ICAgICAgICAgICAJMHgxYjY5Y2JmNyAweDFiNjQwMDAwICsgMzc5ODk1CjYgICBsaWJqdm0uZHls
aWIgICAgICAgICAgICAgICAgICAJMHgxYjkwNjA5MSBKVk1fUmFpc2VTaWduYWwgKyA0NDIxNzcK
NyAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkzOTdkMjAwIF9wdGhyZWFkX2Jv
ZHkgKyAyNwoKVGhyZWFkIDc6CjAgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJMHg5
MzkwMTI2NiBtYWNoX21zZ190cmFwICsgMTAKMSAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAg
ICAgIAkweDkzOTA4YTVjIG1hY2hfbXNnICsgNzIKMiAgIGxpYmp2bS5keWxpYiAgICAgICAgICAg
ICAgICAgIAkweDFiNzU4N2RhIDB4MWI2NDAwMDAgKyAxMTQ4ODkwCjMgICBsaWJqdm0uZHlsaWIg
ICAgICAgICAgICAgICAgICAJMHgxYjY5ZTA5YSAweDFiNjQwMDAwICsgMzg1MTc4CjQgICBsaWJq
dm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjY5ZDY4NSAweDFiNjQwMDAwICsgMzgyNTk3
CjUgICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjg4MDEyMSBKVk1fTW9uaXRv
cldhaXQgKyA0NjUKNiAgID8/PyAgICAgICAgICAgICAgICAgICAgICAgICAgIAkweDFlMzE2NTU5
IDAgKyA1MDY1NTM2ODkKNyAgID8/PyAgICAgICAgICAgICAgICAgICAgICAgICAgIAkweDFlM2Ex
ZTBjIDAgKyA1MDcxMjUyNjAKOCAgID8/PyAgICAgICAgICAgICAgICAgICAgICAgICAgIAkweDFl
Mjg3ZGMwIDAgKyA1MDU5NzAxMTIKOSAgID8/PyAgICAgICAgICAgICAgICAgICAgICAgICAgIAkw
eDFlMjE1OWQzIDAgKyA1MDU1MDIxNjMKMTAgID8/PyAgICAgICAgICAgICAgICAgICAgICAgICAg
IAkweDFlMjEzMjI3IDAgKyA1MDU0OTIwMDcKMTEgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAg
ICAgIAkweDFiNzU5N2ZhIDB4MWI2NDAwMDAgKyAxMTUzMDE4CjEyICBsaWJqdm0uZHlsaWIgICAg
ICAgICAgICAgICAgICAJMHgxYjY5ZDU3MyAweDFiNjQwMDAwICsgMzgyMzIzCjEzICBsaWJqdm0u
ZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjY5ZDQ2NSAweDFiNjQwMDAwICsgMzgyMDUzCjE0
ICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjY5ZDNhNSAweDFiNjQwMDAwICsg
MzgxODYxCjE1ICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjY5ZDJjOCAweDFi
NjQwMDAwICsgMzgxNjQwCjE2ICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjkw
NjA5MSBKVk1fUmFpc2VTaWduYWwgKyA0NDIxNzcKMTcgIGxpYlN5c3RlbS5CLmR5bGliICAgICAg
ICAgICAgIAkweDkzOTdkMjAwIF9wdGhyZWFkX2JvZHkgKyAyNwoKVGhyZWFkIDg6CjAgICBsaWJT
eXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJMHg5MzkwMTI2NiBtYWNoX21zZ190cmFwICsgMTAK
MSAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkzOTA4YTVjIG1hY2hfbXNnICsg
NzIKMiAgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFiNzU4N2RhIDB4MWI2NDAw
MDAgKyAxMTQ4ODkwCjMgICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjY5ZTA5
YSAweDFiNjQwMDAwICsgMzg1MTc4CjQgICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJ
MHgxYjY5ZDY4NSAweDFiNjQwMDAwICsgMzgyNTk3CjUgICBsaWJqdm0uZHlsaWIgICAgICAgICAg
ICAgICAgICAJMHgxYjg4MDEyMSBKVk1fTW9uaXRvcldhaXQgKyA0NjUKNiAgID8/PyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAkweDFlMjFiOWIxIDAgKyA1MDU1MjY3MDUKNyAgID8/PyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAkweDFlMjE1OWQzIDAgKyA1MDU1MDIxNjMKOCAgID8/PyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAkweDFlMjE1YWFhIDAgKyA1MDU1MDIzNzgKOSAgID8/
PyAgICAgICAgICAgICAgICAgICAgICAgICAgIAkweDFlMjE1YWFhIDAgKyA1MDU1MDIzNzgKMTAg
ID8/PyAgICAgICAgICAgICAgICAgICAgICAgICAgIAkweDFlMjEzMjI3IDAgKyA1MDU0OTIwMDcK
MTEgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFiNzU5N2ZhIDB4MWI2NDAwMDAg
KyAxMTUzMDE4CjEyICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjY5ZDU3MyAw
eDFiNjQwMDAwICsgMzgyMzIzCjEzICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgx
YjY5ZDQ2NSAweDFiNjQwMDAwICsgMzgyMDUzCjE0ICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAg
ICAgICAJMHgxYjY5ZDNhNSAweDFiNjQwMDAwICsgMzgxODYxCjE1ICBsaWJqdm0uZHlsaWIgICAg
ICAgICAgICAgICAgICAJMHgxYjY5ZDJjOCAweDFiNjQwMDAwICsgMzgxNjQwCjE2ICBsaWJqdm0u
ZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjkwNjA5MSBKVk1fUmFpc2VTaWduYWwgKyA0NDIx
NzcKMTcgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkzOTdkMjAwIF9wdGhyZWFk
X2JvZHkgKyAyNwoKVGhyZWFkIDk6CjAgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJ
MHg5MzkwMTJhMiBzZW1hcGhvcmVfd2FpdF90cmFwICsgMTAKMSAgIGxpYmp2bS5keWxpYiAgICAg
ICAgICAgICAgICAgIAkweDFiNjllOGNlIDB4MWI2NDAwMDAgKyAzODcyNzgKMiAgIGxpYmp2bS5k
eWxpYiAgICAgICAgICAgICAgICAgIAkweDFiNjllNDc1IDB4MWI2NDAwMDAgKyAzODYxNjUKMyAg
IGxpYmp2bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFiNjlkMmM4IDB4MWI2NDAwMDAgKyAz
ODE2NDAKNCAgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFiOTA2MDkxIEpWTV9S
YWlzZVNpZ25hbCArIDQ0MjE3Nwo1ICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4
OTM5N2QyMDAgX3B0aHJlYWRfYm9keSArIDI3CgpUaHJlYWQgMTA6CjAgICBsaWJTeXN0ZW0uQi5k
eWxpYiAgICAgICAgICAgICAJMHg5MzkwMTI2NiBtYWNoX21zZ190cmFwICsgMTAKMSAgIGxpYlN5
c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkzOTA4YTVjIG1hY2hfbXNnICsgNzIKMiAgIGxp
Ymp2bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFiNzU4N2RhIDB4MWI2NDAwMDAgKyAxMTQ4
ODkwCjMgICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjc1ODQ3OSAweDFiNjQw
MDAwICsgMTE0ODAyNQo0ICAgbGlianZtLmR5bGliICAgICAgICAgICAgICAgICAgCTB4MWI2OWVl
ZmIgMHgxYjY0MDAwMCArIDM4ODg1OQo1ICAgbGlianZtLmR5bGliICAgICAgICAgICAgICAgICAg
CTB4MWI2OWViZDggMHgxYjY0MDAwMCArIDM4ODA1Ngo2ICAgbGlianZtLmR5bGliICAgICAgICAg
ICAgICAgICAgCTB4MWI2OWQyYzggMHgxYjY0MDAwMCArIDM4MTY0MAo3ICAgbGlianZtLmR5bGli
ICAgICAgICAgICAgICAgICAgCTB4MWI5MDYwOTEgSlZNX1JhaXNlU2lnbmFsICsgNDQyMTc3Cjgg
ICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJMHg5Mzk3ZDIwMCBfcHRocmVhZF9ib2R5
ICsgMjcKClRocmVhZCAxMToKMCAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkz
OTAxMjY2IG1hY2hfbXNnX3RyYXAgKyAxMAoxICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAg
ICAgCTB4OTM5MDhhNWMgbWFjaF9tc2cgKyA3MgoyICAgbGlianZtLmR5bGliICAgICAgICAgICAg
ICAgICAgCTB4MWI3NTg3ZGEgMHgxYjY0MDAwMCArIDExNDg4OTAKMyAgIGxpYmp2bS5keWxpYiAg
ICAgICAgICAgICAgICAgIAkweDFiNzU4NWJjIDB4MWI2NDAwMDAgKyAxMTQ4MzQ4CjQgICBsaWJq
dm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjY5ZjAxMCAweDFiNjQwMDAwICsgMzg5MTM2
CjUgICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjY5ZDJjOCAweDFiNjQwMDAw
ICsgMzgxNjQwCjYgICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjkwNjA5MSBK
Vk1fUmFpc2VTaWduYWwgKyA0NDIxNzcKNyAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAg
IAkweDkzOTdkMjAwIF9wdGhyZWFkX2JvZHkgKyAyNwoKVGhyZWFkIDEyOgowICAgbGliU3lzdGVt
LkIuZHlsaWIgICAgICAgICAgICAgCTB4OTM5MDEyNjYgbWFjaF9tc2dfdHJhcCArIDEwCjEgICBs
aWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJMHg5MzkwOGE1YyBtYWNoX21zZyArIDcyCjIg
ICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjc1ODcyMyAweDFiNjQwMDAwICsg
MTE0ODcwNwozICAgbGlianZtLmR5bGliICAgICAgICAgICAgICAgICAgCTB4MWI2OWY4MmYgMHgx
YjY0MDAwMCArIDM5MTIxNQo0ICAgbGlianZtLmR5bGliICAgICAgICAgICAgICAgICAgCTB4MWI2
OWYzN2EgMHgxYjY0MDAwMCArIDM5MDAxMAo1ICAgbGlianZtLmR5bGliICAgICAgICAgICAgICAg
ICAgCTB4MWI5MDYwOTEgSlZNX1JhaXNlU2lnbmFsICsgNDQyMTc3CjYgICBsaWJTeXN0ZW0uQi5k
eWxpYiAgICAgICAgICAgICAJMHg5Mzk3ZDIwMCBfcHRocmVhZF9ib2R5ICsgMjcKClRocmVhZCAx
MzoKMCAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkzOTAxMjY2IG1hY2hfbXNn
X3RyYXAgKyAxMAoxICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTM5MDhhNWMg
bWFjaF9tc2cgKyA3MgoyICAgbGlianZtLmR5bGliICAgICAgICAgICAgICAgICAgCTB4MWI3NTg3
ZGEgMHgxYjY0MDAwMCArIDExNDg4OTAKMyAgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAgICAg
IAkweDFiNjllMDlhIDB4MWI2NDAwMDAgKyAzODUxNzgKNCAgIGxpYmp2bS5keWxpYiAgICAgICAg
ICAgICAgICAgIAkweDFiNjlkNjg1IDB4MWI2NDAwMDAgKyAzODI1OTcKNSAgIGxpYmp2bS5keWxp
YiAgICAgICAgICAgICAgICAgIAkweDFiODgwMTIxIEpWTV9Nb25pdG9yV2FpdCArIDQ2NQo2ICAg
Pz8/ICAgICAgICAgICAgICAgICAgICAgICAgICAgCTB4MWUyMWI5YjEgMCArIDUwNTUyNjcwNQo3
ICAgPz8/ICAgICAgICAgICAgICAgICAgICAgICAgICAgCTB4MWUyMTU5ZDMgMCArIDUwNTUwMjE2
Mwo4ICAgPz8/ICAgICAgICAgICAgICAgICAgICAgICAgICAgCTB4MWUyMTVhYWEgMCArIDUwNTUw
MjM3OAo5ICAgPz8/ICAgICAgICAgICAgICAgICAgICAgICAgICAgCTB4MWUyMTVhYWEgMCArIDUw
NTUwMjM3OAoxMCAgPz8/ICAgICAgICAgICAgICAgICAgICAgICAgICAgCTB4MWUyMTVjZDkgMCAr
IDUwNTUwMjkzNwoxMSAgPz8/ICAgICAgICAgICAgICAgICAgICAgICAgICAgCTB4MWUyMTMyMjcg
MCArIDUwNTQ5MjAwNwoxMiAgbGlianZtLmR5bGliICAgICAgICAgICAgICAgICAgCTB4MWI3NTk3
ZmEgMHgxYjY0MDAwMCArIDExNTMwMTgKMTMgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAgICAg
IAkweDFiNjlkNTczIDB4MWI2NDAwMDAgKyAzODIzMjMKMTQgIGxpYmp2bS5keWxpYiAgICAgICAg
ICAgICAgICAgIAkweDFiNjlkNDY1IDB4MWI2NDAwMDAgKyAzODIwNTMKMTUgIGxpYmp2bS5keWxp
YiAgICAgICAgICAgICAgICAgIAkweDFiNjlkM2E1IDB4MWI2NDAwMDAgKyAzODE4NjEKMTYgIGxp
Ymp2bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFiNjlkMmM4IDB4MWI2NDAwMDAgKyAzODE2
NDAKMTcgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFiOTA2MDkxIEpWTV9SYWlz
ZVNpZ25hbCArIDQ0MjE3NwoxOCAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTM5
N2QyMDAgX3B0aHJlYWRfYm9keSArIDI3CgpUaHJlYWQgMTQ6CjAgICBsaWJTeXN0ZW0uQi5keWxp
YiAgICAgICAgICAgICAJMHg5MzkwMTI2NiBtYWNoX21zZ190cmFwICsgMTAKMSAgIGxpYlN5c3Rl
bS5CLmR5bGliICAgICAgICAgICAgIAkweDkzOTA4YTVjIG1hY2hfbXNnICsgNzIKMiAgIGxpYmp2
bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFiNzU4N2RhIDB4MWI2NDAwMDAgKyAxMTQ4ODkw
CjMgICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjY5ZTA5YSAweDFiNjQwMDAw
ICsgMzg1MTc4CjQgICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjY5ZDY4NSAw
eDFiNjQwMDAwICsgMzgyNTk3CjUgICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgx
Yjg4MDEyMSBKVk1fTW9uaXRvcldhaXQgKyA0NjUKNiAgID8/PyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAkweDFlMzE2NTU5IDAgKyA1MDY1NTM2ODkKNyAgID8/PyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAkweDFlM2ExZTBjIDAgKyA1MDcxMjUyNjAKOCAgID8/PyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAkweDFlMjg3ZGMwIDAgKyA1MDU5NzAxMTIKOSAgID8/PyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAkweDFlMjE1OWQzIDAgKyA1MDU1MDIxNjMKMTAgID8/PyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAkweDFlMjE1Y2Q5IDAgKyA1MDU1MDI5MzcKMTEgID8/PyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAkweDFlMjEzMjI3IDAgKyA1MDU0OTIwMDcKMTIgIGxpYmp2
bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFiNzU5N2ZhIDB4MWI2NDAwMDAgKyAxMTUzMDE4
CjEzICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjY5ZDU3MyAweDFiNjQwMDAw
ICsgMzgyMzIzCjE0ICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgxYjY5ZDQ2NSAw
eDFiNjQwMDAwICsgMzgyMDUzCjE1ICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJMHgx
YjY5ZDNhNSAweDFiNjQwMDAwICsgMzgxODYxCjE2ICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAg
ICAgICAJMHgxYjY5ZDJjOCAweDFiNjQwMDAwICsgMzgxNjQwCjE3ICBsaWJqdm0uZHlsaWIgICAg
ICAgICAgICAgICAgICAJMHgxYjkwNjA5MSBKVk1fUmFpc2VTaWduYWwgKyA0NDIxNzcKMTggIGxp
YlN5c3RlbS5CLmR5bGliICAgICAgICAgICAgIAkweDkzOTdkMjAwIF9wdGhyZWFkX2JvZHkgKyAy
NwoKVGhyZWFkIDE1OgowICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTM5MDEy
NjYgbWFjaF9tc2dfdHJhcCArIDEwCjEgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAgICAJ
MHg5MzkwOGE1YyBtYWNoX21zZyArIDcyCjIgICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAg
ICAJMHgxYjc1ODdkYSAweDFiNjQwMDAwICsgMTE0ODg5MAozICAgbGlianZtLmR5bGliICAgICAg
ICAgICAgICAgICAgCTB4MWI2OWUwOWEgMHgxYjY0MDAwMCArIDM4NTE3OAo0ICAgbGlianZtLmR5
bGliICAgICAgICAgICAgICAgICAgCTB4MWI2OWQ2ODUgMHgxYjY0MDAwMCArIDM4MjU5Nwo1ICAg
bGlianZtLmR5bGliICAgICAgICAgICAgICAgICAgCTB4MWI4ODAxMjEgSlZNX01vbml0b3JXYWl0
ICsgNDY1CjYgICA/Pz8gICAgICAgICAgICAgICAgICAgICAgICAgICAJMHgxZTIxYjliMSAwICsg
NTA1NTI2NzA1CjcgICA/Pz8gICAgICAgICAgICAgICAgICAgICAgICAgICAJMHgxZTIxNTlkMyAw
ICsgNTA1NTAyMTYzCjggICA/Pz8gICAgICAgICAgICAgICAgICAgICAgICAgICAJMHgxZTIxNWFh
YSAwICsgNTA1NTAyMzc4CjkgICA/Pz8gICAgICAgICAgICAgICAgICAgICAgICAgICAJMHgxZTIx
NWFhYSAwICsgNTA1NTAyMzc4CjEwICA/Pz8gICAgICAgICAgICAgICAgICAgICAgICAgICAJMHgx
ZTIxMzIyNyAwICsgNTA1NDkyMDA3CjExICBsaWJqdm0uZHlsaWIgICAgICAgICAgICAgICAgICAJ
MHgxYjc1OTdmYSAweDFiNjQwMDAwICsgMTE1MzAxOAoxMiAgbGlianZtLmR5bGliICAgICAgICAg
ICAgICAgICAgCTB4MWI2OWQ1NzMgMHgxYjY0MDAwMCArIDM4MjMyMwoxMyAgbGlianZtLmR5bGli
ICAgICAgICAgICAgICAgICAgCTB4MWI2OWQ0NjUgMHgxYjY0MDAwMCArIDM4MjA1MwoxNCAgbGli
anZtLmR5bGliICAgICAgICAgICAgICAgICAgCTB4MWI2OWQzYTUgMHgxYjY0MDAwMCArIDM4MTg2
MQoxNSAgbGlianZtLmR5bGliICAgICAgICAgICAgICAgICAgCTB4MWI2OWQyYzggMHgxYjY0MDAw
MCArIDM4MTY0MAoxNiAgbGlianZtLmR5bGliICAgICAgICAgICAgICAgICAgCTB4MWI5MDYwOTEg
SlZNX1JhaXNlU2lnbmFsICsgNDQyMTc3CjE3ICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgICAg
ICAJMHg5Mzk3ZDIwMCBfcHRocmVhZF9ib2R5ICsgMjcKClRocmVhZCAxNjoKMCAgIGxpYlN5c3Rl
bS5CLmR5bGliICAgICAgICAgICAgIAkweDkzOTAxMjY2IG1hY2hfbXNnX3RyYXAgKyAxMAoxICAg
bGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTM5MDhhNWMgbWFjaF9tc2cgKyA3Mgoy
ICAgbGlianZtLmR5bGliICAgICAgICAgICAgICAgICAgCTB4MWI3NTg3ZGEgMHgxYjY0MDAwMCAr
IDExNDg4OTAKMyAgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFiNjllMDlhIDB4
MWI2NDAwMDAgKyAzODUxNzgKNCAgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFi
NjlkNjg1IDB4MWI2NDAwMDAgKyAzODI1OTcKNSAgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAg
ICAgIAkweDFiODgwMTIxIEpWTV9Nb25pdG9yV2FpdCArIDQ2NQo2ICAgPz8/ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCTB4MWUyMWI5YjEgMCArIDUwNTUyNjcwNQo3ICAgPz8/ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCTB4MWUyMTU5ZDMgMCArIDUwNTUwMjE2Mwo4ICAgPz8/ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCTB4MWUyMTU5ZDMgMCArIDUwNTUwMjE2Mwo5ICAgPz8/ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCTB4MWUyMTMyMjcgMCArIDUwNTQ5MjAwNwoxMCAgbGli
anZtLmR5bGliICAgICAgICAgICAgICAgICAgCTB4MWI3NTk3ZmEgMHgxYjY0MDAwMCArIDExNTMw
MTgKMTEgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFiNjlkNTczIDB4MWI2NDAw
MDAgKyAzODIzMjMKMTIgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAgICAgIAkweDFiNjlkNDY1
IDB4MWI2NDAwMDAgKyAzODIwNTMKMTMgIGxpYmp2bS5keWxpYiAgICAgICAgICAgICAgICAgIAkw
eDFiNjlkM2E1IDB4MWI2NDAwMDAgKyAzODE4NjEKMTQgIGxpYmp2bS5keWxpYiAgICAgICAgICAg
ICAgICAgIAkweDFiNjlkMmM4IDB4MWI2NDAwMDAgKyAzODE2NDAKMTUgIGxpYmp2bS5keWxpYiAg
ICAgICAgICAgICAgICAgIAkweDFiOTA2MDkxIEpWTV9SYWlzZVNpZ25hbCArIDQ0MjE3NwoxNiAg
bGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgCTB4OTM5N2QyMDAgX3B0aHJlYWRfYm9keSAr
IDI3CgpUaHJlYWQgMCBjcmFzaGVkIHdpdGggWDg2IFRocmVhZCBTdGF0ZSAoMzItYml0KToKICBl
YXg6IDB4YTA3MDEwZjAgIGVieDogMHg5NjI2NGUxYyAgZWN4OiAweGEwNzAwMWEwICBlZHg6IDB4
MDAwZDQwMDAKICBlZGk6IDB4MDA4MDhjOTAgIGVzaTogMHhiZmZmZjJjMCAgZWJwOiAweGJmZmZl
ZDY4ICBlc3A6IDB4YmZmZmVkNjgKICAgc3M6IDB4MDAwMDAwMWYgIGVmbDogMHgwMDAwMDI4NiAg
ZWlwOiAweDk2NGMyZTk0ICAgY3M6IDB4MDAwMDAwMTcKICAgZHM6IDB4MDAwMDAwMWYgICBlczog
MHgwMDAwMDAxZiAgIGZzOiAweDAwMDAwMDAwICAgZ3M6IDB4MDAwMDAwMzcKICBjcjI6IDB4MDE0
YmY5ZDAKCkJpbmFyeSBJbWFnZXM6CiAgICAweDEwMDAgLSAgICAweDQzZmY2ICtEdW1wUmVuZGVy
VHJlZSA/Pz8gKD8/PykgPDg5MGE0YjcwYWE2OTgwMzhjZGI4YWNhMDAwNjhiN2RjPiAvVXNlcnMv
ZXNlaWRlbC9Qcm9qZWN0cy9Db21taXRRdWV1ZS9XZWJLaXRCdWlsZC9SZWxlYXNlL0R1bXBSZW5k
ZXJUcmVlCiAgMHgxNWIwMDAgLSAgIDB4MTVjZmZmICBjb20uYXBwbGUuSmF2YVBsdWdpbkNvY29h
IDEyLjYuMCAoMTIuNi4wKSA8YTNmZGJkZjM3YTBjYmRiODY2MTk3MTc3ZGZjMjE1MDc+IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0phdmFWTS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJj
ZXMvSmF2YVBsdWdpbkNvY29hLmJ1bmRsZS9Db250ZW50cy9NYWNPUy9KYXZhUGx1Z2luQ29jb2EK
ICAweDFiMzAwMCAtICAgMHgxYmFmZmYgIGNvbS5hcHBsZS5KYXZhVk0gMTIuNi4wICgxMi42LjAp
IDwwNTdkYTBiMzExNDdkMDIxOGQ0NzJlYmRmZjUxNDk3OT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvSmF2YVZNLmZyYW1ld29yay9WZXJzaW9ucy9BL0phdmFWTQogIDB4MmI4MDAwIC0gICAw
eDRiM2ZlYiAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlIDUzNCsgKDUzNC44KykgPGM5MWJlODY4
OTNhZmE5ODYzMzI5YTQ4MTlkYzQxNGM2PiAvVXNlcnMvZXNlaWRlbC9Qcm9qZWN0cy9Db21taXRR
dWV1ZS9XZWJLaXRCdWlsZC9SZWxlYXNlL0phdmFTY3JpcHRDb3JlLmZyYW1ld29yay9WZXJzaW9u
cy9BL0phdmFTY3JpcHRDb3JlCiAgMHg1NzAwMDAgLSAgIDB4NjgwZmY3ICBjb20uYXBwbGUuV2Vi
S2l0IDUzNCsgKDUzNC44KykgPDhiNGViMmY4NTYxYWU3OGM4MTE4M2JkMDEwMjQ3MzRkPiAvVXNl
cnMvZXNlaWRlbC9Qcm9qZWN0cy9Db21taXRRdWV1ZS9XZWJLaXRCdWlsZC9SZWxlYXNlL1dlYktp
dC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9XZWJLaXQKICAweGMxMTAwMCAtICAgMHhjMThmZTAgIGxp
YnZlcmlmeS5keWxpYiA/Pz8gKD8/PykgPDVlMTRkZTg1M2RlYzgxNjVlNzMyZDk3NjBlNDA3NTQ2
PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9KYXZhVk0uZnJhbWV3b3JrL1ZlcnNpb25zLzEu
NS4wL0xpYnJhcmllcy9saWJ2ZXJpZnkuZHlsaWIKIDB4MTlmZDAwMCAtICAweDI2NWRmZmQgIGNv
bS5hcHBsZS5XZWJDb3JlIDUzNCsgKDUzNC44KykgPDAzZmJiMzExYzg4MDkwYjdjODUyNDJjZWU1
ZDUyYTM2PiAvVXNlcnMvZXNlaWRlbC9Qcm9qZWN0cy9Db21taXRRdWV1ZS9XZWJLaXRCdWlsZC9S
ZWxlYXNlL1dlYkNvcmUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvV2ViQ29yZQoweDE2OTQ2MDAwIC0g
MHgxNmI0ZWZlZiAgY29tLmFwcGxlLlJhd0NhbWVyYS5idW5kbGUgMi4xLjIgKDUxNykgPGFiOWM3
YTBlOTE0N2RlOTAxOTllNGZhOGIwZjUwODYzPiAvU3lzdGVtL0xpYnJhcnkvQ29yZVNlcnZpY2Vz
L1Jhd0NhbWVyYS5idW5kbGUvQ29udGVudHMvTWFjT1MvUmF3Q2FtZXJhCjB4MTc2ZDAwMDAgLSAw
eDE3NmRiZmZlICBjb20uYXBwbGUuSmF2YVBsdWdpbjFfV2ViS2l0IDEyLjYuMCAoMTIuNi4wKSA8
ZjJjMGYxNTZjMDA0OWYwOTk2NDE2OGYxZTA4NTAwYzY+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv
cmtzL0phdmFWTS5mcmFtZXdvcmsvVmVyc2lvbnMvMS41LjAvUmVzb3VyY2VzL0phdmFQbHVnaW4x
X1dlYktpdC5idW5kbGUvQ29udGVudHMvTWFjT1MvSmF2YVBsdWdpbkNvY29hCjB4MTc2ZTUwMDAg
LSAweDE3NmVjZmZmICBKYXZhTmF0aXZlRm91bmRhdGlvbiA/Pz8gKD8/PykgPDA5M2MwM2ExMjFk
OGFmYjQ4NTY5ZTUyOWI0NDJhYjNjPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9KYXZhVk0u
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9KYXZhTmF0aXZlRm91bmRhdGlvbi5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9KYXZhTmF0aXZlRm91bmRhdGlvbgoweDE3NzA4MDAwIC0gMHgxNzcx
M2ZmYiAgbGliZGVwbG95LmpuaWxpYiA/Pz8gKD8/PykgL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvSmF2YVZNLmZyYW1ld29yay9WZXJzaW9ucy9BL1Jlc291cmNlcy9EZXBsb3kuYnVuZGxlL0Nv
bnRlbnRzL1Jlc291cmNlcy9KYXZhUGx1Z2luQ29jb2EuYnVuZGxlL0NvbnRlbnRzL1Jlc291cmNl
cy9KYXZhL2xpYmRlcGxveS5qbmlsaWIKMHgxNzcxZTAwMCAtIDB4MTc3MzhmZWYgIGxpYmphdmEu
am5pbGliID8/PyAoPz8/KSA8MjcxNjcxZTY1MTIyZGQ1N2FjZWRjMzMyYzI4MWM5Njg+IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0phdmFWTS5mcmFtZXdvcmsvVmVyc2lvbnMvMS41LjAvTGli
cmFyaWVzL2xpYmphdmEuam5pbGliCjB4MTc3NDgwMDAgLSAweDE3NzUzZmZiICBsaWJ6aXAuam5p
bGliID8/PyAoPz8/KSA8OWUwOTU4OTk2NGZkMjAxZGYxYmVjZTZmYzMzMTUwYjI+IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0phdmFWTS5mcmFtZXdvcmsvVmVyc2lvbnMvMS41LjAvTGlicmFy
aWVzL2xpYnppcC5qbmlsaWIKMHgxN2IyMDAwMCAtIDB4MTdiMjNmZmMgIGxpYm5pby5qbmlsaWIg
Pz8/ICg/Pz8pIDxjYTIzMDU3ZWZjZjE0NmYxZGZmMjI1YTBkYzM2ZTQ2YT4gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvSmF2YVZNLmZyYW1ld29yay9WZXJzaW9ucy8xLjUuMC9MaWJyYXJpZXMv
bGlibmlvLmpuaWxpYgoweDE3YzA4MDAwIC0gMHgxN2MwOGZmZiAgbGliY21tLmpuaWxpYiA/Pz8g
KD8/PykgPDA0MTk1NzM5MTUxOWY3MTM5NmQxYThjMGJiMDRhMjg2PiAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9KYXZhVk0uZnJhbWV3b3JrL1ZlcnNpb25zLzEuNS4wL0xpYnJhcmllcy9saWJj
bW0uam5pbGliCjB4MTkwYzAwMDAgLSAweDE5MGRjZmU3ICBsaWJQREZSSVAuQS5keWxpYiA/Pz8g
KD8/PykgPDA4M2U4Y2ZhMTNjM2E2MWQ2NmFhNjY0ZDc0YjAwYzNiPiAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1l
d29ya3MvQ29yZUdyYXBoaWNzLmZyYW1ld29yay9WZXJzaW9ucy9BL1Jlc291cmNlcy9saWJQREZS
SVAuQS5keWxpYgoweDE5MGVhMDAwIC0gMHgxOTBlYmZlMSAgY29tLmFwcGxlLnRleHRlbmNvZGlu
Zy51bmljb2RlIDIuMiAoMi4yKSA8NTQyZjJiODkzMGQ2YmRmMTZjMzE4ZmZlYTU0MWFjYWI+IC9T
eXN0ZW0vTGlicmFyeS9UZXh0RW5jb2RpbmdzL1VuaWNvZGUgRW5jb2RpbmdzLmJ1bmRsZS9Db250
ZW50cy9NYWNPUy9Vbmljb2RlIEVuY29kaW5ncwoweDE5ZDQ0MDAwIC0gMHgxOWQ0ZmZmYiAgbGli
bmV0LmpuaWxpYiA/Pz8gKD8/PykgPDQ1OTRhMmJiODgwYWNjZWE4NGU5ZjVjZmU3YmQzZWM4PiAv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9KYXZhVk0uZnJhbWV3b3JrL1ZlcnNpb25zLzEuNS4w
L0xpYnJhcmllcy9saWJuZXQuam5pbGliCjB4MWEzMDUwMDAgLSAweDFhMzBkZmZmICBjb20uYXBw
bGUudGVzdG5ldHNjYXBlcGx1Z2luIDEuMCAoMS4wKSA8NDc3NDAwOTEyYWNkZmFjMzEzM2VmZjg0
NzczMzAyMTE+IC9Vc2Vycy9lc2VpZGVsL1Byb2plY3RzL0NvbW1pdFF1ZXVlL1dlYktpdEJ1aWxk
L1JlbGVhc2UvVGVzdE5ldHNjYXBlUGx1Z0luLnBsdWdpbi9Db250ZW50cy9NYWNPUy9UZXN0TmV0
c2NhcGVQbHVnSW4KMHgxYjY0MDAwMCAtIDB4MWI5OTFmZTMgIGxpYmp2bS5keWxpYiA/Pz8gKD8/
PykgPGQxZjMyNDU2NDY4Zjk1ODg0N2ZmOGEzMWQwZTIwNmZlPiAvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9KYXZhVk0uZnJhbWV3b3JrL1ZlcnNpb25zLzEuNS4wL0hvbWUvYnVuZGxlL0xpYnJh
cmllcy9saWJqdm0uZHlsaWIKMHgyYTg3ZDAwMCAtIDB4MmFhMThmZmYgIGxpYmF3dC5qbmlsaWIg
Pz8/ICg/Pz8pIDw2YzI2ODE1YTk2NzRlNGY5MDIyM2I1Y2YzNDRhNDljNz4gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvSmF2YVZNLmZyYW1ld29yay9WZXJzaW9ucy8xLjUuMC9MaWJyYXJpZXMv
bGliYXd0LmpuaWxpYgoweDJhYWI3MDAwIC0gMHgyYWFmZmZmMyAgbGlic3VuY21tLmpuaWxpYiA/
Pz8gKD8/PykgPGMzNjIzOGI0NTQ3MTkyZTc2NTdmZWQ1YjM3ODJkMzZlPiAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9KYXZhVk0uZnJhbWV3b3JrL1ZlcnNpb25zLzEuNS4wL0xpYnJhcmllcy9s
aWJzdW5jbW0uam5pbGliCjB4MmFiMDYwMDAgLSAweDJhYjI4ZmU3ICBsaWJqcGVnLmpuaWxpYiA/
Pz8gKD8/PykgPDc5NzRhNjU3ODYxZjdjMTgyNWU5ZWRhMzhhNGQ1NzNiPiAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9KYXZhVk0uZnJhbWV3b3JrL1ZlcnNpb25zLzEuNS4wL0xpYnJhcmllcy9s
aWJqcGVnLmpuaWxpYgoweDJhYjgxMDAwIC0gMHgyYWJkZmZmZiAgbGliZm9udG1hbmFnZXIuam5p
bGliID8/PyAoPz8/KSA8MjA0NWE4ZGIxNzZkZDQzY2ZlNjY1MmFlNzllMDFjNjE+IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0phdmFWTS5mcmFtZXdvcmsvVmVyc2lvbnMvMS41LjAvTGlicmFy
aWVzL2xpYmZvbnRtYW5hZ2VyLmpuaWxpYgoweDJhZGE3MDAwIC0gMHgyYWRiOWZmZiAgbGliVHJh
ZGl0aW9uYWxDaGluZXNlQ29udmVydGVyLmR5bGliID8/PyAoPz8/KSA8NjEwODU0MWE0NTJmZjA3
ZDJmNjdkYjRhNDg4YjlkMjI+IC9TeXN0ZW0vTGlicmFyeS9Db3JlU2VydmljZXMvRW5jb2Rpbmdz
L2xpYlRyYWRpdGlvbmFsQ2hpbmVzZUNvbnZlcnRlci5keWxpYgoweDJhZGM5MDAwIC0gMHgyYWRk
N2ZlYiAgbGliU2ltcGxpZmllZENoaW5lc2VDb252ZXJ0ZXIuZHlsaWIgPz8/ICg/Pz8pIDw2OGYx
MzBhNTg1YzNmNTgwZDE2NmVmN2NiYmY0N2U2OT4gL1N5c3RlbS9MaWJyYXJ5L0NvcmVTZXJ2aWNl
cy9FbmNvZGluZ3MvbGliU2ltcGxpZmllZENoaW5lc2VDb252ZXJ0ZXIuZHlsaWIKMHg4ZmUwMDAw
MCAtIDB4OGZlMmRiNDMgIGR5bGQgOTcuMSAoPz8/KSA8NDU4ZWVkMzhhMDA5ZTU2NThhNzk1Nzll
N2JjMjY2MDM+IC91c3IvbGliL2R5bGQKMHg5MDAwMzAwMCAtIDB4OTAwMDNmZjggIGNvbS5hcHBs
ZS5Db2NvYSA2LjUgKD8/PykgPGUwNjRmOTRkOTY5Y2UyNWNiN2RlM2NmYjk4MGMzMjQ5PiAvU3lz
dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db2NvYS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db2NvYQow
eDkwMDA0MDAwIC0gMHg5MDAwNWZmYyAgbGliZmZpLmR5bGliID8/PyAoPz8/KSA8YTNiNTczZWI5
NTBjYTU4MzI5MGY3YjJiNGM0ODZkMDk+IC91c3IvbGliL2xpYmZmaS5keWxpYgoweDkwMGZiMDAw
IC0gMHg5MDEwMWZmZiAgY29tLmFwcGxlLnByaW50LmZyYW1ld29yay5QcmludCAyMTguMC4zICgy
MjAuMikgPDhjNTQxZDU4N2U0MDY4YTVmZTVhNWNlOGVlMjA4NTE2PiAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9QcmludC5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9QcmludAoweDkwMTAyMDAwIC0gMHg5MDEwMmZmZiAgY29tLmFw
cGxlLkNhcmJvbiAxMzYgKDEzNikgPDk4YTVlM2JjMGM0ZmE0NGJiYjA5NzEzYmI4ODcwN2ZlPiAv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ2Fy
Ym9uCjB4OTAxMDMwMDAgLSAweDkwMTAzZmZkICBjb20uYXBwbGUudmVjTGliIDMuNC4yICh2ZWNM
aWIgMy40LjIpIC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL3ZlY0xpYi5mcmFtZXdvcmsvVmVy
c2lvbnMvQS92ZWNMaWIKMHg5MDEwNDAwMCAtIDB4OTAxMDhmZmYgIGxpYkdJRi5keWxpYiA/Pz8g
KD8/PykgPDA5ODQwNzNhMDhjNTljN2M2YmU4MWU1MmNlYmYyYmVjPiAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1l
d29ya3MvSW1hZ2VJTy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGliR0lGLmR5bGli
CjB4OTAxNGQwMDAgLSAweDkwMTRkZmZhICBjb20uYXBwbGUuQ29yZVNlcnZpY2VzIDMyICgzMikg
PDJmY2M4ZjNiZDViYmZjMDAwYjQ3NmNhZDhlNmEzZGQyPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZVNlcnZpY2VzCjB4OTAx
NGUwMDAgLSAweDkwMTdiZmViICBsaWJ2RFNQLmR5bGliID8/PyAoPz8/KSA8ZjM5ZDQyNGJkNTZh
MGU3NWQ1YzdhMjI4MGEyNWNkNzY+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJh
dGUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy92ZWNMaWIuZnJhbWV3b3JrL1ZlcnNp
b25zL0EvbGlidkRTUC5keWxpYgoweDkwMTdjMDAwIC0gMHg5MDFiNmZmZSAgY29tLmFwcGxlLnNl
Y3VyaXR5Zm91bmRhdGlvbiAzLjAuMiAoMzYxMzEpIDxkZDJhNGQxYTRmNTBiODI5MjNkN2NmYzVk
ZjEwNDU1ZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlGb3VuZGF0aW9uLmZy
YW1ld29yay9WZXJzaW9ucy9BL1NlY3VyaXR5Rm91bmRhdGlvbgoweDkwMTdjMDAwIC0gMHg5MDFi
NmZmZSAgY29tLmFwcGxlLnNlY3VyaXR5Zm91bmRhdGlvbiAzLjAuMiAoMzYxMzEpIDxkZDJhNGQx
YTRmNTBiODI5MjNkN2NmYzVkZjEwNDU1ZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2Vj
dXJpdHlGb3VuZGF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL1NlY3VyaXR5Rm91bmRhdGlvbgow
eDkwMTdjMDAwIC0gMHg5MDFiNmZmZSAgY29tLmFwcGxlLnNlY3VyaXR5Zm91bmRhdGlvbiAzLjAu
MiAoMzYxMzEpIDxkZDJhNGQxYTRmNTBiODI5MjNkN2NmYzVkZjEwNDU1ZD4gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlGb3VuZGF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL1Nl
Y3VyaXR5Rm91bmRhdGlvbgoweDkwMTdjMDAwIC0gMHg5MDFiNmZmZSAgY29tLmFwcGxlLnNlY3Vy
aXR5Zm91bmRhdGlvbiAzLjAuMiAoMzYxMzEpIDxkZDJhNGQxYTRmNTBiODI5MjNkN2NmYzVkZjEw
NDU1ZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlGb3VuZGF0aW9uLmZyYW1l
d29yay9WZXJzaW9ucy9BL1NlY3VyaXR5Rm91bmRhdGlvbgoweDkwMTdjMDAwIC0gMHg5MDFiNmZm
ZSAgY29tLmFwcGxlLnNlY3VyaXR5Zm91bmRhdGlvbiAzLjAuMiAoMzYxMzEpIDxkZDJhNGQxYTRm
NTBiODI5MjNkN2NmYzVkZjEwNDU1ZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJp
dHlGb3VuZGF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL1NlY3VyaXR5Rm91bmRhdGlvbgoweDkw
MTdjMDAwIC0gMHg5MDFiNmZmZSAgY29tLmFwcGxlLnNlY3VyaXR5Zm91bmRhdGlvbiAzLjAuMiAo
MzYxMzEpIDxkZDJhNGQxYTRmNTBiODI5MjNkN2NmYzVkZjEwNDU1ZD4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvU2VjdXJpdHlGb3VuZGF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL1NlY3Vy
aXR5Rm91bmRhdGlvbgoweDkwMTdjMDAwIC0gMHg5MDFiNmZmZSAgY29tLmFwcGxlLnNlY3VyaXR5
Zm91bmRhdGlvbiAzLjAuMiAoMzYxMzEpIDxkZDJhNGQxYTRmNTBiODI5MjNkN2NmYzVkZjEwNDU1
ZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlGb3VuZGF0aW9uLmZyYW1ld29y
ay9WZXJzaW9ucy9BL1NlY3VyaXR5Rm91bmRhdGlvbgoweDkwMTdjMDAwIC0gMHg5MDFiNmZmZSAg
Y29tLmFwcGxlLnNlY3VyaXR5Zm91bmRhdGlvbiAzLjAuMiAoMzYxMzEpIDxkZDJhNGQxYTRmNTBi
ODI5MjNkN2NmYzVkZjEwNDU1ZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlG
b3VuZGF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL1NlY3VyaXR5Rm91bmRhdGlvbgoweDkwMTdj
MDAwIC0gMHg5MDFiNmZmZSAgY29tLmFwcGxlLnNlY3VyaXR5Zm91bmRhdGlvbiAzLjAuMiAoMzYx
MzEpIDxkZDJhNGQxYTRmNTBiODI5MjNkN2NmYzVkZjEwNDU1ZD4gL1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvU2VjdXJpdHlGb3VuZGF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL1NlY3VyaXR5
Rm91bmRhdGlvbgoweDkwMTdjMDAwIC0gMHg5MDFiNmZmZSAgY29tLmFwcGxlLnNlY3VyaXR5Zm91
bmRhdGlvbiAzLjAuMiAoMzYxMzEpIDxkZDJhNGQxYTRmNTBiODI5MjNkN2NmYzVkZjEwNDU1ZD4g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlGb3VuZGF0aW9uLmZyYW1ld29yay9W
ZXJzaW9ucy9BL1NlY3VyaXR5Rm91bmRhdGlvbgoweDkwMTdjMDAwIC0gMHg5MDFiNmZmZSAgY29t
LmFwcGxlLnNlY3VyaXR5Zm91bmRhdGlvbiAzLjAuMiAoMzYxMzEpIDxkZDJhNGQxYTRmNTBiODI5
MjNkN2NmYzVkZjEwNDU1ZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlGb3Vu
ZGF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL1NlY3VyaXR5Rm91bmRhdGlvbgoweDkwMTdjMDAw
IC0gMHg5MDFiNmZmZSAgY29tLmFwcGxlLnNlY3VyaXR5Zm91bmRhdGlvbiAzLjAuMiAoMzYxMzEp
IDxkZDJhNGQxYTRmNTBiODI5MjNkN2NmYzVkZjEwNDU1ZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvU2VjdXJpdHlGb3VuZGF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL1NlY3VyaXR5Rm91
bmRhdGlvbgoweDkwMWI3MDAwIC0gMHg5MDFkM2ZmMyAgY29tLmFwcGxlLkNvcmVWaWRlbyAxLjYu
MSAoNDguNikgPGYxODM3YmVlZWZjODE5NjRhYmY3YjU4MDc1ZWRlYTJmPiAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9Db3JlVmlkZW8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZVZpZGVvCjB4
OTAxZDQwMDAgLSAweDkwMjdiZmVjICBjb20uYXBwbGUuQ0ZOZXR3b3JrIDQzOC4xNCAoNDM4LjE0
KSA8ODI3YzZjYjQ0MTlhZWRlYzAwM2JiNDJjYmVjMDc5YWY+IC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0NGTmV0
d29yay5mcmFtZXdvcmsvVmVyc2lvbnMvQS9DRk5ldHdvcmsKMHg5MDRlNTAwMCAtIDB4OTA1NWZm
ZjggIGNvbS5hcHBsZS5wcmludC5mcmFtZXdvcmsuUHJpbnRDb3JlIDUuNS40ICgyNDUuNikgPDlh
ZTgzMzU0NGI4MjQ5OTg0YzA3NTQ0ZGJlNmE5N2ZhPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvUHJp
bnRDb3JlLmZyYW1ld29yay9WZXJzaW9ucy9BL1ByaW50Q29yZQoweDkwNTYwMDAwIC0gMHg5MDU2
YWZlYiAgY29tLmFwcGxlLmF1ZGlvLlNvdW5kTWFuYWdlciAzLjkuMiAoMy45LjIpIDwwZjJiYTZl
ODkxZDM3NjEyMTJjZjVhNWU2MTM0ZDY4Mz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2Fy
Ym9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvQ2FyYm9uU291bmQuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvQ2FyYm9uU291bmQKMHg5MDU2YjAwMCAtIDB4OTA1YjZmZTEgIGNvbS5hcHBs
ZS5zZWN1cml0eWludGVyZmFjZSAzLjAuNCAoMzcyMTMpIDwxNmRlNTdhYjNlM2Y4NWYzYjc1M2Yx
MTZlMmZhNzg0Nz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlJbnRlcmZhY2Uu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHlJbnRlcmZhY2UKMHg5MDU2YjAwMCAtIDB4OTA1
YjZmZTEgIGNvbS5hcHBsZS5zZWN1cml0eWludGVyZmFjZSAzLjAuNCAoMzcyMTMpIDwxNmRlNTdh
YjNlM2Y4NWYzYjc1M2YxMTZlMmZhNzg0Nz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2Vj
dXJpdHlJbnRlcmZhY2UuZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHlJbnRlcmZhY2UKMHg5
MDU2YjAwMCAtIDB4OTA1YjZmZTEgIGNvbS5hcHBsZS5zZWN1cml0eWludGVyZmFjZSAzLjAuNCAo
MzcyMTMpIDwxNmRlNTdhYjNlM2Y4NWYzYjc1M2YxMTZlMmZhNzg0Nz4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvU2VjdXJpdHlJbnRlcmZhY2UuZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJp
dHlJbnRlcmZhY2UKMHg5MDU2YjAwMCAtIDB4OTA1YjZmZTEgIGNvbS5hcHBsZS5zZWN1cml0eWlu
dGVyZmFjZSAzLjAuNCAoMzcyMTMpIDwxNmRlNTdhYjNlM2Y4NWYzYjc1M2YxMTZlMmZhNzg0Nz4g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlJbnRlcmZhY2UuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvU2VjdXJpdHlJbnRlcmZhY2UKMHg5MDU2YjAwMCAtIDB4OTA1YjZmZTEgIGNvbS5h
cHBsZS5zZWN1cml0eWludGVyZmFjZSAzLjAuNCAoMzcyMTMpIDwxNmRlNTdhYjNlM2Y4NWYzYjc1
M2YxMTZlMmZhNzg0Nz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlJbnRlcmZh
Y2UuZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHlJbnRlcmZhY2UKMHg5MDU2YjAwMCAtIDB4
OTA1YjZmZTEgIGNvbS5hcHBsZS5zZWN1cml0eWludGVyZmFjZSAzLjAuNCAoMzcyMTMpIDwxNmRl
NTdhYjNlM2Y4NWYzYjc1M2YxMTZlMmZhNzg0Nz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
U2VjdXJpdHlJbnRlcmZhY2UuZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHlJbnRlcmZhY2UK
MHg5MDU2YjAwMCAtIDB4OTA1YjZmZTEgIGNvbS5hcHBsZS5zZWN1cml0eWludGVyZmFjZSAzLjAu
NCAoMzcyMTMpIDwxNmRlNTdhYjNlM2Y4NWYzYjc1M2YxMTZlMmZhNzg0Nz4gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlJbnRlcmZhY2UuZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2Vj
dXJpdHlJbnRlcmZhY2UKMHg5MDU2YjAwMCAtIDB4OTA1YjZmZTEgIGNvbS5hcHBsZS5zZWN1cml0
eWludGVyZmFjZSAzLjAuNCAoMzcyMTMpIDwxNmRlNTdhYjNlM2Y4NWYzYjc1M2YxMTZlMmZhNzg0
Nz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlJbnRlcmZhY2UuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvU2VjdXJpdHlJbnRlcmZhY2UKMHg5MDU2YjAwMCAtIDB4OTA1YjZmZTEgIGNv
bS5hcHBsZS5zZWN1cml0eWludGVyZmFjZSAzLjAuNCAoMzcyMTMpIDwxNmRlNTdhYjNlM2Y4NWYz
Yjc1M2YxMTZlMmZhNzg0Nz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlJbnRl
cmZhY2UuZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHlJbnRlcmZhY2UKMHg5MDU2YjAwMCAt
IDB4OTA1YjZmZTEgIGNvbS5hcHBsZS5zZWN1cml0eWludGVyZmFjZSAzLjAuNCAoMzcyMTMpIDwx
NmRlNTdhYjNlM2Y4NWYzYjc1M2YxMTZlMmZhNzg0Nz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvU2VjdXJpdHlJbnRlcmZhY2UuZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHlJbnRlcmZh
Y2UKMHg5MDU2YjAwMCAtIDB4OTA1YjZmZTEgIGNvbS5hcHBsZS5zZWN1cml0eWludGVyZmFjZSAz
LjAuNCAoMzcyMTMpIDwxNmRlNTdhYjNlM2Y4NWYzYjc1M2YxMTZlMmZhNzg0Nz4gL1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlJbnRlcmZhY2UuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
U2VjdXJpdHlJbnRlcmZhY2UKMHg5MDU2YjAwMCAtIDB4OTA1YjZmZTEgIGNvbS5hcHBsZS5zZWN1
cml0eWludGVyZmFjZSAzLjAuNCAoMzcyMTMpIDwxNmRlNTdhYjNlM2Y4NWYzYjc1M2YxMTZlMmZh
Nzg0Nz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlJbnRlcmZhY2UuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHlJbnRlcmZhY2UKMHg5MDViNzAwMCAtIDB4OTA1YmVmZjcg
IGxpYkNHQVRTLkEuZHlsaWIgPz8/ICg/Pz8pIDwxMzM5YWJmYjY3MzE4ZDY1YzAxMzBmNzZiYzhj
NGRhNj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0NvcmVHcmFwaGljcy5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9SZXNvdXJjZXMvbGliQ0dBVFMuQS5keWxpYgoweDkwNWJmMDAwIC0gMHg5MDViZmZmZCAg
Y29tLmFwcGxlLkFjY2VsZXJhdGUgMS40LjIgKEFjY2VsZXJhdGUgMS40LjIpIC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQWNjZWxlcmF0
ZQoweDkwNWMwMDAwIC0gMHg5MDYxY2ZmNyAgY29tLmFwcGxlLmh0bWxyZW5kZXJpbmcgNjggKDEu
MS4zKSA8ZmU4N2E5ZGVkZTM4ZGIwMGU2Yzg5NDk5NDJjNmJkNGY+IC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0hUTUxSZW5k
ZXJpbmcuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSFRNTFJlbmRlcmluZwoweDkwNjFkMDAwIC0gMHg5
MDYxZGZmYiAgY29tLmFwcGxlLmluc3RhbGxzZXJ2ZXIuZnJhbWV3b3JrIDEuMCAoOCkgL1N5c3Rl
bS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0luc3RhbGxTZXJ2ZXIuZnJhbWV3b3JrL1ZlcnNp
b25zL0EvSW5zdGFsbFNlcnZlcgoweDkwNjViMDAwIC0gMHg5MDY5YmZlZiAgY29tLmFwcGxlLkNv
cmVNZWRpYSAwLjQ4NC4yICg0ODQuMikgPDM3NDYxZmY0N2NiMjVhZDQzNGE4NTQ0Yzk3MjcxZDI4
PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ29yZU1lZGlhLmZyYW1ld29yay9W
ZXJzaW9ucy9BL0NvcmVNZWRpYQoweDkwNmEyMDAwIC0gMHg5MDZhZWZmZSAgbGliR0wuZHlsaWIg
Pz8/ICg/Pz8pIC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL09wZW5HTC5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9MaWJyYXJpZXMvbGliR0wuZHlsaWIKMHg5MDZhZjAwMCAtIDB4OTA3M2NmZjcgIGNv
bS5hcHBsZS5MYXVuY2hTZXJ2aWNlcyAyOTIgKDI5MikgPGE0MTI4NmM3YzFlYjIwZmZkNWNjNzk2
Zjc5MTA3MGYwPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9MYXVuY2hTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9MYXVuY2hTZXJ2aWNlcwoweDkwNzQyMDAwIC0gMHg5MGI1MmZlZiAgbGliQkxBUy5keWxp
YiA/Pz8gKD8/PykgL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQWNjZWxlcmF0ZS5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL3ZlY0xpYi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9saWJC
TEFTLmR5bGliCjB4OTBiODgwMDAgLSAweDkwYmEwZmZmICBjb20uYXBwbGUub3BlbnNjcmlwdGlu
ZyAxLjIuOCAoPz8/KSA8YTg4OGIxOGM4NTI3ZjcxNjI5NzAyZWQ4ZGNlOWM4Nzc+IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtz
L09wZW5TY3JpcHRpbmcuZnJhbWV3b3JrL1ZlcnNpb25zL0EvT3BlblNjcmlwdGluZwoweDkwYmEx
MDAwIC0gMHg5MGJiZGZmMyAgbGliUG5nLmR5bGliID8/PyAoPz8/KSA8ZDM3NTI0ZmU4ODRhYTE2
NGFiN2RiOTNkNGM4MDNiNjQ+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9u
U2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9JbWFnZUlPLmZyYW1ld29y
ay9WZXJzaW9ucy9BL1Jlc291cmNlcy9saWJQbmcuZHlsaWIKMHg5MGJmNTAwMCAtIDB4OTEyOTVm
ZWIgIGNvbS5hcHBsZS5Db3JlR3JhcGhpY3MgMS40MDkuNSAoPz8/KSA8YTQwNjQ0Y2NkYmRjNzZl
M2EwYWI0ZDQ2OGIyZjliZGQ+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9u
U2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9Db3JlR3JhcGhpY3MuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvQ29yZUdyYXBoaWNzCjB4OTEyOTYwMDAgLSAweDkxMzI5ZmZmICBj
b20uYXBwbGUuaW5rLmZyYW1ld29yayAxMDEuMyAoODYpIDxiZjNmYTg5MjdiNGI4YmFhZTkyMzgx
YTk3NmZkMjA3OT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9W
ZXJzaW9ucy9BL0ZyYW1ld29ya3MvSW5rLmZyYW1ld29yay9WZXJzaW9ucy9BL0luawoweDkxM2Uz
MDAwIC0gMHg5MTU2N2ZlZiAgY29tLmFwcGxlLk1lZGlhVG9vbGJveCAwLjQ4NC4yICg0ODQuMikg
PGE1MTEwYTdkM2JjYjAyYzQ1YWQ4ZmNhMWY0OTU3OTE3PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0
ZUZyYW1ld29ya3MvTWVkaWFUb29sYm94LmZyYW1ld29yay9WZXJzaW9ucy9BL01lZGlhVG9vbGJv
eAoweDkxNTY4MDAwIC0gMHg5MTU3MGZmZiAgY29tLmFwcGxlLkRpc2tBcmJpdHJhdGlvbiAyLjIu
MSAoMi4yLjEpIDxiYTY0ZGQ2YWRhNDE3YjVlN2JlNzM2OTU3ZjM4MGJjYT4gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvRGlza0FyYml0cmF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0Rpc2tB
cmJpdHJhdGlvbgoweDkxNTcxMDAwIC0gMHg5MTViYWZlZiAgY29tLmFwcGxlLk1ldGFkYXRhIDEw
LjUuOCAoMzk4LjI2KSA8ZTRkMjY4ZWE0NTM3OTIwMGYwM2NkYzdjOGJlZGFlNmY+IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFt
ZXdvcmtzL01ldGFkYXRhLmZyYW1ld29yay9WZXJzaW9ucy9BL01ldGFkYXRhCjB4OTE1YmIwMDAg
LSAweDkxNWJlZmZmICBjb20uYXBwbGUuaGVscCAxLjEgKDM2KSA8YjUwN2IwOGU0ODRjYjg5MDMz
ZTljZjIzMDYyZDc3ZGU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0hlbHAuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSGVscAow
eDkxNWJmMDAwIC0gMHg5MTcwN2ZmNyAgY29tLmFwcGxlLkltYWdlSU8uZnJhbWV3b3JrIDIuMC43
ICgyLjAuNykgPDJhNTg1ZTgyMjNiOThiNzdlMGQ3ZDU2Njc3MGI5OGZkPiAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0Zy
YW1ld29ya3MvSW1hZ2VJTy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9JbWFnZUlPCjB4OTE3ODIwMDAg
LSAweDkxN2RiZmY3ICBsaWJHTFUuZHlsaWIgPz8/ICg/Pz8pIDw2NGQwMTBlMzFkNzU5NmJkOGY5
ZWRjNmUwMjdkMWQwYz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvT3BlbkdMLmZyYW1ld29y
ay9WZXJzaW9ucy9BL0xpYnJhcmllcy9saWJHTFUuZHlsaWIKMHg5MTdkYzAwMCAtIDB4OTE3ZTFm
ZmYgIGNvbS5hcHBsZS5Db21tb25QYW5lbHMgMS4yLjQgKDg1KSA8ZWEwNjY1ZjU3Y2QyNjc2MDk0
NjZlZDhiMmIyMGU4OTM+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0NvbW1vblBhbmVscy5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9Db21tb25QYW5lbHMKMHg5MjcwMDAwMCAtIDB4OTI3MGJmZTcgIGxpYkNTeW5jLkEuZHlsaWIg
Pz8/ICg/Pz8pIDxkODhjMjBjOWEyZmQwNjc2ZGVjNjJmZGRmYTc0OTc5Zj4gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9G
cmFtZXdvcmtzL0NvcmVHcmFwaGljcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGli
Q1N5bmMuQS5keWxpYgoweDkyNzBjMDAwIC0gMHg5Mjc1ZGZmNyAgY29tLmFwcGxlLkhJU2Vydmlj
ZXMgMS43LjEgKD8/PykgPGJhN2ZkMGVkZTU0MGEwZGEwOGRiMDI3Zjg3ZWZiZDYwPiAvU3lzdGVt
L0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9u
cy9BL0ZyYW1ld29ya3MvSElTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9ISVNlcnZpY2Vz
CjB4OTI3N2IwMDAgLSAweDkyYTU1ZmYzICBjb20uYXBwbGUuQ29yZVNlcnZpY2VzLkNhcmJvbkNv
cmUgNzg2LjE2ICg3ODYuMTYpIDw2MGI1MThlNGFkMDJiOTE4MjYyNDAxOTlhNjMxMTI4Nj4gL1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9B
L0ZyYW1ld29ya3MvQ2FyYm9uQ29yZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9DYXJib25Db3JlCjB4
OTJhNTYwMDAgLSAweDkyYWUwZmY3ICBjb20uYXBwbGUuRGVza3RvcFNlcnZpY2VzIDEuNC45ICgx
LjQuOSkgPGY1ZTUxYTc2ZDMxNTc5ODM3MWIzZGQzNWE0ZDQ2ZDZjPiAvU3lzdGVtL0xpYnJhcnkv
UHJpdmF0ZUZyYW1ld29ya3MvRGVza3RvcFNlcnZpY2VzUHJpdi5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9EZXNrdG9wU2VydmljZXNQcml2CjB4OTJhZTEwMDAgLSAweDkyYWYxZmZjICBjb20uYXBwbGUu
TGFuZ0FuYWx5c2lzIDEuNi41ICgxLjYuNSkgPGQwNTdmZWIzODE2MzEyMWZmZDg3MWM1NjRjNjky
ODA0PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1l
d29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvTGFuZ0FuYWx5c2lzLmZyYW1ld29yay9WZXJzaW9u
cy9BL0xhbmdBbmFseXNpcwoweDkyYmUyMDAwIC0gMHg5MmMxOWZmZiAgY29tLmFwcGxlLlN5c3Rl
bUNvbmZpZ3VyYXRpb24gMS45LjIgKDEuOS4yKSA8NDFkNWFlZmZlZmM2ZDE5ZDQ3MWY1MWFlMGIx
NTAyNGY+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1N5c3RlbUNvbmZpZ3VyYXRpb24uZnJh
bWV3b3JrL1ZlcnNpb25zL0EvU3lzdGVtQ29uZmlndXJhdGlvbgoweDkyYzFhMDAwIC0gMHg5MmM0
NWZlNyAgbGliYXV0by5keWxpYiA/Pz8gKD8/PykgPDRmM2U1OGNiODFkYTA3YTE2NjJjMWY2NDdj
ZTMwMjI1PiAvdXNyL2xpYi9saWJhdXRvLmR5bGliCjB4OTJjNDYwMDAgLSAweDkyZDBkZmYyICBj
b20uYXBwbGUudkltYWdlIDMuMCAoMy4wKSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2Nl
bGVyYXRlLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvdkltYWdlLmZyYW1ld29yay9W
ZXJzaW9ucy9BL3ZJbWFnZQoweDkyZDBlMDAwIC0gMHg5MmQxNWZmZSAgbGliYnNtLmR5bGliID8/
PyAoPz8/KSA8ZDI1YzYzMzc4YTUwMjk2NDhmZmQ0YjQ2NjliZTMxYmY+IC91c3IvbGliL2xpYmJz
bS5keWxpYgoweDkzMjVjMDAwIC0gMHg5MzcyZGZiZSAgbGliR0xQcm9ncmFtbWFiaWxpdHkuZHls
aWIgPz8/ICg/Pz8pIDxkNWNiNGU3OTk3YTg3M2NkNzc1MjM2ODllNjc0OWFjZD4gL1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvT3BlbkdMLmZyYW1ld29yay9WZXJzaW9ucy9BL0xpYnJhcmllcy9s
aWJHTFByb2dyYW1tYWJpbGl0eS5keWxpYgoweDkzNzJlMDAwIC0gMHg5Mzc1ZGZlMyAgY29tLmFw
cGxlLkFFIDQwMi4zICg0MDIuMykgPGRiYTUxMmU0N2Y2OGVlYTFkZDBhYjM1ZjU5NmVkYjM0PiAv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25z
L0EvRnJhbWV3b3Jrcy9BRS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9BRQoweDkzNzVlMDAwIC0gMHg5
Mzc2YmZlNyAgY29tLmFwcGxlLm9wZW5nbCAxLjUuMTAgKDEuNS4xMCkgPGU3ZDExOThkODY5ZjQ1
ZjA5MjUxZjk2OTdjYmRkMTkyPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9PcGVuR0wuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvT3BlbkdMCjB4OTM3NzEwMDAgLSAweDkzN2VlZmVmICBsaWJ2TWlz
Yy5keWxpYiA/Pz8gKD8/PykgL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQWNjZWxlcmF0ZS5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL3ZlY0xpYi5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9saWJ2TWlzYy5keWxpYgoweDkzODM0MDAwIC0gMHg5MzhmZmZlZiAgY29tLmFwcGxlLkNvbG9y
U3luYyA0LjUuMyAoNC41LjMpIC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9u
U2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9Db2xvclN5bmMuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvQ29sb3JTeW5jCjB4OTM5MDAwMDAgLSAweDkzYTY3ZmYzICBsaWJTeXN0
ZW0uQi5keWxpYiA/Pz8gKD8/PykgPGM4ZjUyZTE1OGJmNTQwY2MwMDAxNDZjYThhNzA1OTU4PiAv
dXNyL2xpYi9saWJTeXN0ZW0uQi5keWxpYgoweDkzYTY4MDAwIC0gMHg5M2E2ZmZlOSAgbGliZ2Nj
X3MuMS5keWxpYiA/Pz8gKD8/PykgPGY1M2M4MDhlODdkMTE4NGMwZjlkZjYzYWVmNTNjZTBiPiAv
dXNyL2xpYi9saWJnY2Nfcy4xLmR5bGliCjB4OTNhNzAwMDAgLSAweDkzYmMyZmYzICBjb20uYXBw
bGUuYXVkaW8udG9vbGJveC5BdWRpb1Rvb2xib3ggMS41LjMgKDEuNS4zKSAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9BdWRpb1Rvb2xib3guZnJhbWV3b3JrL1ZlcnNpb25zL0EvQXVkaW9Ub29s
Ym94CjB4OTNiYzMwMDAgLSAweDkzYzAyZmVmICBsaWJUSUZGLmR5bGliID8/PyAoPz8/KSA8MDQz
N2VhYzc3ZTRlODc0ZjU2NmVjNDIxOWFkMWIyNDk+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9JbWFn
ZUlPLmZyYW1ld29yay9WZXJzaW9ucy9BL1Jlc291cmNlcy9saWJUSUZGLmR5bGliCjB4OTNjMDMw
MDAgLSAweDkzYzBmZmY5ICBjb20uYXBwbGUuaGVscGRhdGEgMS4wLjEgKDE0LjIpIC9TeXN0ZW0v
TGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9IZWxwRGF0YS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9I
ZWxwRGF0YQoweDkzYzEwMDAwIC0gMHg5M2MxOWZmZiAgY29tLmFwcGxlLnNwZWVjaC5yZWNvZ25p
dGlvbi5mcmFtZXdvcmsgMy43LjI0ICgzLjcuMjQpIDxkMzE4MGY5ZWRiZDlhNWU2ZjI4M2Q2MTU2
YWEzYzYwMj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9WZXJz
aW9ucy9BL0ZyYW1ld29ya3MvU3BlZWNoUmVjb2duaXRpb24uZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
U3BlZWNoUmVjb2duaXRpb24KMHg5M2QwOTAwMCAtIDB4OTNkNDNmZTcgIGNvbS5hcHBsZS5jb3Jl
dWkgMS4yICg2MikgL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVVSS5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9Db3JlVUkKMHg5M2Q0NDAwMCAtIDB4OTNkNDRmZmQgIGNvbS5hcHBs
ZS5BY2NlbGVyYXRlLnZlY0xpYiAzLjQuMiAodmVjTGliIDMuNC4yKSAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvdmVj
TGliLmZyYW1ld29yay9WZXJzaW9ucy9BL3ZlY0xpYgoweDkzZDk0MDAwIC0gMHg5M2UwNmZmZiAg
Y29tLmFwcGxlLlBERktpdCAyLjEuMiAoMi4xLjIpIC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L1F1YXJ0ei5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1BERktpdC5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9QREZLaXQKMHg5M2UwNzAwMCAtIDB4OTNlMGJmZmYgIGxpYm1hdGhDb21tb24u
QS5keWxpYiA/Pz8gKD8/PykgL3Vzci9saWIvc3lzdGVtL2xpYm1hdGhDb21tb24uQS5keWxpYgow
eDkzZTE0MDAwIC0gMHg5NDFkMGZmNCAgY29tLmFwcGxlLlZpZGVvVG9vbGJveCAwLjQ4NC4yICg0
ODQuMikgPDM1ZjJkMTc3Nzk2ZWJiM2I2MWY5ZDA2NTkzZDE3ODdhPiAvU3lzdGVtL0xpYnJhcnkv
UHJpdmF0ZUZyYW1ld29ya3MvVmlkZW9Ub29sYm94LmZyYW1ld29yay9WZXJzaW9ucy9BL1ZpZGVv
VG9vbGJveAoweDk0MWQxMDAwIC0gMHg5NDIxY2ZmNyAgY29tLmFwcGxlLkNvcmVNZWRpYUlPU2Vy
dmljZXMgMTMwLjAgKDkzNSkgPDRlZTY5NWVkZDUzZjVhYTIwMDAyMWEyZjY5ZDI0Zjc2PiAvU3lz
dGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ29yZU1lZGlhSU9TZXJ2aWNlcy5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9Db3JlTWVkaWFJT1NlcnZpY2VzCjB4OTQyMWQwMDAgLSAweDk0MjVlZmU3
ICBsaWJSSVAuQS5keWxpYiA/Pz8gKD8/PykgPGU5YzVkZjhiZDU3NGI3MWU1NWFjNjBjOTEwYjky
OWNlPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1l
d29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvQ29yZUdyYXBoaWNzLmZyYW1ld29yay9WZXJzaW9u
cy9BL1Jlc291cmNlcy9saWJSSVAuQS5keWxpYgoweDk0MjYyMDAwIC0gMHg5NDJmNWZmMyAgY29t
LmFwcGxlLkFwcGxpY2F0aW9uU2VydmljZXMuQVRTIDMuOC4xICg/Pz8pIDw1NmY2ZDljNmYwYWU4
ZGNjYjNiNmRlZjQ2ZDRhZTNmMz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRp
b25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0FUUy5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9BVFMKMHg5NDJmNjAwMCAtIDB4OTQzOWRmZWIgIGNvbS5hcHBsZS5RRCAzLjEx
LjU3ICg/Pz8pIDwzNWYwNTg2Nzg5NzJkNDJiODhlYmRmNjUyZGY3OTk1Nj4gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9G
cmFtZXdvcmtzL1FELmZyYW1ld29yay9WZXJzaW9ucy9BL1FECjB4OTQzYWEwMDAgLSAweDk0NzQ3
ZmVmICBjb20uYXBwbGUuUXVhcnR6Q29yZSAxLjUuOCAoMS41LjgpIDwxODExM2UwNmQyOTYyMzBk
NjNhNjNiNThiYWYzNWY1NT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUXVhcnR6Q29yZS5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9RdWFydHpDb3JlCjB4OTQ3NDgwMDAgLSAweDk0YTczZmY2ICBj
b20uYXBwbGUuUXVpY2tUaW1lIDcuNi42ICgxNjc0KSA8M2ViYzA1ZGNhZjU4NTdiYzNkMzNhMDRl
YmFiZjVjMWE+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1F1aWNrVGltZS5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9RdWlja1RpbWUKMHg5NGE3YTAwMCAtIDB4OTRiMDdmZjcgIGNvbS5hcHBsZS5m
cmFtZXdvcmsuSU9LaXQgMS41LjIgKD8/PykgPDdhM2NjMjRmNzhmOTM5MzE3MzEyMDM4NTRhZTBk
ODkxPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9JT0tpdC5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9JT0tpdAoweDk0YjA4MDAwIC0gMHg5NGIwYWZmNSAgbGliUmFkaWFuY2UuZHlsaWIgPz8/ICg/
Pz8pIDw5N2ZmMDM5ZjZkMzcyYWI1OGE2ODRhMGUzMTFlNGVkND4gL1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdv
cmtzL0ltYWdlSU8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvUmVzb3VyY2VzL2xpYlJhZGlhbmNlLmR5
bGliCjB4OTRiNWIwMDAgLSAweDk0YjcwZmZiICBjb20uYXBwbGUuSW1hZ2VDYXB0dXJlIDUuMC4y
ICg1LjAuMikgL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9WZXJz
aW9ucy9BL0ZyYW1ld29ya3MvSW1hZ2VDYXB0dXJlLmZyYW1ld29yay9WZXJzaW9ucy9BL0ltYWdl
Q2FwdHVyZQoweDk0Y2YyMDAwIC0gMHg5NGQxYmZmZiAgbGliY3Vwcy4yLmR5bGliID8/PyAoPz8/
KSA8OWY5MDBiMDc1ZTVjN2M0ODIwYWEyNGU5NzRjZjk5ZjA+IC91c3IvbGliL2xpYmN1cHMuMi5k
eWxpYgoweDk0ZDFjMDAwIC0gMHg5NGRjY2ZmZiAgZWR1Lm1pdC5LZXJiZXJvcyA2LjAuMTQgKDYu
MC4xNCkgPDY3M2YxMDdjZGFlODBjMDg0Nzc0YTI3YmM3YmM0NmMxPiAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9LZXJiZXJvcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9LZXJiZXJvcwoweDk0ZGNk
MDAwIC0gMHg5NGUyN2ZmNyAgY29tLmFwcGxlLkNvcmVUZXh0IDIuMC40ICg/Pz8pIDxjN2EyMjJi
ZTFiNTFhOTk1NGVhZTcxNmFkYmQ1NjI2YT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBw
bGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0NvcmVUZXh0
LmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVUZXh0CjB4OTRlMjgwMDAgLSAweDk0ZjcyZmViICBj
b20uYXBwbGUuUVRLaXQgNy42LjYgKDE2NzQpIDxmZjc4NGMyMTY5YzQyMTQ0OTNhMmI1MTUzZDgw
YmQyNT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUVRLaXQuZnJhbWV3b3JrL1ZlcnNpb25z
L0EvUVRLaXQKMHg5NGZkNTAwMCAtIDB4OTU3ZDNmZWYgIGNvbS5hcHBsZS5BcHBLaXQgNi41Ljkg
KDk0OS41NCkgPDRkZjVkMmUyMjcxMTc1NDUyMTAzZjc4OWI0ZjRkOGE4PiAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0MvQXBwS2l0CjB4OTU3ZDQw
MDAgLSAweDk1YWRjZmU3ICBjb20uYXBwbGUuSElUb29sYm94IDEuNS42ICg/Pz8pIDxlZWNlM2Ni
OGFhMGE0ZTY4NDNmY2MxNTAwYWNhNjFjNT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2Fy
Ym9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvSElUb29sYm94LmZyYW1ld29yay9W
ZXJzaW9ucy9BL0hJVG9vbGJveAoweDk1YWRkMDAwIC0gMHg5NWIxZmZlZiAgY29tLmFwcGxlLk5h
dmlnYXRpb25TZXJ2aWNlcyAzLjUuMiAoMTYzKSA8N2Y0ZjE3NjY0MTRhNTExYmY1YmM2ODkyMGFj
ODVhODg+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9GcmFtZXdvcmtzL05hdmlnYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9O
YXZpZ2F0aW9uU2VydmljZXMKMHg5NWIyMDAwMCAtIDB4OTViNmVmZTMgIGNvbS5hcHBsZS5BcHBs
ZVZBRnJhbWV3b3JrIDQuMS4xNyAoNC4xLjE3KSAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1l
d29ya3MvQXBwbGVWQS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9BcHBsZVZBCjB4OTViNmYwMDAgLSAw
eDk1YjhkZmZmICBsaWJyZXNvbHYuOS5keWxpYiA/Pz8gKD8/PykgPDBlMjZiMzA4NjU0ZjMzZmM5
NGEwYzAxMGE1MDc1MWY5PiAvdXNyL2xpYi9saWJyZXNvbHYuOS5keWxpYgoweDk1YjhlMDAwIC0g
MHg5NWI5ZWZmZiAgY29tLmFwcGxlLnNwZWVjaC5zeW50aGVzaXMuZnJhbWV3b3JrIDMuNy4xICgz
LjcuMSkgPDlhNzE0MjljNzRlZDZjYTQzZWIzNWUxZjc4NDcxYjJlPiAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1l
d29ya3MvU3BlZWNoU3ludGhlc2lzLmZyYW1ld29yay9WZXJzaW9ucy9BL1NwZWVjaFN5bnRoZXNp
cwoweDk1YjlmMDAwIC0gMHg5NWJhZGZmZCAgbGliei4xLmR5bGliID8/PyAoPz8/KSA8NWRkZDg1
MzlhZTJlYmZkOGU3Y2MxYzU3NTI1Mzg1Yzc+IC91c3IvbGliL2xpYnouMS5keWxpYgoweDk1YmQ4
MDAwIC0gMHg5NWJlZWZmZiAgY29tLmFwcGxlLkRpY3Rpb25hcnlTZXJ2aWNlcyAxLjAuMCAoMS4w
LjApIDxhZDBhYTAyNTJlMzMyM2QxODJlMTdmNTBkZWZlNTZmYz4gL1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvRGlj
dGlvbmFyeVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0RpY3Rpb25hcnlTZXJ2aWNlcwow
eDk1YzIyMDAwIC0gMHg5NWQwYWZmMyAgY29tLmFwcGxlLkNvcmVEYXRhIDEwMC4yICgxODYuMikg
PDQ0ZGYzMjZmZWEwMjM2NzE4ZjVlZDY0MDg0ZTgyMjcwPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9Db3JlRGF0YS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db3JlRGF0YQoweDk1ZDBiMDAwIC0g
MHg5NWQwYmZmOCAgY29tLmFwcGxlLkFwcGxpY2F0aW9uU2VydmljZXMgMzQgKDM0KSA8OGY5MTBm
YTY1ZjAxZDQwMWFkOGQwNGNjOTMzY2Y4ODc+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Fw
cGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQXBwbGljYXRpb25TZXJ2aWNl
cwoweDk1ZDBjMDAwIC0gMHg5NjBjYWZlYSAgbGliTEFQQUNLLmR5bGliID8/PyAoPz8/KSAvU3lz
dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9WZXJzaW9ucy9BL0Zy
YW1ld29ya3MvdmVjTGliLmZyYW1ld29yay9WZXJzaW9ucy9BL2xpYkxBUEFDSy5keWxpYgoweDk2
MGNiMDAwIC0gMHg5NjBmM2ZmNyAgY29tLmFwcGxlLnNob3J0Y3V0IDEuMC4xICgxLjApIDwzN2U0
YjA4Y2ZhZjllZGIwOGI4NjgyYTA2YzRlYzg0ND4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFt
ZXdvcmtzL1Nob3J0Y3V0LmZyYW1ld29yay9WZXJzaW9ucy9BL1Nob3J0Y3V0CjB4OTYwZjQwMDAg
LSAweDk2MTEzZmZhICBsaWJKUEVHLmR5bGliID8/PyAoPz8/KSA8MzhhMjQzMDAwZDNhYmVmZWI5
ZmY5N2U0NjU3NTM4YTQ+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vy
dmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9JbWFnZUlPLmZyYW1ld29yay9W
ZXJzaW9ucy9BL1Jlc291cmNlcy9saWJKUEVHLmR5bGliCjB4OTYxMTQwMDAgLSAweDk2MTUyZmZm
ICBsaWJHTEltYWdlLmR5bGliID8/PyAoPz8/KSA8MmU1NzA5NTg1OTVlMGM5YzNhMjg5MTU4MjIz
YjM5ZWU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL09wZW5HTC5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9MaWJyYXJpZXMvbGliR0xJbWFnZS5keWxpYgoweDk2MjViMDAwIC0gMHg5NjMzYmZmZiAg
bGlib2JqYy5BLmR5bGliID8/PyAoPz8/KSA8M2NhMjg4YjYyNWE0N2JiY2ZlMzc4MTU4ZTRkYzMy
OGY+IC91c3IvbGliL2xpYm9iamMuQS5keWxpYgoweDk2M2Q2MDAwIC0gMHg5NjUwOWZlNyAgY29t
LmFwcGxlLkNvcmVGb3VuZGF0aW9uIDYuNS43ICg0NzYuMTkpIDxhMzMyYzhmNDU1MjllZTI2ZDJl
OWMzNmQwYzcyM2JhZD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZUZvdW5kYXRpb24u
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZUZvdW5kYXRpb24KMHg5NjUxYTAwMCAtIDB4OTY2NTNm
ZjcgIGxpYmljdWNvcmUuQS5keWxpYiA/Pz8gKD8/PykgPGYyODE5MjQzYjI3ODI1OWI5YTYyMmVh
MTExZWE1ZmQ2PiAvdXNyL2xpYi9saWJpY3Vjb3JlLkEuZHlsaWIKMHg5NjY1OTAwMCAtIDB4OTY4
MmFmZjMgIGNvbS5hcHBsZS5zZWN1cml0eSA1LjAuNiAoMzc1OTIpIDw1ZDdhZTkyZjJlNTJlZTdi
YTVhZTY1ODM5OTc3MDYwMj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHkuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHkKMHg5NjgyYjAwMCAtIDB4OTY4NGZmZmYgIGxpYnhz
bHQuMS5keWxpYiA/Pz8gKD8/PykgPGFkZmU5MGEzZDU2NGQ4MjRkNWFlMGZhNmRmOGQ2YzNmPiAv
dXNyL2xpYi9saWJ4c2x0LjEuZHlsaWIKMHg5Njg2MTAwMCAtIDB4OTY4YmVmZmIgIGxpYnN0ZGMr
Ky42LmR5bGliID8/PyAoPz8/KSA8MDRiODEyZGNlYzY3MGRhYThiN2QyODUyYWIxNGJlNjA+IC91
c3IvbGliL2xpYnN0ZGMrKy42LmR5bGliCjB4OTY4YmYwMDAgLSAweDk2YjNiZmU3ICBjb20uYXBw
bGUuRm91bmRhdGlvbiA2LjUuOSAoNjc3LjI2KSA8YzY4YjNjZmY3ODY0OTU5YmVjZmM3ZmQxYTM4
NGY5MjU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ZvdW5kYXRpb24uZnJhbWV3b3JrL1Zl
cnNpb25zL0MvRm91bmRhdGlvbgoweDk2YjViMDAwIC0gMHg5NmMwZGZmYiAgbGliY3J5cHRvLjAu
OS43LmR5bGliID8/PyAoPz8/KSA8ZDAyZjdlNWI4YTY4ODEzYmI3YTc3ZjVlZGIzNGZmOWQ+IC91
c3IvbGliL2xpYmNyeXB0by4wLjkuNy5keWxpYgoweDk2YzBlMDAwIC0gMHg5NmM4ZGZmNSAgY29t
LmFwcGxlLlNlYXJjaEtpdCAxLjIuMiAoMS4yLjIpIDwzYjVmM2FiNmEzNjNhNGQ4YTJiYmJmNzQy
MTNhYjBlNT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29y
ay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvU2VhcmNoS2l0LmZyYW1ld29yay9WZXJzaW9ucy9BL1Nl
YXJjaEtpdAoweDk2YzhlMDAwIC0gMHg5NmM4ZWZmYyAgY29tLmFwcGxlLmF1ZGlvLnVuaXRzLkF1
ZGlvVW5pdCAxLjUgKDEuNSkgL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXVkaW9Vbml0LmZy
YW1ld29yay9WZXJzaW9ucy9BL0F1ZGlvVW5pdAoweDk2Y2UxMDAwIC0gMHg5NmQ5Y2ZlMyAgY29t
LmFwcGxlLkNvcmVTZXJ2aWNlcy5PU1NlcnZpY2VzIDIyOC4xICgyMjguMSkgPDBjYTcwY2E4ZTY3
YzFhNzZiZWUxNTFkNjViMWU3Mzk4PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2Vy
dmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9PU1NlcnZpY2VzLmZyYW1ld29y
ay9WZXJzaW9ucy9BL09TU2VydmljZXMKMHg5NmUwYjAwMCAtIDB4OTZlMGRmZmYgIGNvbS5hcHBs
ZS5zZWN1cml0eWhpIDMuMCAoMzA4MTcpIDwyYjI4NTQxMjNmZWQ2MDlkMTgyMGQyNzc5ZTJlMDk2
Mz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9WZXJzaW9ucy9B
L0ZyYW1ld29ya3MvU2VjdXJpdHlISS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TZWN1cml0eUhJCjB4
OTZlMGUwMDAgLSAweDk2ZThiZmViICBjb20uYXBwbGUuYXVkaW8uQ29yZUF1ZGlvIDMuMS4yICgz
LjEuMikgPDc4MmEwOGM0NGJlNDY5ODU5N2Y0YmJkNzljYWMyMWM2PiAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9Db3JlQXVkaW8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZUF1ZGlvCjB4OTdi
ODkwMDAgLSAweDk3YzZhZmY3ICBsaWJ4bWwyLjIuZHlsaWIgPz8/ICg/Pz8pIDxiM2JjMGIyODBj
MzZhYTE3YWM0NzdiNGRhNTZjZDAzOD4gL3Vzci9saWIvbGlieG1sMi4yLmR5bGliCjB4OTdjNmIw
MDAgLSAweDk3Y2YyZmY3ICBsaWJzcWxpdGUzLjAuZHlsaWIgPz8/ICg/Pz8pIDxhYWFmNzJjMDkz
ZTEzZjM0Yjk2ZTI2ODhiOTViZGI0YT4gL3Vzci9saWIvbGlic3FsaXRlMy4wLmR5bGliCjB4YmE5
MDAwMDAgLSAweGJhOTE2ZmZmICBsaWJKYXBhbmVzZUNvbnZlcnRlci5keWxpYiA/Pz8gKD8/Pykg
PGI5YWVhODNiMWNkOTdmMzIzMDk5OWViZmNiZjYzZTdjPiAvU3lzdGVtL0xpYnJhcnkvQ29yZVNl
cnZpY2VzL0VuY29kaW5ncy9saWJKYXBhbmVzZUNvbnZlcnRlci5keWxpYgoweGJhYjAwMDAwIC0g
MHhiYWIyMWZlMiAgbGliS29yZWFuQ29udmVydGVyLmR5bGliID8/PyAoPz8/KSA8YmMwYmIyZWVk
MGY0NTU4ZjA3YmJhYTgxMmQ3OTM3MWI+IC9TeXN0ZW0vTGlicmFyeS9Db3JlU2VydmljZXMvRW5j
b2RpbmdzL2xpYktvcmVhbkNvbnZlcnRlci5keWxpYgoweGZmZmU4MDAwIC0gMHhmZmZlYmZmZiAg
bGlib2JqYy5BLmR5bGliID8/PyAoPz8/KSAvdXNyL2xpYi9saWJvYmpjLkEuZHlsaWIKMHhmZmZm
MDAwMCAtIDB4ZmZmZjE3ODAgIGxpYlN5c3RlbS5CLmR5bGliID8/PyAoPz8/KSAvdXNyL2xpYi9s
aWJTeXN0ZW0uQi5keWxpYgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67555</attachid>
            <date>2010-09-14 08:33:09 -0700</date>
            <delta_ts>2010-09-14 09:27:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41510h.patch</filename>
            <type>text/plain</type>
            <size>17377</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDktMDggIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBh
cm9nYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
QWRkIEJhc2U2NERlY29kZVBvbGljeSBvcHRpb24gYXQgYmFzZTY0RGVjb2RlKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTEwCisKKyAgICAgICAg
QWRkIGFuIG9wdGlvbiBmb3IgaWdub3JpbmcgY2hhcmFjdGVycyBpbiBiYXNlNjQgZGF0YS4KKyAg
ICAgICAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGRlY29kaW5nIGRhdGEgdXJscy4KKworICAgICAg
ICBBbHNvIGFkZCBhbiBvdmVybG9hZCB0byBkZWNvZGUgV2ViQ29yZTo6U3RyaW5nIGRpcmVjdGx5
LgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjphdG9iKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvQmFzZTY0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJhc2U2NEVuY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpiYXNlNjREZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6YmFzZTY0
RGVjb2RlSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvQmFzZTY0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjopOgorCiAyMDEwLTA5LTA4ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05OTQsMTEgKzk5NCw4IEBAIFN0cmluZyBET01XaW5kb3c6OmF0
b2IoY29uc3QgU3RyaW5nJiBlbmMKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAot
ICAgIFZlY3RvcjxjaGFyPiBpbjsKLSAgICBpbi5hcHBlbmQoZW5jb2RlZFN0cmluZy5jaGFyYWN0
ZXJzKCksIGVuY29kZWRTdHJpbmcubGVuZ3RoKCkpOwogICAgIFZlY3RvcjxjaGFyPiBvdXQ7Ci0K
LSAgICBpZiAoIWJhc2U2NERlY29kZShpbiwgb3V0KSkgeworICAgIGlmICghYmFzZTY0RGVjb2Rl
KGVuY29kZWRTdHJpbmcsIG91dCwgRmFpbE9uSW52YWxpZENoYXJhY3RlcikpIHsKICAgICAgICAg
ZWMgPSBJTlZBTElEX0NIQVJBQ1RFUl9FUlI7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAg
ICB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvcGFnZS9QYWdlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjIxLDIyICs2MjEsMTcgQEAgdm9pZCBQYWdlOjp1c2VyU3R5bGVT
aGVldExvY2F0aW9uQ2hhbmdlZAogICAgIG1fZGlkTG9hZFVzZXJTdHlsZVNoZWV0ID0gZmFsc2U7
CiAgICAgbV91c2VyU3R5bGVTaGVldCA9IFN0cmluZygpOwogICAgIG1fdXNlclN0eWxlU2hlZXRN
b2RpZmljYXRpb25UaW1lID0gMDsKLSAgICAKKwogICAgIC8vIERhdGEgVVJMcyB3aXRoIGJhc2U2
NC1lbmNvZGVkIFVURi04IHN0eWxlIHNoZWV0cyBhcmUgY29tbW9uLiBXZSBjYW4gcHJvY2VzcyB0
aGVtCiAgICAgLy8gc3luY2hyb25vdXNseSBhbmQgYXZvaWQgdXNpbmcgYSBsb2FkZXIuIAogICAg
IGlmICh1cmwucHJvdG9jb2xJcygiZGF0YSIpICYmIHVybC5zdHJpbmcoKS5zdGFydHNXaXRoKCJk
YXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCIpKSB7CiAgICAgICAgIG1fZGlkTG9h
ZFVzZXJTdHlsZVNoZWV0ID0gdHJ1ZTsKLSAgICAgICAgCi0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IHByZWZpeExlbmd0aCA9IDM1OwotICAgICAgICBWZWN0b3I8Y2hhcj4gZW5jb2RlZERhdGEodXJs
LnN0cmluZygpLmxlbmd0aCgpIC0gcHJlZml4TGVuZ3RoKTsKLSAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gcHJlZml4TGVuZ3RoOyBpIDwgdXJsLnN0cmluZygpLmxlbmd0aCgpOyArK2kpCi0gICAg
ICAgICAgICBlbmNvZGVkRGF0YVtpIC0gcHJlZml4TGVuZ3RoXSA9IHN0YXRpY19jYXN0PGNoYXI+
KHVybC5zdHJpbmcoKVtpXSk7CiAKICAgICAgICAgVmVjdG9yPGNoYXI+IHN0eWxlU2hlZXRBc1VU
Rjg7Ci0gICAgICAgIGlmIChiYXNlNjREZWNvZGUoZW5jb2RlZERhdGEsIHN0eWxlU2hlZXRBc1VU
RjgpKQorICAgICAgICBpZiAoYmFzZTY0RGVjb2RlKGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyh1
cmwuc3RyaW5nKCkuc3Vic3RyaW5nKDM1KSksIHN0eWxlU2hlZXRBc1VURjgsIElnbm9yZVdoaXRl
c3BhY2UpKQogICAgICAgICAgICAgbV91c2VyU3R5bGVTaGVldCA9IFN0cmluZzo6ZnJvbVVURjgo
c3R5bGVTaGVldEFzVVRGOC5kYXRhKCksIHN0eWxlU2hlZXRBc1VURjguc2l6ZSgpKTsKICAgICB9
Ci0gICAgCisKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBpZiAoZnJhbWUt
PmRvY3VtZW50KCkpCiAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlUGFnZVVz
ZXJTaGVldCgpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAJKHJldmlzaW9uIDY2OTk3
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIsNiArMiw3IEBACiAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEYXdpdCBBbGVtYXllaHUg
PGFkYXdpdEBrZGUub3JnPgogICAgQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFr
b3YgPGFwQHdlYmtpdC5vcmc+CiAgICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICAgQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fu
c3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChMR1BM
KQpAQCAtMjUsNiArMjYsNyBAQAogCiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8d3Rm
L1N0cmluZ0V4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcwLDcgKzcyLDcgQEAgdm9pZCBiYXNlNjRFbmNvZGUoY29u
c3QgY2hhciogZGF0YSwgdW5zaQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiB0aGUgaW5w
dXQgc3RyaW5nIGlzIHBhdGhvbG9naWNhbGx5IGxhcmdlLCBqdXN0IHJldHVybiBub3RoaW5nLgot
ICAgIC8vIE5vdGU6IEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlICJvdXRfbGVuIiBjb21wdXRh
dGlvbiBiZWxvdy4KKyAgICAvLyBOb3RlOiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSAib3V0
TGVuZ3RoIiBjb21wdXRhdGlvbiBiZWxvdy4KICAgICAvLyBSYXRoZXIgdGhhbiBiZWluZyBwZXJm
ZWN0bHkgcHJlY2lzZSwgdGhpcyBpcyBhIGJpdCBjb25zZXJ2YXRpdmUuCiAgICAgY29uc3QgdW5z
aWduZWQgbWF4SW5wdXRCdWZmZXJTaXplID0gVUlOVF9NQVggLyA3NyAqIDc2IC8gNCAqIDMgLSAy
OwogICAgIGlmIChsZW4gPiBtYXhJbnB1dEJ1ZmZlclNpemUpCkBAIC03OSwyMSArODEsMjEgQEAg
dm9pZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQogICAgIHVuc2lnbmVkIHNp
ZHggPSAwOwogICAgIHVuc2lnbmVkIGRpZHggPSAwOwogCi0gICAgdW5zaWduZWQgb3V0X2xlbiA9
ICgobGVuICsgMikgLyAzKSAqIDQ7CisgICAgdW5zaWduZWQgb3V0TGVuZ3RoID0gKChsZW4gKyAy
KSAvIDMpICogNDsKIAogICAgIC8vIERlYWwgd2l0aCB0aGUgNzYgY2hhcmFjdGVyIHBlciBsaW5l
IGxpbWl0IHNwZWNpZmllZCBpbiBSRkMgMjA0NS4KLSAgICBpbnNlcnRMRnMgPSAoaW5zZXJ0TEZz
ICYmIG91dF9sZW4gPiA3Nik7CisgICAgaW5zZXJ0TEZzID0gKGluc2VydExGcyAmJiBvdXRMZW5n
dGggPiA3Nik7CiAgICAgaWYgKGluc2VydExGcykKLSAgICAgICAgb3V0X2xlbiArPSAoKG91dF9s
ZW4gLSAxKSAvIDc2KTsKKyAgICAgICAgb3V0TGVuZ3RoICs9ICgob3V0TGVuZ3RoIC0gMSkgLyA3
Nik7CiAKICAgICBpbnQgY291bnQgPSAwOwotICAgIG91dC5ncm93KG91dF9sZW4pOworICAgIG91
dC5ncm93KG91dExlbmd0aCk7CiAKICAgICAvLyAzLWJ5dGUgdG8gNC1ieXRlIGNvbnZlcnNpb24g
KyAwLTYzIHRvIGFzY2lpIHByaW50YWJsZSBjb252ZXJzaW9uCiAgICAgaWYgKGxlbiA+IDEpIHsK
ICAgICAgICAgd2hpbGUgKHNpZHggPCBsZW4gLSAyKSB7CiAgICAgICAgICAgICBpZiAoaW5zZXJ0
TEZzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNvdW50ICYmIChjb3VudCAlIDc2KSA9PSAwKQor
ICAgICAgICAgICAgICAgIGlmIChjb3VudCAmJiAhKGNvdW50ICUgNzYpKQogICAgICAgICAgICAg
ICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7CiAgICAgICAgICAgICAgICAgY291bnQgKz0gNDsK
ICAgICAgICAgICAgIH0KQEAgLTEwNiw3ICsxMDgsNyBAQCB2b2lkIGJhc2U2NEVuY29kZShjb25z
dCBjaGFyKiBkYXRhLCB1bnNpCiAgICAgfQogCiAgICAgaWYgKHNpZHggPCBsZW4pIHsKLSAgICAg
ICAgaWYgKGluc2VydExGcyAmJiAoY291bnQgPiAwKSAmJiAoY291bnQgJSA3NikgPT0gMCkKKyAg
ICAgICAgaWYgKGluc2VydExGcyAmJiAoY291bnQgPiAwKSAmJiAhKGNvdW50ICUgNzYpKQogICAg
ICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7CiAKICAgICAgICAgb3V0W2RpZHgrK10gPSBiYXNl
NjRFbmNNYXBbKGRhdGFbc2lkeF0gPj4gMikgJiAwNzddOwpAQCAtMTI0LDcgKzEyNiw3IEBAIHZv
aWQgYmFzZTY0RW5jb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kKICAgICB9CiB9CiAKLWJvb2wg
YmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0KQor
Ym9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiBpbiwgVmVjdG9yPGNoYXI+JiBv
dXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCiB7CiAgICAgb3V0LmNsZWFyKCk7CiAKQEAg
LTEzMiwzNiArMTM0LDQ5IEBAIGJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYg
aW4KICAgICBpZiAoaW4uc2l6ZSgpID4gVUlOVF9NQVgpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHJldHVybiBiYXNlNjREZWNvZGUoaW4uZGF0YSgpLCBpbi5zaXplKCksIG91dCk7Cisg
ICAgcmV0dXJuIGJhc2U2NERlY29kZShpbi5kYXRhKCksIGluLnNpemUoKSwgb3V0LCBwb2xpY3kp
OwogfQogCi1ib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW4s
IFZlY3RvcjxjaGFyPiYgb3V0KQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0YXRpYyBpbmxpbmUg
Ym9vbCBiYXNlNjREZWNvZGVJbnRlcm5hbChjb25zdCBUKiBkYXRhLCB1bnNpZ25lZCBsZW4sIFZl
Y3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5KQogewogICAgIG91dC5j
bGVhcigpOwotICAgIGlmIChsZW4gPT0gMCkKKyAgICBpZiAoIWxlbikKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICB3aGlsZSAobGVuICYmIGRhdGFbbGVuLTFdID09ICc9JykKLSAgICAgICAg
LS1sZW47Ci0KICAgICBvdXQuZ3JvdyhsZW4pOworCisgICAgYm9vbCBzYXdFcXVhbHNTaWduID0g
ZmFsc2U7CisgICAgdW5zaWduZWQgb3V0TGVuZ3RoID0gMDsKICAgICBmb3IgKHVuc2lnbmVkIGlk
eCA9IDA7IGlkeCA8IGxlbjsgaWR4KyspIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBjaCA9IGRh
dGFbaWR4XTsKLSAgICAgICAgaWYgKChjaCA+IDQ3ICYmIGNoIDwgNTgpIHx8IChjaCA+IDY0ICYm
IGNoIDwgOTEpIHx8IChjaCA+IDk2ICYmIGNoIDwgMTIzKSB8fCBjaCA9PSAnKycgfHwgY2ggPT0g
Jy8nIHx8IGNoID09ICc9JykKLSAgICAgICAgICAgIG91dFtpZHhdID0gYmFzZTY0RGVjTWFwW2No
XTsKLSAgICAgICAgZWxzZQorICAgICAgICB1bnNpZ25lZCBjaCA9IGRhdGFbaWR4XTsKKyAgICAg
ICAgaWYgKGNoID09ICc9JykKKyAgICAgICAgICAgIHNhd0VxdWFsc1NpZ24gPSB0cnVlOworICAg
ICAgICBlbHNlIGlmICgoJzAnIDw9IGNoICYmIGNoIDw9ICc5JykgfHwgKCdBJyA8PSBjaCAmJiBj
aCA8PSAnWicpIHx8ICgnYScgPD0gY2ggJiYgY2ggPD0gJ3onKSB8fCBjaCA9PSAnKycgfHwgY2gg
PT0gJy8nKSB7CisgICAgICAgICAgICBpZiAoc2F3RXF1YWxzU2lnbikKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBvdXRbb3V0TGVuZ3RoXSA9IGJhc2U2NERlY01h
cFtjaF07CisgICAgICAgICAgICBvdXRMZW5ndGgrKzsKKyAgICAgICAgfSBlbHNlIGlmIChwb2xp
Y3kgPT0gRmFpbE9uSW52YWxpZENoYXJhY3RlciB8fCAocG9saWN5ID09IElnbm9yZVdoaXRlc3Bh
Y2UgJiYgIWlzU3BhY2VPck5ld2xpbmUoY2gpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKKyAgICBpZiAoIW91dExlbmd0aCkKKyAgICAgICAgcmV0dXJuICFzYXdFcXVhbHNT
aWduOworCisgICAgLy8gVmFsaWQgZGF0YSBpcyAobiAqIDQgKyBbMCwyLDNdKSBjaGFyYWN0ZXJz
IGxvbmcuCisgICAgaWYgKChvdXRMZW5ndGggJSA0KSA9PSAxKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCiAgICAgLy8gNC1ieXRlIHRvIDMtYnl0ZSBjb252ZXJzaW9uCi0gICAgdW5zaWdu
ZWQgb3V0TGVuID0gbGVuIC0gKChsZW4gKyAzKSAvIDQpOwotICAgIGlmICghb3V0TGVuIHx8ICgo
b3V0TGVuICsgMikgLyAzKSAqIDQgPCBsZW4pCisgICAgb3V0TGVuZ3RoIC09IChvdXRMZW5ndGgg
KyAzKSAvIDQ7CisgICAgaWYgKCFvdXRMZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIHVuc2lnbmVkIHNpZHggPSAwOwogICAgIHVuc2lnbmVkIGRpZHggPSAwOwotICAgIGlmIChv
dXRMZW4gPiAxKSB7Ci0gICAgICAgIHdoaWxlIChkaWR4IDwgb3V0TGVuIC0gMikgeworICAgIGlm
IChvdXRMZW5ndGggPiAxKSB7CisgICAgICAgIHdoaWxlIChkaWR4IDwgb3V0TGVuZ3RoIC0gMikg
ewogICAgICAgICAgICAgb3V0W2RpZHhdID0gKCgob3V0W3NpZHhdIDw8IDIpICYgMjU1KSB8ICgo
b3V0W3NpZHggKyAxXSA+PiA0KSAmIDAwMykpOwogICAgICAgICAgICAgb3V0W2RpZHggKyAxXSA9
ICgoKG91dFtzaWR4ICsgMV0gPDwgNCkgJiAyNTUpIHwgKChvdXRbc2lkeCArIDJdID4+IDIpICYg
MDE3KSk7CiAgICAgICAgICAgICBvdXRbZGlkeCArIDJdID0gKCgob3V0W3NpZHggKyAyXSA8PCA2
KSAmIDI1NSkgfCAob3V0W3NpZHggKyAzXSAmIDA3NykpOwpAQCAtMTcwLDE2ICsxODUsMjYgQEAg
Ym9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQogICAgICAgICB9CiAgICAg
fQogCi0gICAgaWYgKGRpZHggPCBvdXRMZW4pCisgICAgaWYgKGRpZHggPCBvdXRMZW5ndGgpCiAg
ICAgICAgIG91dFtkaWR4XSA9ICgoKG91dFtzaWR4XSA8PCAyKSAmIDI1NSkgfCAoKG91dFtzaWR4
ICsgMV0gPj4gNCkgJiAwMDMpKTsKIAotICAgIGlmICgrK2RpZHggPCBvdXRMZW4pCisgICAgaWYg
KCsrZGlkeCA8IG91dExlbmd0aCkKICAgICAgICAgb3V0W2RpZHhdID0gKCgob3V0W3NpZHggKyAx
XSA8PCA0KSAmIDI1NSkgfCAoKG91dFtzaWR4ICsgMl0gPj4gMikgJiAwMTcpKTsKIAotICAgIGlm
IChvdXRMZW4gPCBvdXQuc2l6ZSgpKQotICAgICAgICBvdXQuc2hyaW5rKG91dExlbik7CisgICAg
aWYgKG91dExlbmd0aCA8IG91dC5zaXplKCkpCisgICAgICAgIG91dC5zaHJpbmsob3V0TGVuZ3Ro
KTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBsZW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xp
Y3kgcG9saWN5KQoreworICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRlcm5hbDxjaGFyPihkYXRh
LCBsZW4sIG91dCwgcG9saWN5KTsKIH0KKworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgU3RyaW5n
JiBpbiwgVmVjdG9yPGNoYXI+JiBvdXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCit7Cisg
ICAgcmV0dXJuIGJhc2U2NERlY29kZUludGVybmFsPFVDaGFyPihpbi5jaGFyYWN0ZXJzKCksIGlu
Lmxlbmd0aCgpLCBvdXQsIHBvbGljeSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL3RleHQvQmFzZTY0LmgJKHJldmlzaW9uIDY2OTk3KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0Jhc2U2NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQor
ICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2Eu
Y29tPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxNiArMjcsMTkgQEAK
ICNpZm5kZWYgQmFzZTY0X2gKICNkZWZpbmUgQmFzZTY0X2gKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2VudW0gQmFzZTY0RGVjb2RlUG9saWN5IHsgRmFpbE9uSW52YWxpZENoYXJhY3RlciwgSWdub3Jl
V2hpdGVzcGFjZSwgSWdub3JlSW52YWxpZENoYXJhY3RlcnMgfTsKKwogdm9pZCBiYXNlNjRFbmNv
ZGUoY29uc3QgVmVjdG9yPGNoYXI+JiwgVmVjdG9yPGNoYXI+JiwgYm9vbCBpbnNlcnRMRnMgPSBm
YWxzZSk7CiB2b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFyKiwgdW5zaWduZWQsIFZlY3Rvcjxj
aGFyPiYsIGJvb2wgaW5zZXJ0TEZzID0gZmFsc2UpOwogCi0vLyB0aGlzIGRlY29kZXIgaXMgbm90
IGdlbmVyYWwgcHVycG9zZSAtIGl0IHJldHVybnMgYW4gZXJyb3IgaWYgaXQgZW5jb3VudGVycyBh
IGxpbmVmZWVkLCBhcyBuZWVkZWQgZm9yIHdpbmRvdy5hdG9iCi1ib29sIGJhc2U2NERlY29kZShj
b25zdCBWZWN0b3I8Y2hhcj4mLCBWZWN0b3I8Y2hhcj4mKTsKLWJvb2wgYmFzZTY0RGVjb2RlKGNv
bnN0IGNoYXIqLCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+Jik7Citib29sIGJhc2U2NERlY29kZShj
b25zdCBTdHJpbmcmLCBWZWN0b3I8Y2hhcj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgPSBGYWlsT25J
bnZhbGlkQ2hhcmFjdGVyKTsKK2Jvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYs
IFZlY3RvcjxjaGFyPiYsIEJhc2U2NERlY29kZVBvbGljeSA9IEZhaWxPbkludmFsaWRDaGFyYWN0
ZXIpOworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBWZWN0b3I8Y2hh
cj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgPSBGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKTsKIAogfQog
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA2Njk5NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA5LTA4ICBQYXRyaWNrIEdhbnN0ZXJl
ciAgPHBhcm9nYUBwYXJvZ2EuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIEFkZCBCYXNlNjREZWNvZGVQb2xpY3kgb3B0aW9uIGF0IGJhc2U2NERlY29k
ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTUx
MAorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sOgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZh
c3QtcGF0aC5odG1sOiBBZGRlZCBhZGRpdGlvbmFsIGRhdGEgdXJscyB0ZXN0cy4KKwogMjAxMC0w
OS0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2It
YnRvYS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY2OTk3KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDggKzM1LDEzIEBAIFBBU1Mgd2luZG93LmF0b2IoIj8/Pz8iKSB0aHJldyBleGNlcAog
UEFTUyB3aW5kb3cuYXRvYigieiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFS
QUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUuCiBQQVNTIHdpbmRvdy5hdG9iKCJ6eiIpIGlzICLP
IgogUEFTUyB3aW5kb3cuYXRvYigienp6IikgaXMgIs88IgorUEFTUyB3aW5kb3cuYXRvYigienp6
PSIpIGlzICLPPCIKK1BBU1Mgd2luZG93LmF0b2IoInp6ej09IikgaXMgIs88IgorUEFTUyB3aW5k
b3cuYXRvYigienp6PT09IikgaXMgIs88IgorUEFTUyB3aW5kb3cuYXRvYigienp6PT09PSIpIGlz
ICLPPCIKIFBBU1Mgd2luZG93LmF0b2IoInp6enoiKSBpcyAizzzzIgogUEFTUyB3aW5kb3cuYXRv
Yigienp6enoiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQ0hBUkFDVEVSX0VSUjog
RE9NIEV4Y2VwdGlvbiA1LgorUEFTUyB3aW5kb3cuYXRvYigiej16eiIpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUuCiBQQVNTIHdp
bmRvdy5hdG9iKCI9IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0NIQVJBQ1RFUl9F
UlI6IERPTSBFeGNlcHRpb24gNS4KIFBBU1Mgd2luZG93LmF0b2IoIj09IikgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTlZBTElEX0NIQVJBQ1RFUl9FUlI6IERPTSBFeGNlcHRpb24gNS4KIFBBU1Mg
d2luZG93LmF0b2IoIj09PSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFSQUNU
RVJfRVJSOiBET00gRXhjZXB0aW9uIDUuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvYXRvYi1idG9hLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2F0b2ItYnRvYS5odG1sCShyZXZpc2lvbiA2Njk5NykKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDgsOCArNDgsMTMg
QEAgc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCI/Pz8/IiknKTsKIHNob3VsZFRocm93KCd3aW5k
b3cuYXRvYigieiIpJyk7CiBzaG91bGRCZSgnd2luZG93LmF0b2IoInp6IiknLCAnIs8iJyk7CiBz
aG91bGRCZSgnd2luZG93LmF0b2IoInp6eiIpJywgJyLPXHUwMDNDIicpOworc2hvdWxkQmUoJ3dp
bmRvdy5hdG9iKCJ6eno9IiknLCAnIs9cdTAwM0MiJyk7CitzaG91bGRCZSgnd2luZG93LmF0b2Io
Inp6ej09IiknLCAnIs9cdTAwM0MiJyk7CitzaG91bGRCZSgnd2luZG93LmF0b2IoInp6ej09PSIp
JywgJyLPXHUwMDNDIicpOworc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6eno9PT09IiknLCAnIs9c
dTAwM0MiJyk7CiBzaG91bGRCZSgnd2luZG93LmF0b2IoInp6enoiKScsICciz1x1MDAzQ/MiJyk7
CiBzaG91bGRUaHJvdygnd2luZG93LmF0b2IoInp6enp6IiknKTsKK3Nob3VsZFRocm93KCd3aW5k
b3cuYXRvYigiej16eiIpJyk7CiBzaG91bGRUaHJvdygnd2luZG93LmF0b2IoIj0iKScpOwogc2hv
dWxkVGhyb3coJ3dpbmRvdy5hdG9iKCI9PSIpJyk7CiBzaG91bGRUaHJvdygnd2luZG93LmF0b2Io
Ij09PSIpJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNl
ci1zdHlsZXNoZWV0LWZhc3QtcGF0aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGgt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2Njk5NykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEwIEBACiBUaGlzIHRlc3RzIHRoYXQgd2hlbiB0aGUgdXNl
ciBzdHlsZSBzaGVldCBsb2NhdGlvbiBpcyBzZXQgdG8gYSBkYXRhOiBVUkwgd2l0aCBiYXNlNjQt
ZW5jb2RlZCBVVEYtOCBkYXRhLCB0aGUgc3R5bGUgc2hlZXQgaXMgcHJvY2Vzc2VkIHN5bmNocm9u
b3VzbHksIGluc3RlYWQgb2YgaW52b2tpbmcgdGhlIGFzeW5jaHJvbm91cyBsb2FkZXIuCiAKLVBB
U1MKK1BBU1MgMTAwcHgKK1BBU1MgMTEwcHgKK1BBU1MgMTIwcHgKK1BBU1MgMTMwcHgKK1BBU1Mg
MTQwcHgKK1BBU1MgMTUwcHgKK1BBU1MgMTYwcHgKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGguaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNo
ZWV0LWZhc3QtcGF0aC5odG1sCShyZXZpc2lvbiA2Njk5NykKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTMsMjAgKzMsMzEgQEAKICAgICBVUkwgd2l0aCBiYXNlNjQtZW5jb2RlZCBV
VEYtOCBkYXRhLCB0aGUgc3R5bGUgc2hlZXQgaXMgcHJvY2Vzc2VkCiAgICAgc3luY2hyb25vdXNs
eSwgaW5zdGVhZCBvZiBpbnZva2luZyB0aGUgYXN5bmNocm9ub3VzIGxvYWRlci4KIDwvcD4KLTxw
IGlkPSJyZXN1bHQiPjwvcD4KIDxzY3JpcHQ+Ci0gICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKKyAgICB2YXIgdGVzdE9iamVjdHMgPSBbCisgICAgICAg
IHtyZXN1bHQ6dHJ1ZSwgIHNpemU6IjEwMHB4IiwgdXJsOiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9
dXRmLTg7YmFzZTY0LFltOWtlU0I3Wm05dWRDMXphWHBsT2lBeE1EQndlSDA9In0sCisgICAgICAg
IHtyZXN1bHQ6dHJ1ZSwgIHNpemU6IjExMHB4IiwgdXJsOiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9
dXRmLTg7YmFzZTY0LCAgICAgICAgICAgICAgICAgICAgICAgWW05a2VTQjdabTl1ZEMxemFYcGxP
aUF4TVRCd2VIMD0gICAgICAgICAgICAgICAgICAifSwKKyAgICAgICAge3Jlc3VsdDp0cnVlLCAg
c2l6ZToiMTIwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsXG4g
XHIgXHQgWW05ayBcdCBlU0I3IFxyIFptOXVkIFxuIFxuIEMxemFYcCBcciBsT2lBeE0gXHQgakJ3
ZUgwPSBcdCBcciBcbiJ9LAorICAgICAgICB7cmVzdWx0OnRydWUsICBzaXplOiIxMzBweCIsIHVy
bDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxcdTAwNTkgXHUwMDZEIFx1MDAz
OSBcdTAwNkIgZVNCN1ptOXVkIEMxemFYcGxPaUF4TXpCd2UgXHUwMDQ4IFx1MDAzMCBcdTAwM0Qi
fSwKKyAgICAgICAge3Jlc3VsdDpmYWxzZSwgc2l6ZToiMTQwcHgiLCB1cmw6ImRhdGE6dGV4dC9j
c3M7Y2hhcnNldD11dGYtODtiYXNlNjQsWW05ayQjZVNCN1ptIzl1ZChDMXphWHApbE9pQXhOREJ3
ZUgwPSJ9LAorICAgICAgICB7cmVzdWx0OmZhbHNlLCBzaXplOiIxNTBweCIsIHVybDoiZGF0YTp0
ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxZbTlrZSUwMFNCN1olMjBtOXVkQzF6XG5cdGFY
cGxPI2lBeCUwM05UQnclZUgwPSJ9LAorICAgICAgICB7cmVzdWx0OmZhbHNlLCBzaXplOiIxNjBw
eCIsIHVybDoiJTUwJTMwJTEwJTAwJTIwJTQwIn0KKyAgICBdOwogCiAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0
RW5hYmxlZCh0cnVlKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0VXNlclN0eWxl
U2hlZXRMb2NhdGlvbigiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxZbTlrZVNC
N1ptOXVkQzF6YVhwbE9pQXhNREJ3ZUgwPSIpOwogCi0gICAgICAgIGRvY3VtZW50LmJvZHkub2Zm
c2V0VG9wOwotICAgICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5mb250
U2l6ZSA9PSAiMTAwcHgiKQotICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9ICJQQVNTIjsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9ICJGQUlMIjsKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0T2JqZWN0cy5sZW5ndGg7IGkrKykgeworICAg
ICAgICAgICAgdmFyIG9iaiA9IHRlc3RPYmplY3RzW2ldOworICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihvYmoudXJsKTsKKworICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisgICAgICAgICAgICB2YXIgcmVzdWx0ID0g
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5mb250U2l6ZSA9PSBvYmouc2l6ZTsKKyAg
ICAgICAgICAgIGRvY3VtZW50LndyaXRlKChyZXN1bHQgPT0gb2JqLnJlc3VsdCA/ICJQQVNTIiA6
ICJGQUlMIikgKyAiICIgKyBvYmouc2l6ZSArICI8YnI+Iik7CisKKyAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oIiIpOworICAgICAgICB9
CiAgICAgfSBlbHNlCi0gICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiVGhpcyB0ZXN0IGNhbiBv
bmx5IGJlIHJ1biBpbiBEdW1wUmVuZGVyVHJlZS4iOworICAgICAgICBkb2N1bWVudC53cml0ZSgi
VGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBEdW1wUmVuZGVyVHJlZS4iKTsKIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwppbmRleCBiNWMxY2QyLi4xNzFmMjFhIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA5LTE0
ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNldCBvbmx5IHZhbGlkIHVzZXJTdHls
ZVNoZWV0TG9jYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MTUxMAorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAg
ICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbjpdKToKKwog
MjAxMC0wOS0xNCAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IGE0
YTUzODMuLjE4NzY4YmEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTY0
Miw3ICs2NDIsOCBAQCBzdGF0aWMgV2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsRm9yTWFpbkJ1bmRs
ZSh2b2lkKQogICAgICAgICBsb2NhdGlvblN0cmluZyA9IFtVUkwgX3dlYl9vcmlnaW5hbERhdGFB
c1N0cmluZ107CiAgICAgfQogICAgIAotICAgIFtzZWxmIF9zZXRTdHJpbmdWYWx1ZTpsb2NhdGlv
blN0cmluZyBmb3JLZXk6IFdlYktpdFVzZXJTdHlsZVNoZWV0TG9jYXRpb25QcmVmZXJlbmNlS2V5
XTsKKyAgICBpZiAobG9jYXRpb25TdHJpbmcpCisgICAgICAgIFtzZWxmIF9zZXRTdHJpbmdWYWx1
ZTpsb2NhdGlvblN0cmluZyBmb3JLZXk6IFdlYktpdFVzZXJTdHlsZVNoZWV0TG9jYXRpb25QcmVm
ZXJlbmNlS2V5XTsKIH0KIAogLSAoQk9PTClzaG91bGRQcmludEJhY2tncm91bmRzCg==
</data>
<flag name="commit-queue"
          id="56890"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67566</attachid>
            <date>2010-09-14 09:27:11 -0700</date>
            <delta_ts>2010-09-16 12:08:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41510i.patch</filename>
            <type>text/plain</type>
            <size>17458</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDktMDggIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBh
cm9nYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
QWRkIEJhc2U2NERlY29kZVBvbGljeSBvcHRpb24gYXQgYmFzZTY0RGVjb2RlKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTEwCisKKyAgICAgICAg
QWRkIGFuIG9wdGlvbiBmb3IgaWdub3JpbmcgY2hhcmFjdGVycyBpbiBiYXNlNjQgZGF0YS4KKyAg
ICAgICAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGRlY29kaW5nIGRhdGEgdXJscy4KKworICAgICAg
ICBBbHNvIGFkZCBhbiBvdmVybG9hZCB0byBkZWNvZGUgV2ViQ29yZTo6U3RyaW5nIGRpcmVjdGx5
LgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjphdG9iKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvQmFzZTY0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJhc2U2NEVuY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpiYXNlNjREZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6YmFzZTY0
RGVjb2RlSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvQmFzZTY0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjopOgorCiAyMDEwLTA5LTA4ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05OTQsMTEgKzk5NCw4IEBAIFN0cmluZyBET01XaW5kb3c6OmF0
b2IoY29uc3QgU3RyaW5nJiBlbmMKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAot
ICAgIFZlY3RvcjxjaGFyPiBpbjsKLSAgICBpbi5hcHBlbmQoZW5jb2RlZFN0cmluZy5jaGFyYWN0
ZXJzKCksIGVuY29kZWRTdHJpbmcubGVuZ3RoKCkpOwogICAgIFZlY3RvcjxjaGFyPiBvdXQ7Ci0K
LSAgICBpZiAoIWJhc2U2NERlY29kZShpbiwgb3V0KSkgeworICAgIGlmICghYmFzZTY0RGVjb2Rl
KGVuY29kZWRTdHJpbmcsIG91dCwgRmFpbE9uSW52YWxpZENoYXJhY3RlcikpIHsKICAgICAgICAg
ZWMgPSBJTlZBTElEX0NIQVJBQ1RFUl9FUlI7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAg
ICB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvcGFnZS9QYWdlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjIxLDIyICs2MjEsMTcgQEAgdm9pZCBQYWdlOjp1c2VyU3R5bGVT
aGVldExvY2F0aW9uQ2hhbmdlZAogICAgIG1fZGlkTG9hZFVzZXJTdHlsZVNoZWV0ID0gZmFsc2U7
CiAgICAgbV91c2VyU3R5bGVTaGVldCA9IFN0cmluZygpOwogICAgIG1fdXNlclN0eWxlU2hlZXRN
b2RpZmljYXRpb25UaW1lID0gMDsKLSAgICAKKwogICAgIC8vIERhdGEgVVJMcyB3aXRoIGJhc2U2
NC1lbmNvZGVkIFVURi04IHN0eWxlIHNoZWV0cyBhcmUgY29tbW9uLiBXZSBjYW4gcHJvY2VzcyB0
aGVtCiAgICAgLy8gc3luY2hyb25vdXNseSBhbmQgYXZvaWQgdXNpbmcgYSBsb2FkZXIuIAogICAg
IGlmICh1cmwucHJvdG9jb2xJcygiZGF0YSIpICYmIHVybC5zdHJpbmcoKS5zdGFydHNXaXRoKCJk
YXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCIpKSB7CiAgICAgICAgIG1fZGlkTG9h
ZFVzZXJTdHlsZVNoZWV0ID0gdHJ1ZTsKLSAgICAgICAgCi0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IHByZWZpeExlbmd0aCA9IDM1OwotICAgICAgICBWZWN0b3I8Y2hhcj4gZW5jb2RlZERhdGEodXJs
LnN0cmluZygpLmxlbmd0aCgpIC0gcHJlZml4TGVuZ3RoKTsKLSAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gcHJlZml4TGVuZ3RoOyBpIDwgdXJsLnN0cmluZygpLmxlbmd0aCgpOyArK2kpCi0gICAg
ICAgICAgICBlbmNvZGVkRGF0YVtpIC0gcHJlZml4TGVuZ3RoXSA9IHN0YXRpY19jYXN0PGNoYXI+
KHVybC5zdHJpbmcoKVtpXSk7CiAKICAgICAgICAgVmVjdG9yPGNoYXI+IHN0eWxlU2hlZXRBc1VU
Rjg7Ci0gICAgICAgIGlmIChiYXNlNjREZWNvZGUoZW5jb2RlZERhdGEsIHN0eWxlU2hlZXRBc1VU
RjgpKQorICAgICAgICBpZiAoYmFzZTY0RGVjb2RlKGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyh1
cmwuc3RyaW5nKCkuc3Vic3RyaW5nKDM1KSksIHN0eWxlU2hlZXRBc1VURjgsIElnbm9yZVdoaXRl
c3BhY2UpKQogICAgICAgICAgICAgbV91c2VyU3R5bGVTaGVldCA9IFN0cmluZzo6ZnJvbVVURjgo
c3R5bGVTaGVldEFzVVRGOC5kYXRhKCksIHN0eWxlU2hlZXRBc1VURjguc2l6ZSgpKTsKICAgICB9
Ci0gICAgCisKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBpZiAoZnJhbWUt
PmRvY3VtZW50KCkpCiAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlUGFnZVVz
ZXJTaGVldCgpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAJKHJldmlzaW9uIDY2OTk3
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIsNiArMiw3IEBACiAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEYXdpdCBBbGVtYXllaHUg
PGFkYXdpdEBrZGUub3JnPgogICAgQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFr
b3YgPGFwQHdlYmtpdC5vcmc+CiAgICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICAgQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fu
c3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChMR1BM
KQpAQCAtMjUsNiArMjYsNyBAQAogCiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8d3Rm
L1N0cmluZ0V4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcwLDcgKzcyLDcgQEAgdm9pZCBiYXNlNjRFbmNvZGUoY29u
c3QgY2hhciogZGF0YSwgdW5zaQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiB0aGUgaW5w
dXQgc3RyaW5nIGlzIHBhdGhvbG9naWNhbGx5IGxhcmdlLCBqdXN0IHJldHVybiBub3RoaW5nLgot
ICAgIC8vIE5vdGU6IEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlICJvdXRfbGVuIiBjb21wdXRh
dGlvbiBiZWxvdy4KKyAgICAvLyBOb3RlOiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSAib3V0
TGVuZ3RoIiBjb21wdXRhdGlvbiBiZWxvdy4KICAgICAvLyBSYXRoZXIgdGhhbiBiZWluZyBwZXJm
ZWN0bHkgcHJlY2lzZSwgdGhpcyBpcyBhIGJpdCBjb25zZXJ2YXRpdmUuCiAgICAgY29uc3QgdW5z
aWduZWQgbWF4SW5wdXRCdWZmZXJTaXplID0gVUlOVF9NQVggLyA3NyAqIDc2IC8gNCAqIDMgLSAy
OwogICAgIGlmIChsZW4gPiBtYXhJbnB1dEJ1ZmZlclNpemUpCkBAIC03OSwyMSArODEsMjEgQEAg
dm9pZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQogICAgIHVuc2lnbmVkIHNp
ZHggPSAwOwogICAgIHVuc2lnbmVkIGRpZHggPSAwOwogCi0gICAgdW5zaWduZWQgb3V0X2xlbiA9
ICgobGVuICsgMikgLyAzKSAqIDQ7CisgICAgdW5zaWduZWQgb3V0TGVuZ3RoID0gKChsZW4gKyAy
KSAvIDMpICogNDsKIAogICAgIC8vIERlYWwgd2l0aCB0aGUgNzYgY2hhcmFjdGVyIHBlciBsaW5l
IGxpbWl0IHNwZWNpZmllZCBpbiBSRkMgMjA0NS4KLSAgICBpbnNlcnRMRnMgPSAoaW5zZXJ0TEZz
ICYmIG91dF9sZW4gPiA3Nik7CisgICAgaW5zZXJ0TEZzID0gKGluc2VydExGcyAmJiBvdXRMZW5n
dGggPiA3Nik7CiAgICAgaWYgKGluc2VydExGcykKLSAgICAgICAgb3V0X2xlbiArPSAoKG91dF9s
ZW4gLSAxKSAvIDc2KTsKKyAgICAgICAgb3V0TGVuZ3RoICs9ICgob3V0TGVuZ3RoIC0gMSkgLyA3
Nik7CiAKICAgICBpbnQgY291bnQgPSAwOwotICAgIG91dC5ncm93KG91dF9sZW4pOworICAgIG91
dC5ncm93KG91dExlbmd0aCk7CiAKICAgICAvLyAzLWJ5dGUgdG8gNC1ieXRlIGNvbnZlcnNpb24g
KyAwLTYzIHRvIGFzY2lpIHByaW50YWJsZSBjb252ZXJzaW9uCiAgICAgaWYgKGxlbiA+IDEpIHsK
ICAgICAgICAgd2hpbGUgKHNpZHggPCBsZW4gLSAyKSB7CiAgICAgICAgICAgICBpZiAoaW5zZXJ0
TEZzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNvdW50ICYmIChjb3VudCAlIDc2KSA9PSAwKQor
ICAgICAgICAgICAgICAgIGlmIChjb3VudCAmJiAhKGNvdW50ICUgNzYpKQogICAgICAgICAgICAg
ICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7CiAgICAgICAgICAgICAgICAgY291bnQgKz0gNDsK
ICAgICAgICAgICAgIH0KQEAgLTEwNiw3ICsxMDgsNyBAQCB2b2lkIGJhc2U2NEVuY29kZShjb25z
dCBjaGFyKiBkYXRhLCB1bnNpCiAgICAgfQogCiAgICAgaWYgKHNpZHggPCBsZW4pIHsKLSAgICAg
ICAgaWYgKGluc2VydExGcyAmJiAoY291bnQgPiAwKSAmJiAoY291bnQgJSA3NikgPT0gMCkKKyAg
ICAgICAgaWYgKGluc2VydExGcyAmJiAoY291bnQgPiAwKSAmJiAhKGNvdW50ICUgNzYpKQogICAg
ICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7CiAKICAgICAgICAgb3V0W2RpZHgrK10gPSBiYXNl
NjRFbmNNYXBbKGRhdGFbc2lkeF0gPj4gMikgJiAwNzddOwpAQCAtMTI0LDcgKzEyNiw3IEBAIHZv
aWQgYmFzZTY0RW5jb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kKICAgICB9CiB9CiAKLWJvb2wg
YmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0KQor
Ym9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiBpbiwgVmVjdG9yPGNoYXI+JiBv
dXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCiB7CiAgICAgb3V0LmNsZWFyKCk7CiAKQEAg
LTEzMiwzNiArMTM0LDQ5IEBAIGJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYg
aW4KICAgICBpZiAoaW4uc2l6ZSgpID4gVUlOVF9NQVgpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHJldHVybiBiYXNlNjREZWNvZGUoaW4uZGF0YSgpLCBpbi5zaXplKCksIG91dCk7Cisg
ICAgcmV0dXJuIGJhc2U2NERlY29kZShpbi5kYXRhKCksIGluLnNpemUoKSwgb3V0LCBwb2xpY3kp
OwogfQogCi1ib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW4s
IFZlY3RvcjxjaGFyPiYgb3V0KQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0YXRpYyBpbmxpbmUg
Ym9vbCBiYXNlNjREZWNvZGVJbnRlcm5hbChjb25zdCBUKiBkYXRhLCB1bnNpZ25lZCBsZW4sIFZl
Y3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5KQogewogICAgIG91dC5j
bGVhcigpOwotICAgIGlmIChsZW4gPT0gMCkKKyAgICBpZiAoIWxlbikKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICB3aGlsZSAobGVuICYmIGRhdGFbbGVuLTFdID09ICc9JykKLSAgICAgICAg
LS1sZW47Ci0KICAgICBvdXQuZ3JvdyhsZW4pOworCisgICAgYm9vbCBzYXdFcXVhbHNTaWduID0g
ZmFsc2U7CisgICAgdW5zaWduZWQgb3V0TGVuZ3RoID0gMDsKICAgICBmb3IgKHVuc2lnbmVkIGlk
eCA9IDA7IGlkeCA8IGxlbjsgaWR4KyspIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBjaCA9IGRh
dGFbaWR4XTsKLSAgICAgICAgaWYgKChjaCA+IDQ3ICYmIGNoIDwgNTgpIHx8IChjaCA+IDY0ICYm
IGNoIDwgOTEpIHx8IChjaCA+IDk2ICYmIGNoIDwgMTIzKSB8fCBjaCA9PSAnKycgfHwgY2ggPT0g
Jy8nIHx8IGNoID09ICc9JykKLSAgICAgICAgICAgIG91dFtpZHhdID0gYmFzZTY0RGVjTWFwW2No
XTsKLSAgICAgICAgZWxzZQorICAgICAgICB1bnNpZ25lZCBjaCA9IGRhdGFbaWR4XTsKKyAgICAg
ICAgaWYgKGNoID09ICc9JykKKyAgICAgICAgICAgIHNhd0VxdWFsc1NpZ24gPSB0cnVlOworICAg
ICAgICBlbHNlIGlmICgoJzAnIDw9IGNoICYmIGNoIDw9ICc5JykgfHwgKCdBJyA8PSBjaCAmJiBj
aCA8PSAnWicpIHx8ICgnYScgPD0gY2ggJiYgY2ggPD0gJ3onKSB8fCBjaCA9PSAnKycgfHwgY2gg
PT0gJy8nKSB7CisgICAgICAgICAgICBpZiAoc2F3RXF1YWxzU2lnbikKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBvdXRbb3V0TGVuZ3RoXSA9IGJhc2U2NERlY01h
cFtjaF07CisgICAgICAgICAgICBvdXRMZW5ndGgrKzsKKyAgICAgICAgfSBlbHNlIGlmIChwb2xp
Y3kgPT0gRmFpbE9uSW52YWxpZENoYXJhY3RlciB8fCAocG9saWN5ID09IElnbm9yZVdoaXRlc3Bh
Y2UgJiYgIWlzU3BhY2VPck5ld2xpbmUoY2gpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKKyAgICBpZiAoIW91dExlbmd0aCkKKyAgICAgICAgcmV0dXJuICFzYXdFcXVhbHNT
aWduOworCisgICAgLy8gVmFsaWQgZGF0YSBpcyAobiAqIDQgKyBbMCwyLDNdKSBjaGFyYWN0ZXJz
IGxvbmcuCisgICAgaWYgKChvdXRMZW5ndGggJSA0KSA9PSAxKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCiAgICAgLy8gNC1ieXRlIHRvIDMtYnl0ZSBjb252ZXJzaW9uCi0gICAgdW5zaWdu
ZWQgb3V0TGVuID0gbGVuIC0gKChsZW4gKyAzKSAvIDQpOwotICAgIGlmICghb3V0TGVuIHx8ICgo
b3V0TGVuICsgMikgLyAzKSAqIDQgPCBsZW4pCisgICAgb3V0TGVuZ3RoIC09IChvdXRMZW5ndGgg
KyAzKSAvIDQ7CisgICAgaWYgKCFvdXRMZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIHVuc2lnbmVkIHNpZHggPSAwOwogICAgIHVuc2lnbmVkIGRpZHggPSAwOwotICAgIGlmIChv
dXRMZW4gPiAxKSB7Ci0gICAgICAgIHdoaWxlIChkaWR4IDwgb3V0TGVuIC0gMikgeworICAgIGlm
IChvdXRMZW5ndGggPiAxKSB7CisgICAgICAgIHdoaWxlIChkaWR4IDwgb3V0TGVuZ3RoIC0gMikg
ewogICAgICAgICAgICAgb3V0W2RpZHhdID0gKCgob3V0W3NpZHhdIDw8IDIpICYgMjU1KSB8ICgo
b3V0W3NpZHggKyAxXSA+PiA0KSAmIDAwMykpOwogICAgICAgICAgICAgb3V0W2RpZHggKyAxXSA9
ICgoKG91dFtzaWR4ICsgMV0gPDwgNCkgJiAyNTUpIHwgKChvdXRbc2lkeCArIDJdID4+IDIpICYg
MDE3KSk7CiAgICAgICAgICAgICBvdXRbZGlkeCArIDJdID0gKCgob3V0W3NpZHggKyAyXSA8PCA2
KSAmIDI1NSkgfCAob3V0W3NpZHggKyAzXSAmIDA3NykpOwpAQCAtMTcwLDE2ICsxODUsMjYgQEAg
Ym9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQogICAgICAgICB9CiAgICAg
fQogCi0gICAgaWYgKGRpZHggPCBvdXRMZW4pCisgICAgaWYgKGRpZHggPCBvdXRMZW5ndGgpCiAg
ICAgICAgIG91dFtkaWR4XSA9ICgoKG91dFtzaWR4XSA8PCAyKSAmIDI1NSkgfCAoKG91dFtzaWR4
ICsgMV0gPj4gNCkgJiAwMDMpKTsKIAotICAgIGlmICgrK2RpZHggPCBvdXRMZW4pCisgICAgaWYg
KCsrZGlkeCA8IG91dExlbmd0aCkKICAgICAgICAgb3V0W2RpZHhdID0gKCgob3V0W3NpZHggKyAx
XSA8PCA0KSAmIDI1NSkgfCAoKG91dFtzaWR4ICsgMl0gPj4gMikgJiAwMTcpKTsKIAotICAgIGlm
IChvdXRMZW4gPCBvdXQuc2l6ZSgpKQotICAgICAgICBvdXQuc2hyaW5rKG91dExlbik7CisgICAg
aWYgKG91dExlbmd0aCA8IG91dC5zaXplKCkpCisgICAgICAgIG91dC5zaHJpbmsob3V0TGVuZ3Ro
KTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBsZW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xp
Y3kgcG9saWN5KQoreworICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRlcm5hbDxjaGFyPihkYXRh
LCBsZW4sIG91dCwgcG9saWN5KTsKIH0KKworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgU3RyaW5n
JiBpbiwgVmVjdG9yPGNoYXI+JiBvdXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCit7Cisg
ICAgcmV0dXJuIGJhc2U2NERlY29kZUludGVybmFsPFVDaGFyPihpbi5jaGFyYWN0ZXJzKCksIGlu
Lmxlbmd0aCgpLCBvdXQsIHBvbGljeSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL3RleHQvQmFzZTY0LmgJKHJldmlzaW9uIDY2OTk3KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0Jhc2U2NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQor
ICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2Eu
Y29tPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxNiArMjcsMTkgQEAK
ICNpZm5kZWYgQmFzZTY0X2gKICNkZWZpbmUgQmFzZTY0X2gKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2VudW0gQmFzZTY0RGVjb2RlUG9saWN5IHsgRmFpbE9uSW52YWxpZENoYXJhY3RlciwgSWdub3Jl
V2hpdGVzcGFjZSwgSWdub3JlSW52YWxpZENoYXJhY3RlcnMgfTsKKwogdm9pZCBiYXNlNjRFbmNv
ZGUoY29uc3QgVmVjdG9yPGNoYXI+JiwgVmVjdG9yPGNoYXI+JiwgYm9vbCBpbnNlcnRMRnMgPSBm
YWxzZSk7CiB2b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFyKiwgdW5zaWduZWQsIFZlY3Rvcjxj
aGFyPiYsIGJvb2wgaW5zZXJ0TEZzID0gZmFsc2UpOwogCi0vLyB0aGlzIGRlY29kZXIgaXMgbm90
IGdlbmVyYWwgcHVycG9zZSAtIGl0IHJldHVybnMgYW4gZXJyb3IgaWYgaXQgZW5jb3VudGVycyBh
IGxpbmVmZWVkLCBhcyBuZWVkZWQgZm9yIHdpbmRvdy5hdG9iCi1ib29sIGJhc2U2NERlY29kZShj
b25zdCBWZWN0b3I8Y2hhcj4mLCBWZWN0b3I8Y2hhcj4mKTsKLWJvb2wgYmFzZTY0RGVjb2RlKGNv
bnN0IGNoYXIqLCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+Jik7Citib29sIGJhc2U2NERlY29kZShj
b25zdCBTdHJpbmcmLCBWZWN0b3I8Y2hhcj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgPSBGYWlsT25J
bnZhbGlkQ2hhcmFjdGVyKTsKK2Jvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYs
IFZlY3RvcjxjaGFyPiYsIEJhc2U2NERlY29kZVBvbGljeSA9IEZhaWxPbkludmFsaWRDaGFyYWN0
ZXIpOworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBWZWN0b3I8Y2hh
cj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgPSBGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKTsKIAogfQog
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA2Njk5NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA5LTA4ICBQYXRyaWNrIEdhbnN0ZXJl
ciAgPHBhcm9nYUBwYXJvZ2EuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIEFkZCBCYXNlNjREZWNvZGVQb2xpY3kgb3B0aW9uIGF0IGJhc2U2NERlY29k
ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTUx
MAorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sOgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZh
c3QtcGF0aC5odG1sOiBBZGRlZCBhZGRpdGlvbmFsIGRhdGEgdXJscyB0ZXN0cy4KKwogMjAxMC0w
OS0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2It
YnRvYS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY2OTk3KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDggKzM1LDEzIEBAIFBBU1Mgd2luZG93LmF0b2IoItGC0LXRgdGCIikgdGhyZXcgZXhj
ZXAKIFBBU1Mgd2luZG93LmF0b2IoInoiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURf
Q0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgogUEFTUyB3aW5kb3cuYXRvYigienoiKSBp
cyAiw48iCiBQQVNTIHdpbmRvdy5hdG9iKCJ6enoiKSBpcyAiw488IgorUEFTUyB3aW5kb3cuYXRv
Yigienp6PSIpIGlzICLDjzwiCitQQVNTIHdpbmRvdy5hdG9iKCJ6eno9PSIpIGlzICLDjzwiCitQ
QVNTIHdpbmRvdy5hdG9iKCJ6eno9PT0iKSBpcyAiw488IgorUEFTUyB3aW5kb3cuYXRvYigienp6
PT09PSIpIGlzICLDjzwiCiBQQVNTIHdpbmRvdy5hdG9iKCJ6enp6IikgaXMgIsOPPMOzIgogUEFT
UyB3aW5kb3cuYXRvYigienp6enoiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQ0hB
UkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgorUEFTUyB3aW5kb3cuYXRvYigiej16eiIpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9u
IDUuCiBQQVNTIHdpbmRvdy5hdG9iKCI9IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElE
X0NIQVJBQ1RFUl9FUlI6IERPTSBFeGNlcHRpb24gNS4KIFBBU1Mgd2luZG93LmF0b2IoIj09Iikg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0NIQVJBQ1RFUl9FUlI6IERPTSBFeGNlcHRp
b24gNS4KIFBBU1Mgd2luZG93LmF0b2IoIj09PSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5W
QUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sCShyZXZpc2lvbiA2Njk5NykKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NDgsOCArNDgsMTMgQEAgc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCLRgtC10YHRgiIpJyk7CiBz
aG91bGRUaHJvdygnd2luZG93LmF0b2IoInoiKScpOwogc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6
eiIpJywgJyLDjyInKTsKIHNob3VsZEJlKCd3aW5kb3cuYXRvYigienp6IiknLCAnIsOPXHUwMDND
IicpOworc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6eno9IiknLCAnIsOPXHUwMDNDIicpOworc2hv
dWxkQmUoJ3dpbmRvdy5hdG9iKCJ6eno9PSIpJywgJyLDj1x1MDAzQyInKTsKK3Nob3VsZEJlKCd3
aW5kb3cuYXRvYigienp6PT09IiknLCAnIsOPXHUwMDNDIicpOworc2hvdWxkQmUoJ3dpbmRvdy5h
dG9iKCJ6eno9PT09IiknLCAnIsOPXHUwMDNDIicpOwogc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6
enp6IiknLCAnIsOPXHUwMDNDw7MiJyk7CiBzaG91bGRUaHJvdygnd2luZG93LmF0b2IoInp6enp6
IiknKTsKK3Nob3VsZFRocm93KCd3aW5kb3cuYXRvYigiej16eiIpJyk7CiBzaG91bGRUaHJvdygn
d2luZG93LmF0b2IoIj0iKScpOwogc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCI9PSIpJyk7CiBz
aG91bGRUaHJvdygnd2luZG93LmF0b2IoIj09PSIpJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3Vz
ZXItc3R5bGVzaGVldC1mYXN0LXBhdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2Njk5NykKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFz
dC1wYXRoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwIEBACiBUaGlz
IHRlc3RzIHRoYXQgd2hlbiB0aGUgdXNlciBzdHlsZSBzaGVldCBsb2NhdGlvbiBpcyBzZXQgdG8g
YSBkYXRhOiBVUkwgd2l0aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBkYXRhLCB0aGUgc3R5bGUgc2hl
ZXQgaXMgcHJvY2Vzc2VkIHN5bmNocm9ub3VzbHksIGluc3RlYWQgb2YgaW52b2tpbmcgdGhlIGFz
eW5jaHJvbm91cyBsb2FkZXIuCiAKLVBBU1MKK1BBU1MgMTAwcHgKK1BBU1MgMTEwcHgKK1BBU1Mg
MTIwcHgKK1BBU1MgMTMwcHgKK1BBU1MgMTQwcHgKK1BBU1MgMTUwcHgKK1BBU1MgMTYwcHgKKwpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVl
dC1mYXN0LXBhdGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1sCShyZXZpc2lvbiA2Njk5
NykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hl
ZXQtZmFzdC1wYXRoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMjAgKzMsMzEgQEAKICAgICBV
Ukwgd2l0aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBkYXRhLCB0aGUgc3R5bGUgc2hlZXQgaXMgcHJv
Y2Vzc2VkCiAgICAgc3luY2hyb25vdXNseSwgaW5zdGVhZCBvZiBpbnZva2luZyB0aGUgYXN5bmNo
cm9ub3VzIGxvYWRlci4KIDwvcD4KLTxwIGlkPSJyZXN1bHQiPjwvcD4KIDxzY3JpcHQ+Ci0gICAg
dmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKKyAgICB2YXIg
dGVzdE9iamVjdHMgPSBbCisgICAgICAgIHtyZXN1bHQ6dHJ1ZSwgIHNpemU6IjEwMHB4IiwgdXJs
OiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFltOWtlU0I3Wm05dWRDMXphWHBs
T2lBeE1EQndlSDA9In0sCisgICAgICAgIHtyZXN1bHQ6dHJ1ZSwgIHNpemU6IjExMHB4IiwgdXJs
OiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCAgICAgICAgICAgICAgICAgICAg
ICAgWW05a2VTQjdabTl1ZEMxemFYcGxPaUF4TVRCd2VIMD0gICAgICAgICAgICAgICAgICAifSwK
KyAgICAgICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTIwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7
Y2hhcnNldD11dGYtODtiYXNlNjQsXG4gXHIgXHQgWW05ayBcdCBlU0I3IFxyIFptOXVkIFxuIFxu
IEMxemFYcCBcciBsT2lBeE0gXHQgakJ3ZUgwPSBcdCBcciBcbiJ9LAorICAgICAgICB7cmVzdWx0
OnRydWUsICBzaXplOiIxMzBweCIsIHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jh
c2U2NCxcdTAwNTkgXHUwMDZEIFx1MDAzOSBcdTAwNkIgZVNCN1ptOXVkIEMxemFYcGxPaUF4TXpC
d2UgXHUwMDQ4IFx1MDAzMCBcdTAwM0QifSwKKyAgICAgICAge3Jlc3VsdDpmYWxzZSwgc2l6ZToi
MTQwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsWW05ayQjZVNC
N1ptIzl1ZChDMXphWHApbE9pQXhOREJ3ZUgwPSJ9LAorICAgICAgICB7cmVzdWx0OmZhbHNlLCBz
aXplOiIxNTBweCIsIHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxZbTlr
ZSUwMFNCN1olMjBtOXVkQzF6XG5cdGFYcGxPI2lBeCUwM05UQnclZUgwPSJ9LAorICAgICAgICB7
cmVzdWx0OmZhbHNlLCBzaXplOiIxNjBweCIsIHVybDoiJTUwJTMwJTEwJTAwJTIwJTQwIn0KKyAg
ICBdOwogCiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0RW5hYmxlZCh0cnVlKTsKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbigiZGF0YTp0ZXh0L2NzcztjaGFy
c2V0PXV0Zi04O2Jhc2U2NCxZbTlrZVNCN1ptOXVkQzF6YVhwbE9pQXhNREJ3ZUgwPSIpOwogCi0g
ICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICBpZiAoZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5ib2R5KS5mb250U2l6ZSA9PSAiMTAwcHgiKQotICAgICAgICAgICAgcmVz
dWx0LmlubmVyVGV4dCA9ICJQQVNTIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0
LmlubmVyVGV4dCA9ICJGQUlMIjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0T2Jq
ZWN0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIG9iaiA9IHRlc3RPYmplY3RzW2ld
OworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0VXNlclN0eWxlU2hlZXRMb2Nh
dGlvbihvYmoudXJsKTsKKworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Cisg
ICAgICAgICAgICB2YXIgcmVzdWx0ID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5m
b250U2l6ZSA9PSBvYmouc2l6ZTsKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKChyZXN1bHQg
PT0gb2JqLnJlc3VsdCA/ICJQQVNTIiA6ICJGQUlMIikgKyAiICIgKyBvYmouc2l6ZSArICI8YnI+
Iik7CisKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0
TG9jYXRpb24oIiIpOworICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIHJlc3VsdC5pbm5l
clRleHQgPSAiVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBEdW1wUmVuZGVyVHJlZS4iOwor
ICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBEdW1w
UmVuZGVyVHJlZS4iKTsKIDwvc2NyaXB0PgpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY2OTk3KQorKysgV2Vi
S2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0w
OS0xNCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZXQgb25seSB2YWxpZCB1c2Vy
U3R5bGVTaGVldExvY2F0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDE1MTAKKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06
CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb246XSk6
CisKIDIwMTAtMDktMTQgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0JKHJldmlzaW9uIDY2OTk3KQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC02NDIsNyArNjQyLDggQEAgc3RhdGljIFdlYkNhY2hlTW9k
ZWwgY2FjaGVNb2RlbEZvck1haW5CdW5kbGUodm9pZCkKICAgICAgICAgbG9jYXRpb25TdHJpbmcg
PSBbVVJMIF93ZWJfb3JpZ2luYWxEYXRhQXNTdHJpbmddOwogICAgIH0KICAgICAKLSAgICBbc2Vs
ZiBfc2V0U3RyaW5nVmFsdWU6bG9jYXRpb25TdHJpbmcgZm9yS2V5OiBXZWJLaXRVc2VyU3R5bGVT
aGVldExvY2F0aW9uUHJlZmVyZW5jZUtleV07CisgICAgaWYgKGxvY2F0aW9uU3RyaW5nKQorICAg
ICAgICBbc2VsZiBfc2V0U3RyaW5nVmFsdWU6bG9jYXRpb25TdHJpbmcgZm9yS2V5OiBXZWJLaXRV
c2VyU3R5bGVTaGVldExvY2F0aW9uUHJlZmVyZW5jZUtleV07CiB9CiAKIC0gKEJPT0wpc2hvdWxk
UHJpbnRCYWNrZ3JvdW5kcw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67578</attachid>
            <date>2010-09-14 11:27:42 -0700</date>
            <delta_ts>2010-09-14 11:37:29 -0700</delta_ts>
            <desc>Patch for nil value</desc>
            <filename>nilValue.patch</filename>
            <type>text/plain</type>
            <size>1282</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
aW5kZXggYTllMDMwNC4uYjhlNDk0NCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOS0xNCAg
UGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbHdheXMgdXNlIGEgdmFsaWQgc3RyaW5n
IHdoZW4gc2V0dGluZyBXZWJLaXRVc2VyU3R5bGVTaGVldExvY2F0aW9uUHJlZmVyZW5jZUtleS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTEwCisK
KyAgICAgICAgVGhpcyBwcmV2ZW50cyB1c2FnZSBvZiBuaWwgdmFsdWUsIHdoaWNoIHdvdWxkIGNh
dXNlIGFuIHVuY2F1Z2h0IGV4Y2VwdGlvbi4KKyAgICAgICAgQSB0ZXN0IGZvciB0aGlzIHdpbGwg
YmUgY29tbWl0ZWQgaW4gYSBzZXBhcmF0ZSBwYXRjaCAoc2VlIGJ1ZykuCisKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRV
c2VyU3R5bGVTaGVldExvY2F0aW9uOl0pOgorCiAyMDEwLTA5LTE0ICBFcmljIFNlaWRlbCAgPGVy
aWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgY2hhbmdlcyBy
Njc0NTEgYW5kIHI2NzQ1MS4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlcy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCBh
NGE1MzgzLi40NGFkNTliIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC02
NDEsNyArNjQxLDEwIEBAIHN0YXRpYyBXZWJDYWNoZU1vZGVsIGNhY2hlTW9kZWxGb3JNYWluQnVu
ZGxlKHZvaWQpCiAgICAgfSBlbHNlIHsKICAgICAgICAgbG9jYXRpb25TdHJpbmcgPSBbVVJMIF93
ZWJfb3JpZ2luYWxEYXRhQXNTdHJpbmddOwogICAgIH0KLSAgICAKKworICAgIGlmICghbG9jYXRp
b25TdHJpbmcpCisgICAgICAgIGxvY2F0aW9uU3RyaW5nID0gQCIiOworCiAgICAgW3NlbGYgX3Nl
dFN0cmluZ1ZhbHVlOmxvY2F0aW9uU3RyaW5nIGZvcktleTogV2ViS2l0VXNlclN0eWxlU2hlZXRM
b2NhdGlvblByZWZlcmVuY2VLZXldOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67579</attachid>
            <date>2010-09-14 11:37:29 -0700</date>
            <delta_ts>2010-09-14 13:53:10 -0700</delta_ts>
            <desc>Patch for nil value</desc>
            <filename>nilVal.patch</filename>
            <type>text/plain</type>
            <size>4614</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZjA1NWZkLi44NjdmYWRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAgQEAKKzIwMTAtMDkt
MTQgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBhcm9nYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW01hY10gQWx3YXlzIHVzZSBhIHZh
bGlkIHN0cmluZyB3aGVuIHNldHRpbmcgV2ViS2l0VXNlclN0eWxlU2hlZXRMb2NhdGlvblByZWZl
cmVuY2VLZXkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MTUxMAorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVz
aGVldC1mYXN0LXBhdGgtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0
L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLmh0bWw6CisKIDIwMTAtMDktMTQgIEhh
bnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBK
ZXJlbXkgT3Jsb3cuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9s
b2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC1leHBl
Y3RlZC50eHQKaW5kZXggYmJhZDFlNy4uY2I0NWQzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGgtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0
eWxlc2hlZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDcgQEAKIFRoaXMgdGVz
dHMgdGhhdCB3aGVuIHRoZSB1c2VyIHN0eWxlIHNoZWV0IGxvY2F0aW9uIGlzIHNldCB0byBhIGRh
dGE6IFVSTCB3aXRoIGJhc2U2NC1lbmNvZGVkIFVURi04IGRhdGEsIHRoZSBzdHlsZSBzaGVldCBp
cyBwcm9jZXNzZWQgc3luY2hyb25vdXNseSwgaW5zdGVhZCBvZiBpbnZva2luZyB0aGUgYXN5bmNo
cm9ub3VzIGxvYWRlci4KIAotUEFTUworUEFTUyAxMDBweAorUEFTUyAxNDBweAorUEFTUyAxNTBw
eAorUEFTUyAxNjBweAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1sIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGguaHRtbAppbmRl
eCAwODA1NDg0Li5hOTIwYmZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLmh0
bWwKQEAgLTMsMjAgKzMsMjggQEAKICAgICBVUkwgd2l0aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBk
YXRhLCB0aGUgc3R5bGUgc2hlZXQgaXMgcHJvY2Vzc2VkCiAgICAgc3luY2hyb25vdXNseSwgaW5z
dGVhZCBvZiBpbnZva2luZyB0aGUgYXN5bmNocm9ub3VzIGxvYWRlci4KIDwvcD4KLTxwIGlkPSJy
ZXN1bHQiPjwvcD4KIDxzY3JpcHQ+Ci0gICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZXN1bHQiKTsKKyAgICB2YXIgdGVzdE9iamVjdHMgPSBbCisgICAgICAgIHtyZXN1
bHQ6dHJ1ZSwgIHNpemU6IjEwMHB4IiwgdXJsOiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7
YmFzZTY0LFltOWtlU0I3Wm05dWRDMXphWHBsT2lBeE1EQndlSDA9In0sCisgICAgICAgIHtyZXN1
bHQ6ZmFsc2UsIHNpemU6IjE0MHB4IiwgdXJsOiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7
YmFzZTY0LFltOWskI2VTQjdabSM5dWQoQzF6YVhwKWxPaUF4TkRCd2VIMD0ifSwKKyAgICAgICAg
e3Jlc3VsdDpmYWxzZSwgc2l6ZToiMTUwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11
dGYtODtiYXNlNjQsWW05a2UlMDBTQjdaJTIwbTl1ZEMxelxuXHRhWHBsTyNpQXglMDNOVEJ3JWVI
MD0ifSwKKyAgICAgICAge3Jlc3VsdDpmYWxzZSwgc2l6ZToiMTYwcHgiLCB1cmw6IiU1MCUzMCUx
MCUwMCUyMCU0MCJ9CisgICAgXTsKIAogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQodHJ1ZSk7Ci0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oImRh
dGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsWW05a2VTQjdabTl1ZEMxemFYcGxPaUF4
TURCd2VIMD0iKTsKIAotICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAg
aWYgKGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZm9udFNpemUgPT0gIjEwMHB4IikK
LSAgICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiUEFTUyI7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiRkFJTCI7CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdGVzdE9iamVjdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBvYmog
PSB0ZXN0T2JqZWN0c1tpXTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVz
ZXJTdHlsZVNoZWV0TG9jYXRpb24ob2JqLnVybCk7CisKKyAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOworICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuYm9keSkuZm9udFNpemUgPT0gb2JqLnNpemU7CisgICAgICAgICAgICBkb2N1bWVu
dC53cml0ZSgocmVzdWx0ID09IG9iai5yZXN1bHQgPyAiUEFTUyIgOiAiRkFJTCIpICsgIiAiICsg
b2JqLnNpemUgKyAiPGJyPiIpOworCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKCIiKTsKKyAgICAgICAgfQogICAgIH0gZWxzZQotICAg
ICAgICByZXN1bHQuaW5uZXJUZXh0ID0gIlRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gaW4gRHVt
cFJlbmRlclRyZWUuIjsKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoaXMgdGVzdCBjYW4gb25s
eSBiZSBydW4gaW4gRHVtcFJlbmRlclRyZWUuIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYTllMDMwNC4u
MTRjN2JiNCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wOS0xNCAgUGF0cmljayBHYW5zdGVy
ZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBbHdheXMgdXNlIGEgdmFsaWQgc3RyaW5nIHdoZW4gc2V0dGluZyBX
ZWJLaXRVc2VyU3R5bGVTaGVldExvY2F0aW9uUHJlZmVyZW5jZUtleS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTEwCisKKyAgICAgICAgVGhpcyBw
cmV2ZW50cyB1c2FnZSBvZiBuaWwgdmFsdWUsIHdoaWNoIHdvdWxkIGNhdXNlIGFuIHVuY2F1Z2h0
IGV4Y2VwdGlvbi4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAg
ICAgICgtW1dlYlByZWZlcmVuY2VzIHNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb246XSk6CisKIDIw
MTAtMDktMTQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJldmVydGluZyBjaGFuZ2VzIHI2NzQ1MSBhbmQgcjY3NDUxLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IGE0YTUzODMuLjQ0YWQ1OWIgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTY0MSw3ICs2NDEsMTAgQEAgc3RhdGljIFdlYkNhY2hl
TW9kZWwgY2FjaGVNb2RlbEZvck1haW5CdW5kbGUodm9pZCkKICAgICB9IGVsc2UgewogICAgICAg
ICBsb2NhdGlvblN0cmluZyA9IFtVUkwgX3dlYl9vcmlnaW5hbERhdGFBc1N0cmluZ107CiAgICAg
fQotICAgIAorCisgICAgaWYgKCFsb2NhdGlvblN0cmluZykKKyAgICAgICAgbG9jYXRpb25TdHJp
bmcgPSBAIiI7CisKICAgICBbc2VsZiBfc2V0U3RyaW5nVmFsdWU6bG9jYXRpb25TdHJpbmcgZm9y
S2V5OiBXZWJLaXRVc2VyU3R5bGVTaGVldExvY2F0aW9uUHJlZmVyZW5jZUtleV07CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67599</attachid>
            <date>2010-09-14 13:53:10 -0700</date>
            <delta_ts>2010-09-16 11:19:12 -0700</delta_ts>
            <desc>Patch for nil value</desc>
            <filename>nilVal.patch</filename>
            <type>text/plain</type>
            <size>4614</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZjA1NWZkLi44NjdmYWRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDkt
MTQgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBhcm9nYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW01hY10gQWx3YXlzIHVzZSBhIHZh
bGlkIHN0cmluZyB3aGVuIHNldHRpbmcgV2ViS2l0VXNlclN0eWxlU2hlZXRMb2NhdGlvblByZWZl
cmVuY2VLZXkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MTUxMAorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVz
aGVldC1mYXN0LXBhdGgtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0
L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLmh0bWw6CisKIDIwMTAtMDktMTQgIEhh
bnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBK
ZXJlbXkgT3Jsb3cuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9s
b2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC1leHBl
Y3RlZC50eHQKaW5kZXggYmJhZDFlNy4uY2I0NWQzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGgtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0
eWxlc2hlZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDcgQEAKIFRoaXMgdGVz
dHMgdGhhdCB3aGVuIHRoZSB1c2VyIHN0eWxlIHNoZWV0IGxvY2F0aW9uIGlzIHNldCB0byBhIGRh
dGE6IFVSTCB3aXRoIGJhc2U2NC1lbmNvZGVkIFVURi04IGRhdGEsIHRoZSBzdHlsZSBzaGVldCBp
cyBwcm9jZXNzZWQgc3luY2hyb25vdXNseSwgaW5zdGVhZCBvZiBpbnZva2luZyB0aGUgYXN5bmNo
cm9ub3VzIGxvYWRlci4KIAotUEFTUworUEFTUyAxMDBweAorUEFTUyAxNDBweAorUEFTUyAxNTBw
eAorUEFTUyAxNjBweAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1sIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBhdGguaHRtbAppbmRl
eCAwODA1NDg0Li5hOTIwYmZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLmh0
bWwKQEAgLTMsMjAgKzMsMjggQEAKICAgICBVUkwgd2l0aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBk
YXRhLCB0aGUgc3R5bGUgc2hlZXQgaXMgcHJvY2Vzc2VkCiAgICAgc3luY2hyb25vdXNseSwgaW5z
dGVhZCBvZiBpbnZva2luZyB0aGUgYXN5bmNocm9ub3VzIGxvYWRlci4KIDwvcD4KLTxwIGlkPSJy
ZXN1bHQiPjwvcD4KIDxzY3JpcHQ+Ci0gICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZXN1bHQiKTsKKyAgICB2YXIgdGVzdE9iamVjdHMgPSBbCisgICAgICAgIHtyZXN1
bHQ6dHJ1ZSwgIHNpemU6IjEwMHB4IiwgdXJsOiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7
YmFzZTY0LFltOWtlU0I3Wm05dWRDMXphWHBsT2lBeE1EQndlSDA9In0sCisgICAgICAgIHtyZXN1
bHQ6ZmFsc2UsIHNpemU6IjE0MHB4IiwgdXJsOiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7
YmFzZTY0LFltOWskI2VTQjdabSM5dWQoQzF6YVhwKWxPaUF4TkRCd2VIMD0ifSwKKyAgICAgICAg
e3Jlc3VsdDpmYWxzZSwgc2l6ZToiMTUwcHgiLCB1cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11
dGYtODtiYXNlNjQsWW05a2UlMDBTQjdaJTIwbTl1ZEMxelxuXHRhWHBsTyNpQXglMDNOVEJ3JWVI
MD0ifSwKKyAgICAgICAge3Jlc3VsdDpmYWxzZSwgc2l6ZToiMTYwcHgiLCB1cmw6IiU1MCUzMCUx
MCUwMCUyMCU0MCJ9CisgICAgXTsKIAogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQodHJ1ZSk7Ci0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oImRh
dGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsWW05a2VTQjdabTl1ZEMxemFYcGxPaUF4
TURCd2VIMD0iKTsKIAotICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAg
aWYgKGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZm9udFNpemUgPT0gIjEwMHB4IikK
LSAgICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiUEFTUyI7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiRkFJTCI7CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdGVzdE9iamVjdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBvYmog
PSB0ZXN0T2JqZWN0c1tpXTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFVz
ZXJTdHlsZVNoZWV0TG9jYXRpb24ob2JqLnVybCk7CisKKyAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOworICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuYm9keSkuZm9udFNpemUgPT0gb2JqLnNpemU7CisgICAgICAgICAgICBkb2N1bWVu
dC53cml0ZSgocmVzdWx0ID09IG9iai5yZXN1bHQgPyAiUEFTUyIgOiAiRkFJTCIpICsgIiAiICsg
b2JqLnNpemUgKyAiPGJyPiIpOworCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKCIiKTsKKyAgICAgICAgfQogICAgIH0gZWxzZQotICAg
ICAgICByZXN1bHQuaW5uZXJUZXh0ID0gIlRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gaW4gRHVt
cFJlbmRlclRyZWUuIjsKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoaXMgdGVzdCBjYW4gb25s
eSBiZSBydW4gaW4gRHVtcFJlbmRlclRyZWUuIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYTllMDMwNC4u
MTRjN2JiNCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wOS0xNCAgUGF0cmljayBHYW5zdGVy
ZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBbHdheXMgdXNlIGEgdmFsaWQgc3RyaW5nIHdoZW4gc2V0dGluZyBX
ZWJLaXRVc2VyU3R5bGVTaGVldExvY2F0aW9uUHJlZmVyZW5jZUtleS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTEwCisKKyAgICAgICAgVGhpcyBw
cmV2ZW50cyB1c2FnZSBvZiBuaWwgdmFsdWUsIHdoaWNoIHdvdWxkIGNhdXNlIGFuIHVuY2F1Z2h0
IGV4Y2VwdGlvbi4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAg
ICAgICgtW1dlYlByZWZlcmVuY2VzIHNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb246XSk6CisKIDIw
MTAtMDktMTQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJldmVydGluZyBjaGFuZ2VzIHI2NzQ1MSBhbmQgcjY3NDUxLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IGE0YTUzODMuLjQ0YWQ1OWIgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTY0MSw3ICs2NDEsMTAgQEAgc3RhdGljIFdlYkNhY2hl
TW9kZWwgY2FjaGVNb2RlbEZvck1haW5CdW5kbGUodm9pZCkKICAgICB9IGVsc2UgewogICAgICAg
ICBsb2NhdGlvblN0cmluZyA9IFtVUkwgX3dlYl9vcmlnaW5hbERhdGFBc1N0cmluZ107CiAgICAg
fQotICAgIAorCisgICAgaWYgKCFsb2NhdGlvblN0cmluZykKKyAgICAgICAgbG9jYXRpb25TdHJp
bmcgPSBAIiI7CisKICAgICBbc2VsZiBfc2V0U3RyaW5nVmFsdWU6bG9jYXRpb25TdHJpbmcgZm9y
S2V5OiBXZWJLaXRVc2VyU3R5bGVTaGVldExvY2F0aW9uUHJlZmVyZW5jZUtleV07CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67826</attachid>
            <date>2010-09-16 12:08:27 -0700</date>
            <delta_ts>2010-10-02 07:14:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41510j.patch</filename>
            <type>text/plain</type>
            <size>14933</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDktMDggIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBh
cm9nYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
QWRkIEJhc2U2NERlY29kZVBvbGljeSBvcHRpb24gYXQgYmFzZTY0RGVjb2RlKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTEwCisKKyAgICAgICAg
QWRkIGFuIG9wdGlvbiBmb3IgaWdub3JpbmcgY2hhcmFjdGVycyBpbiBiYXNlNjQgZGF0YS4KKyAg
ICAgICAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGRlY29kaW5nIGRhdGEgdXJscy4KKworICAgICAg
ICBBbHNvIGFkZCBhbiBvdmVybG9hZCB0byBkZWNvZGUgV2ViQ29yZTo6U3RyaW5nIGRpcmVjdGx5
LgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjphdG9iKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvQmFzZTY0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJhc2U2NEVuY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpiYXNlNjREZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6YmFzZTY0
RGVjb2RlSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvQmFzZTY0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjopOgorCiAyMDEwLTA5LTA4ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05OTQsMTEgKzk5NCw4IEBAIFN0cmluZyBET01XaW5kb3c6OmF0
b2IoY29uc3QgU3RyaW5nJiBlbmMKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAot
ICAgIFZlY3RvcjxjaGFyPiBpbjsKLSAgICBpbi5hcHBlbmQoZW5jb2RlZFN0cmluZy5jaGFyYWN0
ZXJzKCksIGVuY29kZWRTdHJpbmcubGVuZ3RoKCkpOwogICAgIFZlY3RvcjxjaGFyPiBvdXQ7Ci0K
LSAgICBpZiAoIWJhc2U2NERlY29kZShpbiwgb3V0KSkgeworICAgIGlmICghYmFzZTY0RGVjb2Rl
KGVuY29kZWRTdHJpbmcsIG91dCwgRmFpbE9uSW52YWxpZENoYXJhY3RlcikpIHsKICAgICAgICAg
ZWMgPSBJTlZBTElEX0NIQVJBQ1RFUl9FUlI7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAg
ICB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvcGFnZS9QYWdlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjIxLDIyICs2MjEsMTcgQEAgdm9pZCBQYWdlOjp1c2VyU3R5bGVT
aGVldExvY2F0aW9uQ2hhbmdlZAogICAgIG1fZGlkTG9hZFVzZXJTdHlsZVNoZWV0ID0gZmFsc2U7
CiAgICAgbV91c2VyU3R5bGVTaGVldCA9IFN0cmluZygpOwogICAgIG1fdXNlclN0eWxlU2hlZXRN
b2RpZmljYXRpb25UaW1lID0gMDsKLSAgICAKKwogICAgIC8vIERhdGEgVVJMcyB3aXRoIGJhc2U2
NC1lbmNvZGVkIFVURi04IHN0eWxlIHNoZWV0cyBhcmUgY29tbW9uLiBXZSBjYW4gcHJvY2VzcyB0
aGVtCiAgICAgLy8gc3luY2hyb25vdXNseSBhbmQgYXZvaWQgdXNpbmcgYSBsb2FkZXIuIAogICAg
IGlmICh1cmwucHJvdG9jb2xJcygiZGF0YSIpICYmIHVybC5zdHJpbmcoKS5zdGFydHNXaXRoKCJk
YXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCIpKSB7CiAgICAgICAgIG1fZGlkTG9h
ZFVzZXJTdHlsZVNoZWV0ID0gdHJ1ZTsKLSAgICAgICAgCi0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IHByZWZpeExlbmd0aCA9IDM1OwotICAgICAgICBWZWN0b3I8Y2hhcj4gZW5jb2RlZERhdGEodXJs
LnN0cmluZygpLmxlbmd0aCgpIC0gcHJlZml4TGVuZ3RoKTsKLSAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gcHJlZml4TGVuZ3RoOyBpIDwgdXJsLnN0cmluZygpLmxlbmd0aCgpOyArK2kpCi0gICAg
ICAgICAgICBlbmNvZGVkRGF0YVtpIC0gcHJlZml4TGVuZ3RoXSA9IHN0YXRpY19jYXN0PGNoYXI+
KHVybC5zdHJpbmcoKVtpXSk7CiAKICAgICAgICAgVmVjdG9yPGNoYXI+IHN0eWxlU2hlZXRBc1VU
Rjg7Ci0gICAgICAgIGlmIChiYXNlNjREZWNvZGUoZW5jb2RlZERhdGEsIHN0eWxlU2hlZXRBc1VU
RjgpKQorICAgICAgICBpZiAoYmFzZTY0RGVjb2RlKGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyh1
cmwuc3RyaW5nKCkuc3Vic3RyaW5nKDM1KSksIHN0eWxlU2hlZXRBc1VURjgsIElnbm9yZVdoaXRl
c3BhY2UpKQogICAgICAgICAgICAgbV91c2VyU3R5bGVTaGVldCA9IFN0cmluZzo6ZnJvbVVURjgo
c3R5bGVTaGVldEFzVVRGOC5kYXRhKCksIHN0eWxlU2hlZXRBc1VURjguc2l6ZSgpKTsKICAgICB9
Ci0gICAgCisKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBpZiAoZnJhbWUt
PmRvY3VtZW50KCkpCiAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlUGFnZVVz
ZXJTaGVldCgpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAJKHJldmlzaW9uIDY2OTk3
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIsNiArMiw3IEBACiAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEYXdpdCBBbGVtYXllaHUg
PGFkYXdpdEBrZGUub3JnPgogICAgQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFr
b3YgPGFwQHdlYmtpdC5vcmc+CiAgICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICAgQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fu
c3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChMR1BM
KQpAQCAtMjUsNiArMjYsNyBAQAogCiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8d3Rm
L1N0cmluZ0V4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcwLDcgKzcyLDcgQEAgdm9pZCBiYXNlNjRFbmNvZGUoY29u
c3QgY2hhciogZGF0YSwgdW5zaQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiB0aGUgaW5w
dXQgc3RyaW5nIGlzIHBhdGhvbG9naWNhbGx5IGxhcmdlLCBqdXN0IHJldHVybiBub3RoaW5nLgot
ICAgIC8vIE5vdGU6IEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlICJvdXRfbGVuIiBjb21wdXRh
dGlvbiBiZWxvdy4KKyAgICAvLyBOb3RlOiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSAib3V0
TGVuZ3RoIiBjb21wdXRhdGlvbiBiZWxvdy4KICAgICAvLyBSYXRoZXIgdGhhbiBiZWluZyBwZXJm
ZWN0bHkgcHJlY2lzZSwgdGhpcyBpcyBhIGJpdCBjb25zZXJ2YXRpdmUuCiAgICAgY29uc3QgdW5z
aWduZWQgbWF4SW5wdXRCdWZmZXJTaXplID0gVUlOVF9NQVggLyA3NyAqIDc2IC8gNCAqIDMgLSAy
OwogICAgIGlmIChsZW4gPiBtYXhJbnB1dEJ1ZmZlclNpemUpCkBAIC03OSwyMSArODEsMjEgQEAg
dm9pZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQogICAgIHVuc2lnbmVkIHNp
ZHggPSAwOwogICAgIHVuc2lnbmVkIGRpZHggPSAwOwogCi0gICAgdW5zaWduZWQgb3V0X2xlbiA9
ICgobGVuICsgMikgLyAzKSAqIDQ7CisgICAgdW5zaWduZWQgb3V0TGVuZ3RoID0gKChsZW4gKyAy
KSAvIDMpICogNDsKIAogICAgIC8vIERlYWwgd2l0aCB0aGUgNzYgY2hhcmFjdGVyIHBlciBsaW5l
IGxpbWl0IHNwZWNpZmllZCBpbiBSRkMgMjA0NS4KLSAgICBpbnNlcnRMRnMgPSAoaW5zZXJ0TEZz
ICYmIG91dF9sZW4gPiA3Nik7CisgICAgaW5zZXJ0TEZzID0gKGluc2VydExGcyAmJiBvdXRMZW5n
dGggPiA3Nik7CiAgICAgaWYgKGluc2VydExGcykKLSAgICAgICAgb3V0X2xlbiArPSAoKG91dF9s
ZW4gLSAxKSAvIDc2KTsKKyAgICAgICAgb3V0TGVuZ3RoICs9ICgob3V0TGVuZ3RoIC0gMSkgLyA3
Nik7CiAKICAgICBpbnQgY291bnQgPSAwOwotICAgIG91dC5ncm93KG91dF9sZW4pOworICAgIG91
dC5ncm93KG91dExlbmd0aCk7CiAKICAgICAvLyAzLWJ5dGUgdG8gNC1ieXRlIGNvbnZlcnNpb24g
KyAwLTYzIHRvIGFzY2lpIHByaW50YWJsZSBjb252ZXJzaW9uCiAgICAgaWYgKGxlbiA+IDEpIHsK
ICAgICAgICAgd2hpbGUgKHNpZHggPCBsZW4gLSAyKSB7CiAgICAgICAgICAgICBpZiAoaW5zZXJ0
TEZzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNvdW50ICYmIChjb3VudCAlIDc2KSA9PSAwKQor
ICAgICAgICAgICAgICAgIGlmIChjb3VudCAmJiAhKGNvdW50ICUgNzYpKQogICAgICAgICAgICAg
ICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7CiAgICAgICAgICAgICAgICAgY291bnQgKz0gNDsK
ICAgICAgICAgICAgIH0KQEAgLTEwNiw3ICsxMDgsNyBAQCB2b2lkIGJhc2U2NEVuY29kZShjb25z
dCBjaGFyKiBkYXRhLCB1bnNpCiAgICAgfQogCiAgICAgaWYgKHNpZHggPCBsZW4pIHsKLSAgICAg
ICAgaWYgKGluc2VydExGcyAmJiAoY291bnQgPiAwKSAmJiAoY291bnQgJSA3NikgPT0gMCkKKyAg
ICAgICAgaWYgKGluc2VydExGcyAmJiAoY291bnQgPiAwKSAmJiAhKGNvdW50ICUgNzYpKQogICAg
ICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7CiAKICAgICAgICAgb3V0W2RpZHgrK10gPSBiYXNl
NjRFbmNNYXBbKGRhdGFbc2lkeF0gPj4gMikgJiAwNzddOwpAQCAtMTI0LDcgKzEyNiw3IEBAIHZv
aWQgYmFzZTY0RW5jb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kKICAgICB9CiB9CiAKLWJvb2wg
YmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0KQor
Ym9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiBpbiwgVmVjdG9yPGNoYXI+JiBv
dXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCiB7CiAgICAgb3V0LmNsZWFyKCk7CiAKQEAg
LTEzMiwzNiArMTM0LDQ5IEBAIGJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYg
aW4KICAgICBpZiAoaW4uc2l6ZSgpID4gVUlOVF9NQVgpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHJldHVybiBiYXNlNjREZWNvZGUoaW4uZGF0YSgpLCBpbi5zaXplKCksIG91dCk7Cisg
ICAgcmV0dXJuIGJhc2U2NERlY29kZShpbi5kYXRhKCksIGluLnNpemUoKSwgb3V0LCBwb2xpY3kp
OwogfQogCi1ib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW4s
IFZlY3RvcjxjaGFyPiYgb3V0KQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0YXRpYyBpbmxpbmUg
Ym9vbCBiYXNlNjREZWNvZGVJbnRlcm5hbChjb25zdCBUKiBkYXRhLCB1bnNpZ25lZCBsZW4sIFZl
Y3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5KQogewogICAgIG91dC5j
bGVhcigpOwotICAgIGlmIChsZW4gPT0gMCkKKyAgICBpZiAoIWxlbikKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICB3aGlsZSAobGVuICYmIGRhdGFbbGVuLTFdID09ICc9JykKLSAgICAgICAg
LS1sZW47Ci0KICAgICBvdXQuZ3JvdyhsZW4pOworCisgICAgYm9vbCBzYXdFcXVhbHNTaWduID0g
ZmFsc2U7CisgICAgdW5zaWduZWQgb3V0TGVuZ3RoID0gMDsKICAgICBmb3IgKHVuc2lnbmVkIGlk
eCA9IDA7IGlkeCA8IGxlbjsgaWR4KyspIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBjaCA9IGRh
dGFbaWR4XTsKLSAgICAgICAgaWYgKChjaCA+IDQ3ICYmIGNoIDwgNTgpIHx8IChjaCA+IDY0ICYm
IGNoIDwgOTEpIHx8IChjaCA+IDk2ICYmIGNoIDwgMTIzKSB8fCBjaCA9PSAnKycgfHwgY2ggPT0g
Jy8nIHx8IGNoID09ICc9JykKLSAgICAgICAgICAgIG91dFtpZHhdID0gYmFzZTY0RGVjTWFwW2No
XTsKLSAgICAgICAgZWxzZQorICAgICAgICB1bnNpZ25lZCBjaCA9IGRhdGFbaWR4XTsKKyAgICAg
ICAgaWYgKGNoID09ICc9JykKKyAgICAgICAgICAgIHNhd0VxdWFsc1NpZ24gPSB0cnVlOworICAg
ICAgICBlbHNlIGlmICgoJzAnIDw9IGNoICYmIGNoIDw9ICc5JykgfHwgKCdBJyA8PSBjaCAmJiBj
aCA8PSAnWicpIHx8ICgnYScgPD0gY2ggJiYgY2ggPD0gJ3onKSB8fCBjaCA9PSAnKycgfHwgY2gg
PT0gJy8nKSB7CisgICAgICAgICAgICBpZiAoc2F3RXF1YWxzU2lnbikKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBvdXRbb3V0TGVuZ3RoXSA9IGJhc2U2NERlY01h
cFtjaF07CisgICAgICAgICAgICBvdXRMZW5ndGgrKzsKKyAgICAgICAgfSBlbHNlIGlmIChwb2xp
Y3kgPT0gRmFpbE9uSW52YWxpZENoYXJhY3RlciB8fCAocG9saWN5ID09IElnbm9yZVdoaXRlc3Bh
Y2UgJiYgIWlzU3BhY2VPck5ld2xpbmUoY2gpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKKyAgICBpZiAoIW91dExlbmd0aCkKKyAgICAgICAgcmV0dXJuICFzYXdFcXVhbHNT
aWduOworCisgICAgLy8gVmFsaWQgZGF0YSBpcyAobiAqIDQgKyBbMCwyLDNdKSBjaGFyYWN0ZXJz
IGxvbmcuCisgICAgaWYgKChvdXRMZW5ndGggJSA0KSA9PSAxKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCiAgICAgLy8gNC1ieXRlIHRvIDMtYnl0ZSBjb252ZXJzaW9uCi0gICAgdW5zaWdu
ZWQgb3V0TGVuID0gbGVuIC0gKChsZW4gKyAzKSAvIDQpOwotICAgIGlmICghb3V0TGVuIHx8ICgo
b3V0TGVuICsgMikgLyAzKSAqIDQgPCBsZW4pCisgICAgb3V0TGVuZ3RoIC09IChvdXRMZW5ndGgg
KyAzKSAvIDQ7CisgICAgaWYgKCFvdXRMZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIHVuc2lnbmVkIHNpZHggPSAwOwogICAgIHVuc2lnbmVkIGRpZHggPSAwOwotICAgIGlmIChv
dXRMZW4gPiAxKSB7Ci0gICAgICAgIHdoaWxlIChkaWR4IDwgb3V0TGVuIC0gMikgeworICAgIGlm
IChvdXRMZW5ndGggPiAxKSB7CisgICAgICAgIHdoaWxlIChkaWR4IDwgb3V0TGVuZ3RoIC0gMikg
ewogICAgICAgICAgICAgb3V0W2RpZHhdID0gKCgob3V0W3NpZHhdIDw8IDIpICYgMjU1KSB8ICgo
b3V0W3NpZHggKyAxXSA+PiA0KSAmIDAwMykpOwogICAgICAgICAgICAgb3V0W2RpZHggKyAxXSA9
ICgoKG91dFtzaWR4ICsgMV0gPDwgNCkgJiAyNTUpIHwgKChvdXRbc2lkeCArIDJdID4+IDIpICYg
MDE3KSk7CiAgICAgICAgICAgICBvdXRbZGlkeCArIDJdID0gKCgob3V0W3NpZHggKyAyXSA8PCA2
KSAmIDI1NSkgfCAob3V0W3NpZHggKyAzXSAmIDA3NykpOwpAQCAtMTcwLDE2ICsxODUsMjYgQEAg
Ym9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQogICAgICAgICB9CiAgICAg
fQogCi0gICAgaWYgKGRpZHggPCBvdXRMZW4pCisgICAgaWYgKGRpZHggPCBvdXRMZW5ndGgpCiAg
ICAgICAgIG91dFtkaWR4XSA9ICgoKG91dFtzaWR4XSA8PCAyKSAmIDI1NSkgfCAoKG91dFtzaWR4
ICsgMV0gPj4gNCkgJiAwMDMpKTsKIAotICAgIGlmICgrK2RpZHggPCBvdXRMZW4pCisgICAgaWYg
KCsrZGlkeCA8IG91dExlbmd0aCkKICAgICAgICAgb3V0W2RpZHhdID0gKCgob3V0W3NpZHggKyAx
XSA8PCA0KSAmIDI1NSkgfCAoKG91dFtzaWR4ICsgMl0gPj4gMikgJiAwMTcpKTsKIAotICAgIGlm
IChvdXRMZW4gPCBvdXQuc2l6ZSgpKQotICAgICAgICBvdXQuc2hyaW5rKG91dExlbik7CisgICAg
aWYgKG91dExlbmd0aCA8IG91dC5zaXplKCkpCisgICAgICAgIG91dC5zaHJpbmsob3V0TGVuZ3Ro
KTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBsZW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xp
Y3kgcG9saWN5KQoreworICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRlcm5hbDxjaGFyPihkYXRh
LCBsZW4sIG91dCwgcG9saWN5KTsKIH0KKworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgU3RyaW5n
JiBpbiwgVmVjdG9yPGNoYXI+JiBvdXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCit7Cisg
ICAgcmV0dXJuIGJhc2U2NERlY29kZUludGVybmFsPFVDaGFyPihpbi5jaGFyYWN0ZXJzKCksIGlu
Lmxlbmd0aCgpLCBvdXQsIHBvbGljeSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL3RleHQvQmFzZTY0LmgJKHJldmlzaW9uIDY2OTk3KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0Jhc2U2NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQor
ICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2Eu
Y29tPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxNiArMjcsMTkgQEAK
ICNpZm5kZWYgQmFzZTY0X2gKICNkZWZpbmUgQmFzZTY0X2gKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2VudW0gQmFzZTY0RGVjb2RlUG9saWN5IHsgRmFpbE9uSW52YWxpZENoYXJhY3RlciwgSWdub3Jl
V2hpdGVzcGFjZSwgSWdub3JlSW52YWxpZENoYXJhY3RlcnMgfTsKKwogdm9pZCBiYXNlNjRFbmNv
ZGUoY29uc3QgVmVjdG9yPGNoYXI+JiwgVmVjdG9yPGNoYXI+JiwgYm9vbCBpbnNlcnRMRnMgPSBm
YWxzZSk7CiB2b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFyKiwgdW5zaWduZWQsIFZlY3Rvcjxj
aGFyPiYsIGJvb2wgaW5zZXJ0TEZzID0gZmFsc2UpOwogCi0vLyB0aGlzIGRlY29kZXIgaXMgbm90
IGdlbmVyYWwgcHVycG9zZSAtIGl0IHJldHVybnMgYW4gZXJyb3IgaWYgaXQgZW5jb3VudGVycyBh
IGxpbmVmZWVkLCBhcyBuZWVkZWQgZm9yIHdpbmRvdy5hdG9iCi1ib29sIGJhc2U2NERlY29kZShj
b25zdCBWZWN0b3I8Y2hhcj4mLCBWZWN0b3I8Y2hhcj4mKTsKLWJvb2wgYmFzZTY0RGVjb2RlKGNv
bnN0IGNoYXIqLCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+Jik7Citib29sIGJhc2U2NERlY29kZShj
b25zdCBTdHJpbmcmLCBWZWN0b3I8Y2hhcj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgPSBGYWlsT25J
bnZhbGlkQ2hhcmFjdGVyKTsKK2Jvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYs
IFZlY3RvcjxjaGFyPiYsIEJhc2U2NERlY29kZVBvbGljeSA9IEZhaWxPbkludmFsaWRDaGFyYWN0
ZXIpOworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBWZWN0b3I8Y2hh
cj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgPSBGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKTsKIAogfQog
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA2Njk5NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA5LTA4ICBQYXRyaWNrIEdhbnN0ZXJl
ciAgPHBhcm9nYUBwYXJvZ2EuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIEFkZCBCYXNlNjREZWNvZGVQb2xpY3kgb3B0aW9uIGF0IGJhc2U2NERlY29k
ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTUx
MAorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sOgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZh
c3QtcGF0aC5odG1sOiBBZGRlZCBhZGRpdGlvbmFsIGRhdGEgdXJscyB0ZXN0cy4KKwogMjAxMC0w
OS0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2It
YnRvYS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY2OTk3KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDggKzM1LDEzIEBAIFBBU1Mgd2luZG93LmF0b2IoItGC0LXRgdGCIikgdGhyZXcgZXhj
ZXAKIFBBU1Mgd2luZG93LmF0b2IoInoiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURf
Q0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgogUEFTUyB3aW5kb3cuYXRvYigienoiKSBp
cyAiw48iCiBQQVNTIHdpbmRvdy5hdG9iKCJ6enoiKSBpcyAiw488IgorUEFTUyB3aW5kb3cuYXRv
Yigienp6PSIpIGlzICLDjzwiCitQQVNTIHdpbmRvdy5hdG9iKCJ6eno9PSIpIGlzICLDjzwiCitQ
QVNTIHdpbmRvdy5hdG9iKCJ6eno9PT0iKSBpcyAiw488IgorUEFTUyB3aW5kb3cuYXRvYigienp6
PT09PSIpIGlzICLDjzwiCiBQQVNTIHdpbmRvdy5hdG9iKCJ6enp6IikgaXMgIsOPPMOzIgogUEFT
UyB3aW5kb3cuYXRvYigienp6enoiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQ0hB
UkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgorUEFTUyB3aW5kb3cuYXRvYigiej16eiIpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9u
IDUuCiBQQVNTIHdpbmRvdy5hdG9iKCI9IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElE
X0NIQVJBQ1RFUl9FUlI6IERPTSBFeGNlcHRpb24gNS4KIFBBU1Mgd2luZG93LmF0b2IoIj09Iikg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0NIQVJBQ1RFUl9FUlI6IERPTSBFeGNlcHRp
b24gNS4KIFBBU1Mgd2luZG93LmF0b2IoIj09PSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5W
QUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sCShyZXZpc2lvbiA2Njk5NykKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NDgsOCArNDgsMTMgQEAgc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCLRgtC10YHRgiIpJyk7CiBz
aG91bGRUaHJvdygnd2luZG93LmF0b2IoInoiKScpOwogc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6
eiIpJywgJyLDjyInKTsKIHNob3VsZEJlKCd3aW5kb3cuYXRvYigienp6IiknLCAnIsOPXHUwMDND
IicpOworc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6eno9IiknLCAnIsOPXHUwMDNDIicpOworc2hv
dWxkQmUoJ3dpbmRvdy5hdG9iKCJ6eno9PSIpJywgJyLDj1x1MDAzQyInKTsKK3Nob3VsZEJlKCd3
aW5kb3cuYXRvYigienp6PT09IiknLCAnIsOPXHUwMDNDIicpOworc2hvdWxkQmUoJ3dpbmRvdy5h
dG9iKCJ6eno9PT09IiknLCAnIsOPXHUwMDNDIicpOwogc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6
enp6IiknLCAnIsOPXHUwMDNDw7MiJyk7CiBzaG91bGRUaHJvdygnd2luZG93LmF0b2IoInp6enp6
IiknKTsKK3Nob3VsZFRocm93KCd3aW5kb3cuYXRvYigiej16eiIpJyk7CiBzaG91bGRUaHJvdygn
d2luZG93LmF0b2IoIj0iKScpOwogc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCI9PSIpJyk7CiBz
aG91bGRUaHJvdygnd2luZG93LmF0b2IoIj09PSIpJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3Vz
ZXItc3R5bGVzaGVldC1mYXN0LXBhdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2Njk5NykKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFz
dC1wYXRoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDkgQEAKIFRoaXMg
dGVzdHMgdGhhdCB3aGVuIHRoZSB1c2VyIHN0eWxlIHNoZWV0IGxvY2F0aW9uIGlzIHNldCB0byBh
IGRhdGE6IFVSTCB3aXRoIGJhc2U2NC1lbmNvZGVkIFVURi04IGRhdGEsIHRoZSBzdHlsZSBzaGVl
dCBpcyBwcm9jZXNzZWQgc3luY2hyb25vdXNseSwgaW5zdGVhZCBvZiBpbnZva2luZyB0aGUgYXN5
bmNocm9ub3VzIGxvYWRlci4KIAogUEFTUyAxMDBweAorUEFTUyAxMTBweAorUEFTUyAxMjBweAor
UEFTUyAxMzBweAogUEFTUyAxNDBweAogUEFTUyAxNTBweAogUEFTUyAxNjBweApJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBh
dGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2Fk
ZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1sCShyZXZpc2lvbiA2Njk5NykKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1w
YXRoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNiArNiw5IEBACiA8c2NyaXB0PgogICAgIHZh
ciB0ZXN0T2JqZWN0cyA9IFsKICAgICAgICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTAwcHgiLCB1
cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsWW05a2VTQjdabTl1ZEMxemFY
cGxPaUF4TURCd2VIMD0ifSwKKyAgICAgICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTEwcHgiLCB1
cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsICAgICAgICAgICAgICAgICAg
ICAgICBZbTlrZVNCN1ptOXVkQzF6YVhwbE9pQXhNVEJ3ZUgwPSAgICAgICAgICAgICAgICAgICJ9
LAorICAgICAgICB7cmVzdWx0OnRydWUsICBzaXplOiIxMjBweCIsIHVybDoiZGF0YTp0ZXh0L2Nz
cztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxcbiBcciBcdCBZbTlrIFx0IGVTQjcgXHIgWm05dWQgXG4g
XG4gQzF6YVhwIFxyIGxPaUF4TSBcdCBqQndlSDA9IFx0IFxyIFxuIn0sCisgICAgICAgIHtyZXN1
bHQ6dHJ1ZSwgIHNpemU6IjEzMHB4IiwgdXJsOiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7
YmFzZTY0LFx1MDA1OSBcdTAwNkQgXHUwMDM5IFx1MDA2QiBlU0I3Wm05dWQgQzF6YVhwbE9pQXhN
ekJ3ZSBcdTAwNDggXHUwMDMwIFx1MDAzRCJ9LAogICAgICAgICB7cmVzdWx0OmZhbHNlLCBzaXpl
OiIxNDBweCIsIHVybDoiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxZbTlrJCNl
U0I3Wm0jOXVkKEMxemFYcClsT2lBeE5EQndlSDA9In0sCiAgICAgICAgIHtyZXN1bHQ6ZmFsc2Us
IHNpemU6IjE1MHB4IiwgdXJsOiJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFlt
OWtlJTAwU0I3WiUyMG05dWRDMXpcblx0YVhwbE8jaUF4JTAzTlRCdyVlSDA9In0sCiAgICAgICAg
IHtyZXN1bHQ6ZmFsc2UsIHNpemU6IjE2MHB4IiwgdXJsOiIlNTAlMzAlMTAlMDAlMjAlNDAifQo=
</data>
<flag name="commit-queue"
          id="57241"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69572</attachid>
            <date>2010-10-02 07:14:45 -0700</date>
            <delta_ts>2010-10-04 22:06:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41510k.patch</filename>
            <type>text/plain</type>
            <size>14966</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDktMDggIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBh
cm9nYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
QWRkIEJhc2U2NERlY29kZVBvbGljeSBvcHRpb24gYXQgYmFzZTY0RGVjb2RlKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTEwCisKKyAgICAgICAg
QWRkIGFuIG9wdGlvbiBmb3IgaWdub3JpbmcgY2hhcmFjdGVycyBpbiBiYXNlNjQgZGF0YS4KKyAg
ICAgICAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGRlY29kaW5nIGRhdGEgdXJscy4KKworICAgICAg
ICBBbHNvIGFkZCBhbiBvdmVybG9hZCB0byBkZWNvZGUgV2ViQ29yZTo6U3RyaW5nIGRpcmVjdGx5
LgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjphdG9iKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvQmFzZTY0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJhc2U2NEVuY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpiYXNlNjREZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6YmFzZTY0
RGVjb2RlSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvQmFzZTY0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjopOgorCiAyMDEwLTA5LTA4ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05OTQsMTEgKzk5NCw4IEBAIFN0cmluZyBET01XaW5kb3c6OmF0
b2IoY29uc3QgU3RyaW5nJiBlbmMKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAot
ICAgIFZlY3RvcjxjaGFyPiBpbjsKLSAgICBpbi5hcHBlbmQoZW5jb2RlZFN0cmluZy5jaGFyYWN0
ZXJzKCksIGVuY29kZWRTdHJpbmcubGVuZ3RoKCkpOwogICAgIFZlY3RvcjxjaGFyPiBvdXQ7Ci0K
LSAgICBpZiAoIWJhc2U2NERlY29kZShpbiwgb3V0KSkgeworICAgIGlmICghYmFzZTY0RGVjb2Rl
KGVuY29kZWRTdHJpbmcsIG91dCwgRmFpbE9uSW52YWxpZENoYXJhY3RlcikpIHsKICAgICAgICAg
ZWMgPSBJTlZBTElEX0NIQVJBQ1RFUl9FUlI7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAg
ICB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShyZXZpc2lvbiA2Njk5NykKKysrIFdlYkNvcmUvcGFnZS9QYWdlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjIxLDIyICs2MjEsMTcgQEAgdm9pZCBQYWdlOjp1c2VyU3R5bGVT
aGVldExvY2F0aW9uQ2hhbmdlZAogICAgIG1fZGlkTG9hZFVzZXJTdHlsZVNoZWV0ID0gZmFsc2U7
CiAgICAgbV91c2VyU3R5bGVTaGVldCA9IFN0cmluZygpOwogICAgIG1fdXNlclN0eWxlU2hlZXRN
b2RpZmljYXRpb25UaW1lID0gMDsKLSAgICAKKwogICAgIC8vIERhdGEgVVJMcyB3aXRoIGJhc2U2
NC1lbmNvZGVkIFVURi04IHN0eWxlIHNoZWV0cyBhcmUgY29tbW9uLiBXZSBjYW4gcHJvY2VzcyB0
aGVtCiAgICAgLy8gc3luY2hyb25vdXNseSBhbmQgYXZvaWQgdXNpbmcgYSBsb2FkZXIuIAogICAg
IGlmICh1cmwucHJvdG9jb2xJcygiZGF0YSIpICYmIHVybC5zdHJpbmcoKS5zdGFydHNXaXRoKCJk
YXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCIpKSB7CiAgICAgICAgIG1fZGlkTG9h
ZFVzZXJTdHlsZVNoZWV0ID0gdHJ1ZTsKLSAgICAgICAgCi0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IHByZWZpeExlbmd0aCA9IDM1OwotICAgICAgICBWZWN0b3I8Y2hhcj4gZW5jb2RlZERhdGEodXJs
LnN0cmluZygpLmxlbmd0aCgpIC0gcHJlZml4TGVuZ3RoKTsKLSAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gcHJlZml4TGVuZ3RoOyBpIDwgdXJsLnN0cmluZygpLmxlbmd0aCgpOyArK2kpCi0gICAg
ICAgICAgICBlbmNvZGVkRGF0YVtpIC0gcHJlZml4TGVuZ3RoXSA9IHN0YXRpY19jYXN0PGNoYXI+
KHVybC5zdHJpbmcoKVtpXSk7CiAKICAgICAgICAgVmVjdG9yPGNoYXI+IHN0eWxlU2hlZXRBc1VU
Rjg7Ci0gICAgICAgIGlmIChiYXNlNjREZWNvZGUoZW5jb2RlZERhdGEsIHN0eWxlU2hlZXRBc1VU
RjgpKQorICAgICAgICBpZiAoYmFzZTY0RGVjb2RlKGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyh1
cmwuc3RyaW5nKCkuc3Vic3RyaW5nKDM1KSksIHN0eWxlU2hlZXRBc1VURjgsIElnbm9yZVdoaXRl
c3BhY2UpKQogICAgICAgICAgICAgbV91c2VyU3R5bGVTaGVldCA9IFN0cmluZzo6ZnJvbVVURjgo
c3R5bGVTaGVldEFzVVRGOC5kYXRhKCksIHN0eWxlU2hlZXRBc1VURjguc2l6ZSgpKTsKICAgICB9
Ci0gICAgCisKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBpZiAoZnJhbWUt
PmRvY3VtZW50KCkpCiAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlUGFnZVVz
ZXJTaGVldCgpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAJKHJldmlzaW9uIDY2OTk3
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIsNiArMiw3IEBACiAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEYXdpdCBBbGVtYXllaHUg
PGFkYXdpdEBrZGUub3JnPgogICAgQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFr
b3YgPGFwQHdlYmtpdC5vcmc+CiAgICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICAgQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fu
c3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChMR1BM
KQpAQCAtMjUsNiArMjYsNyBAQAogCiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8d3Rm
L1N0cmluZ0V4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcwLDcgKzcyLDcgQEAgdm9pZCBiYXNlNjRFbmNvZGUoY29u
c3QgY2hhciogZGF0YSwgdW5zaQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiB0aGUgaW5w
dXQgc3RyaW5nIGlzIHBhdGhvbG9naWNhbGx5IGxhcmdlLCBqdXN0IHJldHVybiBub3RoaW5nLgot
ICAgIC8vIE5vdGU6IEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlICJvdXRfbGVuIiBjb21wdXRh
dGlvbiBiZWxvdy4KKyAgICAvLyBOb3RlOiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSAib3V0
TGVuZ3RoIiBjb21wdXRhdGlvbiBiZWxvdy4KICAgICAvLyBSYXRoZXIgdGhhbiBiZWluZyBwZXJm
ZWN0bHkgcHJlY2lzZSwgdGhpcyBpcyBhIGJpdCBjb25zZXJ2YXRpdmUuCiAgICAgY29uc3QgdW5z
aWduZWQgbWF4SW5wdXRCdWZmZXJTaXplID0gVUlOVF9NQVggLyA3NyAqIDc2IC8gNCAqIDMgLSAy
OwogICAgIGlmIChsZW4gPiBtYXhJbnB1dEJ1ZmZlclNpemUpCkBAIC03OSwyMSArODEsMjEgQEAg
dm9pZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQogICAgIHVuc2lnbmVkIHNp
ZHggPSAwOwogICAgIHVuc2lnbmVkIGRpZHggPSAwOwogCi0gICAgdW5zaWduZWQgb3V0X2xlbiA9
ICgobGVuICsgMikgLyAzKSAqIDQ7CisgICAgdW5zaWduZWQgb3V0TGVuZ3RoID0gKChsZW4gKyAy
KSAvIDMpICogNDsKIAogICAgIC8vIERlYWwgd2l0aCB0aGUgNzYgY2hhcmFjdGVyIHBlciBsaW5l
IGxpbWl0IHNwZWNpZmllZCBpbiBSRkMgMjA0NS4KLSAgICBpbnNlcnRMRnMgPSAoaW5zZXJ0TEZz
ICYmIG91dF9sZW4gPiA3Nik7CisgICAgaW5zZXJ0TEZzID0gKGluc2VydExGcyAmJiBvdXRMZW5n
dGggPiA3Nik7CiAgICAgaWYgKGluc2VydExGcykKLSAgICAgICAgb3V0X2xlbiArPSAoKG91dF9s
ZW4gLSAxKSAvIDc2KTsKKyAgICAgICAgb3V0TGVuZ3RoICs9ICgob3V0TGVuZ3RoIC0gMSkgLyA3
Nik7CiAKICAgICBpbnQgY291bnQgPSAwOwotICAgIG91dC5ncm93KG91dF9sZW4pOworICAgIG91
dC5ncm93KG91dExlbmd0aCk7CiAKICAgICAvLyAzLWJ5dGUgdG8gNC1ieXRlIGNvbnZlcnNpb24g
KyAwLTYzIHRvIGFzY2lpIHByaW50YWJsZSBjb252ZXJzaW9uCiAgICAgaWYgKGxlbiA+IDEpIHsK
ICAgICAgICAgd2hpbGUgKHNpZHggPCBsZW4gLSAyKSB7CiAgICAgICAgICAgICBpZiAoaW5zZXJ0
TEZzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNvdW50ICYmIChjb3VudCAlIDc2KSA9PSAwKQor
ICAgICAgICAgICAgICAgIGlmIChjb3VudCAmJiAhKGNvdW50ICUgNzYpKQogICAgICAgICAgICAg
ICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7CiAgICAgICAgICAgICAgICAgY291bnQgKz0gNDsK
ICAgICAgICAgICAgIH0KQEAgLTEwNiw3ICsxMDgsNyBAQCB2b2lkIGJhc2U2NEVuY29kZShjb25z
dCBjaGFyKiBkYXRhLCB1bnNpCiAgICAgfQogCiAgICAgaWYgKHNpZHggPCBsZW4pIHsKLSAgICAg
ICAgaWYgKGluc2VydExGcyAmJiAoY291bnQgPiAwKSAmJiAoY291bnQgJSA3NikgPT0gMCkKKyAg
ICAgICAgaWYgKGluc2VydExGcyAmJiAoY291bnQgPiAwKSAmJiAhKGNvdW50ICUgNzYpKQogICAg
ICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7CiAKICAgICAgICAgb3V0W2RpZHgrK10gPSBiYXNl
NjRFbmNNYXBbKGRhdGFbc2lkeF0gPj4gMikgJiAwNzddOwpAQCAtMTI0LDcgKzEyNiw3IEBAIHZv
aWQgYmFzZTY0RW5jb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kKICAgICB9CiB9CiAKLWJvb2wg
YmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0KQor
Ym9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+JiBpbiwgVmVjdG9yPGNoYXI+JiBv
dXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCiB7CiAgICAgb3V0LmNsZWFyKCk7CiAKQEAg
LTEzMiwzNiArMTM0LDQ5IEBAIGJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYg
aW4KICAgICBpZiAoaW4uc2l6ZSgpID4gVUlOVF9NQVgpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHJldHVybiBiYXNlNjREZWNvZGUoaW4uZGF0YSgpLCBpbi5zaXplKCksIG91dCk7Cisg
ICAgcmV0dXJuIGJhc2U2NERlY29kZShpbi5kYXRhKCksIGluLnNpemUoKSwgb3V0LCBwb2xpY3kp
OwogfQogCi1ib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW4s
IFZlY3RvcjxjaGFyPiYgb3V0KQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0YXRpYyBpbmxpbmUg
Ym9vbCBiYXNlNjREZWNvZGVJbnRlcm5hbChjb25zdCBUKiBkYXRhLCB1bnNpZ25lZCBsZW4sIFZl
Y3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5KQogewogICAgIG91dC5j
bGVhcigpOwotICAgIGlmIChsZW4gPT0gMCkKKyAgICBpZiAoIWxlbikKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICB3aGlsZSAobGVuICYmIGRhdGFbbGVuLTFdID09ICc9JykKLSAgICAgICAg
LS1sZW47Ci0KICAgICBvdXQuZ3JvdyhsZW4pOworCisgICAgYm9vbCBzYXdFcXVhbHNTaWduID0g
ZmFsc2U7CisgICAgdW5zaWduZWQgb3V0TGVuZ3RoID0gMDsKICAgICBmb3IgKHVuc2lnbmVkIGlk
eCA9IDA7IGlkeCA8IGxlbjsgaWR4KyspIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBjaCA9IGRh
dGFbaWR4XTsKLSAgICAgICAgaWYgKChjaCA+IDQ3ICYmIGNoIDwgNTgpIHx8IChjaCA+IDY0ICYm
IGNoIDwgOTEpIHx8IChjaCA+IDk2ICYmIGNoIDwgMTIzKSB8fCBjaCA9PSAnKycgfHwgY2ggPT0g
Jy8nIHx8IGNoID09ICc9JykKLSAgICAgICAgICAgIG91dFtpZHhdID0gYmFzZTY0RGVjTWFwW2No
XTsKLSAgICAgICAgZWxzZQorICAgICAgICB1bnNpZ25lZCBjaCA9IGRhdGFbaWR4XTsKKyAgICAg
ICAgaWYgKGNoID09ICc9JykKKyAgICAgICAgICAgIHNhd0VxdWFsc1NpZ24gPSB0cnVlOworICAg
ICAgICBlbHNlIGlmICgoJzAnIDw9IGNoICYmIGNoIDw9ICc5JykgfHwgKCdBJyA8PSBjaCAmJiBj
aCA8PSAnWicpIHx8ICgnYScgPD0gY2ggJiYgY2ggPD0gJ3onKSB8fCBjaCA9PSAnKycgfHwgY2gg
PT0gJy8nKSB7CisgICAgICAgICAgICBpZiAoc2F3RXF1YWxzU2lnbikKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBvdXRbb3V0TGVuZ3RoXSA9IGJhc2U2NERlY01h
cFtjaF07CisgICAgICAgICAgICBvdXRMZW5ndGgrKzsKKyAgICAgICAgfSBlbHNlIGlmIChwb2xp
Y3kgPT0gRmFpbE9uSW52YWxpZENoYXJhY3RlciB8fCAocG9saWN5ID09IElnbm9yZVdoaXRlc3Bh
Y2UgJiYgIWlzU3BhY2VPck5ld2xpbmUoY2gpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKKyAgICBpZiAoIW91dExlbmd0aCkKKyAgICAgICAgcmV0dXJuICFzYXdFcXVhbHNT
aWduOworCisgICAgLy8gVmFsaWQgZGF0YSBpcyAobiAqIDQgKyBbMCwyLDNdKSBjaGFyYWN0ZXJz
IGxvbmcuCisgICAgaWYgKChvdXRMZW5ndGggJSA0KSA9PSAxKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCiAgICAgLy8gNC1ieXRlIHRvIDMtYnl0ZSBjb252ZXJzaW9uCi0gICAgdW5zaWdu
ZWQgb3V0TGVuID0gbGVuIC0gKChsZW4gKyAzKSAvIDQpOwotICAgIGlmICghb3V0TGVuIHx8ICgo
b3V0TGVuICsgMikgLyAzKSAqIDQgPCBsZW4pCisgICAgb3V0TGVuZ3RoIC09IChvdXRMZW5ndGgg
KyAzKSAvIDQ7CisgICAgaWYgKCFvdXRMZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIHVuc2lnbmVkIHNpZHggPSAwOwogICAgIHVuc2lnbmVkIGRpZHggPSAwOwotICAgIGlmIChv
dXRMZW4gPiAxKSB7Ci0gICAgICAgIHdoaWxlIChkaWR4IDwgb3V0TGVuIC0gMikgeworICAgIGlm
IChvdXRMZW5ndGggPiAxKSB7CisgICAgICAgIHdoaWxlIChkaWR4IDwgb3V0TGVuZ3RoIC0gMikg
ewogICAgICAgICAgICAgb3V0W2RpZHhdID0gKCgob3V0W3NpZHhdIDw8IDIpICYgMjU1KSB8ICgo
b3V0W3NpZHggKyAxXSA+PiA0KSAmIDAwMykpOwogICAgICAgICAgICAgb3V0W2RpZHggKyAxXSA9
ICgoKG91dFtzaWR4ICsgMV0gPDwgNCkgJiAyNTUpIHwgKChvdXRbc2lkeCArIDJdID4+IDIpICYg
MDE3KSk7CiAgICAgICAgICAgICBvdXRbZGlkeCArIDJdID0gKCgob3V0W3NpZHggKyAyXSA8PCA2
KSAmIDI1NSkgfCAob3V0W3NpZHggKyAzXSAmIDA3NykpOwpAQCAtMTcwLDE2ICsxODUsMjYgQEAg
Ym9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQogICAgICAgICB9CiAgICAg
fQogCi0gICAgaWYgKGRpZHggPCBvdXRMZW4pCisgICAgaWYgKGRpZHggPCBvdXRMZW5ndGgpCiAg
ICAgICAgIG91dFtkaWR4XSA9ICgoKG91dFtzaWR4XSA8PCAyKSAmIDI1NSkgfCAoKG91dFtzaWR4
ICsgMV0gPj4gNCkgJiAwMDMpKTsKIAotICAgIGlmICgrK2RpZHggPCBvdXRMZW4pCisgICAgaWYg
KCsrZGlkeCA8IG91dExlbmd0aCkKICAgICAgICAgb3V0W2RpZHhdID0gKCgob3V0W3NpZHggKyAx
XSA8PCA0KSAmIDI1NSkgfCAoKG91dFtzaWR4ICsgMl0gPj4gMikgJiAwMTcpKTsKIAotICAgIGlm
IChvdXRMZW4gPCBvdXQuc2l6ZSgpKQotICAgICAgICBvdXQuc2hyaW5rKG91dExlbik7CisgICAg
aWYgKG91dExlbmd0aCA8IG91dC5zaXplKCkpCisgICAgICAgIG91dC5zaHJpbmsob3V0TGVuZ3Ro
KTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIGJhc2U2NERlY29kZShjb25zdCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBsZW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xp
Y3kgcG9saWN5KQoreworICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRlcm5hbDxjaGFyPihkYXRh
LCBsZW4sIG91dCwgcG9saWN5KTsKIH0KKworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgU3RyaW5n
JiBpbiwgVmVjdG9yPGNoYXI+JiBvdXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCit7Cisg
ICAgcmV0dXJuIGJhc2U2NERlY29kZUludGVybmFsPFVDaGFyPihpbi5jaGFyYWN0ZXJzKCksIGlu
Lmxlbmd0aCgpLCBvdXQsIHBvbGljeSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL3RleHQvQmFzZTY0LmgJKHJldmlzaW9uIDY2OTk3KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0Jhc2U2NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQor
ICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2Eu
Y29tPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxNiArMjcsMTkgQEAK
ICNpZm5kZWYgQmFzZTY0X2gKICNkZWZpbmUgQmFzZTY0X2gKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2VudW0gQmFzZTY0RGVjb2RlUG9saWN5IHsgRmFpbE9uSW52YWxpZENoYXJhY3RlciwgSWdub3Jl
V2hpdGVzcGFjZSwgSWdub3JlSW52YWxpZENoYXJhY3RlcnMgfTsKKwogdm9pZCBiYXNlNjRFbmNv
ZGUoY29uc3QgVmVjdG9yPGNoYXI+JiwgVmVjdG9yPGNoYXI+JiwgYm9vbCBpbnNlcnRMRnMgPSBm
YWxzZSk7CiB2b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFyKiwgdW5zaWduZWQsIFZlY3Rvcjxj
aGFyPiYsIGJvb2wgaW5zZXJ0TEZzID0gZmFsc2UpOwogCi0vLyB0aGlzIGRlY29kZXIgaXMgbm90
IGdlbmVyYWwgcHVycG9zZSAtIGl0IHJldHVybnMgYW4gZXJyb3IgaWYgaXQgZW5jb3VudGVycyBh
IGxpbmVmZWVkLCBhcyBuZWVkZWQgZm9yIHdpbmRvdy5hdG9iCi1ib29sIGJhc2U2NERlY29kZShj
b25zdCBWZWN0b3I8Y2hhcj4mLCBWZWN0b3I8Y2hhcj4mKTsKLWJvb2wgYmFzZTY0RGVjb2RlKGNv
bnN0IGNoYXIqLCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+Jik7Citib29sIGJhc2U2NERlY29kZShj
b25zdCBTdHJpbmcmLCBWZWN0b3I8Y2hhcj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgPSBGYWlsT25J
bnZhbGlkQ2hhcmFjdGVyKTsKK2Jvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYs
IFZlY3RvcjxjaGFyPiYsIEJhc2U2NERlY29kZVBvbGljeSA9IEZhaWxPbkludmFsaWRDaGFyYWN0
ZXIpOworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBWZWN0b3I8Y2hh
cj4mLCBCYXNlNjREZWNvZGVQb2xpY3kgPSBGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKTsKIAogfQog
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA2Njk5NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA5LTA4ICBQYXRyaWNrIEdhbnN0ZXJl
ciAgPHBhcm9nYUBwYXJvZ2EuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIEFkZCBCYXNlNjREZWNvZGVQb2xpY3kgb3B0aW9uIGF0IGJhc2U2NERlY29k
ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTUx
MAorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sOgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1wYXRoLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZh
c3QtcGF0aC5odG1sOiBBZGRlZCBhZGRpdGlvbmFsIGRhdGEgdXJscyB0ZXN0cy4KKwogMjAxMC0w
OS0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2It
YnRvYS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY2OTk3KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDggKzM1LDEzIEBAIFBBU1Mgd2luZG93LmF0b2IoItGC0LXRgdGCIikgdGhyZXcgZXhj
ZXAKIFBBU1Mgd2luZG93LmF0b2IoInoiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURf
Q0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgogUEFTUyB3aW5kb3cuYXRvYigienoiKSBp
cyAiw48iCiBQQVNTIHdpbmRvdy5hdG9iKCJ6enoiKSBpcyAiw488IgorUEFTUyB3aW5kb3cuYXRv
Yigienp6PSIpIGlzICLDjzwiCitQQVNTIHdpbmRvdy5hdG9iKCJ6eno9PSIpIGlzICLDjzwiCitQ
QVNTIHdpbmRvdy5hdG9iKCJ6eno9PT0iKSBpcyAiw488IgorUEFTUyB3aW5kb3cuYXRvYigienp6
PT09PSIpIGlzICLDjzwiCiBQQVNTIHdpbmRvdy5hdG9iKCJ6enp6IikgaXMgIsOPPMOzIgogUEFT
UyB3aW5kb3cuYXRvYigienp6enoiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQ0hB
UkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgorUEFTUyB3aW5kb3cuYXRvYigiej16eiIpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9u
IDUuCiBQQVNTIHdpbmRvdy5hdG9iKCI9IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElE
X0NIQVJBQ1RFUl9FUlI6IERPTSBFeGNlcHRpb24gNS4KIFBBU1Mgd2luZG93LmF0b2IoIj09Iikg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0NIQVJBQ1RFUl9FUlI6IERPTSBFeGNlcHRp
b24gNS4KIFBBU1Mgd2luZG93LmF0b2IoIj09PSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5W
QUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sCShyZXZpc2lvbiA2Njk5NykKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NDgsOCArNDgsMTMgQEAgc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCLRgtC10YHRgiIpJyk7CiBz
aG91bGRUaHJvdygnd2luZG93LmF0b2IoInoiKScpOwogc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6
eiIpJywgJyLDjyInKTsKIHNob3VsZEJlKCd3aW5kb3cuYXRvYigienp6IiknLCAnIsOPXHUwMDND
IicpOworc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6eno9IiknLCAnIsOPXHUwMDNDIicpOworc2hv
dWxkQmUoJ3dpbmRvdy5hdG9iKCJ6eno9PSIpJywgJyLDj1x1MDAzQyInKTsKK3Nob3VsZEJlKCd3
aW5kb3cuYXRvYigienp6PT09IiknLCAnIsOPXHUwMDNDIicpOworc2hvdWxkQmUoJ3dpbmRvdy5h
dG9iKCJ6eno9PT09IiknLCAnIsOPXHUwMDNDIicpOwogc2hvdWxkQmUoJ3dpbmRvdy5hdG9iKCJ6
enp6IiknLCAnIsOPXHUwMDNDw7MiJyk7CiBzaG91bGRUaHJvdygnd2luZG93LmF0b2IoInp6enp6
IiknKTsKK3Nob3VsZFRocm93KCd3aW5kb3cuYXRvYigiej16eiIpJyk7CiBzaG91bGRUaHJvdygn
d2luZG93LmF0b2IoIj0iKScpOwogc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCI9PSIpJyk7CiBz
aG91bGRUaHJvdygnd2luZG93LmF0b2IoIj09PSIpJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9sb2FkZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3Vz
ZXItc3R5bGVzaGVldC1mYXN0LXBhdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2Njk5NykKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFz
dC1wYXRoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDkgQEAKIFRoaXMg
dGVzdHMgdGhhdCB3aGVuIHRoZSB1c2VyIHN0eWxlIHNoZWV0IGxvY2F0aW9uIGlzIHNldCB0byBh
IGRhdGE6IFVSTCB3aXRoIGJhc2U2NC1lbmNvZGVkIFVURi04IGRhdGEsIHRoZSBzdHlsZSBzaGVl
dCBpcyBwcm9jZXNzZWQgc3luY2hyb25vdXNseSwgaW5zdGVhZCBvZiBpbnZva2luZyB0aGUgYXN5
bmNocm9ub3VzIGxvYWRlci4KIAogUEFTUyAxMDBweAorUEFTUyAxMTBweAorUEFTUyAxMjBweAor
UEFTUyAxMzBweAogUEFTUyAxNDBweAogUEFTUyAxNTBweAogUEFTUyAxNjBweApJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbG9hZGVyL3VzZXItc3R5bGVzaGVldC1mYXN0LXBh
dGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9sb2Fk
ZXIvdXNlci1zdHlsZXNoZWV0LWZhc3QtcGF0aC5odG1sCShyZXZpc2lvbiA2Njk5NykKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2xvYWRlci91c2VyLXN0eWxlc2hlZXQtZmFzdC1w
YXRoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNiArNiw5IEBACiA8c2NyaXB0PgogICAgIHZh
ciB0ZXN0T2JqZWN0cyA9IFsKICAgICAgICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTAwcHgiLCB1
cmw6ImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsWW05a2VTQjdabTl1ZEMxemFY
cGxPaUF4TURCd2VIMD0ifSwKKyAgICAgICAge3Jlc3VsdDp0cnVlLCAgc2l6ZToiMTEwcHgiLCB1
cmw6ZW5jb2RlVVJJKCJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCAgICAgICAg
ICAgICAgICAgICAgICAgWW05a2VTQjdabTl1ZEMxemFYcGxPaUF4TVRCd2VIMD0gICAgICAgICAg
ICAgICAgICAiKX0sCisgICAgICAgIHtyZXN1bHQ6dHJ1ZSwgIHNpemU6IjEyMHB4IiwgdXJsOmVu
Y29kZVVSSSgiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxcbiBcciBcdCBZbTlr
IFx0IGVTQjcgXHIgWm05dWQgXG4gXG4gQzF6YVhwIFxyIGxPaUF4TSBcdCBqQndlSDA9IFx0IFxy
IFxuIil9LAorICAgICAgICB7cmVzdWx0OnRydWUsICBzaXplOiIxMzBweCIsIHVybDplbmNvZGVV
UkkoImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsXHUwMDU5IFx1MDA2RCBcdTAw
MzkgXHUwMDZCIGVTQjdabTl1ZCBDMXphWHBsT2lBeE16QndlIFx1MDA0OCBcdTAwMzAgXHUwMDNE
Iil9LAogICAgICAgICB7cmVzdWx0OmZhbHNlLCBzaXplOiIxNDBweCIsIHVybDoiZGF0YTp0ZXh0
L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2NCxZbTlrJCNlU0I3Wm0jOXVkKEMxemFYcClsT2lBeE5E
QndlSDA9In0sCiAgICAgICAgIHtyZXN1bHQ6ZmFsc2UsIHNpemU6IjE1MHB4IiwgdXJsOiJkYXRh
OnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFltOWtlJTAwU0I3WiUyMG05dWRDMXpcblx0
YVhwbE8jaUF4JTAzTlRCdyVlSDA9In0sCiAgICAgICAgIHtyZXN1bHQ6ZmFsc2UsIHNpemU6IjE2
MHB4IiwgdXJsOiIlNTAlMzAlMTAlMDAlMjAlNDAifQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>