<?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>63977</bug_id>
          
          <creation_ts>2011-07-05 23:45:21 -0700</creation_ts>
          <short_desc>[ShadowContentElement] Redundant RenderText objects are created on the content boundaries</short_desc>
          <delta_ts>2011-07-07 01:15:12 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>63504</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>432645</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-07-05 23:45:21 -0700</bug_when>
    <thetext>Running small test suite for Bug 63504 found that
some content child pattern makes redundant RenderText node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432659</commentid>
    <comment_count>1</comment_count>
      <attachid>99797</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-07-06 00:05:15 -0700</bug_when>
    <thetext>Created attachment 99797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432660</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-07-06 00:08:43 -0700</bug_when>
    <thetext>Hi Dimitri, could you take a look?

After this fix, I&apos;m planning to make the &quot;flatten tree&quot; concept clear in the code
by extracting a FlattenTreeTraverser or something.
Currently the concept is mixed into NodeRenderingContext, which is sad situation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432741</commentid>
    <comment_count>3</comment_count>
      <attachid>99797</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-07-06 06:06:16 -0700</bug_when>
    <thetext>Comment on attachment 99797
Patch

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

Trivial comments inline.

&gt; LayoutTests/ChangeLog:9
&gt; +        One is for shadow tree which has one content elmement,

nit: elmement → element

