<?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>65824</bug_id>
          
          <creation_ts>2011-08-06 21:44:01 -0700</creation_ts>
          <short_desc>Repeated copy and paste result in nested font elements</short_desc>
          <delta_ts>2011-08-09 12:10:37 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>34564</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enrica</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>447704</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-06 21:44:01 -0700</bug_when>
    <thetext>While r81887 and subsequent change sets avoided nesting spans, it still allows b, em, font, and other styling elements to nest themselves.  We should the extend the idea introduced in r81887 and remove other inline style elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447705</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-06 21:44:57 -0700</bug_when>
    <thetext>This separates some changes from my patch for the bug 34564, and extends it further to reduce the verbosity of the pasted markup further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447709</commentid>
    <comment_count>2</comment_count>
      <attachid>103172</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-06 22:57:17 -0700</bug_when>
    <thetext>Created attachment 103172
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448243</commentid>
    <comment_count>3</comment_count>
      <attachid>103288</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-08 13:41:35 -0700</bug_when>
    <thetext>Created attachment 103288
Updated rebaselines after r92620</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448273</commentid>
    <comment_count>4</comment_count>
      <attachid>103288</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-08 14:33:31 -0700</bug_when>
    <thetext>Comment on attachment 103288
Updated rebaselines after r92620

Attachment 103288 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9335107

New failing tests:
editing/pasteboard/paste-text-011.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448282</commentid>
    <comment_count>5</comment_count>
      <attachid>103296</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-08 14:51:01 -0700</bug_when>
    <thetext>Created attachment 103296
Removed chromium-specific result for paste-text-011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448372</commentid>
    <comment_count>6</comment_count>
      <attachid>103296</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-08 17:06:14 -0700</bug_when>
    <thetext>Comment on attachment 103296
Removed chromium-specific result for paste-text-011

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

Some small style nits and questions about some of the changed results.

&gt; Source/WebCore/editing/EditingStyle.cpp:640
&gt; +    DEFINE_STATIC_LOCAL(Vector&lt;OwnPtr&lt;HTMLElementEquivalent&gt; &gt;, HTMLElementEquivalents, ());

What&apos;s the benefit of OwnPtr here?  Don&apos;t we want to just leak it on exit?

&gt; Source/WebCore/editing/EditingStyle.cpp:759
&gt; +        elementIsSpanOrElementEquivalent = i &lt; HTMLElementEquivalents.size();

Nit: Maybe just set elementIsSpanOrElementEquivalent = true; before you break (could then also put the declaration of |i| in the for statement)?

&gt; Source/WebCore/editing/EditingStyle.cpp:786
&gt; +                    if (editingInheritableProperties[i] == it-&gt;id())
&gt; +                        matched = true;

Should we break here?

