<?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>67007</bug_id>
          
          <creation_ts>2011-08-25 17:58:52 -0700</creation_ts>
          <short_desc>r93794 results in ruby tests causing assertion failure in RenderBlock.cpp</short_desc>
          <delta_ts>2024-05-17 16:16:31 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Kasting">pkasting</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>bdakin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>hyatt</cc>
    
    <cc>inferno</cc>
    
    <cc>koivisto</cc>
    
    <cc>mitz</cc>
    
    <cc>pnormand</cc>
    
    <cc>rniwa</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>457305</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2011-08-25 17:58:52 -0700</bug_when>
    <thetext>See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&amp;tests=fast%2Fruby%2Fafter-block-doesnt-crash.html%2Cfast%2Fruby%2Fafter-table-doesnt-crash.html%2Cfast%2Fruby%2Fgenerated-after-counter-doesnt-crash.html%2Cfast%2Fruby%2Fgenerated-before-and-after-counter-doesnt-crash.html .  Four ruby tests are causing this assertion failure:

ASSERTION FAILED: anonymousChild-&gt;isTable()
third_party/WebKit/Source/WebCore/rendering/RenderBlock.cpp(698) : virtual void WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks(WebCore::RenderObject*, WebCore::RenderObject*)

Here&apos;s a stack:

	WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks() [0x16c1b7f]
	WebCore::RenderBlock::addChildIgnoringContinuation() [0x16c220c]
	WebCore::RenderBlock::addChild() [0x16c214e]
	WebCore::RenderRubyAsBlock::addChild() [0x17aefeb]
	WebCore::NodeRendererFactory::createRendererIfNeeded() [0xe5e358]
	WebCore::Node::createRendererIfNeeded() [0xe44edb]
	WebCore::Text::attach() [0xe92804]
	WebCore::ContainerNode::attach() [0xdc4e2f]
	WebCore::Element::attach() [0xe1b8b0]
	WebCore::Node::reattach() [0xdbff60]
	WebCore::Element::recalcStyle() [0xe1bff9]
	WebCore::Element::recalcStyle() [0xe1c624]

I suspect this is a pre-existing bug in the rubythat is merely exposed by this change.  Because the change was probably a security fix and I don&apos;t want to roll it out + the rebaselines that landed later, I&apos;m going to instead mark it as an expected failure for Chromium (and skip it for other ports).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457313</commentid>
    <comment_count>1</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2011-08-25 18:06:04 -0700</bug_when>
    <thetext>Skipped these for all platforms in r93846.  Please revert that expectations change once this is fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457379</commentid>
    <comment_count>2</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2011-08-25 21:38:39 -0700</bug_when>
    <thetext>Peter, thanks for skipping this. I was going to do that too. Basically, ruby tags are not able to handle :before and :after properly. my change exposes the incorrect behavior. The current tests should be rendertree tests (and not just crashing tests). This will tell that ruby :after child with table display are created at the right place.

Roland, will you have some time to take a closer look at this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457395</commentid>
    <comment_count>3</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2011-08-25 22:26:30 -0700</bug_when>
    <thetext>See the renderings below before my patch.

&lt;html&gt;
&lt;style type=&quot;text/css&quot;&gt;
ruby {
    float: left;
}
ruby::after{
        display: table;
        content: &quot;AFTER&quot;;
}
&lt;/style&gt;
&lt;ruby&gt;CONTENT&lt;/ruby&gt;