&gt; LayoutTests/ChangeLog:12
&gt; +        Then the test makes 2 complete DOM trees (dom tree with shadow and

nit: dom → DOM
for consistency

&gt; LayoutTests/ChangeLog:14
&gt; +        compare their layout result.

I love this testing approach.

&gt; LayoutTests/fast/dom/shadow/content-element-renderers-expected.txt:1
&gt; +This test compares a shadow-based render tree with one for a refrence DOM tree.

nit: refrence → reference

&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:13
&gt; +    document.getElementById(&quot;console&quot;).innerText += (message + &quot;\n&quot;);

WebKit zeitgeist seems to prefer textContent over innerText?

&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:57
&gt; +    //var enhancedHtml = html.replace(/&lt;span\/&gt;/g, &quot;&lt;span&gt;#span&lt;/span&gt;&quot;).replace(/&lt;div\/&gt;/g, &quot;&lt;div&gt;#div&lt;/div&gt;&quot;).replace(/&lt;content\/&gt;/g, &quot;&lt;content&gt;&lt;/content&gt;&quot;);

Don’t need it? Delete it?

&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:58
&gt; +    var enhancedHtml = html.replace(/&lt;span\/&gt;/g, &quot;&lt;span&gt; &lt;/span&gt;&quot;).replace(/&lt;div\/&gt;/g, &quot;&lt;div&gt; &lt;/div&gt;&quot;).replace(/&lt;content\/&gt;/g, &quot;&lt;content&gt;&lt;/content&gt;&quot;).replace(/#text/g, &quot; &quot;);

I am curious… why the whitespace in span and div but not content?

&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:61
&gt; +    var contentPlaceholder = root.getElementsByTagName(&quot;CONTENT&quot;)[0];

Is root.querySelector(&apos;content&apos;) equivalent and more succinct?

&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:83
&gt; +    moveChildren(content, host);

Why do you create a blockquote in createTreeFrom(contentHtml) and then move the nodes into another blockquote that is host?

&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:93
&gt; +    container.removeChild

Oops.

&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:121
&gt; +    

Delete this blank line.

&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:133
&gt; +    layoutTestController.dumpAsText();

Maybe add a description explaining that this test can not be run in the browser?

&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:136
&gt; +

Delete this blank line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432789</commentid>
    <comment_count>4</comment_count>
      <attachid>99797</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-07-06 08:20:24 -0700</bug_when>
    <thetext>Comment on attachment 99797
Patch

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

pls address the nits.

&gt;&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:13
&gt;&gt; +    document.getElementById(&quot;console&quot;).innerText += (message + &quot;\n&quot;);
&gt; 
&gt; WebKit zeitgeist seems to prefer textContent over innerText?

yup -- and don&apos;t use +=, as abbreviated as it sounds, it&apos;s highly inefficient.

How&apos;s this:

var log = document.getElementById(&quot;console&quot;);
log.info = function(message)
{
    this.appendChild(document.createElement(&quot;div&quot;)).textContent = message;
}
// ...
log.info(&apos;foo&apos;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432790</commentid>
    <comment_count>5</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-07-06 08:21:08 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Hi Dimitri, could you take a look?
&gt; 
&gt; After this fix, I&apos;m planning to make the &quot;flatten tree&quot; concept clear in the code
&gt; by extracting a FlattenTreeTraverser or something.
&gt; Currently the concept is mixed into NodeRenderingContext, which is sad situation.

Let&apos;s design this first. I would like to understand the approach better before landing patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433195</commentid>
    <comment_count>6</comment_count>
      <attachid>99921</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-07-06 20:36:45 -0700</bug_when>
    <thetext>Created attachment 99921
Asking cq</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433199</commentid>
    <comment_count>7</comment_count>
      <attachid>99797</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-07-06 20:38:29 -0700</bug_when>
    <thetext>Comment on attachment 99797
Patch

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

Hi Domini, Dimitri, thanks for reviewing! I updated the patch and asking cq to land it.

&gt;&gt; LayoutTests/ChangeLog:9
&gt;&gt; +        One is for shadow tree which has one content elmement,
&gt; 
&gt; nit: elmement → element

fixed.

&gt;&gt; LayoutTests/ChangeLog:12
&gt;&gt; +        Then the test makes 2 complete DOM trees (dom tree with shadow and
&gt; 
&gt; nit: dom → DOM
&gt; for consistency

fixed.

&gt;&gt; LayoutTests/fast/dom/shadow/content-element-renderers-expected.txt:1
&gt;&gt; +This test compares a shadow-based render tree with one for a refrence DOM tree.
&gt; 
&gt; nit: refrence → reference

fixed.

&gt;&gt;&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:13
&gt;&gt;&gt; +    document.getElementById(&quot;console&quot;).innerText += (message + &quot;\n&quot;);
&gt;&gt; 
&gt;&gt; WebKit zeitgeist seems to prefer textContent over innerText?
&gt; 
&gt; yup -- and don&apos;t use +=, as abbreviated as it sounds, it&apos;s highly inefficient.
&gt; 
&gt; How&apos;s this:
&gt; 
&gt; var log = document.getElementById(&quot;console&quot;);
&gt; log.info = function(message)
&gt; {
&gt;     this.appendChild(document.createElement(&quot;div&quot;)).textContent = message;
&gt; }
&gt; // ...
&gt; log.info(&apos;foo&apos;);

Rewrote to Dimitri version.

&gt;&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:61
&gt;&gt; +    var contentPlaceholder = root.getElementsByTagName(&quot;CONTENT&quot;)[0];
&gt; 
&gt; Is root.querySelector(&apos;content&apos;) equivalent and more succinct?

No strong reason. Just because I&apos;m from pre-CSS era...

&gt;&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:83
&gt;&gt; +    moveChildren(content, host);
&gt; 
&gt; Why do you create a blockquote in createTreeFrom(contentHtml) and then move the nodes into another blockquote that is host?

It&apos;s because ShadowRoot doesn&apos;t support innerHTML but I&apos;d like to define test data as HTML text.

&gt;&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:93
&gt;&gt; +    container.removeChild
&gt; 
&gt; Oops.

Whoa...

&gt;&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:121
&gt;&gt; +    
&gt; 
&gt; Delete this blank line.

Fixed.

&gt;&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:133
&gt;&gt; +    layoutTestController.dumpAsText();
&gt; 
&gt; Maybe add a description explaining that this test can not be run in the browser?

Added.

&gt;&gt; LayoutTests/fast/dom/shadow/content-element-renderers.html:136
&gt;&gt; +
&gt; 
&gt; Delete this blank line.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433200</commentid>
    <comment_count>8</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-07-06 20:39:29 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #2)
&gt; &gt; Hi Dimitri, could you take a look?
&gt; &gt; 
&gt; &gt; After this fix, I&apos;m planning to make the &quot;flatten tree&quot; concept clear in the code
&gt; &gt; by extracting a FlattenTreeTraverser or something.
&gt; &gt; Currently the concept is mixed into NodeRenderingContext, which is sad situation.
&gt; 
&gt; Let&apos;s design this first. I would like to understand the approach better before landing patches.
Okay, I have no concrete idea yet. So I&apos;ll write a note for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433236</commentid>
    <comment_count>9</comment_count>
      <attachid>99921</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-06 21:22:30 -0700</bug_when>
    <thetext>Comment on attachment 99921
Asking cq

Clearing flags on attachment: 99921

Committed r90536: &lt;http://trac.webkit.org/changeset/90536&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433237</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-06 21:22:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433340</commentid>
    <comment_count>11</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-07-07 01:15:12 -0700</bug_when>
    <thetext>&gt; &gt; &gt; After this fix, I&apos;m planning to make the &quot;flatten tree&quot; concept clear in the code
&gt; &gt; &gt; by extracting a FlattenTreeTraverser or something.
&gt; &gt; &gt; Currently the concept is mixed into NodeRenderingContext, which is sad situation.
&gt; &gt; 
&gt; &gt; Let&apos;s design this first. I would like to understand the approach better before landing patches.
&gt; Okay, I have no concrete idea yet. So I&apos;ll write a note for this.

Hi Dimitri, I put the note on Bug 64072.
Although the idea is very rough, I&apos;d love to hear your opinion!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99797</attachid>
            <date>2011-07-06 00:05:15 -0700</date>
            <delta_ts>2011-07-06 20:38:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63977-20110706160513.patch</filename>
            <type>text/plain</type>
            <size>23478</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA0NDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5MjMzZTM4ZmYwMGQ2MjIxODVlNTJh
N2YxNmE5NzQ1NWYxNWJhNGUzLi43YWNhZThiMmE1MThkNzdkMjZmZjU2NTJkMjg1MzcyZmIzOWM4
OTdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDctMDUgIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgW1NoYWRvd0NvbnRlbnRFbGVtZW50XSBSZWR1
bmRhbnQgUmVuZGVyVGV4dCBvYmplY3RzIGFyZSBjcmVhdGVkIG9uIHRoZSBjb250ZW50IGJvdW5k
YXJpZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
Mzk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgdGVzdCBoYXZlIHR3byBzZXQgb2YgZml4dHVyZSBET00gdHJlZTogCisgICAgICAgIE9uZSBp
cyBmb3Igc2hhZG93IHRyZWUgd2hpY2ggaGFzIG9uZSBjb250ZW50IGVsbWVtZW50LAorICAgICAg
ICBhbm90aGVyIGlzIGZvciBsaWdodCBET00gdHJlZSwgd2hvc2Ugcm9vdCBpcyB0byBoYXZlIGEg
c2hhZG93IERPTS4KKyAgICAgICAgCisgICAgICAgIFRoZW4gdGhlIHRlc3QgbWFrZXMgMiBjb21w
bGV0ZSBET00gdHJlZXMgKGRvbSB0cmVlIHdpdGggc2hhZG93IGFuZAorICAgICAgICBmbGF0dGVu
ZWQgZG9tKSBmb3IgZWFjaCBjb21iaW5hdGlvbiBvZiB0aGUgZml4dHVyZSBpdGVtcy4gQW5kCisg
ICAgICAgIGNvbXBhcmUgdGhlaXIgbGF5b3V0IHJlc3VsdC4KKyAgICAgICAgCisgICAgICAgICog
ZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXJlbmRlcmVy
cy5odG1sOiBBZGRlZC4KKwogMjAxMS0wNy0wNSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBnb29n
bGUuY29tPgogCiAgICAgICAgIFRyaWdnZXIgYSAnY2hhbmdlJyBldmVudCB3aGVuZXZlciBzZWxl
Y3RlZCBmaWxlcyBhcmUgY2hhbmdlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmYzYjkzMWY5ZTNjNjQ0YzNkNjhjZDhmODliYzI1YjlhNWMzZWY2MjkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVt
ZW50LXJlbmRlcmVycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxODIgQEAKK1RoaXMgdGVzdCBj
b21wYXJlcyBhIHNoYWRvdy1iYXNlZCByZW5kZXIgdHJlZSB3aXRoIG9uZSBmb3IgYSByZWZyZW5j
ZSBET00gdHJlZS4KK1BBU1NbMCwwXTogY29udGVudD08ZGl2Lz4gc2hhZG93PTxjb250ZW50Lz4K
K1BBU1NbMCwxXTogY29udGVudD08ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48ZGl2Lz4K
K1BBU1NbMCwyXTogY29udGVudD08ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+
CitQQVNTWzAsM106IGNvbnRlbnQ9PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFu
Lz4KK1BBU1NbMCw0XTogY29udGVudD08ZGl2Lz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+PGRp
di8+CitQQVNTWzAsNV06IGNvbnRlbnQ9PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRp
di8+CitQQVNTWzAsNl06IGNvbnRlbnQ9PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNw
YW4vPgorUEFTU1swLDddOiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48
c3Bhbi8+CitQQVNTWzAsOF06IGNvbnRlbnQ9PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQv
PjxkaXYvPgorUEFTU1swLDldOiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29u
dGVudC8+I3RleHQ8ZGl2Lz4KK1BBU1NbMCwxMF06IGNvbnRlbnQ9PGRpdi8+IHNoYWRvdz08ZGl2
Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxzcGFuLz4KK1BBU1NbMCwxMV06IGNvbnRlbnQ9PGRpdi8+
IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+CitQQVNTWzAsMTJdOiBj
b250ZW50PTxkaXYvPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+CitQ
QVNTWzAsMTNdOiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PGRpdj48Y29udGVudC8+PC9kaXY+CitQ
QVNTWzAsMTRdOiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4K
K1BBU1NbMSwwXTogY29udGVudD0jdGV4dDxkaXYvPiBzaGFkb3c9PGNvbnRlbnQvPgorUEFTU1sx
LDFdOiBjb250ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+CitQ
QVNTWzEsMl06IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bh
bi8+CitQQVNTWzEsM106IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4gc2hhZG93PTxzcGFuLz48Y29udGVu
dC8+PHNwYW4vPgorUEFTU1sxLDRdOiBjb250ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+
PGNvbnRlbnQvPjxkaXYvPgorUEFTU1sxLDVdOiBjb250ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08
ZGl2Lz48Y29udGVudC8+PGRpdi8+CitQQVNTWzEsNl06IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4gc2hh
ZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzEsN106IGNvbnRlbnQ9I3RleHQ8ZGl2
Lz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgorUEFTU1sxLDhdOiBjb250ZW50PSN0
ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1sxLDldOiBjb250
ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgor
UEFTU1sxLDEwXTogY29udGVudD0jdGV4dDxkaXYvPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVu
dC8+I3RleHQ8c3Bhbi8+CitQQVNTWzEsMTFdOiBjb250ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08
c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+CitQQVNTWzEsMTJdOiBjb250ZW50PSN0
ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KK1BBU1Nb
MSwxM106IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4gc2hhZG93PTxkaXY+PGNvbnRlbnQvPjwvZGl2Pgor
UEFTU1sxLDE0XTogY29udGVudD0jdGV4dDxkaXYvPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwv
c3Bhbj4KK1BBU1NbMiwwXTogY29udGVudD08ZGl2Lz4jdGV4dCBzaGFkb3c9PGNvbnRlbnQvPgor
UEFTU1syLDFdOiBjb250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRp
di8+CitQQVNTWzIsMl06IGNvbnRlbnQ9PGRpdi8+I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50
Lz48c3Bhbi8+CitQQVNTWzIsM106IGNvbnRlbnQ9PGRpdi8+I3RleHQgc2hhZG93PTxzcGFuLz48
Y29udGVudC8+PHNwYW4vPgorUEFTU1syLDRdOiBjb250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08
c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1syLDVdOiBjb250ZW50PTxkaXYvPiN0ZXh0IHNo
YWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+CitQQVNTWzIsNl06IGNvbnRlbnQ9PGRpdi8+I3Rl
eHQgc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzIsN106IGNvbnRlbnQ9PGRp
di8+I3RleHQgc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgorUEFTU1syLDhdOiBjb250
ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1syLDld
OiBjb250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxk
aXYvPgorUEFTU1syLDEwXTogY29udGVudD08ZGl2Lz4jdGV4dCBzaGFkb3c9PGRpdi8+I3RleHQ8
Y29udGVudC8+I3RleHQ8c3Bhbi8+CitQQVNTWzIsMTFdOiBjb250ZW50PTxkaXYvPiN0ZXh0IHNo
YWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+CitQQVNTWzIsMTJdOiBjb250
ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4K
K1BBU1NbMiwxM106IGNvbnRlbnQ9PGRpdi8+I3RleHQgc2hhZG93PTxkaXY+PGNvbnRlbnQvPjwv
ZGl2PgorUEFTU1syLDE0XTogY29udGVudD08ZGl2Lz4jdGV4dCBzaGFkb3c9PHNwYW4+PGNvbnRl
bnQvPjwvc3Bhbj4KK1BBU1NbMywwXTogY29udGVudD0jdGV4dDxkaXYvPiN0ZXh0IHNoYWRvdz08
Y29udGVudC8+CitQQVNTWzMsMV06IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9PGRp
di8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1szLDJdOiBjb250ZW50PSN0ZXh0PGRpdi8+I3RleHQg
c2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzMsM106IGNvbnRlbnQ9I3RleHQ8
ZGl2Lz4jdGV4dCBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzMsNF06IGNv
bnRlbnQ9I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KK1BB
U1NbMyw1XTogY29udGVudD0jdGV4dDxkaXYvPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+
PGRpdi8+CitQQVNTWzMsNl06IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9PGRpdi8+
PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbMyw3XTogY29udGVudD0jdGV4dDxkaXYvPiN0ZXh0IHNo
YWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbMyw4XTogY29udGVudD0jdGV4dDxk
aXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1szLDldOiBjb250
ZW50PSN0ZXh0PGRpdi8+I3RleHQgc2hhZG93PTxkaXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRp
di8+CitQQVNTWzMsMTBdOiBjb250ZW50PSN0ZXh0PGRpdi8+I3RleHQgc2hhZG93PTxkaXYvPiN0
ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgorUEFTU1szLDExXTogY29udGVudD0jdGV4dDxkaXYv
PiN0ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+CitQQVNTWzMs
MTJdOiBjb250ZW50PSN0ZXh0PGRpdi8+I3RleHQgc2hhZG93PTxzcGFuLz4jdGV4dDxjb250ZW50
Lz4jdGV4dDxkaXYvPgorUEFTU1szLDEzXTogY29udGVudD0jdGV4dDxkaXYvPiN0ZXh0IHNoYWRv
dz08ZGl2Pjxjb250ZW50Lz48L2Rpdj4KK1BBU1NbMywxNF06IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4j
dGV4dCBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KK1BBU1NbNCwwXTogY29udGVudD08
c3Bhbi8+IHNoYWRvdz08Y29udGVudC8+CitQQVNTWzQsMV06IGNvbnRlbnQ9PHNwYW4vPiBzaGFk
b3c9PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1s0LDJdOiBjb250ZW50PTxzcGFuLz4gc2hh
ZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzQsM106IGNvbnRlbnQ9PHNwYW4vPiBz
aGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzQsNF06IGNvbnRlbnQ9PHNwYW4v
PiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KK1BBU1NbNCw1XTogY29udGVudD08c3Bh
bi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+CitQQVNTWzQsNl06IGNvbnRlbnQ9PHNw
YW4vPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbNCw3XTogY29udGVudD08
c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbNCw4XTogY29udGVu
dD08c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1s0LDldOiBjb250
ZW50PTxzcGFuLz4gc2hhZG93PTxkaXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+CitQQVNT
WzQsMTBdOiBjb250ZW50PTxzcGFuLz4gc2hhZG93PTxkaXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0
PHNwYW4vPgorUEFTU1s0LDExXTogY29udGVudD08c3Bhbi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8
Y29udGVudC8+I3RleHQ8c3Bhbi8+CitQQVNTWzQsMTJdOiBjb250ZW50PTxzcGFuLz4gc2hhZG93
PTxzcGFuLz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgorUEFTU1s0LDEzXTogY29udGVudD08
c3Bhbi8+IHNoYWRvdz08ZGl2Pjxjb250ZW50Lz48L2Rpdj4KK1BBU1NbNCwxNF06IGNvbnRlbnQ9
PHNwYW4vPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KK1BBU1NbNSwwXTogY29udGVu
dD0jdGV4dDxzcGFuLz4gc2hhZG93PTxjb250ZW50Lz4KK1BBU1NbNSwxXTogY29udGVudD0jdGV4
dDxzcGFuLz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48ZGl2Lz4KK1BBU1NbNSwyXTogY29udGVu
dD0jdGV4dDxzcGFuLz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzUsM106
IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KK1BB
U1NbNSw0XTogY29udGVudD0jdGV4dDxzcGFuLz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+PGRp
di8+CitQQVNTWzUsNV06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVu
dC8+PGRpdi8+CitQQVNTWzUsNl06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNoYWRvdz08ZGl2Lz48
Y29udGVudC8+PHNwYW4vPgorUEFTU1s1LDddOiBjb250ZW50PSN0ZXh0PHNwYW4vPiBzaGFkb3c9
PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzUsOF06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+
IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1s1LDldOiBjb250ZW50PSN0ZXh0
PHNwYW4vPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KK1BBU1NbNSwx
MF06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4
dDxzcGFuLz4KK1BBU1NbNSwxMV06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+
I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+CitQQVNTWzUsMTJdOiBjb250ZW50PSN0ZXh0PHNw
YW4vPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+CitQQVNTWzUsMTNd
OiBjb250ZW50PSN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdj48Y29udGVudC8+PC9kaXY+CitQQVNT
WzUsMTRdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bh
bj4KK1BBU1NbNiwwXTogY29udGVudD08c3Bhbi8+I3RleHQgc2hhZG93PTxjb250ZW50Lz4KK1BB
U1NbNiwxXTogY29udGVudD08c3Bhbi8+I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50Lz48ZGl2
Lz4KK1BBU1NbNiwyXTogY29udGVudD08c3Bhbi8+I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50
Lz48c3Bhbi8+CitQQVNTWzYsM106IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0IHNoYWRvdz08c3Bhbi8+
PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbNiw0XTogY29udGVudD08c3Bhbi8+I3RleHQgc2hhZG93
PTxzcGFuLz48Y29udGVudC8+PGRpdi8+CitQQVNTWzYsNV06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0
IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+CitQQVNTWzYsNl06IGNvbnRlbnQ9PHNwYW4v
PiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgorUEFTU1s2LDddOiBjb250ZW50
PTxzcGFuLz4jdGV4dCBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzYsOF06
IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFT
U1s2LDldOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+
I3RleHQ8ZGl2Lz4KK1BBU1NbNiwxMF06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0IHNoYWRvdz08ZGl2
Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxzcGFuLz4KK1BBU1NbNiwxMV06IGNvbnRlbnQ9PHNwYW4v
PiN0ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+CitQQVNTWzYs
MTJdOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0
ZXh0PGRpdi8+CitQQVNTWzYsMTNdOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9PGRpdj48
Y29udGVudC8+PC9kaXY+CitQQVNTWzYsMTRdOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9
PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KK1BBU1NbNywwXTogY29udGVudD0jdGV4dDxzcGFuLz4j
dGV4dCBzaGFkb3c9PGNvbnRlbnQvPgorUEFTU1s3LDFdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0
ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+CitQQVNTWzcsMl06IGNvbnRlbnQ9I3Rl
eHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzcsM106
IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4v
PgorUEFTU1s3LDRdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNv
bnRlbnQvPjxkaXYvPgorUEFTU1s3LDVdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNoYWRv
dz08ZGl2Lz48Y29udGVudC8+PGRpdi8+CitQQVNTWzcsNl06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+
I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzcsN106IGNvbnRlbnQ9
I3RleHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgorUEFTU1s3
LDhdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxk
aXYvPgorUEFTU1s3LDldOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNoYWRvdz08ZGl2Lz4j
dGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgorUEFTU1s3LDEwXTogY29udGVudD0jdGV4dDxzcGFu
Lz4jdGV4dCBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+CitQQVNTWzcs
MTFdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVu
dC8+I3RleHQ8c3Bhbi8+CitQQVNTWzcsMTJdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNo
YWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KK1BBU1NbNywxM106IGNvbnRl
bnQ9I3RleHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxkaXY+PGNvbnRlbnQvPjwvZGl2PgorUEFTU1s3
LDE0XTogY29udGVudD0jdGV4dDxzcGFuLz4jdGV4dCBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwv
c3Bhbj4KK1BBU1NbOCwwXTogY29udGVudD08c3Bhbi8+I3RleHQ8ZGl2Lz4gc2hhZG93PTxjb250
ZW50Lz4KK1BBU1NbOCwxXTogY29udGVudD08c3Bhbi8+I3RleHQ8ZGl2Lz4gc2hhZG93PTxkaXYv
Pjxjb250ZW50Lz48ZGl2Lz4KK1BBU1NbOCwyXTogY29udGVudD08c3Bhbi8+I3RleHQ8ZGl2Lz4g
c2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzgsM106IGNvbnRlbnQ9PHNwYW4v
PiN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbOCw0XTog
Y29udGVudD08c3Bhbi8+I3RleHQ8ZGl2Lz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+PGRpdi8+
CitQQVNTWzgsNV06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29u
dGVudC8+PGRpdi8+CitQQVNTWzgsNl06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRv
dz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgorUEFTU1s4LDddOiBjb250ZW50PTxzcGFuLz4jdGV4
dDxkaXYvPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzgsOF06IGNvbnRl
bnQ9PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFT
U1s4LDldOiBjb250ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29u
dGVudC8+I3RleHQ8ZGl2Lz4KK1BBU1NbOCwxMF06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0PGRpdi8+
IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxzcGFuLz4KK1BBU1NbOCwxMV06IGNv
bnRlbnQ9PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3Rl
eHQ8c3Bhbi8+CitQQVNTWzgsMTJdOiBjb250ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBzaGFkb3c9
PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+CitQQVNTWzgsMTNdOiBjb250ZW50PTxz
cGFuLz4jdGV4dDxkaXYvPiBzaGFkb3c9PGRpdj48Y29udGVudC8+PC9kaXY+CitQQVNTWzgsMTRd
OiBjb250ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bh
bj4KK1BBU1NbOSwwXTogY29udGVudD08ZGl2Lz4jdGV4dDxzcGFuLz4gc2hhZG93PTxjb250ZW50
Lz4KK1BBU1NbOSwxXTogY29udGVudD08ZGl2Lz4jdGV4dDxzcGFuLz4gc2hhZG93PTxkaXYvPjxj
b250ZW50Lz48ZGl2Lz4KK1BBU1NbOSwyXTogY29udGVudD08ZGl2Lz4jdGV4dDxzcGFuLz4gc2hh
ZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzksM106IGNvbnRlbnQ9PGRpdi8+I3Rl
eHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbOSw0XTogY29u
dGVudD08ZGl2Lz4jdGV4dDxzcGFuLz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+PGRpdi8+CitQ
QVNTWzksNV06IGNvbnRlbnQ9PGRpdi8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVu
dC8+PGRpdi8+CitQQVNTWzksNl06IGNvbnRlbnQ9PGRpdi8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08
ZGl2Lz48Y29udGVudC8+PHNwYW4vPgorUEFTU1s5LDddOiBjb250ZW50PTxkaXYvPiN0ZXh0PHNw
YW4vPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzksOF06IGNvbnRlbnQ9
PGRpdi8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1s5
LDldOiBjb250ZW50PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVu
dC8+I3RleHQ8ZGl2Lz4KK1BBU1NbOSwxMF06IGNvbnRlbnQ9PGRpdi8+I3RleHQ8c3Bhbi8+IHNo
YWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxzcGFuLz4KK1BBU1NbOSwxMV06IGNvbnRl
bnQ9PGRpdi8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8
c3Bhbi8+CitQQVNTWzksMTJdOiBjb250ZW50PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFkb3c9PHNw
YW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+CitQQVNTWzksMTNdOiBjb250ZW50PTxkaXYv
PiN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdj48Y29udGVudC8+PC9kaXY+CitQQVNTWzksMTRdOiBj
b250ZW50PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4K
K1BBU1NbMTAsMF06IGNvbnRlbnQ9PGRpdi8+PHNwYW4vPiBzaGFkb3c9PGNvbnRlbnQvPgorUEFT
U1sxMCwxXTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRp
di8+CitQQVNTWzEwLDJdOiBjb250ZW50PTxkaXYvPjxzcGFuLz4gc2hhZG93PTxkaXYvPjxjb250
ZW50Lz48c3Bhbi8+CitQQVNTWzEwLDNdOiBjb250ZW50PTxkaXYvPjxzcGFuLz4gc2hhZG93PTxz
cGFuLz48Y29udGVudC8+PHNwYW4vPgorUEFTU1sxMCw0XTogY29udGVudD08ZGl2Lz48c3Bhbi8+
IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1sxMCw1XTogY29udGVudD08ZGl2
Lz48c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+CitQQVNTWzEwLDZdOiBjb250
ZW50PTxkaXYvPjxzcGFuLz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzEw
LDddOiBjb250ZW50PTxkaXYvPjxzcGFuLz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4v
PgorUEFTU1sxMCw4XTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRl
bnQvPjxkaXYvPgorUEFTU1sxMCw5XTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRvdz08ZGl2
Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgorUEFTU1sxMCwxMF06IGNvbnRlbnQ9PGRpdi8+
PHNwYW4vPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+CitQQVNTWzEw
LDExXTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+
I3RleHQ8c3Bhbi8+CitQQVNTWzEwLDEyXTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRvdz08
c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KK1BBU1NbMTAsMTNdOiBjb250ZW50PTxk
aXYvPjxzcGFuLz4gc2hhZG93PTxkaXY+PGNvbnRlbnQvPjwvZGl2PgorUEFTU1sxMCwxNF06IGNv
bnRlbnQ9PGRpdi8+PHNwYW4vPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KK1BBU1Nb
MTEsMF06IGNvbnRlbnQ9PHNwYW4vPjxkaXYvPiBzaGFkb3c9PGNvbnRlbnQvPgorUEFTU1sxMSwx
XTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+CitQ
QVNTWzExLDJdOiBjb250ZW50PTxzcGFuLz48ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48
c3Bhbi8+CitQQVNTWzExLDNdOiBjb250ZW50PTxzcGFuLz48ZGl2Lz4gc2hhZG93PTxzcGFuLz48
Y29udGVudC8+PHNwYW4vPgorUEFTU1sxMSw0XTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRv
dz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1sxMSw1XTogY29udGVudD08c3Bhbi8+PGRp
di8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+CitQQVNTWzExLDZdOiBjb250ZW50PTxz
cGFuLz48ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzExLDddOiBj
b250ZW50PTxzcGFuLz48ZGl2Lz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgorUEFT
U1sxMSw4XTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxk
aXYvPgorUEFTU1sxMSw5XTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08ZGl2Lz4jdGV4
dDxjb250ZW50Lz4jdGV4dDxkaXYvPgorUEFTU1sxMSwxMF06IGNvbnRlbnQ9PHNwYW4vPjxkaXYv
PiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+CitQQVNTWzExLDExXTog
Y29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8
c3Bhbi8+CitQQVNTWzExLDEyXTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08c3Bhbi8+
I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KK1BBU1NbMTEsMTNdOiBjb250ZW50PTxzcGFuLz48
ZGl2Lz4gc2hhZG93PTxkaXY+PGNvbnRlbnQvPjwvZGl2PgorUEFTU1sxMSwxNF06IGNvbnRlbnQ9
PHNwYW4vPjxkaXYvPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVuZGVy
ZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODdjOTUzMGIwODllY2ViZDIxM2YzODMzNGI2ZmM3MTNhMTA3
NDEzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250
ZW50LWVsZW1lbnQtcmVuZGVyZXJzLmh0bWwKQEAgLTAsMCArMSwxNTYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy8qIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGVu
c3VyZXMgdW5kZXJseWluZyBSZW5kZXJMYXllciAqLworLmNvbnRhaW5lciB7CisgICAgcG9zaXRp
b246IHJlbGF0aXZlOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2Fn
ZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCAr
PSAobWVzc2FnZSArICJcbiIpOworfQorCit2YXIgY29udGVudFNvdXJjZXMgPSBbCisgICI8ZGl2
Lz4iLAorICAiI3RleHQ8ZGl2Lz4iLAorICAiPGRpdi8+I3RleHQiLAorICAiI3RleHQ8ZGl2Lz4j
dGV4dCIsCisKKyAgIjxzcGFuLz4iLAorICAiI3RleHQ8c3Bhbi8+IiwKKyAgIjxzcGFuLz4jdGV4
dCIsCisgICIjdGV4dDxzcGFuLz4jdGV4dCIsCisKKyAgIjxzcGFuLz4jdGV4dDxkaXYvPiIsCisg
ICI8ZGl2Lz4jdGV4dDxzcGFuLz4iLAorICAiPGRpdi8+PHNwYW4vPiIsCisgICI8c3Bhbi8+PGRp
di8+IgorCitdOworCit2YXIgc2hhZG93U291cmNlcyA9IFsKKyAgIjxjb250ZW50Lz4iLAorICAi
PGRpdi8+PGNvbnRlbnQvPjxkaXYvPiIsCisgICI8ZGl2Lz48Y29udGVudC8+PHNwYW4vPiIsCisg
ICI8c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4iLAorICAiPHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4i
LAorCisgICI8ZGl2Lz48Y29udGVudC8+PGRpdi8+IiwKKyAgIjxkaXYvPjxjb250ZW50Lz48c3Bh
bi8+IiwKKyAgIjxzcGFuLz48Y29udGVudC8+PHNwYW4vPiIsCisgICI8c3Bhbi8+PGNvbnRlbnQv
PjxkaXYvPiIsCisKKyAgIjxkaXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+IiwKKyAgIjxk
aXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPiIsCisgICI8c3Bhbi8+I3RleHQ8Y29udGVu
dC8+I3RleHQ8c3Bhbi8+IiwKKyAgIjxzcGFuLz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPiIs
CisKKyAgIjxkaXY+PGNvbnRlbnQvPjwvZGl2PiIsCisgICI8c3Bhbj48Y29udGVudC8+PC9zcGFu
PiIKK107CisKK2Z1bmN0aW9uIGNyZWF0ZVRyZWVGcm9tKGh0bWwpCit7CisgICAgLy92YXIgZW5o
YW5jZWRIdG1sID0gaHRtbC5yZXBsYWNlKC88c3BhblwvPi9nLCAiPHNwYW4+I3NwYW48L3NwYW4+
IikucmVwbGFjZSgvPGRpdlwvPi9nLCAiPGRpdj4jZGl2PC9kaXY+IikucmVwbGFjZSgvPGNvbnRl
bnRcLz4vZywgIjxjb250ZW50PjwvY29udGVudD4iKTsKKyAgICB2YXIgZW5oYW5jZWRIdG1sID0g
aHRtbC5yZXBsYWNlKC88c3BhblwvPi9nLCAiPHNwYW4+IDwvc3Bhbj4iKS5yZXBsYWNlKC88ZGl2
XC8+L2csICI8ZGl2PiA8L2Rpdj4iKS5yZXBsYWNlKC88Y29udGVudFwvPi9nLCAiPGNvbnRlbnQ+
PC9jb250ZW50PiIpLnJlcGxhY2UoLyN0ZXh0L2csICIgIik7CisgICAgdmFyIHJvb3QgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJibG9ja3F1b3RlIik7CisgICAgcm9vdC5pbm5lckhUTUwgPSBl
bmhhbmNlZEh0bWw7CisgICAgdmFyIGNvbnRlbnRQbGFjZWhvbGRlciA9IHJvb3QuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoIkNPTlRFTlQiKVswXTsKKyAgICBpZiAoY29udGVudFBsYWNlaG9sZGVyKSB7
CisgICAgICAgIHZhciBjb250ZW50UGFyZW50ID0gY29udGVudFBsYWNlaG9sZGVyLnBhcmVudE5v
ZGU7CisgICAgICAgIGNvbnRlbnRQYXJlbnQucmVwbGFjZUNoaWxkKHdpbmRvdy5pbnRlcm5hbHMu
Y3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoZG9jdW1lbnQpLCBjb250ZW50UGxhY2Vob2xkZXIp
OworICAgIH07CisKKyAgICByZXR1cm4gcm9vdDsKK30KKworZnVuY3Rpb24gbW92ZUNoaWxkcmVu
KGZyb21QYXJlbnQsIHRvUGFyZW50KQoreworICAgIHZhciBjaGlsZHJlbiA9IGZyb21QYXJlbnQu
Y2hpbGROb2RlczsKKyAgICB3aGlsZSAoZnJvbVBhcmVudC5maXJzdENoaWxkKQorICAgICAgICB0
b1BhcmVudC5hcHBlbmRDaGlsZChmcm9tUGFyZW50LmZpcnN0Q2hpbGQpOworfQorCitmdW5jdGlv
biBjcmVhdGVUYXJnZXRUcmVlKGNvbnRlbnRIdG1sLCBzaGFkb3dIdG1sKQoreworICAgIHZhciBj
b250ZW50ID0gY3JlYXRlVHJlZUZyb20oY29udGVudEh0bWwpOworICAgIHZhciBzaGFkb3cgPSBj
cmVhdGVUcmVlRnJvbShzaGFkb3dIdG1sKTsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImJsb2NrcXVvdGUiKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9IGludGVybmFscy5l
bnN1cmVTaGFkb3dSb290KGhvc3QpOworICAgIG1vdmVDaGlsZHJlbihjb250ZW50LCBob3N0KTsK
KyAgICBtb3ZlQ2hpbGRyZW4oc2hhZG93LCBzaGFkb3dSb290KTsgCisgICAgcmV0dXJuIGhvc3Q7
Cit9CisKK2Z1bmN0aW9uIGNsZWFudXBDb250YWluZXIoY29udGFpbmVyKQoreworICAgIHZhciBj
aGlsZCA9IGNvbnRhaW5lci5maXJzdENoaWxkOworICAgIGlmIChjaGlsZCkKKyAgICAgICAgY29u
dGFpbmVyLnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQKKyAg
ICBjb250YWluZXIub2Zmc2V0TGVmdDsKK30KKworZnVuY3Rpb24gdGVzdFdpdGhDb250ZW50QW5k
U2hhZG93KGNvbnRlbnRIdG1sLCBzaGFkb3dIdG1sLCBsYWJlbCkKK3sKKyAgICB2YXIgdGFyZ2V0
Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldENvbnRhaW5lciIpOwor
ICAgIGNsZWFudXBDb250YWluZXIodGFyZ2V0Q29udGFpbmVyKTsKKyAgICB2YXIgdGFyZ2V0ID0g
Y3JlYXRlVGFyZ2V0VHJlZShjb250ZW50SHRtbCwgc2hhZG93SHRtbCk7CisgICAgdGFyZ2V0Q29u
dGFpbmVyLmFwcGVuZENoaWxkKHRhcmdldCk7CisgICAgdmFyIHRhcmdldFJlbmRlclRyZWUgPSBy
ZW1vdmVDb250YWluZXJMaW5lcyh3aW5kb3cuaW50ZXJuYWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNU
ZXh0KHRhcmdldENvbnRhaW5lcikpOworCisgICAgdmFyIHJlZmVyZW5jZUNvbnRhaW5lciA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWZlcmVuY2VDb250YWluZXIiKTsKKyAgICBjbGVhbnVw
Q29udGFpbmVyKHJlZmVyZW5jZUNvbnRhaW5lcik7CisgICAgdmFyIHNlcGFyYXRvciA9ICI8IS0t
IC0tPiI7IC8vIFVzZXMgYSBzZXBhcmF0b3IgZm9yIGtlZXBpbmcgdGV4dCBub2RlIHNlcGFyYXRl
LgorICAgIHZhciByZWZlcmVuY2VIdG1sID0gc2hhZG93SHRtbC5yZXBsYWNlKCI8Y29udGVudC8+
IiwgKHNlcGFyYXRvciArIGNvbnRlbnRIdG1sICsgc2VwYXJhdG9yKSk7CisgICAgdmFyIHJlZmVy
ZW5jZSA9IGNyZWF0ZVRyZWVGcm9tKHJlZmVyZW5jZUh0bWwpOworICAgIHJlZmVyZW5jZUNvbnRh
aW5lci5hcHBlbmRDaGlsZChyZWZlcmVuY2UpOworICAgIHZhciByZWZlcmVuY2VSZW5kZXJUcmVl
ID0gcmVtb3ZlQ29udGFpbmVyTGluZXMod2luZG93LmludGVybmFscy5lbGVtZW50UmVuZGVyVHJl
ZUFzVGV4dChyZWZlcmVuY2VDb250YWluZXIpKTsKKyAgICBpZiAodGFyZ2V0UmVuZGVyVHJlZSA9
PSByZWZlcmVuY2VSZW5kZXJUcmVlKQorICAgICAgICBsb2coIlBBU1NbIiArIGxhYmVsICsgIl06
IGNvbnRlbnQ9IiArIGNvbnRlbnRIdG1sICsgIiBzaGFkb3c9IiArIHNoYWRvd0h0bWwpOworICAg
IGVsc2UgeworICAgICAgICBsb2coIkZBSUxbIiArIGxhYmVsICsgIl06IGNvbnRlbnQ9IiArIGNv
bnRlbnRIdG1sICsgIiBzaGFkb3c9IiArIHNoYWRvd0h0bWwpOworICAgICAgICBsb2coIkV4cGVj
dGVkOiAoZm9yICIgKyByZWZlcmVuY2UuaW5uZXJIVE1MICsgIikiKTsKKyAgICAgICAgbG9nKHJl
ZmVyZW5jZVJlbmRlclRyZWUpOworICAgICAgICBsb2coIkFjdHVhbDogKGZvciAiICsgdGFyZ2V0
LmlubmVySFRNTCArICIpIik7CisgICAgICAgIGxvZyh0YXJnZXRSZW5kZXJUcmVlKTsKKyAgICB9
CisgICAgCit9CisKK2Z1bmN0aW9uIHJlbW92ZUNvbnRhaW5lckxpbmVzKHRleHQpCit7CisgICAg
dmFyIGxpbmVzID0gdGV4dC5zcGxpdCgiXG4iKTsKKyAgICBsaW5lcy5zcGxpY2UoMCwgMik7Cisg
ICAgcmV0dXJuIGxpbmVzLmpvaW4oIlxuIik7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsb2coIlRoaXMgdGVzdCBj
b21wYXJlcyBhIHNoYWRvdy1iYXNlZCByZW5kZXIgdHJlZSB3aXRoIG9uZSBmb3IgYSByZWZyZW5j
ZSBET00gdHJlZS4iKTsKKworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb250ZW50U291cmNl
cy5sZW5ndGg7ICsraSkgeworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHNoYWRvd1NvdXJj
ZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIHZhciB0ZXN0TGFiZWwgPSBpICsgIiwiICsg
ajsKKyAgICAgICAgICAgIHRlc3RXaXRoQ29udGVudEFuZFNoYWRvdyhjb250ZW50U291cmNlc1tp
XSwgc2hhZG93U291cmNlc1tqXSwgdGVzdExhYmVsKTsKKyAgICAgICAgfQorICAgIH0gCisKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5zdHlsZS5kaXNwbGF5ID0g
ImJsb2NrIjsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgor
PGRpdiBpZD0idGVzdCI+Cis8ZGl2IGNsYXNzPSJjb250YWluZXIiIGlkPSJ0YXJnZXRDb250YWlu
ZXIiPjwvZGl2PgorPGRpdiBjbGFzcz0iY29udGFpbmVyIiBpZD0icmVmZXJlbmNlQ29udGFpbmVy
Ij48L2Rpdj4KKzwvZGl2PgorPHByZSBpZD0iY29uc29sZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7
Ij48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMDc3ZDJlNjdiMGEwMTI1
ZGQwZjUzMzUwMGQ4YjhjNjY2ODVkNWNkLi5lZDJkNzkxYWJkN2U1NDQxYzhhNzcwOTM3MDllNDMx
ZWY3OTQyZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDctMDUgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgW1NoYWRvd0NvbnRlbnRF
bGVtZW50XSBSZWR1bmRhbnQgUmVuZGVyVGV4dCBvYmplY3RzIGFyZSBjcmVhdGVkIG9uIHRoZSBj
b250ZW50IGJvdW5kYXJpZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02Mzk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIoKSBhbmQgcHJldmlv
dXNSZW5kZXJlcigpIGRpZG4ndCB3b3JrIHdlbGwKKyAgICAgICAgd2hlbiBpdCBjcm9zc2VzIGNv
bnRlbnQgZWxlbWVudHM6CisgICAgICAgIC0gSXQgZG9lc24ndCBzdGVwIGludG8gZm9yd2FyZGVk
IGNoaWxkcmVuIG9mIFNoYWRvd0NvbnRlbnRFbGVtZW50LgorICAgICAgICAtIEl0IGRvZXNuJ3Qg
c3RlcCBvdXQgZnJvbSB0cmF2ZXJzaW5nIGZvcndhcmRlZCBjaGlsZHJlbiB0bworICAgICAgICAg
IG5laWdoYm9ycyBvZiB0aGUgY29udGVudCBlbGVtZW50IG9mIHRoYXQgZm9yd2FyZGVkIGNoaWRy
ZW4uCisgICAgICAgIAorICAgICAgICBUaGlzIGNoYW5nZSBtYWtlcyBpdCB0byBzdGVwIGludG8g
YW5kIG91dCBmcm9tIGNvbnRlbnQgZWxlbWVudC4KKyAgICAgICAgCisgICAgICAgIFRlc3Q6IGZh
c3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVuZGVyZXJzLmh0bWwKKworICAgICAgICAq
IGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaXJzdFJl
bmRlcmVyT2YpOiBBZGRlZAorICAgICAgICAoV2ViQ29yZTo6bGFzdFJlbmRlcmVyT2YpOiBBZGRl
ZAorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6Om5leHRSZW5kZXJlcik6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6cHJldmlvdXNSZW5kZXJl
cik6CisKIDIwMTEtMDctMDUgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBUcmlnZ2VyIGEgJ2NoYW5nZScgZXZlbnQgd2hlbmV2ZXIgc2VsZWN0ZWQgZmlsZXMg
YXJlIGNoYW5nZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5n
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3Bw
CmluZGV4IDQzZTU4ZWZmNjY0ZGIxNDI1NzZkNTQyY2RjMmYxZThjM2YyNTdkM2QuLjY5ZWMxYmM2
ODQ5ODQ2NzU4MTc0NmMyMzZhNDA4MGMxMDRiYmM5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMTMwLDE0ICsxMzAsNDEgQEAgc3RhdGljIFJl
bmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJl
bnQsIE5vZGUqIGN1cnIKICAgICByZXR1cm4gbGFzdFJlbmRlcmVyOwogfQogCitzdGF0aWMgUmVu
ZGVyT2JqZWN0KiBmaXJzdFJlbmRlcmVyT2YoU2hhZG93Q29udGVudEVsZW1lbnQqIHBhcmVudCkK
K3sKKyAgICBzaXplX3QgaW5jbHVzaW9uQ291bnQgPSBwYXJlbnQtPmluY2x1c2lvbkNvdW50KCk7
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbmNsdXNpb25Db3VudDsgKytpKSB7CisgICAg
ICAgIE5vZGUqIGNhbmRpZGF0ZSA9IHBhcmVudC0+aW5jbHVzaW9uQXQoaSk7CisgICAgICAgIGlm
IChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY2FuZGlkYXRlLT5yZW5kZXJlcigpKQorICAgICAg
ICAgICAgcmV0dXJuIHJlbmRlcmVyOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0
aWMgUmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXJPZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFy
ZW50KQoreworICAgIHNpemVfdCBpbmNsdXNpb25Db3VudCA9IHBhcmVudC0+aW5jbHVzaW9uQ291
bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluY2x1c2lvbkNvdW50OyArK2kpIHsK
KyAgICAgICAgTm9kZSogY2FuZGlkYXRlID0gcGFyZW50LT5pbmNsdXNpb25BdChpbmNsdXNpb25D
b3VudCAtIGkgLSAxKTsKKyAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjYW5k
aWRhdGUtPnJlbmRlcmVyKCkpCisgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXI7CisgICAgfQor
CisgICAgcmV0dXJuIDA7Cit9CisKIFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6
Om5leHRSZW5kZXJlcigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fbm9kZS0+cmVuZGVyZXIoKSB8
fCBtX2xvY2F0aW9uICE9IExvY2F0aW9uVW5kZXRlcm1pbmVkKTsKICAgICBpZiAoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IG1fbm9kZS0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIHJlbmRl
cmVyLT5uZXh0U2libGluZygpOwogCi0gICAgaWYgKG1fcGhhc2UgPT0gQXR0YWNoQ29udGVudEZv
cndhcmRlZCkKLSAgICAgICAgcmV0dXJuIG5leHRSZW5kZXJlck9mKG1fY29udGVudEVsZW1lbnQs
IG1fbm9kZSk7CisgICAgaWYgKG1fcGhhc2UgPT0gQXR0YWNoQ29udGVudEZvcndhcmRlZCkgewor
ICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBmb3VuZCA9IG5leHRSZW5kZXJlck9mKG1fY29udGVu
dEVsZW1lbnQsIG1fbm9kZSkpCisgICAgICAgICAgICByZXR1cm4gZm91bmQ7CisgICAgICAgIHJl
dHVybiBOb2RlUmVuZGVyaW5nQ29udGV4dChtX2NvbnRlbnRFbGVtZW50KS5uZXh0UmVuZGVyZXIo
KTsKKyAgICB9CiAKICAgICAvLyBBdm9pZCBhbiBPKG5eMikgcHJvYmxlbSB3aXRoIHRoaXMgZnVu
Y3Rpb24gYnkgbm90IGNoZWNraW5nIGZvcgogICAgIC8vIG5leHRSZW5kZXJlcigpIHdoZW4gdGhl
IHBhcmVudCBlbGVtZW50IGhhc24ndCBhdHRhY2hlZCB5ZXQuCkBAIC0xNDcsNiArMTc0LDEwIEBA
IFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6Om5leHRSZW5kZXJlcigpIGNvbnN0
CiAgICAgZm9yIChOb2RlKiBub2RlID0gbV9ub2RlLT5uZXh0U2libGluZygpOyBub2RlOyBub2Rl
ID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAobm9kZS0+cmVuZGVyZXIoKSkK
ICAgICAgICAgICAgIHJldHVybiBub2RlLT5yZW5kZXJlcigpOworICAgICAgICBpZiAobm9kZS0+
aXNDb250ZW50RWxlbWVudCgpKSB7CisgICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBmaXJz
dCA9IGZpcnN0UmVuZGVyZXJPZih0b1NoYWRvd0NvbnRlbnRFbGVtZW50KG5vZGUpKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmlyc3Q7CisgICAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4g
MDsKQEAgLTE1OCwxNCArMTg5LDIxIEBAIFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmluZ0NvbnRl
eHQ6OnByZXZpb3VzUmVuZGVyZXIoKSBjb25zdAogICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRl
cmVyID0gbV9ub2RlLT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gcmVuZGVyZXItPnByZXZp
b3VzU2libGluZygpOwogCi0gICAgaWYgKG1fcGhhc2UgPT0gQXR0YWNoQ29udGVudEZvcndhcmRl
ZCkKLSAgICAgICAgcmV0dXJuIHByZXZpb3VzUmVuZGVyZXJPZihtX2NvbnRlbnRFbGVtZW50LCBt
X25vZGUpOworICAgIGlmIChtX3BoYXNlID09IEF0dGFjaENvbnRlbnRGb3J3YXJkZWQpIHsKKyAg
ICAgICAgaWYgKFJlbmRlck9iamVjdCogZm91bmQgPSBwcmV2aW91c1JlbmRlcmVyT2YobV9jb250
ZW50RWxlbWVudCwgbV9ub2RlKSkKKyAgICAgICAgICAgIHJldHVybiBmb3VuZDsKKyAgICAgICAg
cmV0dXJuIE5vZGVSZW5kZXJpbmdDb250ZXh0KG1fY29udGVudEVsZW1lbnQpLnByZXZpb3VzUmVu
ZGVyZXIoKTsKKyAgICB9CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGhhdmUgdGhlIHNhbWUg
TyhOXjIpIGF2b2lkYW5jZSBhcyBuZXh0UmVuZGVyZXIgZG9lcwogICAgIC8vIGhvd2V2ZXIsIHdo
ZW4gSSB0cmllZCBhZGRpbmcgaXQsIHNldmVyYWwgdGVzdHMgZmFpbGVkLgogICAgIGZvciAoTm9k
ZSogbm9kZSA9IG1fbm9kZS0+cHJldmlvdXNTaWJsaW5nKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5w
cmV2aW91c1NpYmxpbmcoKSkgewogICAgICAgICBpZiAobm9kZS0+cmVuZGVyZXIoKSkKICAgICAg
ICAgICAgIHJldHVybiBub2RlLT5yZW5kZXJlcigpOworICAgICAgICBpZiAobm9kZS0+aXNDb250
ZW50RWxlbWVudCgpKSB7CisgICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBsYXN0ID0gbGFz
dFJlbmRlcmVyT2YodG9TaGFkb3dDb250ZW50RWxlbWVudChub2RlKSkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGxhc3Q7CisgICAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gMDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99921</attachid>
            <date>2011-07-06 20:36:45 -0700</date>
            <delta_ts>2011-07-06 21:22:30 -0700</delta_ts>
            <desc>Asking cq</desc>
            <filename>bug-63977-20110707123643.patch</filename>
            <type>text/plain</type>
            <size>23441</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA0NDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5MjMzZTM4ZmYwMGQ2MjIxODVlNTJh
N2YxNmE5NzQ1NWYxNWJhNGUzLi5lN2VlODFkZGVjNjE3OWRiOWJiZmNhYjlhYzk5NDNkZmVjMjQ4
NGYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDctMDUgIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgW1NoYWRvd0NvbnRlbnRFbGVtZW50XSBSZWR1
bmRhbnQgUmVuZGVyVGV4dCBvYmplY3RzIGFyZSBjcmVhdGVkIG9uIHRoZSBjb250ZW50IGJvdW5k
YXJpZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
Mzk3NworCisgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KKworICAgICAgICBU
aGlzIHRlc3QgaGF2ZSB0d28gc2V0IG9mIGZpeHR1cmUgRE9NIHRyZWU6IAorICAgICAgICBPbmUg
aXMgZm9yIHNoYWRvdyB0cmVlIHdoaWNoIGhhcyBvbmUgY29udGVudCBlbGVtZW50LAorICAgICAg
ICBhbm90aGVyIGlzIGZvciBsaWdodCBET00gdHJlZSwgd2hvc2Ugcm9vdCBpcyB0byBoYXZlIGEg
c2hhZG93IERPTS4KKyAgICAgICAgCisgICAgICAgIFRoZW4gdGhlIHRlc3QgbWFrZXMgMiBjb21w
bGV0ZSBET00gdHJlZXMgKERPTSB0cmVlIHdpdGggc2hhZG93IGFuZAorICAgICAgICBmbGF0dGVu
ZWQgZG9tKSBmb3IgZWFjaCBjb21iaW5hdGlvbiBvZiB0aGUgZml4dHVyZSBpdGVtcy4gQW5kCisg
ICAgICAgIGNvbXBhcmUgdGhlaXIgbGF5b3V0IHJlc3VsdC4KKyAgICAgICAgCisgICAgICAgICog
ZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXJlbmRlcmVy
cy5odG1sOiBBZGRlZC4KKwogMjAxMS0wNy0wNSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBnb29n
bGUuY29tPgogCiAgICAgICAgIFRyaWdnZXIgYSAnY2hhbmdlJyBldmVudCB3aGVuZXZlciBzZWxl
Y3RlZCBmaWxlcyBhcmUgY2hhbmdlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQyOWY4MzRkYjk2NGY2MGY2MTJmOTY1Y2JhNjkxN2FlY2JhZmQyOGIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVt
ZW50LXJlbmRlcmVycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxODIgQEAKK1RoaXMgdGVzdCBj
b21wYXJlcyBhIHNoYWRvdy1iYXNlZCByZW5kZXIgdHJlZSB3aXRoIG9uZSBmb3IgYSByZWZlcmVu
Y2UgRE9NIHRyZWUuCitOb3RlIHRoYXQgdGhpcyB0ZXN0IG9ubHkgcnVucyBvbiBEUlQuCitQQVNT
WzAsMF06IGNvbnRlbnQ9PGRpdi8+IHNoYWRvdz08Y29udGVudC8+CitQQVNTWzAsMV06IGNvbnRl
bnQ9PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+CitQQVNTWzAsMl06IGNvbnRl
bnQ9PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgorUEFTU1swLDNdOiBjb250
ZW50PTxkaXYvPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzAsNF06IGNv
bnRlbnQ9PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1swLDVdOiBj
b250ZW50PTxkaXYvPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1swLDZdOiBj
b250ZW50PTxkaXYvPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbMCw3XTog
Y29udGVudD08ZGl2Lz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgorUEFTU1swLDhd
OiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KK1BBU1NbMCw5
XTogY29udGVudD08ZGl2Lz4gc2hhZG93PTxkaXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+
CitQQVNTWzAsMTBdOiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+
I3RleHQ8c3Bhbi8+CitQQVNTWzAsMTFdOiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PHNwYW4vPiN0
ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgorUEFTU1swLDEyXTogY29udGVudD08ZGl2Lz4gc2hh
ZG93PTxzcGFuLz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgorUEFTU1swLDEzXTogY29udGVu
dD08ZGl2Lz4gc2hhZG93PTxkaXY+PGNvbnRlbnQvPjwvZGl2PgorUEFTU1swLDE0XTogY29udGVu
dD08ZGl2Lz4gc2hhZG93PTxzcGFuPjxjb250ZW50Lz48L3NwYW4+CitQQVNTWzEsMF06IGNvbnRl
bnQ9I3RleHQ8ZGl2Lz4gc2hhZG93PTxjb250ZW50Lz4KK1BBU1NbMSwxXTogY29udGVudD0jdGV4
dDxkaXYvPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1sxLDJdOiBjb250ZW50
PSN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgorUEFTU1sxLDNdOiBj
b250ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1Nb
MSw0XTogY29udGVudD0jdGV4dDxkaXYvPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4K
K1BBU1NbMSw1XTogY29udGVudD0jdGV4dDxkaXYvPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxk
aXYvPgorUEFTU1sxLDZdOiBjb250ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVu
dC8+PHNwYW4vPgorUEFTU1sxLDddOiBjb250ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+
PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbMSw4XTogY29udGVudD0jdGV4dDxkaXYvPiBzaGFkb3c9
PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KK1BBU1NbMSw5XTogY29udGVudD0jdGV4dDxkaXYvPiBz
aGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KK1BBU1NbMSwxMF06IGNvbnRl
bnQ9I3RleHQ8ZGl2Lz4gc2hhZG93PTxkaXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgor
UEFTU1sxLDExXTogY29udGVudD0jdGV4dDxkaXYvPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRl
bnQvPiN0ZXh0PHNwYW4vPgorUEFTU1sxLDEyXTogY29udGVudD0jdGV4dDxkaXYvPiBzaGFkb3c9
PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+CitQQVNTWzEsMTNdOiBjb250ZW50PSN0
ZXh0PGRpdi8+IHNoYWRvdz08ZGl2Pjxjb250ZW50Lz48L2Rpdj4KK1BBU1NbMSwxNF06IGNvbnRl
bnQ9I3RleHQ8ZGl2Lz4gc2hhZG93PTxzcGFuPjxjb250ZW50Lz48L3NwYW4+CitQQVNTWzIsMF06
IGNvbnRlbnQ9PGRpdi8+I3RleHQgc2hhZG93PTxjb250ZW50Lz4KK1BBU1NbMiwxXTogY29udGVu
dD08ZGl2Lz4jdGV4dCBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1syLDJdOiBj
b250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgorUEFTU1sy
LDNdOiBjb250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4K
K1BBU1NbMiw0XTogY29udGVudD08ZGl2Lz4jdGV4dCBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48
ZGl2Lz4KK1BBU1NbMiw1XTogY29udGVudD08ZGl2Lz4jdGV4dCBzaGFkb3c9PGRpdi8+PGNvbnRl
bnQvPjxkaXYvPgorUEFTU1syLDZdOiBjb250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08ZGl2Lz48
Y29udGVudC8+PHNwYW4vPgorUEFTU1syLDddOiBjb250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08
c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbMiw4XTogY29udGVudD08ZGl2Lz4jdGV4dCBz
aGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KK1BBU1NbMiw5XTogY29udGVudD08ZGl2Lz4j
dGV4dCBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KK1BBU1NbMiwxMF06
IGNvbnRlbnQ9PGRpdi8+I3RleHQgc2hhZG93PTxkaXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNw
YW4vPgorUEFTU1syLDExXTogY29udGVudD08ZGl2Lz4jdGV4dCBzaGFkb3c9PHNwYW4vPiN0ZXh0
PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgorUEFTU1syLDEyXTogY29udGVudD08ZGl2Lz4jdGV4dCBz
aGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+CitQQVNTWzIsMTNdOiBjb250
ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08ZGl2Pjxjb250ZW50Lz48L2Rpdj4KK1BBU1NbMiwxNF06
IGNvbnRlbnQ9PGRpdi8+I3RleHQgc2hhZG93PTxzcGFuPjxjb250ZW50Lz48L3NwYW4+CitQQVNT
WzMsMF06IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9PGNvbnRlbnQvPgorUEFTU1sz
LDFdOiBjb250ZW50PSN0ZXh0PGRpdi8+I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50Lz48ZGl2
Lz4KK1BBU1NbMywyXTogY29udGVudD0jdGV4dDxkaXYvPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29u
dGVudC8+PHNwYW4vPgorUEFTU1szLDNdOiBjb250ZW50PSN0ZXh0PGRpdi8+I3RleHQgc2hhZG93
PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgorUEFTU1szLDRdOiBjb250ZW50PSN0ZXh0PGRpdi8+
I3RleHQgc2hhZG93PTxzcGFuLz48Y29udGVudC8+PGRpdi8+CitQQVNTWzMsNV06IGNvbnRlbnQ9
I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1szLDZd
OiBjb250ZW50PSN0ZXh0PGRpdi8+I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+
CitQQVNTWzMsN106IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9PHNwYW4vPjxjb250
ZW50Lz48c3Bhbi8+CitQQVNTWzMsOF06IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9
PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KK1BBU1NbMyw5XTogY29udGVudD0jdGV4dDxkaXYvPiN0
ZXh0IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgorUEFTU1szLDEwXTog
Y29udGVudD0jdGV4dDxkaXYvPiN0ZXh0IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4
dDxzcGFuLz4KK1BBU1NbMywxMV06IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9PHNw
YW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgorUEFTU1szLDEyXTogY29udGVudD0jdGV4
dDxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KK1BB
U1NbMywxM106IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9PGRpdj48Y29udGVudC8+
PC9kaXY+CitQQVNTWzMsMTRdOiBjb250ZW50PSN0ZXh0PGRpdi8+I3RleHQgc2hhZG93PTxzcGFu
Pjxjb250ZW50Lz48L3NwYW4+CitQQVNTWzQsMF06IGNvbnRlbnQ9PHNwYW4vPiBzaGFkb3c9PGNv
bnRlbnQvPgorUEFTU1s0LDFdOiBjb250ZW50PTxzcGFuLz4gc2hhZG93PTxkaXYvPjxjb250ZW50
Lz48ZGl2Lz4KK1BBU1NbNCwyXTogY29udGVudD08c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVu
dC8+PHNwYW4vPgorUEFTU1s0LDNdOiBjb250ZW50PTxzcGFuLz4gc2hhZG93PTxzcGFuLz48Y29u
dGVudC8+PHNwYW4vPgorUEFTU1s0LDRdOiBjb250ZW50PTxzcGFuLz4gc2hhZG93PTxzcGFuLz48
Y29udGVudC8+PGRpdi8+CitQQVNTWzQsNV06IGNvbnRlbnQ9PHNwYW4vPiBzaGFkb3c9PGRpdi8+
PGNvbnRlbnQvPjxkaXYvPgorUEFTU1s0LDZdOiBjb250ZW50PTxzcGFuLz4gc2hhZG93PTxkaXYv
Pjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzQsN106IGNvbnRlbnQ9PHNwYW4vPiBzaGFkb3c9PHNw
YW4vPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzQsOF06IGNvbnRlbnQ9PHNwYW4vPiBzaGFkb3c9
PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KK1BBU1NbNCw5XTogY29udGVudD08c3Bhbi8+IHNoYWRv
dz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgorUEFTU1s0LDEwXTogY29udGVudD08
c3Bhbi8+IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxzcGFuLz4KK1BBU1NbNCwx
MV06IGNvbnRlbnQ9PHNwYW4vPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNw
YW4vPgorUEFTU1s0LDEyXTogY29udGVudD08c3Bhbi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29u
dGVudC8+I3RleHQ8ZGl2Lz4KK1BBU1NbNCwxM106IGNvbnRlbnQ9PHNwYW4vPiBzaGFkb3c9PGRp
dj48Y29udGVudC8+PC9kaXY+CitQQVNTWzQsMTRdOiBjb250ZW50PTxzcGFuLz4gc2hhZG93PTxz
cGFuPjxjb250ZW50Lz48L3NwYW4+CitQQVNTWzUsMF06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNo
YWRvdz08Y29udGVudC8+CitQQVNTWzUsMV06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNoYWRvdz08
ZGl2Lz48Y29udGVudC8+PGRpdi8+CitQQVNTWzUsMl06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNo
YWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgorUEFTU1s1LDNdOiBjb250ZW50PSN0ZXh0PHNw
YW4vPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzUsNF06IGNvbnRlbnQ9
I3RleHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1s1LDVdOiBj
b250ZW50PSN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1s1
LDZdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxzcGFuLz4K
K1BBU1NbNSw3XTogY29udGVudD0jdGV4dDxzcGFuLz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+
PHNwYW4vPgorUEFTU1s1LDhdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiBzaGFkb3c9PHNwYW4vPjxj
b250ZW50Lz48ZGl2Lz4KK1BBU1NbNSw5XTogY29udGVudD0jdGV4dDxzcGFuLz4gc2hhZG93PTxk
aXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+CitQQVNTWzUsMTBdOiBjb250ZW50PSN0ZXh0
PHNwYW4vPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+CitQQVNTWzUs
MTFdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0
ZXh0PHNwYW4vPgorUEFTU1s1LDEyXTogY29udGVudD0jdGV4dDxzcGFuLz4gc2hhZG93PTxzcGFu
Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgorUEFTU1s1LDEzXTogY29udGVudD0jdGV4dDxz
cGFuLz4gc2hhZG93PTxkaXY+PGNvbnRlbnQvPjwvZGl2PgorUEFTU1s1LDE0XTogY29udGVudD0j
dGV4dDxzcGFuLz4gc2hhZG93PTxzcGFuPjxjb250ZW50Lz48L3NwYW4+CitQQVNTWzYsMF06IGNv
bnRlbnQ9PHNwYW4vPiN0ZXh0IHNoYWRvdz08Y29udGVudC8+CitQQVNTWzYsMV06IGNvbnRlbnQ9
PHNwYW4vPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+CitQQVNTWzYsMl06IGNv
bnRlbnQ9PHNwYW4vPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgorUEFTU1s2
LDNdOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+
CitQQVNTWzYsNF06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQv
PjxkaXYvPgorUEFTU1s2LDVdOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9PGRpdi8+PGNv
bnRlbnQvPjxkaXYvPgorUEFTU1s2LDZdOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9PGRp
di8+PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbNiw3XTogY29udGVudD08c3Bhbi8+I3RleHQgc2hh
ZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgorUEFTU1s2LDhdOiBjb250ZW50PTxzcGFuLz4j
dGV4dCBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KK1BBU1NbNiw5XTogY29udGVudD08
c3Bhbi8+I3RleHQgc2hhZG93PTxkaXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+CitQQVNT
WzYsMTBdOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+
I3RleHQ8c3Bhbi8+CitQQVNTWzYsMTFdOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9PHNw
YW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgorUEFTU1s2LDEyXTogY29udGVudD08c3Bh
bi8+I3RleHQgc2hhZG93PTxzcGFuLz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgorUEFTU1s2
LDEzXTogY29udGVudD08c3Bhbi8+I3RleHQgc2hhZG93PTxkaXY+PGNvbnRlbnQvPjwvZGl2Pgor
UEFTU1s2LDE0XTogY29udGVudD08c3Bhbi8+I3RleHQgc2hhZG93PTxzcGFuPjxjb250ZW50Lz48
L3NwYW4+CitQQVNTWzcsMF06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxjb250
ZW50Lz4KK1BBU1NbNywxXTogY29udGVudD0jdGV4dDxzcGFuLz4jdGV4dCBzaGFkb3c9PGRpdi8+
PGNvbnRlbnQvPjxkaXYvPgorUEFTU1s3LDJdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNo
YWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgorUEFTU1s3LDNdOiBjb250ZW50PSN0ZXh0PHNw
YW4vPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbNyw0XTogY29u
dGVudD0jdGV4dDxzcGFuLz4jdGV4dCBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KK1BB
U1NbNyw1XTogY29udGVudD0jdGV4dDxzcGFuLz4jdGV4dCBzaGFkb3c9PGRpdi8+PGNvbnRlbnQv
PjxkaXYvPgorUEFTU1s3LDZdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNoYWRvdz08ZGl2
Lz48Y29udGVudC8+PHNwYW4vPgorUEFTU1s3LDddOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0
IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbNyw4XTogY29udGVudD0jdGV4
dDxzcGFuLz4jdGV4dCBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KK1BBU1NbNyw5XTog
Y29udGVudD0jdGV4dDxzcGFuLz4jdGV4dCBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3Rl
eHQ8ZGl2Lz4KK1BBU1NbNywxMF06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxk
aXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgorUEFTU1s3LDExXTogY29udGVudD0jdGV4
dDxzcGFuLz4jdGV4dCBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgor
UEFTU1s3LDEyXTogY29udGVudD0jdGV4dDxzcGFuLz4jdGV4dCBzaGFkb3c9PHNwYW4vPiN0ZXh0
PGNvbnRlbnQvPiN0ZXh0PGRpdi8+CitQQVNTWzcsMTNdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0
ZXh0IHNoYWRvdz08ZGl2Pjxjb250ZW50Lz48L2Rpdj4KK1BBU1NbNywxNF06IGNvbnRlbnQ9I3Rl
eHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxzcGFuPjxjb250ZW50Lz48L3NwYW4+CitQQVNTWzgsMF06
IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08Y29udGVudC8+CitQQVNTWzgsMV06
IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+
CitQQVNTWzgsMl06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29u
dGVudC8+PHNwYW4vPgorUEFTU1s4LDNdOiBjb250ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBzaGFk
b3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzgsNF06IGNvbnRlbnQ9PHNwYW4vPiN0
ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1s4LDVdOiBjb250
ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgorUEFT
U1s4LDZdOiBjb250ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQv
PjxzcGFuLz4KK1BBU1NbOCw3XTogY29udGVudD08c3Bhbi8+I3RleHQ8ZGl2Lz4gc2hhZG93PTxz
cGFuLz48Y29udGVudC8+PHNwYW4vPgorUEFTU1s4LDhdOiBjb250ZW50PTxzcGFuLz4jdGV4dDxk
aXYvPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KK1BBU1NbOCw5XTogY29udGVudD08
c3Bhbi8+I3RleHQ8ZGl2Lz4gc2hhZG93PTxkaXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+
CitQQVNTWzgsMTBdOiBjb250ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBzaGFkb3c9PGRpdi8+I3Rl
eHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+CitQQVNTWzgsMTFdOiBjb250ZW50PTxzcGFuLz4jdGV4
dDxkaXYvPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgorUEFTU1s4
LDEyXTogY29udGVudD08c3Bhbi8+I3RleHQ8ZGl2Lz4gc2hhZG93PTxzcGFuLz4jdGV4dDxjb250
ZW50Lz4jdGV4dDxkaXYvPgorUEFTU1s4LDEzXTogY29udGVudD08c3Bhbi8+I3RleHQ8ZGl2Lz4g
c2hhZG93PTxkaXY+PGNvbnRlbnQvPjwvZGl2PgorUEFTU1s4LDE0XTogY29udGVudD08c3Bhbi8+
I3RleHQ8ZGl2Lz4gc2hhZG93PTxzcGFuPjxjb250ZW50Lz48L3NwYW4+CitQQVNTWzksMF06IGNv
bnRlbnQ9PGRpdi8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08Y29udGVudC8+CitQQVNTWzksMV06IGNv
bnRlbnQ9PGRpdi8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+CitQ
QVNTWzksMl06IGNvbnRlbnQ9PGRpdi8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVu
dC8+PHNwYW4vPgorUEFTU1s5LDNdOiBjb250ZW50PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFkb3c9
PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+CitQQVNTWzksNF06IGNvbnRlbnQ9PGRpdi8+I3RleHQ8
c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1s5LDVdOiBjb250ZW50
PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1s5
LDZdOiBjb250ZW50PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxz
cGFuLz4KK1BBU1NbOSw3XTogY29udGVudD08ZGl2Lz4jdGV4dDxzcGFuLz4gc2hhZG93PTxzcGFu
Lz48Y29udGVudC8+PHNwYW4vPgorUEFTU1s5LDhdOiBjb250ZW50PTxkaXYvPiN0ZXh0PHNwYW4v
PiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KK1BBU1NbOSw5XTogY29udGVudD08ZGl2
Lz4jdGV4dDxzcGFuLz4gc2hhZG93PTxkaXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+CitQ
QVNTWzksMTBdOiBjb250ZW50PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdi8+I3RleHQ8
Y29udGVudC8+I3RleHQ8c3Bhbi8+CitQQVNTWzksMTFdOiBjb250ZW50PTxkaXYvPiN0ZXh0PHNw
YW4vPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgorUEFTU1s5LDEy
XTogY29udGVudD08ZGl2Lz4jdGV4dDxzcGFuLz4gc2hhZG93PTxzcGFuLz4jdGV4dDxjb250ZW50
Lz4jdGV4dDxkaXYvPgorUEFTU1s5LDEzXTogY29udGVudD08ZGl2Lz4jdGV4dDxzcGFuLz4gc2hh
ZG93PTxkaXY+PGNvbnRlbnQvPjwvZGl2PgorUEFTU1s5LDE0XTogY29udGVudD08ZGl2Lz4jdGV4
dDxzcGFuLz4gc2hhZG93PTxzcGFuPjxjb250ZW50Lz48L3NwYW4+CitQQVNTWzEwLDBdOiBjb250
ZW50PTxkaXYvPjxzcGFuLz4gc2hhZG93PTxjb250ZW50Lz4KK1BBU1NbMTAsMV06IGNvbnRlbnQ9
PGRpdi8+PHNwYW4vPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1sxMCwyXTog
Y29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgorUEFT
U1sxMCwzXTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxz
cGFuLz4KK1BBU1NbMTAsNF06IGNvbnRlbnQ9PGRpdi8+PHNwYW4vPiBzaGFkb3c9PHNwYW4vPjxj
b250ZW50Lz48ZGl2Lz4KK1BBU1NbMTAsNV06IGNvbnRlbnQ9PGRpdi8+PHNwYW4vPiBzaGFkb3c9
PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1sxMCw2XTogY29udGVudD08ZGl2Lz48c3Bhbi8+
IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgorUEFTU1sxMCw3XTogY29udGVudD08ZGl2
Lz48c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbMTAsOF06IGNv
bnRlbnQ9PGRpdi8+PHNwYW4vPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KK1BBU1Nb
MTAsOV06IGNvbnRlbnQ9PGRpdi8+PHNwYW4vPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+
I3RleHQ8ZGl2Lz4KK1BBU1NbMTAsMTBdOiBjb250ZW50PTxkaXYvPjxzcGFuLz4gc2hhZG93PTxk
aXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgorUEFTU1sxMCwxMV06IGNvbnRlbnQ9PGRp
di8+PHNwYW4vPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgorUEFT
U1sxMCwxMl06IGNvbnRlbnQ9PGRpdi8+PHNwYW4vPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRl
bnQvPiN0ZXh0PGRpdi8+CitQQVNTWzEwLDEzXTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRv
dz08ZGl2Pjxjb250ZW50Lz48L2Rpdj4KK1BBU1NbMTAsMTRdOiBjb250ZW50PTxkaXYvPjxzcGFu
Lz4gc2hhZG93PTxzcGFuPjxjb250ZW50Lz48L3NwYW4+CitQQVNTWzExLDBdOiBjb250ZW50PTxz
cGFuLz48ZGl2Lz4gc2hhZG93PTxjb250ZW50Lz4KK1BBU1NbMTEsMV06IGNvbnRlbnQ9PHNwYW4v
PjxkaXYvPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgorUEFTU1sxMSwyXTogY29udGVu
dD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgorUEFTU1sxMSwz
XTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4K
K1BBU1NbMTEsNF06IGNvbnRlbnQ9PHNwYW4vPjxkaXYvPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50
Lz48ZGl2Lz4KK1BBU1NbMTEsNV06IGNvbnRlbnQ9PHNwYW4vPjxkaXYvPiBzaGFkb3c9PGRpdi8+
PGNvbnRlbnQvPjxkaXYvPgorUEFTU1sxMSw2XTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRv
dz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgorUEFTU1sxMSw3XTogY29udGVudD08c3Bhbi8+PGRp
di8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KK1BBU1NbMTEsOF06IGNvbnRlbnQ9
PHNwYW4vPjxkaXYvPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KK1BBU1NbMTEsOV06
IGNvbnRlbnQ9PHNwYW4vPjxkaXYvPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8
ZGl2Lz4KK1BBU1NbMTEsMTBdOiBjb250ZW50PTxzcGFuLz48ZGl2Lz4gc2hhZG93PTxkaXYvPiN0
ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgorUEFTU1sxMSwxMV06IGNvbnRlbnQ9PHNwYW4vPjxk
aXYvPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgorUEFTU1sxMSwx
Ml06IGNvbnRlbnQ9PHNwYW4vPjxkaXYvPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0
ZXh0PGRpdi8+CitQQVNTWzExLDEzXTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08ZGl2
Pjxjb250ZW50Lz48L2Rpdj4KK1BBU1NbMTEsMTRdOiBjb250ZW50PTxzcGFuLz48ZGl2Lz4gc2hh
ZG93PTxzcGFuPjxjb250ZW50Lz48L3NwYW4+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXJlbmRlcmVycy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45MTUxOWI4YmM5ZWQ5OGU1MzRiZjM3ZTE0NWRhMTMxNTRiNWJjOGI4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJl
cnMuaHRtbApAQCAtMCwwICsxLDE1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlPgorLyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJl
bmRlckxheWVyICovCisuY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cit9Cis8
L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIHZhciBsaW5l
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgbGluZS50ZXh0Q29udGVudCA9
IG1lc3NhZ2U7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRD
aGlsZChsaW5lKTsKK30KKwordmFyIGNvbnRlbnRTb3VyY2VzID0gWworICAiPGRpdi8+IiwKKyAg
IiN0ZXh0PGRpdi8+IiwKKyAgIjxkaXYvPiN0ZXh0IiwKKyAgIiN0ZXh0PGRpdi8+I3RleHQiLAor
CisgICI8c3Bhbi8+IiwKKyAgIiN0ZXh0PHNwYW4vPiIsCisgICI8c3Bhbi8+I3RleHQiLAorICAi
I3RleHQ8c3Bhbi8+I3RleHQiLAorCisgICI8c3Bhbi8+I3RleHQ8ZGl2Lz4iLAorICAiPGRpdi8+
I3RleHQ8c3Bhbi8+IiwKKyAgIjxkaXYvPjxzcGFuLz4iLAorICAiPHNwYW4vPjxkaXYvPiIKKwor
XTsKKwordmFyIHNoYWRvd1NvdXJjZXMgPSBbCisgICI8Y29udGVudC8+IiwKKyAgIjxkaXYvPjxj
b250ZW50Lz48ZGl2Lz4iLAorICAiPGRpdi8+PGNvbnRlbnQvPjxzcGFuLz4iLAorICAiPHNwYW4v
Pjxjb250ZW50Lz48c3Bhbi8+IiwKKyAgIjxzcGFuLz48Y29udGVudC8+PGRpdi8+IiwKKworICAi
PGRpdi8+PGNvbnRlbnQvPjxkaXYvPiIsCisgICI8ZGl2Lz48Y29udGVudC8+PHNwYW4vPiIsCisg
ICI8c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4iLAorICAiPHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4i
LAorCisgICI8ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPiIsCisgICI8ZGl2Lz4jdGV4
dDxjb250ZW50Lz4jdGV4dDxzcGFuLz4iLAorICAiPHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0
PHNwYW4vPiIsCisgICI8c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4iLAorCisgICI8
ZGl2Pjxjb250ZW50Lz48L2Rpdj4iLAorICAiPHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4iCitdOwor
CitmdW5jdGlvbiBjcmVhdGVUcmVlRnJvbShodG1sKQoreworICAgIHZhciBlbmhhbmNlZEh0bWwg
PSBodG1sLnJlcGxhY2UoLzxzcGFuXC8+L2csICI8c3Bhbj4gPC9zcGFuPiIpLnJlcGxhY2UoLzxk
aXZcLz4vZywgIjxkaXY+IDwvZGl2PiIpLnJlcGxhY2UoLzxjb250ZW50XC8+L2csICI8Y29udGVu
dD48L2NvbnRlbnQ+IikucmVwbGFjZSgvI3RleHQvZywgIiAiKTsKKyAgICB2YXIgcm9vdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImJsb2NrcXVvdGUiKTsKKyAgICByb290LmlubmVySFRNTCA9
IGVuaGFuY2VkSHRtbDsKKyAgICB2YXIgY29udGVudFBsYWNlaG9sZGVyID0gcm9vdC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiQ09OVEVOVCIpWzBdOworICAgIGlmIChjb250ZW50UGxhY2Vob2xkZXIp
IHsKKyAgICAgICAgdmFyIGNvbnRlbnRQYXJlbnQgPSBjb250ZW50UGxhY2Vob2xkZXIucGFyZW50
Tm9kZTsKKyAgICAgICAgY29udGVudFBhcmVudC5yZXBsYWNlQ2hpbGQod2luZG93LmludGVybmFs
cy5jcmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChkb2N1bWVudCksIGNvbnRlbnRQbGFjZWhvbGRl
cik7CisgICAgfTsKKworICAgIHJldHVybiByb290OworfQorCitmdW5jdGlvbiBtb3ZlQ2hpbGRy
ZW4oZnJvbVBhcmVudCwgdG9QYXJlbnQpCit7CisgICAgdmFyIGNoaWxkcmVuID0gZnJvbVBhcmVu
dC5jaGlsZE5vZGVzOworICAgIHdoaWxlIChmcm9tUGFyZW50LmZpcnN0Q2hpbGQpCisgICAgICAg
IHRvUGFyZW50LmFwcGVuZENoaWxkKGZyb21QYXJlbnQuZmlyc3RDaGlsZCk7Cit9CisKK2Z1bmN0
aW9uIGNyZWF0ZVRhcmdldFRyZWUoY29udGVudEh0bWwsIHNoYWRvd0h0bWwpCit7CisgICAgdmFy
IGNvbnRlbnQgPSBjcmVhdGVUcmVlRnJvbShjb250ZW50SHRtbCk7CisgICAgdmFyIHNoYWRvdyA9
IGNyZWF0ZVRyZWVGcm9tKHNoYWRvd0h0bWwpOworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiYmxvY2txdW90ZSIpOworICAgIHZhciBzaGFkb3dSb290ID0gaW50ZXJuYWxz
LmVuc3VyZVNoYWRvd1Jvb3QoaG9zdCk7CisgICAgbW92ZUNoaWxkcmVuKGNvbnRlbnQsIGhvc3Qp
OworICAgIG1vdmVDaGlsZHJlbihzaGFkb3csIHNoYWRvd1Jvb3QpOyAKKyAgICByZXR1cm4gaG9z
dDsKK30KKworZnVuY3Rpb24gY2xlYW51cENvbnRhaW5lcihjb250YWluZXIpCit7CisgICAgdmFy
IGNoaWxkID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7CisgICAgaWYgKGNoaWxkKQorICAgICAgICBj
b250YWluZXIucmVtb3ZlQ2hpbGQoY2hpbGQpOworICAgIGNvbnRhaW5lci5vZmZzZXRMZWZ0Owor
fQorCitmdW5jdGlvbiB0ZXN0V2l0aENvbnRlbnRBbmRTaGFkb3coY29udGVudEh0bWwsIHNoYWRv
d0h0bWwsIGxhYmVsKQoreworICAgIHZhciB0YXJnZXRDb250YWluZXIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0Q29udGFpbmVyIik7CisgICAgY2xlYW51cENvbnRhaW5lcih0YXJn
ZXRDb250YWluZXIpOworICAgIHZhciB0YXJnZXQgPSBjcmVhdGVUYXJnZXRUcmVlKGNvbnRlbnRI
dG1sLCBzaGFkb3dIdG1sKTsKKyAgICB0YXJnZXRDb250YWluZXIuYXBwZW5kQ2hpbGQodGFyZ2V0
KTsKKyAgICB2YXIgdGFyZ2V0UmVuZGVyVHJlZSA9IHJlbW92ZUNvbnRhaW5lckxpbmVzKHdpbmRv
dy5pbnRlcm5hbHMuZWxlbWVudFJlbmRlclRyZWVBc1RleHQodGFyZ2V0Q29udGFpbmVyKSk7CisK
KyAgICB2YXIgcmVmZXJlbmNlQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
ZmVyZW5jZUNvbnRhaW5lciIpOworICAgIGNsZWFudXBDb250YWluZXIocmVmZXJlbmNlQ29udGFp
bmVyKTsKKyAgICB2YXIgc2VwYXJhdG9yID0gIjwhLS0gLS0+IjsgLy8gVXNlcyBhIHNlcGFyYXRv
ciBmb3Iga2VlcGluZyB0ZXh0IG5vZGUgc2VwYXJhdGUuCisgICAgdmFyIHJlZmVyZW5jZUh0bWwg
PSBzaGFkb3dIdG1sLnJlcGxhY2UoIjxjb250ZW50Lz4iLCAoc2VwYXJhdG9yICsgY29udGVudEh0
bWwgKyBzZXBhcmF0b3IpKTsKKyAgICB2YXIgcmVmZXJlbmNlID0gY3JlYXRlVHJlZUZyb20ocmVm
ZXJlbmNlSHRtbCk7CisgICAgcmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKHJlZmVyZW5j
ZSk7CisgICAgdmFyIHJlZmVyZW5jZVJlbmRlclRyZWUgPSByZW1vdmVDb250YWluZXJMaW5lcyh3
aW5kb3cuaW50ZXJuYWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KHJlZmVyZW5jZUNvbnRhaW5l
cikpOworICAgIGlmICh0YXJnZXRSZW5kZXJUcmVlID09IHJlZmVyZW5jZVJlbmRlclRyZWUpCisg
ICAgICAgIGxvZygiUEFTU1siICsgbGFiZWwgKyAiXTogY29udGVudD0iICsgY29udGVudEh0bWwg
KyAiIHNoYWRvdz0iICsgc2hhZG93SHRtbCk7CisgICAgZWxzZSB7CisgICAgICAgIGxvZygiRkFJ
TFsiICsgbGFiZWwgKyAiXTogY29udGVudD0iICsgY29udGVudEh0bWwgKyAiIHNoYWRvdz0iICsg
c2hhZG93SHRtbCk7CisgICAgICAgIGxvZygiRXhwZWN0ZWQ6IChmb3IgIiArIHJlZmVyZW5jZS5p
bm5lckhUTUwgKyAiKSIpOworICAgICAgICBsb2cocmVmZXJlbmNlUmVuZGVyVHJlZSk7CisgICAg
ICAgIGxvZygiQWN0dWFsOiAoZm9yICIgKyB0YXJnZXQuaW5uZXJIVE1MICsgIikiKTsKKyAgICAg
ICAgbG9nKHRhcmdldFJlbmRlclRyZWUpOworICAgIH0KK30KKworZnVuY3Rpb24gcmVtb3ZlQ29u
dGFpbmVyTGluZXModGV4dCkKK3sKKyAgICB2YXIgbGluZXMgPSB0ZXh0LnNwbGl0KCJcbiIpOwor
ICAgIGxpbmVzLnNwbGljZSgwLCAyKTsKKyAgICByZXR1cm4gbGluZXMuam9pbigiXG4iKTsKK30K
KworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgIGxvZygiVGhpcyB0ZXN0IGNvbXBhcmVzIGEgc2hhZG93LWJhc2VkIHJlbmRlciB0
cmVlIHdpdGggb25lIGZvciBhIHJlZmVyZW5jZSBET00gdHJlZS4iKTsKKyAgICBsb2coIk5vdGUg
dGhhdCB0aGlzIHRlc3Qgb25seSBydW5zIG9uIERSVC4iKTsKKworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgY29udGVudFNvdXJjZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgZm9yICh2YXIgaiA9
IDA7IGogPCBzaGFkb3dTb3VyY2VzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICB2YXIgdGVz
dExhYmVsID0gaSArICIsIiArIGo7CisgICAgICAgICAgICB0ZXN0V2l0aENvbnRlbnRBbmRTaGFk
b3coY29udGVudFNvdXJjZXNbaV0sIHNoYWRvd1NvdXJjZXNbal0sIHRlc3RMYWJlbCk7CisgICAg
ICAgIH0KKyAgICB9IAorCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS5zdHls
ZS5kaXNwbGF5ID0gIm5vbmUiOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
Iikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0idGVzdCgpIj4KKzxkaXYgaWQ9InRlc3QiPgorPGRpdiBjbGFzcz0iY29udGFpbmVy
IiBpZD0idGFyZ2V0Q29udGFpbmVyIj48L2Rpdj4KKzxkaXYgY2xhc3M9ImNvbnRhaW5lciIgaWQ9
InJlZmVyZW5jZUNvbnRhaW5lciI+PC9kaXY+Cis8L2Rpdj4KKzxwcmUgaWQ9ImNvbnNvbGUiIHN0
eWxlPSJkaXNwbGF5OiBub25lOyI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggYTA3N2QyZTY3YjBhMDEyNWRkMGY1MzM1MDBkOGI4YzY2Njg1ZDVjZC4uNWY4YzM1NGU0Mjdi
YmRjM2M1N2Y0ZDkxMzVmYTgwODEwNjNmZTExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBA
CisyMDExLTA3LTA1ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAg
ICAgIFtTaGFkb3dDb250ZW50RWxlbWVudF0gUmVkdW5kYW50IFJlbmRlclRleHQgb2JqZWN0cyBh
cmUgY3JlYXRlZCBvbiB0aGUgY29udGVudCBib3VuZGFyaWVzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5NzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Om5leHRS
ZW5kZXJlcigpIGFuZCBwcmV2aW91c1JlbmRlcmVyKCkgZGlkbid0IHdvcmsgd2VsbAorICAgICAg
ICB3aGVuIGl0IGNyb3NzZXMgY29udGVudCBlbGVtZW50czoKKyAgICAgICAgLSBJdCBkb2Vzbid0
IHN0ZXAgaW50byBmb3J3YXJkZWQgY2hpbGRyZW4gb2YgU2hhZG93Q29udGVudEVsZW1lbnQuCisg
ICAgICAgIC0gSXQgZG9lc24ndCBzdGVwIG91dCBmcm9tIHRyYXZlcnNpbmcgZm9yd2FyZGVkIGNo
aWxkcmVuIHRvCisgICAgICAgICAgbmVpZ2hib3JzIG9mIHRoZSBjb250ZW50IGVsZW1lbnQgb2Yg
dGhhdCBmb3J3YXJkZWQgY2hpZHJlbi4KKyAgICAgICAgCisgICAgICAgIFRoaXMgY2hhbmdlIG1h
a2VzIGl0IHRvIHN0ZXAgaW50byBhbmQgb3V0IGZyb20gY29udGVudCBlbGVtZW50LgorICAgICAg
ICAKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJl
cnMuaHRtbAorCisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmZpcnN0UmVuZGVyZXJPZik6IEFkZGVkCisgICAgICAgIChXZWJDb3JlOjps
YXN0UmVuZGVyZXJPZik6IEFkZGVkCisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29u
dGV4dDo6bmV4dFJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250
ZXh0OjpwcmV2aW91c1JlbmRlcmVyKToKKwogMjAxMS0wNy0wNSAgS2VudGFybyBIYXJhICA8aGFy
YWtlbkBnb29nbGUuY29tPgogCiAgICAgICAgIFRyaWdnZXIgYSAnY2hhbmdlJyBldmVudCB3aGVu
ZXZlciBzZWxlY3RlZCBmaWxlcyBhcmUgY2hhbmdlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggNDNlNThlZmY2NjRkYjE0MjU3NmQ1NDJjZGMyZjFl
OGMzZjI1N2QzZC4uNjllYzFiYzY4NDk4NDY3NTgxNzQ2YzIzNmE0MDgwYzEwNGJiYzk2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0xMzAsMTQg
KzEzMCw0MSBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1JlbmRlcmVyT2YoU2hhZG93
Q29udGVudEVsZW1lbnQqIHBhcmVudCwgTm9kZSogY3VycgogICAgIHJldHVybiBsYXN0UmVuZGVy
ZXI7CiB9CiAKK3N0YXRpYyBSZW5kZXJPYmplY3QqIGZpcnN0UmVuZGVyZXJPZihTaGFkb3dDb250
ZW50RWxlbWVudCogcGFyZW50KQoreworICAgIHNpemVfdCBpbmNsdXNpb25Db3VudCA9IHBhcmVu
dC0+aW5jbHVzaW9uQ291bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluY2x1c2lv
bkNvdW50OyArK2kpIHsKKyAgICAgICAgTm9kZSogY2FuZGlkYXRlID0gcGFyZW50LT5pbmNsdXNp
b25BdChpKTsKKyAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjYW5kaWRhdGUt
PnJlbmRlcmVyKCkpCisgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXI7CisgICAgfQorCisgICAg
cmV0dXJuIDA7Cit9CisKK3N0YXRpYyBSZW5kZXJPYmplY3QqIGxhc3RSZW5kZXJlck9mKFNoYWRv
d0NvbnRlbnRFbGVtZW50KiBwYXJlbnQpCit7CisgICAgc2l6ZV90IGluY2x1c2lvbkNvdW50ID0g
cGFyZW50LT5pbmNsdXNpb25Db3VudCgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW5j
bHVzaW9uQ291bnQ7ICsraSkgeworICAgICAgICBOb2RlKiBjYW5kaWRhdGUgPSBwYXJlbnQtPmlu
Y2x1c2lvbkF0KGluY2x1c2lvbkNvdW50IC0gaSAtIDEpOworICAgICAgICBpZiAoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IGNhbmRpZGF0ZS0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgIHJldHVy
biByZW5kZXJlcjsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogUmVuZGVyT2JqZWN0KiBO
b2RlUmVuZGVyaW5nQ29udGV4dDo6bmV4dFJlbmRlcmVyKCkgY29uc3QKIHsKICAgICBBU1NFUlQo
bV9ub2RlLT5yZW5kZXJlcigpIHx8IG1fbG9jYXRpb24gIT0gTG9jYXRpb25VbmRldGVybWluZWQp
OwogICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbV9ub2RlLT5yZW5kZXJlcigpKQog
ICAgICAgICByZXR1cm4gcmVuZGVyZXItPm5leHRTaWJsaW5nKCk7CiAKLSAgICBpZiAobV9waGFz
ZSA9PSBBdHRhY2hDb250ZW50Rm9yd2FyZGVkKQotICAgICAgICByZXR1cm4gbmV4dFJlbmRlcmVy
T2YobV9jb250ZW50RWxlbWVudCwgbV9ub2RlKTsKKyAgICBpZiAobV9waGFzZSA9PSBBdHRhY2hD
b250ZW50Rm9yd2FyZGVkKSB7CisgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGZvdW5kID0gbmV4
dFJlbmRlcmVyT2YobV9jb250ZW50RWxlbWVudCwgbV9ub2RlKSkKKyAgICAgICAgICAgIHJldHVy
biBmb3VuZDsKKyAgICAgICAgcmV0dXJuIE5vZGVSZW5kZXJpbmdDb250ZXh0KG1fY29udGVudEVs
ZW1lbnQpLm5leHRSZW5kZXJlcigpOworICAgIH0KIAogICAgIC8vIEF2b2lkIGFuIE8obl4yKSBw
cm9ibGVtIHdpdGggdGhpcyBmdW5jdGlvbiBieSBub3QgY2hlY2tpbmcgZm9yCiAgICAgLy8gbmV4
dFJlbmRlcmVyKCkgd2hlbiB0aGUgcGFyZW50IGVsZW1lbnQgaGFzbid0IGF0dGFjaGVkIHlldC4K
QEAgLTE0Nyw2ICsxNzQsMTAgQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6
bmV4dFJlbmRlcmVyKCkgY29uc3QKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBtX25vZGUtPm5leHRT
aWJsaW5nKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlm
IChub2RlLT5yZW5kZXJlcigpKQogICAgICAgICAgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7
CisgICAgICAgIGlmIChub2RlLT5pc0NvbnRlbnRFbGVtZW50KCkpIHsKKyAgICAgICAgICAgIGlm
IChSZW5kZXJPYmplY3QqIGZpcnN0ID0gZmlyc3RSZW5kZXJlck9mKHRvU2hhZG93Q29udGVudEVs
ZW1lbnQobm9kZSkpKQorICAgICAgICAgICAgICAgIHJldHVybiBmaXJzdDsKKyAgICAgICAgfQog
ICAgIH0KIAogICAgIHJldHVybiAwOwpAQCAtMTU4LDE0ICsxODksMjEgQEAgUmVuZGVyT2JqZWN0
KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6cHJldmlvdXNSZW5kZXJlcigpIGNvbnN0CiAgICAgaWYg
KFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBtX25vZGUtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJl
dHVybiByZW5kZXJlci0+cHJldmlvdXNTaWJsaW5nKCk7CiAKLSAgICBpZiAobV9waGFzZSA9PSBB
dHRhY2hDb250ZW50Rm9yd2FyZGVkKQotICAgICAgICByZXR1cm4gcHJldmlvdXNSZW5kZXJlck9m
KG1fY29udGVudEVsZW1lbnQsIG1fbm9kZSk7CisgICAgaWYgKG1fcGhhc2UgPT0gQXR0YWNoQ29u
dGVudEZvcndhcmRlZCkgeworICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBmb3VuZCA9IHByZXZp
b3VzUmVuZGVyZXJPZihtX2NvbnRlbnRFbGVtZW50LCBtX25vZGUpKQorICAgICAgICAgICAgcmV0
dXJuIGZvdW5kOworICAgICAgICByZXR1cm4gTm9kZVJlbmRlcmluZ0NvbnRleHQobV9jb250ZW50
RWxlbWVudCkucHJldmlvdXNSZW5kZXJlcigpOworICAgIH0KIAogICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgaGF2ZSB0aGUgc2FtZSBPKE5eMikgYXZvaWRhbmNlIGFzIG5leHRSZW5kZXJlciBkb2Vz
CiAgICAgLy8gaG93ZXZlciwgd2hlbiBJIHRyaWVkIGFkZGluZyBpdCwgc2V2ZXJhbCB0ZXN0cyBm
YWlsZWQuCiAgICAgZm9yIChOb2RlKiBub2RlID0gbV9ub2RlLT5wcmV2aW91c1NpYmxpbmcoKTsg
bm9kZTsgbm9kZSA9IG5vZGUtPnByZXZpb3VzU2libGluZygpKSB7CiAgICAgICAgIGlmIChub2Rl
LT5yZW5kZXJlcigpKQogICAgICAgICAgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7CisgICAg
ICAgIGlmIChub2RlLT5pc0NvbnRlbnRFbGVtZW50KCkpIHsKKyAgICAgICAgICAgIGlmIChSZW5k
ZXJPYmplY3QqIGxhc3QgPSBsYXN0UmVuZGVyZXJPZih0b1NoYWRvd0NvbnRlbnRFbGVtZW50KG5v
ZGUpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbGFzdDsKKyAgICAgICAgfQogICAgIH0KIAog
ICAgIHJldHVybiAwOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>