&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:960
&gt; +        if (RefPtr&lt;Node&gt; nodeToSplitTo = highestEnclosingNodeOfType(insertionPos, isInlineNodeWithStyle, CannotCrossEditingBoundary,

Is it possible to write a test to verify that this editability check is correct?

&gt; LayoutTests/editing/pasteboard/paste-after-inline-style-element-expected.txt:8
&gt; +|   &quot;line 2&lt;#selection-caret&gt;&quot;
&gt; +|   &quot;Â &quot;

Is this expected?  It looks like it was bold but no longer is.

&gt; LayoutTests/editing/pasteboard/paste-text-with-style-2-expected.txt:21
&gt; +| &lt;font&gt;
&gt; +|   class=&quot;Apple-style-span&quot;
&gt; +|   color=&quot;#ff0000&quot;

Why did font move to the outsize here?

&gt; LayoutTests/editing/pasteboard/paste-with-redundant-style-expected.txt:12
&gt; +| &lt;em&gt;
&gt; +|   &quot;rocks&lt;#selection-caret&gt;&quot;

Why isn&apos;t this bold? It looks like it&apos;s bold before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448376</commentid>
    <comment_count>7</comment_count>
      <attachid>103296</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-08 17:14:10 -0700</bug_when>
    <thetext>Comment on attachment 103296
Removed chromium-specific result for paste-text-011

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

&gt;&gt; Source/WebCore/editing/EditingStyle.cpp:640
&gt;&gt; +    DEFINE_STATIC_LOCAL(Vector&lt;OwnPtr&lt;HTMLElementEquivalent&gt; &gt;, HTMLElementEquivalents, ());
&gt; 
&gt; What&apos;s the benefit of OwnPtr here?  Don&apos;t we want to just leak it on exit?

I don&apos;t think we want to use that pattern anymore.  Also this patches the code in htmlAttributeEquivalents.

&gt;&gt; Source/WebCore/editing/EditingStyle.cpp:759
&gt;&gt; +        elementIsSpanOrElementEquivalent = i &lt; HTMLElementEquivalents.size();
&gt; 
&gt; Nit: Maybe just set elementIsSpanOrElementEquivalent = true; before you break (could then also put the declaration of |i| in the for statement)?

Will do.

&gt;&gt; Source/WebCore/editing/EditingStyle.cpp:786
&gt;&gt; +                        matched = true;
&gt; 
&gt; Should we break here?

Definitely. That&apos;s a good catch.

&gt;&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:960
&gt;&gt; +        if (RefPtr&lt;Node&gt; nodeToSplitTo = highestEnclosingNodeOfType(insertionPos, isInlineNodeWithStyle, CannotCrossEditingBoundary,
&gt; 
&gt; Is it possible to write a test to verify that this editability check is correct?

The existing tests verify this already (tests crash otherwise).

&gt;&gt; LayoutTests/editing/pasteboard/paste-after-inline-style-element-expected.txt:8
&gt;&gt; +|   &quot;Â &quot;
&gt; 
&gt; Is this expected?  It looks like it was bold but no longer is.

Yes. This is fixing a bug.  See http://trac.webkit.org/browser/trunk/LayoutTests/editing/pasteboard/paste-after-inline-style-element.html.  We&apos;re inserting a new blockquote after the first one.  Since b is inside the first blockquote, we should certainly not bold it.

&gt;&gt; LayoutTests/editing/pasteboard/paste-text-with-style-2-expected.txt:21
&gt;&gt; +|   color=&quot;#ff0000&quot;
&gt; 
&gt; Why did font move to the outsize here?

Yeah, this is probably done by ApplyStyleCommand (typing style).  We shouldn&apos;t be wrapping br like this to begin with.

&gt;&gt; LayoutTests/editing/pasteboard/paste-with-redundant-style-expected.txt:12
&gt;&gt; +|   &quot;rocks&lt;#selection-caret&gt;&quot;
&gt; 
&gt; Why isn&apos;t this bold? It looks like it&apos;s bold before.

See the CSS rule &quot;em { text-decoration: underline; font-style: none; }&quot;.  It was never bolded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448386</commentid>
    <comment_count>8</comment_count>
      <attachid>103320</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-08 17:38:13 -0700</bug_when>
    <thetext>Created attachment 103320
Updated per review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448647</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-09 10:12:09 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 103296 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=103296&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/editing/EditingStyle.cpp:640
&gt; &gt;&gt; +    DEFINE_STATIC_LOCAL(Vector&lt;OwnPtr&lt;HTMLElementEquivalent&gt; &gt;, HTMLElementEquivalents, ());
&gt; &gt; 
&gt; &gt; What&apos;s the benefit of OwnPtr here?  Don&apos;t we want to just leak it on exit?
&gt; 
&gt; I don&apos;t think we want to use that pattern anymore.  Also this patches the code in htmlAttributeEquivalents.

Why not?  Using a raw pointer should be a bit faster.  Using an OwnPtr doesn&apos;t provide any benefits here.

&gt; &gt;&gt; LayoutTests/editing/pasteboard/paste-with-redundant-style-expected.txt:12
&gt; &gt;&gt; +|   &quot;rocks&lt;#selection-caret&gt;&quot;
&gt; &gt; 
&gt; &gt; Why isn&apos;t this bold? It looks like it&apos;s bold before.
&gt; 
&gt; See the CSS rule &quot;em { text-decoration: underline; font-style: none; }&quot;.  It was never bolded.

I don&apos;t see that CSS rule.  I see &lt;em style=&quot;font-style: none; text-decoration: underline; font-weight: bold;&quot;&gt; and an em with no style information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448657</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-09 10:28:09 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; &gt;&gt; LayoutTests/editing/pasteboard/paste-with-redundant-style-expected.txt:12
&gt; &gt; &gt;&gt; +|   &quot;rocks&lt;#selection-caret&gt;&quot;
&gt; &gt; &gt; 
&gt; &gt; &gt; Why isn&apos;t this bold? It looks like it&apos;s bold before.
&gt; &gt; 
&gt; &gt; See the CSS rule &quot;em { text-decoration: underline; font-style: none; }&quot;.  It was never bolded.
&gt; 
&gt; I don&apos;t see that CSS rule.  I see &lt;em style=&quot;font-style: none; text-decoration: underline; font-weight: bold;&quot;&gt; and an em with no style information.

1	&lt;!DOCTYPE html&gt;
2	&lt;html&gt;
3	&lt;head&gt;
4	&lt;style&gt;
5	em { text-decoration: underline; font-style: none; }
6	&lt;/style&gt;
7	&lt;/head&gt;
8	&lt;body&gt;
9	&lt;div id=&quot;test&quot; contenteditable&gt;&lt;b style=&quot;font-style: italic;&quot;&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt;
10	&lt;script src=&quot;../../resources/dump-as-markup.js&quot;&gt;&lt;/script&gt;
11	&lt;script&gt;
12	
13	document.getElementById(&apos;test&apos;).focus();
14	document.execCommand(&apos;insertHTML&apos;, false,
15	    &apos;&lt;em style=&quot;font-style: none; text-decoration: underline; font-weight: bold;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;hello world&lt;/span&gt;&lt;/em&gt;&lt;br&gt;&apos;
16	    + &apos;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;WebKit&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&apos;
17	    + &apos;&lt;em&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;rocks&lt;/span&gt;&lt;/em&gt;&apos;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448658</commentid>
    <comment_count>11</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-09 10:36:18 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; &gt; &gt;&gt; LayoutTests/editing/pasteboard/paste-with-redundant-style-expected.txt:12
&gt; &gt; &gt; &gt;&gt; +|   &quot;rocks&lt;#selection-caret&gt;&quot;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Why isn&apos;t this bold? It looks like it&apos;s bold before.
&gt; &gt; &gt; 
&gt; &gt; &gt; See the CSS rule &quot;em { text-decoration: underline; font-style: none; }&quot;.  It was never bolded.
&gt; &gt; 
&gt; &gt; I don&apos;t see that CSS rule.  I see &lt;em style=&quot;font-style: none; text-decoration: underline; font-weight: bold;&quot;&gt; and an em with no style information.
&gt; 
&gt; 4    &lt;style&gt;
&gt; 5    em { text-decoration: underline; font-style: none; }
&gt; 6    &lt;/style&gt;

Ah, right.  So why does this nullify the bolding?  text-decoration and font-style don&apos;t impact font-weight do they?

When I load the test, everything is bolded in ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448663</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-09 10:45:17 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; &gt; See the CSS rule &quot;em { text-decoration: underline; font-style: none; }&quot;.  It was never bolded.
&gt; &gt; &gt; 
&gt; &gt; &gt; I don&apos;t see that CSS rule.  I see &lt;em style=&quot;font-style: none; text-decoration: underline; font-weight: bold;&quot;&gt; and an em with no style information.
&gt; &gt; 
&gt; &gt; 4    &lt;style&gt;
&gt; &gt; 5    em { text-decoration: underline; font-style: none; }
&gt; &gt; 6    &lt;/style&gt;
&gt; 
&gt; Ah, right.  So why does this nullify the bolding?  text-decoration and font-style don&apos;t impact font-weight do they?
&gt; 
&gt; When I load the test, everything is bolded in ToT.

Ah, you&apos;re right.  But new behavior is as expected.  Because we preserve all editing styles when we copy, inline elements at the insertion position should not affect the style of the pasted contents.  As such, the correct behavior here is not to bold the entire content.  The same behavior change is observed on editing/pasteboard/paste-after-inline-style-element.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448664</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-09 10:46:48 -0700</bug_when>
    <thetext>In fact, this is the bug &quot;&lt;rdar://problem/5371536&gt; Style rules that match pasted content can change it&apos;s appearance&quot; as documented in ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448667</commentid>
    <comment_count>14</comment_count>
      <attachid>103320</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-09 10:51:59 -0700</bug_when>
    <thetext>Comment on attachment 103320
Updated per review

(In reply to comment #12)

&gt; Ah, you&apos;re right.  But new behavior is as expected.  Because we preserve all editing styles when we copy, inline elements at the insertion position should not affect the style of the pasted contents.  As such, the correct behavior here is not to bold the entire content.  The same behavior change is observed on editing/pasteboard/paste-after-inline-style-element.html

Please document these changes in the ChangeLog (what changed and why the new output is correct).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448674</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-09 10:58:23 -0700</bug_when>
    <thetext>Thanks for the review!

(In reply to comment #14)
&gt; &gt; Ah, you&apos;re right.  But new behavior is as expected.  Because we preserve all editing styles when we copy, inline elements at the insertion position should not affect the style of the pasted contents.  As such, the correct behavior here is not to bold the entire content.  The same behavior change is observed on editing/pasteboard/paste-after-inline-style-element.html
&gt; 
&gt; Please document these changes in the ChangeLog (what changed and why the new output is correct).

Yeah.  Now that I think about it, it wasn&apos;t obvious at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448693</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-09 11:23:28 -0700</bug_when>
    <thetext>How about adding the following paragraph in LayoutTests/ChangeLog?

        Because WebKit serializes all editing inheritable styles on copy, we should be able to remove all inline styles
        at the insertion point on paste. And this patch removes inline style elements such as font and b more aggressively.
        WebKit erroneously bolded the last words in paste-after-inline-style-element.html and paste-with-redundant-style.html
        before this change set but this is no longer the case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448696</commentid>
    <comment_count>17</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-09 11:28:11 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; How about adding the following paragraph in LayoutTests/ChangeLog?
&gt; 
&gt;         Because WebKit serializes all editing inheritable styles on copy, we should be able to remove all inline styles
&gt;         at the insertion point on paste. And this patch removes inline style elements such as font and b more aggressively.
&gt;         WebKit erroneously bolded the last words in paste-after-inline-style-element.html and paste-with-redundant-style.html
&gt;         before this change set but this is no longer the case.

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448724</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-09 12:10:37 -0700</bug_when>
    <thetext>Committed r92695: &lt;http://trac.webkit.org/changeset/92695&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103172</attachid>
            <date>2011-08-06 22:57:17 -0700</date>
            <delta_ts>2011-08-08 13:41:31 -0700</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-65824-20110806225716.patch</filename>
            <type>text/plain</type>
            <size>35274</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNTY5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDgtMDYgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwZWF0ZWQgY29weSBhbmQgcGFz
dGUgcmVzdWx0IGluIG5lc3RlZCBmb250IGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTgyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vZGlmaWVkIGlzSW5saW5lTm9kZVdpdGhTdHlsZSB0
byBtYXRjaCBmb250IGVsZW1lbnQuIEFsc28gbWFkZSB0aGUgZnVuY3Rpb24gbWF0Y2ggc3RyaWN0
bHkgd2l0aCB0aG9zZSBub2RlcyB0aGF0CisgICAgICAgIEFwcGx5U3R5bGVDb21tYW5kIG1heSBh
ZGQgdG8gYXZvaWQgcmVtb3Zpbmcgbm9uLXN0eWxpbmcgZWxlbWVudHMuIEFuZCBmaXhlZCBhIHJl
Z3Jlc3Npb24gZnJvbSByODE4ODcgdGhhdAorICAgICAgICBSZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZCBtYXkgcmVtb3ZlIG5vbi1lZGl0aW5nIHN0eWxlcyBzdWNoIGFzIGJvcmRlciBpbiB0aGUgYXR0
ZW1wdCB0byBhdm9pZCBuZXN0aW5nIHN0eWxpbmcgZWxlbWVudHMuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBwYXZlcyB0aGUgd2F5IHRvIGZpeCB0aGUgYnVnIDM0NTY0LgorCisgICAgICAgIFRlc3Rz
OiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTIuaHRtbAorICAgICAg
ICAgICAgICAgZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0zLmh0bWwK
KyAgICAgICAgICAgICAgIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUt
NC5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRWxlbWVudEVxdWl2YWxlbnQ6Om1hdGNoZXMpOiBUYWtlcyBjb25zdCBFbGVt
ZW50KiBpbnN0ZWFkIG9mIEVsZW1lbnQqLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEF0dHJpYnV0
ZUVxdWl2YWxlbnQ6Om1hdGNoZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Omh0bWxFbGVt
ZW50RXF1aXZhbGVudHMpOiBFeHRyYWN0ZWQgZnJvbSBjb25mbGljdHNXaXRoSW1wbGljaXRTdHls
ZU9mRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6Y29uZmxpY3RzV2l0
aEltcGxpY2l0U3R5bGVPZkVsZW1lbnQpOiBDYWxscyBodG1sRWxlbWVudEVxdWl2YWxlbnRzLgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjplbGVtZW50SXNTdHlsZWRTcGFuT3JIVE1M
RXF1aXZhbGVudCk6IEFkZGVkOyBkZXRlcm1pbmVzIHdoZXRoZXIgYW4gZWxlbWVudCBpcyBzdHls
ZSBzcGFuCisgICAgICAgIG9yIGEgc3R5bGluZyBlbGVtZW50IChlLmcuIGIsIGksIGZvbnQpIHBv
c3NpYmx5IHdpdGggZWRpdGluZyBzdHlsZS4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHls
ZS5oOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aXNJbmxpbmVOb2RlV2l0aFN0eWxlKTogQ2FsbHMgRWRpdGluZ1N0eWxl
OjplbGVtZW50SXNTdHlsZWRTcGFuT3JIVE1MRXF1aXZhbGVudC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KTogTW9yZSBhZ2dyZXNzaXZlbHkgYXZv
aWQgbmVzdGluZyBzdHlsaW5nIGVsZW1lbnRzLgorICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRp
bmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGlnaGVzdEVuY2xvc2luZ05vZGVPZlR5cGUpOgor
ICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRpbmcuaDoKKwogMjAxMS0wOC0wNiAgTWFyayBSb3dl
ICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIG1lbW9yeSBsZWFrIGZvdW5kIHZp
YSBjb2RlIGluc3BlY3Rpb24uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdT
dHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5
bGUuY3BwCShyZXZpc2lvbiA5MjU1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGlu
Z1N0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTIgKzM4LDE1IEBACiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxGb250
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnRlcmNoYW5nZS5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQb3NpdGlvbi5oIgorI2luY2x1
ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUg
IlN0eWxlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgorI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTYsNyArOTksNyBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCB+SFRNTEVsZW1lbnRFcXVpdmFsZW50KCkgeyB9
Ci0gICAgdmlydHVhbCBib29sIG1hdGNoZXMoRWxlbWVudCogZWxlbWVudCkgY29uc3QgeyByZXR1
cm4gIW1fdGFnTmFtZSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKCptX3RhZ05hbWUpOyB9CisgICAg
dmlydHVhbCBib29sIG1hdGNoZXMoY29uc3QgRWxlbWVudCogZWxlbWVudCkgY29uc3QgeyByZXR1
cm4gIW1fdGFnTmFtZSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKCptX3RhZ05hbWUpOyB9CiAgICAg
dmlydHVhbCBib29sIGhhc0F0dHJpYnV0ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIHByb3BlcnR5RXhpc3RzSW5TdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBz
dHlsZSkgY29uc3QgeyByZXR1cm4gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUobV9wcm9wZXJ0
eUlEKTsgfQogICAgIHZpcnR1YWwgYm9vbCB2YWx1ZUlzUHJlc2VudEluU3R5bGUoRWxlbWVudCos
IENTU1N0eWxlRGVjbGFyYXRpb24qKSBjb25zdDsKQEAgLTE4NSw3ICsxODgsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnQocHJv
cGVydHlJRCwgYXR0ck5hbWUpKTsKICAgICB9CiAKLSAgICBib29sIG1hdGNoZXMoRWxlbWVudCog
ZWxlbSkgY29uc3QgeyByZXR1cm4gSFRNTEVsZW1lbnRFcXVpdmFsZW50OjptYXRjaGVzKGVsZW0p
ICYmIGVsZW0tPmhhc0F0dHJpYnV0ZShtX2F0dHJOYW1lKTsgfQorICAgIGJvb2wgbWF0Y2hlcyhj
b25zdCBFbGVtZW50KiBlbGVtKSBjb25zdCB7IHJldHVybiBIVE1MRWxlbWVudEVxdWl2YWxlbnQ6
Om1hdGNoZXMoZWxlbSkgJiYgZWxlbS0+aGFzQXR0cmlidXRlKG1fYXR0ck5hbWUpOyB9CiAgICAg
dmlydHVhbCBib29sIGhhc0F0dHJpYnV0ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2
aXJ0dWFsIGJvb2wgdmFsdWVJc1ByZXNlbnRJblN0eWxlKEVsZW1lbnQqLCBDU1NTdHlsZURlY2xh
cmF0aW9uKikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFkZFRvU3R5bGUoRWxlbWVudCosIEVk
aXRpbmdTdHlsZSopIGNvbnN0OwpAQCAtNjMyLDI2ICs2MzUsMzUgQEAgYm9vbCBFZGl0aW5nU3R5
bGU6OmNvbmZsaWN0c1dpdGhJbmxpbmVTdAogICAgIHJldHVybiBjb25mbGljdGluZ1Byb3BlcnRp
ZXMgJiYgIWNvbmZsaWN0aW5nUHJvcGVydGllcy0+aXNFbXB0eSgpOwogfQogCitzdGF0aWMgY29u
c3QgVmVjdG9yPE93blB0cjxIVE1MRWxlbWVudEVxdWl2YWxlbnQ+ID4mIGh0bWxFbGVtZW50RXF1
aXZhbGVudHMoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPE93blB0cjxIVE1M
RWxlbWVudEVxdWl2YWxlbnQ+ID4sIEhUTUxFbGVtZW50RXF1aXZhbGVudHMsICgpKTsKKworICAg
IGlmICghSFRNTEVsZW1lbnRFcXVpdmFsZW50cy5zaXplKCkpIHsKKyAgICAgICAgSFRNTEVsZW1l
bnRFcXVpdmFsZW50cy5hcHBlbmQoSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJv
cGVydHlGb250V2VpZ2h0LCBDU1NWYWx1ZUJvbGQsIEhUTUxOYW1lczo6YlRhZykpOworICAgICAg
ICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MRWxlbWVudEVxdWl2YWxlbnQ6OmNy
ZWF0ZShDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsIENTU1ZhbHVlQm9sZCwgSFRNTE5hbWVzOjpzdHJv
bmdUYWcpKTsKKyAgICAgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50cy5hcHBlbmQoSFRNTEVsZW1l
bnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCBDU1NWYWx1ZVN1
YiwgSFRNTE5hbWVzOjpzdWJUYWcpKTsKKyAgICAgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50cy5h
cHBlbmQoSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlWZXJ0aWNhbEFs
aWduLCBDU1NWYWx1ZVN1cGVyLCBIVE1MTmFtZXM6OnN1cFRhZykpOworICAgICAgICBIVE1MRWxl
bWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MRWxlbWVudEVxdWl2YWxlbnQ6OmNyZWF0ZShDU1NQ
cm9wZXJ0eUZvbnRTdHlsZSwgQ1NTVmFsdWVJdGFsaWMsIEhUTUxOYW1lczo6aVRhZykpOworICAg
ICAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MRWxlbWVudEVxdWl2YWxlbnQ6
OmNyZWF0ZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgQ1NTVmFsdWVJdGFsaWMsIEhUTUxOYW1lczo6
ZW1UYWcpKTsKKworICAgICAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MVGV4
dERlY29yYXRpb25FcXVpdmFsZW50OjpjcmVhdGUoQ1NTVmFsdWVVbmRlcmxpbmUsIEhUTUxOYW1l
czo6dVRhZykpOworICAgICAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MVGV4
dERlY29yYXRpb25FcXVpdmFsZW50OjpjcmVhdGUoQ1NTVmFsdWVMaW5lVGhyb3VnaCwgSFRNTE5h
bWVzOjpzVGFnKSk7CisgICAgICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudHMuYXBwZW5kKEhUTUxU
ZXh0RGVjb3JhdGlvbkVxdWl2YWxlbnQ6OmNyZWF0ZShDU1NWYWx1ZUxpbmVUaHJvdWdoLCBIVE1M
TmFtZXM6OnN0cmlrZVRhZykpOworICAgIH0KKworICAgIHJldHVybiBIVE1MRWxlbWVudEVxdWl2
YWxlbnRzOworfQorCisKIGJvb2wgRWRpdGluZ1N0eWxlOjpjb25mbGljdHNXaXRoSW1wbGljaXRT
dHlsZU9mRWxlbWVudChIVE1MRWxlbWVudCogZWxlbWVudCwgRWRpdGluZ1N0eWxlKiBleHRyYWN0
ZWRTdHlsZSwgU2hvdWxkRXh0cmFjdE1hdGNoaW5nU3R5bGUgc2hvdWxkRXh0cmFjdE1hdGNoaW5n
U3R5bGUpIGNvbnN0CiB7CiAgICAgaWYgKCFtX211dGFibGVTdHlsZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgc3RhdGljIGNvbnN0IEhUTUxFbGVtZW50RXF1aXZhbGVudCogSFRNTEVx
dWl2YWxlbnRzW10gPSB7Ci0gICAgICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6Y3JlYXRlKENT
U1Byb3BlcnR5Rm9udFdlaWdodCwgQ1NTVmFsdWVCb2xkLCBIVE1MTmFtZXM6OmJUYWcpLmxlYWtQ
dHIoKSwKLSAgICAgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlG
b250V2VpZ2h0LCBDU1NWYWx1ZUJvbGQsIEhUTUxOYW1lczo6c3Ryb25nVGFnKS5sZWFrUHRyKCks
Ci0gICAgICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6Y3JlYXRlKENTU1Byb3BlcnR5VmVydGlj
YWxBbGlnbiwgQ1NTVmFsdWVTdWIsIEhUTUxOYW1lczo6c3ViVGFnKS5sZWFrUHRyKCksCi0gICAg
ICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6Y3JlYXRlKENTU1Byb3BlcnR5VmVydGljYWxBbGln
biwgQ1NTVmFsdWVTdXBlciwgSFRNTE5hbWVzOjpzdXBUYWcpLmxlYWtQdHIoKSwKLSAgICAgICAg
SFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlGb250U3R5bGUsIENTU1Zh
bHVlSXRhbGljLCBIVE1MTmFtZXM6OmlUYWcpLmxlYWtQdHIoKSwKLSAgICAgICAgSFRNTEVsZW1l
bnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlGb250U3R5bGUsIENTU1ZhbHVlSXRhbGlj
LCBIVE1MTmFtZXM6OmVtVGFnKS5sZWFrUHRyKCksCi0KLSAgICAgICAgSFRNTFRleHREZWNvcmF0
aW9uRXF1aXZhbGVudDo6Y3JlYXRlKENTU1ZhbHVlVW5kZXJsaW5lLCBIVE1MTmFtZXM6OnVUYWcp
LmxlYWtQdHIoKSwKLSAgICAgICAgSFRNTFRleHREZWNvcmF0aW9uRXF1aXZhbGVudDo6Y3JlYXRl
KENTU1ZhbHVlTGluZVRocm91Z2gsIEhUTUxOYW1lczo6c1RhZykubGVha1B0cigpLAotICAgICAg
ICBIVE1MVGV4dERlY29yYXRpb25FcXVpdmFsZW50OjpjcmVhdGUoQ1NTVmFsdWVMaW5lVGhyb3Vn
aCwgSFRNTE5hbWVzOjpzdHJpa2VUYWcpLmxlYWtQdHIoKSwKLSAgICB9OwotCi0gICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKEhUTUxFcXVpdmFsZW50cyk7ICsraSkg
ewotICAgICAgICBjb25zdCBIVE1MRWxlbWVudEVxdWl2YWxlbnQqIGVxdWl2YWxlbnQgPSBIVE1M
RXF1aXZhbGVudHNbaV07CisgICAgY29uc3QgVmVjdG9yPE93blB0cjxIVE1MRWxlbWVudEVxdWl2
YWxlbnQ+ID4mIEhUTUxFbGVtZW50RXF1aXZhbGVudHMgPSBodG1sRWxlbWVudEVxdWl2YWxlbnRz
KCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLnNp
emUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IEhUTUxFbGVtZW50RXF1aXZhbGVudCogZXF1aXZh
bGVudCA9IEhUTUxFbGVtZW50RXF1aXZhbGVudHNbaV0uZ2V0KCk7CiAgICAgICAgIGlmIChlcXVp
dmFsZW50LT5tYXRjaGVzKGVsZW1lbnQpICYmIGVxdWl2YWxlbnQtPnByb3BlcnR5RXhpc3RzSW5T
dHlsZShtX211dGFibGVTdHlsZS5nZXQoKSkKICAgICAgICAgICAgICYmIChzaG91bGRFeHRyYWN0
TWF0Y2hpbmdTdHlsZSA9PSBFeHRyYWN0TWF0Y2hpbmdTdHlsZSB8fCAhZXF1aXZhbGVudC0+dmFs
dWVJc1ByZXNlbnRJblN0eWxlKGVsZW1lbnQsIG1fbXV0YWJsZVN0eWxlLmdldCgpKSkpIHsKICAg
ICAgICAgICAgIGlmIChleHRyYWN0ZWRTdHlsZSkKQEAgLTY2Nyw2ICs2NzksOCBAQCBzdGF0aWMg
Y29uc3QgVmVjdG9yPE93blB0cjxIVE1MQXR0cmlidXRlCiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChWZWN0b3I8T3duUHRyPEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50PiA+LCBIVE1MQXR0cmlidXRl
RXF1aXZhbGVudHMsICgpKTsKIAogICAgIGlmICghSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnRzLnNp
emUoKSkgeworICAgICAgICAvLyBlbGVtZW50SXNTdHlsZWRTcGFuT3JIVE1MRXF1aXZhbGVudCBk
ZXBlbmRzIG9uIHRoZSBmYWN0IGVhY2ggSFRNTEF0dHJpdXRlRXF1aXZhbGVudCBtYXRjaGVzIGV4
YWN0bHkgb25lIGF0dHJpYnV0ZQorICAgICAgICAvLyBvZiBleGFjdGx5IG9uZSBlbGVtZW50IGV4
Y2VwdCBkaXJBdHRyLgogICAgICAgICBIVE1MQXR0cmlidXRlRXF1aXZhbGVudHMuYXBwZW5kKEhU
TUxBdHRyaWJ1dGVFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlDb2xvciwgSFRNTE5hbWVz
Ojpmb250VGFnLCBIVE1MTmFtZXM6OmNvbG9yQXR0cikpOwogICAgICAgICBIVE1MQXR0cmlidXRl
RXF1aXZhbGVudHMuYXBwZW5kKEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJv
cGVydHlGb250RmFtaWx5LCBIVE1MTmFtZXM6OmZvbnRUYWcsIEhUTUxOYW1lczo6ZmFjZUF0dHIp
KTsKICAgICAgICAgSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnRzLmFwcGVuZChIVE1MRm9udFNpemVF
cXVpdmFsZW50OjpjcmVhdGUoKSk7CkBAIC03MzAsNiArNzQ0LDU5IEBAIGJvb2wgRWRpdGluZ1N0
eWxlOjpzdHlsZUlzUHJlc2VudEluQ29tcHUKICAgICByZXR1cm4gIW1fbXV0YWJsZVN0eWxlIHx8
ICFnZXRQcm9wZXJ0aWVzTm90SW4obV9tdXRhYmxlU3R5bGUuZ2V0KCksIGNvbXB1dGVkU3R5bGUo
bm9kZSkuZ2V0KCkpLT5sZW5ndGgoKTsKIH0KIAorYm9vbCBFZGl0aW5nU3R5bGU6OmVsZW1lbnRJ
c1N0eWxlZFNwYW5PckhUTUxFcXVpdmFsZW50KGNvbnN0IEhUTUxFbGVtZW50KiBlbGVtZW50KQor
eworICAgIGJvb2wgZWxlbWVudElzU3Bhbk9yRWxlbWVudEVxdWl2YWxlbnQgPSBmYWxzZTsKKyAg
ICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNwYW5UYWcpKQorICAgICAgICBl
bGVtZW50SXNTcGFuT3JFbGVtZW50RXF1aXZhbGVudCA9IHRydWU7CisgICAgZWxzZSB7CisgICAg
ICAgIGNvbnN0IFZlY3RvcjxPd25QdHI8SFRNTEVsZW1lbnRFcXVpdmFsZW50PiA+JiBIVE1MRWxl
bWVudEVxdWl2YWxlbnRzID0gaHRtbEVsZW1lbnRFcXVpdmFsZW50cygpOworICAgICAgICBzaXpl
X3QgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IEhUTUxFbGVtZW50RXF1aXZhbGVudHMuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChIVE1MRWxlbWVudEVxdWl2YWxlbnRzW2ldLT5t
YXRjaGVzKGVsZW1lbnQpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGVsZW1lbnRJc1NwYW5PckVsZW1lbnRFcXVpdmFsZW50ID0gaSA8IEhUTUxFbGVtZW50RXF1
aXZhbGVudHMuc2l6ZSgpOworICAgIH0KKworICAgIGNvbnN0IE5hbWVkTm9kZU1hcCogYXR0cmli
dXRlTWFwID0gZWxlbWVudC0+YXR0cmlidXRlTWFwKCk7CisgICAgaWYgKCFhdHRyaWJ1dGVNYXAg
fHwgYXR0cmlidXRlTWFwLT5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBlbGVtZW50SXNTcGFu
T3JFbGVtZW50RXF1aXZhbGVudDsgLy8gc3BhbiwgYiwgZXRjLi4uIHdpdGhvdXQgYW55IGF0dHJp
YnV0ZXMKKworICAgIHVuc2lnbmVkIG1hdGNoZWRBdHRyaWJ1dGVzID0gMDsKKyAgICBjb25zdCBW
ZWN0b3I8T3duUHRyPEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50PiA+JiBIVE1MQXR0cmlidXRlRXF1
aXZhbGVudHMgPSBodG1sQXR0cmlidXRlRXF1aXZhbGVudHMoKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50cy5zaXplKCk7ICsraSkgeworICAgICAg
ICBpZiAoSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnRzW2ldLT5tYXRjaGVzKGVsZW1lbnQpICYmIEhU
TUxBdHRyaWJ1dGVFcXVpdmFsZW50c1tpXS0+YXR0cmlidXRlTmFtZSgpICE9IEhUTUxOYW1lczo6
ZGlyQXR0cikKKyAgICAgICAgICAgIG1hdGNoZWRBdHRyaWJ1dGVzKys7CisgICAgfQorCisgICAg
aWYgKCFlbGVtZW50SXNTcGFuT3JFbGVtZW50RXF1aXZhbGVudCAmJiAhbWF0Y2hlZEF0dHJpYnV0
ZXMpCisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gZWxlbWVudCBpcyBub3QgYSBzcGFuLCBhIGh0
bWwgZWxlbWVudCBlcXVpdmFsZW50LCBvciBmb250IGVsZW1lbnQuCisgICAgCisgICAgaWYgKGVs
ZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0cikgPT0gQXBwbGVTdHlsZVNw
YW5DbGFzcykKKyAgICAgICAgbWF0Y2hlZEF0dHJpYnV0ZXMrKzsKKworICAgIGlmIChlbGVtZW50
LT5oYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIpKSB7CisgICAgICAgIGlmIChDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBlbGVtZW50LT5pbmxpbmVTdHlsZURlY2wo
KSkgeworICAgICAgICAgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvbnN0X2l0ZXJh
dG9yIGVuZCA9IHN0eWxlLT5lbmQoKTsKKyAgICAgICAgICAgIGZvciAoQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb246OmNvbnN0X2l0ZXJhdG9yIGl0ID0gc3R5bGUtPmJlZ2luKCk7IGl0ICE9IGVu
ZDsgKytpdCkgeworICAgICAgICAgICAgICAgIGJvb2wgbWF0Y2hlZCA9IGZhbHNlOworICAgICAg
ICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtRWRpdGluZ0luaGVyaXRhYmxlUHJv
cGVydGllczsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChlZGl0aW5nSW5oZXJpdGFi
bGVQcm9wZXJ0aWVzW2ldID09IGl0LT5pZCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbWF0
Y2hlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghbWF0
Y2hlZCAmJiBpdC0+aWQoKSAhPSBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcikKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIG1hdGNoZWRBdHRyaWJ1dGVzKys7CisgICAgfQorCisgICAgLy8gZm9udCB3aXRoIGNvbG9y
IGF0dHJpYnV0ZSwgc3BhbiB3aXRoIHN0eWxlIGF0dHJpYnV0ZSwgZXRjLi4uCisgICAgQVNTRVJU
KG1hdGNoZWRBdHRyaWJ1dGVzIDw9IGF0dHJpYnV0ZU1hcC0+bGVuZ3RoKCkpOworICAgIHJldHVy
biBtYXRjaGVkQXR0cmlidXRlcyA+PSBhdHRyaWJ1dGVNYXAtPmxlbmd0aCgpOworfQorCiB2b2lk
IEVkaXRpbmdTdHlsZTo6cHJlcGFyZVRvQXBwbHlBdChjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24s
IFNob3VsZFByZXNlcnZlV3JpdGluZ0RpcmVjdGlvbiBzaG91bGRQcmVzZXJ2ZVdyaXRpbmdEaXJl
Y3Rpb24pCiB7CiAgICAgaWYgKCFtX211dGFibGVTdHlsZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nU3R5bGUuaAkocmV2aXNpb24gOTI1NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNiArMTE3LDkgQEAg
cHVibGljOgogICAgIGJvb2wgZXh0cmFjdENvbmZsaWN0aW5nSW1wbGljaXRTdHlsZU9mQXR0cmli
dXRlcyhIVE1MRWxlbWVudCosIFNob3VsZFByZXNlcnZlV3JpdGluZ0RpcmVjdGlvbiwgRWRpdGlu
Z1N0eWxlKiBleHRyYWN0ZWRTdHlsZSwKICAgICAgICAgICAgIFZlY3RvcjxRdWFsaWZpZWROYW1l
PiYgY29uZmxpY3RpbmdBdHRyaWJ1dGVzLCBTaG91bGRFeHRyYWN0TWF0Y2hpbmdTdHlsZSkgY29u
c3Q7CiAgICAgYm9vbCBzdHlsZUlzUHJlc2VudEluQ29tcHV0ZWRTdHlsZU9mTm9kZShOb2RlKikg
Y29uc3Q7CisKKyAgICBzdGF0aWMgYm9vbCBlbGVtZW50SXNTdHlsZWRTcGFuT3JIVE1MRXF1aXZh
bGVudChjb25zdCBIVE1MRWxlbWVudCopOworCiAgICAgdm9pZCBwcmVwYXJlVG9BcHBseUF0KGNv
bnN0IFBvc2l0aW9uJiwgU2hvdWxkUHJlc2VydmVXcml0aW5nRGlyZWN0aW9uID0gRG9Ob3RQcmVz
ZXJ2ZVdyaXRpbmdEaXJlY3Rpb24pOwogICAgIHZvaWQgbWVyZ2VUeXBpbmdTdHlsZShEb2N1bWVu
dCopOwogICAgIHZvaWQgbWVyZ2VJbmxpbmVTdHlsZU9mRWxlbWVudChTdHlsZWRFbGVtZW50Kik7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmNwcAkocmV2aXNpb24gOTI1NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzYzLDI5ICs3NjMs
MjIgQEAgc3RhdGljIE5vZGUqIGVuY2xvc2luZ0lubGluZShOb2RlKiBub2RlKQogc3RhdGljIGJv
b2wgaXNJbmxpbmVOb2RlV2l0aFN0eWxlKGNvbnN0IE5vZGUqIG5vZGUpCiB7CiAgICAgLy8gV2Ug
ZG9uJ3Qgd2FudCB0byBza2lwIG92ZXIgYW55IGJsb2NrIGVsZW1lbnRzLgotICAgIGlmICghbm9k
ZS0+cmVuZGVyZXIoKSB8fCAhbm9kZS0+cmVuZGVyZXIoKS0+aXNJbmxpbmUoKSkKKyAgICBpZiAo
aXNCbG9jayhub2RlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFub2RlLT5p
c0hUTUxFbGVtZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIC8vIFdl
IGNhbiBza2lwIG92ZXIgZWxlbWVudHMgd2hvc2UgY2xhc3MgYXR0cmlidXRlIGlzCiAgICAgLy8g
b25lIG9mIG91ciBpbnRlcm5hbCBjbGFzc2VzLgogICAgIGNvbnN0IEhUTUxFbGVtZW50KiBlbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTEVsZW1lbnQqPihub2RlKTsKICAgICBBdG9taWNT
dHJpbmcgY2xhc3NBdHRyaWJ1dGVWYWx1ZSA9IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShjbGFzc0F0
dHIpOwotICAgIGlmIChjbGFzc0F0dHJpYnV0ZVZhbHVlID09IEFwcGxlU3R5bGVTcGFuQ2xhc3MK
LSAgICAgICAgfHwgY2xhc3NBdHRyaWJ1dGVWYWx1ZSA9PSBBcHBsZVRhYlNwYW5DbGFzcworICAg
IGlmIChjbGFzc0F0dHJpYnV0ZVZhbHVlID09IEFwcGxlVGFiU3BhbkNsYXNzCiAgICAgICAgIHx8
IGNsYXNzQXR0cmlidXRlVmFsdWUgPT0gQXBwbGVDb252ZXJ0ZWRTcGFjZQogICAgICAgICB8fCBj
bGFzc0F0dHJpYnV0ZVZhbHVlID09IEFwcGxlUGFzdGVBc1F1b3RhdGlvbikKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKLSAgICAvLyBXZSBjYW4gc2tpcCBpbmxpbmUgZWxlbWVudHMgdGhhdCBkb24n
dCBoYXZlIGF0dHJpYnV0ZXMgb3Igd2hvc2Ugb25seQotICAgIC8vIGF0dHJpYnV0ZSBpcyB0aGUg
c3R5bGUgYXR0cmlidXRlLgotICAgIGNvbnN0IE5hbWVkTm9kZU1hcCogYXR0cmlidXRlTWFwID0g
ZWxlbWVudC0+YXR0cmlidXRlTWFwKCk7Ci0gICAgaWYgKCFhdHRyaWJ1dGVNYXAgfHwgYXR0cmli
dXRlTWFwLT5pc0VtcHR5KCkgfHwgKGF0dHJpYnV0ZU1hcC0+bGVuZ3RoKCkgPT0gMSAmJiBlbGVt
ZW50LT5oYXNBdHRyaWJ1dGUoc3R5bGVBdHRyKSkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBFZGl0aW5nU3R5bGU6OmVsZW1lbnRJc1N0eWxl
ZFNwYW5PckhUTUxFcXVpdmFsZW50KGVsZW1lbnQpOwogfQogICAgIAogdm9pZCBSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCkBAIC05MzcsMTYgKzkzMCwxNiBAQCB2b2lkIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKICAgICAvLyBXZSBjYW4gc2tpcCB0aGlzIG9w
dGltaXphdGlvbiBmb3IgZnJhZ21lbnRzIG5vdCB3cmFwcGVkIGluIG9uZSBvZgogICAgIC8vIG91
ciBzdHlsZSBzcGFucyBhbmQgZm9yIHBvc2l0aW9ucyBpbnNpZGUgbGlzdCBpdGVtcwogICAgIC8v
IHNpbmNlIGluc2VydEFzTGlzdEl0ZW1zIGFscmVhZHkgZG9lcyB0aGUgcmlnaHQgdGhpbmcuCi0g
ICAgaWYgKCFtX21hdGNoU3R5bGUgJiYgIWVuY2xvc2luZ0xpc3QoaW5zZXJ0aW9uUG9zLmNvbnRh
aW5lck5vZGUoKSkgJiYgaXNTdHlsZVNwYW4oZnJhZ21lbnQuZmlyc3RDaGlsZCgpKSkgeworICAg
IGlmICghbV9tYXRjaFN0eWxlICYmICFlbmNsb3NpbmdMaXN0KGluc2VydGlvblBvcy5jb250YWlu
ZXJOb2RlKCkpKSB7CiAgICAgICAgIGlmIChpbnNlcnRpb25Qb3MuY29udGFpbmVyTm9kZSgpLT5p
c1RleHROb2RlKCkgJiYgaW5zZXJ0aW9uUG9zLm9mZnNldEluQ29udGFpbmVyTm9kZSgpICYmICFp
bnNlcnRpb25Qb3MuYXRMYXN0RWRpdGluZ1Bvc2l0aW9uRm9yTm9kZSgpKSB7Ci0gICAgICAgICAg
ICBzcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnQoaW5zZXJ0aW9uUG9zLmNvbnRhaW5lclRl
eHQoKSwgaW5zZXJ0aW9uUG9zLm9mZnNldEluQ29udGFpbmVyTm9kZSgpKTsKKyAgICAgICAgICAg
IHNwbGl0VGV4dE5vZGUoaW5zZXJ0aW9uUG9zLmNvbnRhaW5lclRleHQoKSwgaW5zZXJ0aW9uUG9z
Lm9mZnNldEluQ29udGFpbmVyTm9kZSgpKTsKICAgICAgICAgICAgIGluc2VydGlvblBvcyA9IGZp
cnN0UG9zaXRpb25Jbk5vZGUoaW5zZXJ0aW9uUG9zLmNvbnRhaW5lck5vZGUoKSk7CiAgICAgICAg
IH0KIAotICAgICAgICAvLyBGSVhNRTogaXNJbmxpbmVOb2RlV2l0aFN0eWxlIGRvZXMgbm90IGNo
ZWNrIGVkaXRhYmlsaXR5LgotICAgICAgICBpZiAoUmVmUHRyPE5vZGU+IG5vZGVUb1NwbGl0VG8g
PSBoaWdoZXN0RW5jbG9zaW5nTm9kZU9mVHlwZShpbnNlcnRpb25Qb3MsIGlzSW5saW5lTm9kZVdp
dGhTdHlsZSkpIHsKLSAgICAgICAgICAgIGlmIChpbnNlcnRpb25Qb3MuY29udGFpbmVyTm9kZSgp
ICE9IG5vZGVUb1NwbGl0VG8pIHsKLSAgICAgICAgICAgICAgICBub2RlVG9TcGxpdFRvID0gc3Bs
aXRUcmVlVG9Ob2RlKGluc2VydGlvblBvcy5hbmNob3JOb2RlKCksIG5vZGVUb1NwbGl0VG8uZ2V0
KCksIHRydWUpLmdldCgpOworICAgICAgICBpZiAoUmVmUHRyPE5vZGU+IG5vZGVUb1NwbGl0VG8g
PSBoaWdoZXN0RW5jbG9zaW5nTm9kZU9mVHlwZShpbnNlcnRpb25Qb3MsIGlzSW5saW5lTm9kZVdp
dGhTdHlsZSwgQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnksCisgICAgICAgICAgICBlbmNsb3Np
bmdCbG9jayhpbnNlcnRpb25Qb3MuY29udGFpbmVyTm9kZSgpKSkpIHsKKyAgICAgICAgICAgIGlm
IChpbnNlcnRpb25Qb3MuY29udGFpbmVyTm9kZSgpICE9IG5vZGVUb1NwbGl0VG8tPnBhcmVudE5v
ZGUoKSkgeworICAgICAgICAgICAgICAgIG5vZGVUb1NwbGl0VG8gPSBzcGxpdFRyZWVUb05vZGUo
aW5zZXJ0aW9uUG9zLmFuY2hvck5vZGUoKSwgbm9kZVRvU3BsaXRUby0+cGFyZW50Tm9kZSgpKS5n
ZXQoKTsKICAgICAgICAgICAgICAgICBpbnNlcnRpb25Qb3MgPSBwb3NpdGlvbkluUGFyZW50QmVm
b3JlTm9kZShub2RlVG9TcGxpdFRvLmdldCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHJldmlzaW9uIDkyNTU0
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTYwNywxMSArNjA3LDExIEBAIE5vZGUqIGVuY2xvc2luZ05vZGVPZlR5cGUoY29uc3Qg
UG9zaXRpb24KICAgICByZXR1cm4gMDsKIH0KIAotTm9kZSogaGlnaGVzdEVuY2xvc2luZ05vZGVP
ZlR5cGUoY29uc3QgUG9zaXRpb24mIHAsIGJvb2wgKCpub2RlSXNPZlR5cGUpKGNvbnN0IE5vZGUq
KSwgRWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpCitOb2RlKiBoaWdoZXN0RW5jbG9z
aW5nTm9kZU9mVHlwZShjb25zdCBQb3NpdGlvbiYgcCwgYm9vbCAoKm5vZGVJc09mVHlwZSkoY29u
c3QgTm9kZSopLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgcnVsZSwgTm9kZSogc3RheVdp
dGhpbikKIHsKICAgICBOb2RlKiBoaWdoZXN0ID0gMDsKICAgICBOb2RlKiByb290ID0gcnVsZSA9
PSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSA/IGhpZ2hlc3RFZGl0YWJsZVJvb3QocCkgOiAw
OwotICAgIGZvciAoTm9kZSogbiA9IHAuY29udGFpbmVyTm9kZSgpOyBuOyBuID0gbi0+cGFyZW50
Tm9kZSgpKSB7CisgICAgZm9yIChOb2RlKiBuID0gcC5jb250YWluZXJOb2RlKCk7IG4gJiYgbiAh
PSBzdGF5V2l0aGluOyBuID0gbi0+cGFyZW50Tm9kZSgpKSB7CiAgICAgICAgIGlmIChyb290ICYm
ICFuLT5yZW5kZXJlcklzRWRpdGFibGUoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICBpZiAobm9kZUlzT2ZUeXBlKG4pKQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1s
ZWRpdGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRp
bmcuaAkocmV2aXNpb24gOTI1NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0
aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDggQEAgY2xhc3MgVmlzaWJsZVNlbGVj
dGlvbjsKIAogTm9kZSogaGlnaGVzdEFuY2VzdG9yKE5vZGUqKTsKIE5vZGUqIGhpZ2hlc3RFZGl0
YWJsZVJvb3QoY29uc3QgUG9zaXRpb24mKTsKLU5vZGUqIGhpZ2hlc3RFbmNsb3NpbmdOb2RlT2ZU
eXBlKGNvbnN0IFBvc2l0aW9uJiwgYm9vbCAoKm5vZGVJc09mVHlwZSkoY29uc3QgTm9kZSopLCBF
ZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7
CitOb2RlKiBoaWdoZXN0RW5jbG9zaW5nTm9kZU9mVHlwZShjb25zdCBQb3NpdGlvbiYsIGJvb2wg
KCpub2RlSXNPZlR5cGUpKGNvbnN0IE5vZGUqKSwKKyAgICBFZGl0aW5nQm91bmRhcnlDcm9zc2lu
Z1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSwgTm9kZSogc3RheVdpdGhpbiA9IDAp
OwogTm9kZSogbG93ZXN0RWRpdGFibGVBbmNlc3RvcihOb2RlKik7ICAgCiAKIE5vZGUqIGVuY2xv
c2luZ0Jsb2NrKE5vZGUqLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgPSBDYW5ub3RDcm9z
c0VkaXRpbmdCb3VuZGFyeSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MjU2OSkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDExLTA4LTA2
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlcGVhdGVkIGNv
cHkgYW5kIHBhc3RlIHJlc3VsdCBpbiBuZXN0ZWQgc3R5bGUgZWxlbWVudHMgc3VjaCBhcyBiIGFu
ZCBmb250CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NTgyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZGVkIHRlc3RzIHRvIGVuc3VyZSBXZWJLaXQgZG9lcyBub3QgbmVzdCBzdHlsaW5nIGVsZW1lbnRz
IGFuZCBkb2VzIG5vdCByZW1vdmUgZWxlbWVudHMgd2l0aCBub24tZWRpdGluZyBzdHlsZXMuCisg
ICAgICAgIEFsc28gcmViYXNlbGluZWQgc2V2ZXJhbCB0ZXN0cy4KKworICAgICAgICAqIGVkaXRp
bmcvcGFzdGVib2FyZC81MDY1NjA1LWV4cGVjdGVkLnR4dDogTG9zdCB3cmFwcGluZyBmb250IGFu
ZCBzcGFuIGVsZW1lbnRzLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9pbnRlcmNoYW5n
ZS1uZXdsaW5lLTEtZXhwZWN0ZWQudHh0OiBTcGFuIGlzIHNwbGl0IGJ1dCB2aXN1YWxseSBpZGVu
dGljYWwuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL21lcmdlLWVuZC0xLWV4cGVjdGVk
LnR4dDogRGl0dG8uCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL21lcmdlLWVuZC0yLWV4
cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWFm
dGVyLWlubGluZS1zdHlsZS1lbGVtZW50LWV4cGVjdGVkLnR4dDogTm8gbG9uZ2VyIGJvbGRzICJs
aW5lIDIiIGVycm9uZW91c2x5LgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10
ZXh0LTAxMS1leHBlY3RlZC50eHQ6IExvc3Qgd3JhcHBpbmcgZm9udCwgYiwgYW5kIHNwYW4gZWxl
bWVudHMuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHls
ZS0yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bh
c3RlLXRleHQtd2l0aC1zdHlsZS0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvcGFz
dGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUtMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUtMy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxl
LTQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFz
dGUtdGV4dC13aXRoLXN0eWxlLTQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0td2luL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LTAxMS1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisKIDIwMTEtMDgtMDYgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkLzUwNjU2MDUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC81MDY1NjA1LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gOTI1NTQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvNTA2NTYwNS1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAgRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZVNlbGVjdAogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiBzaG91
bGRJbnNlcnROb2RlOiNkb2N1bWVudC1mcmFnbWVudCByZXBsYWNpbmdET01SYW5nZTpyYW5nZSBm
cm9tIDAgb2YgRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMCBvZiBESVYg
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBnaXZlbkFjdGlvbjpXZWJWaWV3SW5zZXJ0
QWN0aW9uUGFzdGVkCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
OldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6
IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJv
bSAyNCBvZiAjdGV4dCA+IEZPTlQgPiBESVYgPiBTUEFOID4gRk9OVCA+IERJViA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDI0IG9mICN0ZXh0ID4gRk9OVCA+IERJViA+IFNQQU4g
PiBGT05UID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNT
ZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcg
REVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6
cmFuZ2UgZnJvbSAyNCBvZiAjdGV4dCA+IEZPTlQgPiBESVYgPiBESVYgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0byAyNCBvZiAjdGV4dCA+IEZPTlQgPiBESVYgPiBESVYgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93
bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmlj
YXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgpAQCAtNDAsMTUgKzQwLDkgQEAgVGhpcyB0
ZXN0cyBmb3IgYSBidWcgd2hlcmUgdGV4dCBjb3BpZWQgdwogfCAgIDxmb250PgogfCAgICAgY2xh
c3M9IkFwcGxlLXN0eWxlLXNwYW4iCiB8ICAgICBjb2xvcj0iI2ZmMDAwMCIKLXwgICAgIDxzcGFu
PgorfCAgICAgIlRoaXMgdGV4dCBzaG91bGQgYmUgcmVkLiIKK3wgICA8ZGl2PgorfCAgICAgPGZv
bnQ+CiB8ICAgICAgIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIgotfCAgICAgICBzdHlsZT0iY29s
b3I6IHJnYigwLCAwLCAwKTsgIgotfCAgICAgICA8Zm9udD4KLXwgICAgICAgICBjbGFzcz0iQXBw
bGUtc3R5bGUtc3BhbiIKLXwgICAgICAgICBjb2xvcj0iI2ZmMDAwMCIKLXwgICAgICAgICAiVGhp
cyB0ZXh0IHNob3VsZCBiZSByZWQuIgotfCAgICAgICA8ZGl2PgotfCAgICAgICAgIDxmb250Pgot
fCAgICAgICAgICAgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iCi18ICAgICAgICAgICBjb2xvcj0i
I2ZmMDAwMCIKLXwgICAgICAgICAgICJUaGlzIHRleHQgc2hvdWxkIGJlIHJlZC48I3NlbGVjdGlv
bi1jYXJldD4iCit8ICAgICAgIGNvbG9yPSIjZmYwMDAwIgorfCAgICAgICAiVGhpcyB0ZXh0IHNo
b3VsZCBiZSByZWQuPCNzZWxlY3Rpb24tY2FyZXQ+IgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL2ludGVyY2hhbmdlLW5ld2xpbmUtMS1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ludGVyY2hhbmdlLW5ld2xpbmUt
MS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDkyNTU0KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL2ludGVyY2hhbmdlLW5ld2xpbmUtMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEwLDggKzEwLDggQEAgRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEVuZEVkaXRp
bmc6VwogVGhlcmUgaXMgYW4gaW50ZXJjaGFuZ2UgbmV3bGluZSBhdCB0aGUgZW5kIG9mIHRoZSBp
bmNvbWluZyBmcmFnbWVudC4gImJhciIgYW5kICJ4IiBzaG91bGQgYmUgaW4gc2VwYXJhdGUgcGFy
YWdyYXBocwogVGhlIHBhcmFncmFwaCAiYmFyIiBpcyBpbnNpZGUgYSBkaXYgd3JhcHBlZCBpbiBh
IHNwYW4sIGFuZCB0aGUgb2xkIHBhc3RlIGNvZGUgdGhhdCBoYW5kbGVkIGludGVyY2hhbmdlIG5l
d2xpbmVzIGRpZCBub3QgaGFuZGxlIHRoaXMgY2FzZS4KIHwgIngiCit8ICJmb28iCiB8IDxzcGFu
PgotfCAgICJmb28iCiB8ICAgPGRpdj4KIHwgICAgICJiYXIiCiB8ICI8I3NlbGVjdGlvbi1jYXJl
dD54IgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL21lcmdlLWVuZC0xLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQv
bWVyZ2UtZW5kLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5MjU1NCkKKysrIExheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9tZXJnZS1lbmQtMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTIsNyArMiw5IEBAIFRoaXMgdGVzdHMgdGhlIGxhc3QgcGFyYWdyYXBoIGluIHRoZSBw
YXMKICJiYXoiIGFuZCAib28iIHNob3VsZCBiZSBpbiB0aGUgc2FtZSBwYXJhZ3JhcGggYmVsb3cu
CiB8IDxzcGFuPgogfCAgICJmIgotfCAgICJiYXIiCit8ICJiYXIiCit8IDxzcGFuPgogfCAgIDxi
cj4KLXwgICAiYmF6PCNzZWxlY3Rpb24tY2FyZXQ+IgorfCAiYmF6PCNzZWxlY3Rpb24tY2FyZXQ+
IgorfCA8c3Bhbj4KIHwgICAib28iCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvbWVyZ2UtZW5kLTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9tZXJnZS1lbmQtMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDkyNTU0
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL21lcmdlLWVuZC0yLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAgRURJVElORyBERUxFR0FURTogc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRETwogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FU
RTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDMgb2YgI3RleHQgPiBT
UEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMyBvZiAjdGV4dCA+IFNQQU4g
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMyBv
ZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAzIG9mICN0
ZXh0ID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2Vs
ZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERF
TEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMyBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDMgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMyBvZiAjdGV4dCA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDMgb2YgI3RleHQgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVh
bSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24K
IEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgpAQCAtMTMsOCArMTMsMTAgQEAgVGhpcyB0ZXN0cyB0
aGUgbGFzdCBwYXJhZ3JhcGggaW4gdGhlIHBhcwogImJheiIgYW5kICJvb2JhciIgc2hvdWxkIGJl
IGluIHRoZSBzYW1lIHBhcmFncmFwaCBiZWxvdwogfCA8c3Bhbj4KIHwgICAiZiIKLXwgICAiYmFy
IgorfCAiYmFyIgorfCA8c3Bhbj4KIHwgICA8YnI+Ci18ICAgImJhejwjc2VsZWN0aW9uLWNhcmV0
PiIKK3wgImJhejwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgPHNwYW4+CiB8ICAgIm9vIgogfCAiYmFy
IgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWFmdGVyLWlubGlu
ZS1zdHlsZS1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYWZ0ZXItaW5saW5lLXN0eWxlLWVsZW1lbnQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiA5MjU1NCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9wYXN0ZS1hZnRlci1pbmxpbmUtc3R5bGUtZWxlbWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTQsNiArNCw3IEBAIFRoaXMgdGVzdCBleGhpYml0cyBhIGJ1Zy4gVGhlIGluc2Vy
dGVkIGMKIHwgICB0eXBlPSJjaXRlIgogfCAgIDxiPgogfCAgICAgImxpbmUgMcKgIgotfCAgICAg
ImxpbmUgMjwjc2VsZWN0aW9uLWNhcmV0PiIKLXwgICAgICLCoCIKK3wgICAibGluZSAyPCNzZWxl
Y3Rpb24tY2FyZXQ+IgorfCAgICLCoCIKK3wgICA8Yj4KIHwgICAgIDxicj4KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LTAxMS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtMDEx
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTI1NTQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvcGFzdGUtdGV4dC0wMTEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02
LDcgKzYsNyBAQCBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0CiBFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRp
b24KIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZEluc2VydE5vZGU6I2RvY3VtZW50LWZyYWdtZW50
IHJlcGxhY2luZ0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiBQID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG8gMCBvZiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgZ2l2ZW5BY3Rpb246V2Vi
Vmlld0luc2VydEFjdGlvblBhc3RlZAogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5H
IERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdl
OnJhbmdlIGZyb20gNSBvZiAjdGV4dCA+IEIgPiBGT05UID4gUCA+IFNQQU4gPiBCID4gRk9OVCA+
IFAgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0ID4gQiA+IEZPTlQgPiBQ
ID4gU1BBTiA+IEIgPiBGT05UID4gUCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5
Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElU
SU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJh
bmdlOnJhbmdlIGZyb20gNSBvZiAjdGV4dCA+IEIgPiBGT05UID4gUCA+IFAgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0ID4gQiA+IEZPTlQgPiBQID4gUCA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0
aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCkBAIC0yNywyMiArMjcsMTYgQEAgVGhlIGNvbnRlbnQgd2Fz
IGluc2VydGVkIGF0IHRoZSBzdGFydCBvZgogfCAgICAgPGI+CiB8ICAgICAgICJ0aGVyZSIKIHwg
PHA+Ci18ICAgPGZvbnQ+Ci18ICAgICBmYWNlPSJNb25hY28iCi18ICAgICA8Yj4KLXwgICAgICAg
PHNwYW4+Ci18ICAgICAgICAgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iCi18ICAgICAgICAgc3R5
bGU9ImZvbnQtZmFtaWx5OiBUaW1lczsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgIgotfCAgICAgICAg
IDxwPgotfCAgICAgICAgICAgPGZvbnQ+Ci18ICAgICAgICAgICAgIGZhY2U9Ik1vbmFjbyIKLXwg
ICAgICAgICAgICAgPGI+Ci18ICAgICAgICAgICAgICAgImhlbGxvIgotfCAgICAgICAgIDxwPgot
fCAgICAgICAgICAgPGZvbnQ+Ci18ICAgICAgICAgICAgIGZhY2U9Ik1vbmFjbyIKLXwgICAgICAg
ICAgICAgPGI+Ci18ICAgICAgICAgICAgICAgInRoZXJlPCNzZWxlY3Rpb24tY2FyZXQ+IgorfCAg
IDxwPgorfCAgICAgPGZvbnQ+Cit8ICAgICAgIGZhY2U9Ik1vbmFjbyIKK3wgICAgICAgPGI+Cit8
ICAgICAgICAgImhlbGxvIgorfCAgIDxwPgorfCAgICAgPGZvbnQ+Cit8ICAgICAgIGZhY2U9Ik1v
bmFjbyIKK3wgICAgICAgPGI+Cit8ICAgICAgICAgInRoZXJlPCNzZWxlY3Rpb24tY2FyZXQ+Igog
fCAiCiAKIApJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQt
d2l0aC1zdHlsZS0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTItZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0
aC1zdHlsZS0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBAQAorVGhp
cyB0ZXN0cyBjb3B5aW5nIGFuZCBwYXN0aW5nIHRleHQgZG9lcyBub3QgcmVzdWx0IGluIG5lc3Rl
ZCBzdHlsZSBlbGVtZW50cyBzdWNoIGFzIGIsIGVtLCBhbmQgZm9udC4KK1RvIG1hbnVhbGx5IHRl
c3QsIGNvcHkgYW5kIHBhc3RlICJoZWxsbyB3b3JsZCIgYmVsb3cuIFdlYktpdCBzaG91bGQgbm90
IG5lc3QgYiwgaSwgdSwgYW5kIGZvbnQuCisKK0JlZm9yZSBjb3B5LXBhc3RlOgorfCA8Yj4KK3wg
ICA8aT4KK3wgICAgIDx1PgorfCAgICAgICA8Zm9udD4KK3wgICAgICAgICBjb2xvcj0icmVkIgor
fCAgICAgICAgICI8I3NlbGVjdGlvbi1jYXJldD5oZWxsbyB3b3JsZCIKKworQWZ0ZXIgY29weS1w
YXN0ZToKK3wgPGI+Cit8ICAgPGk+Cit8ICAgICA8dT4KK3wgICAgICAgPGZvbnQ+Cit8ICAgICAg
ICAgY29sb3I9InJlZCIKK3wgICAgICAgICAiaGVsbG8gd29ybGQ8I3NlbGVjdGlvbi1jYXJldD4i
Cit8IDxmb250PgorfCAgIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIgorfCAgIGNvbG9yPSIjZmYw
MDAwIgorfCAgIDxiPgorfCAgICAgPGk+Cit8ICAgICAgIDx1PgorfCAgICAgICAgIDxicj4KSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUt
Mi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0
ZS10ZXh0LXdpdGgtc3R5bGUtMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0yLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+VGhpcyB0ZXN0cyBjb3B5aW5nIGFuZCBwYXN0aW5nIHRleHQgZG9lcyBu
b3QgcmVzdWx0IGluIG5lc3RlZCBzdHlsZSBlbGVtZW50cyBzdWNoIGFzIGIsIGVtLCBhbmQgZm9u
dC4KK1RvIG1hbnVhbGx5IHRlc3QsIGNvcHkgYW5kIHBhc3RlICJoZWxsbyB3b3JsZCIgYmVsb3cu
IFdlYktpdCBzaG91bGQgbm90IG5lc3QgYiwgaSwgdSwgYW5kIGZvbnQuPC9wPgorPGRpdiBpZD0i
dGVzdCIgY29udGVudGVkaXRhYmxlPjxiPjxpPjx1Pjxmb250IGNvbG9yPSJyZWQiPmhlbGxvIHdv
cmxkPC9mb250PjwvdT48L2k+PC9iPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9kdW1wLWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworCitNYXJrdXAuZGVzY3JpcHRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rlc2NyaXB0
aW9uJykudGV4dENvbnRlbnQpOworCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpLmZv
Y3VzKCk7CisKK01hcmt1cC5kdW1wKCd0ZXN0JywgJ0JlZm9yZSBjb3B5LXBhc3RlJyk7Citkb2N1
bWVudC5leGVjQ29tbWFuZCgnU2VsZWN0QWxsJywgZmFsc2UsIG51bGwpOworZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoJ0NvcHknLCBmYWxzZSwgbnVsbCk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFz
dGUnLCBmYWxzZSwgbnVsbCk7CitNYXJrdXAuZHVtcCgndGVzdCcsICdBZnRlciBjb3B5LXBhc3Rl
Jyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0zLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRo
LXN0eWxlLTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0zLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxNCBAQAorVGhpcyB0ZXN0cyBjb3B5aW5nIGFuZCBwYXN0aW5nIHRl
eHQgZG9lcyBub3QgcmVzdWx0IGluIG5lc3RlZCBzdHlsZSBlbGVtZW50cyBzdWNoIGFzIGIsIGVt
LCBhbmQgZm9udC4KK1RvIG1hbnVhbGx5IHRlc3QsIGNvcHkgImhlbGxvIHdvcmxkIiBiZWxvdyBh
bmQgcGFzdGUgaXQgaW4gdGhlIGJveCBiZWxvdy4gV2ViS2l0IHNob3VsZCBub3QgbmVzdCBiLCBp
LCB1LCBhbmQgZm9udC4KKworQmVmb3JlIGNvcHk6Cit8IDxpPgorfCAgICJoZWxsbyIKKworQWZ0
ZXIgcGFzdGU6Cit8IDxpPgorfCAgICJoZWxsbzwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgPGZvbnQ+
Cit8ICAgc2l6ZT0iNSIKK3wgICA8dT4KK3wgICAgIDxicj4KSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUtMy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUt
My5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bh
c3RlLXRleHQtd2l0aC1zdHlsZS0zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjggQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+VGhp
cyB0ZXN0cyBjb3B5aW5nIGFuZCBwYXN0aW5nIHRleHQgZG9lcyBub3QgcmVzdWx0IGluIG5lc3Rl
ZCBzdHlsZSBlbGVtZW50cyBzdWNoIGFzIGIsIGVtLCBhbmQgZm9udC4KK1RvIG1hbnVhbGx5IHRl
c3QsIGNvcHkgImhlbGxvIHdvcmxkIiBiZWxvdyBhbmQgcGFzdGUgaXQgaW4gdGhlIGJveCBiZWxv
dy4gV2ViS2l0IHNob3VsZCBub3QgbmVzdCBiLCBpLCB1LCBhbmQgZm9udC48L3A+Cis8ZGl2IGlk
PSJzb3VyY2UiIGNvbnRlbnRlZGl0YWJsZT48aT5oZWxsbzwvaT48L2Rpdj4KKzxkaXYgaWQ9ImRl
c3RpbmF0aW9uIiBzdHlsZT0iYm9yZGVyOiBzb2xpZCAxcHggYmxvY2s7IiBjb250ZW50ZWRpdGFi
bGU+PGZvbnQgc2l6ZT01Pjx1Pjxicj48L3U+PC9mb250PjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworCitNYXJrdXAuZGVzY3JpcHRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2Rlc2NyaXB0aW9uJykudGV4dENvbnRlbnQpOworCitNYXJrdXAuZHVtcCgnc291cmNlJywg
J0JlZm9yZSBjb3B5Jyk7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzb3VyY2UnKS5mb2N1
cygpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1NlbGVjdEFsbCcsIGZhbHNlLCBudWxsKTsKK2Rv
Y3VtZW50LmV4ZWNDb21tYW5kKCdDb3B5JywgZmFsc2UsIG51bGwpOworCitkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZGVzdGluYXRpb24nKS5mb2N1cygpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQo
J1Bhc3RlJywgZmFsc2UsIG51bGwpOworCitNYXJrdXAuZHVtcCgnZGVzdGluYXRpb24nLCAnQWZ0
ZXIgcGFzdGUnKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10
ZXh0LXdpdGgtc3R5bGUtNC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitUaGlzIHRlc3RzIGNvcHlpbmcgYW5kIHBh
c3RpbmcgdGV4dCBkb2VzIG5vdCByZW1vdmUgbm9uLWVkaXRpbmcgc3R5bGUgaW4gdGhlIGRlc3Rp
bmF0aW9uLgorVG8gbWFudWFsbHkgdGVzdCwgY29weSAiaGVsbG8gd29ybGQiIGJlbG93IGFuZCBw
YXN0ZSBpdCBpbiB0aGUgYm94IGJlbG93LiBUaGUgYmx1ZSBib3JkZXIgc2hvdWxkIHN0YXkgYWZ0
ZXIgdGhlIHBhc3RlLgorCitCZWZvcmUgY29weToKK3wgPGI+Cit8ICAgc3R5bGU9ImJvcmRlcjog
c29saWQgNXB4IGJsdWU7cGFkZGluZzogNXB4OyIKK3wgICA8YnI+CisKK0FmdGVyIHBhc3RlOgor
fCA8Yj4KK3wgICBzdHlsZT0iYm9yZGVyOiBzb2xpZCA1cHggYmx1ZTtwYWRkaW5nOiA1cHg7Igor
fCAgIDxzcGFuPgorfCAgICAgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iCit8ICAgICBzdHlsZT0i
Zm9udC13ZWlnaHQ6IG5vcm1hbDsgIgorfCAgICAgPGk+Cit8ICAgICAgICJoZWxsbzwjc2VsZWN0
aW9uLWNhcmV0PiIKK3wgICA8YnI+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTQuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgt
c3R5bGUtNC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPlRoaXMgdGVzdHMgY29weWlu
ZyBhbmQgcGFzdGluZyB0ZXh0IGRvZXMgbm90IHJlbW92ZSBub24tZWRpdGluZyBzdHlsZSBpbiB0
aGUgZGVzdGluYXRpb24uCitUbyBtYW51YWxseSB0ZXN0LCBjb3B5ICJoZWxsbyB3b3JsZCIgYmVs
b3cgYW5kIHBhc3RlIGl0IGluIHRoZSBib3ggYmVsb3cuIFRoZSBibHVlIGJvcmRlciBzaG91bGQg
c3RheSBhZnRlciB0aGUgcGFzdGUuPC9wPgorPGRpdiBpZD0ic291cmNlIiBjb250ZW50ZWRpdGFi
bGU+PGk+aGVsbG88L2k+PC9kaXY+Cis8ZGl2IGlkPSJkZXN0aW5hdGlvbiIgc3R5bGU9InBhZGRp
bmc6MjBweDsiIGNvbnRlbnRlZGl0YWJsZT48YiBzdHlsZT0iYm9yZGVyOiBzb2xpZCA1cHggYmx1
ZTtwYWRkaW5nOiA1cHg7Ij48YnI+PC9iPjwvZm9udD48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKworTWFya3VwLmRlc2NyaXB0aW9uKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdkZXNjcmlwdGlvbicpLnRleHRDb250ZW50KTsKKworTWFya3VwLmR1bXAoJ2Rlc3RpbmF0aW9u
JywgJ0JlZm9yZSBjb3B5Jyk7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzb3VyY2UnKS5m
b2N1cygpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1NlbGVjdEFsbCcsIGZhbHNlLCBudWxsKTsK
K2RvY3VtZW50LmV4ZWNDb21tYW5kKCdDb3B5JywgZmFsc2UsIG51bGwpOworCitkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZGVzdGluYXRpb24nKS5mb2N1cygpOworZG9jdW1lbnQuZXhlY0NvbW1h
bmQoJ1Bhc3RlJywgZmFsc2UsIG51bGwpOworCitNYXJrdXAuZHVtcCgnZGVzdGluYXRpb24nLCAn
QWZ0ZXIgcGFzdGUnKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRl
eHQtMDExLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtMDExLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gOTI1NTQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
ZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtMDExLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSw0OSArMCwwIEBACi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxl
Y3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gMCBvZiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9t
IDAgb2YgI3RleHQgPiBCID4gRk9OVCA+IFAgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1
IG9mICN0ZXh0ID4gQiA+IEZPTlQgPiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5p
dHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKLUVE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5H
IERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNSBvZiAj
dGV4dCA+IEIgPiBGT05UID4gUCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3Rl
eHQgPiBCID4gRk9OVCA+IFAgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJh
bmdlIGZyb20gMCBvZiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMCBvZiBQID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJl
YW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKLUVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9u
Ci1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRJbnNlcnROb2RlOiNkb2N1bWVudC1mcmFnbWVudCBy
ZXBsYWNpbmdET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgUCA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDAgb2YgUCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGdpdmVuQWN0aW9uOldlYlZp
ZXdJbnNlcnRBY3Rpb25QYXN0ZWQKLUVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBE
RUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpy
YW5nZSBmcm9tIDUgb2YgI3RleHQgPiBCID4gRk9OVCA+IFAgPiBTUEFOID4gQiA+IEZPTlQgPiBQ
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IEIgPiBGT05UID4gUCA+
IFNQQU4gPiBCID4gRk9OVCA+IFAgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpO
U1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQotRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldl
YlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotVGhl
cmUgd2FzIGEgYnVnIHdoZW4gcGFzdGluZyBhdCB0aGUgZW5kIG9mIHRoZSBibG9jay4KLVRoZSBj
b250ZW50IHdhcyBpbnNlcnRlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIGJsb2NrIGluc3RlYWQgb2Yg
dGhlIGVuZC4gVGhpcyB0ZXN0cyB0aGUgaW5zZXJ0LWF0LWVuZCBjYXNlLgotfCAiCi0iCi18IDxw
PgotfCAgIDxmb250PgotfCAgICAgZmFjZT0iTW9uYWNvIgotfCAgICAgPGI+Ci18ICAgICAgICJo
ZWxsbyIKLXwgIgotIgotfCA8cD4KLXwgICA8Zm9udD4KLXwgICAgIGZhY2U9Ik1vbmFjbyIKLXwg
ICAgIDxiPgotfCAgICAgICAidGhlcmUiCi18IDxwPgotfCAgIDxmb250PgotfCAgICAgZmFjZT0i
TW9uYWNvIgotfCAgICAgPGI+Ci18ICAgICAgIDxzcGFuPgotfCAgICAgICAgIGNsYXNzPSJBcHBs
ZS1zdHlsZS1zcGFuIgotfCAgICAgICAgIHN0eWxlPSJmb250LWZhbWlseTogJ3RpbWVzIG5ldyBy
b21hbic7IGZvbnQtd2VpZ2h0OiBub3JtYWw7ICIKLXwgICAgICAgICA8cD4KLXwgICAgICAgICAg
IDxmb250PgotfCAgICAgICAgICAgICBmYWNlPSJNb25hY28iCi18ICAgICAgICAgICAgIDxiPgot
fCAgICAgICAgICAgICAgICJoZWxsbyIKLXwgICAgICAgICA8cD4KLXwgICAgICAgICAgIDxmb250
PgotfCAgICAgICAgICAgICBmYWNlPSJNb25hY28iCi18ICAgICAgICAgICAgIDxiPgotfCAgICAg
ICAgICAgICAgICJ0aGVyZTwjc2VsZWN0aW9uLWNhcmV0PiIKLXwgIgotCi0KLSIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103288</attachid>
            <date>2011-08-08 13:41:35 -0700</date>
            <delta_ts>2011-08-08 14:50:50 -0700</delta_ts>
            <desc>Updated rebaselines after r92620</desc>
            <filename>bug-65824-20110808134133.patch</filename>
            <type>text/plain</type>
            <size>33536</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNjI3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDgtMDggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwZWF0ZWQgY29weSBhbmQgcGFz
dGUgcmVzdWx0IGluIG5lc3RlZCBmb250IGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTgyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vZGlmaWVkIGlzSW5saW5lTm9kZVdpdGhTdHlsZSB0
byBtYXRjaCBmb250IGVsZW1lbnQuIEFsc28gbWFkZSB0aGUgZnVuY3Rpb24gbWF0Y2ggc3RyaWN0
bHkgd2l0aCB0aG9zZSBub2RlcyB0aGF0CisgICAgICAgIEFwcGx5U3R5bGVDb21tYW5kIG1heSBh
ZGQgdG8gYXZvaWQgcmVtb3Zpbmcgbm9uLXN0eWxpbmcgZWxlbWVudHMuIEFuZCBmaXhlZCBhIHJl
Z3Jlc3Npb24gZnJvbSByODE4ODcgdGhhdAorICAgICAgICBSZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZCBtYXkgcmVtb3ZlIG5vbi1lZGl0aW5nIHN0eWxlcyBzdWNoIGFzIGJvcmRlciBpbiB0aGUgYXR0
ZW1wdCB0byBhdm9pZCBuZXN0aW5nIHN0eWxpbmcgZWxlbWVudHMuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBwYXZlcyB0aGUgd2F5IHRvIGZpeCB0aGUgYnVnIDM0NTY0LgorCisgICAgICAgIFRlc3Rz
OiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTIuaHRtbAorICAgICAg
ICAgICAgICAgZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0zLmh0bWwK
KyAgICAgICAgICAgICAgIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUt
NC5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRWxlbWVudEVxdWl2YWxlbnQ6Om1hdGNoZXMpOiBUYWtlcyBjb25zdCBFbGVt
ZW50KiBpbnN0ZWFkIG9mIEVsZW1lbnQqLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEF0dHJpYnV0
ZUVxdWl2YWxlbnQ6Om1hdGNoZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Omh0bWxFbGVt
ZW50RXF1aXZhbGVudHMpOiBFeHRyYWN0ZWQgZnJvbSBjb25mbGljdHNXaXRoSW1wbGljaXRTdHls
ZU9mRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6Y29uZmxpY3RzV2l0
aEltcGxpY2l0U3R5bGVPZkVsZW1lbnQpOiBDYWxscyBodG1sRWxlbWVudEVxdWl2YWxlbnRzLgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjplbGVtZW50SXNTdHlsZWRTcGFuT3JIVE1M
RXF1aXZhbGVudCk6IEFkZGVkOyBkZXRlcm1pbmVzIHdoZXRoZXIgYW4gZWxlbWVudCBpcyBzdHls
ZSBzcGFuCisgICAgICAgIG9yIGEgc3R5bGluZyBlbGVtZW50IChlLmcuIGIsIGksIGZvbnQpIHBv
c3NpYmx5IHdpdGggZWRpdGluZyBzdHlsZS4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHls
ZS5oOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aXNJbmxpbmVOb2RlV2l0aFN0eWxlKTogQ2FsbHMgRWRpdGluZ1N0eWxl
OjplbGVtZW50SXNTdHlsZWRTcGFuT3JIVE1MRXF1aXZhbGVudC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KTogTW9yZSBhZ2dyZXNzaXZlbHkgYXZv
aWQgbmVzdGluZyBzdHlsaW5nIGVsZW1lbnRzLgorICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRp
bmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGlnaGVzdEVuY2xvc2luZ05vZGVPZlR5cGUpOgor
ICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRpbmcuaDoKKwogMjAxMS0wOC0wOCAgRGF2aWQgR3Jv
Z2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGRldGFpbCB0byBBU1NF
UlQgbWVzc2FnZSBpbiBJREJUcmFuc2FjdGlvbjo6ZW5xdWV1ZUV2ZW50CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCShyZXZpc2lvbiA5MjYyNykKKysrIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgs
MTIgKzM4LDE1IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlv
bi5oIgogI2luY2x1ZGUgIkhUTUxGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnRlcmNo
YW5nZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNs
dWRlICJQb3NpdGlvbi5oIgorI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJS
ZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJodG1s
ZWRpdGluZy5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtOTYsNyArOTksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCB+SFRN
TEVsZW1lbnRFcXVpdmFsZW50KCkgeyB9Ci0gICAgdmlydHVhbCBib29sIG1hdGNoZXMoRWxlbWVu
dCogZWxlbWVudCkgY29uc3QgeyByZXR1cm4gIW1fdGFnTmFtZSB8fCBlbGVtZW50LT5oYXNUYWdO
YW1lKCptX3RhZ05hbWUpOyB9CisgICAgdmlydHVhbCBib29sIG1hdGNoZXMoY29uc3QgRWxlbWVu
dCogZWxlbWVudCkgY29uc3QgeyByZXR1cm4gIW1fdGFnTmFtZSB8fCBlbGVtZW50LT5oYXNUYWdO
YW1lKCptX3RhZ05hbWUpOyB9CiAgICAgdmlydHVhbCBib29sIGhhc0F0dHJpYnV0ZSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHByb3BlcnR5RXhpc3RzSW5TdHls
ZShDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSkgY29uc3QgeyByZXR1cm4gc3R5bGUtPmdldFBy
b3BlcnR5Q1NTVmFsdWUobV9wcm9wZXJ0eUlEKTsgfQogICAgIHZpcnR1YWwgYm9vbCB2YWx1ZUlz
UHJlc2VudEluU3R5bGUoRWxlbWVudCosIENTU1N0eWxlRGVjbGFyYXRpb24qKSBjb25zdDsKQEAg
LTE4NSw3ICsxODgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSFRN
TEF0dHJpYnV0ZUVxdWl2YWxlbnQocHJvcGVydHlJRCwgYXR0ck5hbWUpKTsKICAgICB9CiAKLSAg
ICBib29sIG1hdGNoZXMoRWxlbWVudCogZWxlbSkgY29uc3QgeyByZXR1cm4gSFRNTEVsZW1lbnRF
cXVpdmFsZW50OjptYXRjaGVzKGVsZW0pICYmIGVsZW0tPmhhc0F0dHJpYnV0ZShtX2F0dHJOYW1l
KTsgfQorICAgIGJvb2wgbWF0Y2hlcyhjb25zdCBFbGVtZW50KiBlbGVtKSBjb25zdCB7IHJldHVy
biBIVE1MRWxlbWVudEVxdWl2YWxlbnQ6Om1hdGNoZXMoZWxlbSkgJiYgZWxlbS0+aGFzQXR0cmli
dXRlKG1fYXR0ck5hbWUpOyB9CiAgICAgdmlydHVhbCBib29sIGhhc0F0dHJpYnV0ZSgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVJc1ByZXNlbnRJblN0eWxl
KEVsZW1lbnQqLCBDU1NTdHlsZURlY2xhcmF0aW9uKikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lk
IGFkZFRvU3R5bGUoRWxlbWVudCosIEVkaXRpbmdTdHlsZSopIGNvbnN0OwpAQCAtNjMyLDI2ICs2
MzUsMzUgQEAgYm9vbCBFZGl0aW5nU3R5bGU6OmNvbmZsaWN0c1dpdGhJbmxpbmVTdAogICAgIHJl
dHVybiBjb25mbGljdGluZ1Byb3BlcnRpZXMgJiYgIWNvbmZsaWN0aW5nUHJvcGVydGllcy0+aXNF
bXB0eSgpOwogfQogCitzdGF0aWMgY29uc3QgVmVjdG9yPE93blB0cjxIVE1MRWxlbWVudEVxdWl2
YWxlbnQ+ID4mIGh0bWxFbGVtZW50RXF1aXZhbGVudHMoKQoreworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoVmVjdG9yPE93blB0cjxIVE1MRWxlbWVudEVxdWl2YWxlbnQ+ID4sIEhUTUxFbGVtZW50
RXF1aXZhbGVudHMsICgpKTsKKworICAgIGlmICghSFRNTEVsZW1lbnRFcXVpdmFsZW50cy5zaXpl
KCkpIHsKKyAgICAgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50cy5hcHBlbmQoSFRNTEVsZW1lbnRF
cXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlGb250V2VpZ2h0LCBDU1NWYWx1ZUJvbGQsIEhU
TUxOYW1lczo6YlRhZykpOworICAgICAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChI
VE1MRWxlbWVudEVxdWl2YWxlbnQ6OmNyZWF0ZShDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsIENTU1Zh
bHVlQm9sZCwgSFRNTE5hbWVzOjpzdHJvbmdUYWcpKTsKKyAgICAgICAgSFRNTEVsZW1lbnRFcXVp
dmFsZW50cy5hcHBlbmQoSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlW
ZXJ0aWNhbEFsaWduLCBDU1NWYWx1ZVN1YiwgSFRNTE5hbWVzOjpzdWJUYWcpKTsKKyAgICAgICAg
SFRNTEVsZW1lbnRFcXVpdmFsZW50cy5hcHBlbmQoSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVh
dGUoQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCBDU1NWYWx1ZVN1cGVyLCBIVE1MTmFtZXM6OnN1
cFRhZykpOworICAgICAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MRWxlbWVu
dEVxdWl2YWxlbnQ6OmNyZWF0ZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgQ1NTVmFsdWVJdGFsaWMs
IEhUTUxOYW1lczo6aVRhZykpOworICAgICAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVu
ZChIVE1MRWxlbWVudEVxdWl2YWxlbnQ6OmNyZWF0ZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgQ1NT
VmFsdWVJdGFsaWMsIEhUTUxOYW1lczo6ZW1UYWcpKTsKKworICAgICAgICBIVE1MRWxlbWVudEVx
dWl2YWxlbnRzLmFwcGVuZChIVE1MVGV4dERlY29yYXRpb25FcXVpdmFsZW50OjpjcmVhdGUoQ1NT
VmFsdWVVbmRlcmxpbmUsIEhUTUxOYW1lczo6dVRhZykpOworICAgICAgICBIVE1MRWxlbWVudEVx
dWl2YWxlbnRzLmFwcGVuZChIVE1MVGV4dERlY29yYXRpb25FcXVpdmFsZW50OjpjcmVhdGUoQ1NT
VmFsdWVMaW5lVGhyb3VnaCwgSFRNTE5hbWVzOjpzVGFnKSk7CisgICAgICAgIEhUTUxFbGVtZW50
RXF1aXZhbGVudHMuYXBwZW5kKEhUTUxUZXh0RGVjb3JhdGlvbkVxdWl2YWxlbnQ6OmNyZWF0ZShD
U1NWYWx1ZUxpbmVUaHJvdWdoLCBIVE1MTmFtZXM6OnN0cmlrZVRhZykpOworICAgIH0KKworICAg
IHJldHVybiBIVE1MRWxlbWVudEVxdWl2YWxlbnRzOworfQorCisKIGJvb2wgRWRpdGluZ1N0eWxl
Ojpjb25mbGljdHNXaXRoSW1wbGljaXRTdHlsZU9mRWxlbWVudChIVE1MRWxlbWVudCogZWxlbWVu
dCwgRWRpdGluZ1N0eWxlKiBleHRyYWN0ZWRTdHlsZSwgU2hvdWxkRXh0cmFjdE1hdGNoaW5nU3R5
bGUgc2hvdWxkRXh0cmFjdE1hdGNoaW5nU3R5bGUpIGNvbnN0CiB7CiAgICAgaWYgKCFtX211dGFi
bGVTdHlsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGljIGNvbnN0IEhUTUxF
bGVtZW50RXF1aXZhbGVudCogSFRNTEVxdWl2YWxlbnRzW10gPSB7Ci0gICAgICAgIEhUTUxFbGVt
ZW50RXF1aXZhbGVudDo6Y3JlYXRlKENTU1Byb3BlcnR5Rm9udFdlaWdodCwgQ1NTVmFsdWVCb2xk
LCBIVE1MTmFtZXM6OmJUYWcpLmxlYWtQdHIoKSwKLSAgICAgICAgSFRNTEVsZW1lbnRFcXVpdmFs
ZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlGb250V2VpZ2h0LCBDU1NWYWx1ZUJvbGQsIEhUTUxOYW1l
czo6c3Ryb25nVGFnKS5sZWFrUHRyKCksCi0gICAgICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6
Y3JlYXRlKENTU1Byb3BlcnR5VmVydGljYWxBbGlnbiwgQ1NTVmFsdWVTdWIsIEhUTUxOYW1lczo6
c3ViVGFnKS5sZWFrUHRyKCksCi0gICAgICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6Y3JlYXRl
KENTU1Byb3BlcnR5VmVydGljYWxBbGlnbiwgQ1NTVmFsdWVTdXBlciwgSFRNTE5hbWVzOjpzdXBU
YWcpLmxlYWtQdHIoKSwKLSAgICAgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NT
UHJvcGVydHlGb250U3R5bGUsIENTU1ZhbHVlSXRhbGljLCBIVE1MTmFtZXM6OmlUYWcpLmxlYWtQ
dHIoKSwKLSAgICAgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlG
b250U3R5bGUsIENTU1ZhbHVlSXRhbGljLCBIVE1MTmFtZXM6OmVtVGFnKS5sZWFrUHRyKCksCi0K
LSAgICAgICAgSFRNTFRleHREZWNvcmF0aW9uRXF1aXZhbGVudDo6Y3JlYXRlKENTU1ZhbHVlVW5k
ZXJsaW5lLCBIVE1MTmFtZXM6OnVUYWcpLmxlYWtQdHIoKSwKLSAgICAgICAgSFRNTFRleHREZWNv
cmF0aW9uRXF1aXZhbGVudDo6Y3JlYXRlKENTU1ZhbHVlTGluZVRocm91Z2gsIEhUTUxOYW1lczo6
c1RhZykubGVha1B0cigpLAotICAgICAgICBIVE1MVGV4dERlY29yYXRpb25FcXVpdmFsZW50Ojpj
cmVhdGUoQ1NTVmFsdWVMaW5lVGhyb3VnaCwgSFRNTE5hbWVzOjpzdHJpa2VUYWcpLmxlYWtQdHIo
KSwKLSAgICB9OwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RI
KEhUTUxFcXVpdmFsZW50cyk7ICsraSkgewotICAgICAgICBjb25zdCBIVE1MRWxlbWVudEVxdWl2
YWxlbnQqIGVxdWl2YWxlbnQgPSBIVE1MRXF1aXZhbGVudHNbaV07CisgICAgY29uc3QgVmVjdG9y
PE93blB0cjxIVE1MRWxlbWVudEVxdWl2YWxlbnQ+ID4mIEhUTUxFbGVtZW50RXF1aXZhbGVudHMg
PSBodG1sRWxlbWVudEVxdWl2YWxlbnRzKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBI
VE1MRWxlbWVudEVxdWl2YWxlbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IEhUTUxF
bGVtZW50RXF1aXZhbGVudCogZXF1aXZhbGVudCA9IEhUTUxFbGVtZW50RXF1aXZhbGVudHNbaV0u
Z2V0KCk7CiAgICAgICAgIGlmIChlcXVpdmFsZW50LT5tYXRjaGVzKGVsZW1lbnQpICYmIGVxdWl2
YWxlbnQtPnByb3BlcnR5RXhpc3RzSW5TdHlsZShtX211dGFibGVTdHlsZS5nZXQoKSkKICAgICAg
ICAgICAgICYmIChzaG91bGRFeHRyYWN0TWF0Y2hpbmdTdHlsZSA9PSBFeHRyYWN0TWF0Y2hpbmdT
dHlsZSB8fCAhZXF1aXZhbGVudC0+dmFsdWVJc1ByZXNlbnRJblN0eWxlKGVsZW1lbnQsIG1fbXV0
YWJsZVN0eWxlLmdldCgpKSkpIHsKICAgICAgICAgICAgIGlmIChleHRyYWN0ZWRTdHlsZSkKQEAg
LTY2Nyw2ICs2NzksOCBAQCBzdGF0aWMgY29uc3QgVmVjdG9yPE93blB0cjxIVE1MQXR0cmlidXRl
CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8T3duUHRyPEhUTUxBdHRyaWJ1dGVFcXVp
dmFsZW50PiA+LCBIVE1MQXR0cmlidXRlRXF1aXZhbGVudHMsICgpKTsKIAogICAgIGlmICghSFRN
TEF0dHJpYnV0ZUVxdWl2YWxlbnRzLnNpemUoKSkgeworICAgICAgICAvLyBlbGVtZW50SXNTdHls
ZWRTcGFuT3JIVE1MRXF1aXZhbGVudCBkZXBlbmRzIG9uIHRoZSBmYWN0IGVhY2ggSFRNTEF0dHJp
dXRlRXF1aXZhbGVudCBtYXRjaGVzIGV4YWN0bHkgb25lIGF0dHJpYnV0ZQorICAgICAgICAvLyBv
ZiBleGFjdGx5IG9uZSBlbGVtZW50IGV4Y2VwdCBkaXJBdHRyLgogICAgICAgICBIVE1MQXR0cmli
dXRlRXF1aXZhbGVudHMuYXBwZW5kKEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50OjpjcmVhdGUoQ1NT
UHJvcGVydHlDb2xvciwgSFRNTE5hbWVzOjpmb250VGFnLCBIVE1MTmFtZXM6OmNvbG9yQXR0cikp
OwogICAgICAgICBIVE1MQXR0cmlidXRlRXF1aXZhbGVudHMuYXBwZW5kKEhUTUxBdHRyaWJ1dGVF
cXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlGb250RmFtaWx5LCBIVE1MTmFtZXM6OmZvbnRU
YWcsIEhUTUxOYW1lczo6ZmFjZUF0dHIpKTsKICAgICAgICAgSFRNTEF0dHJpYnV0ZUVxdWl2YWxl
bnRzLmFwcGVuZChIVE1MRm9udFNpemVFcXVpdmFsZW50OjpjcmVhdGUoKSk7CkBAIC03MzAsNiAr
NzQ0LDU5IEBAIGJvb2wgRWRpdGluZ1N0eWxlOjpzdHlsZUlzUHJlc2VudEluQ29tcHUKICAgICBy
ZXR1cm4gIW1fbXV0YWJsZVN0eWxlIHx8ICFnZXRQcm9wZXJ0aWVzTm90SW4obV9tdXRhYmxlU3R5
bGUuZ2V0KCksIGNvbXB1dGVkU3R5bGUobm9kZSkuZ2V0KCkpLT5sZW5ndGgoKTsKIH0KIAorYm9v
bCBFZGl0aW5nU3R5bGU6OmVsZW1lbnRJc1N0eWxlZFNwYW5PckhUTUxFcXVpdmFsZW50KGNvbnN0
IEhUTUxFbGVtZW50KiBlbGVtZW50KQoreworICAgIGJvb2wgZWxlbWVudElzU3Bhbk9yRWxlbWVu
dEVxdWl2YWxlbnQgPSBmYWxzZTsKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFt
ZXM6OnNwYW5UYWcpKQorICAgICAgICBlbGVtZW50SXNTcGFuT3JFbGVtZW50RXF1aXZhbGVudCA9
IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIGNvbnN0IFZlY3RvcjxPd25QdHI8SFRNTEVsZW1l
bnRFcXVpdmFsZW50PiA+JiBIVE1MRWxlbWVudEVxdWl2YWxlbnRzID0gaHRtbEVsZW1lbnRFcXVp
dmFsZW50cygpOworICAgICAgICBzaXplX3QgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IEhU
TUxFbGVtZW50RXF1aXZhbGVudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChIVE1M
RWxlbWVudEVxdWl2YWxlbnRzW2ldLT5tYXRjaGVzKGVsZW1lbnQpKQorICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGVsZW1lbnRJc1NwYW5PckVsZW1lbnRFcXVpdmFs
ZW50ID0gaSA8IEhUTUxFbGVtZW50RXF1aXZhbGVudHMuc2l6ZSgpOworICAgIH0KKworICAgIGNv
bnN0IE5hbWVkTm9kZU1hcCogYXR0cmlidXRlTWFwID0gZWxlbWVudC0+YXR0cmlidXRlTWFwKCk7
CisgICAgaWYgKCFhdHRyaWJ1dGVNYXAgfHwgYXR0cmlidXRlTWFwLT5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybiBlbGVtZW50SXNTcGFuT3JFbGVtZW50RXF1aXZhbGVudDsgLy8gc3BhbiwgYiwg
ZXRjLi4uIHdpdGhvdXQgYW55IGF0dHJpYnV0ZXMKKworICAgIHVuc2lnbmVkIG1hdGNoZWRBdHRy
aWJ1dGVzID0gMDsKKyAgICBjb25zdCBWZWN0b3I8T3duUHRyPEhUTUxBdHRyaWJ1dGVFcXVpdmFs
ZW50PiA+JiBIVE1MQXR0cmlidXRlRXF1aXZhbGVudHMgPSBodG1sQXR0cmlidXRlRXF1aXZhbGVu
dHMoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50
cy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnRzW2ld
LT5tYXRjaGVzKGVsZW1lbnQpICYmIEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50c1tpXS0+YXR0cmli
dXRlTmFtZSgpICE9IEhUTUxOYW1lczo6ZGlyQXR0cikKKyAgICAgICAgICAgIG1hdGNoZWRBdHRy
aWJ1dGVzKys7CisgICAgfQorCisgICAgaWYgKCFlbGVtZW50SXNTcGFuT3JFbGVtZW50RXF1aXZh
bGVudCAmJiAhbWF0Y2hlZEF0dHJpYnV0ZXMpCisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gZWxl
bWVudCBpcyBub3QgYSBzcGFuLCBhIGh0bWwgZWxlbWVudCBlcXVpdmFsZW50LCBvciBmb250IGVs
ZW1lbnQuCisgICAgCisgICAgaWYgKGVsZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNs
YXNzQXR0cikgPT0gQXBwbGVTdHlsZVNwYW5DbGFzcykKKyAgICAgICAgbWF0Y2hlZEF0dHJpYnV0
ZXMrKzsKKworICAgIGlmIChlbGVtZW50LT5oYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0
dHIpKSB7CisgICAgICAgIGlmIChDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBl
bGVtZW50LT5pbmxpbmVTdHlsZURlY2woKSkgeworICAgICAgICAgICAgQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb246OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHN0eWxlLT5lbmQoKTsKKyAgICAgICAg
ICAgIGZvciAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
c3R5bGUtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICAgICAgICAgIGJvb2wg
bWF0Y2hlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bnVtRWRpdGluZ0luaGVyaXRhYmxlUHJvcGVydGllczsgKytpKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChlZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0aWVzW2ldID09IGl0LT5pZCgpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIGlmICghbWF0Y2hlZCAmJiBpdC0+aWQoKSAhPSBDU1NQcm9wZXJ0eUJh
Y2tncm91bmRDb2xvcikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1hdGNoZWRBdHRyaWJ1dGVzKys7CisgICAgfQor
CisgICAgLy8gZm9udCB3aXRoIGNvbG9yIGF0dHJpYnV0ZSwgc3BhbiB3aXRoIHN0eWxlIGF0dHJp
YnV0ZSwgZXRjLi4uCisgICAgQVNTRVJUKG1hdGNoZWRBdHRyaWJ1dGVzIDw9IGF0dHJpYnV0ZU1h
cC0+bGVuZ3RoKCkpOworICAgIHJldHVybiBtYXRjaGVkQXR0cmlidXRlcyA+PSBhdHRyaWJ1dGVN
YXAtPmxlbmd0aCgpOworfQorCiB2b2lkIEVkaXRpbmdTdHlsZTo6cHJlcGFyZVRvQXBwbHlBdChj
b25zdCBQb3NpdGlvbiYgcG9zaXRpb24sIFNob3VsZFByZXNlcnZlV3JpdGluZ0RpcmVjdGlvbiBz
aG91bGRQcmVzZXJ2ZVdyaXRpbmdEaXJlY3Rpb24pCiB7CiAgICAgaWYgKCFtX211dGFibGVTdHls
ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaAkocmV2aXNpb24gOTI2
MjcpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTcsNiArMTE3LDkgQEAgcHVibGljOgogICAgIGJvb2wgZXh0cmFjdENvbmZsaWN0
aW5nSW1wbGljaXRTdHlsZU9mQXR0cmlidXRlcyhIVE1MRWxlbWVudCosIFNob3VsZFByZXNlcnZl
V3JpdGluZ0RpcmVjdGlvbiwgRWRpdGluZ1N0eWxlKiBleHRyYWN0ZWRTdHlsZSwKICAgICAgICAg
ICAgIFZlY3RvcjxRdWFsaWZpZWROYW1lPiYgY29uZmxpY3RpbmdBdHRyaWJ1dGVzLCBTaG91bGRF
eHRyYWN0TWF0Y2hpbmdTdHlsZSkgY29uc3Q7CiAgICAgYm9vbCBzdHlsZUlzUHJlc2VudEluQ29t
cHV0ZWRTdHlsZU9mTm9kZShOb2RlKikgY29uc3Q7CisKKyAgICBzdGF0aWMgYm9vbCBlbGVtZW50
SXNTdHlsZWRTcGFuT3JIVE1MRXF1aXZhbGVudChjb25zdCBIVE1MRWxlbWVudCopOworCiAgICAg
dm9pZCBwcmVwYXJlVG9BcHBseUF0KGNvbnN0IFBvc2l0aW9uJiwgU2hvdWxkUHJlc2VydmVXcml0
aW5nRGlyZWN0aW9uID0gRG9Ob3RQcmVzZXJ2ZVdyaXRpbmdEaXJlY3Rpb24pOwogICAgIHZvaWQg
bWVyZ2VUeXBpbmdTdHlsZShEb2N1bWVudCopOwogICAgIHZvaWQgbWVyZ2VJbmxpbmVTdHlsZU9m
RWxlbWVudChTdHlsZWRFbGVtZW50Kik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAkocmV2aXNpb24gOTI2MjcpCisrKyBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzg0LDI5ICs3ODQsMjIgQEAgc3RhdGljIE5vZGUqIGVuY2xvc2luZ0lubGlu
ZShOb2RlKiBub2RlKQogc3RhdGljIGJvb2wgaXNJbmxpbmVOb2RlV2l0aFN0eWxlKGNvbnN0IE5v
ZGUqIG5vZGUpCiB7CiAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBza2lwIG92ZXIgYW55IGJsb2Nr
IGVsZW1lbnRzLgotICAgIGlmICghbm9kZS0+cmVuZGVyZXIoKSB8fCAhbm9kZS0+cmVuZGVyZXIo
KS0+aXNJbmxpbmUoKSkKKyAgICBpZiAoaXNCbG9jayhub2RlKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgaWYgKCFub2RlLT5pc0hUTUxFbGVtZW50KCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKKwogICAgIC8vIFdlIGNhbiBza2lwIG92ZXIgZWxlbWVudHMgd2hvc2UgY2xh
c3MgYXR0cmlidXRlIGlzCiAgICAgLy8gb25lIG9mIG91ciBpbnRlcm5hbCBjbGFzc2VzLgogICAg
IGNvbnN0IEhUTUxFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTEVsZW1l
bnQqPihub2RlKTsKICAgICBBdG9taWNTdHJpbmcgY2xhc3NBdHRyaWJ1dGVWYWx1ZSA9IGVsZW1l
bnQtPmdldEF0dHJpYnV0ZShjbGFzc0F0dHIpOwotICAgIGlmIChjbGFzc0F0dHJpYnV0ZVZhbHVl
ID09IEFwcGxlU3R5bGVTcGFuQ2xhc3MKLSAgICAgICAgfHwgY2xhc3NBdHRyaWJ1dGVWYWx1ZSA9
PSBBcHBsZVRhYlNwYW5DbGFzcworICAgIGlmIChjbGFzc0F0dHJpYnV0ZVZhbHVlID09IEFwcGxl
VGFiU3BhbkNsYXNzCiAgICAgICAgIHx8IGNsYXNzQXR0cmlidXRlVmFsdWUgPT0gQXBwbGVDb252
ZXJ0ZWRTcGFjZQogICAgICAgICB8fCBjbGFzc0F0dHJpYnV0ZVZhbHVlID09IEFwcGxlUGFzdGVB
c1F1b3RhdGlvbikKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICAvLyBXZSBjYW4gc2tpcCBp
bmxpbmUgZWxlbWVudHMgdGhhdCBkb24ndCBoYXZlIGF0dHJpYnV0ZXMgb3Igd2hvc2Ugb25seQot
ICAgIC8vIGF0dHJpYnV0ZSBpcyB0aGUgc3R5bGUgYXR0cmlidXRlLgotICAgIGNvbnN0IE5hbWVk
Tm9kZU1hcCogYXR0cmlidXRlTWFwID0gZWxlbWVudC0+YXR0cmlidXRlTWFwKCk7Ci0gICAgaWYg
KCFhdHRyaWJ1dGVNYXAgfHwgYXR0cmlidXRlTWFwLT5pc0VtcHR5KCkgfHwgKGF0dHJpYnV0ZU1h
cC0+bGVuZ3RoKCkgPT0gMSAmJiBlbGVtZW50LT5oYXNBdHRyaWJ1dGUoc3R5bGVBdHRyKSkpCi0g
ICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBFZGl0
aW5nU3R5bGU6OmVsZW1lbnRJc1N0eWxlZFNwYW5PckhUTUxFcXVpdmFsZW50KGVsZW1lbnQpOwog
fQogICAgIAogdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCkBAIC05NTgs
MTYgKzk1MSwxNiBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKICAg
ICAvLyBXZSBjYW4gc2tpcCB0aGlzIG9wdGltaXphdGlvbiBmb3IgZnJhZ21lbnRzIG5vdCB3cmFw
cGVkIGluIG9uZSBvZgogICAgIC8vIG91ciBzdHlsZSBzcGFucyBhbmQgZm9yIHBvc2l0aW9ucyBp
bnNpZGUgbGlzdCBpdGVtcwogICAgIC8vIHNpbmNlIGluc2VydEFzTGlzdEl0ZW1zIGFscmVhZHkg
ZG9lcyB0aGUgcmlnaHQgdGhpbmcuCi0gICAgaWYgKCFtX21hdGNoU3R5bGUgJiYgIWVuY2xvc2lu
Z0xpc3QoaW5zZXJ0aW9uUG9zLmNvbnRhaW5lck5vZGUoKSkgJiYgaXNTdHlsZVNwYW4oZnJhZ21l
bnQuZmlyc3RDaGlsZCgpKSkgeworICAgIGlmICghbV9tYXRjaFN0eWxlICYmICFlbmNsb3NpbmdM
aXN0KGluc2VydGlvblBvcy5jb250YWluZXJOb2RlKCkpKSB7CiAgICAgICAgIGlmIChpbnNlcnRp
b25Qb3MuY29udGFpbmVyTm9kZSgpLT5pc1RleHROb2RlKCkgJiYgaW5zZXJ0aW9uUG9zLm9mZnNl
dEluQ29udGFpbmVyTm9kZSgpICYmICFpbnNlcnRpb25Qb3MuYXRMYXN0RWRpdGluZ1Bvc2l0aW9u
Rm9yTm9kZSgpKSB7Ci0gICAgICAgICAgICBzcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnQo
aW5zZXJ0aW9uUG9zLmNvbnRhaW5lclRleHQoKSwgaW5zZXJ0aW9uUG9zLm9mZnNldEluQ29udGFp
bmVyTm9kZSgpKTsKKyAgICAgICAgICAgIHNwbGl0VGV4dE5vZGUoaW5zZXJ0aW9uUG9zLmNvbnRh
aW5lclRleHQoKSwgaW5zZXJ0aW9uUG9zLm9mZnNldEluQ29udGFpbmVyTm9kZSgpKTsKICAgICAg
ICAgICAgIGluc2VydGlvblBvcyA9IGZpcnN0UG9zaXRpb25Jbk5vZGUoaW5zZXJ0aW9uUG9zLmNv
bnRhaW5lck5vZGUoKSk7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBGSVhNRTogaXNJbmxpbmVO
b2RlV2l0aFN0eWxlIGRvZXMgbm90IGNoZWNrIGVkaXRhYmlsaXR5LgotICAgICAgICBpZiAoUmVm
UHRyPE5vZGU+IG5vZGVUb1NwbGl0VG8gPSBoaWdoZXN0RW5jbG9zaW5nTm9kZU9mVHlwZShpbnNl
cnRpb25Qb3MsIGlzSW5saW5lTm9kZVdpdGhTdHlsZSkpIHsKLSAgICAgICAgICAgIGlmIChpbnNl
cnRpb25Qb3MuY29udGFpbmVyTm9kZSgpICE9IG5vZGVUb1NwbGl0VG8pIHsKLSAgICAgICAgICAg
ICAgICBub2RlVG9TcGxpdFRvID0gc3BsaXRUcmVlVG9Ob2RlKGluc2VydGlvblBvcy5hbmNob3JO
b2RlKCksIG5vZGVUb1NwbGl0VG8uZ2V0KCksIHRydWUpLmdldCgpOworICAgICAgICBpZiAoUmVm
UHRyPE5vZGU+IG5vZGVUb1NwbGl0VG8gPSBoaWdoZXN0RW5jbG9zaW5nTm9kZU9mVHlwZShpbnNl
cnRpb25Qb3MsIGlzSW5saW5lTm9kZVdpdGhTdHlsZSwgQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRh
cnksCisgICAgICAgICAgICBlbmNsb3NpbmdCbG9jayhpbnNlcnRpb25Qb3MuY29udGFpbmVyTm9k
ZSgpKSkpIHsKKyAgICAgICAgICAgIGlmIChpbnNlcnRpb25Qb3MuY29udGFpbmVyTm9kZSgpICE9
IG5vZGVUb1NwbGl0VG8tPnBhcmVudE5vZGUoKSkgeworICAgICAgICAgICAgICAgIG5vZGVUb1Nw
bGl0VG8gPSBzcGxpdFRyZWVUb05vZGUoaW5zZXJ0aW9uUG9zLmFuY2hvck5vZGUoKSwgbm9kZVRv
U3BsaXRUby0+cGFyZW50Tm9kZSgpKS5nZXQoKTsKICAgICAgICAgICAgICAgICBpbnNlcnRpb25Q
b3MgPSBwb3NpdGlvbkluUGFyZW50QmVmb3JlTm9kZShub2RlVG9TcGxpdFRvLmdldCgpKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1s
ZWRpdGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRp
dGluZy5jcHAJKHJldmlzaW9uIDkyNjI3KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1s
ZWRpdGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwNywxMSArNjA3LDExIEBAIE5vZGUqIGVu
Y2xvc2luZ05vZGVPZlR5cGUoY29uc3QgUG9zaXRpb24KICAgICByZXR1cm4gMDsKIH0KIAotTm9k
ZSogaGlnaGVzdEVuY2xvc2luZ05vZGVPZlR5cGUoY29uc3QgUG9zaXRpb24mIHAsIGJvb2wgKCpu
b2RlSXNPZlR5cGUpKGNvbnN0IE5vZGUqKSwgRWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1
bGUpCitOb2RlKiBoaWdoZXN0RW5jbG9zaW5nTm9kZU9mVHlwZShjb25zdCBQb3NpdGlvbiYgcCwg
Ym9vbCAoKm5vZGVJc09mVHlwZSkoY29uc3QgTm9kZSopLCBFZGl0aW5nQm91bmRhcnlDcm9zc2lu
Z1J1bGUgcnVsZSwgTm9kZSogc3RheVdpdGhpbikKIHsKICAgICBOb2RlKiBoaWdoZXN0ID0gMDsK
ICAgICBOb2RlKiByb290ID0gcnVsZSA9PSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSA/IGhp
Z2hlc3RFZGl0YWJsZVJvb3QocCkgOiAwOwotICAgIGZvciAoTm9kZSogbiA9IHAuY29udGFpbmVy
Tm9kZSgpOyBuOyBuID0gbi0+cGFyZW50Tm9kZSgpKSB7CisgICAgZm9yIChOb2RlKiBuID0gcC5j
b250YWluZXJOb2RlKCk7IG4gJiYgbiAhPSBzdGF5V2l0aGluOyBuID0gbi0+cGFyZW50Tm9kZSgp
KSB7CiAgICAgICAgIGlmIChyb290ICYmICFuLT5yZW5kZXJlcklzRWRpdGFibGUoKSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAobm9kZUlzT2ZUeXBlKG4pKQpJbmRleDogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAkocmV2aXNpb24gOTI2MjcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1
LDggQEAgY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIAogTm9kZSogaGlnaGVzdEFuY2VzdG9yKE5v
ZGUqKTsKIE5vZGUqIGhpZ2hlc3RFZGl0YWJsZVJvb3QoY29uc3QgUG9zaXRpb24mKTsKLU5vZGUq
IGhpZ2hlc3RFbmNsb3NpbmdOb2RlT2ZUeXBlKGNvbnN0IFBvc2l0aW9uJiwgYm9vbCAoKm5vZGVJ
c09mVHlwZSkoY29uc3QgTm9kZSopLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgPSBDYW5u
b3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7CitOb2RlKiBoaWdoZXN0RW5jbG9zaW5nTm9kZU9mVHlw
ZShjb25zdCBQb3NpdGlvbiYsIGJvb2wgKCpub2RlSXNPZlR5cGUpKGNvbnN0IE5vZGUqKSwKKyAg
ICBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFy
eSwgTm9kZSogc3RheVdpdGhpbiA9IDApOwogTm9kZSogbG93ZXN0RWRpdGFibGVBbmNlc3RvcihO
b2RlKik7ICAgCiAKIE5vZGUqIGVuY2xvc2luZ0Jsb2NrKE5vZGUqLCBFZGl0aW5nQm91bmRhcnlD
cm9zc2luZ1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA5MjYyNykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI3IEBACisyMDExLTA4LTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJlcGVhdGVkIGNvcHkgYW5kIHBhc3RlIHJlc3VsdCBpbiBuZXN0ZWQgc3R5
bGUgZWxlbWVudHMgc3VjaCBhcyBiIGFuZCBmb250CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTgyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIGVuc3VyZSBXZWJLaXQgZG9lcyBu
b3QgbmVzdCBzdHlsaW5nIGVsZW1lbnRzIGFuZCBkb2VzIG5vdCByZW1vdmUgZWxlbWVudHMgd2l0
aCBub24tZWRpdGluZyBzdHlsZXMuCisgICAgICAgIEFsc28gcmViYXNlbGluZWQgc2V2ZXJhbCB0
ZXN0cy4KKworICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC81MDY1NjA1LWV4cGVjdGVkLnR4
dDogTG9zdCB3cmFwcGluZyBmb250IGFuZCBzcGFuIGVsZW1lbnRzLgorICAgICAgICAqIGVkaXRp
bmcvcGFzdGVib2FyZC9tZXJnZS1lbmQtMS1leHBlY3RlZC50eHQ6IFNwYW4gaXMgc3BsaXQgYnV0
IHZpc3VhbGx5IGlkZW50aWNhbC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvbWVyZ2Ut
ZW5kLTItZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQv
cGFzdGUtYWZ0ZXItaW5saW5lLXN0eWxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBObyBsb25nZXIg
Ym9sZHMgImxpbmUgMiIgZXJyb25lb3VzbHkuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJk
L3Bhc3RlLXRleHQtMDExLWV4cGVjdGVkLnR4dDogTG9zdCB3cmFwcGluZyBmb250LCBiLCBhbmQg
c3BhbiBlbGVtZW50cy4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13
aXRoLXN0eWxlLTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRp
dGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0zLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0z
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdp
dGgtc3R5bGUtNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVi
b2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUtNC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aC1yZWR1bmRhbnQtc3R5bGUtZXhwZWN0ZWQudHh0OiBM
b3N0IHdyYXBwaW5nIGIuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgt
cmVkdW5kYW50LXN0eWxlLmh0bWw6IFVwZGF0ZWQgY29tbWVudHMgcGVyIHJlYmFzZWxpbmUuCisK
IDIwMTEtMDgtMDggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmVtb3ZlIHJlZHVuZGFudCBpbmxpbmUgc3R5bGVzIGZyb20gdGhlIHBhc3RlZCBjb250ZW50cyBt
b3JlIGFnZ3Jlc3NpdmVseQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkLzUw
NjU2MDUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFz
dGVib2FyZC81MDY1NjA1LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTI2MjcpCisrKyBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvNTA2NTYwNS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTIxLDcgKzIxLDcgQEAgRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNl
bGVjdAogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdl
Tm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRJbnNlcnROb2RlOiNkb2N1bWVu
dC1mcmFnbWVudCByZXBsYWNpbmdET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgRElWID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMCBvZiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCBnaXZlbkFjdGlvbjpXZWJWaWV3SW5zZXJ0QWN0aW9uUGFzdGVkCiBFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVk
RE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAyNCBvZiAjdGV4dCA+IEZPTlQg
PiBESVYgPiBTUEFOID4gRk9OVCA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IHRvIDI0IG9mICN0ZXh0ID4gRk9OVCA+IERJViA+IFNQQU4gPiBGT05UID4gRElWID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25z
dHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5n
ZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAyNCBvZiAjdGV4
dCA+IEZPTlQgPiBESVYgPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAy
NCBvZiAjdGV4dCA+IEZPTlQgPiBESVYgPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGlu
ZzpGQUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJW
aWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJW
aWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvbgpAQCAtNDAsMTUgKzQwLDkgQEAgVGhpcyB0ZXN0cyBmb3IgYSBidWcgd2hlcmUg
dGV4dCBjb3BpZWQgdwogfCAgIDxmb250PgogfCAgICAgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4i
CiB8ICAgICBjb2xvcj0iI2ZmMDAwMCIKLXwgICAgIDxzcGFuPgorfCAgICAgIlRoaXMgdGV4dCBz
aG91bGQgYmUgcmVkLiIKK3wgICA8ZGl2PgorfCAgICAgPGZvbnQ+CiB8ICAgICAgIGNsYXNzPSJB
cHBsZS1zdHlsZS1zcGFuIgotfCAgICAgICBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsgIgot
fCAgICAgICA8Zm9udD4KLXwgICAgICAgICBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIKLXwgICAg
ICAgICBjb2xvcj0iI2ZmMDAwMCIKLXwgICAgICAgICAiVGhpcyB0ZXh0IHNob3VsZCBiZSByZWQu
IgotfCAgICAgICA8ZGl2PgotfCAgICAgICAgIDxmb250PgotfCAgICAgICAgICAgY2xhc3M9IkFw
cGxlLXN0eWxlLXNwYW4iCi18ICAgICAgICAgICBjb2xvcj0iI2ZmMDAwMCIKLXwgICAgICAgICAg
ICJUaGlzIHRleHQgc2hvdWxkIGJlIHJlZC48I3NlbGVjdGlvbi1jYXJldD4iCit8ICAgICAgIGNv
bG9yPSIjZmYwMDAwIgorfCAgICAgICAiVGhpcyB0ZXh0IHNob3VsZCBiZSByZWQuPCNzZWxlY3Rp
b24tY2FyZXQ+IgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL21lcmdlLWVu
ZC0xLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvbWVyZ2UtZW5kLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5MjYyNykKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9tZXJnZS1lbmQtMS1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTIsNyArMiw5IEBAIFRoaXMgdGVzdHMgdGhlIGxhc3QgcGFyYWdyYXBoIGlu
IHRoZSBwYXMKICJiYXoiIGFuZCAib28iIHNob3VsZCBiZSBpbiB0aGUgc2FtZSBwYXJhZ3JhcGgg
YmVsb3cuCiB8IDxzcGFuPgogfCAgICJmIgotfCAgICJiYXIiCit8ICJiYXIiCit8IDxzcGFuPgog
fCAgIDxicj4KLXwgICAiYmF6PCNzZWxlY3Rpb24tY2FyZXQ+IgorfCAiYmF6PCNzZWxlY3Rpb24t
Y2FyZXQ+IgorfCA8c3Bhbj4KIHwgICAib28iCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvbWVyZ2UtZW5kLTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9tZXJnZS1lbmQtMi1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDkyNjI3KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL21lcmdlLWVuZC0yLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAgRURJVElORyBERUxFR0FU
RTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRETwogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBE
RUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDMgb2YgI3Rl
eHQgPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMyBvZiAjdGV4dCA+
IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZy
b20gMyBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAz
IG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5
Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElU
SU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMyBv
ZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDMgb2YgI3RleHQgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMyBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDMgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93
bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmlj
YXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgpAQCAtMTMsOCArMTMsMTAgQEAgVGhpcyB0
ZXN0cyB0aGUgbGFzdCBwYXJhZ3JhcGggaW4gdGhlIHBhcwogImJheiIgYW5kICJvb2JhciIgc2hv
dWxkIGJlIGluIHRoZSBzYW1lIHBhcmFncmFwaCBiZWxvdwogfCA8c3Bhbj4KIHwgICAiZiIKLXwg
ICAiYmFyIgorfCAiYmFyIgorfCA8c3Bhbj4KIHwgICA8YnI+Ci18ICAgImJhejwjc2VsZWN0aW9u
LWNhcmV0PiIKK3wgImJhejwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgPHNwYW4+CiB8ICAgIm9vIgog
fCAiYmFyIgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWFmdGVy
LWlubGluZS1zdHlsZS1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYWZ0ZXItaW5saW5lLXN0eWxlLWVsZW1lbnQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5MjYyNykKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFz
dGVib2FyZC9wYXN0ZS1hZnRlci1pbmxpbmUtc3R5bGUtZWxlbWVudC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTQsNiArNCw3IEBAIFRoaXMgdGVzdCBleGhpYml0cyBhIGJ1Zy4gVGhl
IGluc2VydGVkIGMKIHwgICB0eXBlPSJjaXRlIgogfCAgIDxiPgogfCAgICAgImxpbmUgMcKgIgot
fCAgICAgImxpbmUgMjwjc2VsZWN0aW9uLWNhcmV0PiIKLXwgICAgICLCoCIKK3wgICAibGluZSAy
PCNzZWxlY3Rpb24tY2FyZXQ+IgorfCAgICLCoCIKK3wgICA8Yj4KIHwgICAgIDxicj4KSW5kZXg6
IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LTAxMS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRl
eHQtMDExLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTI2MjcpCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC0wMTEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC02LDcgKzYsNyBAQCBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
CiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3Rp
ZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZEluc2VydE5vZGU6I2RvY3VtZW50LWZy
YWdtZW50IHJlcGxhY2luZ0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiBQID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gMCBvZiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgZ2l2ZW5BY3Rp
b246V2ViVmlld0luc2VydEFjdGlvblBhc3RlZAogRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1F
RElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RP
TVJhbmdlOnJhbmdlIGZyb20gNSBvZiAjdGV4dCA+IEIgPiBGT05UID4gUCA+IFNQQU4gPiBCID4g
Rk9OVCA+IFAgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0ID4gQiA+IEZP
TlQgPiBQID4gU1BBTiA+IEIgPiBGT05UID4gUCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFm
ZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNF
CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0
b0RPTVJhbmdlOnJhbmdlIGZyb20gNSBvZiAjdGV4dCA+IEIgPiBGT05UID4gUCA+IFAgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0ID4gQiA+IEZPTlQgPiBQID4gUCA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3Ry
ZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlv
bgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCkBAIC0yNywyMiArMjcsMTYgQEAgVGhlIGNvbnRl
bnQgd2FzIGluc2VydGVkIGF0IHRoZSBzdGFydCBvZgogfCAgICAgPGI+CiB8ICAgICAgICJ0aGVy
ZSIKIHwgPHA+Ci18ICAgPGZvbnQ+Ci18ICAgICBmYWNlPSJNb25hY28iCi18ICAgICA8Yj4KLXwg
ICAgICAgPHNwYW4+Ci18ICAgICAgICAgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iCi18ICAgICAg
ICAgc3R5bGU9ImZvbnQtZmFtaWx5OiBUaW1lczsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgIgotfCAg
ICAgICAgIDxwPgotfCAgICAgICAgICAgPGZvbnQ+Ci18ICAgICAgICAgICAgIGZhY2U9Ik1vbmFj
byIKLXwgICAgICAgICAgICAgPGI+Ci18ICAgICAgICAgICAgICAgImhlbGxvIgotfCAgICAgICAg
IDxwPgotfCAgICAgICAgICAgPGZvbnQ+Ci18ICAgICAgICAgICAgIGZhY2U9Ik1vbmFjbyIKLXwg
ICAgICAgICAgICAgPGI+Ci18ICAgICAgICAgICAgICAgInRoZXJlPCNzZWxlY3Rpb24tY2FyZXQ+
IgorfCAgIDxwPgorfCAgICAgPGZvbnQ+Cit8ICAgICAgIGZhY2U9Ik1vbmFjbyIKK3wgICAgICAg
PGI+Cit8ICAgICAgICAgImhlbGxvIgorfCAgIDxwPgorfCAgICAgPGZvbnQ+Cit8ICAgICAgIGZh
Y2U9Ik1vbmFjbyIKK3wgICAgICAgPGI+Cit8ICAgICAgICAgInRoZXJlPCNzZWxlY3Rpb24tY2Fy
ZXQ+IgogfCAiCiAKIApJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3Rl
LXRleHQtd2l0aC1zdHlsZS0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTItZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRl
eHQtd2l0aC1zdHlsZS0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBA
QAorVGhpcyB0ZXN0cyBjb3B5aW5nIGFuZCBwYXN0aW5nIHRleHQgZG9lcyBub3QgcmVzdWx0IGlu
IG5lc3RlZCBzdHlsZSBlbGVtZW50cyBzdWNoIGFzIGIsIGVtLCBhbmQgZm9udC4KK1RvIG1hbnVh
bGx5IHRlc3QsIGNvcHkgYW5kIHBhc3RlICJoZWxsbyB3b3JsZCIgYmVsb3cuIFdlYktpdCBzaG91
bGQgbm90IG5lc3QgYiwgaSwgdSwgYW5kIGZvbnQuCisKK0JlZm9yZSBjb3B5LXBhc3RlOgorfCA8
Yj4KK3wgICA8aT4KK3wgICAgIDx1PgorfCAgICAgICA8Zm9udD4KK3wgICAgICAgICBjb2xvcj0i
cmVkIgorfCAgICAgICAgICI8I3NlbGVjdGlvbi1jYXJldD5oZWxsbyB3b3JsZCIKKworQWZ0ZXIg
Y29weS1wYXN0ZToKK3wgPGI+Cit8ICAgPGk+Cit8ICAgICA8dT4KK3wgICAgICAgPGZvbnQ+Cit8
ICAgICAgICAgY29sb3I9InJlZCIKK3wgICAgICAgICAiaGVsbG8gd29ybGQ8I3NlbGVjdGlvbi1j
YXJldD4iCit8IDxmb250PgorfCAgIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIgorfCAgIGNvbG9y
PSIjZmYwMDAwIgorfCAgIDxiPgorfCAgICAgPGk+Cit8ICAgICAgIDx1PgorfCAgICAgICAgIDxi
cj4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgt
c3R5bGUtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUtMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0yLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+VGhpcyB0ZXN0cyBjb3B5aW5nIGFuZCBwYXN0aW5nIHRleHQg
ZG9lcyBub3QgcmVzdWx0IGluIG5lc3RlZCBzdHlsZSBlbGVtZW50cyBzdWNoIGFzIGIsIGVtLCBh
bmQgZm9udC4KK1RvIG1hbnVhbGx5IHRlc3QsIGNvcHkgYW5kIHBhc3RlICJoZWxsbyB3b3JsZCIg
YmVsb3cuIFdlYktpdCBzaG91bGQgbm90IG5lc3QgYiwgaSwgdSwgYW5kIGZvbnQuPC9wPgorPGRp
diBpZD0idGVzdCIgY29udGVudGVkaXRhYmxlPjxiPjxpPjx1Pjxmb250IGNvbG9yPSJyZWQiPmhl
bGxvIHdvcmxkPC9mb250PjwvdT48L2k+PC9iPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworCitNYXJrdXAuZGVzY3JpcHRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rl
c2NyaXB0aW9uJykudGV4dENvbnRlbnQpOworCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dCcpLmZvY3VzKCk7CisKK01hcmt1cC5kdW1wKCd0ZXN0JywgJ0JlZm9yZSBjb3B5LXBhc3RlJyk7
Citkb2N1bWVudC5leGVjQ29tbWFuZCgnU2VsZWN0QWxsJywgZmFsc2UsIG51bGwpOworZG9jdW1l
bnQuZXhlY0NvbW1hbmQoJ0NvcHknLCBmYWxzZSwgbnVsbCk7Citkb2N1bWVudC5leGVjQ29tbWFu
ZCgnUGFzdGUnLCBmYWxzZSwgbnVsbCk7CitNYXJrdXAuZHVtcCgndGVzdCcsICdBZnRlciBjb3B5
LXBhc3RlJyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0zLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4
dC13aXRoLXN0eWxlLTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0zLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAorVGhpcyB0ZXN0cyBjb3B5aW5nIGFuZCBwYXN0
aW5nIHRleHQgZG9lcyBub3QgcmVzdWx0IGluIG5lc3RlZCBzdHlsZSBlbGVtZW50cyBzdWNoIGFz
IGIsIGVtLCBhbmQgZm9udC4KK1RvIG1hbnVhbGx5IHRlc3QsIGNvcHkgImhlbGxvIHdvcmxkIiBi
ZWxvdyBhbmQgcGFzdGUgaXQgaW4gdGhlIGJveCBiZWxvdy4gV2ViS2l0IHNob3VsZCBub3QgbmVz
dCBiLCBpLCB1LCBhbmQgZm9udC4KKworQmVmb3JlIGNvcHk6Cit8IDxpPgorfCAgICJoZWxsbyIK
KworQWZ0ZXIgcGFzdGU6Cit8IDxpPgorfCAgICJoZWxsbzwjc2VsZWN0aW9uLWNhcmV0PiIKK3wg
PGZvbnQ+Cit8ICAgc2l6ZT0iNSIKK3wgICA8dT4KK3wgICAgIDxicj4KSW5kZXg6IExheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUtMy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgt
c3R5bGUtMy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+VGhpcyB0ZXN0cyBjb3B5aW5nIGFuZCBwYXN0aW5nIHRleHQgZG9lcyBub3QgcmVzdWx0IGlu
IG5lc3RlZCBzdHlsZSBlbGVtZW50cyBzdWNoIGFzIGIsIGVtLCBhbmQgZm9udC4KK1RvIG1hbnVh
bGx5IHRlc3QsIGNvcHkgImhlbGxvIHdvcmxkIiBiZWxvdyBhbmQgcGFzdGUgaXQgaW4gdGhlIGJv
eCBiZWxvdy4gV2ViS2l0IHNob3VsZCBub3QgbmVzdCBiLCBpLCB1LCBhbmQgZm9udC48L3A+Cis8
ZGl2IGlkPSJzb3VyY2UiIGNvbnRlbnRlZGl0YWJsZT48aT5oZWxsbzwvaT48L2Rpdj4KKzxkaXYg
aWQ9ImRlc3RpbmF0aW9uIiBzdHlsZT0iYm9yZGVyOiBzb2xpZCAxcHggYmxvY2s7IiBjb250ZW50
ZWRpdGFibGU+PGZvbnQgc2l6ZT01Pjx1Pjxicj48L3U+PC9mb250PjwvZGl2PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworCitNYXJrdXAuZGVzY3JpcHRpb24oZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2Rlc2NyaXB0aW9uJykudGV4dENvbnRlbnQpOworCitNYXJrdXAuZHVtcCgnc291
cmNlJywgJ0JlZm9yZSBjb3B5Jyk7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzb3VyY2Un
KS5mb2N1cygpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1NlbGVjdEFsbCcsIGZhbHNlLCBudWxs
KTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdDb3B5JywgZmFsc2UsIG51bGwpOworCitkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZGVzdGluYXRpb24nKS5mb2N1cygpOworZG9jdW1lbnQuZXhlY0Nv
bW1hbmQoJ1Bhc3RlJywgZmFsc2UsIG51bGwpOworCitNYXJrdXAuZHVtcCgnZGVzdGluYXRpb24n
LCAnQWZ0ZXIgcGFzdGUnKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9w
YXN0ZS10ZXh0LXdpdGgtc3R5bGUtNC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitUaGlzIHRlc3RzIGNvcHlpbmcg
YW5kIHBhc3RpbmcgdGV4dCBkb2VzIG5vdCByZW1vdmUgbm9uLWVkaXRpbmcgc3R5bGUgaW4gdGhl
IGRlc3RpbmF0aW9uLgorVG8gbWFudWFsbHkgdGVzdCwgY29weSAiaGVsbG8gd29ybGQiIGJlbG93
IGFuZCBwYXN0ZSBpdCBpbiB0aGUgYm94IGJlbG93LiBUaGUgYmx1ZSBib3JkZXIgc2hvdWxkIHN0
YXkgYWZ0ZXIgdGhlIHBhc3RlLgorCitCZWZvcmUgY29weToKK3wgPGI+Cit8ICAgc3R5bGU9ImJv
cmRlcjogc29saWQgNXB4IGJsdWU7cGFkZGluZzogNXB4OyIKK3wgICA8YnI+CisKK0FmdGVyIHBh
c3RlOgorfCA8Yj4KK3wgICBzdHlsZT0iYm9yZGVyOiBzb2xpZCA1cHggYmx1ZTtwYWRkaW5nOiA1
cHg7IgorfCAgIDxzcGFuPgorfCAgICAgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iCit8ICAgICBz
dHlsZT0iZm9udC13ZWlnaHQ6IG5vcm1hbDsgIgorfCAgICAgPGk+Cit8ICAgICAgICJoZWxsbzwj
c2VsZWN0aW9uLWNhcmV0PiIKK3wgICA8YnI+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTQuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0
LXdpdGgtc3R5bGUtNC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPlRoaXMgdGVzdHMg
Y29weWluZyBhbmQgcGFzdGluZyB0ZXh0IGRvZXMgbm90IHJlbW92ZSBub24tZWRpdGluZyBzdHls
ZSBpbiB0aGUgZGVzdGluYXRpb24uCitUbyBtYW51YWxseSB0ZXN0LCBjb3B5ICJoZWxsbyB3b3Js
ZCIgYmVsb3cgYW5kIHBhc3RlIGl0IGluIHRoZSBib3ggYmVsb3cuIFRoZSBibHVlIGJvcmRlciBz
aG91bGQgc3RheSBhZnRlciB0aGUgcGFzdGUuPC9wPgorPGRpdiBpZD0ic291cmNlIiBjb250ZW50
ZWRpdGFibGU+PGk+aGVsbG88L2k+PC9kaXY+Cis8ZGl2IGlkPSJkZXN0aW5hdGlvbiIgc3R5bGU9
InBhZGRpbmc6MjBweDsiIGNvbnRlbnRlZGl0YWJsZT48YiBzdHlsZT0iYm9yZGVyOiBzb2xpZCA1
cHggYmx1ZTtwYWRkaW5nOiA1cHg7Ij48YnI+PC9iPjwvZm9udD48L2Rpdj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKworTWFya3VwLmRlc2NyaXB0aW9uKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdkZXNjcmlwdGlvbicpLnRleHRDb250ZW50KTsKKworTWFya3VwLmR1bXAoJ2Rlc3Rp
bmF0aW9uJywgJ0JlZm9yZSBjb3B5Jyk7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzb3Vy
Y2UnKS5mb2N1cygpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1NlbGVjdEFsbCcsIGZhbHNlLCBu
dWxsKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdDb3B5JywgZmFsc2UsIG51bGwpOworCitkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzdGluYXRpb24nKS5mb2N1cygpOworZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoJ1Bhc3RlJywgZmFsc2UsIG51bGwpOworCitNYXJrdXAuZHVtcCgnZGVzdGluYXRp
b24nLCAnQWZ0ZXIgcGFzdGUnKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aC1yZWR1bmRhbnQtc3R5
bGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1zdHlsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDky
NjI3KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgtcmVkdW5k
YW50LXN0eWxlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMSwxNSBAQAog
VGhpcyB0ZXN0cyBwYXN0aW5nIGNvbnRlbnQgd2l0aCByZWR1bmRhbnQgaW5saW5lIHN0eWxlLgot
WW91IHNob3VsZCBub3Qgc2VlIGFueSBzdHlsZSBhdHRyaWJ1dGVzIGV4Y2VwdCBvbmUgb24gdGhl
IGIgZWxlbWVudCBhbmQgdGhlcmUgc2hvdWxkIGJlIG5vIHNwYW5zLgorWW91IHNob3VsZCBub3Qg
c2VlIGFueSBpbmxpbmUgc3R5bGVzIG90aGVyIHRoYW4gZm9udC13ZWlnaHQ6IGJvbGQgYW5kIHRo
ZXJlIHNob3VsZCBiZSBleGFjdGx5IG9uZSBzcGFuIGFyb3VuZCBXZWJLaXQuCit8IDxlbT4KK3wg
ICBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7ICIKK3wgICAiaGVsbG8gd29ybGQiCit8IDxicj4K
K3wgPHNwYW4+Cit8ICAgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyIKK3wgICAiV2ViS2l0Igor
fCA8YnI+Cit8IDxlbT4KK3wgICAicm9ja3M8I3NlbGVjdGlvbi1jYXJldD4iCiB8IDxiPgogfCAg
IHN0eWxlPSJmb250LXN0eWxlOiBpdGFsaWM7IgotfCAgIDxlbT4KLXwgICAgICJoZWxsbyB3b3Js
ZCIKLXwgICA8YnI+Ci18ICAgIldlYktpdCIKLXwgICA8YnI+Ci18ICAgPGVtPgotfCAgICAgInJv
Y2tzPCNzZWxlY3Rpb24tY2FyZXQ+IgogfCAgIDxicj4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1zdHlsZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1z
dHlsZS5odG1sCShyZXZpc2lvbiA5MjYyNykKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1zdHlsZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
Nyw3ICsxNyw3IEBAIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdpbnNlcnRIVE1MJywgZmFsc2UKICAg
ICArICc8ZW0+PHNwYW4gc3R5bGU9ImZvbnQtc3R5bGU6IGl0YWxpYzsiPnJvY2tzPC9zcGFuPjwv
ZW0+Jyk7CiAKIE1hcmt1cC5kZXNjcmlwdGlvbignVGhpcyB0ZXN0cyBwYXN0aW5nIGNvbnRlbnQg
d2l0aCByZWR1bmRhbnQgaW5saW5lIHN0eWxlLlxuJwotICAgICsgJ1lvdSBzaG91bGQgbm90IHNl
ZSBhbnkgc3R5bGUgYXR0cmlidXRlcyBleGNlcHQgb25lIG9uIHRoZSBiIGVsZW1lbnQgYW5kIHRo
ZXJlIHNob3VsZCBiZSBubyBzcGFucy4nKTsKKyAgICArICdZb3Ugc2hvdWxkIG5vdCBzZWUgYW55
IGlubGluZSBzdHlsZXMgb3RoZXIgdGhhbiBmb250LXdlaWdodDogYm9sZCBhbmQgdGhlcmUgc2hv
dWxkIGJlIGV4YWN0bHkgb25lIHNwYW4gYXJvdW5kIFdlYktpdC4nKTsKIE1hcmt1cC5kdW1wKCd0
ZXN0Jyk7CiAKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103296</attachid>
            <date>2011-08-08 14:51:01 -0700</date>
            <delta_ts>2011-08-08 17:38:10 -0700</delta_ts>
            <desc>Removed chromium-specific result for paste-text-011</desc>
            <filename>bug-65824-20110808145059.patch</filename>
            <type>text/plain</type>
            <size>36471</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNjMwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDgtMDggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwZWF0ZWQgY29weSBhbmQgcGFz
dGUgcmVzdWx0IGluIG5lc3RlZCBmb250IGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTgyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vZGlmaWVkIGlzSW5saW5lTm9kZVdpdGhTdHlsZSB0
byBtYXRjaCBmb250IGVsZW1lbnQuIEFsc28gbWFkZSB0aGUgZnVuY3Rpb24gbWF0Y2ggc3RyaWN0
bHkgd2l0aCB0aG9zZSBub2RlcyB0aGF0CisgICAgICAgIEFwcGx5U3R5bGVDb21tYW5kIG1heSBh
ZGQgdG8gYXZvaWQgcmVtb3Zpbmcgbm9uLXN0eWxpbmcgZWxlbWVudHMuIEFuZCBmaXhlZCBhIHJl
Z3Jlc3Npb24gZnJvbSByODE4ODcgdGhhdAorICAgICAgICBSZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZCBtYXkgcmVtb3ZlIG5vbi1lZGl0aW5nIHN0eWxlcyBzdWNoIGFzIGJvcmRlciBpbiB0aGUgYXR0
ZW1wdCB0byBhdm9pZCBuZXN0aW5nIHN0eWxpbmcgZWxlbWVudHMuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBwYXZlcyB0aGUgd2F5IHRvIGZpeCB0aGUgYnVnIDM0NTY0LgorCisgICAgICAgIFRlc3Rz
OiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTIuaHRtbAorICAgICAg
ICAgICAgICAgZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0zLmh0bWwK
KyAgICAgICAgICAgICAgIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUt
NC5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRWxlbWVudEVxdWl2YWxlbnQ6Om1hdGNoZXMpOiBUYWtlcyBjb25zdCBFbGVt
ZW50KiBpbnN0ZWFkIG9mIEVsZW1lbnQqLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEF0dHJpYnV0
ZUVxdWl2YWxlbnQ6Om1hdGNoZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Omh0bWxFbGVt
ZW50RXF1aXZhbGVudHMpOiBFeHRyYWN0ZWQgZnJvbSBjb25mbGljdHNXaXRoSW1wbGljaXRTdHls
ZU9mRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6Y29uZmxpY3RzV2l0
aEltcGxpY2l0U3R5bGVPZkVsZW1lbnQpOiBDYWxscyBodG1sRWxlbWVudEVxdWl2YWxlbnRzLgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjplbGVtZW50SXNTdHlsZWRTcGFuT3JIVE1M
RXF1aXZhbGVudCk6IEFkZGVkOyBkZXRlcm1pbmVzIHdoZXRoZXIgYW4gZWxlbWVudCBpcyBzdHls
ZSBzcGFuCisgICAgICAgIG9yIGEgc3R5bGluZyBlbGVtZW50IChlLmcuIGIsIGksIGZvbnQpIHBv
c3NpYmx5IHdpdGggZWRpdGluZyBzdHlsZS4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHls
ZS5oOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aXNJbmxpbmVOb2RlV2l0aFN0eWxlKTogQ2FsbHMgRWRpdGluZ1N0eWxl
OjplbGVtZW50SXNTdHlsZWRTcGFuT3JIVE1MRXF1aXZhbGVudC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KTogTW9yZSBhZ2dyZXNzaXZlbHkgYXZv
aWQgbmVzdGluZyBzdHlsaW5nIGVsZW1lbnRzLgorICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRp
bmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGlnaGVzdEVuY2xvc2luZ05vZGVPZlR5cGUpOgor
ICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRpbmcuaDoKKwogMjAxMS0wOC0wOCAgQ3JpcyBOZWNr
YXIgIDxjZG5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBjb3VudGVyIG5vZGVzIGZy
b20gdGhlIHRyZWUgYW5kIGZpeC11cCBjaGlsZHJlbiB3aGVuIHRoZXkgYXJlIHJlbW92ZWQgZnJv
bSB0aGUgY291bnRlciBtYXAuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdT
dHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5
bGUuY3BwCShyZXZpc2lvbiA5MjYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGlu
Z1N0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTIgKzM4LDE1IEBACiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxGb250
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnRlcmNoYW5nZS5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQb3NpdGlvbi5oIgorI2luY2x1
ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUg
IlN0eWxlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgorI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTYsNyArOTksNyBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCB+SFRNTEVsZW1lbnRFcXVpdmFsZW50KCkgeyB9
Ci0gICAgdmlydHVhbCBib29sIG1hdGNoZXMoRWxlbWVudCogZWxlbWVudCkgY29uc3QgeyByZXR1
cm4gIW1fdGFnTmFtZSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKCptX3RhZ05hbWUpOyB9CisgICAg
dmlydHVhbCBib29sIG1hdGNoZXMoY29uc3QgRWxlbWVudCogZWxlbWVudCkgY29uc3QgeyByZXR1
cm4gIW1fdGFnTmFtZSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKCptX3RhZ05hbWUpOyB9CiAgICAg
dmlydHVhbCBib29sIGhhc0F0dHJpYnV0ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIHByb3BlcnR5RXhpc3RzSW5TdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBz
dHlsZSkgY29uc3QgeyByZXR1cm4gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUobV9wcm9wZXJ0
eUlEKTsgfQogICAgIHZpcnR1YWwgYm9vbCB2YWx1ZUlzUHJlc2VudEluU3R5bGUoRWxlbWVudCos
IENTU1N0eWxlRGVjbGFyYXRpb24qKSBjb25zdDsKQEAgLTE4NSw3ICsxODgsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnQocHJv
cGVydHlJRCwgYXR0ck5hbWUpKTsKICAgICB9CiAKLSAgICBib29sIG1hdGNoZXMoRWxlbWVudCog
ZWxlbSkgY29uc3QgeyByZXR1cm4gSFRNTEVsZW1lbnRFcXVpdmFsZW50OjptYXRjaGVzKGVsZW0p
ICYmIGVsZW0tPmhhc0F0dHJpYnV0ZShtX2F0dHJOYW1lKTsgfQorICAgIGJvb2wgbWF0Y2hlcyhj
b25zdCBFbGVtZW50KiBlbGVtKSBjb25zdCB7IHJldHVybiBIVE1MRWxlbWVudEVxdWl2YWxlbnQ6
Om1hdGNoZXMoZWxlbSkgJiYgZWxlbS0+aGFzQXR0cmlidXRlKG1fYXR0ck5hbWUpOyB9CiAgICAg
dmlydHVhbCBib29sIGhhc0F0dHJpYnV0ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2
aXJ0dWFsIGJvb2wgdmFsdWVJc1ByZXNlbnRJblN0eWxlKEVsZW1lbnQqLCBDU1NTdHlsZURlY2xh
cmF0aW9uKikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFkZFRvU3R5bGUoRWxlbWVudCosIEVk
aXRpbmdTdHlsZSopIGNvbnN0OwpAQCAtNjMyLDI2ICs2MzUsMzUgQEAgYm9vbCBFZGl0aW5nU3R5
bGU6OmNvbmZsaWN0c1dpdGhJbmxpbmVTdAogICAgIHJldHVybiBjb25mbGljdGluZ1Byb3BlcnRp
ZXMgJiYgIWNvbmZsaWN0aW5nUHJvcGVydGllcy0+aXNFbXB0eSgpOwogfQogCitzdGF0aWMgY29u
c3QgVmVjdG9yPE93blB0cjxIVE1MRWxlbWVudEVxdWl2YWxlbnQ+ID4mIGh0bWxFbGVtZW50RXF1
aXZhbGVudHMoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPE93blB0cjxIVE1M
RWxlbWVudEVxdWl2YWxlbnQ+ID4sIEhUTUxFbGVtZW50RXF1aXZhbGVudHMsICgpKTsKKworICAg
IGlmICghSFRNTEVsZW1lbnRFcXVpdmFsZW50cy5zaXplKCkpIHsKKyAgICAgICAgSFRNTEVsZW1l
bnRFcXVpdmFsZW50cy5hcHBlbmQoSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJv
cGVydHlGb250V2VpZ2h0LCBDU1NWYWx1ZUJvbGQsIEhUTUxOYW1lczo6YlRhZykpOworICAgICAg
ICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MRWxlbWVudEVxdWl2YWxlbnQ6OmNy
ZWF0ZShDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsIENTU1ZhbHVlQm9sZCwgSFRNTE5hbWVzOjpzdHJv
bmdUYWcpKTsKKyAgICAgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50cy5hcHBlbmQoSFRNTEVsZW1l
bnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCBDU1NWYWx1ZVN1
YiwgSFRNTE5hbWVzOjpzdWJUYWcpKTsKKyAgICAgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50cy5h
cHBlbmQoSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlWZXJ0aWNhbEFs
aWduLCBDU1NWYWx1ZVN1cGVyLCBIVE1MTmFtZXM6OnN1cFRhZykpOworICAgICAgICBIVE1MRWxl
bWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MRWxlbWVudEVxdWl2YWxlbnQ6OmNyZWF0ZShDU1NQ
cm9wZXJ0eUZvbnRTdHlsZSwgQ1NTVmFsdWVJdGFsaWMsIEhUTUxOYW1lczo6aVRhZykpOworICAg
ICAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MRWxlbWVudEVxdWl2YWxlbnQ6
OmNyZWF0ZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgQ1NTVmFsdWVJdGFsaWMsIEhUTUxOYW1lczo6
ZW1UYWcpKTsKKworICAgICAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MVGV4
dERlY29yYXRpb25FcXVpdmFsZW50OjpjcmVhdGUoQ1NTVmFsdWVVbmRlcmxpbmUsIEhUTUxOYW1l
czo6dVRhZykpOworICAgICAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MVGV4
dERlY29yYXRpb25FcXVpdmFsZW50OjpjcmVhdGUoQ1NTVmFsdWVMaW5lVGhyb3VnaCwgSFRNTE5h
bWVzOjpzVGFnKSk7CisgICAgICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudHMuYXBwZW5kKEhUTUxU
ZXh0RGVjb3JhdGlvbkVxdWl2YWxlbnQ6OmNyZWF0ZShDU1NWYWx1ZUxpbmVUaHJvdWdoLCBIVE1M
TmFtZXM6OnN0cmlrZVRhZykpOworICAgIH0KKworICAgIHJldHVybiBIVE1MRWxlbWVudEVxdWl2
YWxlbnRzOworfQorCisKIGJvb2wgRWRpdGluZ1N0eWxlOjpjb25mbGljdHNXaXRoSW1wbGljaXRT
dHlsZU9mRWxlbWVudChIVE1MRWxlbWVudCogZWxlbWVudCwgRWRpdGluZ1N0eWxlKiBleHRyYWN0
ZWRTdHlsZSwgU2hvdWxkRXh0cmFjdE1hdGNoaW5nU3R5bGUgc2hvdWxkRXh0cmFjdE1hdGNoaW5n
U3R5bGUpIGNvbnN0CiB7CiAgICAgaWYgKCFtX211dGFibGVTdHlsZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgc3RhdGljIGNvbnN0IEhUTUxFbGVtZW50RXF1aXZhbGVudCogSFRNTEVx
dWl2YWxlbnRzW10gPSB7Ci0gICAgICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6Y3JlYXRlKENT
U1Byb3BlcnR5Rm9udFdlaWdodCwgQ1NTVmFsdWVCb2xkLCBIVE1MTmFtZXM6OmJUYWcpLmxlYWtQ
dHIoKSwKLSAgICAgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlG
b250V2VpZ2h0LCBDU1NWYWx1ZUJvbGQsIEhUTUxOYW1lczo6c3Ryb25nVGFnKS5sZWFrUHRyKCks
Ci0gICAgICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6Y3JlYXRlKENTU1Byb3BlcnR5VmVydGlj
YWxBbGlnbiwgQ1NTVmFsdWVTdWIsIEhUTUxOYW1lczo6c3ViVGFnKS5sZWFrUHRyKCksCi0gICAg
ICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6Y3JlYXRlKENTU1Byb3BlcnR5VmVydGljYWxBbGln
biwgQ1NTVmFsdWVTdXBlciwgSFRNTE5hbWVzOjpzdXBUYWcpLmxlYWtQdHIoKSwKLSAgICAgICAg
SFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlGb250U3R5bGUsIENTU1Zh
bHVlSXRhbGljLCBIVE1MTmFtZXM6OmlUYWcpLmxlYWtQdHIoKSwKLSAgICAgICAgSFRNTEVsZW1l
bnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlGb250U3R5bGUsIENTU1ZhbHVlSXRhbGlj
LCBIVE1MTmFtZXM6OmVtVGFnKS5sZWFrUHRyKCksCi0KLSAgICAgICAgSFRNTFRleHREZWNvcmF0
aW9uRXF1aXZhbGVudDo6Y3JlYXRlKENTU1ZhbHVlVW5kZXJsaW5lLCBIVE1MTmFtZXM6OnVUYWcp
LmxlYWtQdHIoKSwKLSAgICAgICAgSFRNTFRleHREZWNvcmF0aW9uRXF1aXZhbGVudDo6Y3JlYXRl
KENTU1ZhbHVlTGluZVRocm91Z2gsIEhUTUxOYW1lczo6c1RhZykubGVha1B0cigpLAotICAgICAg
ICBIVE1MVGV4dERlY29yYXRpb25FcXVpdmFsZW50OjpjcmVhdGUoQ1NTVmFsdWVMaW5lVGhyb3Vn
aCwgSFRNTE5hbWVzOjpzdHJpa2VUYWcpLmxlYWtQdHIoKSwKLSAgICB9OwotCi0gICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKEhUTUxFcXVpdmFsZW50cyk7ICsraSkg
ewotICAgICAgICBjb25zdCBIVE1MRWxlbWVudEVxdWl2YWxlbnQqIGVxdWl2YWxlbnQgPSBIVE1M
RXF1aXZhbGVudHNbaV07CisgICAgY29uc3QgVmVjdG9yPE93blB0cjxIVE1MRWxlbWVudEVxdWl2
YWxlbnQ+ID4mIEhUTUxFbGVtZW50RXF1aXZhbGVudHMgPSBodG1sRWxlbWVudEVxdWl2YWxlbnRz
KCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLnNp
emUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IEhUTUxFbGVtZW50RXF1aXZhbGVudCogZXF1aXZh
bGVudCA9IEhUTUxFbGVtZW50RXF1aXZhbGVudHNbaV0uZ2V0KCk7CiAgICAgICAgIGlmIChlcXVp
dmFsZW50LT5tYXRjaGVzKGVsZW1lbnQpICYmIGVxdWl2YWxlbnQtPnByb3BlcnR5RXhpc3RzSW5T
dHlsZShtX211dGFibGVTdHlsZS5nZXQoKSkKICAgICAgICAgICAgICYmIChzaG91bGRFeHRyYWN0
TWF0Y2hpbmdTdHlsZSA9PSBFeHRyYWN0TWF0Y2hpbmdTdHlsZSB8fCAhZXF1aXZhbGVudC0+dmFs
dWVJc1ByZXNlbnRJblN0eWxlKGVsZW1lbnQsIG1fbXV0YWJsZVN0eWxlLmdldCgpKSkpIHsKICAg
ICAgICAgICAgIGlmIChleHRyYWN0ZWRTdHlsZSkKQEAgLTY2Nyw2ICs2NzksOCBAQCBzdGF0aWMg
Y29uc3QgVmVjdG9yPE93blB0cjxIVE1MQXR0cmlidXRlCiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChWZWN0b3I8T3duUHRyPEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50PiA+LCBIVE1MQXR0cmlidXRl
RXF1aXZhbGVudHMsICgpKTsKIAogICAgIGlmICghSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnRzLnNp
emUoKSkgeworICAgICAgICAvLyBlbGVtZW50SXNTdHlsZWRTcGFuT3JIVE1MRXF1aXZhbGVudCBk
ZXBlbmRzIG9uIHRoZSBmYWN0IGVhY2ggSFRNTEF0dHJpdXRlRXF1aXZhbGVudCBtYXRjaGVzIGV4
YWN0bHkgb25lIGF0dHJpYnV0ZQorICAgICAgICAvLyBvZiBleGFjdGx5IG9uZSBlbGVtZW50IGV4
Y2VwdCBkaXJBdHRyLgogICAgICAgICBIVE1MQXR0cmlidXRlRXF1aXZhbGVudHMuYXBwZW5kKEhU
TUxBdHRyaWJ1dGVFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlDb2xvciwgSFRNTE5hbWVz
Ojpmb250VGFnLCBIVE1MTmFtZXM6OmNvbG9yQXR0cikpOwogICAgICAgICBIVE1MQXR0cmlidXRl
RXF1aXZhbGVudHMuYXBwZW5kKEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJv
cGVydHlGb250RmFtaWx5LCBIVE1MTmFtZXM6OmZvbnRUYWcsIEhUTUxOYW1lczo6ZmFjZUF0dHIp
KTsKICAgICAgICAgSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnRzLmFwcGVuZChIVE1MRm9udFNpemVF
cXVpdmFsZW50OjpjcmVhdGUoKSk7CkBAIC03MzAsNiArNzQ0LDU5IEBAIGJvb2wgRWRpdGluZ1N0
eWxlOjpzdHlsZUlzUHJlc2VudEluQ29tcHUKICAgICByZXR1cm4gIW1fbXV0YWJsZVN0eWxlIHx8
ICFnZXRQcm9wZXJ0aWVzTm90SW4obV9tdXRhYmxlU3R5bGUuZ2V0KCksIGNvbXB1dGVkU3R5bGUo
bm9kZSkuZ2V0KCkpLT5sZW5ndGgoKTsKIH0KIAorYm9vbCBFZGl0aW5nU3R5bGU6OmVsZW1lbnRJ
c1N0eWxlZFNwYW5PckhUTUxFcXVpdmFsZW50KGNvbnN0IEhUTUxFbGVtZW50KiBlbGVtZW50KQor
eworICAgIGJvb2wgZWxlbWVudElzU3Bhbk9yRWxlbWVudEVxdWl2YWxlbnQgPSBmYWxzZTsKKyAg
ICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNwYW5UYWcpKQorICAgICAgICBl
bGVtZW50SXNTcGFuT3JFbGVtZW50RXF1aXZhbGVudCA9IHRydWU7CisgICAgZWxzZSB7CisgICAg
ICAgIGNvbnN0IFZlY3RvcjxPd25QdHI8SFRNTEVsZW1lbnRFcXVpdmFsZW50PiA+JiBIVE1MRWxl
bWVudEVxdWl2YWxlbnRzID0gaHRtbEVsZW1lbnRFcXVpdmFsZW50cygpOworICAgICAgICBzaXpl
X3QgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IEhUTUxFbGVtZW50RXF1aXZhbGVudHMuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChIVE1MRWxlbWVudEVxdWl2YWxlbnRzW2ldLT5t
YXRjaGVzKGVsZW1lbnQpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGVsZW1lbnRJc1NwYW5PckVsZW1lbnRFcXVpdmFsZW50ID0gaSA8IEhUTUxFbGVtZW50RXF1
aXZhbGVudHMuc2l6ZSgpOworICAgIH0KKworICAgIGNvbnN0IE5hbWVkTm9kZU1hcCogYXR0cmli
dXRlTWFwID0gZWxlbWVudC0+YXR0cmlidXRlTWFwKCk7CisgICAgaWYgKCFhdHRyaWJ1dGVNYXAg
fHwgYXR0cmlidXRlTWFwLT5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBlbGVtZW50SXNTcGFu
T3JFbGVtZW50RXF1aXZhbGVudDsgLy8gc3BhbiwgYiwgZXRjLi4uIHdpdGhvdXQgYW55IGF0dHJp
YnV0ZXMKKworICAgIHVuc2lnbmVkIG1hdGNoZWRBdHRyaWJ1dGVzID0gMDsKKyAgICBjb25zdCBW
ZWN0b3I8T3duUHRyPEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50PiA+JiBIVE1MQXR0cmlidXRlRXF1
aXZhbGVudHMgPSBodG1sQXR0cmlidXRlRXF1aXZhbGVudHMoKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50cy5zaXplKCk7ICsraSkgeworICAgICAg
ICBpZiAoSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnRzW2ldLT5tYXRjaGVzKGVsZW1lbnQpICYmIEhU
TUxBdHRyaWJ1dGVFcXVpdmFsZW50c1tpXS0+YXR0cmlidXRlTmFtZSgpICE9IEhUTUxOYW1lczo6
ZGlyQXR0cikKKyAgICAgICAgICAgIG1hdGNoZWRBdHRyaWJ1dGVzKys7CisgICAgfQorCisgICAg
aWYgKCFlbGVtZW50SXNTcGFuT3JFbGVtZW50RXF1aXZhbGVudCAmJiAhbWF0Y2hlZEF0dHJpYnV0
ZXMpCisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gZWxlbWVudCBpcyBub3QgYSBzcGFuLCBhIGh0
bWwgZWxlbWVudCBlcXVpdmFsZW50LCBvciBmb250IGVsZW1lbnQuCisgICAgCisgICAgaWYgKGVs
ZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0cikgPT0gQXBwbGVTdHlsZVNw
YW5DbGFzcykKKyAgICAgICAgbWF0Y2hlZEF0dHJpYnV0ZXMrKzsKKworICAgIGlmIChlbGVtZW50
LT5oYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIpKSB7CisgICAgICAgIGlmIChDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBlbGVtZW50LT5pbmxpbmVTdHlsZURlY2wo
KSkgeworICAgICAgICAgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvbnN0X2l0ZXJh
dG9yIGVuZCA9IHN0eWxlLT5lbmQoKTsKKyAgICAgICAgICAgIGZvciAoQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb246OmNvbnN0X2l0ZXJhdG9yIGl0ID0gc3R5bGUtPmJlZ2luKCk7IGl0ICE9IGVu
ZDsgKytpdCkgeworICAgICAgICAgICAgICAgIGJvb2wgbWF0Y2hlZCA9IGZhbHNlOworICAgICAg
ICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtRWRpdGluZ0luaGVyaXRhYmxlUHJv
cGVydGllczsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChlZGl0aW5nSW5oZXJpdGFi
bGVQcm9wZXJ0aWVzW2ldID09IGl0LT5pZCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbWF0
Y2hlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghbWF0
Y2hlZCAmJiBpdC0+aWQoKSAhPSBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcikKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIG1hdGNoZWRBdHRyaWJ1dGVzKys7CisgICAgfQorCisgICAgLy8gZm9udCB3aXRoIGNvbG9y
IGF0dHJpYnV0ZSwgc3BhbiB3aXRoIHN0eWxlIGF0dHJpYnV0ZSwgZXRjLi4uCisgICAgQVNTRVJU
KG1hdGNoZWRBdHRyaWJ1dGVzIDw9IGF0dHJpYnV0ZU1hcC0+bGVuZ3RoKCkpOworICAgIHJldHVy
biBtYXRjaGVkQXR0cmlidXRlcyA+PSBhdHRyaWJ1dGVNYXAtPmxlbmd0aCgpOworfQorCiB2b2lk
IEVkaXRpbmdTdHlsZTo6cHJlcGFyZVRvQXBwbHlBdChjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24s
IFNob3VsZFByZXNlcnZlV3JpdGluZ0RpcmVjdGlvbiBzaG91bGRQcmVzZXJ2ZVdyaXRpbmdEaXJl
Y3Rpb24pCiB7CiAgICAgaWYgKCFtX211dGFibGVTdHlsZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nU3R5bGUuaAkocmV2aXNpb24gOTI2MzApCisrKyBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNiArMTE3LDkgQEAg
cHVibGljOgogICAgIGJvb2wgZXh0cmFjdENvbmZsaWN0aW5nSW1wbGljaXRTdHlsZU9mQXR0cmli
dXRlcyhIVE1MRWxlbWVudCosIFNob3VsZFByZXNlcnZlV3JpdGluZ0RpcmVjdGlvbiwgRWRpdGlu
Z1N0eWxlKiBleHRyYWN0ZWRTdHlsZSwKICAgICAgICAgICAgIFZlY3RvcjxRdWFsaWZpZWROYW1l
PiYgY29uZmxpY3RpbmdBdHRyaWJ1dGVzLCBTaG91bGRFeHRyYWN0TWF0Y2hpbmdTdHlsZSkgY29u
c3Q7CiAgICAgYm9vbCBzdHlsZUlzUHJlc2VudEluQ29tcHV0ZWRTdHlsZU9mTm9kZShOb2RlKikg
Y29uc3Q7CisKKyAgICBzdGF0aWMgYm9vbCBlbGVtZW50SXNTdHlsZWRTcGFuT3JIVE1MRXF1aXZh
bGVudChjb25zdCBIVE1MRWxlbWVudCopOworCiAgICAgdm9pZCBwcmVwYXJlVG9BcHBseUF0KGNv
bnN0IFBvc2l0aW9uJiwgU2hvdWxkUHJlc2VydmVXcml0aW5nRGlyZWN0aW9uID0gRG9Ob3RQcmVz
ZXJ2ZVdyaXRpbmdEaXJlY3Rpb24pOwogICAgIHZvaWQgbWVyZ2VUeXBpbmdTdHlsZShEb2N1bWVu
dCopOwogICAgIHZvaWQgbWVyZ2VJbmxpbmVTdHlsZU9mRWxlbWVudChTdHlsZWRFbGVtZW50Kik7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmNwcAkocmV2aXNpb24gOTI2MzApCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzg0LDI5ICs3ODQs
MjIgQEAgc3RhdGljIE5vZGUqIGVuY2xvc2luZ0lubGluZShOb2RlKiBub2RlKQogc3RhdGljIGJv
b2wgaXNJbmxpbmVOb2RlV2l0aFN0eWxlKGNvbnN0IE5vZGUqIG5vZGUpCiB7CiAgICAgLy8gV2Ug
ZG9uJ3Qgd2FudCB0byBza2lwIG92ZXIgYW55IGJsb2NrIGVsZW1lbnRzLgotICAgIGlmICghbm9k
ZS0+cmVuZGVyZXIoKSB8fCAhbm9kZS0+cmVuZGVyZXIoKS0+aXNJbmxpbmUoKSkKKyAgICBpZiAo
aXNCbG9jayhub2RlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFub2RlLT5p
c0hUTUxFbGVtZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIC8vIFdl
IGNhbiBza2lwIG92ZXIgZWxlbWVudHMgd2hvc2UgY2xhc3MgYXR0cmlidXRlIGlzCiAgICAgLy8g
b25lIG9mIG91ciBpbnRlcm5hbCBjbGFzc2VzLgogICAgIGNvbnN0IEhUTUxFbGVtZW50KiBlbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTEVsZW1lbnQqPihub2RlKTsKICAgICBBdG9taWNT
dHJpbmcgY2xhc3NBdHRyaWJ1dGVWYWx1ZSA9IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShjbGFzc0F0
dHIpOwotICAgIGlmIChjbGFzc0F0dHJpYnV0ZVZhbHVlID09IEFwcGxlU3R5bGVTcGFuQ2xhc3MK
LSAgICAgICAgfHwgY2xhc3NBdHRyaWJ1dGVWYWx1ZSA9PSBBcHBsZVRhYlNwYW5DbGFzcworICAg
IGlmIChjbGFzc0F0dHJpYnV0ZVZhbHVlID09IEFwcGxlVGFiU3BhbkNsYXNzCiAgICAgICAgIHx8
IGNsYXNzQXR0cmlidXRlVmFsdWUgPT0gQXBwbGVDb252ZXJ0ZWRTcGFjZQogICAgICAgICB8fCBj
bGFzc0F0dHJpYnV0ZVZhbHVlID09IEFwcGxlUGFzdGVBc1F1b3RhdGlvbikKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKLSAgICAvLyBXZSBjYW4gc2tpcCBpbmxpbmUgZWxlbWVudHMgdGhhdCBkb24n
dCBoYXZlIGF0dHJpYnV0ZXMgb3Igd2hvc2Ugb25seQotICAgIC8vIGF0dHJpYnV0ZSBpcyB0aGUg
c3R5bGUgYXR0cmlidXRlLgotICAgIGNvbnN0IE5hbWVkTm9kZU1hcCogYXR0cmlidXRlTWFwID0g
ZWxlbWVudC0+YXR0cmlidXRlTWFwKCk7Ci0gICAgaWYgKCFhdHRyaWJ1dGVNYXAgfHwgYXR0cmli
dXRlTWFwLT5pc0VtcHR5KCkgfHwgKGF0dHJpYnV0ZU1hcC0+bGVuZ3RoKCkgPT0gMSAmJiBlbGVt
ZW50LT5oYXNBdHRyaWJ1dGUoc3R5bGVBdHRyKSkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBFZGl0aW5nU3R5bGU6OmVsZW1lbnRJc1N0eWxl
ZFNwYW5PckhUTUxFcXVpdmFsZW50KGVsZW1lbnQpOwogfQogICAgIAogdm9pZCBSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCkBAIC05NTgsMTYgKzk1MSwxNiBAQCB2b2lkIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKICAgICAvLyBXZSBjYW4gc2tpcCB0aGlzIG9w
dGltaXphdGlvbiBmb3IgZnJhZ21lbnRzIG5vdCB3cmFwcGVkIGluIG9uZSBvZgogICAgIC8vIG91
ciBzdHlsZSBzcGFucyBhbmQgZm9yIHBvc2l0aW9ucyBpbnNpZGUgbGlzdCBpdGVtcwogICAgIC8v
IHNpbmNlIGluc2VydEFzTGlzdEl0ZW1zIGFscmVhZHkgZG9lcyB0aGUgcmlnaHQgdGhpbmcuCi0g
ICAgaWYgKCFtX21hdGNoU3R5bGUgJiYgIWVuY2xvc2luZ0xpc3QoaW5zZXJ0aW9uUG9zLmNvbnRh
aW5lck5vZGUoKSkgJiYgaXNTdHlsZVNwYW4oZnJhZ21lbnQuZmlyc3RDaGlsZCgpKSkgeworICAg
IGlmICghbV9tYXRjaFN0eWxlICYmICFlbmNsb3NpbmdMaXN0KGluc2VydGlvblBvcy5jb250YWlu
ZXJOb2RlKCkpKSB7CiAgICAgICAgIGlmIChpbnNlcnRpb25Qb3MuY29udGFpbmVyTm9kZSgpLT5p
c1RleHROb2RlKCkgJiYgaW5zZXJ0aW9uUG9zLm9mZnNldEluQ29udGFpbmVyTm9kZSgpICYmICFp
bnNlcnRpb25Qb3MuYXRMYXN0RWRpdGluZ1Bvc2l0aW9uRm9yTm9kZSgpKSB7Ci0gICAgICAgICAg
ICBzcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnQoaW5zZXJ0aW9uUG9zLmNvbnRhaW5lclRl
eHQoKSwgaW5zZXJ0aW9uUG9zLm9mZnNldEluQ29udGFpbmVyTm9kZSgpKTsKKyAgICAgICAgICAg
IHNwbGl0VGV4dE5vZGUoaW5zZXJ0aW9uUG9zLmNvbnRhaW5lclRleHQoKSwgaW5zZXJ0aW9uUG9z
Lm9mZnNldEluQ29udGFpbmVyTm9kZSgpKTsKICAgICAgICAgICAgIGluc2VydGlvblBvcyA9IGZp
cnN0UG9zaXRpb25Jbk5vZGUoaW5zZXJ0aW9uUG9zLmNvbnRhaW5lck5vZGUoKSk7CiAgICAgICAg
IH0KIAotICAgICAgICAvLyBGSVhNRTogaXNJbmxpbmVOb2RlV2l0aFN0eWxlIGRvZXMgbm90IGNo
ZWNrIGVkaXRhYmlsaXR5LgotICAgICAgICBpZiAoUmVmUHRyPE5vZGU+IG5vZGVUb1NwbGl0VG8g
PSBoaWdoZXN0RW5jbG9zaW5nTm9kZU9mVHlwZShpbnNlcnRpb25Qb3MsIGlzSW5saW5lTm9kZVdp
dGhTdHlsZSkpIHsKLSAgICAgICAgICAgIGlmIChpbnNlcnRpb25Qb3MuY29udGFpbmVyTm9kZSgp
ICE9IG5vZGVUb1NwbGl0VG8pIHsKLSAgICAgICAgICAgICAgICBub2RlVG9TcGxpdFRvID0gc3Bs
aXRUcmVlVG9Ob2RlKGluc2VydGlvblBvcy5hbmNob3JOb2RlKCksIG5vZGVUb1NwbGl0VG8uZ2V0
KCksIHRydWUpLmdldCgpOworICAgICAgICBpZiAoUmVmUHRyPE5vZGU+IG5vZGVUb1NwbGl0VG8g
PSBoaWdoZXN0RW5jbG9zaW5nTm9kZU9mVHlwZShpbnNlcnRpb25Qb3MsIGlzSW5saW5lTm9kZVdp
dGhTdHlsZSwgQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnksCisgICAgICAgICAgICBlbmNsb3Np
bmdCbG9jayhpbnNlcnRpb25Qb3MuY29udGFpbmVyTm9kZSgpKSkpIHsKKyAgICAgICAgICAgIGlm
IChpbnNlcnRpb25Qb3MuY29udGFpbmVyTm9kZSgpICE9IG5vZGVUb1NwbGl0VG8tPnBhcmVudE5v
ZGUoKSkgeworICAgICAgICAgICAgICAgIG5vZGVUb1NwbGl0VG8gPSBzcGxpdFRyZWVUb05vZGUo
aW5zZXJ0aW9uUG9zLmFuY2hvck5vZGUoKSwgbm9kZVRvU3BsaXRUby0+cGFyZW50Tm9kZSgpKS5n
ZXQoKTsKICAgICAgICAgICAgICAgICBpbnNlcnRpb25Qb3MgPSBwb3NpdGlvbkluUGFyZW50QmVm
b3JlTm9kZShub2RlVG9TcGxpdFRvLmdldCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHJldmlzaW9uIDkyNjMw
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTYwNywxMSArNjA3LDExIEBAIE5vZGUqIGVuY2xvc2luZ05vZGVPZlR5cGUoY29uc3Qg
UG9zaXRpb24KICAgICByZXR1cm4gMDsKIH0KIAotTm9kZSogaGlnaGVzdEVuY2xvc2luZ05vZGVP
ZlR5cGUoY29uc3QgUG9zaXRpb24mIHAsIGJvb2wgKCpub2RlSXNPZlR5cGUpKGNvbnN0IE5vZGUq
KSwgRWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpCitOb2RlKiBoaWdoZXN0RW5jbG9z
aW5nTm9kZU9mVHlwZShjb25zdCBQb3NpdGlvbiYgcCwgYm9vbCAoKm5vZGVJc09mVHlwZSkoY29u
c3QgTm9kZSopLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgcnVsZSwgTm9kZSogc3RheVdp
dGhpbikKIHsKICAgICBOb2RlKiBoaWdoZXN0ID0gMDsKICAgICBOb2RlKiByb290ID0gcnVsZSA9
PSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSA/IGhpZ2hlc3RFZGl0YWJsZVJvb3QocCkgOiAw
OwotICAgIGZvciAoTm9kZSogbiA9IHAuY29udGFpbmVyTm9kZSgpOyBuOyBuID0gbi0+cGFyZW50
Tm9kZSgpKSB7CisgICAgZm9yIChOb2RlKiBuID0gcC5jb250YWluZXJOb2RlKCk7IG4gJiYgbiAh
PSBzdGF5V2l0aGluOyBuID0gbi0+cGFyZW50Tm9kZSgpKSB7CiAgICAgICAgIGlmIChyb290ICYm
ICFuLT5yZW5kZXJlcklzRWRpdGFibGUoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICBpZiAobm9kZUlzT2ZUeXBlKG4pKQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1s
ZWRpdGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRp
bmcuaAkocmV2aXNpb24gOTI2MzApCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0
aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDggQEAgY2xhc3MgVmlzaWJsZVNlbGVj
dGlvbjsKIAogTm9kZSogaGlnaGVzdEFuY2VzdG9yKE5vZGUqKTsKIE5vZGUqIGhpZ2hlc3RFZGl0
YWJsZVJvb3QoY29uc3QgUG9zaXRpb24mKTsKLU5vZGUqIGhpZ2hlc3RFbmNsb3NpbmdOb2RlT2ZU
eXBlKGNvbnN0IFBvc2l0aW9uJiwgYm9vbCAoKm5vZGVJc09mVHlwZSkoY29uc3QgTm9kZSopLCBF
ZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7
CitOb2RlKiBoaWdoZXN0RW5jbG9zaW5nTm9kZU9mVHlwZShjb25zdCBQb3NpdGlvbiYsIGJvb2wg
KCpub2RlSXNPZlR5cGUpKGNvbnN0IE5vZGUqKSwKKyAgICBFZGl0aW5nQm91bmRhcnlDcm9zc2lu
Z1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSwgTm9kZSogc3RheVdpdGhpbiA9IDAp
OwogTm9kZSogbG93ZXN0RWRpdGFibGVBbmNlc3RvcihOb2RlKik7ICAgCiAKIE5vZGUqIGVuY2xv
c2luZ0Jsb2NrKE5vZGUqLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgPSBDYW5ub3RDcm9z
c0VkaXRpbmdCb3VuZGFyeSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MjYzMCkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDExLTA4LTA4
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlcGVhdGVkIGNv
cHkgYW5kIHBhc3RlIHJlc3VsdCBpbiBuZXN0ZWQgc3R5bGUgZWxlbWVudHMgc3VjaCBhcyBiIGFu
ZCBmb250CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NTgyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZGVkIHRlc3RzIHRvIGVuc3VyZSBXZWJLaXQgZG9lcyBub3QgbmVzdCBzdHlsaW5nIGVsZW1lbnRz
IGFuZCBkb2VzIG5vdCByZW1vdmUgZWxlbWVudHMgd2l0aCBub24tZWRpdGluZyBzdHlsZXMuCisg
ICAgICAgIEFsc28gcmViYXNlbGluZWQgc2V2ZXJhbCB0ZXN0cy4KKworICAgICAgICAqIGVkaXRp
bmcvcGFzdGVib2FyZC81MDY1NjA1LWV4cGVjdGVkLnR4dDogTG9zdCB3cmFwcGluZyBmb250IGFu
ZCBzcGFuIGVsZW1lbnRzLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9tZXJnZS1lbmQt
MS1leHBlY3RlZC50eHQ6IFNwYW4gaXMgc3BsaXQgYnV0IHZpc3VhbGx5IGlkZW50aWNhbC4KKyAg
ICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvbWVyZ2UtZW5kLTItZXhwZWN0ZWQudHh0OiBEaXR0
by4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYWZ0ZXItaW5saW5lLXN0eWxl
LWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBObyBsb25nZXIgYm9sZHMgImxpbmUgMiIgZXJyb25lb3Vz
bHkuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtMDExLWV4cGVjdGVk
LnR4dDogTG9zdCB3cmFwcGluZyBmb250LCBiLCBhbmQgc3BhbiBlbGVtZW50cy4KKyAgICAgICAg
KiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0
eWxlLTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRl
eHQtd2l0aC1zdHlsZS0zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9w
YXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0zLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUtNC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5
bGUtNC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0
aC1yZWR1bmRhbnQtc3R5bGUtZXhwZWN0ZWQudHh0OiBMb3N0IHdyYXBwaW5nIGIuCisgICAgICAg
ICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgtcmVkdW5kYW50LXN0eWxlLmh0bWw6IFVw
ZGF0ZWQgY29tbWVudHMgcGVyIHJlYmFzZWxpbmUuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0td2luL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LTAxMS1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisKIDIwMTEtMDgtMDggIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBpbXBsZW1lbnQgYmFzaWMgaG9yaXpvbnRhbCBmbGV4aW5nCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvNTA2NTYwNS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkLzUwNjU2MDUtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiA5MjYzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC81MDY1NjA1
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQCBFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0CiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6
IHNob3VsZEluc2VydE5vZGU6I2RvY3VtZW50LWZyYWdtZW50IHJlcGxhY2luZ0RPTVJhbmdlOnJh
bmdlIGZyb20gMCBvZiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAwIG9m
IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGdpdmVuQWN0aW9uOldlYlZpZXdJ
bnNlcnRBY3Rpb25QYXN0ZWQKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBERUxF
R0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5n
ZSBmcm9tIDI0IG9mICN0ZXh0ID4gRk9OVCA+IERJViA+IFNQQU4gPiBGT05UID4gRElWID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMjQgb2YgI3RleHQgPiBGT05UID4gRElWID4g
U1BBTiA+IEZPTlQgPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0
eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJ
VElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01S
YW5nZTpyYW5nZSBmcm9tIDI0IG9mICN0ZXh0ID4gRk9OVCA+IERJViA+IERJViA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDI0IG9mICN0ZXh0ID4gRk9OVCA+IERJViA+IERJViA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5p
dHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJW
aWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRp
b24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5v
dGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpX
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCkBAIC00MCwxNSArNDAsOSBAQCBU
aGlzIHRlc3RzIGZvciBhIGJ1ZyB3aGVyZSB0ZXh0IGNvcGllZCB3CiB8ICAgPGZvbnQ+CiB8ICAg
ICBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIKIHwgICAgIGNvbG9yPSIjZmYwMDAwIgotfCAgICAg
PHNwYW4+Cit8ICAgICAiVGhpcyB0ZXh0IHNob3VsZCBiZSByZWQuIgorfCAgIDxkaXY+Cit8ICAg
ICA8Zm9udD4KIHwgICAgICAgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iCi18ICAgICAgIHN0eWxl
PSJjb2xvcjogcmdiKDAsIDAsIDApOyAiCi18ICAgICAgIDxmb250PgotfCAgICAgICAgIGNsYXNz
PSJBcHBsZS1zdHlsZS1zcGFuIgotfCAgICAgICAgIGNvbG9yPSIjZmYwMDAwIgotfCAgICAgICAg
ICJUaGlzIHRleHQgc2hvdWxkIGJlIHJlZC4iCi18ICAgICAgIDxkaXY+Ci18ICAgICAgICAgPGZv
bnQ+Ci18ICAgICAgICAgICBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIKLXwgICAgICAgICAgIGNv
bG9yPSIjZmYwMDAwIgotfCAgICAgICAgICAgIlRoaXMgdGV4dCBzaG91bGQgYmUgcmVkLjwjc2Vs
ZWN0aW9uLWNhcmV0PiIKK3wgICAgICAgY29sb3I9IiNmZjAwMDAiCit8ICAgICAgICJUaGlzIHRl
eHQgc2hvdWxkIGJlIHJlZC48I3NlbGVjdGlvbi1jYXJldD4iCkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvbWVyZ2UtZW5kLTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9tZXJnZS1lbmQtMS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDkyNjMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL21lcmdl
LWVuZC0xLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDkgQEAgVGhpcyB0
ZXN0cyB0aGUgbGFzdCBwYXJhZ3JhcGggaW4gdGhlIHBhcwogImJheiIgYW5kICJvbyIgc2hvdWxk
IGJlIGluIHRoZSBzYW1lIHBhcmFncmFwaCBiZWxvdy4KIHwgPHNwYW4+CiB8ICAgImYiCi18ICAg
ImJhciIKK3wgImJhciIKK3wgPHNwYW4+CiB8ICAgPGJyPgotfCAgICJiYXo8I3NlbGVjdGlvbi1j
YXJldD4iCit8ICJiYXo8I3NlbGVjdGlvbi1jYXJldD4iCit8IDxzcGFuPgogfCAgICJvbyIKSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9tZXJnZS1lbmQtMi1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL21lcmdlLWVu
ZC0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTI2MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvbWVyZ2UtZW5kLTItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00
LDcgKzQsNyBAQCBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPCiBFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERP
TVJhbmdlOnJhbmdlIGZyb20gMyBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0byAzIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAzIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDMgb2YgI3RleHQgPiBTUEFOID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0g
c3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVj
dGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQgdG8gMyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRv
RE9NUmFuZ2U6cmFuZ2UgZnJvbSAzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG8gMyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmlu
aXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFu
Z2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9u
CkBAIC0xMyw4ICsxMywxMCBAQCBUaGlzIHRlc3RzIHRoZSBsYXN0IHBhcmFncmFwaCBpbiB0aGUg
cGFzCiAiYmF6IiBhbmQgIm9vYmFyIiBzaG91bGQgYmUgaW4gdGhlIHNhbWUgcGFyYWdyYXBoIGJl
bG93CiB8IDxzcGFuPgogfCAgICJmIgotfCAgICJiYXIiCit8ICJiYXIiCit8IDxzcGFuPgogfCAg
IDxicj4KLXwgICAiYmF6PCNzZWxlY3Rpb24tY2FyZXQ+IgorfCAiYmF6PCNzZWxlY3Rpb24tY2Fy
ZXQ+IgorfCA8c3Bhbj4KIHwgICAib28iCiB8ICJiYXIiCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYWZ0ZXItaW5saW5lLXN0eWxlLWVsZW1lbnQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1h
ZnRlci1pbmxpbmUtc3R5bGUtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDkyNjMwKQor
KysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWFmdGVyLWlubGluZS1zdHls
ZS1lbGVtZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw2ICs0LDcgQEAgVGhp
cyB0ZXN0IGV4aGliaXRzIGEgYnVnLiBUaGUgaW5zZXJ0ZWQgYwogfCAgIHR5cGU9ImNpdGUiCiB8
ICAgPGI+CiB8ICAgICAibGluZSAxwqAiCi18ICAgICAibGluZSAyPCNzZWxlY3Rpb24tY2FyZXQ+
IgotfCAgICAgIsKgIgorfCAgICJsaW5lIDI8I3NlbGVjdGlvbi1jYXJldD4iCit8ICAgIsKgIgor
fCAgIDxiPgogfCAgICAgPGJyPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
L3Bhc3RlLXRleHQtMDExLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC0wMTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5
MjYzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LTAxMS1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBAIEVESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3QKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogc2hv
dWxkSW5zZXJ0Tm9kZTojZG9jdW1lbnQtZnJhZ21lbnQgcmVwbGFjaW5nRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAwIG9mIFAgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAwIG9mIFAgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCBnaXZlbkFjdGlvbjpXZWJWaWV3SW5zZXJ0QWN0aW9uUGFzdGVkCiBF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNl
bGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0ID4g
QiA+IEZPTlQgPiBQID4gU1BBTiA+IEIgPiBGT05UID4gUCA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDUgb2YgI3RleHQgPiBCID4gRk9OVCA+IFAgPiBTUEFOID4gQiA+IEZPTlQgPiBQID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25z
dHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5n
ZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0
ID4gQiA+IEZPTlQgPiBQID4gUCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3Rl
eHQgPiBCID4gRk9OVCA+IFAgPiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6
TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpX
ZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KQEAg
LTI3LDIyICsyNywxNiBAQCBUaGUgY29udGVudCB3YXMgaW5zZXJ0ZWQgYXQgdGhlIHN0YXJ0IG9m
CiB8ICAgICA8Yj4KIHwgICAgICAgInRoZXJlIgogfCA8cD4KLXwgICA8Zm9udD4KLXwgICAgIGZh
Y2U9Ik1vbmFjbyIKLXwgICAgIDxiPgotfCAgICAgICA8c3Bhbj4KLXwgICAgICAgICBjbGFzcz0i
QXBwbGUtc3R5bGUtc3BhbiIKLXwgICAgICAgICBzdHlsZT0iZm9udC1mYW1pbHk6IFRpbWVzOyBm
b250LXdlaWdodDogbm9ybWFsOyAiCi18ICAgICAgICAgPHA+Ci18ICAgICAgICAgICA8Zm9udD4K
LXwgICAgICAgICAgICAgZmFjZT0iTW9uYWNvIgotfCAgICAgICAgICAgICA8Yj4KLXwgICAgICAg
ICAgICAgICAiaGVsbG8iCi18ICAgICAgICAgPHA+Ci18ICAgICAgICAgICA8Zm9udD4KLXwgICAg
ICAgICAgICAgZmFjZT0iTW9uYWNvIgotfCAgICAgICAgICAgICA8Yj4KLXwgICAgICAgICAgICAg
ICAidGhlcmU8I3NlbGVjdGlvbi1jYXJldD4iCit8ICAgPHA+Cit8ICAgICA8Zm9udD4KK3wgICAg
ICAgZmFjZT0iTW9uYWNvIgorfCAgICAgICA8Yj4KK3wgICAgICAgICAiaGVsbG8iCit8ICAgPHA+
Cit8ICAgICA8Zm9udD4KK3wgICAgICAgZmFjZT0iTW9uYWNvIgorfCAgICAgICA8Yj4KK3wgICAg
ICAgICAidGhlcmU8I3NlbGVjdGlvbi1jYXJldD4iCiB8ICIKIAogCkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTItZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0
LXdpdGgtc3R5bGUtMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTItZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI1IEBACitUaGlzIHRlc3RzIGNvcHlpbmcgYW5kIHBhc3Rp
bmcgdGV4dCBkb2VzIG5vdCByZXN1bHQgaW4gbmVzdGVkIHN0eWxlIGVsZW1lbnRzIHN1Y2ggYXMg
YiwgZW0sIGFuZCBmb250LgorVG8gbWFudWFsbHkgdGVzdCwgY29weSBhbmQgcGFzdGUgImhlbGxv
IHdvcmxkIiBiZWxvdy4gV2ViS2l0IHNob3VsZCBub3QgbmVzdCBiLCBpLCB1LCBhbmQgZm9udC4K
KworQmVmb3JlIGNvcHktcGFzdGU6Cit8IDxiPgorfCAgIDxpPgorfCAgICAgPHU+Cit8ICAgICAg
IDxmb250PgorfCAgICAgICAgIGNvbG9yPSJyZWQiCit8ICAgICAgICAgIjwjc2VsZWN0aW9uLWNh
cmV0PmhlbGxvIHdvcmxkIgorCitBZnRlciBjb3B5LXBhc3RlOgorfCA8Yj4KK3wgICA8aT4KK3wg
ICAgIDx1PgorfCAgICAgICA8Zm9udD4KK3wgICAgICAgICBjb2xvcj0icmVkIgorfCAgICAgICAg
ICJoZWxsbyB3b3JsZDwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgPGZvbnQ+Cit8ICAgY2xhc3M9IkFw
cGxlLXN0eWxlLXNwYW4iCit8ICAgY29sb3I9IiNmZjAwMDAiCit8ICAgPGI+Cit8ICAgICA8aT4K
K3wgICAgICAgPHU+Cit8ICAgICAgICAgPGJyPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0yLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0yLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4
dC13aXRoLXN0eWxlLTIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj5UaGlzIHRlc3Rz
IGNvcHlpbmcgYW5kIHBhc3RpbmcgdGV4dCBkb2VzIG5vdCByZXN1bHQgaW4gbmVzdGVkIHN0eWxl
IGVsZW1lbnRzIHN1Y2ggYXMgYiwgZW0sIGFuZCBmb250LgorVG8gbWFudWFsbHkgdGVzdCwgY29w
eSBhbmQgcGFzdGUgImhlbGxvIHdvcmxkIiBiZWxvdy4gV2ViS2l0IHNob3VsZCBub3QgbmVzdCBi
LCBpLCB1LCBhbmQgZm9udC48L3A+Cis8ZGl2IGlkPSJ0ZXN0IiBjb250ZW50ZWRpdGFibGU+PGI+
PGk+PHU+PGZvbnQgY29sb3I9InJlZCI+aGVsbG8gd29ybGQ8L2ZvbnQ+PC91PjwvaT48L2I+PC9k
aXY+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK01hcmt1cC5kZXNjcmlwdGlvbihk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzY3JpcHRpb24nKS50ZXh0Q29udGVudCk7CisKK2Rv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0JykuZm9jdXMoKTsKKworTWFya3VwLmR1bXAoJ3Rl
c3QnLCAnQmVmb3JlIGNvcHktcGFzdGUnKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdTZWxlY3RB
bGwnLCBmYWxzZSwgbnVsbCk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgnQ29weScsIGZhbHNlLCBu
dWxsKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScsIGZhbHNlLCBudWxsKTsKK01hcmt1
cC5kdW1wKCd0ZXN0JywgJ0FmdGVyIGNvcHktcGFzdGUnKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4
dC13aXRoLXN0eWxlLTMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUtMy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13
aXRoLXN0eWxlLTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACitU
aGlzIHRlc3RzIGNvcHlpbmcgYW5kIHBhc3RpbmcgdGV4dCBkb2VzIG5vdCByZXN1bHQgaW4gbmVz
dGVkIHN0eWxlIGVsZW1lbnRzIHN1Y2ggYXMgYiwgZW0sIGFuZCBmb250LgorVG8gbWFudWFsbHkg
dGVzdCwgY29weSAiaGVsbG8gd29ybGQiIGJlbG93IGFuZCBwYXN0ZSBpdCBpbiB0aGUgYm94IGJl
bG93LiBXZWJLaXQgc2hvdWxkIG5vdCBuZXN0IGIsIGksIHUsIGFuZCBmb250LgorCitCZWZvcmUg
Y29weToKK3wgPGk+Cit8ICAgImhlbGxvIgorCitBZnRlciBwYXN0ZToKK3wgPGk+Cit8ICAgImhl
bGxvPCNzZWxlY3Rpb24tY2FyZXQ+IgorfCA8Zm9udD4KK3wgICBzaXplPSI1IgorfCAgIDx1Pgor
fCAgICAgPGJyPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRl
eHQtd2l0aC1zdHlsZS0zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0zLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTMuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj5UaGlzIHRlc3RzIGNvcHlpbmcgYW5kIHBhc3Rp
bmcgdGV4dCBkb2VzIG5vdCByZXN1bHQgaW4gbmVzdGVkIHN0eWxlIGVsZW1lbnRzIHN1Y2ggYXMg
YiwgZW0sIGFuZCBmb250LgorVG8gbWFudWFsbHkgdGVzdCwgY29weSAiaGVsbG8gd29ybGQiIGJl
bG93IGFuZCBwYXN0ZSBpdCBpbiB0aGUgYm94IGJlbG93LiBXZWJLaXQgc2hvdWxkIG5vdCBuZXN0
IGIsIGksIHUsIGFuZCBmb250LjwvcD4KKzxkaXYgaWQ9InNvdXJjZSIgY29udGVudGVkaXRhYmxl
PjxpPmhlbGxvPC9pPjwvZGl2PgorPGRpdiBpZD0iZGVzdGluYXRpb24iIHN0eWxlPSJib3JkZXI6
IHNvbGlkIDFweCBibG9jazsiIGNvbnRlbnRlZGl0YWJsZT48Zm9udCBzaXplPTU+PHU+PGJyPjwv
dT48L2ZvbnQ+PC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFy
a3VwLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK01hcmt1cC5k
ZXNjcmlwdGlvbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzY3JpcHRpb24nKS50ZXh0Q29u
dGVudCk7CisKK01hcmt1cC5kdW1wKCdzb3VyY2UnLCAnQmVmb3JlIGNvcHknKTsKKworZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3NvdXJjZScpLmZvY3VzKCk7Citkb2N1bWVudC5leGVjQ29tbWFu
ZCgnU2VsZWN0QWxsJywgZmFsc2UsIG51bGwpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0NvcHkn
LCBmYWxzZSwgbnVsbCk7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXN0aW5hdGlvbicp
LmZvY3VzKCk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnLCBmYWxzZSwgbnVsbCk7CisK
K01hcmt1cC5kdW1wKCdkZXN0aW5hdGlvbicsICdBZnRlciBwYXN0ZScpOworCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9w
YXN0ZS10ZXh0LXdpdGgtc3R5bGUtNC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS00LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0
ZS10ZXh0LXdpdGgtc3R5bGUtNC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTcgQEAKK1RoaXMgdGVzdHMgY29weWluZyBhbmQgcGFzdGluZyB0ZXh0IGRvZXMgbm90IHJlbW92
ZSBub24tZWRpdGluZyBzdHlsZSBpbiB0aGUgZGVzdGluYXRpb24uCitUbyBtYW51YWxseSB0ZXN0
LCBjb3B5ICJoZWxsbyB3b3JsZCIgYmVsb3cgYW5kIHBhc3RlIGl0IGluIHRoZSBib3ggYmVsb3cu
IFRoZSBibHVlIGJvcmRlciBzaG91bGQgc3RheSBhZnRlciB0aGUgcGFzdGUuCisKK0JlZm9yZSBj
b3B5OgorfCA8Yj4KK3wgICBzdHlsZT0iYm9yZGVyOiBzb2xpZCA1cHggYmx1ZTtwYWRkaW5nOiA1
cHg7IgorfCAgIDxicj4KKworQWZ0ZXIgcGFzdGU6Cit8IDxiPgorfCAgIHN0eWxlPSJib3JkZXI6
IHNvbGlkIDVweCBibHVlO3BhZGRpbmc6IDVweDsiCit8ICAgPHNwYW4+Cit8ICAgICBjbGFzcz0i
QXBwbGUtc3R5bGUtc3BhbiIKK3wgICAgIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyAiCit8
ICAgICA8aT4KK3wgICAgICAgImhlbGxvPCNzZWxlY3Rpb24tY2FyZXQ+IgorfCAgIDxicj4KSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUt
NC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0
ZS10ZXh0LXdpdGgtc3R5bGUtNC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS00Lmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+VGhpcyB0ZXN0cyBjb3B5aW5nIGFuZCBwYXN0aW5nIHRleHQgZG9lcyBu
b3QgcmVtb3ZlIG5vbi1lZGl0aW5nIHN0eWxlIGluIHRoZSBkZXN0aW5hdGlvbi4KK1RvIG1hbnVh
bGx5IHRlc3QsIGNvcHkgImhlbGxvIHdvcmxkIiBiZWxvdyBhbmQgcGFzdGUgaXQgaW4gdGhlIGJv
eCBiZWxvdy4gVGhlIGJsdWUgYm9yZGVyIHNob3VsZCBzdGF5IGFmdGVyIHRoZSBwYXN0ZS48L3A+
Cis8ZGl2IGlkPSJzb3VyY2UiIGNvbnRlbnRlZGl0YWJsZT48aT5oZWxsbzwvaT48L2Rpdj4KKzxk
aXYgaWQ9ImRlc3RpbmF0aW9uIiBzdHlsZT0icGFkZGluZzoyMHB4OyIgY29udGVudGVkaXRhYmxl
PjxiIHN0eWxlPSJib3JkZXI6IHNvbGlkIDVweCBibHVlO3BhZGRpbmc6IDVweDsiPjxicj48L2I+
PC9mb250PjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1
cC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitNYXJrdXAuZGVz
Y3JpcHRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rlc2NyaXB0aW9uJykudGV4dENvbnRl
bnQpOworCitNYXJrdXAuZHVtcCgnZGVzdGluYXRpb24nLCAnQmVmb3JlIGNvcHknKTsKKworZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NvdXJjZScpLmZvY3VzKCk7Citkb2N1bWVudC5leGVjQ29t
bWFuZCgnU2VsZWN0QWxsJywgZmFsc2UsIG51bGwpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0Nv
cHknLCBmYWxzZSwgbnVsbCk7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXN0aW5hdGlv
bicpLmZvY3VzKCk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnLCBmYWxzZSwgbnVsbCk7
CisKK01hcmt1cC5kdW1wKCdkZXN0aW5hdGlvbicsICdBZnRlciBwYXN0ZScpOworCis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1zdHlsZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgtcmVkdW5kYW50LXN0eWxl
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTI2MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvcGFzdGUtd2l0aC1yZWR1bmRhbnQtc3R5bGUtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDEyICsxLDE1IEBACiBUaGlzIHRlc3RzIHBhc3RpbmcgY29udGVudCB3aXRo
IHJlZHVuZGFudCBpbmxpbmUgc3R5bGUuCi1Zb3Ugc2hvdWxkIG5vdCBzZWUgYW55IHN0eWxlIGF0
dHJpYnV0ZXMgZXhjZXB0IG9uZSBvbiB0aGUgYiBlbGVtZW50IGFuZCB0aGVyZSBzaG91bGQgYmUg
bm8gc3BhbnMuCitZb3Ugc2hvdWxkIG5vdCBzZWUgYW55IGlubGluZSBzdHlsZXMgb3RoZXIgdGhh
biBmb250LXdlaWdodDogYm9sZCBhbmQgdGhlcmUgc2hvdWxkIGJlIGV4YWN0bHkgb25lIHNwYW4g
YXJvdW5kIFdlYktpdC4KK3wgPGVtPgorfCAgIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsgIgor
fCAgICJoZWxsbyB3b3JsZCIKK3wgPGJyPgorfCA8c3Bhbj4KK3wgICBzdHlsZT0iZm9udC13ZWln
aHQ6IGJvbGQ7IgorfCAgICJXZWJLaXQiCit8IDxicj4KK3wgPGVtPgorfCAgICJyb2Nrczwjc2Vs
ZWN0aW9uLWNhcmV0PiIKIHwgPGI+CiB8ICAgc3R5bGU9ImZvbnQtc3R5bGU6IGl0YWxpYzsiCi18
ICAgPGVtPgotfCAgICAgImhlbGxvIHdvcmxkIgotfCAgIDxicj4KLXwgICAiV2ViS2l0IgotfCAg
IDxicj4KLXwgICA8ZW0+Ci18ICAgICAicm9ja3M8I3NlbGVjdGlvbi1jYXJldD4iCiB8ICAgPGJy
PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgtcmVkdW5k
YW50LXN0eWxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL3Bhc3RlLXdpdGgtcmVkdW5kYW50LXN0eWxlLmh0bWwJKHJldmlzaW9uIDkyNjMwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgtcmVkdW5kYW50LXN0eWxl
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3LDcgKzE3LDcgQEAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoJ2luc2VydEhUTUwnLCBmYWxzZQogICAgICsgJzxlbT48c3BhbiBzdHlsZT0iZm9udC1zdHls
ZTogaXRhbGljOyI+cm9ja3M8L3NwYW4+PC9lbT4nKTsKIAogTWFya3VwLmRlc2NyaXB0aW9uKCdU
aGlzIHRlc3RzIHBhc3RpbmcgY29udGVudCB3aXRoIHJlZHVuZGFudCBpbmxpbmUgc3R5bGUuXG4n
Ci0gICAgKyAnWW91IHNob3VsZCBub3Qgc2VlIGFueSBzdHlsZSBhdHRyaWJ1dGVzIGV4Y2VwdCBv
bmUgb24gdGhlIGIgZWxlbWVudCBhbmQgdGhlcmUgc2hvdWxkIGJlIG5vIHNwYW5zLicpOworICAg
ICsgJ1lvdSBzaG91bGQgbm90IHNlZSBhbnkgaW5saW5lIHN0eWxlcyBvdGhlciB0aGFuIGZvbnQt
d2VpZ2h0OiBib2xkIGFuZCB0aGVyZSBzaG91bGQgYmUgZXhhY3RseSBvbmUgc3BhbiBhcm91bmQg
V2ViS2l0LicpOwogTWFya3VwLmR1bXAoJ3Rlc3QnKTsKIAogPC9zY3JpcHQ+CkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRl
eHQtMDExLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtMDExLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gOTI2MzApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
ZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtMDExLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSw0OSArMCwwIEBACi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxl
Y3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gMCBvZiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9t
IDAgb2YgI3RleHQgPiBCID4gRk9OVCA+IFAgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1
IG9mICN0ZXh0ID4gQiA+IEZPTlQgPiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5p
dHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKLUVE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5H
IERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNSBvZiAj
dGV4dCA+IEIgPiBGT05UID4gUCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3Rl
eHQgPiBCID4gRk9OVCA+IFAgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJh
bmdlIGZyb20gMCBvZiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMCBvZiBQID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJl
YW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKLUVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9u
Ci1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRJbnNlcnROb2RlOiNkb2N1bWVudC1mcmFnbWVudCBy
ZXBsYWNpbmdET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgUCA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDAgb2YgUCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGdpdmVuQWN0aW9uOldlYlZp
ZXdJbnNlcnRBY3Rpb25QYXN0ZWQKLUVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBE
RUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpy
YW5nZSBmcm9tIDUgb2YgI3RleHQgPiBCID4gRk9OVCA+IFAgPiBTUEFOID4gQiA+IEZPTlQgPiBQ
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IEIgPiBGT05UID4gUCA+
IFNQQU4gPiBCID4gRk9OVCA+IFAgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpO
U1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQotRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldl
YlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotVGhl
cmUgd2FzIGEgYnVnIHdoZW4gcGFzdGluZyBhdCB0aGUgZW5kIG9mIHRoZSBibG9jay4KLVRoZSBj
b250ZW50IHdhcyBpbnNlcnRlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIGJsb2NrIGluc3RlYWQgb2Yg
dGhlIGVuZC4gVGhpcyB0ZXN0cyB0aGUgaW5zZXJ0LWF0LWVuZCBjYXNlLgotfCAiCi0iCi18IDxw
PgotfCAgIDxmb250PgotfCAgICAgZmFjZT0iTW9uYWNvIgotfCAgICAgPGI+Ci18ICAgICAgICJo
ZWxsbyIKLXwgIgotIgotfCA8cD4KLXwgICA8Zm9udD4KLXwgICAgIGZhY2U9Ik1vbmFjbyIKLXwg
ICAgIDxiPgotfCAgICAgICAidGhlcmUiCi18IDxwPgotfCAgIDxmb250PgotfCAgICAgZmFjZT0i
TW9uYWNvIgotfCAgICAgPGI+Ci18ICAgICAgIDxzcGFuPgotfCAgICAgICAgIGNsYXNzPSJBcHBs
ZS1zdHlsZS1zcGFuIgotfCAgICAgICAgIHN0eWxlPSJmb250LWZhbWlseTogJ3RpbWVzIG5ldyBy
b21hbic7IGZvbnQtd2VpZ2h0OiBub3JtYWw7ICIKLXwgICAgICAgICA8cD4KLXwgICAgICAgICAg
IDxmb250PgotfCAgICAgICAgICAgICBmYWNlPSJNb25hY28iCi18ICAgICAgICAgICAgIDxiPgot
fCAgICAgICAgICAgICAgICJoZWxsbyIKLXwgICAgICAgICA8cD4KLXwgICAgICAgICAgIDxmb250
PgotfCAgICAgICAgICAgICBmYWNlPSJNb25hY28iCi18ICAgICAgICAgICAgIDxiPgotfCAgICAg
ICAgICAgICAgICJ0aGVyZTwjc2VsZWN0aW9uLWNhcmV0PiIKLXwgIgotCi0KLSIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103320</attachid>
            <date>2011-08-08 17:38:13 -0700</date>
            <delta_ts>2011-08-09 10:51:59 -0700</delta_ts>
            <desc>Updated per review</desc>
            <filename>bug-65824-20110808173812.patch</filename>
            <type>text/plain</type>
            <size>36524</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNjMwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDgtMDggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwZWF0ZWQgY29weSBhbmQgcGFz
dGUgcmVzdWx0IGluIG5lc3RlZCBmb250IGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTgyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vZGlmaWVkIGlzSW5saW5lTm9kZVdpdGhTdHlsZSB0
byBtYXRjaCBmb250IGVsZW1lbnQuIEFsc28gbWFkZSB0aGUgZnVuY3Rpb24gbWF0Y2ggc3RyaWN0
bHkgd2l0aCB0aG9zZSBub2RlcyB0aGF0CisgICAgICAgIEFwcGx5U3R5bGVDb21tYW5kIG1heSBh
ZGQgdG8gYXZvaWQgcmVtb3Zpbmcgbm9uLXN0eWxpbmcgZWxlbWVudHMuIEFuZCBmaXhlZCBhIHJl
Z3Jlc3Npb24gZnJvbSByODE4ODcgdGhhdAorICAgICAgICBSZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZCBtYXkgcmVtb3ZlIG5vbi1lZGl0aW5nIHN0eWxlcyBzdWNoIGFzIGJvcmRlciBpbiB0aGUgYXR0
ZW1wdCB0byBhdm9pZCBuZXN0aW5nIHN0eWxpbmcgZWxlbWVudHMuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBwYXZlcyB0aGUgd2F5IHRvIGZpeCB0aGUgYnVnIDM0NTY0LgorCisgICAgICAgIFRlc3Rz
OiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTIuaHRtbAorICAgICAg
ICAgICAgICAgZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0zLmh0bWwK
KyAgICAgICAgICAgICAgIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUt
NC5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRWxlbWVudEVxdWl2YWxlbnQ6Om1hdGNoZXMpOiBUYWtlcyBjb25zdCBFbGVt
ZW50KiBpbnN0ZWFkIG9mIEVsZW1lbnQqLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEF0dHJpYnV0
ZUVxdWl2YWxlbnQ6Om1hdGNoZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Omh0bWxFbGVt
ZW50RXF1aXZhbGVudHMpOiBFeHRyYWN0ZWQgZnJvbSBjb25mbGljdHNXaXRoSW1wbGljaXRTdHls
ZU9mRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6Y29uZmxpY3RzV2l0
aEltcGxpY2l0U3R5bGVPZkVsZW1lbnQpOiBDYWxscyBodG1sRWxlbWVudEVxdWl2YWxlbnRzLgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjplbGVtZW50SXNTdHlsZWRTcGFuT3JIVE1M
RXF1aXZhbGVudCk6IEFkZGVkOyBkZXRlcm1pbmVzIHdoZXRoZXIgYW4gZWxlbWVudCBpcyBzdHls
ZSBzcGFuCisgICAgICAgIG9yIGEgc3R5bGluZyBlbGVtZW50IChlLmcuIGIsIGksIGZvbnQpIHBv
c3NpYmx5IHdpdGggZWRpdGluZyBzdHlsZS4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHls
ZS5oOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aXNJbmxpbmVOb2RlV2l0aFN0eWxlKTogQ2FsbHMgRWRpdGluZ1N0eWxl
OjplbGVtZW50SXNTdHlsZWRTcGFuT3JIVE1MRXF1aXZhbGVudC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KTogTW9yZSBhZ2dyZXNzaXZlbHkgYXZv
aWQgbmVzdGluZyBzdHlsaW5nIGVsZW1lbnRzLgorICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRp
bmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGlnaGVzdEVuY2xvc2luZ05vZGVPZlR5cGUpOgor
ICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRpbmcuaDoKKwogMjAxMS0wOC0wOCAgQ3JpcyBOZWNr
YXIgIDxjZG5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBjb3VudGVyIG5vZGVzIGZy
b20gdGhlIHRyZWUgYW5kIGZpeC11cCBjaGlsZHJlbiB3aGVuIHRoZXkgYXJlIHJlbW92ZWQgZnJv
bSB0aGUgY291bnRlciBtYXAuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdT
dHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5
bGUuY3BwCShyZXZpc2lvbiA5MjYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGlu
Z1N0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTIgKzM4LDE1IEBACiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxGb250
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnRlcmNoYW5nZS5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQb3NpdGlvbi5oIgorI2luY2x1
ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUg
IlN0eWxlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgorI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTYsNyArOTksNyBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCB+SFRNTEVsZW1lbnRFcXVpdmFsZW50KCkgeyB9
Ci0gICAgdmlydHVhbCBib29sIG1hdGNoZXMoRWxlbWVudCogZWxlbWVudCkgY29uc3QgeyByZXR1
cm4gIW1fdGFnTmFtZSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKCptX3RhZ05hbWUpOyB9CisgICAg
dmlydHVhbCBib29sIG1hdGNoZXMoY29uc3QgRWxlbWVudCogZWxlbWVudCkgY29uc3QgeyByZXR1
cm4gIW1fdGFnTmFtZSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKCptX3RhZ05hbWUpOyB9CiAgICAg
dmlydHVhbCBib29sIGhhc0F0dHJpYnV0ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIHByb3BlcnR5RXhpc3RzSW5TdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBz
dHlsZSkgY29uc3QgeyByZXR1cm4gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUobV9wcm9wZXJ0
eUlEKTsgfQogICAgIHZpcnR1YWwgYm9vbCB2YWx1ZUlzUHJlc2VudEluU3R5bGUoRWxlbWVudCos
IENTU1N0eWxlRGVjbGFyYXRpb24qKSBjb25zdDsKQEAgLTE4NSw3ICsxODgsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnQocHJv
cGVydHlJRCwgYXR0ck5hbWUpKTsKICAgICB9CiAKLSAgICBib29sIG1hdGNoZXMoRWxlbWVudCog
ZWxlbSkgY29uc3QgeyByZXR1cm4gSFRNTEVsZW1lbnRFcXVpdmFsZW50OjptYXRjaGVzKGVsZW0p
ICYmIGVsZW0tPmhhc0F0dHJpYnV0ZShtX2F0dHJOYW1lKTsgfQorICAgIGJvb2wgbWF0Y2hlcyhj
b25zdCBFbGVtZW50KiBlbGVtKSBjb25zdCB7IHJldHVybiBIVE1MRWxlbWVudEVxdWl2YWxlbnQ6
Om1hdGNoZXMoZWxlbSkgJiYgZWxlbS0+aGFzQXR0cmlidXRlKG1fYXR0ck5hbWUpOyB9CiAgICAg
dmlydHVhbCBib29sIGhhc0F0dHJpYnV0ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2
aXJ0dWFsIGJvb2wgdmFsdWVJc1ByZXNlbnRJblN0eWxlKEVsZW1lbnQqLCBDU1NTdHlsZURlY2xh
cmF0aW9uKikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFkZFRvU3R5bGUoRWxlbWVudCosIEVk
aXRpbmdTdHlsZSopIGNvbnN0OwpAQCAtNjMyLDI2ICs2MzUsMzUgQEAgYm9vbCBFZGl0aW5nU3R5
bGU6OmNvbmZsaWN0c1dpdGhJbmxpbmVTdAogICAgIHJldHVybiBjb25mbGljdGluZ1Byb3BlcnRp
ZXMgJiYgIWNvbmZsaWN0aW5nUHJvcGVydGllcy0+aXNFbXB0eSgpOwogfQogCitzdGF0aWMgY29u
c3QgVmVjdG9yPE93blB0cjxIVE1MRWxlbWVudEVxdWl2YWxlbnQ+ID4mIGh0bWxFbGVtZW50RXF1
aXZhbGVudHMoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPE93blB0cjxIVE1M
RWxlbWVudEVxdWl2YWxlbnQ+ID4sIEhUTUxFbGVtZW50RXF1aXZhbGVudHMsICgpKTsKKworICAg
IGlmICghSFRNTEVsZW1lbnRFcXVpdmFsZW50cy5zaXplKCkpIHsKKyAgICAgICAgSFRNTEVsZW1l
bnRFcXVpdmFsZW50cy5hcHBlbmQoSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJv
cGVydHlGb250V2VpZ2h0LCBDU1NWYWx1ZUJvbGQsIEhUTUxOYW1lczo6YlRhZykpOworICAgICAg
ICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MRWxlbWVudEVxdWl2YWxlbnQ6OmNy
ZWF0ZShDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsIENTU1ZhbHVlQm9sZCwgSFRNTE5hbWVzOjpzdHJv
bmdUYWcpKTsKKyAgICAgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50cy5hcHBlbmQoSFRNTEVsZW1l
bnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCBDU1NWYWx1ZVN1
YiwgSFRNTE5hbWVzOjpzdWJUYWcpKTsKKyAgICAgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50cy5h
cHBlbmQoSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlWZXJ0aWNhbEFs
aWduLCBDU1NWYWx1ZVN1cGVyLCBIVE1MTmFtZXM6OnN1cFRhZykpOworICAgICAgICBIVE1MRWxl
bWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MRWxlbWVudEVxdWl2YWxlbnQ6OmNyZWF0ZShDU1NQ
cm9wZXJ0eUZvbnRTdHlsZSwgQ1NTVmFsdWVJdGFsaWMsIEhUTUxOYW1lczo6aVRhZykpOworICAg
ICAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MRWxlbWVudEVxdWl2YWxlbnQ6
OmNyZWF0ZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgQ1NTVmFsdWVJdGFsaWMsIEhUTUxOYW1lczo6
ZW1UYWcpKTsKKworICAgICAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MVGV4
dERlY29yYXRpb25FcXVpdmFsZW50OjpjcmVhdGUoQ1NTVmFsdWVVbmRlcmxpbmUsIEhUTUxOYW1l
czo6dVRhZykpOworICAgICAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChIVE1MVGV4
dERlY29yYXRpb25FcXVpdmFsZW50OjpjcmVhdGUoQ1NTVmFsdWVMaW5lVGhyb3VnaCwgSFRNTE5h
bWVzOjpzVGFnKSk7CisgICAgICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudHMuYXBwZW5kKEhUTUxU
ZXh0RGVjb3JhdGlvbkVxdWl2YWxlbnQ6OmNyZWF0ZShDU1NWYWx1ZUxpbmVUaHJvdWdoLCBIVE1M
TmFtZXM6OnN0cmlrZVRhZykpOworICAgIH0KKworICAgIHJldHVybiBIVE1MRWxlbWVudEVxdWl2
YWxlbnRzOworfQorCisKIGJvb2wgRWRpdGluZ1N0eWxlOjpjb25mbGljdHNXaXRoSW1wbGljaXRT
dHlsZU9mRWxlbWVudChIVE1MRWxlbWVudCogZWxlbWVudCwgRWRpdGluZ1N0eWxlKiBleHRyYWN0
ZWRTdHlsZSwgU2hvdWxkRXh0cmFjdE1hdGNoaW5nU3R5bGUgc2hvdWxkRXh0cmFjdE1hdGNoaW5n
U3R5bGUpIGNvbnN0CiB7CiAgICAgaWYgKCFtX211dGFibGVTdHlsZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgc3RhdGljIGNvbnN0IEhUTUxFbGVtZW50RXF1aXZhbGVudCogSFRNTEVx
dWl2YWxlbnRzW10gPSB7Ci0gICAgICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6Y3JlYXRlKENT
U1Byb3BlcnR5Rm9udFdlaWdodCwgQ1NTVmFsdWVCb2xkLCBIVE1MTmFtZXM6OmJUYWcpLmxlYWtQ
dHIoKSwKLSAgICAgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlG
b250V2VpZ2h0LCBDU1NWYWx1ZUJvbGQsIEhUTUxOYW1lczo6c3Ryb25nVGFnKS5sZWFrUHRyKCks
Ci0gICAgICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6Y3JlYXRlKENTU1Byb3BlcnR5VmVydGlj
YWxBbGlnbiwgQ1NTVmFsdWVTdWIsIEhUTUxOYW1lczo6c3ViVGFnKS5sZWFrUHRyKCksCi0gICAg
ICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6Y3JlYXRlKENTU1Byb3BlcnR5VmVydGljYWxBbGln
biwgQ1NTVmFsdWVTdXBlciwgSFRNTE5hbWVzOjpzdXBUYWcpLmxlYWtQdHIoKSwKLSAgICAgICAg
SFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlGb250U3R5bGUsIENTU1Zh
bHVlSXRhbGljLCBIVE1MTmFtZXM6OmlUYWcpLmxlYWtQdHIoKSwKLSAgICAgICAgSFRNTEVsZW1l
bnRFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlGb250U3R5bGUsIENTU1ZhbHVlSXRhbGlj
LCBIVE1MTmFtZXM6OmVtVGFnKS5sZWFrUHRyKCksCi0KLSAgICAgICAgSFRNTFRleHREZWNvcmF0
aW9uRXF1aXZhbGVudDo6Y3JlYXRlKENTU1ZhbHVlVW5kZXJsaW5lLCBIVE1MTmFtZXM6OnVUYWcp
LmxlYWtQdHIoKSwKLSAgICAgICAgSFRNTFRleHREZWNvcmF0aW9uRXF1aXZhbGVudDo6Y3JlYXRl
KENTU1ZhbHVlTGluZVRocm91Z2gsIEhUTUxOYW1lczo6c1RhZykubGVha1B0cigpLAotICAgICAg
ICBIVE1MVGV4dERlY29yYXRpb25FcXVpdmFsZW50OjpjcmVhdGUoQ1NTVmFsdWVMaW5lVGhyb3Vn
aCwgSFRNTE5hbWVzOjpzdHJpa2VUYWcpLmxlYWtQdHIoKSwKLSAgICB9OwotCi0gICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKEhUTUxFcXVpdmFsZW50cyk7ICsraSkg
ewotICAgICAgICBjb25zdCBIVE1MRWxlbWVudEVxdWl2YWxlbnQqIGVxdWl2YWxlbnQgPSBIVE1M
RXF1aXZhbGVudHNbaV07CisgICAgY29uc3QgVmVjdG9yPE93blB0cjxIVE1MRWxlbWVudEVxdWl2
YWxlbnQ+ID4mIEhUTUxFbGVtZW50RXF1aXZhbGVudHMgPSBodG1sRWxlbWVudEVxdWl2YWxlbnRz
KCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLnNp
emUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IEhUTUxFbGVtZW50RXF1aXZhbGVudCogZXF1aXZh
bGVudCA9IEhUTUxFbGVtZW50RXF1aXZhbGVudHNbaV0uZ2V0KCk7CiAgICAgICAgIGlmIChlcXVp
dmFsZW50LT5tYXRjaGVzKGVsZW1lbnQpICYmIGVxdWl2YWxlbnQtPnByb3BlcnR5RXhpc3RzSW5T
dHlsZShtX211dGFibGVTdHlsZS5nZXQoKSkKICAgICAgICAgICAgICYmIChzaG91bGRFeHRyYWN0
TWF0Y2hpbmdTdHlsZSA9PSBFeHRyYWN0TWF0Y2hpbmdTdHlsZSB8fCAhZXF1aXZhbGVudC0+dmFs
dWVJc1ByZXNlbnRJblN0eWxlKGVsZW1lbnQsIG1fbXV0YWJsZVN0eWxlLmdldCgpKSkpIHsKICAg
ICAgICAgICAgIGlmIChleHRyYWN0ZWRTdHlsZSkKQEAgLTY2Nyw2ICs2NzksOCBAQCBzdGF0aWMg
Y29uc3QgVmVjdG9yPE93blB0cjxIVE1MQXR0cmlidXRlCiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChWZWN0b3I8T3duUHRyPEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50PiA+LCBIVE1MQXR0cmlidXRl
RXF1aXZhbGVudHMsICgpKTsKIAogICAgIGlmICghSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnRzLnNp
emUoKSkgeworICAgICAgICAvLyBlbGVtZW50SXNTdHlsZWRTcGFuT3JIVE1MRXF1aXZhbGVudCBk
ZXBlbmRzIG9uIHRoZSBmYWN0IGVhY2ggSFRNTEF0dHJpdXRlRXF1aXZhbGVudCBtYXRjaGVzIGV4
YWN0bHkgb25lIGF0dHJpYnV0ZQorICAgICAgICAvLyBvZiBleGFjdGx5IG9uZSBlbGVtZW50IGV4
Y2VwdCBkaXJBdHRyLgogICAgICAgICBIVE1MQXR0cmlidXRlRXF1aXZhbGVudHMuYXBwZW5kKEhU
TUxBdHRyaWJ1dGVFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJvcGVydHlDb2xvciwgSFRNTE5hbWVz
Ojpmb250VGFnLCBIVE1MTmFtZXM6OmNvbG9yQXR0cikpOwogICAgICAgICBIVE1MQXR0cmlidXRl
RXF1aXZhbGVudHMuYXBwZW5kKEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50OjpjcmVhdGUoQ1NTUHJv
cGVydHlGb250RmFtaWx5LCBIVE1MTmFtZXM6OmZvbnRUYWcsIEhUTUxOYW1lczo6ZmFjZUF0dHIp
KTsKICAgICAgICAgSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnRzLmFwcGVuZChIVE1MRm9udFNpemVF
cXVpdmFsZW50OjpjcmVhdGUoKSk7CkBAIC03MzAsNiArNzQ0LDYyIEBAIGJvb2wgRWRpdGluZ1N0
eWxlOjpzdHlsZUlzUHJlc2VudEluQ29tcHUKICAgICByZXR1cm4gIW1fbXV0YWJsZVN0eWxlIHx8
ICFnZXRQcm9wZXJ0aWVzTm90SW4obV9tdXRhYmxlU3R5bGUuZ2V0KCksIGNvbXB1dGVkU3R5bGUo
bm9kZSkuZ2V0KCkpLT5sZW5ndGgoKTsKIH0KIAorYm9vbCBFZGl0aW5nU3R5bGU6OmVsZW1lbnRJ
c1N0eWxlZFNwYW5PckhUTUxFcXVpdmFsZW50KGNvbnN0IEhUTUxFbGVtZW50KiBlbGVtZW50KQor
eworICAgIGJvb2wgZWxlbWVudElzU3Bhbk9yRWxlbWVudEVxdWl2YWxlbnQgPSBmYWxzZTsKKyAg
ICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNwYW5UYWcpKQorICAgICAgICBl
bGVtZW50SXNTcGFuT3JFbGVtZW50RXF1aXZhbGVudCA9IHRydWU7CisgICAgZWxzZSB7CisgICAg
ICAgIGNvbnN0IFZlY3RvcjxPd25QdHI8SFRNTEVsZW1lbnRFcXVpdmFsZW50PiA+JiBIVE1MRWxl
bWVudEVxdWl2YWxlbnRzID0gaHRtbEVsZW1lbnRFcXVpdmFsZW50cygpOworICAgICAgICBzaXpl
X3QgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IEhUTUxFbGVtZW50RXF1aXZhbGVudHMuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChIVE1MRWxlbWVudEVxdWl2YWxlbnRzW2ldLT5t
YXRjaGVzKGVsZW1lbnQpKSB7CisgICAgICAgICAgICAgICAgZWxlbWVudElzU3Bhbk9yRWxlbWVu
dEVxdWl2YWxlbnQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgfQorCisgICAgY29uc3QgTmFtZWROb2RlTWFwKiBhdHRyaWJ1dGVN
YXAgPSBlbGVtZW50LT5hdHRyaWJ1dGVNYXAoKTsKKyAgICBpZiAoIWF0dHJpYnV0ZU1hcCB8fCBh
dHRyaWJ1dGVNYXAtPmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGVsZW1lbnRJc1NwYW5PckVs
ZW1lbnRFcXVpdmFsZW50OyAvLyBzcGFuLCBiLCBldGMuLi4gd2l0aG91dCBhbnkgYXR0cmlidXRl
cworCisgICAgdW5zaWduZWQgbWF0Y2hlZEF0dHJpYnV0ZXMgPSAwOworICAgIGNvbnN0IFZlY3Rv
cjxPd25QdHI8SFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnQ+ID4mIEhUTUxBdHRyaWJ1dGVFcXVpdmFs
ZW50cyA9IGh0bWxBdHRyaWJ1dGVFcXVpdmFsZW50cygpOworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlm
IChIVE1MQXR0cmlidXRlRXF1aXZhbGVudHNbaV0tPm1hdGNoZXMoZWxlbWVudCkgJiYgSFRNTEF0
dHJpYnV0ZUVxdWl2YWxlbnRzW2ldLT5hdHRyaWJ1dGVOYW1lKCkgIT0gSFRNTE5hbWVzOjpkaXJB
dHRyKQorICAgICAgICAgICAgbWF0Y2hlZEF0dHJpYnV0ZXMrKzsKKyAgICB9CisKKyAgICBpZiAo
IWVsZW1lbnRJc1NwYW5PckVsZW1lbnRFcXVpdmFsZW50ICYmICFtYXRjaGVkQXR0cmlidXRlcykK
KyAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBlbGVtZW50IGlzIG5vdCBhIHNwYW4sIGEgaHRtbCBl
bGVtZW50IGVxdWl2YWxlbnQsIG9yIGZvbnQgZWxlbWVudC4KKyAgICAKKyAgICBpZiAoZWxlbWVu
dC0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyKSA9PSBBcHBsZVN0eWxlU3BhbkNs
YXNzKQorICAgICAgICBtYXRjaGVkQXR0cmlidXRlcysrOworCisgICAgaWYgKGVsZW1lbnQtPmhh
c0F0dHJpYnV0ZShIVE1MTmFtZXM6OnN0eWxlQXR0cikpIHsKKyAgICAgICAgaWYgKENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSA9IGVsZW1lbnQtPmlubGluZVN0eWxlRGVjbCgpKSB7
CisgICAgICAgICAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y29uc3RfaXRlcmF0b3Ig
ZW5kID0gc3R5bGUtPmVuZCgpOworICAgICAgICAgICAgZm9yIChDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBzdHlsZS0+YmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7CisgICAgICAgICAgICAgICAgYm9vbCBtYXRjaGVkID0gZmFsc2U7CisgICAgICAgICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1FZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0
aWVzOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVkaXRpbmdJbmhlcml0YWJsZVBy
b3BlcnRpZXNbaV0gPT0gaXQtPmlkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNo
ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFtYXRjaGVk
ICYmIGl0LT5pZCgpICE9IENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
bWF0Y2hlZEF0dHJpYnV0ZXMrKzsKKyAgICB9CisKKyAgICAvLyBmb250IHdpdGggY29sb3IgYXR0
cmlidXRlLCBzcGFuIHdpdGggc3R5bGUgYXR0cmlidXRlLCBldGMuLi4KKyAgICBBU1NFUlQobWF0
Y2hlZEF0dHJpYnV0ZXMgPD0gYXR0cmlidXRlTWFwLT5sZW5ndGgoKSk7CisgICAgcmV0dXJuIG1h
dGNoZWRBdHRyaWJ1dGVzID49IGF0dHJpYnV0ZU1hcC0+bGVuZ3RoKCk7Cit9CisKIHZvaWQgRWRp
dGluZ1N0eWxlOjpwcmVwYXJlVG9BcHBseUF0KGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbiwgU2hv
dWxkUHJlc2VydmVXcml0aW5nRGlyZWN0aW9uIHNob3VsZFByZXNlcnZlV3JpdGluZ0RpcmVjdGlv
bikKIHsKICAgICBpZiAoIW1fbXV0YWJsZVN0eWxlKQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmdTdHlsZS5oCShyZXZpc2lvbiA5MjYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ1N0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNyw2ICsxMTcsOSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBleHRyYWN0Q29uZmxpY3RpbmdJbXBsaWNpdFN0eWxlT2ZBdHRyaWJ1dGVz
KEhUTUxFbGVtZW50KiwgU2hvdWxkUHJlc2VydmVXcml0aW5nRGlyZWN0aW9uLCBFZGl0aW5nU3R5
bGUqIGV4dHJhY3RlZFN0eWxlLAogICAgICAgICAgICAgVmVjdG9yPFF1YWxpZmllZE5hbWU+JiBj
b25mbGljdGluZ0F0dHJpYnV0ZXMsIFNob3VsZEV4dHJhY3RNYXRjaGluZ1N0eWxlKSBjb25zdDsK
ICAgICBib29sIHN0eWxlSXNQcmVzZW50SW5Db21wdXRlZFN0eWxlT2ZOb2RlKE5vZGUqKSBjb25z
dDsKKworICAgIHN0YXRpYyBib29sIGVsZW1lbnRJc1N0eWxlZFNwYW5PckhUTUxFcXVpdmFsZW50
KGNvbnN0IEhUTUxFbGVtZW50Kik7CisKICAgICB2b2lkIHByZXBhcmVUb0FwcGx5QXQoY29uc3Qg
UG9zaXRpb24mLCBTaG91bGRQcmVzZXJ2ZVdyaXRpbmdEaXJlY3Rpb24gPSBEb05vdFByZXNlcnZl
V3JpdGluZ0RpcmVjdGlvbik7CiAgICAgdm9pZCBtZXJnZVR5cGluZ1N0eWxlKERvY3VtZW50Kik7
CiAgICAgdm9pZCBtZXJnZUlubGluZVN0eWxlT2ZFbGVtZW50KFN0eWxlZEVsZW1lbnQqKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuY3BwCShyZXZpc2lvbiA5MjYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03ODQsMjkgKzc4NCwyMiBA
QCBzdGF0aWMgTm9kZSogZW5jbG9zaW5nSW5saW5lKE5vZGUqIG5vZGUpCiBzdGF0aWMgYm9vbCBp
c0lubGluZU5vZGVXaXRoU3R5bGUoY29uc3QgTm9kZSogbm9kZSkKIHsKICAgICAvLyBXZSBkb24n
dCB3YW50IHRvIHNraXAgb3ZlciBhbnkgYmxvY2sgZWxlbWVudHMuCi0gICAgaWYgKCFub2RlLT5y
ZW5kZXJlcigpIHx8ICFub2RlLT5yZW5kZXJlcigpLT5pc0lubGluZSgpKQorICAgIGlmIChpc0Js
b2NrKG5vZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIW5vZGUtPmlzSFRN
TEVsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAorCiAgICAgLy8gV2UgY2Fu
IHNraXAgb3ZlciBlbGVtZW50cyB3aG9zZSBjbGFzcyBhdHRyaWJ1dGUgaXMKICAgICAvLyBvbmUg
b2Ygb3VyIGludGVybmFsIGNsYXNzZXMuCiAgICAgY29uc3QgSFRNTEVsZW1lbnQqIGVsZW1lbnQg
PSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MRWxlbWVudCo+KG5vZGUpOwogICAgIEF0b21pY1N0cmlu
ZyBjbGFzc0F0dHJpYnV0ZVZhbHVlID0gZWxlbWVudC0+Z2V0QXR0cmlidXRlKGNsYXNzQXR0cik7
Ci0gICAgaWYgKGNsYXNzQXR0cmlidXRlVmFsdWUgPT0gQXBwbGVTdHlsZVNwYW5DbGFzcwotICAg
ICAgICB8fCBjbGFzc0F0dHJpYnV0ZVZhbHVlID09IEFwcGxlVGFiU3BhbkNsYXNzCisgICAgaWYg
KGNsYXNzQXR0cmlidXRlVmFsdWUgPT0gQXBwbGVUYWJTcGFuQ2xhc3MKICAgICAgICAgfHwgY2xh
c3NBdHRyaWJ1dGVWYWx1ZSA9PSBBcHBsZUNvbnZlcnRlZFNwYWNlCiAgICAgICAgIHx8IGNsYXNz
QXR0cmlidXRlVmFsdWUgPT0gQXBwbGVQYXN0ZUFzUXVvdGF0aW9uKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAotICAgIC8vIFdlIGNhbiBza2lwIGlubGluZSBlbGVtZW50cyB0aGF0IGRvbid0IGhh
dmUgYXR0cmlidXRlcyBvciB3aG9zZSBvbmx5Ci0gICAgLy8gYXR0cmlidXRlIGlzIHRoZSBzdHls
ZSBhdHRyaWJ1dGUuCi0gICAgY29uc3QgTmFtZWROb2RlTWFwKiBhdHRyaWJ1dGVNYXAgPSBlbGVt
ZW50LT5hdHRyaWJ1dGVNYXAoKTsKLSAgICBpZiAoIWF0dHJpYnV0ZU1hcCB8fCBhdHRyaWJ1dGVN
YXAtPmlzRW1wdHkoKSB8fCAoYXR0cmlidXRlTWFwLT5sZW5ndGgoKSA9PSAxICYmIGVsZW1lbnQt
Pmhhc0F0dHJpYnV0ZShzdHlsZUF0dHIpKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIEVkaXRpbmdTdHlsZTo6ZWxlbWVudElzU3R5bGVkU3Bh
bk9ySFRNTEVxdWl2YWxlbnQoZWxlbWVudCk7CiB9CiAgICAgCiB2b2lkIFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjpkb0FwcGx5KCkKQEAgLTk1OCwxNiArOTUxLDE2IEBAIHZvaWQgUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIC8vIFdlIGNhbiBza2lwIHRoaXMgb3B0aW1p
emF0aW9uIGZvciBmcmFnbWVudHMgbm90IHdyYXBwZWQgaW4gb25lIG9mCiAgICAgLy8gb3VyIHN0
eWxlIHNwYW5zIGFuZCBmb3IgcG9zaXRpb25zIGluc2lkZSBsaXN0IGl0ZW1zCiAgICAgLy8gc2lu
Y2UgaW5zZXJ0QXNMaXN0SXRlbXMgYWxyZWFkeSBkb2VzIHRoZSByaWdodCB0aGluZy4KLSAgICBp
ZiAoIW1fbWF0Y2hTdHlsZSAmJiAhZW5jbG9zaW5nTGlzdChpbnNlcnRpb25Qb3MuY29udGFpbmVy
Tm9kZSgpKSAmJiBpc1N0eWxlU3BhbihmcmFnbWVudC5maXJzdENoaWxkKCkpKSB7CisgICAgaWYg
KCFtX21hdGNoU3R5bGUgJiYgIWVuY2xvc2luZ0xpc3QoaW5zZXJ0aW9uUG9zLmNvbnRhaW5lck5v
ZGUoKSkpIHsKICAgICAgICAgaWYgKGluc2VydGlvblBvcy5jb250YWluZXJOb2RlKCktPmlzVGV4
dE5vZGUoKSAmJiBpbnNlcnRpb25Qb3Mub2Zmc2V0SW5Db250YWluZXJOb2RlKCkgJiYgIWluc2Vy
dGlvblBvcy5hdExhc3RFZGl0aW5nUG9zaXRpb25Gb3JOb2RlKCkpIHsKLSAgICAgICAgICAgIHNw
bGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudChpbnNlcnRpb25Qb3MuY29udGFpbmVyVGV4dCgp
LCBpbnNlcnRpb25Qb3Mub2Zmc2V0SW5Db250YWluZXJOb2RlKCkpOworICAgICAgICAgICAgc3Bs
aXRUZXh0Tm9kZShpbnNlcnRpb25Qb3MuY29udGFpbmVyVGV4dCgpLCBpbnNlcnRpb25Qb3Mub2Zm
c2V0SW5Db250YWluZXJOb2RlKCkpOwogICAgICAgICAgICAgaW5zZXJ0aW9uUG9zID0gZmlyc3RQ
b3NpdGlvbkluTm9kZShpbnNlcnRpb25Qb3MuY29udGFpbmVyTm9kZSgpKTsKICAgICAgICAgfQog
Ci0gICAgICAgIC8vIEZJWE1FOiBpc0lubGluZU5vZGVXaXRoU3R5bGUgZG9lcyBub3QgY2hlY2sg
ZWRpdGFiaWxpdHkuCi0gICAgICAgIGlmIChSZWZQdHI8Tm9kZT4gbm9kZVRvU3BsaXRUbyA9IGhp
Z2hlc3RFbmNsb3NpbmdOb2RlT2ZUeXBlKGluc2VydGlvblBvcywgaXNJbmxpbmVOb2RlV2l0aFN0
eWxlKSkgewotICAgICAgICAgICAgaWYgKGluc2VydGlvblBvcy5jb250YWluZXJOb2RlKCkgIT0g
bm9kZVRvU3BsaXRUbykgewotICAgICAgICAgICAgICAgIG5vZGVUb1NwbGl0VG8gPSBzcGxpdFRy
ZWVUb05vZGUoaW5zZXJ0aW9uUG9zLmFuY2hvck5vZGUoKSwgbm9kZVRvU3BsaXRUby5nZXQoKSwg
dHJ1ZSkuZ2V0KCk7CisgICAgICAgIGlmIChSZWZQdHI8Tm9kZT4gbm9kZVRvU3BsaXRUbyA9IGhp
Z2hlc3RFbmNsb3NpbmdOb2RlT2ZUeXBlKGluc2VydGlvblBvcywgaXNJbmxpbmVOb2RlV2l0aFN0
eWxlLCBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSwKKyAgICAgICAgICAgIGVuY2xvc2luZ0Js
b2NrKGluc2VydGlvblBvcy5jb250YWluZXJOb2RlKCkpKSkgeworICAgICAgICAgICAgaWYgKGlu
c2VydGlvblBvcy5jb250YWluZXJOb2RlKCkgIT0gbm9kZVRvU3BsaXRUby0+cGFyZW50Tm9kZSgp
KSB7CisgICAgICAgICAgICAgICAgbm9kZVRvU3BsaXRUbyA9IHNwbGl0VHJlZVRvTm9kZShpbnNl
cnRpb25Qb3MuYW5jaG9yTm9kZSgpLCBub2RlVG9TcGxpdFRvLT5wYXJlbnROb2RlKCkpLmdldCgp
OwogICAgICAgICAgICAgICAgIGluc2VydGlvblBvcyA9IHBvc2l0aW9uSW5QYXJlbnRCZWZvcmVO
b2RlKG5vZGVUb1NwbGl0VG8uZ2V0KCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAkocmV2aXNpb24gOTI2MzApCisr
KyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjA3LDExICs2MDcsMTEgQEAgTm9kZSogZW5jbG9zaW5nTm9kZU9mVHlwZShjb25zdCBQb3Np
dGlvbgogICAgIHJldHVybiAwOwogfQogCi1Ob2RlKiBoaWdoZXN0RW5jbG9zaW5nTm9kZU9mVHlw
ZShjb25zdCBQb3NpdGlvbiYgcCwgYm9vbCAoKm5vZGVJc09mVHlwZSkoY29uc3QgTm9kZSopLCBF
ZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgcnVsZSkKK05vZGUqIGhpZ2hlc3RFbmNsb3NpbmdO
b2RlT2ZUeXBlKGNvbnN0IFBvc2l0aW9uJiBwLCBib29sICgqbm9kZUlzT2ZUeXBlKShjb25zdCBO
b2RlKiksIEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBydWxlLCBOb2RlKiBzdGF5V2l0aGlu
KQogewogICAgIE5vZGUqIGhpZ2hlc3QgPSAwOwogICAgIE5vZGUqIHJvb3QgPSBydWxlID09IENh
bm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5ID8gaGlnaGVzdEVkaXRhYmxlUm9vdChwKSA6IDA7Ci0g
ICAgZm9yIChOb2RlKiBuID0gcC5jb250YWluZXJOb2RlKCk7IG47IG4gPSBuLT5wYXJlbnROb2Rl
KCkpIHsKKyAgICBmb3IgKE5vZGUqIG4gPSBwLmNvbnRhaW5lck5vZGUoKTsgbiAmJiBuICE9IHN0
YXlXaXRoaW47IG4gPSBuLT5wYXJlbnROb2RlKCkpIHsKICAgICAgICAgaWYgKHJvb3QgJiYgIW4t
PnJlbmRlcmVySXNFZGl0YWJsZSgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlm
IChub2RlSXNPZlR5cGUobikpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0
aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5o
CShyZXZpc2lvbiA5MjYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcu
aAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsOCBAQCBjbGFzcyBWaXNpYmxlU2VsZWN0aW9u
OwogCiBOb2RlKiBoaWdoZXN0QW5jZXN0b3IoTm9kZSopOwogTm9kZSogaGlnaGVzdEVkaXRhYmxl
Um9vdChjb25zdCBQb3NpdGlvbiYpOwotTm9kZSogaGlnaGVzdEVuY2xvc2luZ05vZGVPZlR5cGUo
Y29uc3QgUG9zaXRpb24mLCBib29sICgqbm9kZUlzT2ZUeXBlKShjb25zdCBOb2RlKiksIEVkaXRp
bmdCb3VuZGFyeUNyb3NzaW5nUnVsZSA9IENhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKK05v
ZGUqIGhpZ2hlc3RFbmNsb3NpbmdOb2RlT2ZUeXBlKGNvbnN0IFBvc2l0aW9uJiwgYm9vbCAoKm5v
ZGVJc09mVHlwZSkoY29uc3QgTm9kZSopLAorICAgIEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVs
ZSA9IENhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5LCBOb2RlKiBzdGF5V2l0aGluID0gMCk7CiBO
b2RlKiBsb3dlc3RFZGl0YWJsZUFuY2VzdG9yKE5vZGUqKTsgICAKIAogTm9kZSogZW5jbG9zaW5n
QmxvY2soTm9kZSosIEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSA9IENhbm5vdENyb3NzRWRp
dGluZ0JvdW5kYXJ5KTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNjMwKQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDgtMDggIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwZWF0ZWQgY29weSBh
bmQgcGFzdGUgcmVzdWx0IGluIG5lc3RlZCBzdHlsZSBlbGVtZW50cyBzdWNoIGFzIGIgYW5kIGZv
bnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODI0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
dGVzdHMgdG8gZW5zdXJlIFdlYktpdCBkb2VzIG5vdCBuZXN0IHN0eWxpbmcgZWxlbWVudHMgYW5k
IGRvZXMgbm90IHJlbW92ZSBlbGVtZW50cyB3aXRoIG5vbi1lZGl0aW5nIHN0eWxlcy4KKyAgICAg
ICAgQWxzbyByZWJhc2VsaW5lZCBzZXZlcmFsIHRlc3RzLgorCisgICAgICAgICogZWRpdGluZy9w
YXN0ZWJvYXJkLzUwNjU2MDUtZXhwZWN0ZWQudHh0OiBMb3N0IHdyYXBwaW5nIGZvbnQgYW5kIHNw
YW4gZWxlbWVudHMuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL21lcmdlLWVuZC0xLWV4
cGVjdGVkLnR4dDogU3BhbiBpcyBzcGxpdCBidXQgdmlzdWFsbHkgaWRlbnRpY2FsLgorICAgICAg
ICAqIGVkaXRpbmcvcGFzdGVib2FyZC9tZXJnZS1lbmQtMi1leHBlY3RlZC50eHQ6IERpdHRvLgor
ICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1hZnRlci1pbmxpbmUtc3R5bGUtZWxl
bWVudC1leHBlY3RlZC50eHQ6IE5vIGxvbmdlciBib2xkcyAibGluZSAyIiBlcnJvbmVvdXNseS4K
KyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC0wMTEtZXhwZWN0ZWQudHh0
OiBMb3N0IHdyYXBwaW5nIGZvbnQsIGIsIGFuZCBzcGFuIGVsZW1lbnRzLgorICAgICAgICAqIGVk
aXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUtMi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUt
Mi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13
aXRoLXN0eWxlLTMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTMuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRp
dGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS00LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS00
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS13aXRoLXJl
ZHVuZGFudC1zdHlsZS1leHBlY3RlZC50eHQ6IExvc3Qgd3JhcHBpbmcgYi4KKyAgICAgICAgKiBl
ZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aC1yZWR1bmRhbnQtc3R5bGUuaHRtbDogVXBkYXRl
ZCBjb21tZW50cyBwZXIgcmViYXNlbGluZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13
aW4vZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtMDExLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKwogMjAxMS0wOC0wOCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIGltcGxlbWVudCBiYXNpYyBob3Jpem9udGFsIGZsZXhpbmcKSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC81MDY1NjA1LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvNTA2NTYwNS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDkyNjMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkLzUwNjU2MDUtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMSw3ICsyMSw3IEBAIEVESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3QKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogc2hv
dWxkSW5zZXJ0Tm9kZTojZG9jdW1lbnQtZnJhZ21lbnQgcmVwbGFjaW5nRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAwIG9mIERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDAgb2YgRElW
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgZ2l2ZW5BY3Rpb246V2ViVmlld0luc2Vy
dEFjdGlvblBhc3RlZAogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRF
OiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZy
b20gMjQgb2YgI3RleHQgPiBGT05UID4gRElWID4gU1BBTiA+IEZPTlQgPiBESVYgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAyNCBvZiAjdGV4dCA+IEZPTlQgPiBESVYgPiBTUEFO
ID4gRk9OVCA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5T
U2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5H
IERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdl
OnJhbmdlIGZyb20gMjQgb2YgI3RleHQgPiBGT05UID4gRElWID4gRElWID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gMjQgb2YgI3RleHQgPiBGT05UID4gRElWID4gRElWID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURv
d25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgog
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZp
Y2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KQEAgLTQwLDE1ICs0MCw5IEBAIFRoaXMg
dGVzdHMgZm9yIGEgYnVnIHdoZXJlIHRleHQgY29waWVkIHcKIHwgICA8Zm9udD4KIHwgICAgIGNs
YXNzPSJBcHBsZS1zdHlsZS1zcGFuIgogfCAgICAgY29sb3I9IiNmZjAwMDAiCi18ICAgICA8c3Bh
bj4KK3wgICAgICJUaGlzIHRleHQgc2hvdWxkIGJlIHJlZC4iCit8ICAgPGRpdj4KK3wgICAgIDxm
b250PgogfCAgICAgICBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIKLXwgICAgICAgc3R5bGU9ImNv
bG9yOiByZ2IoMCwgMCwgMCk7ICIKLXwgICAgICAgPGZvbnQ+Ci18ICAgICAgICAgY2xhc3M9IkFw
cGxlLXN0eWxlLXNwYW4iCi18ICAgICAgICAgY29sb3I9IiNmZjAwMDAiCi18ICAgICAgICAgIlRo
aXMgdGV4dCBzaG91bGQgYmUgcmVkLiIKLXwgICAgICAgPGRpdj4KLXwgICAgICAgICA8Zm9udD4K
LXwgICAgICAgICAgIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIgotfCAgICAgICAgICAgY29sb3I9
IiNmZjAwMDAiCi18ICAgICAgICAgICAiVGhpcyB0ZXh0IHNob3VsZCBiZSByZWQuPCNzZWxlY3Rp
b24tY2FyZXQ+IgorfCAgICAgICBjb2xvcj0iI2ZmMDAwMCIKK3wgICAgICAgIlRoaXMgdGV4dCBz
aG91bGQgYmUgcmVkLjwjc2VsZWN0aW9uLWNhcmV0PiIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9tZXJnZS1lbmQtMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL21lcmdlLWVuZC0xLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gOTI2MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvbWVyZ2UtZW5k
LTEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsOSBAQCBUaGlzIHRlc3Rz
IHRoZSBsYXN0IHBhcmFncmFwaCBpbiB0aGUgcGFzCiAiYmF6IiBhbmQgIm9vIiBzaG91bGQgYmUg
aW4gdGhlIHNhbWUgcGFyYWdyYXBoIGJlbG93LgogfCA8c3Bhbj4KIHwgICAiZiIKLXwgICAiYmFy
IgorfCAiYmFyIgorfCA8c3Bhbj4KIHwgICA8YnI+Ci18ICAgImJhejwjc2VsZWN0aW9uLWNhcmV0
PiIKK3wgImJhejwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgPHNwYW4+CiB8ICAgIm9vIgpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL21lcmdlLWVuZC0yLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvbWVyZ2UtZW5kLTIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5MjYzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFz
dGVib2FyZC9tZXJnZS1lbmQtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsNyAr
NCw3IEBAIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE8KIEVESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFu
Z2U6cmFuZ2UgZnJvbSAzIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IHRvIDMgb2YgI3RleHQgPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDMgb2YgI3RleHQgPiBTUEFOID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gMyBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGls
bFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRE
T01SYW5nZTpyYW5nZSBmcm9tIDMgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0byAzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01S
YW5nZTpyYW5nZSBmcm9tIDMgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byAzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6
TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpX
ZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KQEAg
LTEzLDggKzEzLDEwIEBAIFRoaXMgdGVzdHMgdGhlIGxhc3QgcGFyYWdyYXBoIGluIHRoZSBwYXMK
ICJiYXoiIGFuZCAib29iYXIiIHNob3VsZCBiZSBpbiB0aGUgc2FtZSBwYXJhZ3JhcGggYmVsb3cK
IHwgPHNwYW4+CiB8ICAgImYiCi18ICAgImJhciIKK3wgImJhciIKK3wgPHNwYW4+CiB8ICAgPGJy
PgotfCAgICJiYXo8I3NlbGVjdGlvbi1jYXJldD4iCit8ICJiYXo8I3NlbGVjdGlvbi1jYXJldD4i
Cit8IDxzcGFuPgogfCAgICJvbyIKIHwgImJhciIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9wYXN0ZS1hZnRlci1pbmxpbmUtc3R5bGUtZWxlbWVudC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWFmdGVy
LWlubGluZS1zdHlsZS1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTI2MzApCisrKyBM
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYWZ0ZXItaW5saW5lLXN0eWxlLWVs
ZW1lbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDYgKzQsNyBAQCBUaGlzIHRl
c3QgZXhoaWJpdHMgYSBidWcuIFRoZSBpbnNlcnRlZCBjCiB8ICAgdHlwZT0iY2l0ZSIKIHwgICA8
Yj4KIHwgICAgICJsaW5lIDHCoCIKLXwgICAgICJsaW5lIDI8I3NlbGVjdGlvbi1jYXJldD4iCi18
ICAgICAiwqAiCit8ICAgImxpbmUgMjwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgICAiwqAiCit8ICAg
PGI+CiB8ICAgICA8YnI+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFz
dGUtdGV4dC0wMTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LTAxMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDkyNjMw
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtMDExLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAgRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdAogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRJ
bnNlcnROb2RlOiNkb2N1bWVudC1mcmFnbWVudCByZXBsYWNpbmdET01SYW5nZTpyYW5nZSBmcm9t
IDAgb2YgUCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDAgb2YgUCA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IGdpdmVuQWN0aW9uOldlYlZpZXdJbnNlcnRBY3Rpb25QYXN0ZWQKIEVESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0
ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDUgb2YgI3RleHQgPiBCID4g
Rk9OVCA+IFAgPiBTUEFOID4gQiA+IEZPTlQgPiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gNSBvZiAjdGV4dCA+IEIgPiBGT05UID4gUCA+IFNQQU4gPiBCID4gRk9OVCA+IFAgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVh
bSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2Vs
ZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDUgb2YgI3RleHQgPiBC
ID4gRk9OVCA+IFAgPiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+
IEIgPiBGT05UID4gUCA+IFAgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1Nl
bGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZp
ZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgpAQCAtMjcs
MjIgKzI3LDE2IEBAIFRoZSBjb250ZW50IHdhcyBpbnNlcnRlZCBhdCB0aGUgc3RhcnQgb2YKIHwg
ICAgIDxiPgogfCAgICAgICAidGhlcmUiCiB8IDxwPgotfCAgIDxmb250PgotfCAgICAgZmFjZT0i
TW9uYWNvIgotfCAgICAgPGI+Ci18ICAgICAgIDxzcGFuPgotfCAgICAgICAgIGNsYXNzPSJBcHBs
ZS1zdHlsZS1zcGFuIgotfCAgICAgICAgIHN0eWxlPSJmb250LWZhbWlseTogVGltZXM7IGZvbnQt
d2VpZ2h0OiBub3JtYWw7ICIKLXwgICAgICAgICA8cD4KLXwgICAgICAgICAgIDxmb250PgotfCAg
ICAgICAgICAgICBmYWNlPSJNb25hY28iCi18ICAgICAgICAgICAgIDxiPgotfCAgICAgICAgICAg
ICAgICJoZWxsbyIKLXwgICAgICAgICA8cD4KLXwgICAgICAgICAgIDxmb250PgotfCAgICAgICAg
ICAgICBmYWNlPSJNb25hY28iCi18ICAgICAgICAgICAgIDxiPgotfCAgICAgICAgICAgICAgICJ0
aGVyZTwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgICA8cD4KK3wgICAgIDxmb250PgorfCAgICAgICBm
YWNlPSJNb25hY28iCit8ICAgICAgIDxiPgorfCAgICAgICAgICJoZWxsbyIKK3wgICA8cD4KK3wg
ICAgIDxmb250PgorfCAgICAgICBmYWNlPSJNb25hY28iCit8ICAgICAgIDxiPgorfCAgICAgICAg
ICJ0aGVyZTwjc2VsZWN0aW9uLWNhcmV0PiIKIHwgIgogCiAKSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUtMi1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0
aC1zdHlsZS0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUtMi1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMjUgQEAKK1RoaXMgdGVzdHMgY29weWluZyBhbmQgcGFzdGluZyB0
ZXh0IGRvZXMgbm90IHJlc3VsdCBpbiBuZXN0ZWQgc3R5bGUgZWxlbWVudHMgc3VjaCBhcyBiLCBl
bSwgYW5kIGZvbnQuCitUbyBtYW51YWxseSB0ZXN0LCBjb3B5IGFuZCBwYXN0ZSAiaGVsbG8gd29y
bGQiIGJlbG93LiBXZWJLaXQgc2hvdWxkIG5vdCBuZXN0IGIsIGksIHUsIGFuZCBmb250LgorCitC
ZWZvcmUgY29weS1wYXN0ZToKK3wgPGI+Cit8ICAgPGk+Cit8ICAgICA8dT4KK3wgICAgICAgPGZv
bnQ+Cit8ICAgICAgICAgY29sb3I9InJlZCIKK3wgICAgICAgICAiPCNzZWxlY3Rpb24tY2FyZXQ+
aGVsbG8gd29ybGQiCisKK0FmdGVyIGNvcHktcGFzdGU6Cit8IDxiPgorfCAgIDxpPgorfCAgICAg
PHU+Cit8ICAgICAgIDxmb250PgorfCAgICAgICAgIGNvbG9yPSJyZWQiCit8ICAgICAgICAgImhl
bGxvIHdvcmxkPCNzZWxlY3Rpb24tY2FyZXQ+IgorfCA8Zm9udD4KK3wgICBjbGFzcz0iQXBwbGUt
c3R5bGUtc3BhbiIKK3wgICBjb2xvcj0iI2ZmMDAwMCIKK3wgICA8Yj4KK3wgICAgIDxpPgorfCAg
ICAgICA8dT4KK3wgICAgICAgICA8YnI+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTIuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdp
dGgtc3R5bGUtMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPlRoaXMgdGVzdHMgY29w
eWluZyBhbmQgcGFzdGluZyB0ZXh0IGRvZXMgbm90IHJlc3VsdCBpbiBuZXN0ZWQgc3R5bGUgZWxl
bWVudHMgc3VjaCBhcyBiLCBlbSwgYW5kIGZvbnQuCitUbyBtYW51YWxseSB0ZXN0LCBjb3B5IGFu
ZCBwYXN0ZSAiaGVsbG8gd29ybGQiIGJlbG93LiBXZWJLaXQgc2hvdWxkIG5vdCBuZXN0IGIsIGks
IHUsIGFuZCBmb250LjwvcD4KKzxkaXYgaWQ9InRlc3QiIGNvbnRlbnRlZGl0YWJsZT48Yj48aT48
dT48Zm9udCBjb2xvcj0icmVkIj5oZWxsbyB3b3JsZDwvZm9udD48L3U+PC9pPjwvYj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworTWFya3VwLmRlc2NyaXB0aW9uKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdkZXNjcmlwdGlvbicpLnRleHRDb250ZW50KTsKKworZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKS5mb2N1cygpOworCitNYXJrdXAuZHVtcCgndGVzdCcs
ICdCZWZvcmUgY29weS1wYXN0ZScpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1NlbGVjdEFsbCcs
IGZhbHNlLCBudWxsKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdDb3B5JywgZmFsc2UsIG51bGwp
OworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1Bhc3RlJywgZmFsc2UsIG51bGwpOworTWFya3VwLmR1
bXAoJ3Rlc3QnLCAnQWZ0ZXIgY29weS1wYXN0ZScpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdp
dGgtc3R5bGUtMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS0zLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgt
c3R5bGUtMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQgQEAKK1RoaXMg
dGVzdHMgY29weWluZyBhbmQgcGFzdGluZyB0ZXh0IGRvZXMgbm90IHJlc3VsdCBpbiBuZXN0ZWQg
c3R5bGUgZWxlbWVudHMgc3VjaCBhcyBiLCBlbSwgYW5kIGZvbnQuCitUbyBtYW51YWxseSB0ZXN0
LCBjb3B5ICJoZWxsbyB3b3JsZCIgYmVsb3cgYW5kIHBhc3RlIGl0IGluIHRoZSBib3ggYmVsb3cu
IFdlYktpdCBzaG91bGQgbm90IG5lc3QgYiwgaSwgdSwgYW5kIGZvbnQuCisKK0JlZm9yZSBjb3B5
OgorfCA8aT4KK3wgICAiaGVsbG8iCisKK0FmdGVyIHBhc3RlOgorfCA8aT4KK3wgICAiaGVsbG88
I3NlbGVjdGlvbi1jYXJldD4iCit8IDxmb250PgorfCAgIHNpemU9IjUiCit8ICAgPHU+Cit8ICAg
ICA8YnI+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13
aXRoLXN0eWxlLTMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS10ZXh0LXdpdGgtc3R5bGUtMy5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPlRoaXMgdGVzdHMgY29weWluZyBhbmQgcGFzdGluZyB0
ZXh0IGRvZXMgbm90IHJlc3VsdCBpbiBuZXN0ZWQgc3R5bGUgZWxlbWVudHMgc3VjaCBhcyBiLCBl
bSwgYW5kIGZvbnQuCitUbyBtYW51YWxseSB0ZXN0LCBjb3B5ICJoZWxsbyB3b3JsZCIgYmVsb3cg
YW5kIHBhc3RlIGl0IGluIHRoZSBib3ggYmVsb3cuIFdlYktpdCBzaG91bGQgbm90IG5lc3QgYiwg
aSwgdSwgYW5kIGZvbnQuPC9wPgorPGRpdiBpZD0ic291cmNlIiBjb250ZW50ZWRpdGFibGU+PGk+
aGVsbG88L2k+PC9kaXY+Cis8ZGl2IGlkPSJkZXN0aW5hdGlvbiIgc3R5bGU9ImJvcmRlcjogc29s
aWQgMXB4IGJsb2NrOyIgY29udGVudGVkaXRhYmxlPjxmb250IHNpemU9NT48dT48YnI+PC91Pjwv
Zm9udD48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworTWFya3VwLmRlc2Ny
aXB0aW9uKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXNjcmlwdGlvbicpLnRleHRDb250ZW50
KTsKKworTWFya3VwLmR1bXAoJ3NvdXJjZScsICdCZWZvcmUgY29weScpOworCitkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnc291cmNlJykuZm9jdXMoKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdT
ZWxlY3RBbGwnLCBmYWxzZSwgbnVsbCk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgnQ29weScsIGZh
bHNlLCBudWxsKTsKKworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rlc3RpbmF0aW9uJykuZm9j
dXMoKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScsIGZhbHNlLCBudWxsKTsKKworTWFy
a3VwLmR1bXAoJ2Rlc3RpbmF0aW9uJywgJ0FmdGVyIHBhc3RlJyk7CisKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3Rl
LXRleHQtd2l0aC1zdHlsZS00LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRl
eHQtd2l0aC1zdHlsZS00LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBA
QAorVGhpcyB0ZXN0cyBjb3B5aW5nIGFuZCBwYXN0aW5nIHRleHQgZG9lcyBub3QgcmVtb3ZlIG5v
bi1lZGl0aW5nIHN0eWxlIGluIHRoZSBkZXN0aW5hdGlvbi4KK1RvIG1hbnVhbGx5IHRlc3QsIGNv
cHkgImhlbGxvIHdvcmxkIiBiZWxvdyBhbmQgcGFzdGUgaXQgaW4gdGhlIGJveCBiZWxvdy4gVGhl
IGJsdWUgYm9yZGVyIHNob3VsZCBzdGF5IGFmdGVyIHRoZSBwYXN0ZS4KKworQmVmb3JlIGNvcHk6
Cit8IDxiPgorfCAgIHN0eWxlPSJib3JkZXI6IHNvbGlkIDVweCBibHVlO3BhZGRpbmc6IDVweDsi
Cit8ICAgPGJyPgorCitBZnRlciBwYXN0ZToKK3wgPGI+Cit8ICAgc3R5bGU9ImJvcmRlcjogc29s
aWQgNXB4IGJsdWU7cGFkZGluZzogNXB4OyIKK3wgICA8c3Bhbj4KK3wgICAgIGNsYXNzPSJBcHBs
ZS1zdHlsZS1zcGFuIgorfCAgICAgc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7ICIKK3wgICAg
IDxpPgorfCAgICAgICAiaGVsbG88I3NlbGVjdGlvbi1jYXJldD4iCit8ICAgPGJyPgpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRleHQtd2l0aC1zdHlsZS00Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRl
eHQtd2l0aC1zdHlsZS00Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC13aXRoLXN0eWxlLTQuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj5UaGlzIHRlc3RzIGNvcHlpbmcgYW5kIHBhc3RpbmcgdGV4dCBkb2VzIG5vdCBy
ZW1vdmUgbm9uLWVkaXRpbmcgc3R5bGUgaW4gdGhlIGRlc3RpbmF0aW9uLgorVG8gbWFudWFsbHkg
dGVzdCwgY29weSAiaGVsbG8gd29ybGQiIGJlbG93IGFuZCBwYXN0ZSBpdCBpbiB0aGUgYm94IGJl
bG93LiBUaGUgYmx1ZSBib3JkZXIgc2hvdWxkIHN0YXkgYWZ0ZXIgdGhlIHBhc3RlLjwvcD4KKzxk
aXYgaWQ9InNvdXJjZSIgY29udGVudGVkaXRhYmxlPjxpPmhlbGxvPC9pPjwvZGl2PgorPGRpdiBp
ZD0iZGVzdGluYXRpb24iIHN0eWxlPSJwYWRkaW5nOjIwcHg7IiBjb250ZW50ZWRpdGFibGU+PGIg
c3R5bGU9ImJvcmRlcjogc29saWQgNXB4IGJsdWU7cGFkZGluZzogNXB4OyI+PGJyPjwvYj48L2Zv
bnQ+PC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK01hcmt1cC5kZXNjcmlw
dGlvbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzY3JpcHRpb24nKS50ZXh0Q29udGVudCk7
CisKK01hcmt1cC5kdW1wKCdkZXN0aW5hdGlvbicsICdCZWZvcmUgY29weScpOworCitkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnc291cmNlJykuZm9jdXMoKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5k
KCdTZWxlY3RBbGwnLCBmYWxzZSwgbnVsbCk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgnQ29weScs
IGZhbHNlLCBudWxsKTsKKworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rlc3RpbmF0aW9uJyku
Zm9jdXMoKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScsIGZhbHNlLCBudWxsKTsKKwor
TWFya3VwLmR1bXAoJ2Rlc3RpbmF0aW9uJywgJ0FmdGVyIHBhc3RlJyk7CisKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bh
c3RlLXdpdGgtcmVkdW5kYW50LXN0eWxlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aC1yZWR1bmRhbnQtc3R5bGUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA5MjYzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1zdHlsZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTIgKzEsMTUgQEAKIFRoaXMgdGVzdHMgcGFzdGluZyBjb250ZW50IHdpdGggcmVk
dW5kYW50IGlubGluZSBzdHlsZS4KLVlvdSBzaG91bGQgbm90IHNlZSBhbnkgc3R5bGUgYXR0cmli
dXRlcyBleGNlcHQgb25lIG9uIHRoZSBiIGVsZW1lbnQgYW5kIHRoZXJlIHNob3VsZCBiZSBubyBz
cGFucy4KK1lvdSBzaG91bGQgbm90IHNlZSBhbnkgaW5saW5lIHN0eWxlcyBvdGhlciB0aGFuIGZv
bnQtd2VpZ2h0OiBib2xkIGFuZCB0aGVyZSBzaG91bGQgYmUgZXhhY3RseSBvbmUgc3BhbiBhcm91
bmQgV2ViS2l0LgorfCA8ZW0+Cit8ICAgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyAiCit8ICAg
ImhlbGxvIHdvcmxkIgorfCA8YnI+Cit8IDxzcGFuPgorfCAgIHN0eWxlPSJmb250LXdlaWdodDog
Ym9sZDsiCit8ICAgIldlYktpdCIKK3wgPGJyPgorfCA8ZW0+Cit8ICAgInJvY2tzPCNzZWxlY3Rp
b24tY2FyZXQ+IgogfCA8Yj4KIHwgICBzdHlsZT0iZm9udC1zdHlsZTogaXRhbGljOyIKLXwgICA8
ZW0+Ci18ICAgICAiaGVsbG8gd29ybGQiCi18ICAgPGJyPgotfCAgICJXZWJLaXQiCi18ICAgPGJy
PgotfCAgIDxlbT4KLXwgICAgICJyb2Nrczwjc2VsZWN0aW9uLWNhcmV0PiIKIHwgICA8YnI+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aC1yZWR1bmRhbnQt
c3R5bGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQv
cGFzdGUtd2l0aC1yZWR1bmRhbnQtc3R5bGUuaHRtbAkocmV2aXNpb24gOTI2MzApCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aC1yZWR1bmRhbnQtc3R5bGUuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTcsNyArMTcsNyBAQCBkb2N1bWVudC5leGVjQ29tbWFuZCgn
aW5zZXJ0SFRNTCcsIGZhbHNlCiAgICAgKyAnPGVtPjxzcGFuIHN0eWxlPSJmb250LXN0eWxlOiBp
dGFsaWM7Ij5yb2Nrczwvc3Bhbj48L2VtPicpOwogCiBNYXJrdXAuZGVzY3JpcHRpb24oJ1RoaXMg
dGVzdHMgcGFzdGluZyBjb250ZW50IHdpdGggcmVkdW5kYW50IGlubGluZSBzdHlsZS5cbicKLSAg
ICArICdZb3Ugc2hvdWxkIG5vdCBzZWUgYW55IHN0eWxlIGF0dHJpYnV0ZXMgZXhjZXB0IG9uZSBv
biB0aGUgYiBlbGVtZW50IGFuZCB0aGVyZSBzaG91bGQgYmUgbm8gc3BhbnMuJyk7CisgICAgKyAn
WW91IHNob3VsZCBub3Qgc2VlIGFueSBpbmxpbmUgc3R5bGVzIG90aGVyIHRoYW4gZm9udC13ZWln
aHQ6IGJvbGQgYW5kIHRoZXJlIHNob3VsZCBiZSBleGFjdGx5IG9uZSBzcGFuIGFyb3VuZCBXZWJL
aXQuJyk7CiBNYXJrdXAuZHVtcCgndGVzdCcpOwogCiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC0w
MTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC0wMTEtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiA5MjYzMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9lZGl0
aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC0wMTEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQ5ICswLDAgQEAKLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVk
RE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIFAgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAw
IG9mIFAgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBv
ZiAjdGV4dCA+IEIgPiBGT05UID4gUCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2Yg
I3RleHQgPiBCID4gRk9OVCA+IFAgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpO
U1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQotRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVM
RUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0
ID4gQiA+IEZPTlQgPiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+
IEIgPiBGT05UID4gUCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAwIG9mIFAgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAwIG9mIFAgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBz
dGlsbFNlbGVjdGluZzpGQUxTRQotRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KLUVE
SVRJTkcgREVMRUdBVEU6IHNob3VsZEluc2VydE5vZGU6I2RvY3VtZW50LWZyYWdtZW50IHJlcGxh
Y2luZ0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gMCBvZiBQID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgZ2l2ZW5BY3Rpb246V2ViVmlld0lu
c2VydEFjdGlvblBhc3RlZAotRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVH
QVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdl
IGZyb20gNSBvZiAjdGV4dCA+IEIgPiBGT05UID4gUCA+IFNQQU4gPiBCID4gRk9OVCA+IFAgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0ID4gQiA+IEZPTlQgPiBQID4gU1BB
TiA+IEIgPiBGT05UID4gUCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2Vs
ZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCi1FRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmll
d0RpZENoYW5nZU5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1UaGVyZSB3
YXMgYSBidWcgd2hlbiBwYXN0aW5nIGF0IHRoZSBlbmQgb2YgdGhlIGJsb2NrLgotVGhlIGNvbnRl
bnQgd2FzIGluc2VydGVkIGF0IHRoZSBzdGFydCBvZiB0aGUgYmxvY2sgaW5zdGVhZCBvZiB0aGUg
ZW5kLiBUaGlzIHRlc3RzIHRoZSBpbnNlcnQtYXQtZW5kIGNhc2UuCi18ICIKLSIKLXwgPHA+Ci18
ICAgPGZvbnQ+Ci18ICAgICBmYWNlPSJNb25hY28iCi18ICAgICA8Yj4KLXwgICAgICAgImhlbGxv
IgotfCAiCi0iCi18IDxwPgotfCAgIDxmb250PgotfCAgICAgZmFjZT0iTW9uYWNvIgotfCAgICAg
PGI+Ci18ICAgICAgICJ0aGVyZSIKLXwgPHA+Ci18ICAgPGZvbnQ+Ci18ICAgICBmYWNlPSJNb25h
Y28iCi18ICAgICA8Yj4KLXwgICAgICAgPHNwYW4+Ci18ICAgICAgICAgY2xhc3M9IkFwcGxlLXN0
eWxlLXNwYW4iCi18ICAgICAgICAgc3R5bGU9ImZvbnQtZmFtaWx5OiAndGltZXMgbmV3IHJvbWFu
JzsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgIgotfCAgICAgICAgIDxwPgotfCAgICAgICAgICAgPGZv
bnQ+Ci18ICAgICAgICAgICAgIGZhY2U9Ik1vbmFjbyIKLXwgICAgICAgICAgICAgPGI+Ci18ICAg
ICAgICAgICAgICAgImhlbGxvIgotfCAgICAgICAgIDxwPgotfCAgICAgICAgICAgPGZvbnQ+Ci18
ICAgICAgICAgICAgIGZhY2U9Ik1vbmFjbyIKLXwgICAgICAgICAgICAgPGI+Ci18ICAgICAgICAg
ICAgICAgInRoZXJlPCNzZWxlY3Rpb24tY2FyZXQ+IgotfCAiCi0KLQotIgo=
</data>
<flag name="review"
          id="98892"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>