Content-Type: text/plain
layer at (0,0) size 800x600
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
  RenderBlock {HTML} at (0,0) size 800x600
    RenderBody {BODY} at (8,8) size 784x584
      RenderRuby (block) {RUBY} at (0,0) size 129x22
        RenderBlock (generated) at (0,0) size 52x18
          RenderTable at (0,0) size 52x18
            RenderTableSection (anonymous) at (0,0) size 52x18
              RenderTableRow (anonymous) at (0,0) size 52x18
                RenderTableCell (anonymous) at (0,0) size 52x18 [r=0 c=0 rs=1 cs=1]
                  RenderText at (0,0) size 52x18
                    text run at (0,0) width 52: &quot;AFTER&quot;
        RenderRubyRun (anonymous) at (52,4) size 77x18
          RenderRubyBase (anonymous) at (0,0) size 77x18
            RenderText {#text} at (0,0) size 77x18
              text run at (0,0) width 77: &quot;CONTENT&quot;

the after child is inccorectly placed before content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457410</commentid>
    <comment_count>4</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2011-08-25 23:02:04 -0700</bug_when>
    <thetext>after my patch, rendering is correct (even though assert fails telling that we need to pass this properly through the renderruby specific machinery(like tables, see next condition after the assert) to handle these :after child)

layer at (0,0) size 800x600
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
  RenderBlock {HTML} at (0,0) size 800x600
    RenderBody {BODY} at (8,8) size 784x584
      RenderRuby (block) {RUBY} at (0,0) size 129x22
        RenderRubyRun (anonymous) at (0,4) size 77x18
          RenderRubyBase (anonymous) at (0,0) size 77x18
            RenderText {#text} at (0,0) size 77x18
              text run at (0,0) width 77: &quot;CONTENT&quot;
        RenderBlock (generated) at (77,0) size 52x18
          RenderTable at (0,0) size 52x18
            RenderTableSection (anonymous) at (0,0) size 52x18
              RenderTableRow (anonymous) at (0,0) size 52x18
                RenderTableCell (anonymous) at (0,0) size 52x18 [r=0 c=0 rs=1 cs=1]
                  RenderText at (0,0) size 52x18
                    text run at (0,0) width 52: &quot;AFTER&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457412</commentid>
    <comment_count>5</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-08-25 23:11:16 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; after my patch, rendering is correct (even though assert fails telling that we need to pass this properly through the renderruby specific machinery(like tables, see next condition after the assert) to handle these :after child)

did you say &quot;patch&quot;? :)

AFAICT on a quick glance, the bug in the ruby code should be fixed by replacing

-        RenderInline::addChild(lastRun);
+       RenderInline::addChild(lastRun, rubyAfterBlock(this));

-        RenderBlock::addChild(lastRun);
+       RenderBlock::addChild(lastRun, rubyAfterBlock(this));

I.e., place any new child before any already existing AFTER block.

However, this will still cause the initially mentioned ASSERT with, e.g.,  display: table-row, because addChildIgnoringAnonymousColumnBlocks tests for isAnonymousBlock, which requires a BLOCK or BOX. However, ruby uses INLINE_BLOCK... &gt;_&lt;

As far as I&apos;m concerned, the check for display style doesn&apos;t belong in isAnonymousBlock, but removing it will very likely open a Pandora&apos;s box of trouble. It seems the safest way to handle generated content with &lt;ruby&gt; is doing what I tried avoiding: adding special RenderRubyRun objects just for them... *sigh*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457548</commentid>
    <comment_count>6</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2011-08-26 07:22:40 -0700</bug_when>
    <thetext>*** Bug 67036 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458438</commentid>
    <comment_count>7</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2011-08-29 13:57:47 -0700</bug_when>
    <thetext>Ok, so we don&apos;t have any bug here and dont need the fix in c#5. Roland, i will leave this bug to you to fix the assert and add some more rendertree tests.

1. RenderBlock beforeChild calculation is fixed with my fix in r93794.
&lt;html&gt;
&lt;body style=&quot;font: 1em/1 Ahem, sans-serif;&quot;&gt;
&lt;style type=&quot;text/css&quot;&gt;
ruby {
    display: block;
}
ruby::after{
    content: &quot;AFTER&quot;;
	display: table-cell;
}
&lt;/style&gt;
&lt;ruby id=&quot;test&quot;&gt;&lt;/ruby&gt;
&lt;script&gt;
    document.body.offsetTop;
	
	var ruby = document.getElementById(&apos;test&apos;);
	ruby.appendChild(document.createTextNode(&quot;CONTENT&quot;));
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;

2. RenderInline beforeChild calculation already exists,
void RenderInline::addChildIgnoringContinuation(RenderObject* newChild, RenderObject* beforeChild)
{
    // Make sure we don&apos;t append things after :after-generated content if we have it.
    if (!beforeChild &amp;&amp; isAfterContent(lastChild()))
        beforeChild = lastChild();

&lt;html&gt;
&lt;body style=&quot;font: 1em/1 Ahem, sans-serif;&quot;&gt;
&lt;style type=&quot;text/css&quot;&gt;
ruby::after{
    content: &quot;AFTER&quot;;
}
&lt;/style&gt;
&lt;ruby id=&quot;test&quot;&gt;&lt;/ruby&gt;
&lt;script&gt;
    document.body.offsetTop;
	
	var ruby = document.getElementById(&apos;test&apos;);
	ruby.appendChild(document.createTextNode(&quot;CONTENT&quot;));
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460088</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-31 17:01:51 -0700</bug_when>
    <thetext>Ronald, do you expect to work on this soon?

Even though there are crashing expectations, it&apos;s no good to have crash reporter window mysteriously pop up when running regression tests locally, so we need to add these to Skipped list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460457</commentid>
    <comment_count>9</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-09-01 07:51:06 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Ronald, do you expect to work on this soon?

I am out of office for the next 2 weeks, so my debugging resources are limited atm.

&gt; Even though there are crashing expectations, it&apos;s no good to have crash reporter window mysteriously pop up when running regression tests locally, so we need to add these to Skipped list.

Could you please do this for the time being?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460663</commentid>
    <comment_count>10</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2011-09-01 11:59:54 -0700</bug_when>
    <thetext>*** Bug 67145 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460667</commentid>
    <comment_count>11</comment_count>
      <attachid>106000</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-01 12:07:15 -0700</bug_when>
    <thetext>Created attachment 106000
Patch to disable the tests for now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460671</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-01 12:11:13 -0700</bug_when>
    <thetext>Tests disabled in http://trac.webkit.org/changeset/94327</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473858</commentid>
    <comment_count>13</comment_count>
      <attachid>108826</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-09-27 05:06:44 -0700</bug_when>
    <thetext>Created attachment 108826
Patch

Wrapping generated content into their own ruby runs. This should sidestep all the various issues we encountered with implicit assumptions on anonymous blocks. IMHO it also makes the code more readable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473870</commentid>
    <comment_count>14</comment_count>
      <attachid>108826</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-27 05:32:19 -0700</bug_when>
    <thetext>Comment on attachment 108826
Patch

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

New failing tests:
fast/ruby/ruby-beforeafter.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484956</commentid>
    <comment_count>15</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-10-16 23:49:52 -0700</bug_when>
    <thetext>In case the failing test is preventing someone from reviewing: This is most likely just a missing rebaseline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607469</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-04-22 22:32:00 -0700</bug_when>
    <thetext>Is this patch still valid? Or is it obsolete?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607519</commentid>
    <comment_count>17</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-04-23 00:31:21 -0700</bug_when>
    <thetext>I think it is still valid(In reply to comment #16)
&gt; Is this patch still valid? Or is it obsolete?

I think it should still be valid, fundamentally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611181</commentid>
    <comment_count>18</comment_count>
      <attachid>108826</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-04-26 19:21:25 -0700</bug_when>
    <thetext>Comment on attachment 108826
Patch

We don&apos;t want ruby to have its own code for managing generated content. This will open a can of security worms. The bug looks to be in RenderBlock::addChildIgnoringAnonymousColumnBlocks because it cannot passing the child addition to the correct anonymous parent and then hits that assert. We recently had similar bug fixed for fullscreen. See http://trac.webkit.org/changeset/111277. I don&apos;t think you need to change to isAnonymousBlock (as you said in c#5), but you do need to teach addChildIgnoringAnonymousColumnBlocks to handle ruby wrappers. Also see my c#7 and please first try to see if the test causes incorrect rendering, like does any testcase result in the wrong location of :before, :after content. Once we have a testcase showing wrong rendering, then it will be easier to see the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2036132</commentid>
    <comment_count>19</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2024-05-17 14:49:03 -0700</bug_when>
    <thetext>@Antti &amp; Alan - is it applicable for newer CSS-Ruby implementation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2036160</commentid>
    <comment_count>20</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-05-17 16:16:31 -0700</bug_when>
    <thetext>we don&apos;t have any of these classes anymore.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106000</attachid>
            <date>2011-09-01 12:07:15 -0700</date>
            <delta_ts>2011-09-27 05:06:37 -0700</delta_ts>
            <desc>Patch to disable the tests for now</desc>
            <filename>bug-67007-20110901120714.patch</filename>
            <type>text/plain</type>
            <size>8257</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQzMjQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYzQzMTEwYzQxYmJlYTYzNWJkYzg0
ODQ0ZjE1NDNiYjNlMWJkZTk5Li42NjQ1ZDVjYmIxNWQwZjE2Nzg3ZTQzYjEwZDYwMWNmMGEzNmFi
MjRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDktMDEgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgcjkzNzk0IHJlc3VsdHMgaW4gcnVieSB0
ZXN0cyBjYXVzaW5nIGFzc2VydGlvbiBmYWlsdXJlIGluIFJlbmRlckJsb2NrLmNwcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcwMDcKKyAgICAgICAg
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERpc2FibGUg
dGhlc2UgYXNzZXJ0aW5nIHJ1YnkgdGVzdHMgdW50aWwgdGhlIHVuZGVybHlpbmcgaXNzdWUgY2Fu
IGJlIGZpeGVkLgorCisgICAgICAgICogZmFzdC9ydWJ5L2FmdGVyLWJsb2NrLWRvZXNudC1jcmFz
aC5odG1sLWRpc2FibGVkOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2FmdGVy
LWJsb2NrLWRvZXNudC1jcmFzaC5odG1sLgorICAgICAgICAqIGZhc3QvcnVieS9hZnRlci10YWJs
ZS1kb2VzbnQtY3Jhc2guaHRtbC1kaXNhYmxlZDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zh
c3QvcnVieS9hZnRlci10YWJsZS1kb2VzbnQtY3Jhc2guaHRtbC4KKyAgICAgICAgKiBmYXN0L3J1
YnkvZ2VuZXJhdGVkLWFmdGVyLWNvdW50ZXItZG9lc250LWNyYXNoLmh0bWwtZGlzYWJsZWQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3J1YnkvZ2VuZXJhdGVkLWFmdGVyLWNvdW50ZXIt
ZG9lc250LWNyYXNoLmh0bWwuCisgICAgICAgICogZmFzdC9ydWJ5L2dlbmVyYXRlZC1iZWZvcmUt
YW5kLWFmdGVyLWNvdW50ZXItZG9lc250LWNyYXNoLmh0bWwtZGlzYWJsZWQ6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9mYXN0L3J1YnkvZ2VuZXJhdGVkLWJlZm9yZS1hbmQtYWZ0ZXItY291bnRl
ci1kb2VzbnQtY3Jhc2guaHRtbC4KKwogMjAxMS0wOS0wMSAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIGh0dHAvdGVzdHMvbG9hZGluZy9lbXB0eS11cmxzLmh0
bWwgc2hvdWxkbid0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvYWZ0ZXItYmxv
Y2stZG9lc250LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvYWZ0ZXItYmxvY2st
ZG9lc250LWNyYXNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxODRlMTdi
ZTRlZjRhZTk5ZmE4YzRjNTcwZThlZTBlZDMyMDRiNmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2FmdGVyLWJsb2Nr
LWRvZXNudC1jcmFzaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPG1ldGEg
aHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iMTt1cmw9IiAvPgotPHN0eWxlPgotICAgIHJ1
Ynk6OmFmdGVyIHsKLSAgICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgICAgIGNvbnRlbnQ6IHVy
bCgiaHR0cDovL3l5Iik7Ci0gICAgfQotPC9zdHlsZT4KLTxydWJ5PgotICAgIDxydWJ5PgotICAg
ICAgICA8cnVieT4KLSAgICAgICAgICAgIDxzdHlsZT4KLSAgICAgICAgICAgICAgICBydWJ5IHsK
LSAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OwkKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICA8L3N0eWxlPgotICAgICAgICA8L3J1Ynk+Ci0gICAgPC9ydWJ5PgotPC9ydWJ5
PgotPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci08L3NjcmlwdD4KLVRoaXMgdGVz
dCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcnVieS9hZnRlci1ibG9jay1kb2VzbnQtY3Jhc2guaHRtbC1kaXNhYmxlZCBiL0xheW91dFRl
c3RzL2Zhc3QvcnVieS9hZnRlci1ibG9jay1kb2VzbnQtY3Jhc2guaHRtbC1kaXNhYmxlZApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40MTg0ZTE3YmU0ZWY0YWU5OWZhOGM0YzU3MGU4ZWUwZWQzMjA0YjZkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2FmdGVyLWJsb2NrLWRvZXNudC1jcmFz
aC5odG1sLWRpc2FibGVkCkBAIC0wLDAgKzEsMjMgQEAKKzxtZXRhIGh0dHAtZXF1aXY9InJlZnJl
c2giIGNvbnRlbnQ9IjE7dXJsPSIgLz4KKzxzdHlsZT4KKyAgICBydWJ5OjphZnRlciB7CisgICAg
ICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICBjb250ZW50OiB1cmwoImh0dHA6Ly95eSIpOwor
ICAgIH0KKzwvc3R5bGU+Cis8cnVieT4KKyAgICA8cnVieT4KKyAgICAgICAgPHJ1Ynk+CisgICAg
ICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAgICAgcnVieSB7CisgICAgICAgICAgICAgICAg
ICAgIGZsb2F0OiByaWdodDsJCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgPC9zdHls
ZT4KKyAgICAgICAgPC9ydWJ5PgorICAgIDwvcnVieT4KKzwvcnVieT4KKzxzY3JpcHQ+CisgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+CitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRv
ZXNuJ3QgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvYWZ0ZXItdGFi
bGUtZG9lc250LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvYWZ0ZXItdGFibGUt
ZG9lc250LWNyYXNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlZGY3ZjE5
YjJjOTZjNzE4MThjNGRkZTVkZDU5MDEzYTc0ZGFkNDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2FmdGVyLXRhYmxl
LWRvZXNudC1jcmFzaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPG1ldGEg
aHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iMTt1cmw9IiAvPgotPHN0eWxlPgotICAgIHJ1
Ynk6OmFmdGVyIHsKLSAgICAgICAgZGlzcGxheTogdGFibGU7Ci0gICAgICAgIGNvbnRlbnQ6IHVy
bCgiaHR0cDovL3l5Iik7Ci0gICAgfQotPC9zdHlsZT4KLTxydWJ5PgotICAgIDxydWJ5PgotICAg
ICAgICA8cnVieT4KLSAgICAgICAgICAgIDxzdHlsZT4KLSAgICAgICAgICAgICAgICBydWJ5IHsK
LSAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OwkKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICA8L3N0eWxlPgotICAgICAgICA8L3J1Ynk+Ci0gICAgPC9ydWJ5PgotPC9ydWJ5
PgotPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci08L3NjcmlwdD4KLVRoaXMgdGVz
dCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcnVieS9hZnRlci10YWJsZS1kb2VzbnQtY3Jhc2guaHRtbC1kaXNhYmxlZCBiL0xheW91dFRl
c3RzL2Zhc3QvcnVieS9hZnRlci10YWJsZS1kb2VzbnQtY3Jhc2guaHRtbC1kaXNhYmxlZApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZWRmN2YxOWIyYzk2YzcxODE4YzRkZGU1ZGQ1OTAxM2E3NGRhZDQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2FmdGVyLXRhYmxlLWRvZXNudC1jcmFz
aC5odG1sLWRpc2FibGVkCkBAIC0wLDAgKzEsMjMgQEAKKzxtZXRhIGh0dHAtZXF1aXY9InJlZnJl
c2giIGNvbnRlbnQ9IjE7dXJsPSIgLz4KKzxzdHlsZT4KKyAgICBydWJ5OjphZnRlciB7CisgICAg
ICAgIGRpc3BsYXk6IHRhYmxlOworICAgICAgICBjb250ZW50OiB1cmwoImh0dHA6Ly95eSIpOwor
ICAgIH0KKzwvc3R5bGU+Cis8cnVieT4KKyAgICA8cnVieT4KKyAgICAgICAgPHJ1Ynk+CisgICAg
ICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAgICAgcnVieSB7CisgICAgICAgICAgICAgICAg
ICAgIGZsb2F0OiByaWdodDsJCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgPC9zdHls
ZT4KKyAgICAgICAgPC9ydWJ5PgorICAgIDwvcnVieT4KKzwvcnVieT4KKzxzY3JpcHQ+CisgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+CitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRv
ZXNuJ3QgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvZ2VuZXJhdGVk
LWFmdGVyLWNvdW50ZXItZG9lc250LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3J1Ynkv
Z2VuZXJhdGVkLWFmdGVyLWNvdW50ZXItZG9lc250LWNyYXNoLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDI3MWMzMTBjMDM5MDY1Y2M5NjA1YTk2N2FkOWUwNTJmYjNmMDJjZjMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9ydWJ5L2dlbmVyYXRlZC1hZnRlci1jb3VudGVyLWRvZXNudC1jcmFzaC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotPGh0bWw+Ci08c2NyaXB0PgotICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKLTwvc2NyaXB0PgotPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLQotcnVi
eTphZnRlcnsKLQljb3VudGVyLXJlc2V0OiBnIC0yNTMyNjUzIEsgLTQ4Njk2ODk5NDE0MDYyIGxs
IC00ODIwMjUxNDY0ODQzNyByciAtMTgyMTg5OTQxNDA2MjsKLX0KLXJ1Ynk6OmFmdGVyewotCWRp
c3BsYXk6IHRhYmxlOwotCWNvbnRlbnQ6IHVybCgiaHR0cDovL3h4Iik7Ci19Ci0KLTwvc3R5bGU+
Ci0JPHJ1Ynk+Ci0JCTxydWJ5PgotCQkJPHJ1Ynk+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiPgot
cnVieXsKLQlmbG9hdDogbGVmdDsKLX0KLTwvc3R5bGU+Ci0JPHJ1Ynk+Ci1UaGlzIHRlc3QgcGFz
c2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3J1
YnkvZ2VuZXJhdGVkLWFmdGVyLWNvdW50ZXItZG9lc250LWNyYXNoLmh0bWwtZGlzYWJsZWQgYi9M
YXlvdXRUZXN0cy9mYXN0L3J1YnkvZ2VuZXJhdGVkLWFmdGVyLWNvdW50ZXItZG9lc250LWNyYXNo
Lmh0bWwtZGlzYWJsZWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjcxYzMxMGMwMzkwNjVjYzk2MDVhOTY3YWQ5ZTA1
MmZiM2YwMmNmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcnVieS9nZW5l
cmF0ZWQtYWZ0ZXItY291bnRlci1kb2VzbnQtY3Jhc2guaHRtbC1kaXNhYmxlZApAQCAtMCwwICsx
LDI2IEBACis8aHRtbD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworPC9zY3Jp
cHQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCitydWJ5OmFmdGVyeworCWNvdW50ZXItcmVz
ZXQ6IGcgLTI1MzI2NTMgSyAtNDg2OTY4OTk0MTQwNjIgbGwgLTQ4MjAyNTE0NjQ4NDM3IHJyIC0x
ODIxODk5NDE0MDYyOworfQorcnVieTo6YWZ0ZXJ7CisJZGlzcGxheTogdGFibGU7CisJY29udGVu
dDogdXJsKCJodHRwOi8veHgiKTsKK30KKworPC9zdHlsZT4KKwk8cnVieT4KKwkJPHJ1Ynk+CisJ
CQk8cnVieT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitydWJ5eworCWZsb2F0OiBsZWZ0Owor
fQorPC9zdHlsZT4KKwk8cnVieT4KK1RoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFz
aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcnVieS9nZW5lcmF0ZWQtYmVmb3JlLWFu
ZC1hZnRlci1jb3VudGVyLWRvZXNudC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5
L2dlbmVyYXRlZC1iZWZvcmUtYW5kLWFmdGVyLWNvdW50ZXItZG9lc250LWNyYXNoLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllYzc3ZjdkZWM1NDRlMjc1MGM5NTdkNDA0NTZh
ODA5YjU2YzlkNGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2dlbmVyYXRlZC1iZWZvcmUtYW5kLWFmdGVyLWNvdW50
ZXItZG9lc250LWNyYXNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08aHRt
bD4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotPC9zY3JpcHQ+Ci08c3R5bGUg
dHlwZT0idGV4dC9jc3MiPgotCi1ydWJ5OmJlZm9yZXsKLQljb3VudGVyLXJlc2V0OiBnIC0yNTMy
NjUzIEsgLTQ4Njk2ODk5NDE0MDYyIGxsIC00ODIwMjUxNDY0ODQzNyByciAtMTgyMTg5OTQxNDA2
MjsKLX0KLXJ1Ynk6OmJlZm9yZXsKLQlkaXNwbGF5OiB0YWJsZTsKLQljb250ZW50OiB1cmwoImh0
dHA6Ly94eCIpOwotfQotcnVieTphZnRlcnsKLQljb3VudGVyLXJlc2V0OiBnIC0yNTMyNjUzIEsg
LTQ4Njk2ODk5NDE0MDYyIGxsIC00ODIwMjUxNDY0ODQzNyByciAtMTgyMTg5OTQxNDA2MjsKLX0K
LXJ1Ynk6OmFmdGVyewotCWRpc3BsYXk6IHRhYmxlOwotCWNvbnRlbnQ6IHVybCgiaHR0cDovL3l5
Iik7Ci19Ci0KLTwvc3R5bGU+Ci0JPHJ1Ynk+Ci0JCTxydWJ5PgotCQkJPHJ1Ynk+Ci08c3R5bGUg
dHlwZT0idGV4dC9jc3MiPgotcnVieXsKLQlmbG9hdDogbGVmdDsKLX0KLTwvc3R5bGU+Ci0JPHJ1
Ynk+Ci1UaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3J1YnkvZ2VuZXJhdGVkLWJlZm9yZS1hbmQtYWZ0ZXItY291bnRlci1k
b2VzbnQtY3Jhc2guaHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3RzL2Zhc3QvcnVieS9nZW5lcmF0
ZWQtYmVmb3JlLWFuZC1hZnRlci1jb3VudGVyLWRvZXNudC1jcmFzaC5odG1sLWRpc2FibGVkCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjllYzc3ZjdkZWM1NDRlMjc1MGM5NTdkNDA0NTZhODA5YjU2YzlkNGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvZ2VuZXJhdGVkLWJlZm9yZS1hbmQt
YWZ0ZXItY291bnRlci1kb2VzbnQtY3Jhc2guaHRtbC1kaXNhYmxlZApAQCAtMCwwICsxLDMzIEBA
Cis8aHRtbD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8
c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCitydWJ5OmJlZm9yZXsKKwljb3VudGVyLXJlc2V0OiBn
IC0yNTMyNjUzIEsgLTQ4Njk2ODk5NDE0MDYyIGxsIC00ODIwMjUxNDY0ODQzNyByciAtMTgyMTg5
OTQxNDA2MjsKK30KK3J1Ynk6OmJlZm9yZXsKKwlkaXNwbGF5OiB0YWJsZTsKKwljb250ZW50OiB1
cmwoImh0dHA6Ly94eCIpOworfQorcnVieTphZnRlcnsKKwljb3VudGVyLXJlc2V0OiBnIC0yNTMy
NjUzIEsgLTQ4Njk2ODk5NDE0MDYyIGxsIC00ODIwMjUxNDY0ODQzNyByciAtMTgyMTg5OTQxNDA2
MjsKK30KK3J1Ynk6OmFmdGVyeworCWRpc3BsYXk6IHRhYmxlOworCWNvbnRlbnQ6IHVybCgiaHR0
cDovL3l5Iik7Cit9CisKKzwvc3R5bGU+CisJPHJ1Ynk+CisJCTxydWJ5PgorCQkJPHJ1Ynk+Cis8
c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorcnVieXsKKwlmbG9hdDogbGVmdDsKK30KKzwvc3R5bGU+
CisJPHJ1Ynk+CitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108826</attachid>
            <date>2011-09-27 05:06:44 -0700</date>
            <delta_ts>2012-04-26 19:21:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67007-20110927210642.patch</filename>
            <type>text/plain</type>
            <size>61900</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYwNzUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMzA5NzQxYjY1ZGZkNTVmNjQyOTgx
NzcyNjdlZDRjYjM4OTczYWEyLi42NjgyYjAwMTI1MGM3ZmE5MTY2MzczZTU4Nzc3ZjdhYmNmN2Jk
YjY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDktMjcgIFJvbGFuZCBTdGVpbmVyICA8
cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgcjkzNzk0IHJlc3VsdHMgaW4g
cnVieSB0ZXN0cyBjYXVzaW5nIGFzc2VydGlvbiBmYWlsdXJlIGluIFJlbmRlckJsb2NrLmNwcAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcwMDcKKwor
ICAgICAgICBSZS1lbmFibGUgdGVzdHMgdGhhdCBjYXVzZWQgdGhlIGFzc2VydGlvbi4KKyAgICAg
ICAgQWRkIG5ldyB0ZXN0cyB0byB2ZXJpZnkgdGFibGUsIHRhYmxlLXJvdyBhbmQgdGFibGUtY2Vs
bCBkaXNwbGF5IHR5cGVzIGFsc28gZG9uJ3QgY2F1c2UgYW55IHByb2JsZW1zLgorICAgICAgICBV
cGRhdGUgZXhwZWN0YXRpb25zIHRvIGFjY291bnQgZm9yIGNoYW5nZWQgcmVuZGVyIHRyZWUgbGF5
b3V0LiAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGZhc3QvcnVieS9hZnRlci1ibG9jay1kb2VzbnQtY3Jhc2guaHRtbDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2Zhc3QvcnVieS9hZnRlci1ibG9jay1kb2VzbnQtY3Jhc2guaHRtbC1kaXNhYmxl
ZC4KKyAgICAgICAgKiBmYXN0L3J1YnkvYWZ0ZXItdGFibGUtY2VsbC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvcnVieS9hZnRlci10YWJsZS1jZWxsLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvcnVieS9hZnRlci10YWJsZS1kb2VzbnQtY3Jhc2guaHRtbDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvcnVieS9hZnRlci10YWJsZS1kb2VzbnQtY3Jhc2guaHRt
bC1kaXNhYmxlZC4KKyAgICAgICAgKiBmYXN0L3J1YnkvYWZ0ZXItdGFibGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3J1YnkvYWZ0ZXItdGFibGUtcm93LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ydWJ5L2FmdGVyLXRhYmxlLXJvdy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L3J1YnkvYWZ0ZXItdGFibGUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ydWJ5L2dlbmVyYXRlZC1hZnRlci1jb3VudGVyLWRvZXNudC1jcmFzaC5odG1sOiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2dlbmVyYXRlZC1hZnRlci1jb3VudGVy
LWRvZXNudC1jcmFzaC5odG1sLWRpc2FibGVkLgorICAgICAgICAqIGZhc3QvcnVieS9nZW5lcmF0
ZWQtYmVmb3JlLWFuZC1hZnRlci1jb3VudGVyLWRvZXNudC1jcmFzaC5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2dlbmVyYXRlZC1iZWZvcmUtYW5kLWFmdGVyLWNvdW50
ZXItZG9lc250LWNyYXNoLmh0bWwtZGlzYWJsZWQuCisgICAgICAgICogZmFzdC9ydWJ5L3J1Ynkt
YmxvY2stc3R5bGUtbm90LXVwZGF0ZWQtd2l0aC1iZWZvcmUtYWZ0ZXItY29udGVudC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9ydWJ5L3J1YnktaW5saW5lLXN0eWxlLW5vdC11cGRhdGVk
LXdpdGgtYmVmb3JlLWFmdGVyLWNvbnRlbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLXdpbi9mYXN0L3J1YnkvcnVieS1iZWZvcmVhZnRlci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Zhc3QvcnVieS9ydWJ5LWJlZm9yZWFmdGVyLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9ydWJ5L3J1YnktYmxvY2stc3R5
bGUtbm90LXVwZGF0ZWQtd2l0aC1iZWZvcmUtYWZ0ZXItY29udGVudC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL2Zhc3QvcnVieS9ydWJ5LWlubGluZS1zdHlsZS1ub3QtdXBk
YXRlZC13aXRoLWJlZm9yZS1hZnRlci1jb250ZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZmFzdC9ydWJ5L3J1YnktYmVmb3JlYWZ0ZXItZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vcXQvZmFzdC9ydWJ5L3J1YnktYmxvY2stc3R5bGUtbm90LXVwZGF0ZWQtd2l0aC1iZWZv
cmUtYWZ0ZXItY29udGVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvZmFz
dC9ydWJ5L3J1YnktaW5saW5lLXN0eWxlLW5vdC11cGRhdGVkLXdpdGgtYmVmb3JlLWFmdGVyLWNv
bnRlbnQtZXhwZWN0ZWQudHh0OgorCiAyMDExLTA5LTI2ICBSZW5hdGEgSG9kb3ZhbiAgPHJlbmlA
d2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFNraXAgdHdvIHRlc3RzIGJlY2F1c2UgdGhleSBh
cmUgZmFpbGluZyBhZnRlciByOTYwNzAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3J1
YnkvYWZ0ZXItYmxvY2stZG9lc250LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3J1Ynkv
YWZ0ZXItYmxvY2stZG9lc250LWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE4NGUxN2JlNGVmNGFl
OTlmYThjNGM1NzBlOGVlMGVkMzIwNGI2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcnVieS9hZnRlci1ibG9jay1kb2VzbnQtY3Jhc2guaHRtbApAQCAtMCwwICsxLDIzIEBA
Cis8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIxO3VybD0iIC8+Cis8c3R5bGU+
CisgICAgcnVieTo6YWZ0ZXIgeworICAgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgICAgY29u
dGVudDogdXJsKCJodHRwOi8veXkiKTsKKyAgICB9Cis8L3N0eWxlPgorPHJ1Ynk+CisgICAgPHJ1
Ynk+CisgICAgICAgIDxydWJ5PgorICAgICAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgICAg
IHJ1YnkgeworICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7CQorICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDwvcnVieT4KKyAgICA8L3J1Ynk+
Cis8L3J1Ynk+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0Pgor
VGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0IGNyYXNoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ydWJ5L2FmdGVyLWJsb2NrLWRvZXNudC1jcmFzaC5odG1sLWRpc2FibGVkIGIv
TGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2FmdGVyLWJsb2NrLWRvZXNudC1jcmFzaC5odG1sLWRpc2Fi
bGVkCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MTg0ZTE3YmU0ZWY0YWU5OWZhOGM0
YzU3MGU4ZWUwZWQzMjA0YjZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcnVieS9hZnRlci1ibG9jay1kb2VzbnQtY3Jhc2gu
aHRtbC1kaXNhYmxlZAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLTxtZXRhIGh0dHAt
ZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IjE7dXJsPSIgLz4KLTxzdHlsZT4KLSAgICBydWJ5Ojph
ZnRlciB7Ci0gICAgICAgIGRpc3BsYXk6IGJsb2NrOwotICAgICAgICBjb250ZW50OiB1cmwoImh0
dHA6Ly95eSIpOwotICAgIH0KLTwvc3R5bGU+Ci08cnVieT4KLSAgICA8cnVieT4KLSAgICAgICAg
PHJ1Ynk+Ci0gICAgICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICAgICAgcnVieSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDsJCi0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgPC9zdHlsZT4KLSAgICAgICAgPC9ydWJ5PgotICAgIDwvcnVieT4KLTwvcnVieT4KLTxz
Y3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotPC9zY3JpcHQ+Ci1UaGlzIHRlc3QgcGFz
c2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3J1
YnkvYWZ0ZXItdGFibGUtY2VsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3J1Ynkv
YWZ0ZXItdGFibGUtY2VsbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdlNjYzMGJkMDBmYThj
ZWMyMGIxZWY5ZTc2NDFiZmU1NTIwMTk1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcnVieS9hZnRlci10YWJsZS1jZWxsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitD
T05URU5UCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvYWZ0ZXItdGFibGUtY2Vs
bC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2FmdGVyLXRhYmxlLWNlbGwuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hODZlZWIyODExYjFjZmIzYzYzZDE1ZmFiNmVjYzBlZWFjYTcyYTg1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2FmdGVyLXRhYmxlLWNlbGwuaHRtbApA
QCAtMCwwICsxLDIwIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2Nz
cyI+CisgICAgICAgIHJ1YnkgeworICAgICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgfQor
ICAgICAgICBydWJ5OjphZnRlcnsKKyAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7
CisgICAgICAgICAgICAgICBjb250ZW50OiAiQUZURVIiOworICAgICAgICB9CisgICAgPC9zdHls
ZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHJ1Ynk+
Q09OVEVOVDwvcnVieT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcnVieS9hZnRlci10YWJsZS1kb2VzbnQtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcnVieS9hZnRlci10YWJsZS1kb2VzbnQtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWRmN2Yx
OWIyYzk2YzcxODE4YzRkZGU1ZGQ1OTAxM2E3NGRhZDQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ydWJ5L2FmdGVyLXRhYmxlLWRvZXNudC1jcmFzaC5odG1sCkBAIC0wLDAg
KzEsMjMgQEAKKzxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IjE7dXJsPSIgLz4K
KzxzdHlsZT4KKyAgICBydWJ5OjphZnRlciB7CisgICAgICAgIGRpc3BsYXk6IHRhYmxlOworICAg
ICAgICBjb250ZW50OiB1cmwoImh0dHA6Ly95eSIpOworICAgIH0KKzwvc3R5bGU+Cis8cnVieT4K
KyAgICA8cnVieT4KKyAgICAgICAgPHJ1Ynk+CisgICAgICAgICAgICA8c3R5bGU+CisgICAgICAg
ICAgICAgICAgcnVieSB7CisgICAgICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDsJCisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPC9ydWJ5PgorICAg
IDwvcnVieT4KKzwvcnVieT4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworPC9z
Y3JpcHQ+CitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvYWZ0ZXItdGFibGUtZG9lc250LWNyYXNoLmh0bWwtZGlz
YWJsZWQgYi9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvYWZ0ZXItdGFibGUtZG9lc250LWNyYXNoLmh0
bWwtZGlzYWJsZWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlZGY3ZjE5YjJjOTZj
NzE4MThjNGRkZTVkZDU5MDEzYTc0ZGFkNDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2FmdGVyLXRhYmxlLWRvZXNu
dC1jcmFzaC5odG1sLWRpc2FibGVkCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPG1l
dGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iMTt1cmw9IiAvPgotPHN0eWxlPgotICAg
IHJ1Ynk6OmFmdGVyIHsKLSAgICAgICAgZGlzcGxheTogdGFibGU7Ci0gICAgICAgIGNvbnRlbnQ6
IHVybCgiaHR0cDovL3l5Iik7Ci0gICAgfQotPC9zdHlsZT4KLTxydWJ5PgotICAgIDxydWJ5Pgot
ICAgICAgICA8cnVieT4KLSAgICAgICAgICAgIDxzdHlsZT4KLSAgICAgICAgICAgICAgICBydWJ5
IHsKLSAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OwkKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICA8L3N0eWxlPgotICAgICAgICA8L3J1Ynk+Ci0gICAgPC9ydWJ5PgotPC9y
dWJ5PgotPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci08L3NjcmlwdD4KLVRoaXMg
dGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcnVieS9hZnRlci10YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3J1
YnkvYWZ0ZXItdGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZTY2MzBiZDAwZmE4Y2Vj
MjBiMWVmOWU3NjQxYmZlNTUyMDE5NWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3J1YnkvYWZ0ZXItdGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK0NPTlRFTlQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcnVieS9hZnRlci10YWJsZS1yb3ctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2FmdGVyLXRhYmxlLXJvdy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTdlNjYzMGJkMDBmYThjZWMyMGIxZWY5ZTc2NDFiZmU1NTIwMTk1Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcnVieS9hZnRlci10YWJsZS1yb3ct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK0NPTlRFTlQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcnVieS9hZnRlci10YWJsZS1yb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcnVi
eS9hZnRlci10YWJsZS1yb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjY0MjI5MzU3N2Y5ZmY4MGQzYmNi
ZTE4Mzc4NGJiNzMwODI4NTRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
dWJ5L2FmdGVyLXRhYmxlLXJvdy5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzxodG1sPgorPGhlYWQ+
CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgcnVieSB7CisgICAgICAgICAg
IGZsb2F0OiBsZWZ0OworICAgICAgICB9CisgICAgICAgIHJ1Ynk6OmFmdGVyeworICAgICAgICAg
ICAgICAgZGlzcGxheTogdGFibGUtcm93OworICAgICAgICAgICAgICAgY29udGVudDogIkFGVEVS
IjsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorICAgIDxydWJ5PkNPTlRFTlQ8L3J1Ynk+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvYWZ0ZXItdGFibGUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcnVieS9hZnRlci10YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1NmM1MmM5
YzQxMDExYjZjMDJjNjBjNWQxYmM2YzNiMWE1ZTVhYWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3J1YnkvYWZ0ZXItdGFibGUuaHRtbApAQCAtMCwwICsxLDIwIEBACis8aHRt
bD4KKzxoZWFkPgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgIHJ1Ynkgewor
ICAgICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgfQorICAgICAgICBydWJ5OjphZnRlcnsK
KyAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlOworICAgICAgICAgICAgICAgY29udGVudDog
IkFGVEVSIjsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxydWJ5PkNPTlRFTlQ8L3J1Ynk+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvZ2VuZXJhdGVkLWFmdGVy
LWNvdW50ZXItZG9lc250LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvZ2VuZXJh
dGVkLWFmdGVyLWNvdW50ZXItZG9lc250LWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjcxYzMxMGMw
MzkwNjVjYzk2MDVhOTY3YWQ5ZTA1MmZiM2YwMmNmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcnVieS9nZW5lcmF0ZWQtYWZ0ZXItY291bnRlci1kb2VzbnQtY3Jhc2guaHRt
bApAQCAtMCwwICsxLDI2IEBACis8aHRtbD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworPC9zY3JpcHQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCitydWJ5OmFmdGVyewor
CWNvdW50ZXItcmVzZXQ6IGcgLTI1MzI2NTMgSyAtNDg2OTY4OTk0MTQwNjIgbGwgLTQ4MjAyNTE0
NjQ4NDM3IHJyIC0xODIxODk5NDE0MDYyOworfQorcnVieTo6YWZ0ZXJ7CisJZGlzcGxheTogdGFi
bGU7CisJY29udGVudDogdXJsKCJodHRwOi8veHgiKTsKK30KKworPC9zdHlsZT4KKwk8cnVieT4K
KwkJPHJ1Ynk+CisJCQk8cnVieT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitydWJ5eworCWZs
b2F0OiBsZWZ0OworfQorPC9zdHlsZT4KKwk8cnVieT4KK1RoaXMgdGVzdCBwYXNzZXMgaWYgaXQg
ZG9lc24ndCBjcmFzaC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcnVieS9nZW5lcmF0
ZWQtYWZ0ZXItY291bnRlci1kb2VzbnQtY3Jhc2guaHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3Rz
L2Zhc3QvcnVieS9nZW5lcmF0ZWQtYWZ0ZXItY291bnRlci1kb2VzbnQtY3Jhc2guaHRtbC1kaXNh
YmxlZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjcxYzMxMGMwMzkwNjVjYzk2MDVh
OTY3YWQ5ZTA1MmZiM2YwMmNmMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvZ2VuZXJhdGVkLWFmdGVyLWNvdW50ZXIt
ZG9lc250LWNyYXNoLmh0bWwtZGlzYWJsZWQKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBA
Ci08aHRtbD4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotPC9zY3JpcHQ+Ci08
c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotCi1ydWJ5OmFmdGVyewotCWNvdW50ZXItcmVzZXQ6IGcg
LTI1MzI2NTMgSyAtNDg2OTY4OTk0MTQwNjIgbGwgLTQ4MjAyNTE0NjQ4NDM3IHJyIC0xODIxODk5
NDE0MDYyOwotfQotcnVieTo6YWZ0ZXJ7Ci0JZGlzcGxheTogdGFibGU7Ci0JY29udGVudDogdXJs
KCJodHRwOi8veHgiKTsKLX0KLQotPC9zdHlsZT4KLQk8cnVieT4KLQkJPHJ1Ynk+Ci0JCQk8cnVi
eT4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci1ydWJ5ewotCWZsb2F0OiBsZWZ0OwotfQotPC9z
dHlsZT4KLQk8cnVieT4KLVRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcnVieS9nZW5lcmF0ZWQtYmVmb3JlLWFuZC1hZnRl
ci1jb3VudGVyLWRvZXNudC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2dlbmVy
YXRlZC1iZWZvcmUtYW5kLWFmdGVyLWNvdW50ZXItZG9lc250LWNyYXNoLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWVjNzdmN2RlYzU0NGUyNzUwYzk1N2Q0MDQ1NmE4MDliNTZjOWQ0YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcnVieS9nZW5lcmF0ZWQtYmVmb3JlLWFuZC1hZnRlci1j
b3VudGVyLWRvZXNudC1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorPHNjcmlw
dD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyI+CisKK3J1Ynk6YmVmb3JleworCWNvdW50ZXItcmVzZXQ6IGcgLTI1MzI2NTMgSyAtNDg2
OTY4OTk0MTQwNjIgbGwgLTQ4MjAyNTE0NjQ4NDM3IHJyIC0xODIxODk5NDE0MDYyOworfQorcnVi
eTo6YmVmb3JleworCWRpc3BsYXk6IHRhYmxlOworCWNvbnRlbnQ6IHVybCgiaHR0cDovL3h4Iik7
Cit9CitydWJ5OmFmdGVyeworCWNvdW50ZXItcmVzZXQ6IGcgLTI1MzI2NTMgSyAtNDg2OTY4OTk0
MTQwNjIgbGwgLTQ4MjAyNTE0NjQ4NDM3IHJyIC0xODIxODk5NDE0MDYyOworfQorcnVieTo6YWZ0
ZXJ7CisJZGlzcGxheTogdGFibGU7CisJY29udGVudDogdXJsKCJodHRwOi8veXkiKTsKK30KKwor
PC9zdHlsZT4KKwk8cnVieT4KKwkJPHJ1Ynk+CisJCQk8cnVieT4KKzxzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyI+CitydWJ5eworCWZsb2F0OiBsZWZ0OworfQorPC9zdHlsZT4KKwk8cnVieT4KK1RoaXMg
dGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcnVieS9nZW5lcmF0ZWQtYmVmb3JlLWFuZC1hZnRlci1jb3VudGVyLWRvZXNudC1jcmFz
aC5odG1sLWRpc2FibGVkIGIvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2dlbmVyYXRlZC1iZWZvcmUt
YW5kLWFmdGVyLWNvdW50ZXItZG9lc250LWNyYXNoLmh0bWwtZGlzYWJsZWQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDllYzc3ZjdkZWM1NDRlMjc1MGM5NTdkNDA0NTZhODA5YjU2Yzlk
NGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9ydWJ5L2dlbmVyYXRlZC1iZWZvcmUtYW5kLWFmdGVyLWNvdW50ZXItZG9lc250
LWNyYXNoLmh0bWwtZGlzYWJsZWQKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08aHRt
bD4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotPC9zY3JpcHQ+Ci08c3R5bGUg
dHlwZT0idGV4dC9jc3MiPgotCi1ydWJ5OmJlZm9yZXsKLQljb3VudGVyLXJlc2V0OiBnIC0yNTMy
NjUzIEsgLTQ4Njk2ODk5NDE0MDYyIGxsIC00ODIwMjUxNDY0ODQzNyByciAtMTgyMTg5OTQxNDA2
MjsKLX0KLXJ1Ynk6OmJlZm9yZXsKLQlkaXNwbGF5OiB0YWJsZTsKLQljb250ZW50OiB1cmwoImh0
dHA6Ly94eCIpOwotfQotcnVieTphZnRlcnsKLQljb3VudGVyLXJlc2V0OiBnIC0yNTMyNjUzIEsg
LTQ4Njk2ODk5NDE0MDYyIGxsIC00ODIwMjUxNDY0ODQzNyByciAtMTgyMTg5OTQxNDA2MjsKLX0K
LXJ1Ynk6OmFmdGVyewotCWRpc3BsYXk6IHRhYmxlOwotCWNvbnRlbnQ6IHVybCgiaHR0cDovL3l5
Iik7Ci19Ci0KLTwvc3R5bGU+Ci0JPHJ1Ynk+Ci0JCTxydWJ5PgotCQkJPHJ1Ynk+Ci08c3R5bGUg
dHlwZT0idGV4dC9jc3MiPgotcnVieXsKLQlmbG9hdDogbGVmdDsKLX0KLTwvc3R5bGU+Ci0JPHJ1
Ynk+Ci1UaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1ibG9jay1zdHlsZS1ub3QtdXBkYXRlZC13aXRoLWJl
Zm9yZS1hZnRlci1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcnVieS9y
dWJ5LWJsb2NrLXN0eWxlLW5vdC11cGRhdGVkLXdpdGgtYmVmb3JlLWFmdGVyLWNvbnRlbnQtZXhw
ZWN0ZWQudHh0CmluZGV4IDBmY2Y1YTc4N2Q0YWMzNjdmN2FkODVlODM1MTMyZjU5ODM2ZjI3YTMu
LmExN2M4MTBmNTc4ZmQ3OGY1Zjc3NmE2NjhlMzAyNjE2YTFmOTIxZjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LWJsb2NrLXN0eWxlLW5vdC11cGRhdGVkLXdpdGgtYmVm
b3JlLWFmdGVyLWNvbnRlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcnVi
eS9ydWJ5LWJsb2NrLXN0eWxlLW5vdC11cGRhdGVkLXdpdGgtYmVmb3JlLWFmdGVyLWNvbnRlbnQt
ZXhwZWN0ZWQudHh0CkBAIC00LDE2ICs0LDIwIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CiAgICAgICBSZW5kZXJSdWJ5IChibG9j
aykge1JVQll9IGF0ICgwLDApIHNpemUgNzg0eDM4NCBbY29sb3I9IzAwMDBGRl0KLSAgICAgICAg
UmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNTEyeDEyOCBbY29sb3I9I0ZG
QTUwMF0KLSAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDApIHNpemUgNTEyeDEyOAotICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTEyOiAiMTIzNCIKKyAgICAgICAgUmVuZGVy
UnVieVJ1biAoYW5vbnltb3VzL0JFRk9SRSkgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI4CisgICAgICAg
ICAgUmVuZGVyUnVieUJhc2UgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI4CisgICAg
ICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI4IFtj
b2xvcj0jRkZBNTAwXQorICAgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDApIHNpemUgNTEy
eDEyOAorICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDUxMjogIjEyMzQi
CiAgICAgICAgIFJlbmRlclJ1YnlSdW4gKGFub255bW91cykgYXQgKDAsMTI4KSBzaXplIDUxMngx
MjgKICAgICAgICAgICBSZW5kZXJSdWJ5QmFzZSAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDUx
MngxMjgKICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDUxMngx
MjgKICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTEyOiAiQUJDRCIKLSAg
ICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNTEyeDEyOCBbY29s
b3I9I0ZGRkYwMF0KLSAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDI1Nikgc2l6ZSA1MTJ4MTI4
Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyNTYpIHdpZHRoIDUxMjogIjQ1NzgiCisgICAg
ICAgIFJlbmRlclJ1YnlSdW4gKGFub255bW91cy9BRlRFUikgYXQgKDAsMjU2KSBzaXplIDUxMngx
MjgKKyAgICAgICAgICBSZW5kZXJSdWJ5QmFzZSAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDUx
MngxMjgKKyAgICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXpl
IDUxMngxMjggW2NvbG9yPSNGRkZGMDBdCisgICAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDAs
MCkgc2l6ZSA1MTJ4MTI4CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
NTEyOiAiNDU3OCIKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM4NCkgc2l6ZSA3ODR4
MTI4IFtjb2xvcj0jMDA4MDAwXQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSA1MTJ4MTI4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTEyOiAiRUZH
SCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LWlubGluZS1zdHlsZS1u
b3QtdXBkYXRlZC13aXRoLWJlZm9yZS1hZnRlci1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LWlubGluZS1zdHlsZS1ub3QtdXBkYXRlZC13aXRoLWJlZm9y
ZS1hZnRlci1jb250ZW50LWV4cGVjdGVkLnR4dAppbmRleCBjYzk4NTJhODkwZDZhMzg4OWVhNzFh
NDgzYWJkMGU1MjJlMmRhOTdlLi44NzY2MjI1M2U3N2JjNjhmMmRmMDQwODBjMTA2NjJlMDNiNDU2
MGFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1pbmxpbmUtc3R5bGUt
bm90LXVwZGF0ZWQtd2l0aC1iZWZvcmUtYWZ0ZXItY29udGVudC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktaW5saW5lLXN0eWxlLW5vdC11cGRhdGVkLXdpdGgt
YmVmb3JlLWFmdGVyLWNvbnRlbnQtZXhwZWN0ZWQudHh0CkBAIC01LDE2ICs1LDIwIEBAIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNp
emUgNzg0eDU4NAogICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3
ODR4Mzg0CiAgICAgICAgIFJlbmRlclJ1YnkgKGlubGluZSkge1JVQll9IGF0ICgwLDApIHNpemUg
NTEyeDM4NCBbY29sb3I9IzAwMDBGRl0KLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRl
ZCkgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI4IFtjb2xvcj0jRkZBNTAwXQotICAgICAgICAgICAgUmVu
ZGVyVGV4dCBhdCAoMCwwKSBzaXplIDUxMngxMjgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggNTEyOiAiMTIzNCIKKyAgICAgICAgICBSZW5kZXJSdWJ5UnVuIChhbm9ueW1v
dXMvQkVGT1JFKSBhdCAoMCwwKSBzaXplIDUxMngxMjgKKyAgICAgICAgICAgIFJlbmRlclJ1YnlC
YXNlIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNTEyeDEyOAorICAgICAgICAgICAgICBSZW5k
ZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI4IFtjb2xvcj0jRkZBNTAw
XQorICAgICAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI4CisgICAg
ICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1MTI6ICIxMjM0IgogICAgICAg
ICAgIFJlbmRlclJ1YnlSdW4gKGFub255bW91cykgYXQgKDAsMTI4KSBzaXplIDUxMngxMjgKICAg
ICAgICAgICAgIFJlbmRlclJ1YnlCYXNlIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNTEyeDEy
OAogICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1MTJ4MTI4
CiAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTEyOiAiQUJDRCIKLSAg
ICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI4IFtj
b2xvcj0jRkZGRjAwXQotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMCwyNTYpIHNpemUgNTEy
eDEyOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyNTYpIHdpZHRoIDUxMjogIjQ1Nzgi
CisgICAgICAgICAgUmVuZGVyUnVieVJ1biAoYW5vbnltb3VzL0FGVEVSKSBhdCAoMCwyNTYpIHNp
emUgNTEyeDEyOAorICAgICAgICAgICAgUmVuZGVyUnVieUJhc2UgKGFub255bW91cykgYXQgKDAs
MCkgc2l6ZSA1MTJ4MTI4CisgICAgICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBh
dCAoMCwwKSBzaXplIDUxMngxMjggW2NvbG9yPSNGRkZGMDBdCisgICAgICAgICAgICAgICAgUmVu
ZGVyVGV4dCBhdCAoMCwwKSBzaXplIDUxMngxMjgKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDUxMjogIjQ1NzgiCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzg0KSBzaXpl
IDc4NHgxMjggW2NvbG9yPSMwMDgwMDBdCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDUxMngxMjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9mYXN0L3J1YnkvcnVieS1iZWZvcmVhZnRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ydWJ5L3J1YnktYmVmb3JlYWZ0ZXItZXhw
ZWN0ZWQudHh0CmluZGV4IDg4YmQ1M2I2NGNjYmU2NTUxZTA4OTQ1OTUzNmZmNGRmZjAxYzBjOGUu
LmM3NjVhOGM1MTkzNzcxNDFhNWU1ZTljZTFlOTI1MjM5MmNlZWIwYWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3J1YnkvcnVieS1iZWZvcmVhZnRl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zh
c3QvcnVieS9ydWJ5LWJlZm9yZWFmdGVyLWV4cGVjdGVkLnR4dApAQCAtMTEsOSArMTEsMTEgQEAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwxMikgc2l6ZSAyOXgxOQogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDEyKSB3aWR0aCAy
OTogIkZvbyAiCiAgICAgICAgIFJlbmRlclJ1YnkgKGlubGluZSkge1JVQll9IGF0ICgwLDApIHNp
emUgNzV4MTkKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6
ZSA0OXgxOQotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMjksMTIpIHNpemUgNDl4MTkKLSAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI5LDEyKSB3aWR0aCA0OTogIltiZWZvcmVdIgorICAg
ICAgICAgIFJlbmRlclJ1YnlSdW4gKGFub255bW91cy9CRUZPUkUpIGF0ICgyOSwxMikgc2l6ZSA0
OXgxOQorICAgICAgICAgICAgUmVuZGVyUnVieUJhc2UgKGFub255bW91cykgYXQgKDAsMCkgc2l6
ZSA0OXgxOQorICAgICAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkg
c2l6ZSA0OXgxOQorICAgICAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDAsMCkgc2l6ZSA0OXgx
OQorICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDk6ICJbYmVmb3Jl
XSIKICAgICAgICAgICBSZW5kZXJSdWJ5UnVuIChhbm9ueW1vdXMpIGF0ICg3NCwxMikgc2l6ZSAz
NHgyMAogICAgICAgICAgICAgUmVuZGVyUnVieVRleHQge1JUfSBhdCAoMCwtMTIpIHNpemUgMzR4
MTIKICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzR4MTIK
QEAgLTM3LDkgKzM5LDExIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAg
ICAgUmVuZGVyUnVieUJhc2UgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSAzNHgyMAogICAgICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEzLDApIHNpemUgOHgxOQogICAgICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgxMywwKSB3aWR0aCA4OiAiYiIKLSAgICAgICAgICBSZW5kZXJJ
bmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAzN3gxOQotICAgICAgICAgICAgUmVuZGVy
VGV4dCBhdCAoNTUsMTIpIHNpemUgMzd4MTkKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDU1
LDEyKSB3aWR0aCAzNzogIlthZnRlcl0iCisgICAgICAgICAgUmVuZGVyUnVieVJ1biAoYW5vbnlt
b3VzL0FGVEVSKSBhdCAoNTUsMTIpIHNpemUgMzd4MTkKKyAgICAgICAgICAgIFJlbmRlclJ1YnlC
YXNlIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgMzd4MTkKKyAgICAgICAgICAgICAgUmVuZGVy
SW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMzd4MTkKKyAgICAgICAgICAgICAgICBS
ZW5kZXJUZXh0IGF0ICgwLDApIHNpemUgMzd4MTkKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDM3OiAiW2FmdGVyXSIKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICg5MiwxMikgc2l6ZSAyNngxOQogICAgICAgICAgIHRleHQgcnVuIGF0ICg5MiwxMikgd2lk
dGggMjY6ICIgQmFyIgogICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgxMTgsMjcpIHNpemUgMHgw
CkBAIC00OSw5ICs1MywxMSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEyKSBzaXplIDI5eDE5CiAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMTIpIHdpZHRoIDI5OiAiRm9vICIKICAgICAgICAgUmVuZGVyUnVieSAoaW5saW5l
KSB7UlVCWX0gYXQgKDAsMCkgc2l6ZSAxMTJ4MTkKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdl
bmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA0OXgxOQotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAo
MjksMTIpIHNpemUgNDl4MTkKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI5LDEyKSB3aWR0
aCA0OTogIltiZWZvcmVdIgorICAgICAgICAgIFJlbmRlclJ1YnlSdW4gKGFub255bW91cy9CRUZP
UkUpIGF0ICgyOSwxMikgc2l6ZSA0OXgxOQorICAgICAgICAgICAgUmVuZGVyUnVieUJhc2UgKGFu
b255bW91cykgYXQgKDAsMCkgc2l6ZSA0OXgxOQorICAgICAgICAgICAgICBSZW5kZXJJbmxpbmUg
KGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA0OXgxOQorICAgICAgICAgICAgICAgIFJlbmRlclRl
eHQgYXQgKDAsMCkgc2l6ZSA0OXgxOQorICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggNDk6ICJbYmVmb3JlXSIKICAgICAgICAgICBSZW5kZXJSdWJ5UnVuIChhbm9ueW1v
dXMpIGF0ICg3NCwxMikgc2l6ZSAzNHgyMAogICAgICAgICAgICAgUmVuZGVyUnVieVRleHQge1JU
fSBhdCAoMCwtMTIpIHNpemUgMzR4MTIKICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMzR4MTIKQEAgLTU5LDkgKzY1LDExIEBAIGxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAogICAgICAgICAgICAgUmVuZGVyUnVieUJhc2UgKGFub255bW91cykgYXQgKDAs
MCkgc2l6ZSAzNHgyMAogICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEzLDAp
IHNpemUgOHgxOQogICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMywwKSB3aWR0aCA4OiAi
YiIKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAzN3gx
OQotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMTA0LDEyKSBzaXplIDM3eDE5Ci0gICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgxMDQsMTIpIHdpZHRoIDM3OiAiW2FmdGVyXSIKKyAgICAgICAg
ICBSZW5kZXJSdWJ5UnVuIChhbm9ueW1vdXMvQUZURVIpIGF0ICgxMDQsMTIpIHNpemUgMzd4MTkK
KyAgICAgICAgICAgIFJlbmRlclJ1YnlCYXNlIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgMzd4
MTkKKyAgICAgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUg
Mzd4MTkKKyAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDApIHNpemUgMzd4MTkKKyAg
ICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM3OiAiW2FmdGVyXSIKICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNDEsMTIpIHNpemUgMjZ4MTkKICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMTQxLDEyKSB3aWR0aCAyNjogIiBCYXIiCiAgICAgICAgIFJlbmRlckJS
IHtCUn0gYXQgKDE2NywyNykgc2l6ZSAweDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9mYXN0L3J1YnkvcnVieS1iZWZvcmVhZnRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9ydWJ5L3J1YnktYmVmb3JlYWZ0ZXItZXhwZWN0ZWQudHh0
CmluZGV4IDE4NDc4MGY1ZGY0ODg0NTg5OGJhMDM4ZWE5M2I4YWY5NDBhMDJlYWUuLmIzNDUzNmMy
M2JhNWM2MzU3MjVjODllOWY1ZmYzNDZhZDRmMjIyZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9mYXN0L3J1YnkvcnVieS1iZWZvcmVhZnRlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcnVieS9ydWJ5LWJlZm9yZWFmdGVyLWV4
cGVjdGVkLnR4dApAQCAtMTEsOSArMTEsMTEgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxMCkgc2l6ZSAyOXgxOQogICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDEwKSB3aWR0aCAyOTogIkZvbyAiCiAgICAgICAgIFJlbmRlclJ1
YnkgKGlubGluZSkge1JVQll9IGF0ICgwLDApIHNpemUgNzB4MTkKLSAgICAgICAgICBSZW5kZXJJ
bmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA1MHgxOQotICAgICAgICAgICAgUmVuZGVy
VGV4dCBhdCAoMjksMTApIHNpemUgNTB4MTkKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI5
LDEwKSB3aWR0aCA1MDogIltiZWZvcmVdIgorICAgICAgICAgIFJlbmRlclJ1YnlSdW4gKGFub255
bW91cy9CRUZPUkUpIGF0ICgyOSwxMCkgc2l6ZSA1MHgxOQorICAgICAgICAgICAgUmVuZGVyUnVi
eUJhc2UgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA1MHgxOQorICAgICAgICAgICAgICBSZW5k
ZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA1MHgxOQorICAgICAgICAgICAgICAg
IFJlbmRlclRleHQgYXQgKDAsMCkgc2l6ZSA1MHgxOQorICAgICAgICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNTA6ICJbYmVmb3JlXSIKICAgICAgICAgICBSZW5kZXJSdWJ5UnVu
IChhbm9ueW1vdXMpIGF0ICg3NSwxMCkgc2l6ZSAyOHgxOQogICAgICAgICAgICAgUmVuZGVyUnVi
eVRleHQge1JUfSBhdCAoMCwtMTApIHNpemUgMjh4MTAKICAgICAgICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjh4MTAKQEAgLTM3LDkgKzM5LDExIEBAIGxheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgUmVuZGVyUnVieUJhc2UgKGFub255bW91
cykgYXQgKDAsMCkgc2l6ZSAyOHgxOQogICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDEwLDApIHNpemUgOHgxOQogICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMCwwKSB3
aWR0aCA4OiAiYiIKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkg
c2l6ZSAzOHgxOQotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoNDksMTApIHNpemUgMzh4MTkK
LSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQ5LDEwKSB3aWR0aCAzODogIlthZnRlcl0iCisg
ICAgICAgICAgUmVuZGVyUnVieVJ1biAoYW5vbnltb3VzL0FGVEVSKSBhdCAoNDksMTApIHNpemUg
Mzh4MTkKKyAgICAgICAgICAgIFJlbmRlclJ1YnlCYXNlIChhbm9ueW1vdXMpIGF0ICgwLDApIHNp
emUgMzh4MTkKKyAgICAgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDAp
IHNpemUgMzh4MTkKKyAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDApIHNpemUgMzh4
MTkKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM4OiAiW2FmdGVy
XSIKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg4NywxMCkgc2l6ZSAyN3gxOQogICAg
ICAgICAgIHRleHQgcnVuIGF0ICg4NywxMCkgd2lkdGggMjc6ICIgQmFyIgogICAgICAgICBSZW5k
ZXJCUiB7QlJ9IGF0ICgxMTQsMjUpIHNpemUgMHgwCkBAIC00OSw5ICs1MywxMSBAQCBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEw
KSBzaXplIDI5eDE5CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTApIHdpZHRoIDI5OiAiRm9v
ICIKICAgICAgICAgUmVuZGVyUnVieSAoaW5saW5lKSB7UlVCWX0gYXQgKDAsMCkgc2l6ZSAxMDh4
MTkKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA1MHgx
OQotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMjksMTApIHNpemUgNTB4MTkKLSAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDI5LDEwKSB3aWR0aCA1MDogIltiZWZvcmVdIgorICAgICAgICAg
IFJlbmRlclJ1YnlSdW4gKGFub255bW91cy9CRUZPUkUpIGF0ICgyOSwxMCkgc2l6ZSA1MHgxOQor
ICAgICAgICAgICAgUmVuZGVyUnVieUJhc2UgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA1MHgx
OQorICAgICAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA1
MHgxOQorICAgICAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDAsMCkgc2l6ZSA1MHgxOQorICAg
ICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTA6ICJbYmVmb3JlXSIKICAg
ICAgICAgICBSZW5kZXJSdWJ5UnVuIChhbm9ueW1vdXMpIGF0ICg3NSwxMCkgc2l6ZSAyOHgxOQog
ICAgICAgICAgICAgUmVuZGVyUnVieVRleHQge1JUfSBhdCAoMCwtMTApIHNpemUgMjh4MTAKICAg
ICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjh4MTAKQEAgLTU5
LDkgKzY1LDExIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgUmVu
ZGVyUnVieUJhc2UgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSAyOHgxOQogICAgICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEwLDApIHNpemUgOHgxOQogICAgICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgxMCwwKSB3aWR0aCA4OiAiYiIKLSAgICAgICAgICBSZW5kZXJJbmxpbmUg
KGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAzOHgxOQotICAgICAgICAgICAgUmVuZGVyVGV4dCBh
dCAoOTksMTApIHNpemUgMzh4MTkKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDk5LDEwKSB3
aWR0aCAzODogIlthZnRlcl0iCisgICAgICAgICAgUmVuZGVyUnVieVJ1biAoYW5vbnltb3VzL0FG
VEVSKSBhdCAoOTksMTApIHNpemUgMzh4MTkKKyAgICAgICAgICAgIFJlbmRlclJ1YnlCYXNlIChh
bm9ueW1vdXMpIGF0ICgwLDApIHNpemUgMzh4MTkKKyAgICAgICAgICAgICAgUmVuZGVySW5saW5l
IChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMzh4MTkKKyAgICAgICAgICAgICAgICBSZW5kZXJU
ZXh0IGF0ICgwLDApIHNpemUgMzh4MTkKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDM4OiAiW2FmdGVyXSIKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgx
MzcsMTApIHNpemUgMjd4MTkKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTM3LDEwKSB3aWR0aCAy
NzogIiBCYXIiCiAgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDE2NCwyNSkgc2l6ZSAweDAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3J1YnkvcnVieS1ibG9jay1z
dHlsZS1ub3QtdXBkYXRlZC13aXRoLWJlZm9yZS1hZnRlci1jb250ZW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3J1YnkvcnVieS1ibG9jay1zdHlsZS1ub3Qt
dXBkYXRlZC13aXRoLWJlZm9yZS1hZnRlci1jb250ZW50LWV4cGVjdGVkLnR4dAppbmRleCBmNThm
ZmI3YTViMDJjZGFkYzAxZWE4MmM3OGQ3YmMxYjAxZTFkYWQwLi43NGU1ZTIyMDQ5NzY5NTQ4ZTA1
MWQxZWQ4OWFlZWVlNzllOGUzNGE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvZmFzdC9ydWJ5L3J1YnktYmxvY2stc3R5bGUtbm90LXVwZGF0ZWQtd2l0aC1iZWZvcmUtYWZ0
ZXItY29udGVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zh
c3QvcnVieS9ydWJ5LWJsb2NrLXN0eWxlLW5vdC11cGRhdGVkLXdpdGgtYmVmb3JlLWFmdGVyLWNv
bnRlbnQtZXhwZWN0ZWQudHh0CkBAIC00LDE2ICs0LDIwIEBAIGxheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CiAgICAgICBSZW5kZXJSdWJ5
IChibG9jaykge1JVQll9IGF0ICgwLDApIHNpemUgNzg0eDM4NCBbY29sb3I9IzAwMDBGRl0KLSAg
ICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNTEyeDEyOSBbY29s
b3I9I0ZGQTUwMF0KLSAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDApIHNpemUgNTEyeDEyOQot
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTEyOiAiMTIzNCIKKyAgICAgICAg
UmVuZGVyUnVieVJ1biAoYW5vbnltb3VzL0JFRk9SRSkgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI5Cisg
ICAgICAgICAgUmVuZGVyUnVieUJhc2UgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI5
CisgICAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA1MTJ4
MTI5IFtjb2xvcj0jRkZBNTAwXQorICAgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDApIHNp
emUgNTEyeDEyOQorICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDUxMjog
IjEyMzQiCiAgICAgICAgIFJlbmRlclJ1YnlSdW4gKGFub255bW91cykgYXQgKDAsMTI4KSBzaXpl
IDUxMngxMjgKICAgICAgICAgICBSZW5kZXJSdWJ5QmFzZSAoYW5vbnltb3VzKSBhdCAoMCwwKSBz
aXplIDUxMngxMjgKICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDUxMngxMjkKICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTEyOiAiQUJD
RCIKLSAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNTEyeDEy
OSBbY29sb3I9I0ZGRkYwMF0KLSAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDI1Nikgc2l6ZSA1
MTJ4MTI5Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyNTYpIHdpZHRoIDUxMjogIjQ1Nzgi
CisgICAgICAgIFJlbmRlclJ1YnlSdW4gKGFub255bW91cy9BRlRFUikgYXQgKDAsMjU2KSBzaXpl
IDUxMngxMjkKKyAgICAgICAgICBSZW5kZXJSdWJ5QmFzZSAoYW5vbnltb3VzKSBhdCAoMCwwKSBz
aXplIDUxMngxMjkKKyAgICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCww
KSBzaXplIDUxMngxMjkgW2NvbG9yPSNGRkZGMDBdCisgICAgICAgICAgICAgIFJlbmRlclRleHQg
YXQgKDAsMCkgc2l6ZSA1MTJ4MTI5CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggNTEyOiAiNDU3OCIKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM4NCkgc2l6
ZSA3ODR4MTI4IFtjb2xvcj0jMDA4MDAwXQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSA1MTJ4MTI5CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTEy
OiAiRUZHSCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3J1Ynkv
cnVieS1pbmxpbmUtc3R5bGUtbm90LXVwZGF0ZWQtd2l0aC1iZWZvcmUtYWZ0ZXItY29udGVudC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9ydWJ5L3J1YnktaW5s
aW5lLXN0eWxlLW5vdC11cGRhdGVkLXdpdGgtYmVmb3JlLWFmdGVyLWNvbnRlbnQtZXhwZWN0ZWQu
dHh0CmluZGV4IGUzMGQ2ZGI1NGE1YzU2MDNkNGYxYzg4MGQyNjFkNTJmZDJjOTAzYTIuLmYwYzA3
NzUwNDdjNTEyMTVkZGNiN2IxYzk0N2I5ZjBiNzhlYWUzZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9mYXN0L3J1YnkvcnVieS1pbmxpbmUtc3R5bGUtbm90LXVwZGF0ZWQt
d2l0aC1iZWZvcmUtYWZ0ZXItY29udGVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2Zhc3QvcnVieS9ydWJ5LWlubGluZS1zdHlsZS1ub3QtdXBkYXRlZC13aXRo
LWJlZm9yZS1hZnRlci1jb250ZW50LWV4cGVjdGVkLnR4dApAQCAtNSwxNiArNSwyMCBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDc4NHg1ODQKICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUg
Nzg0eDM4NAogICAgICAgICBSZW5kZXJSdWJ5IChpbmxpbmUpIHtSVUJZfSBhdCAoMCwwKSBzaXpl
IDUxMngzODUgW2NvbG9yPSMwMDAwRkZdCi0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0
ZWQpIGF0ICgwLDApIHNpemUgNTEyeDEyOSBbY29sb3I9I0ZGQTUwMF0KLSAgICAgICAgICAgIFJl
bmRlclRleHQgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI5Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDUxMjogIjEyMzQiCisgICAgICAgICAgUmVuZGVyUnVieVJ1biAoYW5vbnlt
b3VzL0JFRk9SRSkgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI5CisgICAgICAgICAgICBSZW5kZXJSdWJ5
QmFzZSAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDUxMngxMjkKKyAgICAgICAgICAgICAgUmVu
ZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNTEyeDEyOSBbY29sb3I9I0ZGQTUw
MF0KKyAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDApIHNpemUgNTEyeDEyOQorICAg
ICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTEyOiAiMTIzNCIKICAgICAg
ICAgICBSZW5kZXJSdWJ5UnVuIChhbm9ueW1vdXMpIGF0ICgwLDEyOCkgc2l6ZSA1MTJ4MTI4CiAg
ICAgICAgICAgICBSZW5kZXJSdWJ5QmFzZSAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDUxMngx
MjgKICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTEyeDEy
OQogICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDUxMjogIkFCQ0QiCi0g
ICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNTEyeDEyOSBb
Y29sb3I9I0ZGRkYwMF0KLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDAsMjU2KSBzaXplIDUx
MngxMjkKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjU2KSB3aWR0aCA1MTI6ICI0NTc4
IgorICAgICAgICAgIFJlbmRlclJ1YnlSdW4gKGFub255bW91cy9BRlRFUikgYXQgKDAsMjU2KSBz
aXplIDUxMngxMjkKKyAgICAgICAgICAgIFJlbmRlclJ1YnlCYXNlIChhbm9ueW1vdXMpIGF0ICgw
LDApIHNpemUgNTEyeDEyOQorICAgICAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkg
YXQgKDAsMCkgc2l6ZSA1MTJ4MTI5IFtjb2xvcj0jRkZGRjAwXQorICAgICAgICAgICAgICAgIFJl
bmRlclRleHQgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI5CisgICAgICAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA1MTI6ICI0NTc4IgogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAweDAKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM4NCkgc2l6
ZSA3ODR4MTI4IFtjb2xvcj0jMDA4MDAwXQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSA1MTJ4MTI5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9ydWJ5L3J1YnktYmVmb3JlYWZ0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvcnVieS9ydWJ5LWJlZm9yZWFmdGVyLWV4cGVjdGVkLnR4dAppbmRleCA3
NjUxYjJiNTcxYTBlYzRhODMwNzZjNTA4MTlkMjY0YTU2NzYxOTRmLi4xZmM3NGMzMzU5YTJlNmMx
NWUwMzg2Yzg0NzAzODJlMWUwMzgyNTBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9ydWJ5L3J1YnktYmVmb3JlYWZ0ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3J1YnkvcnVieS1iZWZvcmVhZnRlci1leHBlY3RlZC50
eHQKQEAgLTExLDkgKzExLDExIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTApIHNpemUgMjl4MTgKICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwxMCkgd2lkdGggMjk6ICJGb28gIgogICAgICAgICBSZW5kZXJSdWJ5IChpbmxp
bmUpIHtSVUJZfSBhdCAoMCwwKSBzaXplIDc3eDE4Ci0gICAgICAgICAgUmVuZGVySW5saW5lIChn
ZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNTB4MTgKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQg
KDI5LDEwKSBzaXplIDUweDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyOSwxMCkgd2lk
dGggNTA6ICJbYmVmb3JlXSIKKyAgICAgICAgICBSZW5kZXJSdWJ5UnVuIChhbm9ueW1vdXMvQkVG
T1JFKSBhdCAoMjksMTApIHNpemUgNTB4MTgKKyAgICAgICAgICAgIFJlbmRlclJ1YnlCYXNlIChh
bm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNTB4MTgKKyAgICAgICAgICAgICAgUmVuZGVySW5saW5l
IChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNTB4MTgKKyAgICAgICAgICAgICAgICBSZW5kZXJU
ZXh0IGF0ICgwLDApIHNpemUgNTB4MTgKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDUwOiAiW2JlZm9yZV0iCiAgICAgICAgICAgUmVuZGVyUnVieVJ1biAoYW5vbnlt
b3VzKSBhdCAoNzUsMTApIHNpemUgMzV4MTgKICAgICAgICAgICAgIFJlbmRlclJ1YnlUZXh0IHtS
VH0gYXQgKDAsLTEwKSBzaXplIDM1eDEwCiAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDM1eDEwCkBAIC0zNyw5ICszOSwxMSBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICAgICAgICAgIFJlbmRlclJ1YnlCYXNlIChhbm9ueW1vdXMpIGF0ICgw
LDApIHNpemUgMzV4MTgKICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMyww
KSBzaXplIDl4MTgKICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTMsMCkgd2lkdGggOTog
ImIiCi0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMzh4
MTgKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDU2LDEwKSBzaXplIDM4eDE4Ci0gICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICg1NiwxMCkgd2lkdGggMzg6ICJbYWZ0ZXJdIgorICAgICAgICAg
IFJlbmRlclJ1YnlSdW4gKGFub255bW91cy9BRlRFUikgYXQgKDU2LDEwKSBzaXplIDM4eDE4Cisg
ICAgICAgICAgICBSZW5kZXJSdWJ5QmFzZSAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDM4eDE4
CisgICAgICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDM4
eDE4CisgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMCwwKSBzaXplIDM4eDE4CisgICAg
ICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzODogIlthZnRlcl0iCiAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoOTQsMTApIHNpemUgMjd4MTgKICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoOTQsMTApIHdpZHRoIDI3OiAiIEJhciIKICAgICAgICAgUmVuZGVyQlIge0JS
fSBhdCAoMTIxLDI0KSBzaXplIDB4MApAQCAtNDksOSArNTMsMTEgQEAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxMCkgc2l6ZSAy
OXgxOAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDEwKSB3aWR0aCAyOTogIkZvbyAiCiAgICAg
ICAgIFJlbmRlclJ1YnkgKGlubGluZSkge1JVQll9IGF0ICgwLDApIHNpemUgMTE1eDE4Ci0gICAg
ICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNTB4MTgKLSAgICAg
ICAgICAgIFJlbmRlclRleHQgYXQgKDI5LDEwKSBzaXplIDUweDE4Ci0gICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgyOSwxMCkgd2lkdGggNTA6ICJbYmVmb3JlXSIKKyAgICAgICAgICBSZW5kZXJS
dWJ5UnVuIChhbm9ueW1vdXMvQkVGT1JFKSBhdCAoMjksMTApIHNpemUgNTB4MTgKKyAgICAgICAg
ICAgIFJlbmRlclJ1YnlCYXNlIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNTB4MTgKKyAgICAg
ICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNTB4MTgKKyAg
ICAgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDApIHNpemUgNTB4MTgKKyAgICAgICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDUwOiAiW2JlZm9yZV0iCiAgICAgICAgICAg
UmVuZGVyUnVieVJ1biAoYW5vbnltb3VzKSBhdCAoNzUsMTApIHNpemUgMzV4MTgKICAgICAgICAg
ICAgIFJlbmRlclJ1YnlUZXh0IHtSVH0gYXQgKDAsLTEwKSBzaXplIDM1eDEwCiAgICAgICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM1eDEwCkBAIC01OSw5ICs2NSwx
MSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICAgIFJlbmRlclJ1YnlC
YXNlIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgMzV4MTgKICAgICAgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgxMywwKSBzaXplIDl4MTgKICAgICAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMTMsMCkgd2lkdGggOTogImIiCi0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0
ZWQpIGF0ICgwLDApIHNpemUgMzh4MTgKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDEwNiwx
MCkgc2l6ZSAzOHgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTA2LDEwKSB3aWR0aCAz
ODogIlthZnRlcl0iCisgICAgICAgICAgUmVuZGVyUnVieVJ1biAoYW5vbnltb3VzL0FGVEVSKSBh
dCAoMTA2LDEwKSBzaXplIDM4eDE4CisgICAgICAgICAgICBSZW5kZXJSdWJ5QmFzZSAoYW5vbnlt
b3VzKSBhdCAoMCwwKSBzaXplIDM4eDE4CisgICAgICAgICAgICAgIFJlbmRlcklubGluZSAoZ2Vu
ZXJhdGVkKSBhdCAoMCwwKSBzaXplIDM4eDE4CisgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCBh
dCAoMCwwKSBzaXplIDM4eDE4CisgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCAzODogIlthZnRlcl0iCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTQ0LDEw
KSBzaXplIDI3eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDE0NCwxMCkgd2lkdGggMjc6ICIg
QmFyIgogICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgxNzEsMjQpIHNpemUgMHgwCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCA0ZjFhZTI3
YTE0NmNmNTRkODU3Y2RiNWVlMDcyZmRjMWIxODk2NmUxLi4yNDJhZjMwMzZjMDc4N2IyMjM5ODBi
Njc1YmE0YjBhM2I1MDgzY2Y4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
dGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKQEAgLTI0LDggKzI0LDMgQEAgQlVHV0s1ODE5MiA6IGh0dHAvdGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUtd2Vic29ja2V0LWVycm9yLmh0bWwgPSBURVhUIFBBU1MKIEJV
R1dLNTgxOTIgOiBmYXN0L2NhbnZhcy93ZWJnbC9nbC10ZXhpbWFnZS5odG1sID0gVEVYVCBQQVNT
CiBCVUdXSzU4MTkyIDogZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxhdHRlbmluZy1v
ZmZzY3JlZW4uaHRtbCA9IFRFWFQgUEFTUwogQlVHV0s1ODE5MiA6IHN2Zy9kb20vU1ZHU2NyaXB0
RWxlbWVudC9zY3JpcHQtc2V0LWhyZWYuc3ZnID0gVEVYVCBQQVNTCi0KLUJVR1dLNjcwMDcgREVC
VUcgOiBmYXN0L3J1YnkvYWZ0ZXItYmxvY2stZG9lc250LWNyYXNoLmh0bWwgPSBDUkFTSAotQlVH
V0s2NzAwNyBERUJVRyA6IGZhc3QvcnVieS9hZnRlci10YWJsZS1kb2VzbnQtY3Jhc2guaHRtbCA9
IENSQVNICi1CVUdXSzY3MDA3IERFQlVHIDogZmFzdC9ydWJ5L2dlbmVyYXRlZC1hZnRlci1jb3Vu
dGVyLWRvZXNudC1jcmFzaC5odG1sID0gQ1JBU0gKLUJVR1dLNjcwMDcgREVCVUcgOiBmYXN0L3J1
YnkvZ2VuZXJhdGVkLWJlZm9yZS1hbmQtYWZ0ZXItY291bnRlci1kb2VzbnQtY3Jhc2guaHRtbCA9
IENSQVNICmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L3J1YnkvcnVi
eS1ibG9jay1zdHlsZS1ub3QtdXBkYXRlZC13aXRoLWJlZm9yZS1hZnRlci1jb250ZW50LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvcnVieS9ydWJ5LWJsb2NrLXN0
eWxlLW5vdC11cGRhdGVkLXdpdGgtYmVmb3JlLWFmdGVyLWNvbnRlbnQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGY1OGZmYjdhNWIwMmNkYWRjMDFlYTgyYzc4ZDdiYzFiMDFlMWRhZDAuLjc0ZTVlMjIwNDk3
Njk1NDhlMDUxZDFlZDg5YWVlZWU3OWU4ZTM0YTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L2Zhc3QvcnVieS9ydWJ5LWJsb2NrLXN0eWxlLW5vdC11cGRhdGVkLXdpdGgtYmVm
b3JlLWFmdGVyLWNvbnRlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L2Zhc3QvcnVieS9ydWJ5LWJsb2NrLXN0eWxlLW5vdC11cGRhdGVkLXdpdGgtYmVmb3JlLWFm
dGVyLWNvbnRlbnQtZXhwZWN0ZWQudHh0CkBAIC00LDE2ICs0LDIwIEBAIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CiAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CiAgICAgICBSZW5k
ZXJSdWJ5IChibG9jaykge1JVQll9IGF0ICgwLDApIHNpemUgNzg0eDM4NCBbY29sb3I9IzAwMDBG
Rl0KLSAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNTEyeDEy
OSBbY29sb3I9I0ZGQTUwMF0KLSAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDApIHNpemUgNTEy
eDEyOQotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTEyOiAiMTIzNCIKKyAg
ICAgICAgUmVuZGVyUnVieVJ1biAoYW5vbnltb3VzL0JFRk9SRSkgYXQgKDAsMCkgc2l6ZSA1MTJ4
MTI5CisgICAgICAgICAgUmVuZGVyUnVieUJhc2UgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA1
MTJ4MTI5CisgICAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6
ZSA1MTJ4MTI5IFtjb2xvcj0jRkZBNTAwXQorICAgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgw
LDApIHNpemUgNTEyeDEyOQorICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDUxMjogIjEyMzQiCiAgICAgICAgIFJlbmRlclJ1YnlSdW4gKGFub255bW91cykgYXQgKDAsMTI4
KSBzaXplIDUxMngxMjgKICAgICAgICAgICBSZW5kZXJSdWJ5QmFzZSAoYW5vbnltb3VzKSBhdCAo
MCwwKSBzaXplIDUxMngxMjgKICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDUxMngxMjkKICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTEy
OiAiQUJDRCIKLSAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUg
NTEyeDEyOSBbY29sb3I9I0ZGRkYwMF0KLSAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDI1Nikg
c2l6ZSA1MTJ4MTI5Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyNTYpIHdpZHRoIDUxMjog
IjQ1NzgiCisgICAgICAgIFJlbmRlclJ1YnlSdW4gKGFub255bW91cy9BRlRFUikgYXQgKDAsMjU2
KSBzaXplIDUxMngxMjkKKyAgICAgICAgICBSZW5kZXJSdWJ5QmFzZSAoYW5vbnltb3VzKSBhdCAo
MCwwKSBzaXplIDUxMngxMjkKKyAgICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBh
dCAoMCwwKSBzaXplIDUxMngxMjkgW2NvbG9yPSNGRkZGMDBdCisgICAgICAgICAgICAgIFJlbmRl
clRleHQgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI5CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggNTEyOiAiNDU3OCIKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM4
NCkgc2l6ZSA3ODR4MTI4IFtjb2xvcj0jMDA4MDAwXQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSA1MTJ4MTI5CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggNTEyOiAiRUZHSCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3Qv
cnVieS9ydWJ5LWlubGluZS1zdHlsZS1ub3QtdXBkYXRlZC13aXRoLWJlZm9yZS1hZnRlci1jb250
ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvcnVieS9ydWJ5
LWlubGluZS1zdHlsZS1ub3QtdXBkYXRlZC13aXRoLWJlZm9yZS1hZnRlci1jb250ZW50LWV4cGVj
dGVkLnR4dAppbmRleCBlMzBkNmRiNTRhNWM1NjAzZDRmMWM4ODBkMjYxZDUyZmQyYzkwM2EyLi5m
MGMwNzc1MDQ3YzUxMjE1ZGRjYjdiMWM5NDdiOWYwYjc4ZWFlM2UyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L3J1YnkvcnVieS1pbmxpbmUtc3R5bGUtbm90LXVwZGF0
ZWQtd2l0aC1iZWZvcmUtYWZ0ZXItY29udGVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvZmFzdC9ydWJ5L3J1YnktaW5saW5lLXN0eWxlLW5vdC11cGRhdGVkLXdp
dGgtYmVmb3JlLWFmdGVyLWNvbnRlbnQtZXhwZWN0ZWQudHh0CkBAIC01LDE2ICs1LDIwIEBAIGxh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgNzg0eDU4NAogICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6
ZSA3ODR4Mzg0CiAgICAgICAgIFJlbmRlclJ1YnkgKGlubGluZSkge1JVQll9IGF0ICgwLDApIHNp
emUgNTEyeDM4NSBbY29sb3I9IzAwMDBGRl0KLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVy
YXRlZCkgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI5IFtjb2xvcj0jRkZBNTAwXQotICAgICAgICAgICAg
UmVuZGVyVGV4dCBhdCAoMCwwKSBzaXplIDUxMngxMjkKLSAgICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNTEyOiAiMTIzNCIKKyAgICAgICAgICBSZW5kZXJSdWJ5UnVuIChhbm9u
eW1vdXMvQkVGT1JFKSBhdCAoMCwwKSBzaXplIDUxMngxMjkKKyAgICAgICAgICAgIFJlbmRlclJ1
YnlCYXNlIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNTEyeDEyOQorICAgICAgICAgICAgICBS
ZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI5IFtjb2xvcj0jRkZB
NTAwXQorICAgICAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI5Cisg
ICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1MTI6ICIxMjM0IgogICAg
ICAgICAgIFJlbmRlclJ1YnlSdW4gKGFub255bW91cykgYXQgKDAsMTI4KSBzaXplIDUxMngxMjgK
ICAgICAgICAgICAgIFJlbmRlclJ1YnlCYXNlIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNTEy
eDEyOAogICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1MTJ4
MTI5CiAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTEyOiAiQUJDRCIK
LSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA1MTJ4MTI5
IFtjb2xvcj0jRkZGRjAwXQotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMCwyNTYpIHNpemUg
NTEyeDEyOQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyNTYpIHdpZHRoIDUxMjogIjQ1
NzgiCisgICAgICAgICAgUmVuZGVyUnVieVJ1biAoYW5vbnltb3VzL0FGVEVSKSBhdCAoMCwyNTYp
IHNpemUgNTEyeDEyOQorICAgICAgICAgICAgUmVuZGVyUnVieUJhc2UgKGFub255bW91cykgYXQg
KDAsMCkgc2l6ZSA1MTJ4MTI5CisgICAgICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVk
KSBhdCAoMCwwKSBzaXplIDUxMngxMjkgW2NvbG9yPSNGRkZGMDBdCisgICAgICAgICAgICAgICAg
UmVuZGVyVGV4dCBhdCAoMCwwKSBzaXplIDUxMngxMjkKKyAgICAgICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDUxMjogIjQ1NzgiCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzg0KSBz
aXplIDc4NHgxMjggW2NvbG9yPSMwMDgwMDBdCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDUxMngxMjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMWFkM2M1MjhhMWU5M2IxNjYyYTg4
OGM2NThlZjM1ZGQ5ZGI3ZmVlLi43NTcxYzdhNGQ2YTk0ODM1NTE2NGY3ZjE1ZGIwOTY4YmE1ZGZm
ZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMTEtMDktMjcgIFJvbGFuZCBTdGVp
bmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgcjkzNzk0IHJlc3Vs
dHMgaW4gcnVieSB0ZXN0cyBjYXVzaW5nIGFzc2VydGlvbiBmYWlsdXJlIGluIFJlbmRlckJsb2Nr
LmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njcw
MDcKKworICAgICAgICBXcmFwIGdlbmVyYXRlZCBjb250ZW50IHdpdGhpbiBydWJ5IGludG8gdGhl
aXIgb3duIFJlbmRlclJ1YnlSdW4gY29udGFpbmVycy4KKyAgICAgICAgVGhpcyB0byBhdm9pZCB0
aGUgcGl0ZmFsbHMgb2YgaW1wbGljaXQgYXNzdW1wdGlvbnMgb24gYW5vbnlub3VzIGJsb2NrcyB0
aGF0IGdlbmVyYWxseQorICAgICAgICBleHBlY3QgQkxPQ0sgb3IgQk9YIGRpc3BsYXkgdHlwZXMs
IGJ1dCBub3QgSU5MSU5FX0JMT0NLLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3J1YnkvYWZ0ZXItYmxvY2stZG9lc250LWNyYXNo
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcnVieS9hZnRlci10YWJsZS1jZWxsLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvcnVieS9hZnRlci10YWJsZS1kb2VzbnQtY3Jhc2guaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9ydWJ5L2FmdGVyLXRhYmxlLXJvdy5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L3J1YnkvYWZ0ZXItdGFibGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ydWJ5L2dl
bmVyYXRlZC1hZnRlci1jb3VudGVyLWRvZXNudC1jcmFzaC5odG1sCisgICAgICAgICAgICAgICBm
YXN0L3J1YnkvZ2VuZXJhdGVkLWJlZm9yZS1hbmQtYWZ0ZXItY291bnRlci1kb2VzbnQtY3Jhc2gu
aHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6aXNSZWd1bGFyUnVieVJ1bik6CisgICAgICAgIChXZWJDb3JlOjppc1J1YnlCZWZvcmVS
dW4pOgorICAgICAgICAoV2ViQ29yZTo6aXNSdWJ5QWZ0ZXJSdW4pOgorICAgICAgICAoV2ViQ29y
ZTo6Z2V0UnVieUJlZm9yZVJ1bik6CisgICAgICAgIChXZWJDb3JlOjpnZXRPckNyZWF0ZVJ1YnlC
ZWZvcmVSdW4pOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UnVieUFmdGVyUnVuKToKKyAgICAgICAg
KFdlYkNvcmU6OmdldE9yQ3JlYXRlUnVieUFmdGVyUnVuKToKKyAgICAgICAgKFdlYkNvcmU6Omxh
c3RSZWd1bGFyUnVieVJ1bik6CisgICAgICAgIChXZWJDb3JlOjpmaW5kUnVieVJ1blBhcmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSdWJ5QXNJbmxpbmU6OmFkZENoaWxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlBc0lubGluZTo6cmVtb3ZlQ2hpbGQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyUnVieUFzQmxvY2s6OmFkZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclJ1YnlBc0Jsb2NrOjpyZW1vdmVDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclJ1YnlSdW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUnVieVJ1bjo6UmVuZGVy
UnVieVJ1bik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSdWJ5UnVuOjpoYXNSdWJ5VGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSdWJ5UnVuOjpoYXNSdWJ5QmFzZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJSdWJ5UnVuOjphZGRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJSdWJ5UnVuOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSdWJ5
UnVuOjpzdGF0aWNDcmVhdGVSdWJ5UnVuSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyUnVieVJ1bjo6Z2V0T3ZlcmhhbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUnVieVJ1
bjo6cmVuZGVyTmFtZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlSdW46OmlzUmVndWxhclJ1YnlSdW4pOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyUnVieVJ1bjo6aXNSdWJ5QmVmb3JlUnVuKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclJ1YnlSdW46OmlzUnVieUFmdGVyUnVuKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclJ1YnlSdW46OnN0YXRpY0NyZWF0ZVJ1YnlSdW4pOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUnVieVJ1bjo6c3RhdGljQ3JlYXRlUnVieUJlZm9yZVJ1bik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJSdWJ5UnVuOjpzdGF0aWNDcmVhdGVSdWJ5QWZ0ZXJSdW4pOgorCiAyMDExLTA5
LTI2ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbXBs
ZW1lbnQgUG9wU3RhdGVFdmVudC5zdGF0ZSB3aXRoIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBhbmQg
U2NyaXB0VmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
dWJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcAppbmRleCA0
MTYwNGQ2YWM5MTI3MWEyNjgyZGYxNjRjZTMxZTJlZDYzNjczZTRkLi4wMzk5ZmNkZGRlNDIzM2U2
MDAzYzgyNjY1ODFmMmNiOWRmYjY3MmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUnVieS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJ1YnkuY3BwCkBAIC00MCw3MiArNDAsNjggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLz09
PSBnZW5lcmljIGhlbHBlciBmdW5jdGlvbnMgdG8gYXZvaWQgZXhjZXNzaXZlIGNvZGUgZHVwbGlj
YXRpb24gPT09CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0Fub255bW91c1J1YnlJbmxpbmVCbG9j
ayhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc1JlZ3Vs
YXJSdWJ5UnVuKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAgIEFTU0VSVCghb2Jq
ZWN0Ci0gICAgICAgIHx8ICFvYmplY3QtPnBhcmVudCgpLT5pc1J1YnkoKQotICAgICAgICB8fCBv
YmplY3QtPmlzUnVieVJ1bigpCi0gICAgICAgIHx8IChvYmplY3QtPmlzSW5saW5lKCkgJiYgKG9i
amVjdC0+aXNCZWZvcmVDb250ZW50KCkgfHwgb2JqZWN0LT5pc0FmdGVyQ29udGVudCgpKSkKLSAg
ICAgICAgfHwgKG9iamVjdC0+aXNBbm9ueW1vdXMoKSAmJiBvYmplY3QtPmlzUmVuZGVyQmxvY2so
KSAmJiBvYmplY3QtPnN0eWxlKCktPmRpc3BsYXkoKSA9PSBJTkxJTkVfQkxPQ0spKTsKLQotICAg
IHJldHVybiBvYmplY3QKLSAgICAgICAgJiYgb2JqZWN0LT5wYXJlbnQoKS0+aXNSdWJ5KCkKLSAg
ICAgICAgJiYgb2JqZWN0LT5pc1JlbmRlckJsb2NrKCkKLSAgICAgICAgJiYgIW9iamVjdC0+aXNS
dWJ5UnVuKCk7CisgICAgcmV0dXJuIG9iamVjdCAmJiBvYmplY3QtPmlzUnVieVJ1bigpICYmIHRv
UmVuZGVyUnVieVJ1bihvYmplY3QpLT5pc1JlZ3VsYXJSdWJ5UnVuKCk7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBpc1J1YnlCZWZvcmVCbG9jayhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkK
K3N0YXRpYyBpbmxpbmUgYm9vbCBpc1J1YnlCZWZvcmVSdW4oY29uc3QgUmVuZGVyT2JqZWN0KiBv
YmplY3QpCiB7Ci0gICAgcmV0dXJuIGlzQW5vbnltb3VzUnVieUlubGluZUJsb2NrKG9iamVjdCkK
LSAgICAgICAgJiYgIW9iamVjdC0+cHJldmlvdXNTaWJsaW5nKCkKLSAgICAgICAgJiYgb2JqZWN0
LT5maXJzdENoaWxkKCkKLSAgICAgICAgJiYgb2JqZWN0LT5maXJzdENoaWxkKCktPnN0eWxlKCkt
PnN0eWxlVHlwZSgpID09IEJFRk9SRTsKKyAgICByZXR1cm4gb2JqZWN0ICYmIG9iamVjdC0+aXNS
dWJ5UnVuKCkgJiYgdG9SZW5kZXJSdWJ5UnVuKG9iamVjdCktPmlzUnVieUJlZm9yZVJ1bigpOwog
fQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNSdWJ5QWZ0ZXJCbG9jayhjb25zdCBSZW5kZXJPYmpl
Y3QqIG9iamVjdCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc1J1YnlBZnRlclJ1bihjb25zdCBSZW5k
ZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICByZXR1cm4gaXNBbm9ueW1vdXNSdWJ5SW5saW5lQmxv
Y2sob2JqZWN0KQotICAgICAgICAmJiAhb2JqZWN0LT5uZXh0U2libGluZygpCi0gICAgICAgICYm
IG9iamVjdC0+Zmlyc3RDaGlsZCgpCi0gICAgICAgICYmIG9iamVjdC0+Zmlyc3RDaGlsZCgpLT5z
dHlsZSgpLT5zdHlsZVR5cGUoKSA9PSBBRlRFUjsKKyAgICByZXR1cm4gb2JqZWN0ICYmIG9iamVj
dC0+aXNSdWJ5UnVuKCkgJiYgdG9SZW5kZXJSdWJ5UnVuKG9iamVjdCktPmlzUnVieUFmdGVyUnVu
KCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUmVuZGVyQmxvY2sqIHJ1YnlCZWZvcmVCbG9jayhjb25z
dCBSZW5kZXJPYmplY3QqIHJ1YnkpCitzdGF0aWMgaW5saW5lIFJlbmRlclJ1YnlSdW4qIGdldFJ1
YnlCZWZvcmVSdW4oY29uc3QgUmVuZGVyT2JqZWN0KiBydWJ5KQogewogICAgIFJlbmRlck9iamVj
dCogY2hpbGQgPSBydWJ5LT5maXJzdENoaWxkKCk7Ci0gICAgcmV0dXJuIGlzUnVieUJlZm9yZUJs
b2NrKGNoaWxkKSA/IHN0YXRpY19jYXN0PFJlbmRlckJsb2NrKj4oY2hpbGQpIDogMDsKKyAgICBy
ZXR1cm4gaXNSdWJ5QmVmb3JlUnVuKGNoaWxkKSA/IHN0YXRpY19jYXN0PFJlbmRlclJ1YnlSdW4q
PihjaGlsZCkgOiAwOwogfQogCi1zdGF0aWMgaW5saW5lIFJlbmRlckJsb2NrKiBydWJ5QWZ0ZXJC
bG9jayhjb25zdCBSZW5kZXJPYmplY3QqIHJ1YnkpCitzdGF0aWMgaW5saW5lIFJlbmRlclJ1YnlS
dW4qIGdldE9yQ3JlYXRlUnVieUJlZm9yZVJ1bihSZW5kZXJPYmplY3QqIHJ1YnkpCiB7Ci0gICAg
UmVuZGVyT2JqZWN0KiBjaGlsZCA9IHJ1YnktPmxhc3RDaGlsZCgpOwotICAgIHJldHVybiBpc1J1
YnlBZnRlckJsb2NrKGNoaWxkKSA/IHN0YXRpY19jYXN0PFJlbmRlckJsb2NrKj4oY2hpbGQpIDog
MDsKKyAgICBSZW5kZXJSdWJ5UnVuKiBydW4gPSBnZXRSdWJ5QmVmb3JlUnVuKHJ1YnkpOworICAg
IGlmICghcnVuKSB7CisgICAgICAgIHJ1biA9IFJlbmRlclJ1YnlSdW46OnN0YXRpY0NyZWF0ZVJ1
YnlCZWZvcmVSdW4ocnVieSk7CisgICAgICAgIHJ1YnktPmFkZENoaWxkKHJ1biwgcnVieS0+Zmly
c3RDaGlsZCgpKTsKKyAgICB9CisgICAgcmV0dXJuIHJ1bjsKIH0KIAotc3RhdGljIFJlbmRlckJs
b2NrKiBjcmVhdGVBbm9ueW1vdXNSdWJ5SW5saW5lQmxvY2soUmVuZGVyT2JqZWN0KiBydWJ5KQor
c3RhdGljIGlubGluZSBSZW5kZXJSdWJ5UnVuKiBnZXRSdWJ5QWZ0ZXJSdW4oY29uc3QgUmVuZGVy
T2JqZWN0KiBydWJ5KQogewotICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBSZW5k
ZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGUocnVieS0+c3R5bGUoKSk7Ci0gICAgbmV3U3R5
bGUtPnNldERpc3BsYXkoSU5MSU5FX0JMT0NLKTsKKyAgICBSZW5kZXJPYmplY3QqIGNoaWxkID0g
cnVieS0+bGFzdENoaWxkKCk7CisgICAgcmV0dXJuIGlzUnVieUFmdGVyUnVuKGNoaWxkKSA/IHN0
YXRpY19jYXN0PFJlbmRlclJ1YnlSdW4qPihjaGlsZCkgOiAwOworfQogCi0gICAgUmVuZGVyQmxv
Y2sqIG5ld0Jsb2NrID0gbmV3IChydWJ5LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9jayhydWJ5
LT5kb2N1bWVudCgpIC8qIGFub255bW91cyBib3ggKi8pOwotICAgIG5ld0Jsb2NrLT5zZXRTdHls
ZShuZXdTdHlsZS5yZWxlYXNlKCkpOwotICAgIHJldHVybiBuZXdCbG9jazsKK3N0YXRpYyBpbmxp
bmUgUmVuZGVyUnVieVJ1biogZ2V0T3JDcmVhdGVSdWJ5QWZ0ZXJSdW4oUmVuZGVyT2JqZWN0KiBy
dWJ5KQoreworICAgIFJlbmRlclJ1YnlSdW4qIHJ1biA9IGdldFJ1YnlBZnRlclJ1bihydWJ5KTsK
KyAgICBpZiAoIXJ1bikgeworICAgICAgICBydW4gPSBSZW5kZXJSdWJ5UnVuOjpzdGF0aWNDcmVh
dGVSdWJ5QWZ0ZXJSdW4ocnVieSk7CisgICAgICAgIHJ1YnktPmFkZENoaWxkKHJ1bik7CisgICAg
fQorICAgIHJldHVybiBydW47CiB9CiAKLXN0YXRpYyBSZW5kZXJSdWJ5UnVuKiBsYXN0UnVieVJ1
bihjb25zdCBSZW5kZXJPYmplY3QqIHJ1YnkpCitzdGF0aWMgUmVuZGVyUnVieVJ1biogbGFzdFJl
Z3VsYXJSdWJ5UnVuKGNvbnN0IFJlbmRlck9iamVjdCogcnVieSkKIHsKICAgICBSZW5kZXJPYmpl
Y3QqIGNoaWxkID0gcnVieS0+bGFzdENoaWxkKCk7Ci0gICAgaWYgKGNoaWxkICYmICFjaGlsZC0+
aXNSdWJ5UnVuKCkpCisgICAgQVNTRVJUKCFjaGlsZCB8fCBjaGlsZC0+aXNSdWJ5UnVuKCkpOwor
ICAgIGlmIChpc1J1YnlBZnRlclJ1bihjaGlsZCkpCiAgICAgICAgIGNoaWxkID0gY2hpbGQtPnBy
ZXZpb3VzU2libGluZygpOwotICAgIEFTU0VSVCghY2hpbGQgfHwgY2hpbGQtPmlzUnVieVJ1bigp
IHx8IGNoaWxkLT5pc0JlZm9yZUNvbnRlbnQoKSB8fCBjaGlsZCA9PSBydWJ5QmVmb3JlQmxvY2so
cnVieSkpOwotICAgIHJldHVybiBjaGlsZCAmJiBjaGlsZC0+aXNSdWJ5UnVuKCkgPyBzdGF0aWNf
Y2FzdDxSZW5kZXJSdWJ5UnVuKj4oY2hpbGQpIDogMDsKKyAgICBBU1NFUlQoIWNoaWxkIHx8IGlz
UmVndWxhclJ1YnlSdW4oY2hpbGQpIHx8IGlzUnVieUJlZm9yZVJ1bihjaGlsZCkpOworICAgIHJl
dHVybiBpc1JlZ3VsYXJSdWJ5UnVuKGNoaWxkKSA/IHRvUmVuZGVyUnVieVJ1bihjaGlsZCkgOiAw
OwogfQogCi1zdGF0aWMgaW5saW5lIFJlbmRlclJ1YnlSdW4qIGZpbmRSdWJ5UnVuUGFyZW50KFJl
bmRlck9iamVjdCogY2hpbGQpCitzdGF0aWMgaW5saW5lIFJlbmRlclJ1YnlSdW4qIGZpbmRSdWJ5
UnVuUGFyZW50KFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAgIHdoaWxlIChjaGlsZCAmJiAh
Y2hpbGQtPmlzUnVieVJ1bigpKQotICAgICAgICBjaGlsZCA9IGNoaWxkLT5wYXJlbnQoKTsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyUnVieVJ1bio+KGNoaWxkKTsKKyAgICB3aGlsZSAo
b2JqZWN0ICYmICFvYmplY3QtPmlzUnVieVJ1bigpKQorICAgICAgICBvYmplY3QgPSBvYmplY3Qt
PnBhcmVudCgpOworICAgIHJldHVybiB0b1JlbmRlclJ1YnlSdW4ob2JqZWN0KTsKIH0KIAogLy89
PT0gcnVieSBhcyBpbmxpbmUgb2JqZWN0ID09PQpAQCAtMTI3LDg2ICsxMjMsNTUgQEAgdm9pZCBS
ZW5kZXJSdWJ5QXNJbmxpbmU6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBj
b25zdCBSZW5kZXJTdHlsZSoKIAogdm9pZCBSZW5kZXJSdWJ5QXNJbmxpbmU6OmFkZENoaWxkKFJl
bmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiB7Ci0gICAgLy8g
SW5zZXJ0IDpiZWZvcmUgYW5kIDphZnRlciBjb250ZW50IGJlZm9yZS9hZnRlciB0aGUgUmVuZGVy
UnVieVJ1bihzKQorICAgIC8vIEluc2VydCA6OmJlZm9yZSBhbmQgOjphZnRlciBjb250ZW50IGJl
Zm9yZS9hZnRlciB0aGUgUmVuZGVyUnVieVJ1bihzKQogICAgIGlmIChjaGlsZC0+aXNCZWZvcmVD
b250ZW50KCkpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5pc0lubGluZSgpKSB7Ci0gICAgICAgICAg
ICAvLyBBZGQgZ2VuZXJhdGVkIGlubGluZSBjb250ZW50IG5vcm1hbGx5Ci0gICAgICAgICAgICBS
ZW5kZXJJbmxpbmU6OmFkZENoaWxkKGNoaWxkLCBmaXJzdENoaWxkKCkpOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgLy8gV3JhcCBub24taW5saW5lIGNvbnRlbnQgd2l0aCBhbiBhbm9u
eW1vdXMgaW5saW5lLWJsb2NrLgotICAgICAgICAgICAgUmVuZGVyQmxvY2sqIGJlZm9yZUJsb2Nr
ID0gcnVieUJlZm9yZUJsb2NrKHRoaXMpOwotICAgICAgICAgICAgaWYgKCFiZWZvcmVCbG9jaykg
ewotICAgICAgICAgICAgICAgIGJlZm9yZUJsb2NrID0gY3JlYXRlQW5vbnltb3VzUnVieUlubGlu
ZUJsb2NrKHRoaXMpOwotICAgICAgICAgICAgICAgIFJlbmRlcklubGluZTo6YWRkQ2hpbGQoYmVm
b3JlQmxvY2ssIGZpcnN0Q2hpbGQoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBiZWZv
cmVCbG9jay0+YWRkQ2hpbGQoY2hpbGQpOwotICAgICAgICB9CisgICAgICAgIEFTU0VSVCghYmVm
b3JlQ2hpbGQpOworICAgICAgICBnZXRPckNyZWF0ZVJ1YnlCZWZvcmVSdW4odGhpcyktPmFkZENo
aWxkKGNoaWxkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoY2hpbGQtPmlzQWZ0
ZXJDb250ZW50KCkpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5pc0lubGluZSgpKSB7Ci0gICAgICAg
ICAgICAvLyBBZGQgZ2VuZXJhdGVkIGlubGluZSBjb250ZW50IG5vcm1hbGx5Ci0gICAgICAgICAg
ICBSZW5kZXJJbmxpbmU6OmFkZENoaWxkKGNoaWxkKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIC8vIFdyYXAgbm9uLWlubGluZSBjb250ZW50IHdpdGggYW4gYW5vbnltb3VzIGlubGlu
ZS1ibG9jay4KLSAgICAgICAgICAgIFJlbmRlckJsb2NrKiBhZnRlckJsb2NrID0gcnVieUFmdGVy
QmxvY2sodGhpcyk7Ci0gICAgICAgICAgICBpZiAoIWFmdGVyQmxvY2spIHsKLSAgICAgICAgICAg
ICAgICBhZnRlckJsb2NrID0gY3JlYXRlQW5vbnltb3VzUnVieUlubGluZUJsb2NrKHRoaXMpOwot
ICAgICAgICAgICAgICAgIFJlbmRlcklubGluZTo6YWRkQ2hpbGQoYWZ0ZXJCbG9jayk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBhZnRlckJsb2NrLT5hZGRDaGlsZChjaGlsZCk7Ci0gICAg
ICAgIH0KKyAgICAgICAgQVNTRVJUKCFiZWZvcmVDaGlsZCk7CisgICAgICAgIGdldE9yQ3JlYXRl
UnVieUFmdGVyUnVuKHRoaXMpLT5hZGRDaGlsZChjaGlsZCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICAvLyBJZiB0aGUgY2hpbGQgaXMgYSBydWJ5IHJ1biwganVzdCBhZGQgaXQgbm9y
bWFsbHkuCiAgICAgaWYgKGNoaWxkLT5pc1J1YnlSdW4oKSkgeworICAgICAgICAvLyBUaGlzIGJy
YW5jaCBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkgUmVuZGVyUnVieUFzSW5saW5lLCBub3QgcmFu
ZG9tbHkuCisgICAgICAgIEFTU0VSVCghYmVmb3JlQ2hpbGQgfHwgYmVmb3JlQ2hpbGQtPmlzUnVi
eVJ1bigpKTsKICAgICAgICAgUmVuZGVySW5saW5lOjphZGRDaGlsZChjaGlsZCwgYmVmb3JlQ2hp
bGQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGJlZm9yZUNoaWxkICYmICFp
c0FmdGVyQ29udGVudChiZWZvcmVDaGlsZCkpIHsKKyAgICBpZiAoYmVmb3JlQ2hpbGQpIHsKICAg
ICAgICAgLy8gaW5zZXJ0IGNoaWxkIGludG8gcnVuCi0gICAgICAgIEFTU0VSVCghYmVmb3JlQ2hp
bGQtPmlzUnVieVJ1bigpKTsKLSAgICAgICAgUmVuZGVyT2JqZWN0KiBydW4gPSBiZWZvcmVDaGls
ZDsKLSAgICAgICAgd2hpbGUgKHJ1biAmJiAhcnVuLT5pc1J1YnlSdW4oKSkKLSAgICAgICAgICAg
IHJ1biA9IHJ1bi0+cGFyZW50KCk7Ci0gICAgICAgIGlmIChydW4pIHsKKyAgICAgICAgUmVuZGVy
UnVieVJ1biogcnVuID0gZmluZFJ1YnlSdW5QYXJlbnQoYmVmb3JlQ2hpbGQpOworICAgICAgICBB
U1NFUlQocnVuKTsKKyAgICAgICAgaWYgKHJ1biAmJiBydW4tPmlzUmVndWxhclJ1YnlSdW4oKSkg
ewogICAgICAgICAgICAgcnVuLT5hZGRDaGlsZChjaGlsZCwgYmVmb3JlQ2hpbGQpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyAv
LyBiZWZvcmVDaGlsZCBzaG91bGQgYWx3YXlzIGhhdmUgYSBydW4gYXMgcGFyZW50IQotICAgICAg
ICAvLyBFbWVyZ2VuY3kgZmFsbGJhY2s6IGZhbGwgdGhyb3VnaCBhbmQganVzdCBhcHBlbmQuCiAg
ICAgfQogCiAgICAgLy8gSWYgdGhlIG5ldyBjaGlsZCB3b3VsZCBiZSBhcHBlbmRlZCwgdHJ5IHRv
IGFkZCB0aGUgY2hpbGQgdG8gdGhlIHByZXZpb3VzIHJ1bgogICAgIC8vIGlmIHBvc3NpYmxlLCBv
ciBjcmVhdGUgYSBuZXcgcnVuIG90aGVyd2lzZS4KICAgICAvLyAoVGhlIFJlbmRlclJ1YnlSdW4g
b2JqZWN0IHdpbGwgaGFuZGxlIHRoZSBkZXRhaWxzKQotICAgIFJlbmRlclJ1YnlSdW4qIGxhc3RS
dW4gPSBsYXN0UnVieVJ1bih0aGlzKTsKKyAgICBSZW5kZXJSdWJ5UnVuKiBsYXN0UnVuID0gbGFz
dFJlZ3VsYXJSdWJ5UnVuKHRoaXMpOwogICAgIGlmICghbGFzdFJ1biB8fCBsYXN0UnVuLT5oYXNS
dWJ5VGV4dCgpKSB7CiAgICAgICAgIGxhc3RSdW4gPSBSZW5kZXJSdWJ5UnVuOjpzdGF0aWNDcmVh
dGVSdWJ5UnVuKHRoaXMpOwotICAgICAgICBSZW5kZXJJbmxpbmU6OmFkZENoaWxkKGxhc3RSdW4p
OworICAgICAgICBSZW5kZXJJbmxpbmU6OmFkZENoaWxkKGxhc3RSdW4sIGdldFJ1YnlBZnRlclJ1
bih0aGlzKSk7CiAgICAgfQogICAgIGxhc3RSdW4tPmFkZENoaWxkKGNoaWxkKTsKIH0KIAogdm9p
ZCBSZW5kZXJSdWJ5QXNJbmxpbmU6OnJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCogY2hpbGQpCiB7
Ci0gICAgLy8gSWYgdGhlIGNoaWxkJ3MgcGFyZW50IGlzICp0aGlzIChtdXN0IGJlIGEgcnVieSBy
dW4gb3IgZ2VuZXJhdGVkIGNvbnRlbnQgb3IgYW5vbnltb3VzIGJsb2NrKSwKLSAgICAvLyBqdXN0
IHVzZSB0aGUgbm9ybWFsIHJlbW92ZSBtZXRob2QuCisgICAgLy8gSWYgdGhlIGNoaWxkJ3MgcGFy
ZW50IGlzICp0aGlzIChtdXN0IGJlIGEgcnVieSBydW4pLCBqdXN0IHVzZSB0aGUgbm9ybWFsIHJl
bW92ZSBtZXRob2QuCiAgICAgaWYgKGNoaWxkLT5wYXJlbnQoKSA9PSB0aGlzKSB7Ci0gICAgICAg
IEFTU0VSVChjaGlsZC0+aXNSdWJ5UnVuKCkgfHwgY2hpbGQtPmlzQmVmb3JlQ29udGVudCgpIHx8
IGNoaWxkLT5pc0FmdGVyQ29udGVudCgpIHx8IGlzQW5vbnltb3VzUnVieUlubGluZUJsb2NrKGNo
aWxkKSk7CisgICAgICAgIEFTU0VSVChjaGlsZC0+aXNSdWJ5UnVuKCkpOwogICAgICAgICBSZW5k
ZXJJbmxpbmU6OnJlbW92ZUNoaWxkKGNoaWxkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAg
ICAvLyBJZiB0aGUgY2hpbGQncyBwYXJlbnQgaXMgYW4gYW5veW1vdXMgYmxvY2sgKG11c3QgYmUg
Z2VuZXJhdGVkIDpiZWZvcmUvOmFmdGVyIGNvbnRlbnQpCi0gICAgLy8ganVzdCB1c2UgdGhlIGJs
b2NrJ3MgcmVtb3ZlIG1ldGhvZC4KLSAgICBpZiAoaXNBbm9ueW1vdXNSdWJ5SW5saW5lQmxvY2so
Y2hpbGQtPnBhcmVudCgpKSkgewotICAgICAgICBBU1NFUlQoY2hpbGQtPmlzQmVmb3JlQ29udGVu
dCgpIHx8IGNoaWxkLT5pc0FmdGVyQ29udGVudCgpKTsKLSAgICAgICAgY2hpbGQtPnBhcmVudCgp
LT5yZW1vdmVDaGlsZChjaGlsZCk7Ci0gICAgICAgIHJlbW92ZUNoaWxkKGNoaWxkLT5wYXJlbnQo
KSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAKICAgICAvLyBPdGhlcndpc2UgZmluZCB0aGUg
Y29udGFpbmluZyBydW4gYW5kIHJlbW92ZSBpdCBmcm9tIHRoZXJlLgogICAgIFJlbmRlclJ1YnlS
dW4qIHJ1biA9IGZpbmRSdWJ5UnVuUGFyZW50KGNoaWxkKTsKQEAgLTIzNCw4NiArMTk5LDU1IEBA
IHZvaWQgUmVuZGVyUnVieUFzQmxvY2s6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBk
aWZmLCBjb25zdCBSZW5kZXJTdHlsZSoKIAogdm9pZCBSZW5kZXJSdWJ5QXNCbG9jazo6YWRkQ2hp
bGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsKLSAg
ICAvLyBJbnNlcnQgOmJlZm9yZSBhbmQgOmFmdGVyIGNvbnRlbnQgYmVmb3JlL2FmdGVyIHRoZSBS
ZW5kZXJSdWJ5UnVuKHMpCisgICAgLy8gSW5zZXJ0IDo6YmVmb3JlIGFuZCA6OmFmdGVyIGNvbnRl
bnQgYmVmb3JlL2FmdGVyIHRoZSBSZW5kZXJSdWJ5UnVuKHMpCiAgICAgaWYgKGNoaWxkLT5pc0Jl
Zm9yZUNvbnRlbnQoKSkgewotICAgICAgICBpZiAoY2hpbGQtPmlzSW5saW5lKCkpIHsKLSAgICAg
ICAgICAgIC8vIEFkZCBnZW5lcmF0ZWQgaW5saW5lIGNvbnRlbnQgbm9ybWFsbHkKLSAgICAgICAg
ICAgIFJlbmRlckJsb2NrOjphZGRDaGlsZChjaGlsZCwgZmlyc3RDaGlsZCgpKTsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIC8vIFdyYXAgbm9uLWlubGluZSBjb250ZW50IHdpdGggYW4g
YW5vbnltb3VzIGlubGluZS1ibG9jay4KLSAgICAgICAgICAgIFJlbmRlckJsb2NrKiBiZWZvcmVC
bG9jayA9IHJ1YnlCZWZvcmVCbG9jayh0aGlzKTsKLSAgICAgICAgICAgIGlmICghYmVmb3JlQmxv
Y2spIHsKLSAgICAgICAgICAgICAgICBiZWZvcmVCbG9jayA9IGNyZWF0ZUFub255bW91c1J1YnlJ
bmxpbmVCbG9jayh0aGlzKTsKLSAgICAgICAgICAgICAgICBSZW5kZXJCbG9jazo6YWRkQ2hpbGQo
YmVmb3JlQmxvY2ssIGZpcnN0Q2hpbGQoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBi
ZWZvcmVCbG9jay0+YWRkQ2hpbGQoY2hpbGQpOwotICAgICAgICB9CisgICAgICAgIEFTU0VSVCgh
YmVmb3JlQ2hpbGQpOworICAgICAgICBnZXRPckNyZWF0ZVJ1YnlCZWZvcmVSdW4odGhpcyktPmFk
ZENoaWxkKGNoaWxkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoY2hpbGQtPmlz
QWZ0ZXJDb250ZW50KCkpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5pc0lubGluZSgpKSB7Ci0gICAg
ICAgICAgICAvLyBBZGQgZ2VuZXJhdGVkIGlubGluZSBjb250ZW50IG5vcm1hbGx5Ci0gICAgICAg
ICAgICBSZW5kZXJCbG9jazo6YWRkQ2hpbGQoY2hpbGQpOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgLy8gV3JhcCBub24taW5saW5lIGNvbnRlbnQgd2l0aCBhbiBhbm9ueW1vdXMgaW5s
aW5lLWJsb2NrLgotICAgICAgICAgICAgUmVuZGVyQmxvY2sqIGFmdGVyQmxvY2sgPSBydWJ5QWZ0
ZXJCbG9jayh0aGlzKTsKLSAgICAgICAgICAgIGlmICghYWZ0ZXJCbG9jaykgewotICAgICAgICAg
ICAgICAgIGFmdGVyQmxvY2sgPSBjcmVhdGVBbm9ueW1vdXNSdWJ5SW5saW5lQmxvY2sodGhpcyk7
Ci0gICAgICAgICAgICAgICAgUmVuZGVyQmxvY2s6OmFkZENoaWxkKGFmdGVyQmxvY2spOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgYWZ0ZXJCbG9jay0+YWRkQ2hpbGQoY2hpbGQpOwotICAg
ICAgICB9CisgICAgICAgIEFTU0VSVCghYmVmb3JlQ2hpbGQpOworICAgICAgICBnZXRPckNyZWF0
ZVJ1YnlBZnRlclJ1bih0aGlzKS0+YWRkQ2hpbGQoY2hpbGQpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgLy8gSWYgdGhlIGNoaWxkIGlzIGEgcnVieSBydW4sIGp1c3QgYWRkIGl0IG5v
cm1hbGx5LgogICAgIGlmIChjaGlsZC0+aXNSdWJ5UnVuKCkpIHsKKyAgICAgICAgLy8gVGhpcyBi
cmFuY2ggc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJ5IFJlbmRlclJ1YnlBc0Jsb2NrLCBub3QgcmFu
ZG9tbHkuCisgICAgICAgIEFTU0VSVCghYmVmb3JlQ2hpbGQgfHwgYmVmb3JlQ2hpbGQtPmlzUnVi
eVJ1bigpKTsKICAgICAgICAgUmVuZGVyQmxvY2s6OmFkZENoaWxkKGNoaWxkLCBiZWZvcmVDaGls
ZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoYmVmb3JlQ2hpbGQgJiYgIWlz
QWZ0ZXJDb250ZW50KGJlZm9yZUNoaWxkKSkgeworICAgIGlmIChiZWZvcmVDaGlsZCkgewogICAg
ICAgICAvLyBpbnNlcnQgY2hpbGQgaW50byBydW4KLSAgICAgICAgQVNTRVJUKCFiZWZvcmVDaGls
ZC0+aXNSdWJ5UnVuKCkpOwotICAgICAgICBSZW5kZXJPYmplY3QqIHJ1biA9IGJlZm9yZUNoaWxk
OwotICAgICAgICB3aGlsZSAocnVuICYmICFydW4tPmlzUnVieVJ1bigpKQotICAgICAgICAgICAg
cnVuID0gcnVuLT5wYXJlbnQoKTsKLSAgICAgICAgaWYgKHJ1bikgeworICAgICAgICBSZW5kZXJS
dWJ5UnVuKiBydW4gPSBmaW5kUnVieVJ1blBhcmVudChiZWZvcmVDaGlsZCk7CisgICAgICAgIEFT
U0VSVChydW4pOworICAgICAgICBpZiAocnVuICYmIHJ1bi0+aXNSZWd1bGFyUnVieVJ1bigpKSB7
CiAgICAgICAgICAgICBydW4tPmFkZENoaWxkKGNoaWxkLCBiZWZvcmVDaGlsZCk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8v
IGJlZm9yZUNoaWxkIHNob3VsZCBhbHdheXMgaGF2ZSBhIHJ1biBhcyBwYXJlbnQhCi0gICAgICAg
IC8vIEVtZXJnZW5jeSBmYWxsYmFjazogZmFsbCB0aHJvdWdoIGFuZCBqdXN0IGFwcGVuZC4KICAg
ICB9CiAKICAgICAvLyBJZiB0aGUgbmV3IGNoaWxkIHdvdWxkIGJlIGFwcGVuZGVkLCB0cnkgdG8g
YWRkIHRoZSBjaGlsZCB0byB0aGUgcHJldmlvdXMgcnVuCiAgICAgLy8gaWYgcG9zc2libGUsIG9y
IGNyZWF0ZSBhIG5ldyBydW4gb3RoZXJ3aXNlLgogICAgIC8vIChUaGUgUmVuZGVyUnVieVJ1biBv
YmplY3Qgd2lsbCBoYW5kbGUgdGhlIGRldGFpbHMpCi0gICAgUmVuZGVyUnVieVJ1biogbGFzdFJ1
biA9IGxhc3RSdWJ5UnVuKHRoaXMpOworICAgIFJlbmRlclJ1YnlSdW4qIGxhc3RSdW4gPSBsYXN0
UmVndWxhclJ1YnlSdW4odGhpcyk7CiAgICAgaWYgKCFsYXN0UnVuIHx8IGxhc3RSdW4tPmhhc1J1
YnlUZXh0KCkpIHsKICAgICAgICAgbGFzdFJ1biA9IFJlbmRlclJ1YnlSdW46OnN0YXRpY0NyZWF0
ZVJ1YnlSdW4odGhpcyk7Ci0gICAgICAgIFJlbmRlckJsb2NrOjphZGRDaGlsZChsYXN0UnVuKTsK
KyAgICAgICAgUmVuZGVyQmxvY2s6OmFkZENoaWxkKGxhc3RSdW4sIGdldFJ1YnlBZnRlclJ1bih0
aGlzKSk7CiAgICAgfQogICAgIGxhc3RSdW4tPmFkZENoaWxkKGNoaWxkKTsKIH0KIAogdm9pZCBS
ZW5kZXJSdWJ5QXNCbG9jazo6cmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKIHsKLSAg
ICAvLyBJZiB0aGUgY2hpbGQncyBwYXJlbnQgaXMgKnRoaXMgKG11c3QgYmUgYSBydWJ5IHJ1biBv
ciBnZW5lcmF0ZWQgY29udGVudCBvciBhbm9ueW1vdXMgYmxvY2spLAotICAgIC8vIGp1c3QgdXNl
IHRoZSBub3JtYWwgcmVtb3ZlIG1ldGhvZC4KKyAgICAvLyBJZiB0aGUgY2hpbGQncyBwYXJlbnQg
aXMgKnRoaXMgKG11c3QgYmUgYSBydWJ5IHJ1biksIGp1c3QgdXNlIHRoZSBub3JtYWwgcmVtb3Zl
IG1ldGhvZC4KICAgICBpZiAoY2hpbGQtPnBhcmVudCgpID09IHRoaXMpIHsKLSAgICAgICAgQVNT
RVJUKGNoaWxkLT5pc1J1YnlSdW4oKSB8fCBjaGlsZC0+aXNCZWZvcmVDb250ZW50KCkgfHwgY2hp
bGQtPmlzQWZ0ZXJDb250ZW50KCkgfHwgaXNBbm9ueW1vdXNSdWJ5SW5saW5lQmxvY2soY2hpbGQp
KTsKKyAgICAgICAgQVNTRVJUKGNoaWxkLT5pc1J1YnlSdW4oKSk7CiAgICAgICAgIFJlbmRlckJs
b2NrOjpyZW1vdmVDaGlsZChjaGlsZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgLy8g
SWYgdGhlIGNoaWxkJ3MgcGFyZW50IGlzIGFuIGFub3ltb3VzIGJsb2NrIChtdXN0IGJlIGdlbmVy
YXRlZCA6YmVmb3JlLzphZnRlciBjb250ZW50KQotICAgIC8vIGp1c3QgdXNlIHRoZSBibG9jaydz
IHJlbW92ZSBtZXRob2QuCi0gICAgaWYgKGlzQW5vbnltb3VzUnVieUlubGluZUJsb2NrKGNoaWxk
LT5wYXJlbnQoKSkpIHsKLSAgICAgICAgQVNTRVJUKGNoaWxkLT5pc0JlZm9yZUNvbnRlbnQoKSB8
fCBjaGlsZC0+aXNBZnRlckNvbnRlbnQoKSk7Ci0gICAgICAgIGNoaWxkLT5wYXJlbnQoKS0+cmVt
b3ZlQ2hpbGQoY2hpbGQpOwotICAgICAgICByZW1vdmVDaGlsZChjaGlsZC0+cGFyZW50KCkpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQogCiAgICAgLy8gT3RoZXJ3aXNlIGZpbmQgdGhlIGNvbnRh
aW5pbmcgcnVuIGFuZCByZW1vdmUgaXQgZnJvbSB0aGVyZS4KICAgICBSZW5kZXJSdWJ5UnVuKiBy
dW4gPSBmaW5kUnVieVJ1blBhcmVudChjaGlsZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUnVieVJ1bi5jcHAKaW5kZXggNTMwYzZiZGIyY2M2ZDBhN2VkZmUxNzM4ODZiNjFhOThl
ZGI2ZjA1Zi4uYzkxNmZkODY5MzY2NjFmZGU2NjU2NDhlMGU1NTNlMmU3M2YyNjc3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNwcApAQCAtNDEsOCArNDEsOSBA
QCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlbmRlclJ1
YnlSdW46OlJlbmRlclJ1YnlSdW4oTm9kZSogbm9kZSkKK1JlbmRlclJ1YnlSdW46OlJlbmRlclJ1
YnlSdW4oTm9kZSogbm9kZSwgUnVieVJ1bkNvbnRlbnRUeXBlIGNvbnRlbnRUeXBlKQogICAgIDog
UmVuZGVyQmxvY2sobm9kZSkKKyAgICAsIG1fY29udGVudFR5cGUoY29udGVudFR5cGUpCiB7CiAg
ICAgc2V0UmVwbGFjZWQodHJ1ZSk7CiAgICAgc2V0SW5saW5lKHRydWUpOwpAQCAtNTUsMTQgKzU2
LDE2IEBAIFJlbmRlclJ1YnlSdW46On5SZW5kZXJSdWJ5UnVuKCkKIGJvb2wgUmVuZGVyUnVieVJ1
bjo6aGFzUnVieVRleHQoKSBjb25zdAogewogICAgIC8vIFRoZSBvbmx5IHBsYWNlIHdoZXJlIGEg
cnVieSB0ZXh0IGNhbiBiZSBpcyBpbiB0aGUgZmlyc3QgcG9zaXRpb24KLSAgICAvLyBOb3RlOiBB
cyBhbm9ueW1vdXMgYmxvY2tzLCBydWJ5IHJ1bnMgZG8gbm90IGhhdmUgJzpiZWZvcmUnIG9yICc6
YWZ0ZXInIGNvbnRlbnQgdGhlbXNlbHZlcy4KKyAgICAvLyBOb3RlOiBBcyBhbm9ueW1vdXMgYmxv
Y2tzLCBydWJ5IHJ1bnMgZG8gbm90IGhhdmUgJzo6YmVmb3JlJyBvciAnOjphZnRlcicgY29udGVu
dCB0aGVtc2VsdmVzLgorICAgIC8vIE5vdGU6IE9ubHkgcmVndWxhciBydW5zIGNhbiBoYXZlIHJ1
YnkgdGV4dCwgZ2VuZXJhdGVkIDo6YmVmb3JlLzo6YWZ0ZXIgY29udGVudCBjYW4ndC4KKyAgICBB
U1NFUlQobV9jb250ZW50VHlwZSA9PSBSdWJ5UnVuQ29udGVudFJlZ3VsYXIpOwogICAgIHJldHVy
biBmaXJzdENoaWxkKCkgJiYgZmlyc3RDaGlsZCgpLT5pc1J1YnlUZXh0KCk7CiB9CiAKIGJvb2wg
UmVuZGVyUnVieVJ1bjo6aGFzUnVieUJhc2UoKSBjb25zdAogewogICAgIC8vIFRoZSBvbmx5IHBs
YWNlIHdoZXJlIGEgcnVieSBiYXNlIGNhbiBiZSBpcyBpbiB0aGUgbGFzdCBwb3NpdGlvbgotICAg
IC8vIE5vdGU6IEFzIGFub255bW91cyBibG9ja3MsIHJ1YnkgcnVucyBkbyBub3QgaGF2ZSAnOmJl
Zm9yZScgb3IgJzphZnRlcicgY29udGVudCB0aGVtc2VsdmVzLgorICAgIC8vIE5vdGU6IEFzIGFu
b255bW91cyBibG9ja3MsIHJ1YnkgcnVucyBkbyBub3QgaGF2ZSAnOjpiZWZvcmUnIG9yICc6OmFm
dGVyJyBjb250ZW50IHRoZW1zZWx2ZXMuCiAgICAgcmV0dXJuIGxhc3RDaGlsZCgpICYmIGxhc3RD
aGlsZCgpLT5pc1J1YnlCYXNlKCk7CiB9CiAKQEAgLTEwMiwxNiArMTA1LDEyIEBAIHZvaWQgUmVu
ZGVyUnVieVJ1bjo6dXBkYXRlRmlyc3RMZXR0ZXIoKQogewogfQogCi1ib29sIFJlbmRlclJ1YnlS
dW46OmlzQ2hpbGRBbGxvd2VkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlclN0eWxlKikgY29u
c3QKLXsKLSAgICByZXR1cm4gY2hpbGQtPmlzUnVieVRleHQoKSB8fCBjaGlsZC0+aXNJbmxpbmUo
KTsKLX0KLQogdm9pZCBSZW5kZXJSdWJ5UnVuOjphZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxk
LCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogewogICAgIEFTU0VSVChjaGlsZCk7CiAKICAg
ICBpZiAoY2hpbGQtPmlzUnVieVRleHQoKSkgeworICAgICAgICBBU1NFUlQobV9jb250ZW50VHlw
ZSA9PSBSdWJ5UnVuQ29udGVudFJlZ3VsYXIpOwogICAgICAgICBpZiAoIWJlZm9yZUNoaWxkKSB7
CiAgICAgICAgICAgICAvLyBSZW5kZXJSdWJ5IGhhcyBhbHJlYWR5IGFzY2VydGFpbmVkIHRoYXQg
d2UgY2FuIGFkZCB0aGUgY2hpbGQgaGVyZS4KICAgICAgICAgICAgIEFTU0VSVCghaGFzUnVieVRl
eHQoKSk7CkBAIC0xNTksOSArMTU4LDEwIEBAIHZvaWQgUmVuZGVyUnVieVJ1bjo6cmVtb3ZlQ2hp
bGQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKICAgICAgICAgUmVuZGVyUnVieUJhc2UqIGJhc2UgPSBy
dWJ5QmFzZSgpOwogICAgICAgICBSZW5kZXJPYmplY3QqIHJpZ2h0TmVpZ2hib3VyID0gbmV4dFNp
YmxpbmcoKTsKICAgICAgICAgaWYgKGJhc2UgJiYgcmlnaHROZWlnaGJvdXIgJiYgcmlnaHROZWln
aGJvdXItPmlzUnVieVJ1bigpKSB7Ci0gICAgICAgICAgICAvLyBSdWJ5IHJ1biB3aXRob3V0IGEg
YmFzZSBjYW4gaGFwcGVuIG9ubHkgYXQgdGhlIGZpcnN0IHJ1bi4KICAgICAgICAgICAgIFJlbmRl
clJ1YnlSdW4qIHJpZ2h0UnVuID0gdG9SZW5kZXJSdWJ5UnVuKHJpZ2h0TmVpZ2hib3VyKTsKLSAg
ICAgICAgICAgIGlmIChyaWdodFJ1bi0+aGFzUnVieUJhc2UoKSkgeworICAgICAgICAgICAgLy8g
UnVieSBydW4gd2l0aG91dCBhIGJhc2UgY2FuIGhhcHBlbiBvbmx5IGF0IHRoZSBmaXJzdCBydW4u
CisgICAgICAgICAgICAvLyBBbHNvIGRvbid0IGNvbWJpbmUgd2l0aCBnZW5lcmF0ZWQgOjpiZWZv
cmUvOjphZnRlciBjb250ZW50LgorICAgICAgICAgICAgaWYgKHJpZ2h0UnVuLT5oYXNSdWJ5QmFz
ZSgpICYmIHJpZ2h0UnVuLT5pc1JlZ3VsYXJSdWJ5UnVuKCkpIHsKICAgICAgICAgICAgICAgICBS
ZW5kZXJSdWJ5QmFzZSogcmlnaHRCYXNlID0gcmlnaHRSdW4tPnJ1YnlCYXNlU2FmZSgpOwogICAg
ICAgICAgICAgICAgIC8vIENvbGxlY3QgYWxsIGNoaWxkcmVuIGluIGEgc2luZ2xlIGJhc2UsIHRo
ZW4gc3dhcCB0aGUgYmFzZXMuCiAgICAgICAgICAgICAgICAgcmlnaHRCYXNlLT5tb3ZlQ2hpbGRy
ZW4oYmFzZSk7CkBAIC0yMDMsMTAgKzIwMywxMCBAQCBSZW5kZXJSdWJ5QmFzZSogUmVuZGVyUnVi
eVJ1bjo6Y3JlYXRlUnVieUJhc2UoKSBjb25zdAogICAgIHJldHVybiByYjsKIH0KIAotUmVuZGVy
UnVieVJ1biogUmVuZGVyUnVieVJ1bjo6c3RhdGljQ3JlYXRlUnVieVJ1bihjb25zdCBSZW5kZXJP
YmplY3QqIHBhcmVudFJ1YnkpCitSZW5kZXJSdWJ5UnVuKiBSZW5kZXJSdWJ5UnVuOjpzdGF0aWND
cmVhdGVSdWJ5UnVuSW50ZXJuYWwoY29uc3QgUmVuZGVyT2JqZWN0KiBwYXJlbnRSdWJ5LCBSdWJ5
UnVuQ29udGVudFR5cGUgY29udGVudFR5cGUpCiB7CiAgICAgQVNTRVJUKHBhcmVudFJ1YnkgJiYg
cGFyZW50UnVieS0+aXNSdWJ5KCkpOwotICAgIFJlbmRlclJ1YnlSdW4qIHJyID0gbmV3IChwYXJl
bnRSdWJ5LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJSdWJ5UnVuKHBhcmVudFJ1YnktPmRvY3VtZW50
KCkgLyogYW5vbnltb3VzICovKTsKKyAgICBSZW5kZXJSdWJ5UnVuKiByciA9IG5ldyAocGFyZW50
UnVieS0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyUnVieVJ1bihwYXJlbnRSdWJ5LT5kb2N1bWVudCgp
IC8qIGFub255bW91cyAqLywgY29udGVudFR5cGUpOwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4g
bmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGUocGFyZW50UnVieS0+
c3R5bGUoKSk7CiAgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoSU5MSU5FX0JMT0NLKTsKICAgICBy
ci0+c2V0U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKQEAgLTI5NywxMyArMjk3LDMyIEBAIHZv
aWQgUmVuZGVyUnVieVJ1bjo6Z2V0T3ZlcmhhbmcoYm9vbCBmaXJzdExpbmUsIFJlbmRlck9iamVj
dCogc3RhcnRSZW5kZXJlciwgUmVuCiAgICAgc3RhcnRPdmVyaGFuZyA9IHN0eWxlKCktPmlzTGVm
dFRvUmlnaHREaXJlY3Rpb24oKSA/IGxvZ2ljYWxMZWZ0T3ZlcmhhbmcgOiBsb2dpY2FsUmlnaHRP
dmVyaGFuZzsKICAgICBlbmRPdmVyaGFuZyA9IHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oKSA/IGxvZ2ljYWxSaWdodE92ZXJoYW5nIDogbG9naWNhbExlZnRPdmVyaGFuZzsKIAorICAg
IC8vIFdlIG92ZXJoYW5nIGEgcnVieSBvbmx5IGlmIHRoZSBuZWlnaGJvcmluZyByZW5kZXIgb2Jq
ZWN0IGlzIGEgdGV4dAorICAgIC8vICh0aGlzIGNhbiBiZSBhIHJ1YnkgcnVuIHdpdGhvdXQgcnVi
eSB0ZXh0LCBzdWNoIGFzIGhhcHBlbnMgd2l0aCBnZW5lcmF0ZWQgY29udGVudCkuCisgICAgaWYg
KHN0YXJ0UmVuZGVyZXIgJiYgc3RhcnRSZW5kZXJlci0+aXNSdWJ5UnVuKCkpIHsKKyAgICAgICAg
Y29uc3QgUmVuZGVyUnVieVJ1biogcnVuID0gdG9SZW5kZXJSdWJ5UnVuKHN0YXJ0UmVuZGVyZXIp
OworICAgICAgICBBU1NFUlQocnVuLT5pc1JlZ3VsYXJSdWJ5UnVuKCkgfHwgIXJ1bi0+cnVieVRl
eHQoKSk7CisgICAgICAgIGlmIChydW4tPmlzUnVieUJlZm9yZVJ1bigpICYmIHJ1bi0+cnVieUJh
c2UoKSAmJiBydW4tPnJ1YnlCYXNlKCktPmNoaWxkcmVuSW5saW5lKCkpIHsKKyAgICAgICAgICAg
IHN0YXJ0UmVuZGVyZXIgPSBydW4tPnJ1YnlCYXNlKCktPmxhc3RDaGlsZCgpOworICAgICAgICAg
ICAgd2hpbGUgKHN0YXJ0UmVuZGVyZXIgJiYgc3RhcnRSZW5kZXJlci0+aXNJbmxpbmUoKSAmJiAh
c3RhcnRSZW5kZXJlci0+aXNUZXh0KCkpCisgICAgICAgICAgICAgICAgc3RhcnRSZW5kZXJlciA9
IHN0YXJ0UmVuZGVyZXItPmxhc3RDaGlsZCgpOworICAgICAgICB9CisgICAgfQogICAgIGlmICgh
c3RhcnRSZW5kZXJlciB8fCAhc3RhcnRSZW5kZXJlci0+aXNUZXh0KCkgfHwgc3RhcnRSZW5kZXJl
ci0+c3R5bGUoZmlyc3RMaW5lKS0+Zm9udFNpemUoKSA+IHJ1YnlCYXNlLT5zdHlsZShmaXJzdExp
bmUpLT5mb250U2l6ZSgpKQogICAgICAgICBzdGFydE92ZXJoYW5nID0gMDsKIAorICAgIGlmIChl
bmRSZW5kZXJlciAmJiBlbmRSZW5kZXJlci0+aXNSdWJ5UnVuKCkpIHsKKyAgICAgICAgY29uc3Qg
UmVuZGVyUnVieVJ1biogcnVuID0gdG9SZW5kZXJSdWJ5UnVuKGVuZFJlbmRlcmVyKTsKKyAgICAg
ICAgQVNTRVJUKHJ1bi0+aXNSZWd1bGFyUnVieVJ1bigpIHx8ICFydW4tPnJ1YnlUZXh0KCkpOwor
ICAgICAgICBpZiAocnVuLT5pc1J1YnlBZnRlclJ1bigpICYmIHJ1bi0+cnVieUJhc2UoKSAmJiBy
dW4tPnJ1YnlCYXNlKCktPmNoaWxkcmVuSW5saW5lKCkpIHsKKyAgICAgICAgICAgIGVuZFJlbmRl
cmVyID0gcnVuLT5ydWJ5QmFzZSgpLT5maXJzdENoaWxkKCk7CisgICAgICAgICAgICB3aGlsZSAo
ZW5kUmVuZGVyZXIgJiYgZW5kUmVuZGVyZXItPmlzSW5saW5lKCkgJiYgIWVuZFJlbmRlcmVyLT5p
c1RleHQoKSkKKyAgICAgICAgICAgICAgICBlbmRSZW5kZXJlciA9IGVuZFJlbmRlcmVyLT5maXJz
dENoaWxkKCk7CisgICAgICAgIH0KKyAgICB9CiAgICAgaWYgKCFlbmRSZW5kZXJlciB8fCAhZW5k
UmVuZGVyZXItPmlzVGV4dCgpIHx8IGVuZFJlbmRlcmVyLT5zdHlsZShmaXJzdExpbmUpLT5mb250
U2l6ZSgpID4gcnVieUJhc2UtPnN0eWxlKGZpcnN0TGluZSktPmZvbnRTaXplKCkpCiAgICAgICAg
IGVuZE92ZXJoYW5nID0gMDsKIAotICAgIC8vIFdlIG92ZXJoYW5nIGEgcnVieSBvbmx5IGlmIHRo
ZSBuZWlnaGJvcmluZyByZW5kZXIgb2JqZWN0IGlzIGEgdGV4dC4KICAgICAvLyBXZSBjYW4gb3Zl
cmhhbmcgdGhlIHJ1YnkgYnkgbm8gbW9yZSB0aGFuIGhhbGYgdGhlIHdpZHRoIG9mIHRoZSBuZWln
aGJvcmluZyB0ZXh0CiAgICAgLy8gYW5kIG5vIG1vcmUgdGhhbiBoYWxmIHRoZSBmb250IHNpemUu
CiAgICAgaW50IGhhbGZXaWR0aE9mRm9udFNpemUgPSBydWJ5VGV4dC0+c3R5bGUoZmlyc3RMaW5l
KS0+Zm9udFNpemUoKSAvIDI7CkBAIC0zMTMsNCArMzMyLDE4IEBAIHZvaWQgUmVuZGVyUnVieVJ1
bjo6Z2V0T3ZlcmhhbmcoYm9vbCBmaXJzdExpbmUsIFJlbmRlck9iamVjdCogc3RhcnRSZW5kZXJl
ciwgUmVuCiAgICAgICAgIGVuZE92ZXJoYW5nID0gbWluPGludD4oZW5kT3ZlcmhhbmcsIG1pbjxp
bnQ+KHRvUmVuZGVyVGV4dChlbmRSZW5kZXJlciktPm1pbkxvZ2ljYWxXaWR0aCgpLCBoYWxmV2lk
dGhPZkZvbnRTaXplKSk7CiB9CiAKK2NvbnN0IGNoYXIqIFJlbmRlclJ1YnlSdW46OnJlbmRlck5h
bWUoKSBjb25zdAoreworICAgIHN3aXRjaCAobV9jb250ZW50VHlwZSkgeworICAgIGNhc2UgUnVi
eVJ1bkNvbnRlbnRSZWd1bGFyOgorICAgICAgICByZXR1cm4gIlJlbmRlclJ1YnlSdW4gKGFub255
bW91cykiOworICAgIGNhc2UgUnVieVJ1bkNvbnRlbnRCZWZvcmU6CisgICAgICAgIHJldHVybiAi
UmVuZGVyUnVieVJ1biAoYW5vbnltb3VzL0JFRk9SRSkiOworICAgIGNhc2UgUnVieVJ1bkNvbnRl
bnRBZnRlcjoKKyAgICAgICAgcmV0dXJuICJSZW5kZXJSdWJ5UnVuIChhbm9ueW1vdXMvQUZURVIp
IjsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICJSZW5kZXJS
dWJ5UnVuIChhbm9ueW1vdXMvVU5LTk9XTiEpIjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmgKaW5kZXggZjY1YWQ4NmM2
YmFiZDA4OTY5ZjdjMmQ4ODBkYThjNzkyY2NkYmRhYi4uZTFhNzY3NTliMmVhMTllYzY3ZTlmMWI4
ZmIwMmJkY2RhYTk2ZWY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJ1YnlSdW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1
bi5oCkBAIC00Myw5ICs0MywxMiBAQCBjbGFzcyBSZW5kZXJSdWJ5VGV4dDsKIAogY2xhc3MgUmVu
ZGVyUnVieVJ1biA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJsaWM6Ci0gICAgUmVuZGVyUnVi
eVJ1bihOb2RlKik7CiAgICAgdmlydHVhbCB+UmVuZGVyUnVieVJ1bigpOwogCisgICAgaW5saW5l
IGJvb2wgaXNSZWd1bGFyUnVieVJ1bigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudFR5cGUgPT0g
UnVieVJ1bkNvbnRlbnRSZWd1bGFyOyB9CisgICAgaW5saW5lIGJvb2wgaXNSdWJ5QmVmb3JlUnVu
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50VHlwZSA9PSBSdWJ5UnVuQ29udGVudEJlZm9yZTsg
fQorICAgIGlubGluZSBib29sIGlzUnVieUFmdGVyUnVuKCkgY29uc3QgeyByZXR1cm4gbV9jb250
ZW50VHlwZSA9PSBSdWJ5UnVuQ29udGVudEFmdGVyOyB9CisKICAgICBib29sIGhhc1J1YnlUZXh0
KCkgY29uc3Q7CiAgICAgYm9vbCBoYXNSdWJ5QmFzZSgpIGNvbnN0OwogICAgIGJvb2wgaXNFbXB0
eSgpIGNvbnN0OwpAQCAtNTYsNyArNTksNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZW5kZXJP
YmplY3QqIGxheW91dFNwZWNpYWxFeGNsdWRlZENoaWxkKGJvb2wgcmVsYXlvdXRDaGlsZHJlbik7
CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwogCi0gICAgdmlydHVhbCBib29sIGlzQ2hpbGRB
bGxvd2VkKFJlbmRlck9iamVjdCosIFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hp
bGQgPSAwKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGls
ZCk7CiAKQEAgLTY1LDE2ICs2NywzMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldE92ZXJoYW5n
KGJvb2wgZmlyc3RMaW5lLCBSZW5kZXJPYmplY3QqIHN0YXJ0UmVuZGVyZXIsIFJlbmRlck9iamVj
dCogZW5kUmVuZGVyZXIsIGludCYgc3RhcnRPdmVyaGFuZywgaW50JiBlbmRPdmVyaGFuZykgY29u
c3Q7CiAKLSAgICBzdGF0aWMgUmVuZGVyUnVieVJ1biogc3RhdGljQ3JlYXRlUnVieVJ1bihjb25z
dCBSZW5kZXJPYmplY3QqIHBhcmVudFJ1YnkpOworICAgIHN0YXRpYyBpbmxpbmUgUmVuZGVyUnVi
eVJ1biogc3RhdGljQ3JlYXRlUnVieVJ1bihjb25zdCBSZW5kZXJPYmplY3QqIHBhcmVudFJ1Ynkp
IHsgcmV0dXJuIHN0YXRpY0NyZWF0ZVJ1YnlSdW5JbnRlcm5hbChwYXJlbnRSdWJ5LCBSdWJ5UnVu
Q29udGVudFJlZ3VsYXIpOyB9CisgICAgc3RhdGljIGlubGluZSBSZW5kZXJSdWJ5UnVuKiBzdGF0
aWNDcmVhdGVSdWJ5QmVmb3JlUnVuKGNvbnN0IFJlbmRlck9iamVjdCogcGFyZW50UnVieSkgeyBy
ZXR1cm4gc3RhdGljQ3JlYXRlUnVieVJ1bkludGVybmFsKHBhcmVudFJ1YnksIFJ1YnlSdW5Db250
ZW50QmVmb3JlKTsgfQorICAgIHN0YXRpYyBpbmxpbmUgUmVuZGVyUnVieVJ1biogc3RhdGljQ3Jl
YXRlUnVieUFmdGVyUnVuKGNvbnN0IFJlbmRlck9iamVjdCogcGFyZW50UnVieSkgeyByZXR1cm4g
c3RhdGljQ3JlYXRlUnVieVJ1bkludGVybmFsKHBhcmVudFJ1YnksIFJ1YnlSdW5Db250ZW50QWZ0
ZXIpOyB9CiAKIHByb3RlY3RlZDoKICAgICBSZW5kZXJSdWJ5QmFzZSogY3JlYXRlUnVieUJhc2Uo
KSBjb25zdDsKIAogcHJpdmF0ZToKKyAgICBlbnVtIFJ1YnlSdW5Db250ZW50VHlwZSB7CisgICAg
ICAgIFJ1YnlSdW5Db250ZW50UmVndWxhciwKKyAgICAgICAgUnVieVJ1bkNvbnRlbnRCZWZvcmUs
CisgICAgICAgIFJ1YnlSdW5Db250ZW50QWZ0ZXIKKyAgICB9OworICAgIAorICAgIFJlbmRlclJ1
YnlSdW4oTm9kZSosIFJ1YnlSdW5Db250ZW50VHlwZSk7CisKKyAgICBzdGF0aWMgUmVuZGVyUnVi
eVJ1biogc3RhdGljQ3JlYXRlUnVieVJ1bkludGVybmFsKGNvbnN0IFJlbmRlck9iamVjdCogcGFy
ZW50UnVieSwgUnVieVJ1bkNvbnRlbnRUeXBlKTsKKwogICAgIHZpcnR1YWwgYm9vbCBpc1J1YnlS
dW4oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5k
ZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclJ1YnlSdW4gKGFub255bW91cykiOyB9Cisg
ICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCBi
b29sIGNyZWF0ZXNBbm9ueW1vdXNXcmFwcGVyKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVMZWZ0b3ZlckFub255bW91c0Jsb2NrKFJlbmRlckJsb2NrKikg
eyB9CisKKyAgICBSdWJ5UnVuQ29udGVudFR5cGUgbV9jb250ZW50VHlwZTsKIH07CiAKIGlubGlu
ZSBSZW5kZXJSdWJ5UnVuKiB0b1JlbmRlclJ1YnlSdW4oUmVuZGVyT2JqZWN0KiBvYmplY3QpCg==
</data>
<flag name="review"
          id="105886"
          type_id="1"
          status="-"
          setter="inferno"
    />
    <flag name="commit-queue"
          id="105889"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>