<?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>56727</bug_id>
          
          <creation_ts>2011-03-20 18:23:42 -0700</creation_ts>
          <short_desc>Implement experimental mixins feature.</short_desc>
          <delta_ts>2022-07-12 14:28:21 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Shane Stephens">shanestephens</reporter>
          <assigned_to name="Shane Stephens">shanestephens</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>daniel</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangax</cc>
    
    <cc>komoroske</cc>
    
    <cc>mathias</cc>
    
    <cc>mikelawther</cc>
    
    <cc>paulirish</cc>
    
    <cc>peter</cc>
    
    <cc>phiw2</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tabatkins</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>370253</commentid>
    <comment_count>0</comment_count>
    <who name="Shane Stephens">shanestephens</who>
    <bug_when>2011-03-20 18:23:42 -0700</bug_when>
    <thetext>Implement experimental mixins feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370257</commentid>
    <comment_count>1</comment_count>
      <attachid>86289</attachid>
    <who name="Shane Stephens">shanestephens</who>
    <bug_when>2011-03-20 18:45:34 -0700</bug_when>
    <thetext>Created attachment 86289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370259</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-03-20 19:20:33 -0700</bug_when>
    <thetext>What spec is this from? How does this differ from the CSS Variables that Hyatt added a while back?  Why do we want this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370264</commentid>
    <comment_count>3</comment_count>
    <who name="Shane Stephens">shanestephens</who>
    <bug_when>2011-03-20 20:04:52 -0700</bug_when>
    <thetext>This patch implements one of the CSS extension ideas that Tab Atkins presented recently (see slides here: http://www.xanthir.com/talks/2011-01-12/slides.html, blog post here: http://www.xanthir.com/blog/b49w0).  A formal specification is in progress. Mixins exist as a feature of both sass and less.

Mixins are complementary to CSS Variables - they provide sets of properties that can be bulk-imported into style definitions (see LayoutTests/css3/mixins.html in the patch for examples of usage), while Variables provide javascript-accessible values that can be used when defining property values.

Mixins allow common sets of properties to be defined once and used in multiple places.  They&apos;re useful for reducing the size of CSS sheets and improving modularity of CSS declarations. One of the clearest answers to why we want this is that mixins are a very commonly used feature in the sass and less pre-processors, indicating that they&apos;re a popular idea with web developers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370394</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Glazman">daniel</who>
    <bug_when>2011-03-21 08:31:10 -0700</bug_when>
    <thetext>(In reply to comment #3)

&gt; This patch implements one of the CSS extension ideas that Tab Atkins
&gt; presented recently (see slides here: http://www.xanthir.com/talks/2011-01-12/slides.html,
&gt;blog post here: http://www.xanthir.com/blog/b49w0).  A formal specification is
&gt; in progress. Mixins exist as a feature of both sass and less.

Let&apos;s clarify, please...
A &quot;proposal&quot; is in progress. Not a specification... Tab has only proposed
this once to the WG and the WG has not worked on this proposal. So your
implementation is for the time being 100% experimental and the feature is
not discussed yet. Mixins are not yet on the radar of the WG.

Daniel Glazman
CSS WG Co-chair</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370418</commentid>
    <comment_count>5</comment_count>
    <who name="Tab Atkins">tabatkins</who>
    <bug_when>2011-03-21 09:31:03 -0700</bug_when>
    <thetext>Daniel&apos;s got it right.  I haven&apos;t yet made any proposal to the CSSWG, though I plan to do so in the very near future.  I have too many specs on my plate.  ^_^</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370463</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-03-21 10:49:44 -0700</bug_when>
    <thetext>If this is complementary to CSS Variables, it seems like getting CSS Variables back up and cleaned up and shippable would be a much better first step than inventing something new.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370836</commentid>
    <comment_count>7</comment_count>
    <who name="Shane Stephens">shanestephens</who>
    <bug_when>2011-03-21 12:49:38 -0700</bug_when>
    <thetext>Daniel: Ah sorry, I did not want to give the impression that this was something the CSS WG was currently specifying or working on - I should have said &quot;a draft specification is in progress&quot;.

Sam: Work to add variables is currently in progress, by other coders.  As far as I can tell, this patch doesn&apos;t complicate their task.  Is there a particular reason to wait for variables to be committed first before discussing this feature?  I think that mixins are complementary in the senses that mixins and variables can happily co-exist, that each is valuable independently of the other, and that having both available provides multiplicative benefits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370854</commentid>
    <comment_count>8</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-03-21 13:06:30 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Daniel: Ah sorry, I did not want to give the impression that this was something the CSS WG was currently specifying or working on - I should have said &quot;a draft specification is in progress&quot;.
&gt; 
&gt; Sam: Work to add variables is currently in progress, by other coders.  As far as I can tell, this patch doesn&apos;t complicate their task.  Is there a particular reason to wait for variables to be committed first before discussing this feature?  I think that mixins are complementary in the senses that mixins and variables can happily co-exist, that each is valuable independently of the other, and that having both available provides multiplicative benefits.

Since this is an experimental feature, first good patch would be to add a flag for it. I think we also need dhyatt&apos;s/smfr&apos;s blessing that this is not a totally cockamamie idea. Perhaps even a webkit-dev mail?

Also, please try to keep patches smaller. Breaking this up into more reviewable pieces would be greatly appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371312</commentid>
    <comment_count>9</comment_count>
      <attachid>86450</attachid>
    <who name="Shane Stephens">shanestephens</who>
    <bug_when>2011-03-22 03:00:29 -0700</bug_when>
    <thetext>Created attachment 86450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371313</commentid>
    <comment_count>10</comment_count>
    <who name="Shane Stephens">shanestephens</who>
    <bug_when>2011-03-22 03:03:52 -0700</bug_when>
    <thetext>The new version of the patch hides the feature behind a flag (css-mixins).

I&apos;ve been thinking about how to split this up.  One problem is that the natural split - implementation vs. inspector changes - leaves the inspector in a state where it crashes when the user performs certain actions (for example disabling a mixin).  This is why I implemented the inspector changes as well, so that I wouldn&apos;t leave WebKit with crash bugs.

Being behind a flag, however, it might be OK for there to be inspector crashes if one patch were submitted but the other weren&apos;t. What&apos;s the general approach for this sort of thing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371423</commentid>
    <comment_count>11</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-03-22 09:33:09 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; The new version of the patch hides the feature behind a flag (css-mixins).
&gt; 
&gt; I&apos;ve been thinking about how to split this up.  One problem is that the natural split - implementation vs. inspector changes - leaves the inspector in a state where it crashes when the user performs certain actions (for example disabling a mixin).  This is why I implemented the inspector changes as well, so that I wouldn&apos;t leave WebKit with crash bugs.
&gt; 
&gt; Being behind a flag, however, it might be OK for there to be inspector crashes if one patch were submitted but the other weren&apos;t. What&apos;s the general approach for this sort of thing?

I think it&apos;s not great for inspector to crash :)

But the flag impl looks ok. Any luck summoning smfr/dhyatt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371484</commentid>
    <comment_count>12</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-03-22 10:57:16 -0700</bug_when>
    <thetext>I think this needs discussion on www-style first before we commit anything. If there&apos;s one lesson I learned from the CSS variables debacle and the datagrid debacle, it&apos;s not to commit code too early even if it&apos;s behind ifdefs.  

There&apos;s no reason to rush here.  Let&apos;s talk about this idea on the mailing list.

I will say that my old CSS variables proposal supported mix-ins using variables syntax without the need to invent something separate/new, so my first impulse of course is to ask why this has to be treated like a different feature with a different syntax.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371839</commentid>
    <comment_count>13</comment_count>
    <who name="Shane Stephens">shanestephens</who>
    <bug_when>2011-03-22 17:06:37 -0700</bug_when>
    <thetext>I agree that waiting and seeing how the discussion on www-style pans out is a good idea.  Here&apos;s a link to the thread for anyone who is interested: http://lists.w3.org/Archives/Public/www-style/2011Mar/0478.html.

I&apos;m afraid I don&apos;t understand how your variables proposal supports mixins. Is this: http://disruptive-innovations.com/zoo/cssvariables/ the proposal you implemented?:

How would this approach support something like:

@trait colorMe {
  color: green;
  background: black;
}

.myClass {
  @mixin colorMe;
}

I guess you could define variables for color and background, and use them everywhere that the mixin is included, but this quickly gets unwieldy and difficult to maintain as a change to the mixin (for example by adding a border) would require finding and updating every style rule that uses the mixin.

Alternatively you could define the mixin as a class and add class attributes to each dom element that matches a style rule that you want the mixin to apply to.  Again this is somewhat unwieldy and additionally requires style-specific modification of the HTML source.

Although this patch doesn&apos;t support it yet, one of the ideas in Tab&apos;s proposal to www-style is to allow parameterization of traits.  Here&apos;s a strawman syntax:

@trait styleMe($fg, $bg) {
  color: $fg;
  background: $bg;
  border: 2px solid $fg;
}

This allows complex sets of styling to be collected together then applied flexibly within a document.  I don&apos;t see a nice way that you can do this with variables, as the source of variability is the set of @mixin declarations:

.class1 {
  @mixin styleMe(red, green);
}

.class2 {
  @mixin styleMe(white, black);
}

etc..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373872</commentid>
    <comment_count>14</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-03-26 00:19:46 -0700</bug_when>
    <thetext>It wasn&apos;t in the proposal... it was in the implementation in WebKit. It basically looked very similar to your mix-ins stuff.  Just replace:

@trait colorMe {
  color: green;
  background: black;
}

with

@variable colorMe {
  color: green;
  background: black;
}

My main point is just that I don&apos;t really see any difference between CSS Variables and Mix-Ins.  I just think of them as the same feature.  Mix-ins are just variables where the value is a declaration block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374964</commentid>
    <comment_count>15</comment_count>
    <who name="Shane Stephens">shanestephens</who>
    <bug_when>2011-03-28 20:08:09 -0700</bug_when>
    <thetext>We&apos;d like to also support parameterization for mixins. For example, 

@trait styleMe($fg) {
  color: $fg;
}

.class1 {
  @mixin styleMe(red);
}

If @variable represented both values and sets of properties, then the following case is weird:

@variable styleMe($fg) {
  color: $fg;
}

@variables {
  foo: {color: red;}
  foo2: red;
}

.class1 {
  @mixin styleMe($foo, green); // not OK!
  @mixin styleMe($foo2, green); // OK!
}

@variables representing sets of properties could not ever be used as parameters - it seems they&apos;re a different concept.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489490</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-10-24 11:48:13 -0700</bug_when>
    <thetext>Curious what&apos;s the status of this bug?  Is the patch abandoned?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1882584</commentid>
    <comment_count>17</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-07-12 14:28:21 -0700</bug_when>
    <thetext>This seems to be abandoned.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86289</attachid>
            <date>2011-03-20 18:45:34 -0700</date>
            <delta_ts>2011-03-22 03:00:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56727-20110321124531.patch</filename>
            <type>text/plain</type>
            <size>52002</size>
            <attacher name="Shane Stephens">shanestephens</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODE1NjcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMDY4YzMxMmU4ODEzZDFiYjFlMzY5
NDg5NmI3NWQ2NDFmMzc5MjVlLi5jNWNlZTUyMzBkNGMyNGJjOTUwMGVlOWQxZDM4ZTJjZGRmYTFj
MmRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDMtMjAgIFNoYW5lIFN0ZXBoZW5zICA8
c2hhbmVzdGVwaGVuc0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBleHBlcmltZW50YWwgbWl4aW5zIGZlYXR1cmUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjcyNwor
CisgICAgICAgIFRoaXMgdGVzdCB1c2VzIHRoZSBmZWF0dXJlIHVuZGVyIGRpZmZlcmVudCBjb25k
aXRpb25zLCBpbmNsdWRpbmc6CisgICAgICAgICAgLSBhIHNpbXBsZSB0cmFpdAorICAgICAgICAg
IC0gYSB0cmFpdCBkZWZpbml0aW9uIHNwbGl0IGludG8gZGlzanVuY3QgcGllY2VzCisgICAgICAg
ICAgLSBoaWVyYXJjaGljYWwgdHJhaXRzCisgICAgICAgICAgLSBtdWx0aXBsZSBpbmNsdXNpb24g
b2YgdHJhaXRzCisgICAgICAgICAgLSBwcm9wZXJ0aWVzIGRlZmluZWQgaW4gYSB0cmFpdCB0aGVu
IG92ZXJyaWRkZW4gYXQgbWl4aW4gcG9pbnQKKworICAgICAgICAqIGNzczMvbWl4aW5zLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9taXhpbnMuaHRtbDogQWRkZWQuCisKIDIw
MTEtMDMtMjAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgaHR0
cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tZGVsZXRlLmh0bWwgdG8gdGhlIFNraXBwZWQgbGlzdCBm
b3IgV2ViS2l0MiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvbWl4aW5zLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2NzczMvbWl4aW5zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
OWZhMTg1NmFmM2JjZDNmNWEwMjYyNWFmYmE2NWQ0ZGJmOGM2OWI3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3NzMy9taXhpbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAK
K2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
ODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDE4
IFtiZ2NvbG9yPSMwMDgwMDBdCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDI4NXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NTogIlNldCB0
aGUgYmFja2dyb3VuZCB0byBiZSBncmVlbiB1c2luZyBhIG1peGluIgorICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMjEpIHNpemUgNzg0eDIyIFtib3JkZXI6ICgycHggc29saWQgIzAwMDAw
MCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDQxNngxOAorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgyLDIpIHdpZHRoIDQxNjogIlNldCB0aGUgYm9yZGVyIHRvIGJl
IDJweCBibGFjayB3aXRoIHJvdW5kZWQgY29ybmVycyB1c2luZyBhIG1peGluIgorICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsNDYpIHNpemUgNzg0eDI4IFtjb2xvcj0jRkZBNTAwXQorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDUsNSkgc2l6ZSA1MzV4MTgKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoNSw1KSB3aWR0aCA1MzU6ICJTZXQgdGhlIHRleHQgY29sb3IgdG8gb3Jhbmdl
IGFuZCBwYWRkaW5nIHRvIDVweCB3aXRoIGEgbWl4aW4gdGhhdCBoYXMgYSBzcGxpdCBkZWZpbml0
aW9uIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNzcpIHNpemUgNzg0eDIyIFtiZ2Nv
bG9yPSMwMDgwMDBdIFtib3JkZXI6ICgycHggc29saWQgIzAwMDAwMCldCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDQyMHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0
ICgyLDIpIHdpZHRoIDQyMDogIk1peCB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIG1peGlucyBp
bnRvIGEgbmV3IG1peGluIGFuZCB1c2UgaXQiCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCwxMDIpIHNpemUgNzg0eDMyIFtjb2xvcj0jRkZBNTAwXSBbYmdjb2xvcj0jMDA4MDAwXSBbYm9y
ZGVyOiAoMnB4IHNvbGlkICMwMDAwMDApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDcsNykgc2l6ZSA0MzV4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw3KSB3aWR0aCA0MzU6
ICJNaXggdGhlIGJhY2tncm91bmQsIGJvcmRlciwgYW5kIHNwbGl0IG1peGlucyBkaXJlY3RseSBp
biB0aGUgc3R5bGUgcnVsZSIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEzNykgc2l6
ZSA3ODR4MzQgW2NvbG9yPSNGRkE1MDBdIFtiZ2NvbG9yPSM4MDgwODBdIFtib3JkZXI6ICgzcHgg
c29saWQgIzAwMDAwMCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoOCw4KSBzaXpl
IDYzN3gxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICg4LDgpIHdpZHRoIDYzNzogIk1peCBpbiB0
aGUgYmFja2dyb3VuZCwgYm9yZGVyIGFuZCBzcGxpdCBtaXhpbnMsIHRoZW4gb3ZlcnJpZGUgdGhl
IGJhY2tncm91bmQgY29sb3IgYW5kIGJvcmRlciB3aWR0aCIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvbWl4aW5zLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL21peGlucy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg3NzIwMGUzZTY1NjE5NzI0NGZiOWQ5YzYzZjQ0MWU4OGEwODA3NDUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL21peGlucy5odG1sCkBAIC0wLDAgKzEsNzAgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisKK0Atd2Via2l0LXRyYWl0IHNldEJhY2tncm91bmQg
eworICAgIGJhY2tncm91bmQ6IGdyZWVuOworfQorCitALXdlYmtpdC10cmFpdCBzZXRCb3JkZXIg
eworICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4OworICAgIGJvcmRlcjogMnB4IHNvbGlk
IGJsYWNrOworfQorCitALXdlYmtpdC10cmFpdCBtaXhlZFRyYWl0cyB7CisgICAgQC13ZWJraXQt
bWl4aW4gc2V0QmFja2dyb3VuZDsKKyAgICBALXdlYmtpdC1taXhpbiBzZXRCb3JkZXI7Cit9CisK
K0Atd2Via2l0LXRyYWl0IHNwbGl0VHJhaXQgeworICAgIGNvbG9yOiBvcmFuZ2U7Cit9CisKKy5i
YWNrZ3JvdW5kIHsKKyAgICBALXdlYmtpdC1taXhpbiBzZXRCYWNrZ3JvdW5kOworfQorCisuYm9y
ZGVyIHsKKyAgICBALXdlYmtpdC1taXhpbiBzZXRCb3JkZXI7Cit9CisKKy5zcGxpdCB7CisgICAg
QC13ZWJraXQtbWl4aW4gc3BsaXRUcmFpdDsKK30KKworLm1peGVkIHsKKyAgICBALXdlYmtpdC1t
aXhpbiBtaXhlZFRyYWl0czsKK30KKworLmxvY2FsbHlfbWl4ZWQgeworICAgIEAtd2Via2l0LW1p
eGluIHNldEJhY2tncm91bmQ7CisgICAgQC13ZWJraXQtbWl4aW4gc2V0Qm9yZGVyOworICAgIEAt
d2Via2l0LW1peGluIHNwbGl0VHJhaXQ7Cit9CisKKy5vdmVycmlkaW5nIHsKKyAgICBALXdlYmtp
dC1taXhpbiBtaXhlZFRyYWl0czsKKyAgICBALXdlYmtpdC1taXhpbiBzcGxpdFRyYWl0OworICAg
IGJhY2tncm91bmQ6IGdyYXk7CisgICAgYm9yZGVyLXdpZHRoOiAzcHg7Cit9CisKK0Atd2Via2l0
LXRyYWl0IHNwbGl0VHJhaXQgeworICAgIHBhZGRpbmc6IDVweDsKK30KKworZGl2IHsKKyAgICBt
YXJnaW4tYm90dG9tOiAzcHg7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
Y2xhc3M9ImJhY2tncm91bmQiPlNldCB0aGUgYmFja2dyb3VuZCB0byBiZSBncmVlbiB1c2luZyBh
IG1peGluPC9kaXY+Cis8ZGl2IGNsYXNzPSJib3JkZXIiPlNldCB0aGUgYm9yZGVyIHRvIGJlIDJw
eCBibGFjayB3aXRoIHJvdW5kZWQgY29ybmVycyB1c2luZyBhIG1peGluPC9kaXY+Cis8ZGl2IGNs
YXNzPSJzcGxpdCI+U2V0IHRoZSB0ZXh0IGNvbG9yIHRvIG9yYW5nZSBhbmQgcGFkZGluZyB0byA1
cHggd2l0aCBhIG1peGluIHRoYXQgaGFzIGEgc3BsaXQgZGVmaW5pdGlvbjwvZGl2PgorPGRpdiBj
bGFzcz0ibWl4ZWQiPk1peCB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIG1peGlucyBpbnRvIGEg
bmV3IG1peGluIGFuZCB1c2UgaXQ8L2Rpdj4KKzxkaXYgY2xhc3M9ImxvY2FsbHlfbWl4ZWQiPk1p
eCB0aGUgYmFja2dyb3VuZCwgYm9yZGVyLCBhbmQgc3BsaXQgbWl4aW5zIGRpcmVjdGx5IGluIHRo
ZSBzdHlsZSBydWxlPC9kaXY+Cis8ZGl2IGNsYXNzPSJvdmVycmlkaW5nIj5NaXggaW4gdGhlIGJh
Y2tncm91bmQsIGJvcmRlciBhbmQgc3BsaXQgbWl4aW5zLCB0aGVuIG92ZXJyaWRlIHRoZSBiYWNr
Z3JvdW5kIGNvbG9yIGFuZCBib3JkZXIgd2lkdGg8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRy
b2lkLm1rCmluZGV4IDFhODQxOTBlOGE3OTliNDlhYzg0NTM2YmM2YzQ3Y2FkMGE5MmE0MTkuLmIy
ZTRiYzE5YWZiMmY4ZTAzZTljODM5ZGJmZDAyYmMyYjhmZjEwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAt
NjQsNiArNjQsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gXAogCWNzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcCBcCiAJY3NzL0NTU1N0eWxlU2hlZXQuY3BwIFwKIAljc3MvQ1NTVGltaW5nRnVuY3Rpb25W
YWx1ZS5jcHAgXAorCWNzcy9DU1NUcmFpdC5jcHAgXAogCWNzcy9DU1NVbmljb2RlUmFuZ2VWYWx1
ZS5jcHAgXAogCWNzcy9DU1NWYWx1ZUxpc3QuY3BwIFwKIAljc3MvRm9udEZhbWlseVZhbHVlLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDI0MTI3ZTkzZTRkOTA3Y2U3YTY5ZjlmMWMwNjg0
MmU1ZTAzZDRlNzEuLjk5MmQyNGJjNGIxMWMzOWE2MmY4ZTQzNjI0YzZjYTJlMzU2N2E3MjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC00OTMsNiArNDkzLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAogICAgIGNzcy9DU1NTdHlsZVNoZWV0LmNw
cAogICAgIGNzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcAorICAgIGNzcy9DU1NUcmFpdC5j
cHAKICAgICBjc3MvQ1NTVW5pY29kZVJhbmdlVmFsdWUuY3BwCiAgICAgY3NzL0NTU1ZhbHVlTGlz
dC5jcHAKICAgICBjc3MvRm9udEZhbWlseVZhbHVlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE4M2VhZGZj
MzJiYTA3MGE2YzIxNDVjMDZkMGU2ZWYyYTg1M2VhZjEuLmZlOWViOTM3OTk2MmJmYmYwY2RmOWI5
ODUyY2E5YTVmMGJkODE0NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NCBAQAorMjAxMS0wMy0y
MCAgU2hhbmUgU3RlcGhlbnMgIDxzaGFuZXN0ZXBoZW5zQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGV4cGVyaW1l
bnRhbCBtaXhpbnMgZmVhdHVyZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU2NzI3CisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIENTUyBN
aXhpbnMgYXMgZGVzY3JpYmVkIGhlcmU6IHd3dy54YW50aGlyLmNvbS9ibG9nL2I0OXcwIAorICAg
ICAgICBhbmQgcHJlc2VudGVkIHRvIHRoZSB3d3ctc3R5bGUgbWFpbGluZyBsaXN0IGJ5IFRhYiBB
dGtpbnMuCisKKyAgICAgICAgVGVzdDogY3NzMy9taXhpbnMuaHRtbAorCisgICAgICAgICogQW5k
cm9pZC5tazoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86Cisg
ICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1h
ci55OiAKKyAgICAgICAgUGFyc2VzIEAtd2Via2l0LW1peGluIHsgLi4uIH0gYXMgQ1NTVHJhaXRz
IGFuZCBzdG9yZXMgdGhlbSB3aXRoIHRoZSBvdGhlciBwYXJzZWQKKyAgICAgICAgQ1NTUnVsZXMg
aW4gQ1NTUGFyc2VyLiAgUGFyc2VzICJALXdlYmtpdC1taXhpbiA8dHJhaXROYW1lPiIgYXMgcHJv
cGVydGllcywKKyAgICAgICAgY3JlYXRpbmcgYW5kIHN0b3JpbmcgYSBXZWJraXRNaXhpblZhbHVl
IGFzIHRoZSB2YWx1ZS4gIFJlc29sdmVzIHRyYWl0TmFtZQorICAgICAgICByZWZlcmVuY2UgYXQg
YXBwbGljYXRpb24gdGltZSBhbmQgcmVjdXJzaXZlbHkgd2Fsa3MgQ1NTVHJhaXQgc3RydWN0dXJl
cyBhcHBseWluZworICAgICAgICBkZWZpbmVkIHByb3BlcnRpZXMuCisKKyAgICAgICAgKiBjc3Mv
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb246OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjphZGRQYXJzZWRQcm9wZXJ0
aWVzKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1BhcnNlcjo6Y3JlYXRlV2Via2l0VHJhaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjptYXJrUHJvcGVydHlFbmQpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAg
KiBjc3MvQ1NTUHJvcGVydHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHk6OmNz
c1RleHQpOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNz
cy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlTb3VyY2VEYXRhOjp0b1N0cmluZyk6CisgICAgICAgICogY3NzL0NTU1J1bGUuaDoKKyAgICAg
ICAgKiBjc3MvQ1NTU3R5bGVSdWxlLmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5jcHA6IAorICAgICAgICAoV2ViQ29yZTo6UnVsZVNldDo6flJ1bGVTZXQpOgorICAgICAgICAo
V2ViQ29yZTo6UnVsZVNldDo6YWRkUnVsZXNGcm9tU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6
UnVsZVNldDo6YWRkVHJhaXQpOgorICAgICAgICAoV2ViQ29yZTo6UnVsZVNldDo6Z2V0VHJhaXQp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlGcm9tU3R5bGVEZWNs
YXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseURlY2xh
cmF0aW9ucyk6CisgICAgICAgIFJlb3JkZXIgYXBwbHlEZWNsYXJhdGlvbnMgdG8gYWxsb3cgcmVj
dXJzaXZlIGRlc2NlbnQgb2YgQ1NTVHJhaXQgc3RydWN0dXJlcy4KKworICAgICAgICAqIGNzcy9D
U1NTdHlsZVNlbGVjdG9yLmg6CisgICAgICAgICogY3NzL0NTU1RyYWl0LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpDU1NUcmFpdDo6Q1NTVHJhaXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVHJhaXQ6OmNzc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVHJhaXQ6OnNldERlY2xh
cmF0aW9uKToKKyAgICAgICAgRGVmaW5lcyBhIHN1YmNsYXNzIG9mIENTU1J1bGUgdGhhdCBob2xk
cyB0cmFpdCBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIGNzcy9DU1NUcmFpdC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkNTU1RyYWl0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVHJhaXQ6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVHJhaXQ6OmlzVHJhaXQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTVHJhaXQ6OmdldE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVHJhaXQ6OmdldFN0eWxlKToKKyAgICAgICAgKiBjc3MvU3R5bGVCYXNlLmg6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZUJhc2U6OmlzVHJhaXQpOgorICAgICAgICAqIGNzcy9XZWJraXRNaXhp
blZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2Via2l0TWl4aW5WYWx1ZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYmtpdE1peGluVmFsdWU6Om1peGluTmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJraXRNaXhpblZhbHVlOjpjc3NUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OldlYmtpdE1peGluVmFsdWU6OldlYmtpdE1peGluVmFsdWUpOgorICAgICAgICBEZWZp
bmVzIGEgc3ViY2xhc3Mgb2YgQ1NTUHJpbWl0aXZlVmFsdWUgdGhhdCBob2xkcyBtaXhpbiByZXF1
ZXN0cy4KKworICAgICAgICAqIGNzcy9tYWtlcHJvcC5wbDogQWxsb3cgcHJvcGVydGllcyB3aXRo
ICJAIi1wcmVmaXhlZCBuYW1lcyB0byBleGlzdC4KKyAgICAgICAgKiBjc3MvdG9rZW5pemVyLmZs
ZXg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6OnBvcHVsYXRlT2JqZWN0V2l0aFN0eWxlUHJvcGVy
dGllcyk6CisgICAgICAgIEVuYWJsZXMgQC13ZWJraXQtbWl4aW4gZGVjbGFyYXRpb25zIHRvIGJl
IHRyZWF0ZWQgY29ycmVjdGx5IChubyBkZWxpbWl0aW5nICI6IiwgCisgICAgICAgIG11bHRpcGxl
IGFjdGl2ZSBtaXhpbnMgYWxsb3dlZCB3aXRoaW4gYSBzaW5nbGUgcnVsZSkuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ1NTTWl4aW4udGhhdC5zZXBhcmF0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNT
U01peGluKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wYXJzZVBheWxvYWQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5nZXQgcHJvcGVy
dHlUZXh0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2Vw
YXJhdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0
VmFsdWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3Rv
dHlwZS51cGRhdGVUaXRsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRy
ZWVFbGVtZW50LnByb3RvdHlwZSk6CisKIDIwMTEtMDMtMjAgIEJpbGwgQnVkZ2UgIDxiYnVkZ2VA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCmluZGV4IDI2ZmI2YjFhMGZkYjliZjMxN2JkZDRjYjEwOTI2ZTM3MTBkMDJkMDku
LmNkZTY2MTYxYjJmNjUxZTJmNzU1ODdlMjU0MGRmMWUwZTM5ZGRhYjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCkBAIC0xMDYxLDYgKzEwNjEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NU
aW1pbmdGdW5jdGlvblZhbHVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0NTU1RpbWluZ0Z1
bmN0aW9uVmFsdWUuaCBcCisJU291cmNlL1dlYkNvcmUvY3NzL0NTU1RyYWl0LmNwcCBcCisJU291
cmNlL1dlYkNvcmUvY3NzL0NTU1RyYWl0LmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbmlj
b2RlUmFuZ2VWYWx1ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbmljb2RlUmFuZ2VW
YWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5rbm93blJ1bGUuaCBcCkBAIC0xMTE1
LDYgKzExMTcsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NNYXRyaXguaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1RyYW5zZm9y
bVZhbHVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVl
LmggXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJraXRNaXhpblZhbHVlLmgKIAlTb3VyY2UvV2Vi
Q29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2
ZURPTU9iamVjdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IDQwNjRlMDU3YTI5Y2JiMTY3M2QyYWE5ZDc4Nzk3YzNjYTk5NjAzNGQuLjkwZjM5
NDhkMmY2NDI1MjE5NzJhNDAzNGE2YzQ3Zjg0YTkxYTUyMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTI0OTEsNiArMjQ5MSw4IEBACiAgICAgICAgICAgICAnY3NzL0NTU1N0eWxlU2hlZXQuaCcsCiAg
ICAgICAgICAgICAnY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwJywKICAgICAgICAgICAg
ICdjc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5oJywKKyAgICAgICAgICAgICdjc3MvQ1NTVHJh
aXQuY3BwJywKKyAgICAgICAgICAgICdjc3MvQ1NTVHJhaXQuaCcsCiAgICAgICAgICAgICAnY3Nz
L0NTU1VuaWNvZGVSYW5nZVZhbHVlLmNwcCcsCiAgICAgICAgICAgICAnY3NzL0NTU1VuaWNvZGVS
YW5nZVZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NVbmtub3duUnVsZS5oJywKQEAgLTI1
NDEsNiArMjU0Myw3IEBACiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU01hdHJpeC5jcHAnLAog
ICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NNYXRyaXguaCcsCiAgICAgICAgICAgICAnY3NzL1dl
YktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCcsCisgICAgICAgICAgICAnY3NzL1dlYmtpdE1peGlu
VmFsdWUuaCcsCiAgICAgICAgICAgICAnZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAnLAogICAgICAg
ICAgICAgJ2RvbS9BdHRyLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0F0dHJpYnV0ZS5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnBybwppbmRleCA1NGMwMDk5YTMwMWI1Nzg4MDEzMmVlMDAwMmE5MjQ4ZWEzZTViYWEz
Li45Njg1OTVmOGExNzAyOWI0MGE5NWZlN2U3MTA5MjI0NWFkNWM1ZDZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
bwpAQCAtNDE2LDYgKzQxNiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9DU1NTdHlsZVJ1bGUu
Y3BwIFwKICAgICBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgXAogICAgIGNzcy9DU1NTdHlsZVNo
ZWV0LmNwcCBcCisgICAgY3NzL0NTU1RyYWl0LmNwcCBcCiAgICAgY3NzL0NTU1RpbWluZ0Z1bmN0
aW9uVmFsdWUuY3BwIFwKICAgICBjc3MvQ1NTVW5pY29kZVJhbmdlVmFsdWUuY3BwIFwKICAgICBj
c3MvQ1NTVmFsdWVMaXN0LmNwcCBcCkBAIC0xMzczLDYgKzEzNzQsNyBAQCBIRUFERVJTICs9IFwK
ICAgICBjc3MvQ1NTU3R5bGVSdWxlLmggXAogICAgIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmggXAog
ICAgIGNzcy9DU1NTdHlsZVNoZWV0LmggXAorICAgIGNzcy9DU1NUcmFpdC5oIFwKICAgICBjc3Mv
Q1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5oIFwKICAgICBjc3MvQ1NTVW5pY29kZVJhbmdlVmFsdWUu
aCBcCiAgICAgY3NzL0NTU1ZhbHVlTGlzdC5oIFwKQEAgLTEzOTcsNiArMTM5OSw3IEBAIEhFQURF
UlMgKz0gXAogICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmggXAogICAgIGNzcy9XZWJL
aXRDU1NNYXRyaXguaCBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAorICAg
IGNzcy9XZWJraXRNaXhpblZhbHVlLmggXAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuaCBcCiAg
ICAgZG9tL0F0dHIuaCBcCiAgICAgZG9tL0F0dHJpYnV0ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNzNmZWYxM2RlZTA3MmQ1YzhkYzU2
MTNhMjUyOWFjOGQ5NmI2YjI1NC4uZWFlZjJjMGU2ZDQxOTU0MTBiZmIyNmZmYWFiOTFkNGFiMjU2
OWI3NCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTMxOTQ2LDYgKzMxOTQ2LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NUcmFpdC5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NUcmFpdC5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcQ1NTVW5pY29kZVJh
bmdlVmFsdWUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTMyMTgxLDYgKzMyMTg5LDEwIEBA
CiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCIKIAkJ
CQk+CiAJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFdlYmtp
dE1peGluVmFsdWUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVy
CiAJCQlOYW1lPSJyZW5kZXJpbmciCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzNiMWMzM2Q2NDBiMTFmZWE3M2YyNGI4YTAwMGJi
NTMxMzVhNWNkNy4uODYxMDY5MDQwM2VhYTMyY2IxMGJkZTdkYTBkNzc5ZTAyNzc2NzA3NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNDA3Miw2ICs0MDcyLDkgQEAKIAkJQUJEREZFN0EwQTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRl
ck1lbnVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBQkRERkU3NDBBNUM2RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuaCAqLzsgfTsKIAkJ
QUJGRTdFMTIwRDMyRkFGNjAwNjZGNEQyIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCRkU3RTEwMEQzMkZB
RjUwMDY2RjREMiAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgKi87IH07CiAJCUFCRkU3RTEz
MEQzMkZBRjYwMDY2RjREMiAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJGRTdFMTEwRDMyRkFGNTAwNjZGNEQy
IC8qIE1lZGlhQ29udHJvbEVsZW1lbnRzLmggKi87IH07CisJCUFDMTJBMDlDMTMzNkMxQkQwMDY1
NDNBMiAvKiBXZWJraXRNaXhpblZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBQzEyQTA5QjEzMzZDMUJEMDA2NTQzQTIgLyogV2Via2l0TWl4aW5W
YWx1ZS5oICovOyB9OworCQlBQ0Y5OEE1NDEyQkYyQjc2MDBGOTc3QUQgLyogQ1NTVHJhaXQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUNGOThBNTIx
MkJGMkI3NjAwRjk3N0FEIC8qIENTU1RyYWl0LmNwcCAqLzsgfTsKKwkJQUNGOThBNTUxMkJGMkI3
NjAwRjk3N0FEIC8qIENTU1RyYWl0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBQ0Y5OEE1MzEyQkYyQjc2MDBGOTc3QUQgLyogQ1NTVHJhaXQuaCAqLzsg
fTsKIAkJQURERjFBRDcxMjU3Q0Q5QTAwMDNBNzU5IC8qIFJlbmRlclNWR1BhdGguaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEREYxQUQ1MTI1N0NEOUEw
MDAzQTc1OSAvKiBSZW5kZXJTVkdQYXRoLmggKi87IH07CiAJCUIwMTQ5RTdEMTFBNEIyMTUwMDE5
NkE3QiAvKiBBc3luY0ltYWdlUmVzaXplci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMDE0OUU3OTExQTRCMjE1MDAxOTZBN0IgLyogQXN5bmNJbWFn
ZVJlc2l6ZXIuY3BwICovOyB9OwogCQlCMDE0OUU3RTExQTRCMjE1MDAxOTZBN0IgLyogQXN5bmNJ
bWFnZVJlc2l6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIwMTQ5RTdBMTFBNEIyMTUwMDE5NkE3QiAvKiBBc3luY0ltYWdlUmVzaXplci5oICovOyB9
OwpAQCAtMTAzMDUsNiArMTAzMDgsOSBAQAogCQlBQkRERkU3NDBBNUM2RTcwMDBBM0UxMUQgLyog
UmVuZGVyTWVudUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRl
ck1lbnVMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFCRkU3RTEwMEQzMkZB
RjUwMDY2RjREMiAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUFCRkU3RTExMEQzMkZBRjUwMDY2RjREMiAvKiBNZWRpYUNvbnRy
b2xFbGVtZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNvbnRy
b2xFbGVtZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQzEyQTA5QjEzMzZD
MUJEMDA2NTQzQTIgLyogV2Via2l0TWl4aW5WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJraXRNaXhpblZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUFDRjk4QTUyMTJCRjJCNzYwMEY5NzdBRCAvKiBDU1NUcmFpdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NUcmFpdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUFDRjk4QTUzMTJCRjJCNzYwMEY5NzdBRCAvKiBDU1NUcmFpdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NUcmFpdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBRERGMUFENDEyNTdDRDlBMDAwM0E3NTkgLyogUmVuZGVyU1ZHUGF0aC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdQYXRoLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURERjFBRDUxMjU3Q0Q5QTAwMDNBNzU5
IC8qIFJlbmRlclNWR1BhdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyU1ZHUGF0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMDE0OUU3OTExQTRC
MjE1MDAxOTZBN0IgLyogQXN5bmNJbWFnZVJlc2l6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXN5bmNJbWFnZVJlc2l6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTg3NzQsNiArMTg3ODAsOCBAQAogCQkJCTg1OEMzOTEwMEFBOEZGMDAw
MEIxODdBNCAvKiBDU1NTdHlsZVNoZWV0LmlkbCAqLywKIAkJCQlCQzgwQzk4NTBDRDI5NEVFMDBB
MEI3QjMgLyogQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5jcHAgKi8sCiAJCQkJQkM4MEM5ODYwQ0Qy
OTRFRTAwQTBCN0IzIC8qIENTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuaCAqLywKKwkJCQlBQ0Y5OEE1
MjEyQkYyQjc2MDBGOTc3QUQgLyogQ1NTVHJhaXQuY3BwICovLAorCQkJCUFDRjk4QTUzMTJCRjJC
NzYwMEY5NzdBRCAvKiBDU1NUcmFpdC5oICovLAogCQkJCTM3MUY1M0U4MEQyNzA0RjkwMEVDRTBE
NSAvKiBDU1NVbmljb2RlUmFuZ2VWYWx1ZS5jcHAgKi8sCiAJCQkJMzcxRjUzRTcwRDI3MDRGOTAw
RUNFMEQ1IC8qIENTU1VuaWNvZGVSYW5nZVZhbHVlLmggKi8sCiAJCQkJQTgwRTZDQ0UwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU1Vua25vd25SdWxlLmggKi8sCkBAIC0xODg1OSw2ICsxODg2Nyw3IEBA
CiAJCQkJQkM5QUREN0YwQ0M0MDkyMjAwMDk4QzRDIC8qIFdlYktpdENTU1RyYW5zZm9ybVZhbHVl
LmNwcCAqLywKIAkJCQlCQzlBREQyMjBDQzQwMzI2MDAwOThDNEMgLyogV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUuaCAqLywKIAkJCQkzMTYxMUU1NDBFMUM0RDRBMDBGNkE1NzkgLyogV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWUuaWRsICovLAorCQkJCUFDMTJBMDlCMTMzNkMxQkQwMDY1NDNBMiAvKiBX
ZWJraXRNaXhpblZhbHVlLmggKi8sCiAJCQkJNENERTU0RUMwRTU1Nzk3ODAwODlFMjZDIC8qIHdt
bC5jc3MgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNzczsKQEAgLTE5OTAxLDYgKzE5OTEwLDcgQEAK
IAkJCQlCQzc3MkI0MDBDNEVBOTFFMDA4MzI4NUYgLyogQ1NTU3R5bGVTZWxlY3Rvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQThFQTgwMDcwQTE5NTE2RTAwQThFRjVGIC8qIENTU1N0eWxlU2hlZXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDODBDOTg4MENEMjk0RUUwMEEwQjdCMyAvKiBDU1NUaW1p
bmdGdW5jdGlvblZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBQ0Y5OEE1NTEyQkYyQjc2MDBG
OTc3QUQgLyogQ1NTVHJhaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MUY1M0U5MEQyNzA0Rjkw
MEVDRTBENSAvKiBDU1NVbmljb2RlUmFuZ2VWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREQ3
Q0RGMjUwQTIzQ0Y5ODAwMDY5OTI4IC8qIENTU1Vua25vd25SdWxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODBFNkNFRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWUuaCBpbiBIZWFkZXJzICov
LApAQCAtMjI2NzksNiArMjI2ODksNyBAQAogCQkJCTMxOTQ2MjA0MTMwMjJCRjEwMDRCQjNGOCAv
KiBET01XZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTlFNjlCMzEz
Mjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MTlFNjlCNjEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQUMxMkEwOUMxMzM2QzFCRDAwNjU0M0EyIC8qIFdlYmtpdE1peGluVmFsdWUu
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpAQCAtMjMxOTYsNiArMjMyMDcsNyBAQAogCQkJCUJDNzcyQjNGMEM0
RUE5MUUwMDgzMjg1RiAvKiBDU1NTdHlsZVNlbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4RUE4MDA4MEExOTUxNkUwMEE4RUY1RiAvKiBDU1NTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDODBDOTg3MENEMjk0RUUwMEEwQjdCMyAvKiBDU1NUaW1pbmdGdW5jdGlvblZh
bHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFDRjk4QTU0MTJCRjJCNzYwMEY5NzdBRCAvKiBD
U1NUcmFpdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzFGNTNFQTBEMjcwNEY5MDBFQ0UwRDUg
LyogQ1NTVW5pY29kZVJhbmdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCQTc2Q0Ix
MUQyMEU1NzAwNEMyMDFDIC8qIENTU1ZhbHVlS2V5d29yZHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTgwRTZDRTQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlTGlzdC5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKaW5kZXggNDEzMjA3NTcwYTQzYmQyNTZmZjM3MThmOTM4ZDhiYzM2ZjJjYWQyMi4u
YjkyZTk2OTBkZDJiNzQ5MjZlNzg2ZjJiZTg3NjJlNjkxZjg4OWMwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTgxMSw2
ICs4MTEsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b246OmdldFByb3BlcnR5Q1NTVmFsdWUoaW50IHByb3BlcgogCiAgICAgc3dpdGNoIChzdGF0aWNf
Y2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wZXJ0eUlEKSkgewogICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5SW52YWxpZDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1peGluOgogICAgICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcjoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55CmluZGV4IDg2NTg2NzQzMzlmNGEwOTVlMjBkYzIyOGFjYWU1
ZDc2ZjYwNDgyZjcuLjA5NTA0NzQyMDFhZWE2NjJhYzQyMTI4OGE2YzJlZGEwOGY5ZGU0NjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyYW1tYXIueQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIk1lZGlh
UXVlcnlFeHAuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCIKICNpbmNsdWRl
ICJXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiCisjaW5jbHVkZSAiV2Via2l0TWl4aW5WYWx1ZS5o
IgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5j
bHVkZSA8c3RyaW5nLmg+CkBAIC0xNTcsNiArMTU4LDkgQEAgc3RhdGljIGludCBjc3N5eWxleChZ
WVNUWVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNlcikKICV0b2tlbiA8bWFyZ2luQm94PiBSSUdIVE1J
RERMRV9TWU0KICV0b2tlbiA8bWFyZ2luQm94PiBSSUdIVEJPVFRPTV9TWU0KIAorJXRva2VuIFdF
QktJVF9UUkFJVF9TWU0KKyV0b2tlbiBXRUJLSVRfTUlYSU5fU1lNCisKICV0b2tlbiBBVEtFWVdP
UkQKIAogJXRva2VuIElNUE9SVEFOVF9TWU0KQEAgLTIxMyw2ICsyMTcsNyBAQCBzdGF0aWMgaW50
IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCogcGFyc2VyKQogJXR5cGUgPHJ1bGVMaXN0
PiBibG9ja19ydWxlX2xpc3QgCiAldHlwZSA8cnVsZT4gYmxvY2tfcnVsZQogJXR5cGUgPHJ1bGU+
IGJsb2NrX3ZhbGlkX3J1bGUKKyV0eXBlIDxydWxlPiB3ZWJraXRfdHJhaXRfcnVsZQogCiAldHlw
ZSA8c3RyaW5nPiBtYXliZV9uc19wcmVmaXgKIApAQCAtMzM1LDYgKzM0MCwxMyBAQCB3ZWJraXRf
c2VsZWN0b3I6CiAgICAgfQogOwogCit3ZWJraXRfdHJhaXRfcnVsZToKKyAgICBXRUJLSVRfVFJB
SVRfU1lNIG1heWJlX3NwYWNlIElERU5UIG1heWJlX3NwYWNlICd7JyBtYXliZV9zcGFjZSBkZWNs
YXJhdGlvbl9saXN0ICd9JyB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENT
U1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgICQkID0gcC0+Y3JlYXRlV2Via2l0VHJhaXQoJDMp
OworICAgIH0KKzsKKwogbWF5YmVfc3BhY2U6CiAgICAgLyogZW1wdHkgKi8gJXByZWMgVU5JTVBP
UlRBTlRfVE9LCiAgIHwgbWF5YmVfc3BhY2UgV0hJVEVTUEFDRQpAQCAtMzgwLDkgKzM5Miw5IEBA
IGlnbm9yZWRfY2hhcnNldDoKIHJ1bGVfbGlzdDoKICAgIC8qIGVtcHR5ICovCiAgfCBydWxlX2xp
c3QgcnVsZSBtYXliZV9zZ21sIHsKLSAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NT
UGFyc2VyKj4ocGFyc2VyKTsKLSAgICAgaWYgKCQyICYmIHAtPm1fc3R5bGVTaGVldCkKLSAgICAg
ICAgIHAtPm1fc3R5bGVTaGVldC0+YXBwZW5kKCQyKTsKKyAgICBDU1NQYXJzZXIqIHAgPSBzdGF0
aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgIGlmICgkMiAmJiBwLT5tX3N0eWxlU2hl
ZXQpCisgICAgICAgIHAtPm1fc3R5bGVTaGVldC0+YXBwZW5kKCQyKTsKICB9CiAgOwogCkBAIC0z
OTAsNiArNDAyLDcgQEAgdmFsaWRfcnVsZToKICAgICBiZWZvcmVfcnVsZXNldCBydWxlc2V0IHsK
ICAgICAgICAgJCQgPSAkMjsKICAgICB9CisgIHwgd2Via2l0X3RyYWl0X3J1bGUKICAgfCBtZWRp
YQogICB8IHBhZ2UKICAgfCBmb250X2ZhY2UKQEAgLTEyNDIsNiArMTI1NSwxNCBAQCBkZWNsYXJh
dGlvbjoKICAgICAgICAgcC0+bWFya1Byb3BlcnR5RW5kKCQ1LCBpc1Byb3BlcnR5UGFyc2VkKTsK
ICAgICB9CiAgICAgfAorICAgIFdFQktJVF9NSVhJTl9TWU0gbWF5YmVfc3BhY2UgSURFTlQgbWF5
YmVfc3BhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIq
PihwYXJzZXIpOworICAgICAgICBTdHJpbmcgdmFsdWUgPSAkMzsKKyAgICAgICAgcC0+YWRkUHJv
cGVydHkoc3RhdGljX2Nhc3Q8aW50PihDU1NQcm9wZXJ0eVdlYmtpdE1peGluKSwgV2Via2l0TWl4
aW5WYWx1ZTo6Y3JlYXRlKHZhbHVlKSwgZmFsc2UpOworICAgICAgICAkJCA9IHRydWU7CisgICAg
ICAgIHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgdHJ1ZSk7CisgICAgfQorICAgIHwKICAgICBw
cm9wZXJ0eSBlcnJvciB7CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggZjNmMjZh
YTBlZjc1M2U5YTlkZmQ3ODBlMDA0MDY4NmRhYjI4NTdhMC4uZDdiOWYyNzVmZWFkMTJkMDM0MGYx
YmUxOGVhMDc3OWEyYzg3NTVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC05MCw3ICs5MCw4IEBAIENTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbihDU1NSdWxlKiBwYXJlbnQs
IGNvbnN0IENTCiAgICAgICAgIGlmIChjYW5kaWRhdGVzLmNvbnRhaW5zKHByb3BlcnR5LT5pZCgp
KSkgewogICAgICAgICAgICAgaWYgKCFpbXBvcnRhbnQgJiYgY2FuZGlkYXRlcy5nZXQocHJvcGVy
dHktPmlkKCkpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgcmVtb3Zl
UHJvcGVydHkocHJvcGVydHktPmlkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGlmIChwcm9wZXJ0
eS0+aWQoKSAhPSBDU1NQcm9wZXJ0eVdlYmtpdE1peGluKQorICAgICAgICAgICAgICAgIHJlbW92
ZVByb3BlcnR5KHByb3BlcnR5LT5pZCgpLCBmYWxzZSk7CiAgICAgICAgIH0KICAgICAgICAgbV9w
cm9wZXJ0aWVzLmFwcGVuZCgqcHJvcGVydHkpOwogICAgICAgICBjYW5kaWRhdGVzLnNldChwcm9w
ZXJ0eS0+aWQoKSwgaW1wb3J0YW50KTsKQEAgLTYzNiwxMSArNjM3LDEyIEBAIHZvaWQgQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb246OmFkZFBhcnNlZFByb3BlcnRpZXMoY29uc3QgQ1NTUHJvcGVy
dHkqIGNvbnN0KiBwCiAgICAgQVNTRVJUKCFtX2l0ZXJhdG9yQ291bnQpOwogICAgIAogICAgIG1f
cHJvcGVydGllcy5yZXNlcnZlQ2FwYWNpdHkobnVtUHJvcGVydGllcyk7Ci0gICAgCisKICAgICBm
b3IgKGludCBpID0gMDsgaSA8IG51bVByb3BlcnRpZXM7ICsraSkgewogICAgICAgICAvLyBPbmx5
IGFkZCBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBubyAhaW1wb3J0YW50IGNvdW50ZXJwYXJ0IHByZXNl
bnQKICAgICAgICAgaWYgKCFnZXRQcm9wZXJ0eVByaW9yaXR5KHByb3BlcnRpZXNbaV0tPmlkKCkp
IHx8IHByb3BlcnRpZXNbaV0tPmlzSW1wb3J0YW50KCkpIHsKLSAgICAgICAgICAgIHJlbW92ZVBy
b3BlcnR5KHByb3BlcnRpZXNbaV0tPmlkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGlmIChwcm9w
ZXJ0aWVzW2ldLT5pZCgpICE9IENTU1Byb3BlcnR5V2Via2l0TWl4aW4pCisgICAgICAgICAgICAg
ICAgcmVtb3ZlUHJvcGVydHkocHJvcGVydGllc1tpXS0+aWQoKSwgZmFsc2UpOwogICAgICAgICAg
ICAgQVNTRVJUKHByb3BlcnRpZXNbaV0pOwogICAgICAgICAgICAgbV9wcm9wZXJ0aWVzLmFwcGVu
ZCgqcHJvcGVydGllc1tpXSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5k
ZXggNTM3ZmNhYzU0YmM1MDk2ZGI0ZTZmYWFmZGNhNTk3ZjU3MDhiMmJkYi4uM2MyNDJhOGI3NDM2
OTI2YzY5NWRlYTQ2OWMzMTRmYjY5NjljYmY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
QEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJDU1NTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNT
U1N0eWxlUnVsZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJDU1NU
cmFpdC5oIgogI2luY2x1ZGUgIkNTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJD
U1NVbmljb2RlUmFuZ2VWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKQEAg
LTYwMjQsNiArNjAyNSwxNyBAQCBDU1NSdWxlKiBDU1NQYXJzZXI6OmNyZWF0ZVN0eWxlUnVsZShW
ZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+KiBzZWxlY3RvcgogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKK0NTU1J1bGUqIENTU1BhcnNlcjo6Y3JlYXRlV2Via2l0VHJhaXQoQ1NTUGFy
c2VyU3RyaW5nJiB0cmFpdE5hbWUpCit7CisgICAgQ1NTVHJhaXQqIHJlc3VsdCA9IDA7CisgICAg
UmVmUHRyPENTU1RyYWl0PiB0cmFpdCA9IENTU1RyYWl0OjpjcmVhdGUobV9zdHlsZVNoZWV0LCB0
cmFpdE5hbWUpOworICAgIHRyYWl0LT5zZXREZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbjo6Y3JlYXRlKHRyYWl0LmdldCgpLCBtX3BhcnNlZFByb3BlcnRpZXMsIG1fbnVtUGFy
c2VkUHJvcGVydGllcykpOworICAgIHJlc3VsdCA9IHRyYWl0LmdldCgpOworICAgIG1fcGFyc2Vk
U3R5bGVPYmplY3RzLmFwcGVuZCh0cmFpdC5yZWxlYXNlKCkpOworICAgIGNsZWFyUHJvcGVydGll
cygpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIENTU1J1bGUqIENTU1BhcnNlcjo6Y3JlYXRl
Rm9udEZhY2VSdWxlKCkKIHsKICAgICBtX2FsbG93SW1wb3J0UnVsZXMgPSBtX2FsbG93TmFtZXNw
YWNlRGVjbGFyYXRpb25zID0gZmFsc2U7CkBAIC02MjM4LDcgKzYyNTAsMTAgQEAgdm9pZCBDU1NQ
YXJzZXI6Om1hcmtQcm9wZXJ0eUVuZChib29sIGlzSW1wb3J0YW50Rm91bmQsIGJvb2wgaXNQcm9w
ZXJ0eVBhcnNlZCkKICAgICAgICAgICAgIHByb3BlcnR5U3RyaW5nID0gcHJvcGVydHlTdHJpbmcu
bGVmdChwcm9wZXJ0eVN0cmluZy5sZW5ndGgoKSAtIDEpOwogICAgICAgICBWZWN0b3I8U3RyaW5n
PiBwcm9wZXJ0eUNvbXBvbmVudHM7CiAgICAgICAgIHNpemVfdCBjb2xvbkluZGV4ID0gcHJvcGVy
dHlTdHJpbmcuZmluZCgiOiIpOwotICAgICAgICBBU1NFUlQoY29sb25JbmRleCAhPSBub3RGb3Vu
ZCk7CisgICAgICAgIGlmIChjb2xvbkluZGV4ID09IG5vdEZvdW5kKSB7CisgICAgICAgICAgICBj
b2xvbkluZGV4ID0gcHJvcGVydHlTdHJpbmcuZmluZCgiICIpOworICAgICAgICAgICAgQVNTRVJU
KHByb3BlcnR5U3RyaW5nLmxlZnQoY29sb25JbmRleCkuc3RyaXBXaGl0ZVNwYWNlKCkgPT0gU3Ry
aW5nKCJALXdlYmtpdC1taXhpbiIpKTsKKyAgICAgICAgfQogCiAgICAgICAgIFN0cmluZyBuYW1l
ID0gcHJvcGVydHlTdHJpbmcubGVmdChjb2xvbkluZGV4KS5zdHJpcFdoaXRlU3BhY2UoKTsKICAg
ICAgICAgU3RyaW5nIHZhbHVlID0gcHJvcGVydHlTdHJpbmcuc3Vic3RyaW5nKGNvbG9uSW5kZXgg
KyAxLCBwcm9wZXJ0eVN0cmluZy5sZW5ndGgoKSkuc3RyaXBXaGl0ZVNwYWNlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmgKaW5kZXggZjBlZmVlNWNlNGIzYjY4MDg1NzQwNWQ0YWU0NTg1YjFmYzgyZjk0
OC4uYTEwNWVjMzMxMGE4YjA5ZjNjYWFmOTI0YjkyNDA4OTc0ZTVjNGY2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaApAQCAtNDUsNiArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xh
c3MgQ1NTU2VsZWN0b3I7CiAgICAgY2xhc3MgQ1NTU3R5bGVSdWxlOwogICAgIGNsYXNzIENTU1N0
eWxlU2hlZXQ7CisgICAgY2xhc3MgQ1NTVHJhaXQ7CiAgICAgY2xhc3MgQ1NTVmFsdWU7CiAgICAg
Y2xhc3MgQ1NTVmFsdWVMaXN0OwogICAgIGNsYXNzIERvY3VtZW50OwpAQCAtMjA1LDYgKzIwNiw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzdGFydERlY2xhcmF0aW9uc0Zv
ck1hcmdpbkJveCgpOwogICAgICAgICB2b2lkIGVuZERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCgp
OwogCisgICAgICAgIENTU1J1bGUqIGNyZWF0ZVdlYmtpdFRyYWl0KENTU1BhcnNlclN0cmluZyYg
dHJhaXROYW1lKTsKKwogICAgICAgICBNZWRpYVF1ZXJ5RXhwKiBjcmVhdGVGbG9hdGluZ01lZGlh
UXVlcnlFeHAoY29uc3QgQXRvbWljU3RyaW5nJiwgQ1NTUGFyc2VyVmFsdWVMaXN0Kik7CiAgICAg
ICAgIFBhc3NPd25QdHI8TWVkaWFRdWVyeUV4cD4gc2lua0Zsb2F0aW5nTWVkaWFRdWVyeUV4cChN
ZWRpYVF1ZXJ5RXhwKik7CiAgICAgICAgIFZlY3RvcjxPd25QdHI8TWVkaWFRdWVyeUV4cD4gPiog
Y3JlYXRlRmxvYXRpbmdNZWRpYVF1ZXJ5RXhwTGlzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eS5jcHAKaW5kZXggMWUwNGRhNzMzMDMyMWRkMTVjMDRiM2FhOTA4MjY1ZGZiYjJiMTc3MC4uODcz
MDExZTEwNjllYTQzM2Y3MjM4ZDA1ZWJkODEwZjUyY2Q1NTg4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJvcGVydHkuY3BwCkBAIC0yOSw3ICsyOSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN0
cmluZyBDU1NQcm9wZXJ0eTo6Y3NzVGV4dCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZyhn
ZXRQcm9wZXJ0eU5hbWUoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4oaWQoKSkpKSArICI6ICIg
KyBtX3ZhbHVlLT5jc3NUZXh0KCkgKyAoaXNJbXBvcnRhbnQoKSA/ICIgIWltcG9ydGFudCIgOiAi
IikgKyAiOyAiOworICAgIENTU1Byb3BlcnR5SUQgcHJvcElEID0gc3RhdGljX2Nhc3Q8Q1NTUHJv
cGVydHlJRD4oaWQoKSk7CisgICAgU3RyaW5nIHNlcGFyYXRvcigiOiAiKTsKKyAgICBpZiAocHJv
cElEID09IENTU1Byb3BlcnR5V2Via2l0TWl4aW4pCisgICAgICAgIHNlcGFyYXRvciA9IFN0cmlu
ZygiICIpOworICAgIHJldHVybiBTdHJpbmcoZ2V0UHJvcGVydHlOYW1lKHByb3BJRCkpICsgc2Vw
YXJhdG9yICsgbV92YWx1ZS0+Y3NzVGV4dCgpICsgKGlzSW1wb3J0YW50KCkgPyAiICFpbXBvcnRh
bnQiIDogIiIpICsgIjsgIjsKIH0KIAogYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1Byb3BlcnR5
JiBhLCBjb25zdCBDU1NQcm9wZXJ0eSYgYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFt
ZXMuaW4KaW5kZXggM2ZkODQzZTQ3ODI2MGJkNGI1NWZiNDI2ZGNmMDc3NzI3NTA1MjZhYS4uNzEz
NjBiZmM3MzFlMzJlMGM5Y2M1OTM0N2QyNTA0M2VmNGVlYTQ3NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTI3MCw2ICsyNzAsNyBAQCB6LWluZGV4CiAtd2Via2l0
LW1heC1sb2dpY2FsLWhlaWdodAogLXdlYmtpdC1taW4tbG9naWNhbC13aWR0aAogLXdlYmtpdC1t
aW4tbG9naWNhbC1oZWlnaHQKK0Atd2Via2l0LW1peGluCiAtd2Via2l0LW5ic3AtbW9kZQogLXdl
YmtpdC1wYWRkaW5nLWFmdGVyCiAtd2Via2l0LXBhZGRpbmctYmVmb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwCmluZGV4IGViOWMyYzFmNjZjZGYwYzIz
YTU2YTg0ZmY2NjQ3OWU1ZWViYzgzYjYuLmVjYWRmNjQ0ZGMyYmY0ZDUxZWIxYmMwMTFhZmQyY2Nm
MjhmNzIwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJj
ZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEu
Y3BwCkBAIC04OSw3ICs4OSwxMCBAQCBTdHJpbmcgQ1NTUHJvcGVydHlTb3VyY2VEYXRhOjp0b1N0
cmluZygpIGNvbnN0CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAogICAgIFN0cmluZyByZXN1
bHQgPSBuYW1lOwotICAgIHJlc3VsdCArPSAiOiAiOworICAgIGlmIChyZXN1bHQgPT0gU3RyaW5n
KCJALXdlYmtpdC1taXhpbiIpKQorICAgICAgICByZXN1bHQgKz0gIiAiOworICAgIGVsc2UKKyAg
ICAgICAgcmVzdWx0ICs9ICI6ICI7CiAgICAgcmVzdWx0ICs9IHZhbHVlOwogICAgIGlmIChpbXBv
cnRhbnQpCiAgICAgICAgIHJlc3VsdCArPSBpbXBvcnRhbnRTdWZmaXg7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGUu
aAppbmRleCA0ZDJkZThhYTkyMWQwYWJmNjhkYTI4YTY1MTkyNzZlYjYwZjA2ODI5Li5mNTZiN2Uz
ZjIzMGFhYjc4MjdiZWE2YmJhNTcxODdjMzU4NzA2MjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlLmgKQEAg
LTQ4LDcgKzQ4LDggQEAgcHVibGljOgogICAgICAgICBQQUdFX1JVTEUsCiAgICAgICAgIC8vIDcg
dXNlZCB0byBiZSBWQVJJQUJMRVNfUlVMRQogICAgICAgICBXRUJLSVRfS0VZRlJBTUVTX1JVTEUg
PSA4LAotICAgICAgICBXRUJLSVRfS0VZRlJBTUVfUlVMRQorICAgICAgICBXRUJLSVRfS0VZRlJB
TUVfUlVMRSwKKyAgICAgICAgV0VCS0lUX1RSQUlUX1JVTEUKICAgICB9OwogCiAgICAgLy8gRklY
TUU6IENoYW5nZSB0byByZXR1cm4gQ1NTUnVsZVR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1
bGUuY3BwCmluZGV4IGZhZjYwYjA1NzJlZGQyYmI4ZjlmNzNkNzJmZjg3MDhlN2M2MTdkODEuLjUy
ODk3ZGJjMDM0OTQxN2NiYmY2M2IzM2E1Yjk0NzAyOWY4YTBiYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVJ1bGUuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCiAKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ1NTU3R5bGVSdWxlOjpDU1NTdHlsZVJ1bGUoQ1NT
U3R5bGVTaGVldCogcGFyZW50LCBpbnQgc291cmNlTGluZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcAppbmRleCAyYTBiOTI2OTRjYjdhMzIzNGQ1ZTc3NTRhMjRmMDkxNjM0
MDUzM2NhLi5kOTkxYjMyNDFhYTcyMDA5Nzk5ODEwY2RiMDViODM1ODZjMDI5NzE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5j
bHVkZSAiQ1NTU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1
ZGUgIkNTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NUcmFpdC5oIgogI2lu
Y2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVk
ZSAiQ291bnRlci5oIgpAQCAtOTYsNiArOTcsNyBAQAogI2luY2x1ZGUgIldlYktpdENTU0tleWZy
YW1lUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lc1J1bGUuaCIKICNpbmNsdWRl
ICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgorI2luY2x1ZGUgIldlYmtpdE1peGluVmFsdWUu
aCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0zOTksNiArNDAxLDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBhZGRTdHlsZVJ1bGUoQ1NTU3R5bGVSdWxlKiBpdGVtKTsKICAgICB2b2lkIGFkZFJ1
bGUoQ1NTU3R5bGVSdWxlKiBydWxlLCBDU1NTZWxlY3Rvciogc2VsKTsKKyAgICB2b2lkIGFkZFRy
YWl0KENTU1RyYWl0Kik7CiAgICAgdm9pZCBhZGRQYWdlUnVsZShDU1NTdHlsZVJ1bGUqIHJ1bGUs
IENTU1NlbGVjdG9yKiBzZWwpOwogICAgIHZvaWQgYWRkVG9SdWxlU2V0KEF0b21pY1N0cmluZ0lt
cGwqIGtleSwgQXRvbVJ1bGVNYXAmIG1hcCwKICAgICAgICAgICAgICAgICAgICAgICBDU1NTdHls
ZVJ1bGUqIHJ1bGUsIENTU1NlbGVjdG9yKiBzZWwpOwpAQCAtNDEzLDYgKzQxNiw3IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBWZWN0b3I8UnVsZURhdGE+KiBnZXRQc2V1ZG9SdWxlcyhBdG9taWNTdHJp
bmdJbXBsKiBrZXkpIGNvbnN0IHsgcmV0dXJuIG1fcHNldWRvUnVsZXMuZ2V0KGtleSk7IH0KICAg
ICBjb25zdCBWZWN0b3I8UnVsZURhdGE+KiBnZXRVbml2ZXJzYWxSdWxlcygpIGNvbnN0IHsgcmV0
dXJuICZtX3VuaXZlcnNhbFJ1bGVzOyB9CiAgICAgY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiogZ2V0
UGFnZVJ1bGVzKCkgY29uc3QgeyByZXR1cm4gJm1fcGFnZVJ1bGVzOyB9CisgICAgTGlzdEhhc2hT
ZXQ8Q1NTVHJhaXQqPiogZ2V0VHJhaXQoQXRvbWljU3RyaW5nSW1wbCogbmFtZSk7CiAgICAgCiBw
dWJsaWM6CiAgICAgQXRvbVJ1bGVNYXAgbV9pZFJ1bGVzOwpAQCAtNDIxLDYgKzQyNSw3IEBAIHB1
YmxpYzoKICAgICBBdG9tUnVsZU1hcCBtX3BzZXVkb1J1bGVzOwogICAgIFZlY3RvcjxSdWxlRGF0
YT4gbV91bml2ZXJzYWxSdWxlczsKICAgICBWZWN0b3I8UnVsZURhdGE+IG1fcGFnZVJ1bGVzOwor
ICAgIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIExpc3RIYXNoU2V0PENTU1RyYWl0Kj4qID4g
bV90cmFpdHM7CiAgICAgdW5zaWduZWQgbV9ydWxlQ291bnQ7CiAgICAgYm9vbCBtX2F1dG9TaHJp
bmtUb0ZpdEVuYWJsZWQ7CiB9OwpAQCAtMzE3Nyw2ICszMTgyLDcgQEAgUnVsZVNldDo6flJ1bGVT
ZXQoKQogICAgIGRlbGV0ZUFsbFZhbHVlcyhtX2NsYXNzUnVsZXMpOwogICAgIGRlbGV0ZUFsbFZh
bHVlcyhtX3BzZXVkb1J1bGVzKTsKICAgICBkZWxldGVBbGxWYWx1ZXMobV90YWdSdWxlcyk7Cisg
ICAgZGVsZXRlQWxsVmFsdWVzKG1fdHJhaXRzKTsKIH0KIAogCkBAIC0zMjY4LDEzICszMjc0LDI4
IEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZXNGcm9tU2hlZXQoQ1NTU3R5bGVTaGVldCogc2hlZXQs
IGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImCiAgICAgICAgICAgICAvLyBBZGQgdGhpcyBmb250
IGZhY2UgdG8gb3VyIHNldC4KICAgICAgICAgICAgIGNvbnN0IENTU0ZvbnRGYWNlUnVsZSogZm9u
dEZhY2VSdWxlID0gc3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlKj4oaXRlbSk7CiAgICAgICAg
ICAgICBzdHlsZVNlbGVjdG9yLT5mb250U2VsZWN0b3IoKS0+YWRkRm9udEZhY2VSdWxlKGZvbnRG
YWNlUnVsZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoaXRlbS0+aXNLZXlmcmFtZXNSdWxlKCkpCisg
ICAgICAgIH0gZWxzZSBpZiAoaXRlbS0+aXNLZXlmcmFtZXNSdWxlKCkpIHsKICAgICAgICAgICAg
IHN0eWxlU2VsZWN0b3ItPmFkZEtleWZyYW1lU3R5bGUoc3RhdGljX2Nhc3Q8V2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZSo+KGl0ZW0pKTsKKyAgICAgICAgfSBlbHNlIGlmIChpdGVtLT5pc1RyYWl0KCkp
CisgICAgICAgICAgICBhZGRUcmFpdChzdGF0aWNfY2FzdDxDU1NUcmFpdCo+KGl0ZW0pKTsKICAg
ICB9CiAgICAgaWYgKG1fYXV0b1Nocmlua1RvRml0RW5hYmxlZCkKICAgICAgICAgc2hyaW5rVG9G
aXQoKTsKIH0KIAordm9pZCBSdWxlU2V0OjphZGRUcmFpdChDU1NUcmFpdCogdHJhaXQpIAorewor
ICAgIEF0b21pY1N0cmluZyBuYW1lID0gdHJhaXQtPmdldE5hbWUoKTsKKyAgICBpZiAoIW1fdHJh
aXRzLmdldChuYW1lLmltcGwoKSkpCisgICAgICAgIG1fdHJhaXRzLnNldChuYW1lLmltcGwoKSwg
bmV3IExpc3RIYXNoU2V0PENTU1RyYWl0Kj4oKSk7CisgICAgbV90cmFpdHMuZ2V0KG5hbWUuaW1w
bCgpKS0+YWRkKHRyYWl0KTsKK30KKworTGlzdEhhc2hTZXQ8Q1NTVHJhaXQqPiogUnVsZVNldDo6
Z2V0VHJhaXQoQXRvbWljU3RyaW5nSW1wbCogbmFtZSkKK3sKKyAgICByZXR1cm4gbV90cmFpdHMu
Z2V0KG5hbWUpOworfQorCiB2b2lkIFJ1bGVTZXQ6OmFkZFN0eWxlUnVsZShDU1NTdHlsZVJ1bGUq
IHJ1bGUpCiB7CiAgICAgaWYgKHJ1bGUtPmlzUGFnZVJ1bGUoKSkgewpAQCAtMzQwNyw0MSArMzQy
OCw2MSBAQCBzdGF0aWMgTGVuZ3RoIGNvbnZlcnRUb0Zsb2F0TGVuZ3RoKENTU1ByaW1pdGl2ZVZh
bHVlKiBwcmltaXRpdmVWYWx1ZSwgUmVuZGVyU3R5bAogfQogCiB0ZW1wbGF0ZSA8Ym9vbCBhcHBs
eUZpcnN0Pgotdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseURlY2xhcmF0aW9ucyhib29sIGlz
SW1wb3J0YW50LCBpbnQgc3RhcnRJbmRleCwgaW50IGVuZEluZGV4KQordm9pZCBDU1NTdHlsZVNl
bGVjdG9yOjphcHBseUZyb21TdHlsZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uICpkZWNsYXJhdGlvbiwgYm9vbCBpc0ltcG9ydGFudCkKIHsKLSAgICBpZiAoc3RhcnRJbmRl
eCA9PSAtMSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZm9yIChpbnQgaSA9IHN0YXJ0SW5kZXg7
IGkgPD0gZW5kSW5kZXg7IGkrKykgewotICAgICAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
biogZGVjbCA9IG1fbWF0Y2hlZERlY2xzW2ldOwotICAgICAgICBDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gZGVjbC0+ZW5kKCk7Ci0gICAgICAgIGZvciAo
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZGVjbC0+YmVn
aW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgICAgICBjb25zdCBDU1NQcm9wZXJ0eSYg
Y3VycmVudCA9ICppdDsKLSAgICAgICAgICAgIGlmIChpc0ltcG9ydGFudCA9PSBjdXJyZW50Lmlz
SW1wb3J0YW50KCkpIHsKLSAgICAgICAgICAgICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50Lmlk
KCk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoYXBwbHlGaXJzdCkgewotICAgICAgICAgICAgICAg
ICAgICBDT01QSUxFX0FTU0VSVChmaXJzdENTU1Byb3BlcnR5ID09IENTU1Byb3BlcnR5Q29sb3Is
IENTU19jb2xvcl9pc19maXJzdF9wcm9wZXJ0eSk7Ci0gICAgICAgICAgICAgICAgICAgIENPTVBJ
TEVfQVNTRVJUKENTU1Byb3BlcnR5Wm9vbSA9PSBDU1NQcm9wZXJ0eUNvbG9yICsgMTQsIENTU196
b29tX2lzX2VuZF9vZl9maXJzdF9wcm9wX3JhbmdlKTsKLSAgICAgICAgICAgICAgICAgICAgQ09N
UElMRV9BU1NFUlQoQ1NTUHJvcGVydHlMaW5lSGVpZ2h0ID09IENTU1Byb3BlcnR5Wm9vbSArIDEs
IENTU19saW5lX2hlaWdodF9pc19hZnRlcl96b29tKTsKLQotICAgICAgICAgICAgICAgICAgICAv
LyBnaXZlIHNwZWNpYWwgcHJpb3JpdHkgdG8gZm9udC14eHgsIGNvbG9yIHByb3BlcnRpZXMsIGV0
YwotICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHkgPD0gQ1NTUHJvcGVydHlMaW5lSGVp
Z2h0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhcHBseSBsaW5lLWhlaWdodCBs
YXRlcgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5ID09IENTU1Byb3BlcnR5
TGluZUhlaWdodCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2xpbmVIZWlnaHRWYWx1
ZSA9IGN1cnJlbnQudmFsdWUoKTsgCi0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGx5UHJvcGVydHkoY3VycmVudC5pZCgpLCBjdXJy
ZW50LnZhbHVlKCkpOworICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjb25zdF9pdGVy
YXRvciBlbmQgPSBkZWNsYXJhdGlvbi0+ZW5kKCk7CisgICAgZm9yIChDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBkZWNsYXJhdGlvbi0+YmVnaW4oKTsgaXQg
IT0gZW5kOyArK2l0KSB7CisgICAgICAgIGNvbnN0IENTU1Byb3BlcnR5JiBjdXJyZW50ID0gKml0
OworICAgICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50LmlkKCk7CisgICAgICAgIAorICAgICAg
ICBpZiAocHJvcGVydHkgPT0gQ1NTUHJvcGVydHlXZWJraXRNaXhpbikgeworICAgICAgICAgICAg
aWYgKGN1cnJlbnQudmFsdWUoKS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CisgICAgICAgICAgICAg
ICAgV2Via2l0TWl4aW5WYWx1ZSogdmFsdWUgPSBzdGF0aWNfY2FzdDxXZWJraXRNaXhpblZhbHVl
Kj4oY3VycmVudC52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBMaXN0SGFzaFNldDxDU1NUcmFp
dCo+KiB0cmFpdHMgPSBtX2F1dGhvclN0eWxlLmdldCgpLT5nZXRUcmFpdChzdGF0aWNfY2FzdDxB
dG9taWNTdHJpbmc+KHZhbHVlLT5taXhpbk5hbWUoKSkuaW1wbCgpKTsKKyAgICAgICAgICAgICAg
ICBpZiAodHJhaXRzKSB7CisgICAgICAgICAgICAgICAgICAgIExpc3RIYXNoU2V0PENTU1RyYWl0
Kj46Oml0ZXJhdG9yIGVuZCA9IHRyYWl0cy0+ZW5kKCk7CisgICAgICAgICAgICAgICAgICAgIGZv
ciAoTGlzdEhhc2hTZXQ8Q1NTVHJhaXQqPjo6aXRlcmF0b3IgaXQgPSB0cmFpdHMtPmJlZ2luKCk7
IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24qIHN0eWxlID0gKCppdCktPmdldFN0eWxlKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBhcHBseUZyb21TdHlsZURlY2xhcmF0aW9uPGFwcGx5Rmlyc3Q+KHN0eWxlLCBp
c0ltcG9ydGFudCk7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHkgPiBDU1NQcm9wZXJ0eUxpbmVI
ZWlnaHQpCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChpc0ltcG9ydGFudCA9PSBj
dXJyZW50LmlzSW1wb3J0YW50KCkpIHsKKworICAgICAgICAgICAgaWYgKGFwcGx5Rmlyc3QpIHsK
KyAgICAgICAgICAgICAgICBDT01QSUxFX0FTU0VSVChmaXJzdENTU1Byb3BlcnR5ID09IENTU1By
b3BlcnR5Q29sb3IsIENTU19jb2xvcl9pc19maXJzdF9wcm9wZXJ0eSk7CisgICAgICAgICAgICAg
ICAgQ09NUElMRV9BU1NFUlQoQ1NTUHJvcGVydHlab29tID09IENTU1Byb3BlcnR5Q29sb3IgKyAx
NCwgQ1NTX3pvb21faXNfZW5kX29mX2ZpcnN0X3Byb3BfcmFuZ2UpOworICAgICAgICAgICAgICAg
IENPTVBJTEVfQVNTRVJUKENTU1Byb3BlcnR5TGluZUhlaWdodCA9PSBDU1NQcm9wZXJ0eVpvb20g
KyAxLCBDU1NfbGluZV9oZWlnaHRfaXNfYWZ0ZXJfem9vbSk7CisKKyAgICAgICAgICAgICAgICAv
LyBnaXZlIHNwZWNpYWwgcHJpb3JpdHkgdG8gZm9udC14eHgsIGNvbG9yIHByb3BlcnRpZXMsIGV0
YworICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eSA8PSBDU1NQcm9wZXJ0eUxpbmVIZWlnaHQp
IHsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgYXBwbHkgbGluZS1oZWlnaHQgbGF0ZXIKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5ID09IENTU1Byb3BlcnR5TGluZUhlaWdodCkK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGluZUhlaWdodFZhbHVlID0gY3VycmVudC52YWx1
ZSgpOyAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSAKICAgICAgICAgICAgICAgICAgICAgICAg
IGFwcGx5UHJvcGVydHkoY3VycmVudC5pZCgpLCBjdXJyZW50LnZhbHVlKCkpOwogICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHByb3Bl
cnR5ID4gQ1NTUHJvcGVydHlMaW5lSGVpZ2h0KQorICAgICAgICAgICAgICAgICAgICBhcHBseVBy
b3BlcnR5KGN1cnJlbnQuaWQoKSwgY3VycmVudC52YWx1ZSgpKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIH0KIH0KIAordGVtcGxhdGUgPGJvb2wgYXBwbHlGaXJzdD4KK3ZvaWQgQ1NT
U3R5bGVTZWxlY3Rvcjo6YXBwbHlEZWNsYXJhdGlvbnMoYm9vbCBpc0ltcG9ydGFudCwgaW50IHN0
YXJ0SW5kZXgsIGludCBlbmRJbmRleCkKK3sKKyAgICBpZiAoc3RhcnRJbmRleCA9PSAtMSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgZm9yIChpbnQgaSA9IHN0YXJ0SW5kZXg7IGkgPD0gZW5kSW5k
ZXg7IGkrKykKKyAgICAgICAgYXBwbHlGcm9tU3R5bGVEZWNsYXJhdGlvbjxhcHBseUZpcnN0Piht
X21hdGNoZWREZWNsc1tpXSwgaXNJbXBvcnRhbnQpOworfQorCiB2b2lkIENTU1N0eWxlU2VsZWN0
b3I6Om1hdGNoUGFnZVJ1bGVzKFJ1bGVTZXQqIHJ1bGVzLCBib29sIGlzTGVmdFBhZ2UsIGJvb2wg
aXNGaXJzdFBhZ2UsIGNvbnN0IFN0cmluZyYgcGFnZU5hbWUpCiB7CiAgICAgbV9tYXRjaGVkUnVs
ZXMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCmluZGV4IGE2MTgz
MTQ3MGE5NTY2ZTI5ZmVhZDhiMGJhOTcwYWMwOTc0N2Q0ZDMuLjA5OWYzYWUwYjU5NWVhMmYwZDE0
YzYyY2IzNTcxZmE4ODNkNDBhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
aApAQCAtMjE2LDYgKzIxNiw5IEBAIHB1YmxpYzoKICAgICAgICAgdGVtcGxhdGUgPGJvb2wgZmly
c3RQYXNzPgogICAgICAgICB2b2lkIGFwcGx5RGVjbGFyYXRpb25zKGJvb2wgaW1wb3J0YW50LCBp
bnQgc3RhcnRJbmRleCwgaW50IGVuZEluZGV4KTsKIAorICAgICAgICB0ZW1wbGF0ZSA8Ym9vbCBm
aXJzdFBhc3M+CisgICAgICAgIHZvaWQgYXBwbHlGcm9tU3R5bGVEZWNsYXJhdGlvbihDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbiosIGJvb2wgaW1wb3J0YW50KTsKKwogICAgICAgICB2b2lkIG1h
dGNoUGFnZVJ1bGVzKFJ1bGVTZXQqLCBib29sIGlzTGVmdFBhZ2UsIGJvb2wgaXNGaXJzdFBhZ2Us
IGNvbnN0IFN0cmluZyYgcGFnZU5hbWUpOwogICAgICAgICB2b2lkIG1hdGNoUGFnZVJ1bGVzRm9y
TGlzdChjb25zdCBWZWN0b3I8UnVsZURhdGE+KiwgYm9vbCBpc0xlZnRQYWdlLCBib29sIGlzRmly
c3RQYWdlLCBjb25zdCBTdHJpbmcmIHBhZ2VOYW1lKTsKICAgICAgICAgYm9vbCBpc0xlZnRQYWdl
KGludCBwYWdlSW5kZXgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1RyYWl0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUcmFpdC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjNjMThkOTJiYWY3NGE0YzQyNTA0YWFjYzQ0NDViYTE3MTQ0NzY4MQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUcmFpdC5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoK
KyAqIChDKSAyMDEwIExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisgKiAoQykgMjAwMi0yMDAz
IERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDAyLCAy
MDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkNTU1RyYWl0LmgiCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ1NTVHJhaXQ6OkNTU1RyYWl0KENT
U1N0eWxlU2hlZXQqIHBhcmVudCwgQ1NTUGFyc2VyU3RyaW5nJiBuYW1lKSAKKyAgICA6IENTU1J1
bGUocGFyZW50KQorICAgICwgbV9uYW1lKG5hbWUpCit7Cit9CisKK1N0cmluZyBDU1NUcmFpdDo6
Y3NzVGV4dCgpIGNvbnN0Cit7CisgICAgU3RyaW5nIHJlc3VsdCA9ICJALXdlYmtpdC10cmFpdCAi
OworCisgICAgcmVzdWx0ICs9IG1fbmFtZTsKKyAgICByZXN1bHQgKz0gIiB7ICI7CisgICAgcmVz
dWx0ICs9IG1fc3R5bGUtPmNzc1RleHQoKTsKKyAgICByZXN1bHQgKz0gIn0iOworCisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKwordm9pZCBDU1NUcmFpdDo6c2V0RGVjbGFyYXRpb24oUGFzc1JlZlB0
cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGUpCit7CisgICAgbV9zdHlsZSA9IHN0
eWxlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVHJhaXQuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUcmFpdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmNDliNDdlNDVjMTE0
MTEzMjNhYTI2NjdjNWE1NGU2MWEwMzFiYTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVHJhaXQuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogKEMpIDE5OTktMjAw
MyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorICogKEMpIDIwMDItMjAwMyBEaXJrIE11ZWxs
ZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNiwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgQ1NTVHJhaXRfaAorI2RlZmlu
ZSBDU1NUcmFpdF9oCisKKyNpbmNsdWRlICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIgor
I2luY2x1ZGUgIkNTU1BhcnNlclZhbHVlcy5oIgorI2luY2x1ZGUgIkNTU1J1bGUuaCIKKyNpbmNs
dWRlICJDU1NTdHlsZVNoZWV0LmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDU1NU
cmFpdCA6IHB1YmxpYyBDU1NSdWxlIHsKKyBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
Q1NTVHJhaXQ+IGNyZWF0ZShDU1NTdHlsZVNoZWV0KiBwYXJlbnQsIENTU1BhcnNlclN0cmluZyYg
bmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NTVHJhaXQocGFyZW50
LCBuYW1lKSk7CisgICAgfQorCisgICAgdm9pZCBzZXREZWNsYXJhdGlvbihQYXNzUmVmUHRyPENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uPik7CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0
IHR5cGUoKSBjb25zdCB7cmV0dXJuIFdFQktJVF9UUkFJVF9SVUxFO30KKyAgICB2aXJ0dWFsIFN0
cmluZyBjc3NUZXh0KCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNUcmFpdCgpIHtyZXR1
cm4gdHJ1ZTt9CisKKyAgICBTdHJpbmcgZ2V0TmFtZSgpIHtyZXR1cm4gbV9uYW1lO30KKyAgICBD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZ2V0U3R5bGUoKSB7cmV0dXJuIG1fc3R5bGUuZ2V0
KCk7fQorCitwcm90ZWN0ZWQ6CisgICAgQ1NTVHJhaXQoQ1NTU3R5bGVTaGVldCogcGFyZW50LCBD
U1NQYXJzZXJTdHJpbmcmIG5hbWUpOworCitwcml2YXRlOgorICAgIFN0cmluZyBtX25hbWU7Cisg
ICAgUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBtX3N0eWxlOworfTsKKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJhc2UuaAppbmRleCA2M2M2NzFlMGFiOGI3MzY0NThkNWUz
MWMwNzM2OGNiNzhlNDJhNDUxLi40MmU3MDc2MDkzM2Y1ZDFmYjFkMTQ0NmZmNTBjZDc2Y2JjMjUy
MGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlQmFzZS5oCkBAIC01OSw2ICs1OSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIGlzU3R5bGVSdWxlKCkgeyByZXR1cm4gZmFs
c2U7IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzU3R5bGVTaGVldCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1hTTFN0eWxlU2hlZXQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNUcmFpdCgpIHsgcmV0dXJu
IGZhbHNlOyB9CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2Via2l0TWl4aW5WYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYmtpdE1peGlu
VmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kNGRlZTRlNGEzZDk3N2IzYTVhMzc2YmQ0YzQ0ZjlhNzVkYjky
OTg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYmtpdE1peGluVmFs
dWUuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogKEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChr
bm9sbEBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXZWJraXRNaXhpblZhbHVlX2gK
KyNkZWZpbmUgV2Via2l0TWl4aW5WYWx1ZV9oCisKKyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1
ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgV2Via2l0TWl4aW5WYWx1ZSA6IHB1YmxpYyBDU1NQcmltaXRpdmVWYWx1ZSB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2Via2l0TWl4aW5WYWx1ZT4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgbWl4aW5OYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBXZWJraXRNaXhpblZhbHVlKG1peGluTmFtZSkpOworICAgIH0KKworICAgIGNvbnN0IFN0cmlu
ZyBtaXhpbk5hbWUoKSBjb25zdCB7IHJldHVybiBtX21peGluTmFtZTsgfQorCisgICAgdmlydHVh
bCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIHF1b3RlQ1NTU3RyaW5nSWZOZWVkZWQo
bV9taXhpbk5hbWUpO30KKworcHJpdmF0ZToKKyAgICBXZWJraXRNaXhpblZhbHVlKGNvbnN0IFN0
cmluZyYgbWl4aW5OYW1lKQorICAgICAgICA6IENTU1ByaW1pdGl2ZVZhbHVlKFN0cmluZygpLCBD
U1NfU1RSSU5HKQorICAgICAgICAsIG1fbWl4aW5OYW1lKG1peGluTmFtZSkgeyB9CisKKyAgICBT
dHJpbmcgbV9taXhpbk5hbWU7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9tYWtlcHJvcC5wbAppbmRleCBkMzk0NzM5YjI1MzU2NGJiOGZmZDdmMmYyZGNkYmJlZTQ0NmE1
YjBlLi4zOTdiMmE4MjQ4NzA2Nzk0ODg1M2U3ZDEwYTIzNjRhNmY2MzIzOGRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L21ha2Vwcm9wLnBsCkBAIC02MSw3ICs2MSw3IEBAIEVPRgogCiBmb3JlYWNoIG15ICRuYW1lIChA
bmFtZXMpIHsKICAgbXkgJGlkID0gJG5hbWU7Ci0gICRpZCA9fiBzLyheW14tXSl8LSguKS91Yygk
MXx8JDIpL2dlOworICAkaWQgPX4gcy9AfCheW14tXSl8LSguKS91YygkMXx8JDIpL2dlOwogICBw
cmludCBHUEVSRiAkbmFtZSAuICIsIENTU1Byb3BlcnR5IiAuICRpZCAuICJcbiI7CiB9CiAKQEAg
LTEwNSw3ICsxMDUsNyBAQCBteSAkaSA9IDEwMDE7CiBteSAkbWF4TGVuID0gMDsKIGZvcmVhY2gg
bXkgJG5hbWUgKEBuYW1lcykgewogICBteSAkaWQgPSAkbmFtZTsKLSAgJGlkID1+IHMvKF5bXi1d
KXwtKC4pL3VjKCQxfHwkMikvZ2U7CisgICRpZCA9fiBzL0B8KF5bXi1dKXwtKC4pL3VjKCQxfHwk
MikvZ2U7CiAgIHByaW50IEhFQURFUiAiICAgIENTU1Byb3BlcnR5IiAuICRpZCAuICIgPSAiIC4g
JGkgLiAiLFxuIjsKICAgJGkgPSAkaSArIDE7CiAgIGlmIChsZW5ndGgoJG5hbWUpID4gJG1heExl
bikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4IGIvU291
cmNlL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4CmluZGV4IGViMThjYjkwYjRjMGJjZDFiZjQz
OWFmMmEyYTNmODQzNjNhMDU2OTkuLjBiNzcwMTRiZmM4ZDJhNWE3OTVmYWU2MDdhNzFjYmI1MzVk
ZDM3MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgKQEAgLTc5LDYgKzc5LDkgQEAgbnRo
ICAgICAgICAgICAgIFtcKy1dP3tpbnRudW19Km4oW1x0XHJcbiBdKltcKy1dW1x0XHJcbiBdKntp
bnRudW19KT8KICJALXdlYmtpdC1rZXlmcmFtZXMiICAgIHt5eVRvayA9IFdFQktJVF9LRVlGUkFN
RVNfU1lNOyByZXR1cm4geXlUb2s7IH0KICJALXdlYmtpdC1rZXlmcmFtZS1ydWxlIiB7eXlUb2sg
PSBXRUJLSVRfS0VZRlJBTUVfUlVMRV9TWU07IHJldHVybiB5eVRvazsgfQogCisiQC13ZWJraXQt
dHJhaXQiICAgICAgICB7eXlUb2sgPSBXRUJLSVRfVFJBSVRfU1lNOyByZXR1cm4geXlUb2s7IH0K
KyJALXdlYmtpdC1taXhpbiIgICAgICAgIHt5eVRvayA9IFdFQktJVF9NSVhJTl9TWU07IHJldHVy
biB5eVRvazsgfQorCiAiQCJ7aWRlbnR9ICAgICAgICAgICAgICB7eXlUb2sgPSBBVEtFWVdPUkQ7
IHJldHVybiB5eVRvazsgfQogCiAiISJ7d30iaW1wb3J0YW50IiAgICAgICB7eXlUb2sgPSBJTVBP
UlRBTlRfU1lNOyByZXR1cm4geXlUb2s7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCmluZGV4IDc3Y2NkZTAxNGE2NDA3MDkxYWMyMjRjNDI3
YjgyMzIwMjA2NWM3ODAuLjhlNTAxOTcxNzY5YzFjNDdjZjRlNzYzN2M0MDEyYzcyNDhmY2M3Nzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5j
cHAKQEAgLTQ3NCw3ICs0NzQsNyBAQCB2b2lkIEluc3BlY3RvclN0eWxlOjpwb3B1bGF0ZU9iamVj
dFdpdGhTdHlsZVByb3BlcnRpZXMoSW5zcGVjdG9yT2JqZWN0KiByZXN1bHQpCiAgICAgICAgICAg
ICAgICAgYm9vbCBzaG91bGRJbmFjdGl2YXRlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgSGFz
aE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+ID46Oml0ZXJhdG9yIGFjdGl2ZUl0
ID0gcHJvcGVydHlOYW1lVG9QcmV2aW91c0FjdGl2ZVByb3BlcnR5LmZpbmQobmFtZSk7CiAgICAg
ICAgICAgICAgICAgaWYgKGFjdGl2ZUl0ICE9IHByb3BlcnR5TmFtZVRvUHJldmlvdXNBY3RpdmVQ
cm9wZXJ0eS5lbmQoKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHlFbnRyeS5w
YXJzZWRPaykKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5RW50cnkucGFyc2VkT2sg
JiYgbmFtZSAhPSAiQC13ZWJraXQtbWl4aW4iKQogICAgICAgICAgICAgICAgICAgICAgICAgc2hv
dWxkSW5hY3RpdmF0ZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAg
ICAgICAgICAgICAgICAgICAgYm9vbCBwcmV2aW91c1BhcnNlZE9rOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCmluZGV4IGZiYWY1
YmNjOGU1MDdiNjc0NGUyMTBlZTZmNzgzMTFiZTZhNzg1NzYuLjhjYTVlMGJiMjFhOTJiMjEwNzZl
ZWRhMmMyYTc2M2U4ZDE5ZDFhNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKQEAgLTQxNywxNiArNDE3LDI5IEBAIFdlYklu
c3BlY3Rvci5DU1NQcm9wZXJ0eSA9IGZ1bmN0aW9uKG93bmVyU3R5bGUsIGluZGV4LCBuYW1lLCB2
YWx1ZSwgcHJpb3JpdHksIHN0CiAgICAgdGhpcy50ZXh0ID0gdGV4dDsKIH0KIAorV2ViSW5zcGVj
dG9yLkNTU01peGluID0gZnVuY3Rpb24ob3duZXJTdHlsZSwgaW5kZXgsIG5hbWUsIHZhbHVlLCBw
cmlvcml0eSwgc3RhdHVzLCBwYXJzZWRPaywgaW1wbGljaXQsIHNob3J0aGFuZCwgdGV4dCkKK3sK
KyAgICB2YXIgdGhhdCA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkob3duZXJTdHlsZSwg
aW5kZXgsIG5hbWUsIHZhbHVlLCBwcmlvcml0eSwgc3RhdHVzLCBwYXJzZWRPaywgaW1wbGljaXQs
IHNob3J0aGFuZCwgdGV4dCk7CisgICAgdGhhdC5zZXBhcmF0b3IgPSBmdW5jdGlvbigpIHsgcmV0
dXJuICIiOyB9OworICAgIHJldHVybiB0aGF0OworfQorCiBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVy
dHkucGFyc2VQYXlsb2FkID0gZnVuY3Rpb24ob3duZXJTdHlsZSwgaW5kZXgsIHBheWxvYWQpCiB7
Ci0gICAgLy8gVGhlIGZvbGxvd2luZyBkZWZhdWx0IGZpZWxkIHZhbHVlcyBhcmUgdXNlZCBpbiB0
aGUgcGF5bG9hZDoKLSAgICAvLyBwcmlvcml0eTogIiIKLSAgICAvLyBwYXJzZWRPazogdHJ1ZQot
ICAgIC8vIGltcGxpY2l0OiBmYWxzZQotICAgIC8vIHN0YXR1czogInN0eWxlIgotICAgIC8vIHNo
b3J0aGFuZE5hbWU6ICIiCi0gICAgdmFyIHJlc3VsdCA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTUHJv
cGVydHkoCi0gICAgICAgIG93bmVyU3R5bGUsIGluZGV4LCBwYXlsb2FkLm5hbWUsIHBheWxvYWQu
dmFsdWUsIHBheWxvYWQucHJpb3JpdHkgfHwgIiIsIHBheWxvYWQuc3RhdHVzIHx8ICJzdHlsZSIs
ICgicGFyc2VkT2siIGluIHBheWxvYWQpID8gcGF5bG9hZC5wYXJzZWRPayA6IHRydWUsICEhcGF5
bG9hZC5pbXBsaWNpdCwgcGF5bG9hZC5zaG9ydGhhbmROYW1lIHx8ICIiLCBwYXlsb2FkLnRleHQp
OworICAgIC8vIFRoZSBmb2xsb3dpbmcgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgYXJlIHVzZWQgaW4g
dGhlIHBheWxvYWQKKyAgICB2YXIgcHJpb3JpdHkgPSBwYXlsb2FkLnByaW9yaXR5IHx8ICIiCisg
ICAgdmFyIHBhcnNlZE9rID0gKCJwYXJzZWRPayIgaW4gcGF5bG9hZCkgPyBwYXlsb2FkLnBhcnNl
ZE9rIDogdHJ1ZQorICAgIHZhciBpbXBsaWNpdCA9ICEhcGF5bG9hZC5pbXBsaWNpdAorICAgIHZh
ciBzdGF0dXMgPSBwYXlsb2FkLnN0YXR1cyB8fCAic3R5bGUiCisgICAgdmFyIHNob3J0aGFuZE5h
bWUgPSBwYXlsb2FkLnNob3J0aGFuZE5hbWUgfHwgIiIKKyAgIAorICAgIGlmIChwYXlsb2FkLm5h
bWUgIT09ICJALXdlYmtpdC1taXhpbiIpCisgICAgICAgIHJlc3VsdCA9IG5ldyBXZWJJbnNwZWN0
b3IuQ1NTUHJvcGVydHkoCisgICAgICAgICAgICBvd25lclN0eWxlLCBpbmRleCwgcGF5bG9hZC5u
YW1lLCBwYXlsb2FkLnZhbHVlLCBwcmlvcml0eSwgc3RhdHVzLCBwYXJzZWRPaywgaW1wbGljaXQs
IHNob3J0aGFuZE5hbWUsIHBheWxvYWQudGV4dCk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQg
PSBuZXcgV2ViSW5zcGVjdG9yLkNTU01peGluKAorICAgICAgICAgICAgb3duZXJTdHlsZSwgaW5k
ZXgsIHBheWxvYWQubmFtZSwgcGF5bG9hZC52YWx1ZSwgcHJpb3JpdHksIHN0YXR1cywgcGFyc2Vk
T2ssIGltcGxpY2l0LCBzaG9ydGhhbmROYW1lLCBwYXlsb2FkLnRleHQpOworCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIApAQCAtNDM4LDcgKzQ1MSw4IEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0
eS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgaWYgKHRoaXMubmFtZSA9PT0gIiIpCiAgICAgICAg
ICAgICByZXR1cm4gIiI7Ci0gICAgICAgIHJldHVybiB0aGlzLm5hbWUgKyAiOiAiICsgdGhpcy52
YWx1ZSArICh0aGlzLnByaW9yaXR5ID8gIiAhIiArIHRoaXMucHJpb3JpdHkgOiAiIikgKyAiOyI7
CisgICAgICAgIAorICAgICAgICByZXR1cm4gdGhpcy5uYW1lICsgdGhpcy5zZXBhcmF0b3IoKSAr
ICIgIiArIHRoaXMudmFsdWUgKyAodGhpcy5wcmlvcml0eSA/ICIgISIgKyB0aGlzLnByaW9yaXR5
IDogIiIpICsgIjsiOwogICAgIH0sCiAKICAgICBnZXQgaXNMaXZlKCkKQEAgLTQ2Niw2ICs0ODAs
MTEgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0
dXJuIHRoaXMuc3RhdHVzID09PSAiZGlzYWJsZWQiOwogICAgIH0sCiAKKyAgICBzZXBhcmF0b3I6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiOiI7CisgICAgfSwKKwogICAgIC8v
IFJlcGxhY2VzICJwcm9wZXJ0eU5hbWU6IHByb3BlcnR5VmFsdWUgWyFpbXBvcnRhbnRdOyIgaW4g
dGhlIHN0eWxlc2hlZXQgYnkgYW4gYXJiaXRyYXJ5IHByb3BlcnR5VGV4dC4KICAgICBzZXRUZXh0
OiBmdW5jdGlvbihwcm9wZXJ0eVRleHQsIG1ham9yQ2hhbmdlLCB1c2VyQ2FsbGJhY2spCiAgICAg
ewpAQCAtNTA2LDcgKzUyNSw3IEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUg
PSB7CiAKICAgICBzZXRWYWx1ZTogZnVuY3Rpb24obmV3VmFsdWUsIHVzZXJDYWxsYmFjaykKICAg
ICB7Ci0gICAgICAgIHZhciB0ZXh0ID0gdGhpcy5uYW1lICsgIjogIiArIG5ld1ZhbHVlICsgKHRo
aXMucHJpb3JpdHkgPyAiICEiICsgdGhpcy5wcmlvcml0eSA6ICIiKSArICI7IgorICAgICAgICB2
YXIgdGV4dCA9IHRoaXMubmFtZSArIHRoaXMuc2VwYXJhdG9yICsgIiAiICsgbmV3VmFsdWUgKyAo
dGhpcy5wcmlvcml0eSA/ICIgISIgKyB0aGlzLnByaW9yaXR5IDogIiIpICsgIjsiCiAgICAgICAg
IHRoaXMuc2V0VGV4dCh0ZXh0LCB1c2VyQ2FsbGJhY2spOwogICAgIH0sCiAKQEAgLTUzNCw2ICs1
NTMsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlID0gewogICAgIH0KIH0K
IAorCiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldCA9IGZ1bmN0aW9uKHBheWxvYWQpCiB7CiAg
ICAgdGhpcy5pZCA9IHBheWxvYWQuc3R5bGVTaGVldElkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKaW5kZXggMjlk
MDMxNzkwMDg1Mzk5OWU3ODBjODNmOGQxZTkxNDQ5NWE0OTNmOC4uNWNlZTU3OTRkZWRjMjljNzUy
MzA1ZGFiMDVkZTZmYzRhNDk3NjhjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCkBAIC0xMzkzLDcgKzEzOTMs
MTAgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIGlmIChlbmFibGVkQ2hlY2tib3hFbGVtZW50ICYmIHRoaXMudHJlZU91dGxpbmUu
c2VjdGlvbiAmJiB0aGlzLnRyZWVPdXRsaW5lLnNlY3Rpb24uZWRpdGFibGUgJiYgdGhpcy5wYXJl
bnQucm9vdCkKICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LmFwcGVuZENoaWxkKGVu
YWJsZWRDaGVja2JveEVsZW1lbnQpOwogICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hcHBl
bmRDaGlsZChuYW1lRWxlbWVudCk7Ci0gICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCI6ICIpKTsKKyAgICAgICAgaWYgKHRoaXMu
bmFtZSA9PSAiQC13ZWJraXQtbWl4aW4iKQorICAgICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1l
bnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiKSk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCI6ICIpKTsKICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYXBw
ZW5kQ2hpbGQodmFsdWVFbGVtZW50KTsKICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIjsiKSk7CiAKQEAgLTE3MDYsNyArMTcw
OSwxMCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9
IHsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gU3ludGhlc2l6ZSBwcm9wZXJ0eSB0
ZXh0IGRpc3JlZ2FyZGluZyBhbnkgY29tbWVudHMsIGN1c3RvbSB3aGl0ZXNwYWNlIGV0Yy4KLSAg
ICAgICAgICAgIHRoaXMuYXBwbHlTdHlsZVRleHQodGhpcy5uYW1lRWxlbWVudC50ZXh0Q29udGVu
dCArICI6ICIgKyB0aGlzLnZhbHVlRWxlbWVudC50ZXh0Q29udGVudCk7CisgICAgICAgICAgICBz
ZXBhcmF0b3IgPSAiOiAiCisgICAgICAgICAgICBpZiAodGhpcy5uYW1lRWxlbWVudC50ZXh0Q29u
dGVudCA9PT0gIkAtd2Via2l0LW1peGluIikKKyAgICAgICAgICAgICAgICBzZXBhcmF0b3IgPSAi
ICIKKyAgICAgICAgICAgIHRoaXMuYXBwbHlTdHlsZVRleHQodGhpcy5uYW1lRWxlbWVudC50ZXh0
Q29udGVudCArIHNlcGFyYXRvciArIHRoaXMudmFsdWVFbGVtZW50LnRleHRDb250ZW50KTsKICAg
ICAgICAgfQogICAgIH0sCiAKQEAgLTE3NzcsMTAgKzE3ODMsMTMgQEAgV2ViSW5zcGVjdG9yLlN0
eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAoYmxh
bmtJbnB1dCB8fCAodGhpcy5fbmV3UHJvcGVydHkgJiYgL15ccyokLy50ZXN0KHRoaXMudmFsdWVF
bGVtZW50LnRleHRDb250ZW50KSkpCiAgICAgICAgICAgICAgICAgcHJvcGVydHlUZXh0ID0gIiI7
CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoaXNFZGl0aW5nTmFtZSkK
LSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlUZXh0ID0gdXNlcklucHV0ICsgIjogIiArIHRo
aXMudmFsdWVFbGVtZW50LnRleHRDb250ZW50OwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgcHJvcGVydHlUZXh0ID0gdGhpcy5uYW1lRWxlbWVudC50ZXh0Q29udGVu
dCArICI6ICIgKyB1c2VySW5wdXQ7CisgICAgICAgICAgICAgICAgbmFtZSA9IGlzRWRpdGluZ05h
bWUgPyB1c2VySW5wdXQgOiB0aGlzLm5hbWVFbGVtZW50LnRleHRDb250ZW50OworICAgICAgICAg
ICAgICAgIHZhbHVlID0gaXNFZGl0aW5nTmFtZSA/IHRoaXMudmFsdWVFbGVtZW50LnRleHRDb250
ZW50IDogdXNlcklucHV0OworICAgICAgICAgICAgICAgIHNlcGFyYXRvciA9ICI6ICIKKyAgICAg
ICAgICAgICAgICBpZiAobmFtZSA9PT0gIkAtd2Via2l0LW1peGluIikgeworICAgICAgICAgICAg
ICAgICAgICBzZXBhcmF0b3IgPSAiICI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIHByb3BlcnR5VGV4dCA9IG5hbWUgKyBzZXBhcmF0b3IgKyB2YWx1ZTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHRoaXMuYXBwbHlTdHlsZVRleHQocHJvcGVydHlUZXh0LCB0cnVlKTsK
ICAgICAgICAgfSBlbHNlIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86450</attachid>
            <date>2011-03-22 03:00:29 -0700</date>
            <delta_ts>2011-03-22 03:01:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56727-20110322210026.patch</filename>
            <type>text/plain</type>
            <size>78529</size>
            <attacher name="Shane Stephens">shanestephens</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODE2NTIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZmYwNDcwZGI5NjMxODJiZjlmZTI3
MDcxZDkyNWFmM2I3NWRlYmY5Li5jYTM2YzZjMjlkZjFkZjU5MTcwOTc4ZTA2NDRlYjg0NTBjNmFl
MDljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDMtMjIgIFNoYW5lIFN0ZXBoZW5zICA8
c2hhbmVzdGVwaGVuc0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBleHBlcmltZW50YWwgbWl4aW5zIGZlYXR1cmUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjcyNwor
CisgICAgICAgIFRoaXMgdGVzdCB1c2VzIHRoZSBmZWF0dXJlIHVuZGVyIGRpZmZlcmVudCBjb25k
aXRpb25zLCBpbmNsdWRpbmc6CisgICAgICAgICAgLSBhIHNpbXBsZSB0cmFpdAorICAgICAgICAg
IC0gYSB0cmFpdCBkZWZpbml0aW9uIHNwbGl0IGludG8gZGlzanVuY3QgcGllY2VzCisgICAgICAg
ICAgLSBoaWVyYXJjaGljYWwgdHJhaXRzCisgICAgICAgICAgLSBtdWx0aXBsZSBpbmNsdXNpb24g
b2YgdHJhaXRzCisgICAgICAgICAgLSBwcm9wZXJ0aWVzIGRlZmluZWQgaW4gYSB0cmFpdCB0aGVu
IG92ZXJyaWRkZW4gYXQgbWl4aW4gcG9pbnQKKyAgICAgICAgQmVjYXVzZSB0aGUgZmVhdHVyZSBp
cyBvZmYgYnkgZGVmYXVsdCwgbWl4aW5zLWV4cGVjdGVkLnR4dCBjb250YWlucworICAgICAgICB0
aGUgZmFpbHVyZSBjb25kaXRpb24gb2YgdGhlIHRlc3QuCisKKyAgICAgICAgKiBjc3MzL21peGlu
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvbWl4aW5zLmh0bWw6IEFkZGVk
LgorCiAyMDExLTAzLTIyICBJbHlhIFNoZXJtYW4gIDxpc2hlcm1hbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL21peGlucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL21peGlucy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWVkMTVkYjg2NTA5NDVlNGYxNGIyZDQyMWZhMmVmY2Q4NTU0
NjRiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvbWl4aW5zLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExMSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMjkzeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjkzOiAi
U2V0IHRoZSBiYWNrZ3JvdW5kIHRvIGJlIGdyZWVuIHVzaW5nIGEgbWl4aW46ICIKKyAgICAgICAg
UmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDM5eDE4CisgICAgICAgICAgUmVuZGVy
SW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMzl4MTggW2NvbG9yPSNGRjAwMDBdCisg
ICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgyOTMsMCkgc2l6ZSAzOXgxOAorICAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMjkzLDApIHdpZHRoIDM5OiAiRkFJTCIKKyAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDIxKSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA0MjR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0
MjQ6ICJTZXQgdGhlIGJvcmRlciB0byBiZSAycHggYmxhY2sgd2l0aCByb3VuZGVkIGNvcm5lcnMg
dXNpbmcgYSBtaXhpbjogIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNp
emUgNDN4MTgKKyAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6
ZSA0M3gxOCBbY29sb3I9I0ZGMDAwMF0KKyAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDQyNCww
KSBzaXplIDQzeDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg0MjQsMCkgd2lkdGggNDM6
ICJGQUlMICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQ0eDE4
CisgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNDR4MTgg
W2NvbG9yPSMwMEZGMDBdCisgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg0NjcsMCkgc2l6ZSA0
NHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDY3LDApIHdpZHRoIDQ0OiAiUEFTUyAi
CisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAzOXgxOAorICAgICAg
ICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDM5eDE4IFtjb2xvcj0j
RkYwMDAwXQorICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoNTExLDApIHNpemUgMzl4MTgKKyAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDUxMSwwKSB3aWR0aCAzOTogIkZBSUwiCisgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCw0Mikgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTQzeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggNTQzOiAiU2V0IHRoZSB0ZXh0IGNvbG9yIHRvIG9yYW5nZSBhbmQgcGFkZGluZyB0
byA1cHggd2l0aCBhIG1peGluIHRoYXQgaGFzIGEgc3BsaXQgZGVmaW5pdGlvbjogIgorICAgICAg
ICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDN4MTgKKyAgICAgICAgICBSZW5k
ZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA0M3gxOCBbY29sb3I9I0ZGMDAwMF0K
KyAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDU0MywwKSBzaXplIDQzeDE4CisgICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICg1NDMsMCkgd2lkdGggNDM6ICJGQUlMICIKKyAgICAgICAgUmVuZGVy
SW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDM5eDE4CisgICAgICAgICAgUmVuZGVySW5saW5l
IChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMzl4MTggW2NvbG9yPSNGRjAwMDBdCisgICAgICAg
ICAgICBSZW5kZXJUZXh0IGF0ICg1ODYsMCkgc2l6ZSAzOXgxOAorICAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoNTg2LDApIHdpZHRoIDM5OiAiRkFJTCIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDYzKSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSA0Mjh4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0Mjg6ICJN
aXggdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBtaXhpbnMgaW50byBhIG5ldyBtaXhpbiBhbmQg
dXNlIGl0OiAiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0M3gx
OAorICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDQzeDE4
IFtjb2xvcj0jRkYwMDAwXQorICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoNDI4LDApIHNpemUg
NDN4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQyOCwwKSB3aWR0aCA0MzogIkZBSUwg
IgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDN4MTgKKyAgICAg
ICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA0M3gxOCBbY29sb3I9
I0ZGMDAwMF0KKyAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDQ3MSwwKSBzaXplIDQzeDE4Cisg
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg0NzEsMCkgd2lkdGggNDM6ICJGQUlMICIKKyAgICAg
ICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQ0eDE4CisgICAgICAgICAgUmVu
ZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNDR4MTggW2NvbG9yPSMwMEZGMDBd
CisgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg1MTQsMCkgc2l6ZSA0NHgxOAorICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNTE0LDApIHdpZHRoIDQ0OiAiUEFTUyAiCisgICAgICAgIFJlbmRl
cklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAzOXgxOAorICAgICAgICAgIFJlbmRlcklubGlu
ZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDM5eDE4IFtjb2xvcj0jRkYwMDAwXQorICAgICAg
ICAgICAgUmVuZGVyVGV4dCBhdCAoNTU4LDApIHNpemUgMzl4MTgKKyAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDU1OCwwKSB3aWR0aCAzOTogIkZBSUwiCisgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCw4NCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNDQzeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDQzOiAi
TWl4IHRoZSBiYWNrZ3JvdW5kLCBib3JkZXIsIGFuZCBzcGxpdCBtaXhpbnMgZGlyZWN0bHkgaW4g
dGhlIHN0eWxlIHJ1bGU6ICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBz
aXplIDQzeDE4CisgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNp
emUgNDN4MTggW2NvbG9yPSNGRjAwMDBdCisgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg0NDMs
MCkgc2l6ZSA0M3gxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDQzLDApIHdpZHRoIDQz
OiAiRkFJTCAiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0M3gx
OAorICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDQzeDE4
IFtjb2xvcj0jRkYwMDAwXQorICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoNDg2LDApIHNpemUg
NDN4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQ4NiwwKSB3aWR0aCA0MzogIkZBSUwg
IgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDR4MTgKKyAgICAg
ICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA0NHgxOCBbY29sb3I9
IzAwRkYwMF0KKyAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDUyOSwwKSBzaXplIDQ0eDE4Cisg
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg1MjksMCkgd2lkdGggNDQ6ICJQQVNTICIKKyAgICAg
ICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQzeDE4CisgICAgICAgICAgUmVu
ZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNDN4MTggW2NvbG9yPSNGRjAwMDBd
CisgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg1NzMsMCkgc2l6ZSA0M3gxOAorICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNTczLDApIHdpZHRoIDQzOiAiRkFJTCAiCisgICAgICAgIFJlbmRl
cklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0M3gxOAorICAgICAgICAgIFJlbmRlcklubGlu
ZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDQzeDE4IFtjb2xvcj0jRkYwMDAwXQorICAgICAg
ICAgICAgUmVuZGVyVGV4dCBhdCAoNjE2LDApIHNpemUgNDN4MTgKKyAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDYxNiwwKSB3aWR0aCA0MzogIkZBSUwgIgorICAgICAgICBSZW5kZXJJbmxpbmUg
e1NQQU59IGF0ICgwLDApIHNpemUgMzl4MTgKKyAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVy
YXRlZCkgYXQgKDAsMCkgc2l6ZSAzOXgxOCBbY29sb3I9I0ZGMDAwMF0KKyAgICAgICAgICAgIFJl
bmRlclRleHQgYXQgKDY1OSwwKSBzaXplIDM5eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICg2NTksMCkgd2lkdGggMzk6ICJGQUlMIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MTA1KSBzaXplIDc4NHgzNiBbYmdjb2xvcj0jODA4MDgwXQorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA2NDV4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA2NDU6ICJNaXggaW4gdGhlIGJhY2tncm91bmQsIGJvcmRlciBhbmQgc3BsaXQgbWl4aW5z
LCB0aGVuIG92ZXJyaWRlIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGFuZCBib3JkZXIgd2lkdGg6ICIK
KyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQ0eDE4CisgICAgICAg
ICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgNDR4MTggW2NvbG9yPSMw
MEZGMDBdCisgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg2NDUsMCkgc2l6ZSA0NHgxOAorICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjQ1LDApIHdpZHRoIDQ0OiAiUEFTUyAiCisgICAgICAg
IFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0M3gxOAorICAgICAgICAgIFJlbmRl
cklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDQzeDE4IFtjb2xvcj0jRkYwMDAwXQor
ICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoNjg5LDApIHNpemUgNDN4MTgKKyAgICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDY4OSwwKSB3aWR0aCA0MzogIkZBSUwgIgorICAgICAgICBSZW5kZXJJ
bmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDB4MTgKKyAgICAgICAgICBSZW5kZXJJbmxpbmUg
KGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA0MHgxOCBbY29sb3I9IzAwRkYwMF0KKyAgICAgICAg
ICAgIFJlbmRlclRleHQgYXQgKDczMiwwKSBzaXplIDQweDE4CisgICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg3MzIsMCkgd2lkdGggNDA6ICJQQVNTIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQ
QU59IGF0ICgwLDApIHNpemUgNDN4MTgKKyAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRl
ZCkgYXQgKDAsMCkgc2l6ZSA0M3gxOCBbY29sb3I9I0ZGMDAwMF0KKyAgICAgICAgICAgIFJlbmRl
clRleHQgYXQgKDAsMTgpIHNpemUgNDN4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MTgpIHdpZHRoIDQzOiAiRkFJTCAiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAs
MCkgc2l6ZSA0M3gxOAorICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCww
KSBzaXplIDQzeDE4IFtjb2xvcj0jRkYwMDAwXQorICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAo
NDMsMTgpIHNpemUgNDN4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQzLDE4KSB3aWR0
aCA0MzogIkZBSUwgIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUg
Mzl4MTgKKyAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAz
OXgxOCBbY29sb3I9I0ZGMDAwMF0KKyAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDg2LDE4KSBz
aXplIDM5eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg4NiwxOCkgd2lkdGggMzk6ICJG
QUlMIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9taXhpbnMuaHRtbCBiL0xheW91dFRl
c3RzL2NzczMvbWl4aW5zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTI0NDZmNDVhYjBhN2E1MjRmYjA3YTk5
ZWIwYmU5MGJlMjA2MjNjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvbWl4
aW5zLmh0bWwKQEAgLTAsMCArMSwxMzYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisKK0At
d2Via2l0LXRyYWl0IHNldEJhY2tncm91bmQgeworICAgIGJhY2tncm91bmQ6IGdyZWVuOworfQor
CitALXdlYmtpdC10cmFpdCBzZXRCb3JkZXIgeworICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czog
NXB4OworICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOworfQorCitALXdlYmtpdC10cmFpdCBt
aXhlZFRyYWl0cyB7CisgICAgQC13ZWJraXQtbWl4aW4gc2V0QmFja2dyb3VuZDsKKyAgICBALXdl
YmtpdC1taXhpbiBzZXRCb3JkZXI7Cit9CisKK0Atd2Via2l0LXRyYWl0IHNwbGl0VHJhaXQgewor
ICAgIGNvbG9yOiBvcmFuZ2U7Cit9CisKKy5iYWNrZ3JvdW5kIHsKKyAgICBALXdlYmtpdC1taXhp
biBzZXRCYWNrZ3JvdW5kOworfQorCisuYm9yZGVyIHsKKyAgICBALXdlYmtpdC1taXhpbiBzZXRC
b3JkZXI7Cit9CisKKy5zcGxpdCB7CisgICAgQC13ZWJraXQtbWl4aW4gc3BsaXRUcmFpdDsKK30K
KworLm1peGVkIHsKKyAgICBALXdlYmtpdC1taXhpbiBtaXhlZFRyYWl0czsKK30KKworLmxvY2Fs
bHlfbWl4ZWQgeworICAgIEAtd2Via2l0LW1peGluIHNldEJhY2tncm91bmQ7CisgICAgQC13ZWJr
aXQtbWl4aW4gc2V0Qm9yZGVyOworICAgIEAtd2Via2l0LW1peGluIHNwbGl0VHJhaXQ7Cit9CisK
Ky5vdmVycmlkaW5nIHsKKyAgICBALXdlYmtpdC1taXhpbiBtaXhlZFRyYWl0czsKKyAgICBALXdl
YmtpdC1taXhpbiBzcGxpdFRyYWl0OworICAgIGJhY2tncm91bmQ6IGdyYXk7CisgICAgYm9yZGVy
LXdpZHRoOiAzcHg7Cit9CisKK0Atd2Via2l0LXRyYWl0IHNwbGl0VHJhaXQgeworICAgIHBhZGRp
bmc6IDVweDsKK30KKworZGl2IHsKKyAgICBtYXJnaW4tYm90dG9tOiAzcHg7Cit9CisKKy5wYXNz
OmFmdGVyIHsKKyAgICBjb250ZW50OiAiUEFTUyAiOworICAgIGNvbG9yOiByZ2IoMCwgMjU1LCAw
KTsKKyAgICBmb250LXdlaWdodDogYm9sZDsKK30KKworLmZhaWw6YWZ0ZXIgeworICAgIGNvbnRl
bnQ6ICJGQUlMICI7CisgICAgY29sb3I6IHJnYigyNTUsIDAsIDApOworICAgIGZvbnQtd2VpZ2h0
OiBib2xkOworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJiYWNr
Z3JvdW5kIj5TZXQgdGhlIGJhY2tncm91bmQgdG8gYmUgZ3JlZW4gdXNpbmcgYSBtaXhpbjogPC9k
aXY+Cis8ZGl2IGNsYXNzPSJib3JkZXIiPlNldCB0aGUgYm9yZGVyIHRvIGJlIDJweCBibGFjayB3
aXRoIHJvdW5kZWQgY29ybmVycyB1c2luZyBhIG1peGluOiA8L2Rpdj4KKzxkaXYgY2xhc3M9InNw
bGl0Ij5TZXQgdGhlIHRleHQgY29sb3IgdG8gb3JhbmdlIGFuZCBwYWRkaW5nIHRvIDVweCB3aXRo
IGEgbWl4aW4gdGhhdCBoYXMgYSBzcGxpdCBkZWZpbml0aW9uOiA8L2Rpdj4KKzxkaXYgY2xhc3M9
Im1peGVkIj5NaXggdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBtaXhpbnMgaW50byBhIG5ldyBt
aXhpbiBhbmQgdXNlIGl0OiA8L2Rpdj4KKzxkaXYgY2xhc3M9ImxvY2FsbHlfbWl4ZWQiPk1peCB0
aGUgYmFja2dyb3VuZCwgYm9yZGVyLCBhbmQgc3BsaXQgbWl4aW5zIGRpcmVjdGx5IGluIHRoZSBz
dHlsZSBydWxlOiA8L2Rpdj4KKzxkaXYgY2xhc3M9Im92ZXJyaWRpbmciPk1peCBpbiB0aGUgYmFj
a2dyb3VuZCwgYm9yZGVyIGFuZCBzcGxpdCBtaXhpbnMsIHRoZW4gb3ZlcnJpZGUgdGhlIGJhY2tn
cm91bmQgY29sb3IgYW5kIGJvcmRlciB3aWR0aDogPC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0Pgor
CitmdW5jdGlvbiB0ZXN0KGVsdCwgcHJvcGVydHksIHZhbHVlKSB7CisgICAgaWYgKHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGVsdClbcHJvcGVydHldID09IHZhbHVlKSB7CisJZWx0LmlubmVySFRN
TCArPSAiPHNwYW4gY2xhc3M9J3Bhc3MnPjwvc3Bhbj4iOworICAgIH0gZWxzZSB7CisJZWx0Lmlu
bmVySFRNTCArPSAiPHNwYW4gY2xhc3M9J2ZhaWwnPjwvc3Bhbj4iOworICAgIH0KK30KKworZnVu
Y3Rpb24gdGVzdEdyZWVuQmFja2dyb3VuZChlbHQpIHsKKyAgICB0ZXN0KGVsdCwgImJhY2tncm91
bmQtY29sb3IiLCAicmdiKDAsIDEyOCwgMCkiKTsKK30KKworZnVuY3Rpb24gdGVzdEdyYXlCYWNr
Z3JvdW5kKGVsdCkgeworICAgIHRlc3QoZWx0LCAiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoMTI4
LCAxMjgsIDEyOCkiKTsKK30KKworZnVuY3Rpb24gdGVzdFJvdW5kZWRCb3JkZXIoZWx0LCBib3Jk
ZXJXaWR0aCkgeworICAgIGJvcmRlcldpZHRoID0gYm9yZGVyV2lkdGggfHwgIjJweCI7CisgICAg
dGVzdChlbHQsICJib3JkZXItbGVmdC13aWR0aCIsIGJvcmRlcldpZHRoKTsKKyAgICB0ZXN0KGVs
dCwgImJvcmRlci1sZWZ0LWNvbG9yIiwgInJnYigwLCAwLCAwKSIpOworICAgIHRlc3QoZWx0LCAi
Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1cyIsICI1cHgiKTsgCit9CisKK2Z1bmN0aW9uIHRlc3RPcmFu
Z2VQYWRkZWQoZWx0KSB7CisgICAgdGVzdChlbHQsICJjb2xvciIsICJyZ2IoMjU1LCAxNjUsIDAp
Iik7CisgICAgdGVzdChlbHQsICJwYWRkaW5nLWxlZnQiLCAiNXB4Iik7Cit9CisKK3ZhciBiYWNr
Z3JvdW5kID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmJhY2tncm91bmQiKTsKK3Rlc3RHcmVl
bkJhY2tncm91bmQoYmFja2dyb3VuZCk7CisKK3ZhciBib3JkZXIgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCIuYm9yZGVyIik7Cit0ZXN0Um91bmRlZEJvcmRlcihib3JkZXIpOworCit2YXIgc3Bs
aXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc3BsaXQiKTsKK3Rlc3RPcmFuZ2VQYWRkZWQo
c3BsaXQpOworCit2YXIgbWl4ZWQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubWl4ZWQiKTsK
K3Rlc3RHcmVlbkJhY2tncm91bmQobWl4ZWQpOwordGVzdFJvdW5kZWRCb3JkZXIobWl4ZWQpOwor
Cit2YXIgbG9jYWxseV9taXhlZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5sb2NhbGx5X21p
eGVkIik7Cit0ZXN0R3JlZW5CYWNrZ3JvdW5kKGxvY2FsbHlfbWl4ZWQpOwordGVzdFJvdW5kZWRC
b3JkZXIobG9jYWxseV9taXhlZCk7Cit0ZXN0T3JhbmdlUGFkZGVkKGxvY2FsbHlfbWl4ZWQpOwor
Cit2YXIgb3ZlcnJpZGluZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5vdmVycmlkaW5nIik7
Cit0ZXN0R3JheUJhY2tncm91bmQob3ZlcnJpZGluZyk7Cit0ZXN0Um91bmRlZEJvcmRlcihvdmVy
cmlkaW5nLCAiM3B4Iik7Cit0ZXN0T3JhbmdlUGFkZGVkKG92ZXJyaWRpbmcpOworCis8L3Njcmlw
dD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCAwYzFkMTNjNjU0ZWUwNjIx
YjgwNzdlMDhjN2QwODM3NGE2OWY4ZDA3Li5hODlhZTExMWU4MjZiYTllMTc3YTBlMWJmOWE1NTMx
MGVmZTdkZTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC02MCw2ICs2MCw4IEBAIEVO
QUJMRV9DSEFOTkVMX01FU1NBR0lOR19tYWNvc3ggPSBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkc7
CiBFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OID0gJChFTkFCTEVfQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OX21hY29zeCA9IEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT047CiAK
K0VOQUJMRV9DU1NfTUlYSU5TID0gOworCiBFTkFCTEVfREFUQUJBU0UgPSBFTkFCTEVfREFUQUJB
U0U7CiBFTkFCTEVfREFUQUdSSUQgPSA7CiAKQEAgLTEyNyw0ICsxMjksNCBAQCBFTkFCTEVfWEhU
TUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9YU0xUID0gRU5B
QkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQo
RU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFXzNE
X1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQo
RU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5B
QkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9J
VEVNUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBM
T0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxF
X0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkg
JChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1B
R0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BF
RUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5B
QkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JFR0lTVEVS
X1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcp
ICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVf
U1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19G
T1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tF
VFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykg
JChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOworRkVBVFVS
RV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfQUNDRUxFUkFURURf
MkRfQ0FOVkFTKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJM
RV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9DU1NfTUlYSU5TKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChF
TkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVS
X0lURU1TKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9V
UExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFC
TEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJ
KSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9J
TUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9T
UEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChF
TkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUkVHSVNU
RVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NW
RykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJM
RV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZH
X0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09D
S0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJT
KSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rIGIvU291cmNlL1dlYkNvcmUvQW5kcm9p
ZC5tawppbmRleCAxYTg0MTkwZThhNzk5YjQ5YWM4NDUzNmJjNmM0N2NhZDBhOTJhNDE5Li5iMmU0
YmMxOWFmYjJmOGUwM2U5YzgzOWRiZmQwMmJjMmI4ZmYxMDZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9BbmRyb2lkLm1rCisrKyBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTY0
LDYgKzY0LDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9IFwKIAljc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAgXAogCWNzcy9DU1NTdHlsZVNoZWV0LmNwcCBcCiAJY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFs
dWUuY3BwIFwKKwljc3MvQ1NTVHJhaXQuY3BwIFwKIAljc3MvQ1NTVW5pY29kZVJhbmdlVmFsdWUu
Y3BwIFwKIAljc3MvQ1NTVmFsdWVMaXN0LmNwcCBcCiAJY3NzL0ZvbnRGYW1pbHlWYWx1ZS5jcHAg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyNDEyN2U5M2U0ZDkwN2NlN2E2OWY5ZjFjMDY4NDJl
NWUwM2Q0ZTcxLi45OTJkMjRiYzRiMTFjMzlhNjJmOGU0MzYyNGM2Y2EyZTM1NjdhNzI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtNDkzLDYgKzQ5Myw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMK
ICAgICBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKICAgICBjc3MvQ1NTU3R5bGVTaGVldC5jcHAK
ICAgICBjc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5jcHAKKyAgICBjc3MvQ1NTVHJhaXQuY3Bw
CiAgICAgY3NzL0NTU1VuaWNvZGVSYW5nZVZhbHVlLmNwcAogICAgIGNzcy9DU1NWYWx1ZUxpc3Qu
Y3BwCiAgICAgY3NzL0ZvbnRGYW1pbHlWYWx1ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyNDhiMDJhN2Jj
MWNmZGU4Y2Q4MjJlNTg2M2FlNDhhYjdhZjhiY2M2Li5kZDA1NThmZWJjNDBjMmEzZDI2Y2E3M2Jj
MDk5MjkxMWMyNDQ5ZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQgQEAKKzIwMTEtMDMtMjIg
IFNoYW5lIFN0ZXBoZW5zICA8c2hhbmVzdGVwaGVuc0Bnb29nbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBleHBlcmltZW50
YWwgbWl4aW5zIGZlYXR1cmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NjcyNworCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBDU1MgTWl4
aW5zIGFzIGRlc2NyaWJlZCBoZXJlOiB3d3cueGFudGhpci5jb20vYmxvZy9iNDl3MCAKKyAgICAg
ICAgYW5kIHByZXNlbnRlZCB0byB0aGUgd3d3LXN0eWxlIG1haWxpbmcgbGlzdCBieSBUYWIgQXRr
aW5zLgorCisgICAgICAgIFRlc3Q6IGNzczMvbWl4aW5zLmh0bWwKKworICAgICAgICAqIEFuZHJv
aWQubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUu
YW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU0dyYW1tYXIu
eTogCisgICAgICAgIFBhcnNlcyBALXdlYmtpdC1taXhpbiB7IC4uLiB9IGFzIENTU1RyYWl0cyBh
bmQgc3RvcmVzIHRoZW0gd2l0aCB0aGUgb3RoZXIgcGFyc2VkCisgICAgICAgIENTU1J1bGVzIGlu
IENTU1BhcnNlci4gIFBhcnNlcyAiQC13ZWJraXQtbWl4aW4gPHRyYWl0TmFtZT4iIGFzIHByb3Bl
cnRpZXMsCisgICAgICAgIGNyZWF0aW5nIGFuZCBzdG9yaW5nIGEgV2Via2l0TWl4aW5WYWx1ZSBh
cyB0aGUgdmFsdWUuICBSZXNvbHZlcyB0cmFpdE5hbWUKKyAgICAgICAgcmVmZXJlbmNlIGF0IGFw
cGxpY2F0aW9uIHRpbWUgYW5kIHJlY3Vyc2l2ZWx5IHdhbGtzIENTU1RyYWl0IHN0cnVjdHVyZXMg
YXBwbHlpbmcKKyAgICAgICAgZGVmaW5lZCBwcm9wZXJ0aWVzLgorCisgICAgICAgICogY3NzL0NT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6YWRkUGFyc2VkUHJvcGVydGll
cyk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXI6OmNyZWF0ZVdlYmtpdFRyYWl0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
bWFya1Byb3BlcnR5RW5kKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICog
Y3NzL0NTU1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5Ojpjc3NU
ZXh0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlOYW1lcy5pbjoKKyAgICAgICAgKiBjc3Mv
Q1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
U291cmNlRGF0YTo6dG9TdHJpbmcpOgorICAgICAgICAqIGNzcy9DU1NSdWxlLmg6CisgICAgICAg
ICogY3NzL0NTU1N0eWxlUnVsZS5jcHA6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwOiAKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6On5SdWxlU2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bGVTZXQ6OmFkZFJ1bGVzRnJvbVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlJ1
bGVTZXQ6OmFkZFRyYWl0KToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6OmdldFRyYWl0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5RnJvbVN0eWxlRGVjbGFy
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlEZWNsYXJh
dGlvbnMpOgorICAgICAgICBSZW9yZGVyIGFwcGx5RGVjbGFyYXRpb25zIHRvIGFsbG93IHJlY3Vy
c2l2ZSBkZXNjZW50IG9mIENTU1RyYWl0IHN0cnVjdHVyZXMuCisKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTZWxlY3Rvci5oOgorICAgICAgICAqIGNzcy9DU1NUcmFpdC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTVHJhaXQ6OkNTU1RyYWl0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RyYWl0Ojpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RyYWl0OjpzZXREZWNsYXJh
dGlvbik6CisgICAgICAgIERlZmluZXMgYSBzdWJjbGFzcyBvZiBDU1NSdWxlIHRoYXQgaG9sZHMg
dHJhaXQgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBjc3MvQ1NTVHJhaXQuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpDU1NUcmFpdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RyYWl0Ojp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RyYWl0Ojppc1RyYWl0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1RyYWl0OjpnZXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RyYWl0OjpnZXRTdHlsZSk6CisgICAgICAgICogY3NzL1N0eWxlQmFzZS5oOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVCYXNlOjppc1RyYWl0KToKKyAgICAgICAgKiBjc3MvV2Via2l0TWl4aW5W
YWx1ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYmtpdE1peGluVmFsdWU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJraXRNaXhpblZhbHVlOjptaXhpbk5hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2Via2l0TWl4aW5WYWx1ZTo6Y3NzVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJraXRNaXhpblZhbHVlOjpXZWJraXRNaXhpblZhbHVlKToKKyAgICAgICAgRGVmaW5l
cyBhIHN1YmNsYXNzIG9mIENTU1ByaW1pdGl2ZVZhbHVlIHRoYXQgaG9sZHMgbWl4aW4gcmVxdWVz
dHMuCisKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6IEFsbG93IHByb3BlcnRpZXMgd2l0aCAi
QCItcHJlZml4ZWQgbmFtZXMgdG8gZXhpc3QuCisgICAgICAgICogY3NzL3Rva2VuaXplci5mbGV4
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpwb3B1bGF0ZU9iamVjdFdpdGhTdHlsZVByb3BlcnRp
ZXMpOgorICAgICAgICBFbmFibGVzIEAtd2Via2l0LW1peGluIGRlY2xhcmF0aW9ucyB0byBiZSB0
cmVhdGVkIGNvcnJlY3RseSAobm8gZGVsaW1pdGluZyAiOiIsIAorICAgICAgICBtdWx0aXBsZSBh
Y3RpdmUgbWl4aW5zIGFsbG93ZWQgd2l0aGluIGEgc2luZ2xlIHJ1bGUpLgorCisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNTU01peGluLnRoYXQuc2VwYXJhdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NN
aXhpbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucGFyc2VQYXlsb2FkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0IHByb3BlcnR5
VGV4dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlLnNlcGFy
YXRvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlLnNldFZh
bHVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5
cGUudXBkYXRlVGl0bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVl
RWxlbWVudC5wcm90b3R5cGUpOgorCiAyMDExLTAzLTIyICBJbHlhIFNoZXJtYW4gIDxpc2hlcm1h
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCmluZGV4IDBjMWQxM2M2NTRlZTA2MjFiODA3N2UwOGM3ZDA4Mzc0YTY5ZjhkMDcuLmE4OWFl
MTExZTgyNmJhOWUxNzdhMGUxYmY5YTU1MzEwZWZlN2RlMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC02MCw2
ICs2MCw4IEBAIEVOQUJMRV9DSEFOTkVMX01FU1NBR0lOR19tYWNvc3ggPSBFTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkc7CiBFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OID0gJChFTkFCTEVf
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVf
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OX21hY29zeCA9IEVOQUJMRV9DTElFTlRfQkFTRURfR0VP
TE9DQVRJT047CiAKK0VOQUJMRV9DU1NfTUlYSU5TID0gOworCiBFTkFCTEVfREFUQUJBU0UgPSBF
TkFCTEVfREFUQUJBU0U7CiBFTkFCTEVfREFUQUdSSUQgPSA7CiAKQEAgLTEyNyw0ICsxMjksNCBA
QCBFTkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJM
RV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktf
UFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfV0VCR0wp
ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFU
QUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFU
QV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9E
SVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VS
Q0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxM
U0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkg
JChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFC
TEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9N
QVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5B
QkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAk
KEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFH
RSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQo
RU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklE
RU8pICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFC
TEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFC
TEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hT
TFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVf
QUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfM0RfUkVOREVS
SU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVf
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9DU1NfTUlYSU5TKSAkKEVOQUJMRV9E
QVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9E
QVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNP
VVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNF
KSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVO
QUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxF
X01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVO
QUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChF
TkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMp
ICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lN
QUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykg
JChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9W
SURFTykgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVO
QUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV01MKSAkKEVO
QUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVf
WFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGE4ZmVhZGJmZjkzMDY5YjY3N2MwM2Y2ODNh
OWQwMDQ5NGU5YmRmMjUuLjY2NzIyNmVkZGVlYjc1MGY3NzJmYWUzMDc4MDU5ZjkwY2ViNjBjNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMDYxLDYgKzEwNjEsOCBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmggXAogCVNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuaCBcCisJU291cmNlL1dlYkNvcmUvY3NzL0NTU1Ry
YWl0LmNwcCBcCisJU291cmNlL1dlYkNvcmUvY3NzL0NTU1RyYWl0LmggXAogCVNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NVbmljb2RlUmFuZ2VWYWx1ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NVbmljb2RlUmFuZ2VWYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5rbm93blJ1
bGUuaCBcCkBAIC0xMTE1LDYgKzExMTcsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U1RyYW5zZm9ybVZhbHVlLmggXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJraXRNaXhpblZhbHVl
LmgKIAlTb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDBlYzY4ZTRlOTIwNmY0YWE2MTFhNDYyOGI3ZjE1YmMw
ZmY1MTkyOWUuLmY3NGNmYjNiNGY2YTQzOTlmOTA1N2I5MzRmZWY1ODkwNDM1YTM3YTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTI0OTMsNiArMjQ5Myw4IEBACiAgICAgICAgICAgICAnY3NzL0NTU1N0
eWxlU2hlZXQuaCcsCiAgICAgICAgICAgICAnY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3Bw
JywKICAgICAgICAgICAgICdjc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5oJywKKyAgICAgICAg
ICAgICdjc3MvQ1NTVHJhaXQuY3BwJywKKyAgICAgICAgICAgICdjc3MvQ1NTVHJhaXQuaCcsCiAg
ICAgICAgICAgICAnY3NzL0NTU1VuaWNvZGVSYW5nZVZhbHVlLmNwcCcsCiAgICAgICAgICAgICAn
Y3NzL0NTU1VuaWNvZGVSYW5nZVZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NVbmtub3du
UnVsZS5oJywKQEAgLTI1NDMsNiArMjU0NSw3IEBACiAgICAgICAgICAgICAnY3NzL1dlYktpdENT
U01hdHJpeC5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NNYXRyaXguaCcsCiAgICAg
ICAgICAgICAnY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCcsCisgICAgICAgICAgICAn
Y3NzL1dlYmtpdE1peGluVmFsdWUuaCcsCiAgICAgICAgICAgICAnZG9tL0FjdGl2ZURPTU9iamVj
dC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9BdHRyLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0F0
dHJpYnV0ZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA1NGMwMDk5YTMwMWI1Nzg4MDEzMmVlMDAw
MmE5MjQ4ZWEzZTViYWEzLi45Njg1OTVmOGExNzAyOWI0MGE5NWZlN2U3MTA5MjI0NWFkNWM1ZDZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybwpAQCAtNDE2LDYgKzQxNiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNz
cy9DU1NTdHlsZVJ1bGUuY3BwIFwKICAgICBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgXAogICAg
IGNzcy9DU1NTdHlsZVNoZWV0LmNwcCBcCisgICAgY3NzL0NTU1RyYWl0LmNwcCBcCiAgICAgY3Nz
L0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwIFwKICAgICBjc3MvQ1NTVW5pY29kZVJhbmdlVmFs
dWUuY3BwIFwKICAgICBjc3MvQ1NTVmFsdWVMaXN0LmNwcCBcCkBAIC0xMzczLDYgKzEzNzQsNyBA
QCBIRUFERVJTICs9IFwKICAgICBjc3MvQ1NTU3R5bGVSdWxlLmggXAogICAgIGNzcy9DU1NTdHls
ZVNlbGVjdG9yLmggXAogICAgIGNzcy9DU1NTdHlsZVNoZWV0LmggXAorICAgIGNzcy9DU1NUcmFp
dC5oIFwKICAgICBjc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5oIFwKICAgICBjc3MvQ1NTVW5p
Y29kZVJhbmdlVmFsdWUuaCBcCiAgICAgY3NzL0NTU1ZhbHVlTGlzdC5oIFwKQEAgLTEzOTcsNiAr
MTM5OSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgg
XAogICAgIGNzcy9XZWJLaXRDU1NNYXRyaXguaCBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9y
bVZhbHVlLmggXAorICAgIGNzcy9XZWJraXRNaXhpblZhbHVlLmggXAogICAgIGRvbS9BY3RpdmVE
T01PYmplY3QuaCBcCiAgICAgZG9tL0F0dHIuaCBcCiAgICAgZG9tL0F0dHJpYnV0ZS5oIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOTJjZTg4
ZGFiZTgxMjgzOTE0ODMzOWFjMTI4Zjc2NGFkYmFmYmQwMi4uY2I1M2Y5ZjhkODg2YTMwYjVhNGM5
ODVlMGFiNTE5NmUwNjU3NTFiNCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKQEAgLTMxOTQ2LDYgKzMxOTQ2LDE0IEBACiAJCQkJPgogCQkJPC9GaWxl
PgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NUcmFpdC5jcHAiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NUcmFp
dC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxj
c3NcQ1NTVW5pY29kZVJhbmdlVmFsdWUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTMyMTgx
LDYgKzMyMTg5LDEwIEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cY3NzXFdlYmtpdE1peGluVmFsdWUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCTwvRmls
dGVyPgogCQk8RmlsdGVyCiAJCQlOYW1lPSJyZW5kZXJpbmciCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzNiMWMzM2Q2NDBiMTFm
ZWE3M2YyNGI4YTAwMGJiNTMxMzVhNWNkNy4uODYxMDY5MDQwM2VhYTMyY2IxMGJkZTdkYTBkNzc5
ZTAyNzc2NzA3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNDA3Miw2ICs0MDcyLDkgQEAKIAkJQUJEREZFN0EwQTVDNkU3MDAw
QTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBQkRERkU3NDBBNUM2RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxp
c3QuaCAqLzsgfTsKIAkJQUJGRTdFMTIwRDMyRkFGNjAwNjZGNEQyIC8qIE1lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEFCRkU3RTEwMEQzMkZBRjUwMDY2RjREMiAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgKi87
IH07CiAJCUFCRkU3RTEzMEQzMkZBRjYwMDY2RjREMiAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJGRTdFMTEw
RDMyRkFGNTAwNjZGNEQyIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRzLmggKi87IH07CisJCUFDMTJB
MDlDMTMzNkMxQkQwMDY1NDNBMiAvKiBXZWJraXRNaXhpblZhbHVlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQzEyQTA5QjEzMzZDMUJEMDA2NTQzQTIg
LyogV2Via2l0TWl4aW5WYWx1ZS5oICovOyB9OworCQlBQ0Y5OEE1NDEyQkYyQjc2MDBGOTc3QUQg
LyogQ1NTVHJhaXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQUNGOThBNTIxMkJGMkI3NjAwRjk3N0FEIC8qIENTU1RyYWl0LmNwcCAqLzsgfTsKKwkJ
QUNGOThBNTUxMkJGMkI3NjAwRjk3N0FEIC8qIENTU1RyYWl0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQ0Y5OEE1MzEyQkYyQjc2MDBGOTc3QUQgLyog
Q1NTVHJhaXQuaCAqLzsgfTsKIAkJQURERjFBRDcxMjU3Q0Q5QTAwMDNBNzU5IC8qIFJlbmRlclNW
R1BhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFE
REYxQUQ1MTI1N0NEOUEwMDAzQTc1OSAvKiBSZW5kZXJTVkdQYXRoLmggKi87IH07CiAJCUIwMTQ5
RTdEMTFBNEIyMTUwMDE5NkE3QiAvKiBBc3luY0ltYWdlUmVzaXplci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMDE0OUU3OTExQTRCMjE1MDAxOTZB
N0IgLyogQXN5bmNJbWFnZVJlc2l6ZXIuY3BwICovOyB9OwogCQlCMDE0OUU3RTExQTRCMjE1MDAx
OTZBN0IgLyogQXN5bmNJbWFnZVJlc2l6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIwMTQ5RTdBMTFBNEIyMTUwMDE5NkE3QiAvKiBBc3luY0ltYWdl
UmVzaXplci5oICovOyB9OwpAQCAtMTAzMDUsNiArMTAzMDgsOSBAQAogCQlBQkRERkU3NDBBNUM2
RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlck1lbnVMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUFCRkU3RTEwMEQzMkZBRjUwMDY2RjREMiAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUNvbnRyb2xFbGVtZW50cy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFCRkU3RTExMEQzMkZBRjUwMDY2RjRE
MiAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYUNvbnRyb2xFbGVtZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBQzEyQTA5QjEzMzZDMUJEMDA2NTQzQTIgLyogV2Via2l0TWl4aW5WYWx1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJraXRNaXhpblZhbHVlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUFDRjk4QTUyMTJCRjJCNzYwMEY5NzdBRCAvKiBDU1NUcmFpdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NUcmFpdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFDRjk4QTUzMTJCRjJCNzYwMEY5NzdBRCAvKiBD
U1NUcmFpdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NUcmFpdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRERGMUFENDEyNTdDRDlBMDAwM0E3NTkgLyog
UmVuZGVyU1ZHUGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW5kZXJTVkdQYXRoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURERjFBRDUx
MjU3Q0Q5QTAwMDNBNzU5IC8qIFJlbmRlclNWR1BhdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVuZGVyU1ZHUGF0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCMDE0OUU3OTExQTRCMjE1MDAxOTZBN0IgLyogQXN5bmNJbWFnZVJlc2l6ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXN5bmNJbWFnZVJlc2l6ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg3NzQsNiArMTg3ODAsOCBAQAogCQkJCTg1
OEMzOTEwMEFBOEZGMDAwMEIxODdBNCAvKiBDU1NTdHlsZVNoZWV0LmlkbCAqLywKIAkJCQlCQzgw
Qzk4NTBDRDI5NEVFMDBBMEI3QjMgLyogQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5jcHAgKi8sCiAJ
CQkJQkM4MEM5ODYwQ0QyOTRFRTAwQTBCN0IzIC8qIENTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuaCAq
LywKKwkJCQlBQ0Y5OEE1MjEyQkYyQjc2MDBGOTc3QUQgLyogQ1NTVHJhaXQuY3BwICovLAorCQkJ
CUFDRjk4QTUzMTJCRjJCNzYwMEY5NzdBRCAvKiBDU1NUcmFpdC5oICovLAogCQkJCTM3MUY1M0U4
MEQyNzA0RjkwMEVDRTBENSAvKiBDU1NVbmljb2RlUmFuZ2VWYWx1ZS5jcHAgKi8sCiAJCQkJMzcx
RjUzRTcwRDI3MDRGOTAwRUNFMEQ1IC8qIENTU1VuaWNvZGVSYW5nZVZhbHVlLmggKi8sCiAJCQkJ
QTgwRTZDQ0UwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Vua25vd25SdWxlLmggKi8sCkBAIC0xODg1
OSw2ICsxODg2Nyw3IEBACiAJCQkJQkM5QUREN0YwQ0M0MDkyMjAwMDk4QzRDIC8qIFdlYktpdENT
U1RyYW5zZm9ybVZhbHVlLmNwcCAqLywKIAkJCQlCQzlBREQyMjBDQzQwMzI2MDAwOThDNEMgLyog
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCAqLywKIAkJCQkzMTYxMUU1NDBFMUM0RDRBMDBGNkE1
NzkgLyogV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaWRsICovLAorCQkJCUFDMTJBMDlCMTMzNkMx
QkQwMDY1NDNBMiAvKiBXZWJraXRNaXhpblZhbHVlLmggKi8sCiAJCQkJNENERTU0RUMwRTU1Nzk3
ODAwODlFMjZDIC8qIHdtbC5jc3MgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNzczsKQEAgLTE5OTAx
LDYgKzE5OTEwLDcgQEAKIAkJCQlCQzc3MkI0MDBDNEVBOTFFMDA4MzI4NUYgLyogQ1NTU3R5bGVT
ZWxlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTgwMDcwQTE5NTE2RTAwQThFRjVGIC8q
IENTU1N0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODBDOTg4MENEMjk0RUUwMEEw
QjdCMyAvKiBDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBQ0Y5
OEE1NTEyQkYyQjc2MDBGOTc3QUQgLyogQ1NTVHJhaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3
MUY1M0U5MEQyNzA0RjkwMEVDRTBENSAvKiBDU1NVbmljb2RlUmFuZ2VWYWx1ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJREQ3Q0RGMjUwQTIzQ0Y5ODAwMDY5OTI4IC8qIENTU1Vua25vd25SdWxlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNFRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWUu
aCBpbiBIZWFkZXJzICovLApAQCAtMjI2NzksNiArMjI2ODksNyBAQAogCQkJCTMxOTQ2MjA0MTMw
MjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMTlFNjlCMzEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTlFNjlCNjEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9u
TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUMxMkEwOUMxMzM2QzFCRDAwNjU0M0EyIC8qIFdl
YmtpdE1peGluVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjMxOTYsNiArMjMyMDcsNyBAQAog
CQkJCUJDNzcyQjNGMEM0RUE5MUUwMDgzMjg1RiAvKiBDU1NTdHlsZVNlbGVjdG9yLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4RUE4MDA4MEExOTUxNkUwMEE4RUY1RiAvKiBDU1NTdHlsZVNoZWV0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDODBDOTg3MENEMjk0RUUwMEEwQjdCMyAvKiBDU1NU
aW1pbmdGdW5jdGlvblZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFDRjk4QTU0MTJCRjJC
NzYwMEY5NzdBRCAvKiBDU1NUcmFpdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzFGNTNFQTBE
MjcwNEY5MDBFQ0UwRDUgLyogQ1NTVW5pY29kZVJhbmdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUFCQTc2Q0IxMUQyMEU1NzAwNEMyMDFDIC8qIENTU1ZhbHVlS2V5d29yZHMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRTQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlTGlz
dC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggNDEzMjA3NTcwYTQzYmQyNTZmZjM3MThmOTM4
ZDhiYzM2ZjJjYWQyMi4uYjkyZTk2OTBkZDJiNzQ5MjZlNzg2ZjJiZTg3NjJlNjkxZjg4OWMwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKQEAgLTgxMSw2ICs4MTEsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoaW50IHByb3BlcgogCiAgICAg
c3dpdGNoIChzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wZXJ0eUlEKSkgewogICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5SW52YWxpZDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE1peGluOgogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJh
Y2tncm91bmRDb2xvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFy
LnkgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CmluZGV4IDg2NTg2NzQzMzlmNGEw
OTVlMjBkYzIyOGFjYWU1ZDc2ZjYwNDgyZjcuLjkzYjE0MDcxMmRkNGU3OTM3YjZkZTY3MjgyYWUw
NTk1YTljYWUxOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQpAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIk1lZGlhUXVlcnlFeHAuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZVJ1
bGUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiCisjaW5jbHVkZSAiV2Vi
a2l0TWl4aW5WYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8
c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CkBAIC0xNTcsNiArMTU4LDkgQEAgc3RhdGlj
IGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNlcikKICV0b2tlbiA8bWFy
Z2luQm94PiBSSUdIVE1JRERMRV9TWU0KICV0b2tlbiA8bWFyZ2luQm94PiBSSUdIVEJPVFRPTV9T
WU0KIAorJXRva2VuIFdFQktJVF9UUkFJVF9TWU0KKyV0b2tlbiBXRUJLSVRfTUlYSU5fU1lNCisK
ICV0b2tlbiBBVEtFWVdPUkQKIAogJXRva2VuIElNUE9SVEFOVF9TWU0KQEAgLTIxMyw2ICsyMTcs
NyBAQCBzdGF0aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCogcGFyc2VyKQog
JXR5cGUgPHJ1bGVMaXN0PiBibG9ja19ydWxlX2xpc3QgCiAldHlwZSA8cnVsZT4gYmxvY2tfcnVs
ZQogJXR5cGUgPHJ1bGU+IGJsb2NrX3ZhbGlkX3J1bGUKKyV0eXBlIDxydWxlPiB3ZWJraXRfdHJh
aXRfcnVsZQogCiAldHlwZSA8c3RyaW5nPiBtYXliZV9uc19wcmVmaXgKIApAQCAtMzM1LDYgKzM0
MCwxOCBAQCB3ZWJraXRfc2VsZWN0b3I6CiAgICAgfQogOwogCit3ZWJraXRfdHJhaXRfcnVsZToK
KyAgICBXRUJLSVRfVFJBSVRfU1lNIG1heWJlX3NwYWNlIElERU5UIG1heWJlX3NwYWNlICd7JyBt
YXliZV9zcGFjZSBkZWNsYXJhdGlvbl9saXN0ICd9JyB7CisgICAgICAgICQkID0gMDsKKyAgICAg
ICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyNpZiBF
TkFCTEUoQ1NTX01JWElOUykKKyAgICAgICAgJCQgPSBwLT5jcmVhdGVXZWJraXRUcmFpdCgkMyk7
CisjZWxzZQorICAgICAgICBwLT5jbGVhclByb3BlcnRpZXMoKTsKKyNlbmRpZgorICAgIH0KKzsK
KwogbWF5YmVfc3BhY2U6CiAgICAgLyogZW1wdHkgKi8gJXByZWMgVU5JTVBPUlRBTlRfVE9LCiAg
IHwgbWF5YmVfc3BhY2UgV0hJVEVTUEFDRQpAQCAtMzgwLDkgKzM5Nyw5IEBAIGlnbm9yZWRfY2hh
cnNldDoKIHJ1bGVfbGlzdDoKICAgIC8qIGVtcHR5ICovCiAgfCBydWxlX2xpc3QgcnVsZSBtYXli
ZV9zZ21sIHsKLSAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFy
c2VyKTsKLSAgICAgaWYgKCQyICYmIHAtPm1fc3R5bGVTaGVldCkKLSAgICAgICAgIHAtPm1fc3R5
bGVTaGVldC0+YXBwZW5kKCQyKTsKKyAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQ
YXJzZXIqPihwYXJzZXIpOworICAgIGlmICgkMiAmJiBwLT5tX3N0eWxlU2hlZXQpCisgICAgICAg
IHAtPm1fc3R5bGVTaGVldC0+YXBwZW5kKCQyKTsKICB9CiAgOwogCkBAIC0zOTAsNiArNDA3LDcg
QEAgdmFsaWRfcnVsZToKICAgICBiZWZvcmVfcnVsZXNldCBydWxlc2V0IHsKICAgICAgICAgJCQg
PSAkMjsKICAgICB9CisgIHwgd2Via2l0X3RyYWl0X3J1bGUKICAgfCBtZWRpYQogICB8IHBhZ2UK
ICAgfCBmb250X2ZhY2UKQEAgLTEyNDIsNiArMTI2MCwxNyBAQCBkZWNsYXJhdGlvbjoKICAgICAg
ICAgcC0+bWFya1Byb3BlcnR5RW5kKCQ1LCBpc1Byb3BlcnR5UGFyc2VkKTsKICAgICB9CiAgICAg
fAorICAgIFdFQktJVF9NSVhJTl9TWU0gbWF5YmVfc3BhY2UgSURFTlQgbWF5YmVfc3BhY2Ugewor
ICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOwor
ICAgICAgICAkJCA9IGZhbHNlOworI2lmIEVOQUJMRShDU1NfTUlYSU5TKQorICAgICAgICBTdHJp
bmcgdmFsdWUgPSAkMzsKKyAgICAgICAgcC0+YWRkUHJvcGVydHkoc3RhdGljX2Nhc3Q8aW50PihD
U1NQcm9wZXJ0eVdlYmtpdE1peGluKSwgV2Via2l0TWl4aW5WYWx1ZTo6Y3JlYXRlKHZhbHVlKSwg
ZmFsc2UpOworICAgICAgICAkJCA9IHRydWU7CisjZW5kaWYKKyAgICAgICAgcC0+bWFya1Byb3Bl
cnR5RW5kKGZhbHNlLCAkJCk7CisgICAgfQorICAgIHwKICAgICBwcm9wZXJ0eSBlcnJvciB7CiAg
ICAgICAgICQkID0gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggZjNmMjZhYTBlZjc1M2U5YTlkZmQ3ODBl
MDA0MDY4NmRhYjI4NTdhMC4uOTNjNjg1MDFkMTcyNzVjNWUxZmVlNzY1ZmNiODdiOTQzZmY4MzE4
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uY3BwCkBAIC05MCw3ICs5MCwxMCBAQCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Q1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oQ1NTUnVsZSogcGFyZW50LCBjb25zdCBDUwogICAgICAg
ICBpZiAoY2FuZGlkYXRlcy5jb250YWlucyhwcm9wZXJ0eS0+aWQoKSkpIHsKICAgICAgICAgICAg
IGlmICghaW1wb3J0YW50ICYmIGNhbmRpZGF0ZXMuZ2V0KHByb3BlcnR5LT5pZCgpKSkKICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHJlbW92ZVByb3BlcnR5KHByb3BlcnR5
LT5pZCgpLCBmYWxzZSk7CisjaWYgRU5BQkxFKENTU19NSVhJTlMpCisgICAgICAgICAgICBpZiAo
cHJvcGVydHktPmlkKCkgIT0gQ1NTUHJvcGVydHlXZWJraXRNaXhpbikKKyAgICAgICAgICAgICAg
ICByZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eS0+aWQoKSwgZmFsc2UpOworI2VuZGlmCiAgICAgICAg
IH0KICAgICAgICAgbV9wcm9wZXJ0aWVzLmFwcGVuZCgqcHJvcGVydHkpOwogICAgICAgICBjYW5k
aWRhdGVzLnNldChwcm9wZXJ0eS0+aWQoKSwgaW1wb3J0YW50KTsKQEAgLTYzNiwxMSArNjM5LDE0
IEBAIHZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmFkZFBhcnNlZFByb3BlcnRpZXMo
Y29uc3QgQ1NTUHJvcGVydHkqIGNvbnN0KiBwCiAgICAgQVNTRVJUKCFtX2l0ZXJhdG9yQ291bnQp
OwogICAgIAogICAgIG1fcHJvcGVydGllcy5yZXNlcnZlQ2FwYWNpdHkobnVtUHJvcGVydGllcyk7
Ci0gICAgCisKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVByb3BlcnRpZXM7ICsraSkgewog
ICAgICAgICAvLyBPbmx5IGFkZCBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBubyAhaW1wb3J0YW50IGNv
dW50ZXJwYXJ0IHByZXNlbnQKICAgICAgICAgaWYgKCFnZXRQcm9wZXJ0eVByaW9yaXR5KHByb3Bl
cnRpZXNbaV0tPmlkKCkpIHx8IHByb3BlcnRpZXNbaV0tPmlzSW1wb3J0YW50KCkpIHsKLSAgICAg
ICAgICAgIHJlbW92ZVByb3BlcnR5KHByb3BlcnRpZXNbaV0tPmlkKCksIGZhbHNlKTsKKyNpZiBF
TkFCTEUoQ1NTX01JWElOUykKKyAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzW2ldLT5pZCgpICE9
IENTU1Byb3BlcnR5V2Via2l0TWl4aW4pCisgICAgICAgICAgICAgICAgcmVtb3ZlUHJvcGVydHko
cHJvcGVydGllc1tpXS0+aWQoKSwgZmFsc2UpOworI2VuZGlmCiAgICAgICAgICAgICBBU1NFUlQo
cHJvcGVydGllc1tpXSk7CiAgICAgICAgICAgICBtX3Byb3BlcnRpZXMuYXBwZW5kKCpwcm9wZXJ0
aWVzW2ldKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA1MzdmY2Fj
NTRiYzUwOTZkYjRlNmZhYWZkY2E1OTdmNTcwOGIyYmRiLi41OWNhZTUyNWUxZTU2ZGM5NDg1YjE4
M2IwNGRhZmU3YzBjNjBmYWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNTAsNiAr
NTAsNyBAQAogI2luY2x1ZGUgIkNTU1NlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVSdWxl
LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIkNTU1RyYWl0LmgiCiAj
aW5jbHVkZSAiQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1VuaWNvZGVS
YW5nZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgpAQCAtNjAyNCw2ICs2
MDI1LDE5IEBAIENTU1J1bGUqIENTU1BhcnNlcjo6Y3JlYXRlU3R5bGVSdWxlKFZlY3RvcjxPd25Q
dHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4qIHNlbGVjdG9yCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAorI2lmIEVOQUJMRShDU1NfTUlYSU5TKQorQ1NTUnVsZSogQ1NTUGFyc2VyOjpjcmVhdGVXZWJr
aXRUcmFpdChDU1NQYXJzZXJTdHJpbmcmIHRyYWl0TmFtZSkKK3sKKyAgICBDU1NSdWxlKiByZXN1
bHQgPSAwOworICAgIFJlZlB0cjxDU1NUcmFpdD4gdHJhaXQgPSBDU1NUcmFpdDo6Y3JlYXRlKG1f
c3R5bGVTaGVldCwgdHJhaXROYW1lKTsKKyAgICB0cmFpdC0+c2V0RGVjbGFyYXRpb24oQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZSh0cmFpdC5nZXQoKSwgbV9wYXJzZWRQcm9wZXJ0
aWVzLCBtX251bVBhcnNlZFByb3BlcnRpZXMpKTsKKyAgICByZXN1bHQgPSB0cmFpdC5nZXQoKTsK
KyAgICBtX3BhcnNlZFN0eWxlT2JqZWN0cy5hcHBlbmQodHJhaXQucmVsZWFzZSgpKTsKKyAgICBj
bGVhclByb3BlcnRpZXMoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorI2VuZGlmCisKIENTU1J1
bGUqIENTU1BhcnNlcjo6Y3JlYXRlRm9udEZhY2VSdWxlKCkKIHsKICAgICBtX2FsbG93SW1wb3J0
UnVsZXMgPSBtX2FsbG93TmFtZXNwYWNlRGVjbGFyYXRpb25zID0gZmFsc2U7CkBAIC02MjM4LDcg
KzYyNTIsMTAgQEAgdm9pZCBDU1NQYXJzZXI6Om1hcmtQcm9wZXJ0eUVuZChib29sIGlzSW1wb3J0
YW50Rm91bmQsIGJvb2wgaXNQcm9wZXJ0eVBhcnNlZCkKICAgICAgICAgICAgIHByb3BlcnR5U3Ry
aW5nID0gcHJvcGVydHlTdHJpbmcubGVmdChwcm9wZXJ0eVN0cmluZy5sZW5ndGgoKSAtIDEpOwog
ICAgICAgICBWZWN0b3I8U3RyaW5nPiBwcm9wZXJ0eUNvbXBvbmVudHM7CiAgICAgICAgIHNpemVf
dCBjb2xvbkluZGV4ID0gcHJvcGVydHlTdHJpbmcuZmluZCgiOiIpOwotICAgICAgICBBU1NFUlQo
Y29sb25JbmRleCAhPSBub3RGb3VuZCk7CisgICAgICAgIGlmIChjb2xvbkluZGV4ID09IG5vdEZv
dW5kKSB7CisgICAgICAgICAgICBjb2xvbkluZGV4ID0gcHJvcGVydHlTdHJpbmcuZmluZCgiICIp
OworICAgICAgICAgICAgQVNTRVJUKHByb3BlcnR5U3RyaW5nLmxlZnQoY29sb25JbmRleCkuc3Ry
aXBXaGl0ZVNwYWNlKCkgPT0gU3RyaW5nKCJALXdlYmtpdC1taXhpbiIpKTsKKyAgICAgICAgfQog
CiAgICAgICAgIFN0cmluZyBuYW1lID0gcHJvcGVydHlTdHJpbmcubGVmdChjb2xvbkluZGV4KS5z
dHJpcFdoaXRlU3BhY2UoKTsKICAgICAgICAgU3RyaW5nIHZhbHVlID0gcHJvcGVydHlTdHJpbmcu
c3Vic3RyaW5nKGNvbG9uSW5kZXggKyAxLCBwcm9wZXJ0eVN0cmluZy5sZW5ndGgoKSkuc3RyaXBX
aGl0ZVNwYWNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggZjBlZmVlNWNlNGIzYjY4MDg1
NzQwNWQ0YWU0NTg1YjFmYzgyZjk0OC4uZDE2MDk5Y2FjMzQwN2NlMzAzYTk2OWJkNDEzZGFjYWZj
NzIzOWNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtNDUsNiArNDUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQ1NTU2VsZWN0b3I7CiAgICAgY2xhc3MgQ1NTU3R5bGVS
dWxlOwogICAgIGNsYXNzIENTU1N0eWxlU2hlZXQ7CisgICAgY2xhc3MgQ1NTVHJhaXQ7CiAgICAg
Y2xhc3MgQ1NTVmFsdWU7CiAgICAgY2xhc3MgQ1NTVmFsdWVMaXN0OwogICAgIGNsYXNzIERvY3Vt
ZW50OwpAQCAtMjA1LDYgKzIwNiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZv
aWQgc3RhcnREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKTsKICAgICAgICAgdm9pZCBlbmREZWNs
YXJhdGlvbnNGb3JNYXJnaW5Cb3goKTsKIAorI2lmIEVOQUJMRShDU1NfTUlYSU5TKQorICAgICAg
ICBDU1NSdWxlKiBjcmVhdGVXZWJraXRUcmFpdChDU1NQYXJzZXJTdHJpbmcmIHRyYWl0TmFtZSk7
CisjZW5kaWYKKwogICAgICAgICBNZWRpYVF1ZXJ5RXhwKiBjcmVhdGVGbG9hdGluZ01lZGlhUXVl
cnlFeHAoY29uc3QgQXRvbWljU3RyaW5nJiwgQ1NTUGFyc2VyVmFsdWVMaXN0Kik7CiAgICAgICAg
IFBhc3NPd25QdHI8TWVkaWFRdWVyeUV4cD4gc2lua0Zsb2F0aW5nTWVkaWFRdWVyeUV4cChNZWRp
YVF1ZXJ5RXhwKik7CiAgICAgICAgIFZlY3RvcjxPd25QdHI8TWVkaWFRdWVyeUV4cD4gPiogY3Jl
YXRlRmxvYXRpbmdNZWRpYVF1ZXJ5RXhwTGlzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1Byb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5j
cHAKaW5kZXggMWUwNGRhNzMzMDMyMWRkMTVjMDRiM2FhOTA4MjY1ZGZiYjJiMTc3MC4uODQ2MTIx
ZDFmNDVlZGM4Y2ZjZjcyYmNlNmIzMmE3ZTUzNjY2MWZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydHkuY3BwCkBAIC0yOSw3ICsyOSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN0cmlu
ZyBDU1NQcm9wZXJ0eTo6Y3NzVGV4dCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZyhnZXRQ
cm9wZXJ0eU5hbWUoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4oaWQoKSkpKSArICI6ICIgKyBt
X3ZhbHVlLT5jc3NUZXh0KCkgKyAoaXNJbXBvcnRhbnQoKSA/ICIgIWltcG9ydGFudCIgOiAiIikg
KyAiOyAiOworICAgIENTU1Byb3BlcnR5SUQgcHJvcElEID0gc3RhdGljX2Nhc3Q8Q1NTUHJvcGVy
dHlJRD4oaWQoKSk7CisgICAgU3RyaW5nIHNlcGFyYXRvcigiOiAiKTsKKyNpZiBFTkFCTEUoQ1NT
X01JWElOUykKKyAgICBpZiAocHJvcElEID09IENTU1Byb3BlcnR5V2Via2l0TWl4aW4pCisgICAg
ICAgIHNlcGFyYXRvciA9IFN0cmluZygiICIpOworI2VuZGlmCisgICAgcmV0dXJuIFN0cmluZyhn
ZXRQcm9wZXJ0eU5hbWUocHJvcElEKSkgKyBzZXBhcmF0b3IgKyBtX3ZhbHVlLT5jc3NUZXh0KCkg
KyAoaXNJbXBvcnRhbnQoKSA/ICIgIWltcG9ydGFudCIgOiAiIikgKyAiOyAiOwogfQogCiBib29s
IG9wZXJhdG9yPT0oY29uc3QgQ1NTUHJvcGVydHkmIGEsIGNvbnN0IENTU1Byb3BlcnR5JiBiKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCAzZmQ4NDNlNDc4MjYwYmQ0
YjU1ZmI0MjZkY2YwNzc3Mjc1MDUyNmFhLi43MTM2MGJmYzczMWUzMmUwYzljYzU5MzQ3ZDI1MDQz
ZWY0ZWVhNDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1l
cy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMjcw
LDYgKzI3MCw3IEBAIHotaW5kZXgKIC13ZWJraXQtbWF4LWxvZ2ljYWwtaGVpZ2h0CiAtd2Via2l0
LW1pbi1sb2dpY2FsLXdpZHRoCiAtd2Via2l0LW1pbi1sb2dpY2FsLWhlaWdodAorQC13ZWJraXQt
bWl4aW4KIC13ZWJraXQtbmJzcC1tb2RlCiAtd2Via2l0LXBhZGRpbmctYWZ0ZXIKIC13ZWJraXQt
cGFkZGluZy1iZWZvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eVNvdXJjZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0
YS5jcHAKaW5kZXggZWI5YzJjMWY2NmNkZjBjMjNhNTZhODRmZjY2NDc5ZTVlZWJjODNiNi4uZWNh
ZGY2NDRkYzJiZjRkNTFlYjFiYzAxMWFmZDJjY2YyOGY3MjA5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5jcHAKQEAgLTg5LDcgKzg5LDEwIEBAIFN0cmlu
ZyBDU1NQcm9wZXJ0eVNvdXJjZURhdGE6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgcmV0dXJu
IFN0cmluZygpOwogCiAgICAgU3RyaW5nIHJlc3VsdCA9IG5hbWU7Ci0gICAgcmVzdWx0ICs9ICI6
ICI7CisgICAgaWYgKHJlc3VsdCA9PSBTdHJpbmcoIkAtd2Via2l0LW1peGluIikpCisgICAgICAg
IHJlc3VsdCArPSAiICI7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgKz0gIjogIjsKICAgICBy
ZXN1bHQgKz0gdmFsdWU7CiAgICAgaWYgKGltcG9ydGFudCkKICAgICAgICAgcmVzdWx0ICs9IGlt
cG9ydGFudFN1ZmZpeDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZS5oCmluZGV4IDRkMmRlOGFhOTIxZDBhYmY2OGRh
MjhhNjUxOTI3NmViNjBmMDY4MjkuLmY1NmI3ZTNmMjMwYWFiNzgyN2JlYTZiYmE1NzE4N2MzNTg3
MDYyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGUuaApAQCAtNDgsNyArNDgsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIFBBR0VfUlVMRSwKICAgICAgICAgLy8gNyB1c2VkIHRvIGJlIFZBUklBQkxFU19SVUxFCiAg
ICAgICAgIFdFQktJVF9LRVlGUkFNRVNfUlVMRSA9IDgsCi0gICAgICAgIFdFQktJVF9LRVlGUkFN
RV9SVUxFCisgICAgICAgIFdFQktJVF9LRVlGUkFNRV9SVUxFLAorICAgICAgICBXRUJLSVRfVFJB
SVRfUlVMRQogICAgIH07CiAKICAgICAvLyBGSVhNRTogQ2hhbmdlIHRvIHJldHVybiBDU1NSdWxl
VHlwZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKaW5kZXggZmFmNjBiMDU3MmVkZDJi
YjhmOWY3M2Q3MmZmODcwOGU3YzYxN2Q4MS4uNTI4OTdkYmMwMzQ5NDE3Y2JiZjYzYjMzYTViOTQ3
MDI5ZjhhMGJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKQEAgLTI5LDYgKzI5
LDggQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXQuaCIKIAor
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBD
U1NTdHlsZVJ1bGU6OkNTU1N0eWxlUnVsZShDU1NTdHlsZVNoZWV0KiBwYXJlbnQsIGludCBzb3Vy
Y2VMaW5lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDA0NmY0
ZjhkOGI2YjRlNmY1OTg4MWY3MGM1YmNiNWJkNGFhZDE0MDAuLmJkMDY2MGM3MGEzNDBmNmU0ZmU4
NGYwNjFmNTllNzczOTQ3NmZhNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNs
dWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5o
IgorI2luY2x1ZGUgIkNTU1RyYWl0LmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5j
bHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDb3VudGVyLmgiCkBAIC05Niw2ICs5Nyw3
IEBACiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgi
CisjaW5jbHVkZSAiV2Via2l0TWl4aW5WYWx1ZS5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCiAj
aW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAg
LTM5OSw2ICs0MDEsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZFN0eWxlUnVsZShDU1NTdHls
ZVJ1bGUqIGl0ZW0pOwogICAgIHZvaWQgYWRkUnVsZShDU1NTdHlsZVJ1bGUqIHJ1bGUsIENTU1Nl
bGVjdG9yKiBzZWwpOworI2lmIEVOQUJMRShDU1NfTUlYSU5TKQorICAgIHZvaWQgYWRkVHJhaXQo
Q1NTVHJhaXQqKTsKKyNlbmRpZgogICAgIHZvaWQgYWRkUGFnZVJ1bGUoQ1NTU3R5bGVSdWxlKiBy
dWxlLCBDU1NTZWxlY3Rvciogc2VsKTsKICAgICB2b2lkIGFkZFRvUnVsZVNldChBdG9taWNTdHJp
bmdJbXBsKiBrZXksIEF0b21SdWxlTWFwJiBtYXAsCiAgICAgICAgICAgICAgICAgICAgICAgQ1NT
U3R5bGVSdWxlKiBydWxlLCBDU1NTZWxlY3Rvciogc2VsKTsKQEAgLTQxMyw2ICs0MTgsOSBAQCBw
dWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiogZ2V0UHNldWRvUnVsZXMoQXRvbWlj
U3RyaW5nSW1wbCoga2V5KSBjb25zdCB7IHJldHVybiBtX3BzZXVkb1J1bGVzLmdldChrZXkpOyB9
CiAgICAgY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiogZ2V0VW5pdmVyc2FsUnVsZXMoKSBjb25zdCB7
IHJldHVybiAmbV91bml2ZXJzYWxSdWxlczsgfQogICAgIGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4q
IGdldFBhZ2VSdWxlcygpIGNvbnN0IHsgcmV0dXJuICZtX3BhZ2VSdWxlczsgfQorI2lmIEVOQUJM
RShDU1NfTUlYSU5TKQorICAgIExpc3RIYXNoU2V0PENTU1RyYWl0Kj4qIGdldFRyYWl0KEF0b21p
Y1N0cmluZ0ltcGwqIG5hbWUpOworI2VuZGlmCiAgICAgCiBwdWJsaWM6CiAgICAgQXRvbVJ1bGVN
YXAgbV9pZFJ1bGVzOwpAQCAtNDIxLDYgKzQyOSw5IEBAIHB1YmxpYzoKICAgICBBdG9tUnVsZU1h
cCBtX3BzZXVkb1J1bGVzOwogICAgIFZlY3RvcjxSdWxlRGF0YT4gbV91bml2ZXJzYWxSdWxlczsK
ICAgICBWZWN0b3I8UnVsZURhdGE+IG1fcGFnZVJ1bGVzOworI2lmIEVOQUJMRShDU1NfTUlYSU5T
KQorICAgIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIExpc3RIYXNoU2V0PENTU1RyYWl0Kj4q
ID4gbV90cmFpdHM7CisjZW5kaWYKICAgICB1bnNpZ25lZCBtX3J1bGVDb3VudDsKICAgICBib29s
IG1fYXV0b1Nocmlua1RvRml0RW5hYmxlZDsKIH07CkBAIC0zMTc3LDYgKzMxODgsOSBAQCBSdWxl
U2V0Ojp+UnVsZVNldCgpCiAgICAgZGVsZXRlQWxsVmFsdWVzKG1fY2xhc3NSdWxlcyk7CiAgICAg
ZGVsZXRlQWxsVmFsdWVzKG1fcHNldWRvUnVsZXMpOwogICAgIGRlbGV0ZUFsbFZhbHVlcyhtX3Rh
Z1J1bGVzKTsKKyNpZiBFTkFCTEUoQ1NTX01JWElOUykKKyAgICBkZWxldGVBbGxWYWx1ZXMobV90
cmFpdHMpOworI2VuZGlmCiB9CiAKIApAQCAtMzI3MCwxMSArMzI4NCwzMCBAQCB2b2lkIFJ1bGVT
ZXQ6OmFkZFJ1bGVzRnJvbVNoZWV0KENTU1N0eWxlU2hlZXQqIHNoZWV0LCBjb25zdCBNZWRpYVF1
ZXJ5RXZhbHVhdG9yJgogICAgICAgICAgICAgc3R5bGVTZWxlY3Rvci0+Zm9udFNlbGVjdG9yKCkt
PmFkZEZvbnRGYWNlUnVsZShmb250RmFjZVJ1bGUpOwogICAgICAgICB9IGVsc2UgaWYgKGl0ZW0t
PmlzS2V5ZnJhbWVzUnVsZSgpKQogICAgICAgICAgICAgc3R5bGVTZWxlY3Rvci0+YWRkS2V5ZnJh
bWVTdHlsZShzdGF0aWNfY2FzdDxXZWJLaXRDU1NLZXlmcmFtZXNSdWxlKj4oaXRlbSkpOworI2lm
IEVOQUJMRShDU1NfTUlYSU5TKQorICAgICAgICBlbHNlIGlmIChpdGVtLT5pc1RyYWl0KCkpCisg
ICAgICAgICAgICBhZGRUcmFpdChzdGF0aWNfY2FzdDxDU1NUcmFpdCo+KGl0ZW0pKTsKKyNlbmRp
ZgogICAgIH0KICAgICBpZiAobV9hdXRvU2hyaW5rVG9GaXRFbmFibGVkKQogICAgICAgICBzaHJp
bmtUb0ZpdCgpOwogfQogCisjaWYgRU5BQkxFKENTU19NSVhJTlMpCit2b2lkIFJ1bGVTZXQ6OmFk
ZFRyYWl0KENTU1RyYWl0KiB0cmFpdCkgCit7CisgICAgQXRvbWljU3RyaW5nIG5hbWUgPSB0cmFp
dC0+Z2V0TmFtZSgpOworICAgIGlmICghbV90cmFpdHMuZ2V0KG5hbWUuaW1wbCgpKSkKKyAgICAg
ICAgbV90cmFpdHMuc2V0KG5hbWUuaW1wbCgpLCBuZXcgTGlzdEhhc2hTZXQ8Q1NTVHJhaXQqPigp
KTsKKyAgICBtX3RyYWl0cy5nZXQobmFtZS5pbXBsKCkpLT5hZGQodHJhaXQpOworfQorCitMaXN0
SGFzaFNldDxDU1NUcmFpdCo+KiBSdWxlU2V0OjpnZXRUcmFpdChBdG9taWNTdHJpbmdJbXBsKiBu
YW1lKQoreworICAgIHJldHVybiBtX3RyYWl0cy5nZXQobmFtZSk7Cit9CisjZW5kaWYKKwogdm9p
ZCBSdWxlU2V0OjphZGRTdHlsZVJ1bGUoQ1NTU3R5bGVSdWxlKiBydWxlKQogewogICAgIGlmIChy
dWxlLT5pc1BhZ2VSdWxlKCkpIHsKQEAgLTM0MDcsNDEgKzM0NDAsNjMgQEAgc3RhdGljIExlbmd0
aCBjb252ZXJ0VG9GbG9hdExlbmd0aChDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUs
IFJlbmRlclN0eWwKIH0KIAogdGVtcGxhdGUgPGJvb2wgYXBwbHlGaXJzdD4KLXZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlEZWNsYXJhdGlvbnMoYm9vbCBpc0ltcG9ydGFudCwgaW50IHN0YXJ0
SW5kZXgsIGludCBlbmRJbmRleCkKLXsKLSAgICBpZiAoc3RhcnRJbmRleCA9PSAtMSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgZm9yIChpbnQgaSA9IHN0YXJ0SW5kZXg7IGkgPD0gZW5kSW5kZXg7
IGkrKykgewotICAgICAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZGVjbCA9IG1fbWF0
Y2hlZERlY2xzW2ldOwotICAgICAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y29uc3Rf
aXRlcmF0b3IgZW5kID0gZGVjbC0+ZW5kKCk7Ci0gICAgICAgIGZvciAoQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb246OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZGVjbC0+YmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KSB7Ci0gICAgICAgICAgICBjb25zdCBDU1NQcm9wZXJ0eSYgY3VycmVudCA9ICppdDsK
LSAgICAgICAgICAgIGlmIChpc0ltcG9ydGFudCA9PSBjdXJyZW50LmlzSW1wb3J0YW50KCkpIHsK
LSAgICAgICAgICAgICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50LmlkKCk7Ci0KLSAgICAgICAg
ICAgICAgICBpZiAoYXBwbHlGaXJzdCkgewotICAgICAgICAgICAgICAgICAgICBDT01QSUxFX0FT
U0VSVChmaXJzdENTU1Byb3BlcnR5ID09IENTU1Byb3BlcnR5Q29sb3IsIENTU19jb2xvcl9pc19m
aXJzdF9wcm9wZXJ0eSk7Ci0gICAgICAgICAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKENTU1By
b3BlcnR5Wm9vbSA9PSBDU1NQcm9wZXJ0eUNvbG9yICsgMTQsIENTU196b29tX2lzX2VuZF9vZl9m
aXJzdF9wcm9wX3JhbmdlKTsKLSAgICAgICAgICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoQ1NT
UHJvcGVydHlMaW5lSGVpZ2h0ID09IENTU1Byb3BlcnR5Wm9vbSArIDEsIENTU19saW5lX2hlaWdo
dF9pc19hZnRlcl96b29tKTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBnaXZlIHNwZWNpYWwg
cHJpb3JpdHkgdG8gZm9udC14eHgsIGNvbG9yIHByb3BlcnRpZXMsIGV0YwotICAgICAgICAgICAg
ICAgICAgICBpZiAocHJvcGVydHkgPD0gQ1NTUHJvcGVydHlMaW5lSGVpZ2h0KSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAvLyB3ZSBhcHBseSBsaW5lLWhlaWdodCBsYXRlcgotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5ID09IENTU1Byb3BlcnR5TGluZUhlaWdodCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX2xpbmVIZWlnaHRWYWx1ZSA9IGN1cnJlbnQudmFs
dWUoKTsgCi0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFwcGx5UHJvcGVydHkoY3VycmVudC5pZCgpLCBjdXJyZW50LnZhbHVlKCkpOwor
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseUZyb21TdHlsZURlY2xhcmF0aW9uKENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uICpkZWNsYXJhdGlvbiwgYm9vbCBpc0ltcG9ydGFudCkKK3sKKyAg
ICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gZGVjbGFy
YXRpb24tPmVuZCgpOworICAgIGZvciAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gZGVjbGFyYXRpb24tPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewor
ICAgICAgICBjb25zdCBDU1NQcm9wZXJ0eSYgY3VycmVudCA9ICppdDsKKyAgICAgICAgaW50IHBy
b3BlcnR5ID0gY3VycmVudC5pZCgpOworCisjaWYgRU5BQkxFKENTU19NSVhJTlMpICAgICAgICAK
KyAgICAgICAgaWYgKHByb3BlcnR5ID09IENTU1Byb3BlcnR5V2Via2l0TWl4aW4pIHsKKyAgICAg
ICAgICAgIGlmIChjdXJyZW50LnZhbHVlKCktPmlzUHJpbWl0aXZlVmFsdWUoKSkgeworICAgICAg
ICAgICAgICAgIFdlYmtpdE1peGluVmFsdWUqIHZhbHVlID0gc3RhdGljX2Nhc3Q8V2Via2l0TWl4
aW5WYWx1ZSo+KGN1cnJlbnQudmFsdWUoKSk7CisgICAgICAgICAgICAgICAgTGlzdEhhc2hTZXQ8
Q1NTVHJhaXQqPiogdHJhaXRzID0gbV9hdXRob3JTdHlsZS5nZXQoKS0+Z2V0VHJhaXQoc3RhdGlj
X2Nhc3Q8QXRvbWljU3RyaW5nPih2YWx1ZS0+bWl4aW5OYW1lKCkpLmltcGwoKSk7CisgICAgICAg
ICAgICAgICAgaWYgKHRyYWl0cykgeworICAgICAgICAgICAgICAgICAgICBMaXN0SGFzaFNldDxD
U1NUcmFpdCo+OjppdGVyYXRvciBlbmQgPSB0cmFpdHMtPmVuZCgpOworICAgICAgICAgICAgICAg
ICAgICBmb3IgKExpc3RIYXNoU2V0PENTU1RyYWl0Kj46Oml0ZXJhdG9yIGl0ID0gdHJhaXRzLT5i
ZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSA9ICgqaXQpLT5nZXRTdHlsZSgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYXBwbHlGcm9tU3R5bGVEZWNsYXJhdGlvbjxhcHBseUZpcnN0Pihz
dHlsZSwgaXNJbXBvcnRhbnQpOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5ID4gQ1NTUHJvcGVy
dHlMaW5lSGVpZ2h0KQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgCisgICAgICAgIGlmIChp
c0ltcG9ydGFudCA9PSBjdXJyZW50LmlzSW1wb3J0YW50KCkpIHsKKworICAgICAgICAgICAgaWYg
KGFwcGx5Rmlyc3QpIHsKKyAgICAgICAgICAgICAgICBDT01QSUxFX0FTU0VSVChmaXJzdENTU1By
b3BlcnR5ID09IENTU1Byb3BlcnR5Q29sb3IsIENTU19jb2xvcl9pc19maXJzdF9wcm9wZXJ0eSk7
CisgICAgICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoQ1NTUHJvcGVydHlab29tID09IENTU1By
b3BlcnR5Q29sb3IgKyAxNCwgQ1NTX3pvb21faXNfZW5kX29mX2ZpcnN0X3Byb3BfcmFuZ2UpOwor
ICAgICAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKENTU1Byb3BlcnR5TGluZUhlaWdodCA9PSBD
U1NQcm9wZXJ0eVpvb20gKyAxLCBDU1NfbGluZV9oZWlnaHRfaXNfYWZ0ZXJfem9vbSk7CisKKyAg
ICAgICAgICAgICAgICAvLyBnaXZlIHNwZWNpYWwgcHJpb3JpdHkgdG8gZm9udC14eHgsIGNvbG9y
IHByb3BlcnRpZXMsIGV0YworICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eSA8PSBDU1NQcm9w
ZXJ0eUxpbmVIZWlnaHQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgYXBwbHkgbGluZS1o
ZWlnaHQgbGF0ZXIKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5ID09IENTU1Byb3Bl
cnR5TGluZUhlaWdodCkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGluZUhlaWdodFZhbHVl
ID0gY3VycmVudC52YWx1ZSgpOyAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSAKICAgICAgICAg
ICAgICAgICAgICAgICAgIGFwcGx5UHJvcGVydHkoY3VycmVudC5pZCgpLCBjdXJyZW50LnZhbHVl
KCkpOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgaWYgKHByb3BlcnR5ID4gQ1NTUHJvcGVydHlMaW5lSGVpZ2h0KQorICAgICAgICAgICAg
ICAgICAgICBhcHBseVByb3BlcnR5KGN1cnJlbnQuaWQoKSwgY3VycmVudC52YWx1ZSgpKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIH0KIAordGVtcGxhdGUgPGJvb2wgYXBwbHlG
aXJzdD4KK3ZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlEZWNsYXJhdGlvbnMoYm9vbCBpc0lt
cG9ydGFudCwgaW50IHN0YXJ0SW5kZXgsIGludCBlbmRJbmRleCkKK3sKKyAgICBpZiAoc3RhcnRJ
bmRleCA9PSAtMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChpbnQgaSA9IHN0YXJ0SW5k
ZXg7IGkgPD0gZW5kSW5kZXg7IGkrKykKKyAgICAgICAgYXBwbHlGcm9tU3R5bGVEZWNsYXJhdGlv
bjxhcHBseUZpcnN0PihtX21hdGNoZWREZWNsc1tpXSwgaXNJbXBvcnRhbnQpOworfQorCiB2b2lk
IENTU1N0eWxlU2VsZWN0b3I6Om1hdGNoUGFnZVJ1bGVzKFJ1bGVTZXQqIHJ1bGVzLCBib29sIGlz
TGVmdFBhZ2UsIGJvb2wgaXNGaXJzdFBhZ2UsIGNvbnN0IFN0cmluZyYgcGFnZU5hbWUpCiB7CiAg
ICAgbV9tYXRjaGVkUnVsZXMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTdHlsZVNlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5oCmluZGV4IGE2MTgzMTQ3MGE5NTY2ZTI5ZmVhZDhiMGJhOTcwYWMwOTc0N2Q0ZDMuLjA5OWYz
YWUwYjU5NWVhMmYwZDE0YzYyY2IzNTcxZmE4ODNkNDBhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuaApAQCAtMjE2LDYgKzIxNiw5IEBAIHB1YmxpYzoKICAgICAgICAgdGVt
cGxhdGUgPGJvb2wgZmlyc3RQYXNzPgogICAgICAgICB2b2lkIGFwcGx5RGVjbGFyYXRpb25zKGJv
b2wgaW1wb3J0YW50LCBpbnQgc3RhcnRJbmRleCwgaW50IGVuZEluZGV4KTsKIAorICAgICAgICB0
ZW1wbGF0ZSA8Ym9vbCBmaXJzdFBhc3M+CisgICAgICAgIHZvaWQgYXBwbHlGcm9tU3R5bGVEZWNs
YXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIGJvb2wgaW1wb3J0YW50KTsKKwog
ICAgICAgICB2b2lkIG1hdGNoUGFnZVJ1bGVzKFJ1bGVTZXQqLCBib29sIGlzTGVmdFBhZ2UsIGJv
b2wgaXNGaXJzdFBhZ2UsIGNvbnN0IFN0cmluZyYgcGFnZU5hbWUpOwogICAgICAgICB2b2lkIG1h
dGNoUGFnZVJ1bGVzRm9yTGlzdChjb25zdCBWZWN0b3I8UnVsZURhdGE+KiwgYm9vbCBpc0xlZnRQ
YWdlLCBib29sIGlzRmlyc3RQYWdlLCBjb25zdCBTdHJpbmcmIHBhZ2VOYW1lKTsKICAgICAgICAg
Ym9vbCBpc0xlZnRQYWdlKGludCBwYWdlSW5kZXgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1RyYWl0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUcmFpdC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGVlNjZmNGU1ZTBlNjZlMTMwMDkxMTIzZTEwMTQzMjY1YWJhODIxMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUcmFpdC5jcHAKQEAgLTAs
MCArMSw1NyBAQAorLyoKKyAqIChDKSAyMDEwIExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisg
KiAoQykgMjAwMi0yMDAzIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQorICogQ29weXJp
Z2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKENTU19NSVhJTlMpCisKKyNp
bmNsdWRlICJDU1NUcmFpdC5oIgorCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0NTU1RyYWl0OjpDU1NUcmFpdChDU1NTdHlsZVNoZWV0KiBw
YXJlbnQsIENTU1BhcnNlclN0cmluZyYgbmFtZSkgCisgICAgOiBDU1NSdWxlKHBhcmVudCkKKyAg
ICAsIG1fbmFtZShuYW1lKQoreworfQorCitTdHJpbmcgQ1NTVHJhaXQ6OmNzc1RleHQoKSBjb25z
dAoreworICAgIFN0cmluZyByZXN1bHQgPSAiQC13ZWJraXQtdHJhaXQgIjsKKworICAgIHJlc3Vs
dCArPSBtX25hbWU7CisgICAgcmVzdWx0ICs9ICIgeyAiOworICAgIHJlc3VsdCArPSBtX3N0eWxl
LT5jc3NUZXh0KCk7CisgICAgcmVzdWx0ICs9ICJ9IjsKKworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK3ZvaWQgQ1NTVHJhaXQ6OnNldERlY2xhcmF0aW9uKFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24+IHN0eWxlKQoreworICAgIG1fc3R5bGUgPSBzdHlsZTsKK30KKworfQor
CisjZW5kaWYgLy8gRU5BQkxFKENTU19NSVhJTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVHJhaXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUcmFpdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU1YjRmNjMwNzhmNjNkZmIyZDE2MjlmZDRmOGU2NmI5OTUwNjQ2NTMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVHJhaXQuaApAQCAtMCwwICsxLDY2IEBACisv
KgorICogKEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorICogKEMpIDIw
MDItMjAwMyBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykg
MjAwMiwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYg
Q1NTVHJhaXRfaAorI2RlZmluZSBDU1NUcmFpdF9oCisKKyNpZiBFTkFCTEUoQ1NTX01JWElOUykK
KworI2luY2x1ZGUgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NT
UGFyc2VyVmFsdWVzLmgiCisjaW5jbHVkZSAiQ1NTUnVsZS5oIgorI2luY2x1ZGUgIkNTU1N0eWxl
U2hlZXQuaCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENTU1RyYWl0IDogcHVibGlj
IENTU1J1bGUgeworIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NUcmFpdD4gY3Jl
YXRlKENTU1N0eWxlU2hlZXQqIHBhcmVudCwgQ1NTUGFyc2VyU3RyaW5nJiBuYW1lKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NUcmFpdChwYXJlbnQsIG5hbWUpKTsKKyAg
ICB9CisKKyAgICB2b2lkIHNldERlY2xhcmF0aW9uKFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24+KTsKKworICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgdHlwZSgpIGNvbnN0
IHtyZXR1cm4gV0VCS0lUX1RSQUlUX1JVTEU7fQorICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQo
KSBjb25zdDsKKworICAgIHZpcnR1YWwgYm9vbCBpc1RyYWl0KCkge3JldHVybiB0cnVlO30KKwor
ICAgIFN0cmluZyBnZXROYW1lKCkge3JldHVybiBtX25hbWU7fQorICAgIENTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uKiBnZXRTdHlsZSgpIHtyZXR1cm4gbV9zdHlsZS5nZXQoKTt9CisKK3Byb3Rl
Y3RlZDoKKyAgICBDU1NUcmFpdChDU1NTdHlsZVNoZWV0KiBwYXJlbnQsIENTU1BhcnNlclN0cmlu
ZyYgbmFtZSk7CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIG1fbmFtZTsKKyAgICBSZWZQdHI8Q1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IG1fc3R5bGU7Cit9OworCit9CisKKyNlbmRpZiAvLyBF
TkFCTEUoQ1NTX01JWElOUykKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCYXNlLmgKaW5kZXggNjNj
NjcxZTBhYjhiNzM2NDU4ZDVlMzFjMDczNjhjYjc4ZTQyYTQ1MS4uY2MyYmNkMzM0NmZiOWIxZmJm
ODY0ZTljNTAwNWQ3Zjk5OTA2NWRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJhc2UuaApAQCAtNTksNiAr
NTksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1N0eWxl
UnVsZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1N0eWxlU2hl
ZXQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNYU0xT
dHlsZVNoZWV0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNpZiBFTkFCTEUoQ1NTX01JWElO
UykKKyAgICAgICAgdmlydHVhbCBib29sIGlzVHJhaXQoKSB7IHJldHVybiBmYWxzZTsgfQorI2Vu
ZGlmCiAKICAgICAgICAgdmlydHVhbCBib29sIGlzTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
V2Via2l0TWl4aW5WYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYmtpdE1peGluVmFsdWUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41Nzk5OGNkOTE2MjhmZWM2MDJjNDU4MzdlM2ExYzNiNTFmYjZmYjNjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYmtpdE1peGluVmFsdWUuaApA
QCAtMCwwICsxLDUyIEBACisvKgorICogKEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmIEVOQUJMRShDU1NfTUlYSU5TKQorI2lmbmRlZiBX
ZWJraXRNaXhpblZhbHVlX2gKKyNkZWZpbmUgV2Via2l0TWl4aW5WYWx1ZV9oCisKKyNpbmNsdWRl
ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2Via2l0TWl4aW5WYWx1ZSA6IHB1YmxpYyBDU1NQ
cmltaXRpdmVWYWx1ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2Via2l0TWl4
aW5WYWx1ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbWl4aW5OYW1lKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJraXRNaXhpblZhbHVlKG1peGluTmFtZSkpOworICAgIH0K
KworICAgIGNvbnN0IFN0cmluZyBtaXhpbk5hbWUoKSBjb25zdCB7IHJldHVybiBtX21peGluTmFt
ZTsgfQorCisgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIHF1b3Rl
Q1NTU3RyaW5nSWZOZWVkZWQobV9taXhpbk5hbWUpO30KKworcHJpdmF0ZToKKyAgICBXZWJraXRN
aXhpblZhbHVlKGNvbnN0IFN0cmluZyYgbWl4aW5OYW1lKQorICAgICAgICA6IENTU1ByaW1pdGl2
ZVZhbHVlKFN0cmluZygpLCBDU1NfU1RSSU5HKQorICAgICAgICAsIG1fbWl4aW5OYW1lKG1peGlu
TmFtZSkgeyB9CisKKyAgICBTdHJpbmcgbV9taXhpbk5hbWU7Cit9OworCit9IC8vIG5hbWVzcGFj
ZQorCisjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2Vw
cm9wLnBsIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCmluZGV4IGQzOTQ3MzliMjUz
NTY0YmI4ZmZkN2YyZjJkY2RiYmVlNDQ2YTViMGUuLjM5N2IyYTgyNDg3MDY3OTQ4ODUzZTdkMTBh
MjM2NGE2ZjYzMjM4ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5w
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwKQEAgLTYxLDcgKzYxLDcgQEAg
RU9GCiAKIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewogICBteSAkaWQgPSAkbmFtZTsKLSAg
JGlkID1+IHMvKF5bXi1dKXwtKC4pL3VjKCQxfHwkMikvZ2U7CisgICRpZCA9fiBzL0B8KF5bXi1d
KXwtKC4pL3VjKCQxfHwkMikvZ2U7CiAgIHByaW50IEdQRVJGICRuYW1lIC4gIiwgQ1NTUHJvcGVy
dHkiIC4gJGlkIC4gIlxuIjsKIH0KIApAQCAtMTA1LDcgKzEwNSw3IEBAIG15ICRpID0gMTAwMTsK
IG15ICRtYXhMZW4gPSAwOwogZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CiAgIG15ICRpZCA9
ICRuYW1lOwotICAkaWQgPX4gcy8oXlteLV0pfC0oLikvdWMoJDF8fCQyKS9nZTsKKyAgJGlkID1+
IHMvQHwoXlteLV0pfC0oLikvdWMoJDF8fCQyKS9nZTsKICAgcHJpbnQgSEVBREVSICIgICAgQ1NT
UHJvcGVydHkiIC4gJGlkIC4gIiA9ICIgLiAkaSAuICIsXG4iOwogICAkaSA9ICRpICsgMTsKICAg
aWYgKGxlbmd0aCgkbmFtZSkgPiAkbWF4TGVuKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdG9rZW5pemVyLmZsZXggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgK
aW5kZXggZWIxOGNiOTBiNGMwYmNkMWJmNDM5YWYyYTJhM2Y4NDM2M2EwNTY5OS4uMGI3NzAxNGJm
YzhkMmE1YTc5NWZhZTYwN2E3MWNiYjUzNWRkMzcyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL3Rva2VuaXplci5mbGV4CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90b2tlbml6ZXIu
ZmxleApAQCAtNzksNiArNzksOSBAQCBudGggICAgICAgICAgICAgW1wrLV0/e2ludG51bX0qbihb
XHRcclxuIF0qW1wrLV1bXHRcclxuIF0qe2ludG51bX0pPwogIkAtd2Via2l0LWtleWZyYW1lcyIg
ICAge3l5VG9rID0gV0VCS0lUX0tFWUZSQU1FU19TWU07IHJldHVybiB5eVRvazsgfQogIkAtd2Vi
a2l0LWtleWZyYW1lLXJ1bGUiIHt5eVRvayA9IFdFQktJVF9LRVlGUkFNRV9SVUxFX1NZTTsgcmV0
dXJuIHl5VG9rOyB9CiAKKyJALXdlYmtpdC10cmFpdCIgICAgICAgIHt5eVRvayA9IFdFQktJVF9U
UkFJVF9TWU07IHJldHVybiB5eVRvazsgfQorIkAtd2Via2l0LW1peGluIiAgICAgICAge3l5VG9r
ID0gV0VCS0lUX01JWElOX1NZTTsgcmV0dXJuIHl5VG9rOyB9CisKICJAIntpZGVudH0gICAgICAg
ICAgICAgIHt5eVRvayA9IEFUS0VZV09SRDsgcmV0dXJuIHl5VG9rOyB9CiAKICIhInt3fSJpbXBv
cnRhbnQiICAgICAgIHt5eVRvayA9IElNUE9SVEFOVF9TWU07IHJldHVybiB5eVRvazt9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXgg
NzdjY2RlMDE0YTY0MDcwOTFhYzIyNGM0MjdiODIzMjAyMDY1Yzc4MC4uOGU1MDE5NzE3NjljMWM0
N2NmNGU3NjM3YzQwMTJjNzI0OGZjYzc3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApAQCAtNDc0LDcgKzQ3NCw3IEBAIHZvaWQgSW5z
cGVjdG9yU3R5bGU6OnBvcHVsYXRlT2JqZWN0V2l0aFN0eWxlUHJvcGVydGllcyhJbnNwZWN0b3JP
YmplY3QqIHJlc3VsdCkKICAgICAgICAgICAgICAgICBib29sIHNob3VsZEluYWN0aXZhdGUgPSBm
YWxzZTsKICAgICAgICAgICAgICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gPjo6aXRlcmF0b3IgYWN0aXZlSXQgPSBwcm9wZXJ0eU5hbWVUb1ByZXZpb3VzQWN0aXZl
UHJvcGVydHkuZmluZChuYW1lKTsKICAgICAgICAgICAgICAgICBpZiAoYWN0aXZlSXQgIT0gcHJv
cGVydHlOYW1lVG9QcmV2aW91c0FjdGl2ZVByb3BlcnR5LmVuZCgpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIChwcm9wZXJ0eUVudHJ5LnBhcnNlZE9rKQorICAgICAgICAgICAgICAgICAgICBp
ZiAocHJvcGVydHlFbnRyeS5wYXJzZWRPayAmJiBuYW1lICE9ICJALXdlYmtpdC1taXhpbiIpCiAg
ICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRJbmFjdGl2YXRlID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHByZXZpb3Vz
UGFyc2VkT2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NTU1N0eWxlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NT
U1N0eWxlTW9kZWwuanMKaW5kZXggZmJhZjViY2M4ZTUwN2I2NzQ0ZTIxMGVlNmY3ODMxMWJlNmE3
ODU3Ni4uOGNhNWUwYmIyMWE5MmIyMTA3NmVlZGEyYzJhNzYzZThkMTlkMWE2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwpA
QCAtNDE3LDE2ICs0MTcsMjkgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5ID0gZnVuY3Rpb24o
b3duZXJTdHlsZSwgaW5kZXgsIG5hbWUsIHZhbHVlLCBwcmlvcml0eSwgc3QKICAgICB0aGlzLnRl
eHQgPSB0ZXh0OwogfQogCitXZWJJbnNwZWN0b3IuQ1NTTWl4aW4gPSBmdW5jdGlvbihvd25lclN0
eWxlLCBpbmRleCwgbmFtZSwgdmFsdWUsIHByaW9yaXR5LCBzdGF0dXMsIHBhcnNlZE9rLCBpbXBs
aWNpdCwgc2hvcnRoYW5kLCB0ZXh0KQoreworICAgIHZhciB0aGF0ID0gbmV3IFdlYkluc3BlY3Rv
ci5DU1NQcm9wZXJ0eShvd25lclN0eWxlLCBpbmRleCwgbmFtZSwgdmFsdWUsIHByaW9yaXR5LCBz
dGF0dXMsIHBhcnNlZE9rLCBpbXBsaWNpdCwgc2hvcnRoYW5kLCB0ZXh0KTsKKyAgICB0aGF0LnNl
cGFyYXRvciA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gIiI7IH07CisgICAgcmV0dXJuIHRoYXQ7Cit9
CisKIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wYXJzZVBheWxvYWQgPSBmdW5jdGlvbihvd25l
clN0eWxlLCBpbmRleCwgcGF5bG9hZCkKIHsKLSAgICAvLyBUaGUgZm9sbG93aW5nIGRlZmF1bHQg
ZmllbGQgdmFsdWVzIGFyZSB1c2VkIGluIHRoZSBwYXlsb2FkOgotICAgIC8vIHByaW9yaXR5OiAi
IgotICAgIC8vIHBhcnNlZE9rOiB0cnVlCi0gICAgLy8gaW1wbGljaXQ6IGZhbHNlCi0gICAgLy8g
c3RhdHVzOiAic3R5bGUiCi0gICAgLy8gc2hvcnRoYW5kTmFtZTogIiIKLSAgICB2YXIgcmVzdWx0
ID0gbmV3IFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eSgKLSAgICAgICAgb3duZXJTdHlsZSwgaW5k
ZXgsIHBheWxvYWQubmFtZSwgcGF5bG9hZC52YWx1ZSwgcGF5bG9hZC5wcmlvcml0eSB8fCAiIiwg
cGF5bG9hZC5zdGF0dXMgfHwgInN0eWxlIiwgKCJwYXJzZWRPayIgaW4gcGF5bG9hZCkgPyBwYXls
b2FkLnBhcnNlZE9rIDogdHJ1ZSwgISFwYXlsb2FkLmltcGxpY2l0LCBwYXlsb2FkLnNob3J0aGFu
ZE5hbWUgfHwgIiIsIHBheWxvYWQudGV4dCk7CisgICAgLy8gVGhlIGZvbGxvd2luZyBkZWZhdWx0
IGZpZWxkIHZhbHVlcyBhcmUgdXNlZCBpbiB0aGUgcGF5bG9hZAorICAgIHZhciBwcmlvcml0eSA9
IHBheWxvYWQucHJpb3JpdHkgfHwgIiIKKyAgICB2YXIgcGFyc2VkT2sgPSAoInBhcnNlZE9rIiBp
biBwYXlsb2FkKSA/IHBheWxvYWQucGFyc2VkT2sgOiB0cnVlCisgICAgdmFyIGltcGxpY2l0ID0g
ISFwYXlsb2FkLmltcGxpY2l0CisgICAgdmFyIHN0YXR1cyA9IHBheWxvYWQuc3RhdHVzIHx8ICJz
dHlsZSIKKyAgICB2YXIgc2hvcnRoYW5kTmFtZSA9IHBheWxvYWQuc2hvcnRoYW5kTmFtZSB8fCAi
IgorICAgCisgICAgaWYgKHBheWxvYWQubmFtZSAhPT0gIkAtd2Via2l0LW1peGluIikKKyAgICAg
ICAgcmVzdWx0ID0gbmV3IFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eSgKKyAgICAgICAgICAgIG93
bmVyU3R5bGUsIGluZGV4LCBwYXlsb2FkLm5hbWUsIHBheWxvYWQudmFsdWUsIHByaW9yaXR5LCBz
dGF0dXMsIHBhcnNlZE9rLCBpbXBsaWNpdCwgc2hvcnRoYW5kTmFtZSwgcGF5bG9hZC50ZXh0KTsK
KyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTTWl4aW4oCisg
ICAgICAgICAgICBvd25lclN0eWxlLCBpbmRleCwgcGF5bG9hZC5uYW1lLCBwYXlsb2FkLnZhbHVl
LCBwcmlvcml0eSwgc3RhdHVzLCBwYXJzZWRPaywgaW1wbGljaXQsIHNob3J0aGFuZE5hbWUsIHBh
eWxvYWQudGV4dCk7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC00MzgsNyArNDUxLDgg
QEAgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZSA9IHsKIAogICAgICAgICBpZiAo
dGhpcy5uYW1lID09PSAiIikKICAgICAgICAgICAgIHJldHVybiAiIjsKLSAgICAgICAgcmV0dXJu
IHRoaXMubmFtZSArICI6ICIgKyB0aGlzLnZhbHVlICsgKHRoaXMucHJpb3JpdHkgPyAiICEiICsg
dGhpcy5wcmlvcml0eSA6ICIiKSArICI7IjsKKyAgICAgICAgCisgICAgICAgIHJldHVybiB0aGlz
Lm5hbWUgKyB0aGlzLnNlcGFyYXRvcigpICsgIiAiICsgdGhpcy52YWx1ZSArICh0aGlzLnByaW9y
aXR5ID8gIiAhIiArIHRoaXMucHJpb3JpdHkgOiAiIikgKyAiOyI7CiAgICAgfSwKIAogICAgIGdl
dCBpc0xpdmUoKQpAQCAtNDY2LDYgKzQ4MCwxMSBAQCBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHku
cHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09ICJkaXNhYmxlZCI7
CiAgICAgfSwKIAorICAgIHNlcGFyYXRvcjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0
dXJuICI6IjsKKyAgICB9LAorCiAgICAgLy8gUmVwbGFjZXMgInByb3BlcnR5TmFtZTogcHJvcGVy
dHlWYWx1ZSBbIWltcG9ydGFudF07IiBpbiB0aGUgc3R5bGVzaGVldCBieSBhbiBhcmJpdHJhcnkg
cHJvcGVydHlUZXh0LgogICAgIHNldFRleHQ6IGZ1bmN0aW9uKHByb3BlcnR5VGV4dCwgbWFqb3JD
aGFuZ2UsIHVzZXJDYWxsYmFjaykKICAgICB7CkBAIC01MDYsNyArNTI1LDcgQEAgV2ViSW5zcGVj
dG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZSA9IHsKIAogICAgIHNldFZhbHVlOiBmdW5jdGlvbihu
ZXdWYWx1ZSwgdXNlckNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdmFyIHRleHQgPSB0aGlzLm5h
bWUgKyAiOiAiICsgbmV3VmFsdWUgKyAodGhpcy5wcmlvcml0eSA/ICIgISIgKyB0aGlzLnByaW9y
aXR5IDogIiIpICsgIjsiCisgICAgICAgIHZhciB0ZXh0ID0gdGhpcy5uYW1lICsgdGhpcy5zZXBh
cmF0b3IgKyAiICIgKyBuZXdWYWx1ZSArICh0aGlzLnByaW9yaXR5ID8gIiAhIiArIHRoaXMucHJp
b3JpdHkgOiAiIikgKyAiOyIKICAgICAgICAgdGhpcy5zZXRUZXh0KHRleHQsIHVzZXJDYWxsYmFj
ayk7CiAgICAgfSwKIApAQCAtNTM0LDYgKzU1Myw3IEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0
eS5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCisKIFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0
ID0gZnVuY3Rpb24ocGF5bG9hZCkKIHsKICAgICB0aGlzLmlkID0gcGF5bG9hZC5zdHlsZVNoZWV0
SWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxl
c1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHls
ZXNTaWRlYmFyUGFuZS5qcwppbmRleCAyOWQwMzE3OTAwODUzOTk5ZTc4MGM4M2Y4ZDFlOTE0NDk1
YTQ5M2Y4Li41Y2VlNTc5NGRlZGMyOWM3NTIzMDVkYWIwNWRlNmZjNGE0OTc2OGNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5l
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJh
clBhbmUuanMKQEAgLTEzOTMsNyArMTM5MywxMCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0
eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKGVuYWJsZWRDaGVja2JveEVs
ZW1lbnQgJiYgdGhpcy50cmVlT3V0bGluZS5zZWN0aW9uICYmIHRoaXMudHJlZU91dGxpbmUuc2Vj
dGlvbi5lZGl0YWJsZSAmJiB0aGlzLnBhcmVudC5yb290KQogICAgICAgICAgICAgdGhpcy5saXN0
SXRlbUVsZW1lbnQuYXBwZW5kQ2hpbGQoZW5hYmxlZENoZWNrYm94RWxlbWVudCk7CiAgICAgICAg
IHRoaXMubGlzdEl0ZW1FbGVtZW50LmFwcGVuZENoaWxkKG5hbWVFbGVtZW50KTsKLSAgICAgICAg
dGhpcy5saXN0SXRlbUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
IjogIikpOworICAgICAgICBpZiAodGhpcy5uYW1lID09ICJALXdlYmtpdC1taXhpbiIpCisgICAg
ICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgiICIpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5saXN0SXRlbUVs
ZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIjogIikpOwogICAgICAg
ICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hcHBlbmRDaGlsZCh2YWx1ZUVsZW1lbnQpOwogICAgICAg
ICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgiOyIpKTsKIApAQCAtMTcwNiw3ICsxNzA5LDEwIEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3Bl
cnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICAvLyBTeW50aGVzaXplIHByb3BlcnR5IHRleHQgZGlzcmVnYXJkaW5nIGFueSBjb21tZW50cywg
Y3VzdG9tIHdoaXRlc3BhY2UgZXRjLgotICAgICAgICAgICAgdGhpcy5hcHBseVN0eWxlVGV4dCh0
aGlzLm5hbWVFbGVtZW50LnRleHRDb250ZW50ICsgIjogIiArIHRoaXMudmFsdWVFbGVtZW50LnRl
eHRDb250ZW50KTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICI6ICIKKyAgICAgICAgICAgIGlm
ICh0aGlzLm5hbWVFbGVtZW50LnRleHRDb250ZW50ID09PSAiQC13ZWJraXQtbWl4aW4iKQorICAg
ICAgICAgICAgICAgIHNlcGFyYXRvciA9ICIgIgorICAgICAgICAgICAgdGhpcy5hcHBseVN0eWxl
VGV4dCh0aGlzLm5hbWVFbGVtZW50LnRleHRDb250ZW50ICsgc2VwYXJhdG9yICsgdGhpcy52YWx1
ZUVsZW1lbnQudGV4dENvbnRlbnQpOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtMTc3NywxMCAr
MTc4MywxMyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIGlmIChibGFua0lucHV0IHx8ICh0aGlzLl9uZXdQcm9wZXJ0eSAm
JiAvXlxzKiQvLnRlc3QodGhpcy52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQpKSkKICAgICAgICAg
ICAgICAgICBwcm9wZXJ0eVRleHQgPSAiIjsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAg
ICAgICAgIGlmIChpc0VkaXRpbmdOYW1lKQotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVRl
eHQgPSB1c2VySW5wdXQgKyAiOiAiICsgdGhpcy52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQ7Ci0g
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVRleHQgPSB0
aGlzLm5hbWVFbGVtZW50LnRleHRDb250ZW50ICsgIjogIiArIHVzZXJJbnB1dDsKKyAgICAgICAg
ICAgICAgICBuYW1lID0gaXNFZGl0aW5nTmFtZSA/IHVzZXJJbnB1dCA6IHRoaXMubmFtZUVsZW1l
bnQudGV4dENvbnRlbnQ7CisgICAgICAgICAgICAgICAgdmFsdWUgPSBpc0VkaXRpbmdOYW1lID8g
dGhpcy52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgOiB1c2VySW5wdXQ7CisgICAgICAgICAgICAg
ICAgc2VwYXJhdG9yID0gIjogIgorICAgICAgICAgICAgICAgIGlmIChuYW1lID09PSAiQC13ZWJr
aXQtbWl4aW4iKSB7CisgICAgICAgICAgICAgICAgICAgIHNlcGFyYXRvciA9ICIgIjsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJvcGVydHlUZXh0ID0gbmFtZSArIHNlcGFy
YXRvciArIHZhbHVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgdGhpcy5hcHBseVN0eWxl
VGV4dChwcm9wZXJ0eVRleHQsIHRydWUpOwogICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IDczNTRlYjhlOGMxOTljNDg4NmRjYjI3YmFkMDUwYjg5
NGQwNWZhMzQuLjQ0MjQzZmMyMjVhNTVlNmY1NTg5MzcxZmIyODlmZjcxMjA5ZjdlN2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTQ2LDYgKzQ2LDcgQEAKICAgICAgICAg
J0VOQUJMRV9CTE9CX1NMSUNFPTEnLAogICAgICAgICAnRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5H
PTEnLAogICAgICAgICAnRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTj0xJywKKyAgICAg
ICAgJ0VOQUJMRV9DU1NfTUlYSU5TPTAnLAogICAgICAgICAnRU5BQkxFX0RBU0hCT0FSRF9TVVBQ
T1JUPTAnLAogICAgICAgICAnRU5BQkxFX0RBVEFCQVNFPTEnLAogICAgICAgICAnRU5BQkxFX0RB
VEFHUklEPTAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCAwYzFkMTNjNjU0ZWUwNjIxYjgwNzdlMDhj
N2QwODM3NGE2OWY4ZDA3Li5hODlhZTExMWU4MjZiYTllMTc3YTBlMWJmOWE1NTMxMGVmZTdkZTAw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNjAsNiArNjAsOCBAQCBFTkFCTEVfQ0hBTk5FTF9NRVNT
QUdJTkdfbWFjb3N4ID0gRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HOwogRU5BQkxFX0NMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTiA9ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl8kKFJF
QUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl9tYWNv
c3ggPSBFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OOwogCitFTkFCTEVfQ1NTX01JWElO
UyA9IDsKKwogRU5BQkxFX0RBVEFCQVNFID0gRU5BQkxFX0RBVEFCQVNFOwogRU5BQkxFX0RBVEFH
UklEID0gOwogCkBAIC0xMjcsNCArMTI5LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVf
WFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFU
VVJFX0RFRklORVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5B
QkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChF
TkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9N
X1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJM
RV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5B
QkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQo
RU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykg
JChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVS
KSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5J
TUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5E
SU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQo
RU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNT
KSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJf
VElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVAp
ICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5B
QkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFC
TEVfV0VCR0wpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChF
TkFCTEVfQ1NTX01JWElOUykgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAk
KEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9E
T01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5B
QkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9K
QVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykg
JChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
KSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRM
RVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19B
TklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJ
TkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkg
JChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX01FRElBX1NUQVRJU1RJ
Q1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dF
Ql9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxN
UCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2Vi
S2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCAzOTcxMDM3
YjljNzZiYzQwMDcwMDZjMmU2MTZhY2NkNzFjMTJiMTY2Li5mZGZiNTI2ZTBjODMwOGM5NmNkNjUz
NzZlNGQxM2ExZjc3YTk4MTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNjAsNiArNjAsOCBAQCBFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkdfbWFjb3N4ID0gRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HOwogRU5B
QkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiA9ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTl8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTl9tYWNvc3ggPSBFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OOwogCitFTkFC
TEVfQ1NTX01JWElOUyA9IDsKKwogRU5BQkxFX0RBVEFCQVNFID0gRU5BQkxFX0RBVEFCQVNFOwog
RU5BQkxFX0RBVEFHUklEID0gOwogCkBAIC0xMjUsNCArMTI3LDQgQEAgRU5BQkxFX1hIVE1MTVAg
PSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9Y
U0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV8zRF9SRU5E
RVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJM
RV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9E
QVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikg
JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxF
X0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChF
TkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09O
REFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikg
JChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElP
TlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1Nf
VEFHKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9TSEFSRURf
V09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9T
VkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZH
X0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQo
RU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVE
SU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9X
TUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAk
KEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gp
ICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxF
XzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfQ1NTX01JWElOUykg
JChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkg
JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAk
KEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRF
UlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFC
TEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVT
SVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAk
KEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01F
VEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RP
Q09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5B
QkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RP
TV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdO
X09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX01FRElB
X1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQo
RU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFC
TEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApp
bmRleCBmNDBkNTBmYjMxYWU0MDcxYzFiMGJjMTUxNWQxODRjOGYxMzBmNWM5Li5kN2E3N2M4Yzk2
NzQ1M2E3ZTFmZTFiZGQ3NWJhNGUyZjhlN2Q1NzBhIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRz
L2J1aWxkLXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAtNjksNiAr
NjksNyBAQCBteSAoCiAgICAgJGNoYW5uZWxNZXNzYWdpbmdTdXBwb3J0LAogICAgICRjbGllbnRC
YXNlZEdlb2xvY2F0aW9uU3VwcG9ydCwKICAgICAkY292ZXJhZ2VTdXBwb3J0LAorICAgICRjc3NN
aXhpbnNTdXBwb3J0LAogICAgICRkYXRhYmFzZVN1cHBvcnQsCiAgICAgJGRhdGFncmlkU3VwcG9y
dCwKICAgICAkZGF0YWxpc3RTdXBwb3J0LApAQCAtMTQwLDYgKzE0MSw5IEBAIG15IEBmZWF0dXJl
cyA9ICgKICAgICB7IG9wdGlvbiA9PiAiY2xpZW50LWJhc2VkLWdlb2xvY2F0aW9uIiwgZGVzYyA9
PiAiVG9nZ2xlIGNsaWVudC1iYXNlZCBHZW9sb2NhdGlvbiBzdXBwb3J0IiwKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiIsIGRlZmF1bHQgPT4gaXNBcHBs
ZVdlYktpdCgpLCB2YWx1ZSA9PiBcJGNsaWVudEJhc2VkR2VvbG9jYXRpb25TdXBwb3J0IH0sCiAK
KyAgICB7IG9wdGlvbiA9PiAiY3NzLW1peGlucyIsIGRlc2MgPT4gIlRvZ2dsZSBleHBlcmltZW50
YWwgQ1NTIE1peGlucyBmZWF0dXJlIiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTU19NSVhJ
TlMiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkY3NzTWl4aW5zU3VwcG9ydCB9LAorCiAgICAg
eyBvcHRpb24gPT4gImNvdmVyYWdlIiwgZGVzYyA9PiAiVG9nZ2xlIGNvZGUgY292ZXJhZ2Ugc3Vw
cG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIiIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRjb3Zl
cmFnZVN1cHBvcnQgfSwKIApkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92
c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xz
L3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wcwppbmRleCA2YmVhNTQ4OTgwMGE2N2Y0ZGE4
MWNmNmVmNjQ4MDI2OGNhNmVmMWI5Li4zZDkzMjEwNTc5MmI0NWNjY2M3ZmNmYzJmN2Q2ZWY2ZmE4
OGY5NDE4IDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVh
dHVyZURlZmluZXMudnNwcm9wcworKysgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJv
cHMvRmVhdHVyZURlZmluZXMudnNwcm9wcwpAQCAtOSw3ICs5LDcgQEAKIAk+CiAgIDxUb29sCiAJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVO
QUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFU
RURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7
JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9EQVRBQkFTRSk7JChF
TkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RBVEFMSVNUKTskKEVOQUJMRV9EQVRBX1RSQU5TRkVS
X0lURU1TKTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9V
UExPQUQpOyQoRU5BQkxFX0RPTV9TVE9SQUdFKTskKEVOQUJMRV9FVkVOVFNPVVJDRSk7JChFTkFC
TEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJ
KTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9J
TUFHRV9SRVNJWkVSKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9T
UEVFQ0gpOyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktfUFJFRkVU
Q0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9OT1RJRklD
QVRJT05TKTskKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpOyQoRU5BQkxFX1BST0dS
RVNTX1RBRyk7JChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFCTEVfU0hB
UkVEX1dPUktFUlMpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0FOSU1BVElPTik7JChFTkFC
TEVfU1ZHX0FTX0lNQUdFKTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxF
X1NWR19GT05UUyk7JChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKTskKEVOQUJMRV9TVkdfVVNF
KTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfV0VC
X1NPQ0tFVFMpOyQoRU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dNTCk7JChFTkFCTEVfV09S
S0VSUyk7JChFTkFCTEVfWEhUTUxNUCk7JChFTkFCTEVfWFBBVEgpOyQoRU5BQkxFX1hTTFQpIgor
CQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8z
RF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQkxP
Qik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTik7JChFTkFCTEVfQ1NTX01JWElOUyk7JChFTkFCTEVfREFUQUJBU0UpOyQoRU5BQkxF
X0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVN
Uyk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FE
KTskKEVOQUJMRV9ET01fU1RPUkFHRSk7JChFTkFCTEVfRVZFTlRTT1VSQ0UpOyQoRU5BQkxFX0ZJ
TFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChF
TkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU1BR0Vf
UkVTSVpFUik7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfU1BFRUNI
KTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTsk
KEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTk9USUZJQ0FUSU9O
Uyk7JChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKTskKEVOQUJMRV9QUk9HUkVTU19U
QUcpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9X
T1JLRVJTKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19BTklNQVRJT04pOyQoRU5BQkxFX1NW
R19BU19JTUFHRSk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdf
Rk9OVFMpOyQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCk7JChFTkFCTEVfU1ZHX1VTRSk7JChF
TkFCTEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NL
RVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XTUwpOyQoRU5BQkxFX1dPUktFUlMp
OyQoRU5BQkxFX1hIVE1MTVApOyQoRU5BQkxFX1hQQVRIKTskKEVOQUJMRV9YU0xUKSIKIAkvPgog
ICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV8zRF9DQU5WQVMiCkBAIC00Miw2ICs0MiwxMSBA
QAogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCiAJLz4KICAgPFVzZXJNYWNybworICAg
ICAgICAgICAgICAgIE5hbWU9IkVOQUJMRV9DU1NfTUlYSU5TIgorICAgICAgICAgICAgICAgIFZh
bHVlPSIiCisgICAgICAgICAgICAgICAgUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgorICAg
ICAgICAvPgorICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV9EQVRBQkFTRSIKIAkJVmFsdWU9
IkVOQUJMRV9EQVRBQkFTRSIKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgpkaWZmIC0t
Z2l0IGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fp
cm8udnNwcm9wcyBiL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVm
aW5lc0NhaXJvLnZzcHJvcHMKaW5kZXggYjZlZGJjYTM2MGRkZmUwZjNhYzZkZTk3OWZjNDM4MDRj
MTlhZjY1NC4uNmU3ZjA4MjA0MGJhMGI1MjZjOGM0MmE1MjE2ZGFlOTdmN2E5NTJkNyAxMDA2NDQK
LS0tIGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fp
cm8udnNwcm9wcworKysgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVy
ZURlZmluZXNDYWlyby52c3Byb3BzCkBAIC05LDcgKzksNyBAQAogCT4KICAgPFRvb2wKIAkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxF
XzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8y
RF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVO
QUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0RBVEFCQVNFKTskKEVOQUJM
RV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoREFUQV9UUkFOU0ZFUl9JVEVNUyk7JChF
TkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVO
QUJMRV9ET01fU1RPUkFHRSk7JChFTkFCTEVfRVZFTlRTT1VSQ0UpOyQoRU5BQkxFX0ZJTFRFUlMp
OyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChFTkFCTEVf
R0VPTE9DQVRJT04pOyQoRU5BQkxFX0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU1BR0VfUkVTSVpF
Uik7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVO
QUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJM
RV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChF
TkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQo
RU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJT
KTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19BTklNQVRJT04pOyQoRU5BQkxFX1NWR19BU19J
TUFHRSk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMp
OyQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCk7JChFTkFCTEVfU1ZHX1VTRSk7JChFTkFCTEVf
VklERU8pOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NLRVRTKTsk
KEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XTUwpOyQoRU5BQkxFX1dPUktFUlMpOyQoRU5B
QkxFX1hIVE1MTVApOyQoRU5BQkxFX1hQQVRIKTskKEVOQUJMRV9YU0xUKSIKKwkJUHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5H
KTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxF
X0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQo
RU5BQkxFX0NTU19NSVhJTlMpOyQoRU5BQkxFX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7
JChFTkFCTEVfREFUQUxJU1QpOyQoREFUQV9UUkFOU0ZFUl9JVEVNUyk7JChFTkFCTEVfREVWSUNF
X09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9ET01fU1RP
UkFHRSk7JChFTkFCTEVfRVZFTlRTT1VSQ0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJ
TEVfU1lTVEVNKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChFTkFCTEVfR0VPTE9DQVRJT04p
OyQoRU5BQkxFX0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU1BR0VfUkVTSVpFUik7JChFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZBU0NS
SVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQo
RU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1JFR0lT
VEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9T
VkcpOyQoRU5BQkxFX1NWR19BTklNQVRJT04pOyQoRU5BQkxFX1NWR19BU19JTUFHRSk7JChFTkFC
TEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1NW
R19GT1JFSUdOX09CSkVDVCk7JChFTkFCTEVfU1ZHX1VTRSk7JChFTkFCTEVfVklERU8pOyQoRU5B
QkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJMRV9XRUJf
VElNSU5HKTskKEVOQUJMRV9XTUwpOyQoRU5BQkxFX1dPUktFUlMpOyQoRU5BQkxFX1hIVE1MTVAp
OyQoRU5BQkxFX1hQQVRIKTskKEVOQUJMRV9YU0xUKSIKIAkvPgogICA8VXNlck1hY3JvCiAJCU5h
bWU9IkVOQUJMRV8zRF9DQU5WQVMiCkBAIC00Miw2ICs0MiwxMSBAQAogCQlQZXJmb3JtRW52aXJv
bm1lbnRTZXQ9InRydWUiCiAJLz4KICAgPFVzZXJNYWNybworCQlOYW1lPSJFTkFCTEVfQ1NTX01J
WElOUyIKKwkJVmFsdWU9IiIKKwkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgorCS8+Cisg
IDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFX0RBVEFCQVNFIgogCQlWYWx1ZT0iRU5BQkxFX0RB
VEFCQVNFIgogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>