<?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>95722</bug_id>
          
          <creation_ts>2012-09-04 02:32:17 -0700</creation_ts>
          <short_desc>Web Inspector: [Elements] Sidebar panes not updated on style changes due to &quot;class&quot; attribute modifications</short_desc>
          <delta_ts>2012-09-12 04:35:56 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>710916</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-09-04 02:32:17 -0700</bug_when>
    <thetext>What steps will reproduce the problem?
1. Save the following as .html
2. inspect the first td in the table
3. note the color in the styles side panel
4. click on the page
5. Note the color of the td changes, but the Styles side panel does not update. Bug.
6. click in the Elements panel on the selected td element, note that the Styles UI still does not update. Bug.

Firebug updates at step #5, so #6 does not matter for it.


&lt;head&gt;
&lt;style&gt;
.row-open &gt; td:first-child{
   background-color: red;
}

.row-closed &gt; td:first-child{
   background-color: green;
}
&lt;/style&gt;
&lt;script&gt;
function swap() {
  var opens = document.querySelectorAll(&apos;.row-open&apos;);
  var closeds = document.querySelectorAll(&apos;.row-closed&apos;);

  for(var i = 0; i &lt; opens.length; i++) {
    opens[i].classList.remove(&quot;row-open&quot;);
    opens[i].classList.add(&quot;row-closed&quot;);
  }
  
  for(var i = 0; i &lt; closeds.length; i++) {
    closeds[i].classList.remove(&quot;row-closed&quot;);
    closeds[i].classList.add(&quot;row-open&quot;);
  }
}

function onLoad() {
  document.body.addEventListener(&apos;click&apos;, swap);
}
window.addEventListener(&apos;load&apos;, onLoad);
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;table&gt;
    &lt;tbody&gt;
      &lt;tr class=&quot;row-open&quot;&gt;
        &lt;td&gt;1st&lt;/td&gt;
         &lt;td&gt;2nd&lt;/td&gt;
          &lt;td&gt;3rd&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr class=&quot;row-closed&quot;&gt;
        &lt;td&gt;1st&lt;/td&gt;
         &lt;td&gt;2nd&lt;/td&gt;
          &lt;td&gt;3rd&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
&lt;/body&gt;

Upstreaming http://code.google.com/p/chromium/issues/detail?id=145348</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710945</commentid>
    <comment_count>1</comment_count>
      <attachid>162002</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-09-04 03:58:02 -0700</bug_when>
    <thetext>Created attachment 162002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711018</commentid>
    <comment_count>2</comment_count>
      <attachid>162002</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-04 05:35:15 -0700</bug_when>
    <thetext>Comment on attachment 162002
Patch

So how would we deal with the following cases?
 - other attributes modifications (affects attribute selector [], id selector #) 
 - attribute removals (removed and modified event are separated)
 - sibling selectors
 - pseudo-class selectors could be affected by node removing/adding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711068</commentid>
    <comment_count>3</comment_count>
      <attachid>162032</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-09-04 06:40:31 -0700</bug_when>
    <thetext>Created attachment 162032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716063</commentid>
    <comment_count>4</comment_count>
      <attachid>163127</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-09-10 07:37:07 -0700</bug_when>
    <thetext>Created attachment 163127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718087</commentid>
    <comment_count>5</comment_count>
      <attachid>163554</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-09-12 02:23:57 -0700</bug_when>
    <thetext>Created attachment 163554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718144</commentid>
    <comment_count>6</comment_count>
      <attachid>163554</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-12 03:28:51 -0700</bug_when>
    <thetext>Comment on attachment 163554
Patch

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

&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:331
&gt; +        return !this.node || this.node === node || node.parentNode === this.node.parentNode || node.isAncestor(this.node);

How can it affect style when there is no current node? See first or operand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718148</commentid>
    <comment_count>7</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-09-12 03:36:38 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 163554 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163554&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:331
&gt; &gt; +        return !this.node || this.node === node || node.parentNode === this.node.parentNode || node.isAncestor(this.node);
&gt; 
&gt; How can it affect style when there is no current node? See first or operand.

This is the case when there is no selected node, so I decided to be on the safe side. I can, however, invert this check, so that this.node is required to be present in order to be affected by a change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718152</commentid>
    <comment_count>8</comment_count>
      <attachid>163573</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-09-12 03:44:36 -0700</bug_when>
    <thetext>Created attachment 163573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718181</commentid>
    <comment_count>9</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-09-12 04:35:56 -0700</bug_when>
    <thetext>Committed r128291: &lt;http://trac.webkit.org/changeset/128291&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162002</attachid>
            <date>2012-09-04 03:58:02 -0700</date>
            <delta_ts>2012-09-04 06:40:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95722-20120904145745.patch</filename>
            <type>text/plain</type>
            <size>9271</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY5MDI2YjcxMmIyYjBm
YjJiNzRiNmU4MjM0ZDEzZDE1MWNhY2FlYi4uYTE4ZDVhMjkzMWY1YzExYWM1M2U5N2ViYmU5NmIw
YTg3YjYxYTRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTA0ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW0VsZW1lbnRzXSBTaWRlYmFyIHBhbmVzIG5vdCB1cGRhdGVkIG9uIHN0eWxlIGNoYW5n
ZXMgZHVlIHRvICJjbGFzcyIgYXR0cmlidXRlIG1vZGlmaWNhdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzIyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVjdXJzaXZlbHkgZGlzcGF0Y2ggdGhl
IFN0eWxlSW52YWxpZGF0ZWQgZXZlbnQgb24gY2hpbGRyZW4gb2YgYW4gZWxlbWVudCB3aG9zZSAi
Y2xhc3MiIGF0dHJpYnV0ZSBoYXMgYmVlbiBtb2RpZmllZC4KKworICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvRE9NQWdlbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQWdlbnQu
cHJvdG90eXBlLl9hdHRyaWJ1dGVNb2RpZmllZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9N
QWdlbnQucHJvdG90eXBlLl9pbnZhbGlkYXRlQ2hpbGRFbGVtZW50U3R5bGVzUmVjdXJzaXZlbHkp
OgorCiAyMDEyLTA4LTMxICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNv
bT4KIAogICAgICAgICBbUXRdIFBvcnQgdGhlIFF0IHBpeG1hcCBKUyBiaW5kaW5ncyB0byB1c2Ug
dGhlIEpTQyBDIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9ET01BZ2VudC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9N
QWdlbnQuanMKaW5kZXggMmY0NTFmNTY1OTY0Mjk0ZTAyNTg1ZjQ3NTA1YjZhYzhjOGI0NTIyYy4u
MGZiMWJiYmY2MmE0NDA3MzdkYTgxYzIxZDhlOTM2NThmMGRhMzY1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCkBAIC05MTcsMTEgKzkxNywz
MCBAQCBXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIW5v
ZGUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHZhciBpc3N1ZVN0eWxlSW52YWxpZGF0
ZWQgPSBuYW1lID09PSAic3R5bGUiICYmIHZhbHVlICE9PSBub2RlLmdldEF0dHJpYnV0ZSgic3R5
bGUiKTsKKyAgICAgICAgdmFyIGlzc3VlU2VsZkFuZENoaWxkU3R5bGVzSW52YWxpZGF0ZWQgPSBu
YW1lID09PSAiY2xhc3MiICYmIHZhbHVlICE9PSBub2RlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKTsK
IAogICAgICAgICBub2RlLl9zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLkF0
dHJNb2RpZmllZCwgeyBub2RlOiBub2RlLCBuYW1lOiBuYW1lIH0pOwotICAgICAgICBpZiAoaXNz
dWVTdHlsZUludmFsaWRhdGVkKQotICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuU3R5bGVJbnZhbGlkYXRlZCwgbm9kZSkK
KyAgICAgICAgaWYgKGlzc3VlU3R5bGVJbnZhbGlkYXRlZCB8fCBpc3N1ZVNlbGZBbmRDaGlsZFN0
eWxlc0ludmFsaWRhdGVkKQorICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5TdHlsZUludmFsaWRhdGVkLCBub2RlKTsK
KyAgICAgICAgaWYgKGlzc3VlU2VsZkFuZENoaWxkU3R5bGVzSW52YWxpZGF0ZWQpCisgICAgICAg
ICAgICB0aGlzLl9pbnZhbGlkYXRlQ2hpbGRFbGVtZW50U3R5bGVzUmVjdXJzaXZlbHkobm9kZSk7
CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRPTU5vZGV9
IG5vZGUKKyAgICAgKi8KKyAgICBfaW52YWxpZGF0ZUNoaWxkRWxlbWVudFN0eWxlc1JlY3Vyc2l2
ZWx5OiBmdW5jdGlvbihub2RlKQorICAgIHsKKyAgICAgICAgdmFyIGNoaWxkcmVuID0gbm9kZS5j
aGlsZHJlbjsKKyAgICAgICAgaWYgKCFjaGlsZHJlbikKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDAsIHNpemUgPSBjaGlsZHJlbi5sZW5ndGg7IGkgPCBzaXplOyAr
K2kpIHsKKyAgICAgICAgICAgIGlmIChjaGlsZHJlbltpXS5fbm9kZVR5cGUgIT09IE5vZGUuRUxF
TUVOVF9OT0RFKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgdGhpcy5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5TdHls
ZUludmFsaWRhdGVkLCBjaGlsZHJlbltpXSk7CisgICAgICAgICAgICB0aGlzLl9pbnZhbGlkYXRl
Q2hpbGRFbGVtZW50U3R5bGVzUmVjdXJzaXZlbHkoY2hpbGRyZW5baV0pOworICAgICAgICB9CiAg
ICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkyNGFjNDcxOWNiYTdhNjU4MjMyOWE3NGViZTc1NTAx
NGRhZGQ2N2IuLjQzM2E2OWE2YjdhMzg1NjI3YzNiNGUxYjEzODkzY2JjYzIyMzE0MTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMi0wOS0wNCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFbGVtZW50c10gU2lkZWJh
ciBwYW5lcyBub3QgdXBkYXRlZCBvbiBzdHlsZSBjaGFuZ2VzIGR1ZSB0byAiY2xhc3MiIGF0dHJp
YnV0ZSBtb2RpZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTcyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20tanMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpz
Lmh0bWw6CisKIDIwMTItMDktMDMgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29t
PgogCiAgICAgICAgIGh0dHAvdGVzdHMvaW5jcmVtZW50YWwvcGFydGlhbC1qcGVnLmh0bWwgaXMg
Zmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVw
ZGF0ZS1mcm9tLWpzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
c3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVkLnR4dAppbmRleCAxYzFkNjY3YjNhMzM2YWI5
MmVlMmQ1NmRiNTY2MDIzOTkyZjkxMzg2Li5lMmVhNjg2OWI5NjU3ZWI1MDA0MjAzNmVjNTM4YzI4
MjExZmE0MGVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
cy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20tanMtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDEw
IEBACi1UZXN0cyB0aGF0IGNoYW5nZXMgdG8gYW4gaW5saW5lIHN0eWxlIGZyb20gSmF2YVNjcmlw
dCBhcmUgcmVmbGVjdGVkIGluIHRoZSBTdHlsZXMgcGFuZSBhbmQgRWxlbWVudHMgdHJlZS4KK1Rl
c3RzIHRoYXQgY2hhbmdlcyB0byBhbiBpbmxpbmUgc3R5bGUgYW5kIGFuY2VzdG9yIGNsYXNzTmFt
ZSBmcm9tIEphdmFTY3JpcHQgYXJlIHJlZmxlY3RlZCBpbiB0aGUgU3R5bGVzIHBhbmUgYW5kIEVs
ZW1lbnRzIHRyZWUuCiAKIAogUnVubmluZzogdGVzdEluaXQKIAogUnVubmluZzogdGVzdFNldFN0
eWxlQXR0cmlidXRlCi08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJjb2xvcjogI2RhQzBERTsg
Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7Ij48L2Rpdj4KKzxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5
bGU9ImNvbG9yOiAjZGFDMERFOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsiPuKApjwvZGl2Pgog
W2V4cGFuZGVkXSAKIGVsZW1lbnQuc3R5bGUgIHsgKCkKIGNvbG9yOiAjREFDMERFOwpAQCAtMjIs
MTggKzIyLDI4IEBAIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwogICAgIGJvcmRlci1sZWZ0LXN0
eWxlOiBzb2xpZDsKICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4OwogCis9PT09PT09PSBNYXRj
aGVkIENTUyBSdWxlcyA9PT09PT09PQorW2V4cGFuZGVkXSAKK2RpdiAgeyAodXNlciBhZ2VudCBz
dHlsZXNoZWV0KQorZGlzcGxheTogYmxvY2s7CisKIAogCiBSdW5uaW5nOiB0ZXN0U2V0U3R5bGVD
U1NUZXh0Ci08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJjb2xvcjogcmdiKDE5MiwgMjU1LCAy
MzgpOyI+PC9kaXY+Cis8ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJjb2xvcjogcmdiKDE5Miwg
MjU1LCAyMzgpOyI+4oCmPC9kaXY+CiBbZXhwYW5kZWRdIAogZWxlbWVudC5zdHlsZSAgeyAoKQog
Y29sb3I6ICNDMEZGRUU7CiAKKz09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Citb
ZXhwYW5kZWRdIAorZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCitkaXNwbGF5OiBibG9j
azsKKwogCiAKIFJ1bm5pbmc6IHRlc3RTZXRWaWFQYXJzZWRBdHRyaWJ1dGVzCi08ZGl2IGlkPSJj
b250YWluZXIiIHN0eWxlPSJjb2xvcjogcmdiKDE5MiwgMjU1LCAyMzgpOyBib3JkZXI6IDNweCBk
YXNoZWQgZ3JlZW47Ij48L2Rpdj4KKzxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImNvbG9yOiBy
Z2IoMTkyLCAyNTUsIDIzOCk7IGJvcmRlcjogM3B4IGRhc2hlZCBncmVlbjsiPuKApjwvZGl2Pgog
W2V4cGFuZGVkXSAKIGVsZW1lbnQuc3R5bGUgIHsgKCkKIGNvbG9yOiAjQzBGRkVFOwpAQCAtNTEs
NSArNjEsMzEgQEAgYm9yZGVyOiAzcHggZGFzaGVkIGdyZWVuOwogICAgIGJvcmRlci1sZWZ0LXN0
eWxlOiBkYXNoZWQ7CiAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDNweDsKIAorPT09PT09PT0gTWF0
Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQg
c3R5bGVzaGVldCkKK2Rpc3BsYXk6IGJsb2NrOworCisKKworUnVubmluZzogdGVzdFNldFZpYUFu
Y2VzdG9yQ2xhc3MKKzxkaXYgaWQ9ImNoaWxkIj48L2Rpdj4KK1tleHBhbmRlZF0gCitlbGVtZW50
LnN0eWxlICB7ICgpCisKKz09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09CitbZXhw
YW5kZWRdIAorLnJlZCBkaXYgIHsgKHN0eWxlcy11cGRhdGUtZnJvbS1qcy5odG1sOjQpCitiYWNr
Z3JvdW5kLWNvbG9yOiByZWQ7CisKK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQgc3R5
bGVzaGVldCkKK2Rpc3BsYXk6IGJsb2NrOworCis9PT09PT09PSBJbmhlcml0ZWQgZnJvbSBkaXYj
Y29udGFpbmVyLnJlZCA9PT09PT09PQorW2V4cGFuZGVkXSAKK1N0eWxlIEF0dHJpYnV0ZSAgeyAo
KQorY29sb3I6ICNDMEZGRUU7CisKIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20tanMuaHRtbAppbmRleCA4MmE1NGJjZWU5MWQy
NTFlZmRmMDc1YWM5YjZkMDdmMDkyNDNhMmZiLi5kZDBlODE3OTQyNGUzMGE4NDlmMjg3ZDI0Yjky
YjRiMTY4ZjA4OWYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy11cGRhdGUtZnJvbS1qcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWwKQEAgLTEsNSArMSwxMCBAQAogPGh0bWw+CiA8
aGVhZD4KKzxzdHlsZT4KKy5yZWQgZGl2IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cit9
Cis8L3N0eWxlPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CkBAIC0yMCw2ICsy
NSwxMSBAQCBmdW5jdGlvbiBtb2RpZnlQYXJzZWRBdHRyaWJ1dGVzKCkKICAgICBzdHlsZS5ib3Jk
ZXJXaWR0aCA9ICIzcHgiOwogfQogCitmdW5jdGlvbiBtb2RpZnlDb250YWluZXJDbGFzcygpCit7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLmNsYXNzTmFtZSA9ICJy
ZWQiOworfQorCiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RT
dWl0ZShbCkBAIC00NCwzNiArNTQsNDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIHdhaXRBbmREdW1wQXR0cmlidXRlQW5kU3R5bGVzKG5leHQpOwogICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibW9kaWZ5UGFyc2VkQXR0cmlidXRlcygp
Iik7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdFNldFZpYUFuY2VzdG9yQ2xh
c3MobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2Rl
QW5kV2FpdEZvclN0eWxlcygiY2hpbGQiLCBjYWxsYmFjayk7CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIGNhbGxiYWNrKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB3YWl0QW5kRHVt
cEF0dHJpYnV0ZUFuZFN0eWxlcyhuZXh0LCAiY2hpbGQiKTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJtb2RpZnlDb250YWluZXJDbGFzcygpIik7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICBdKTsKIAotICAgIGZ1bmN0aW9uIHdhaXRBbmREdW1w
QXR0cmlidXRlQW5kU3R5bGVzKG5leHQpCisgICAgZnVuY3Rpb24gd2FpdEFuZER1bXBBdHRyaWJ1
dGVBbmRTdHlsZXMobmV4dCwgaWQpCiAgICAgeworICAgICAgICBpZCA9IGlkIHx8ICJjb250YWlu
ZXIiOwogICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IGR1bXBBdHRyaWJ1dGVBbmRTdHlsZXMoKTsKKyAgICAgICAgICAgIGR1bXBBdHRyaWJ1dGVBbmRT
dHlsZXMoaWQpOwogICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICB9Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3Qud2FpdEZvclN0eWxlcygiY29udGFpbmVyIiwgY2FsbGJhY2spOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMoaWQsIGNhbGxiYWNrKTsKICAgICB9CiAKLSAgICBm
dW5jdGlvbiBkdW1wQXR0cmlidXRlQW5kU3R5bGVzKCkKKyAgICBmdW5jdGlvbiBkdW1wQXR0cmli
dXRlQW5kU3R5bGVzKGlkKQogICAgIHsKLSAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gZmluZE5v
ZGVUcmVlRWxlbWVudCgpCisgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IGZpbmROb2RlVHJlZUVs
ZW1lbnQoaWQpOwogICAgICAgICBpZiAoIXRyZWVFbGVtZW50KSB7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiJ2NvbnRhaW5lcicgdHJlZSBlbGVtZW50IG5vdCBmb3VuZCIp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiciICsgaWQgKyAiJyB0cmVl
IGVsZW1lbnQgbm90IGZvdW5kIik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodHJlZUVsZW1lbnQubGlzdEl0ZW1FbGVtZW50
LnRleHRDb250ZW50LnJlcGxhY2UoL1x1MjAwYi9nLCAiIikpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwgdHJ1ZSk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsKICAgICB9CiAKLSAgICBm
dW5jdGlvbiBmaW5kTm9kZVRyZWVFbGVtZW50KCkKKyAgICBmdW5jdGlvbiBmaW5kTm9kZVRyZWVF
bGVtZW50KGlkKQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50
cmVlT3V0bGluZS5fdXBkYXRlTW9kaWZpZWROb2RlcygpOwotICAgICAgICB2YXIgZXhwYW5kZWRO
b2RlID0gSW5zcGVjdG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQoImNvbnRhaW5lciIpOworICAg
ICAgICB2YXIgZXhwYW5kZWROb2RlID0gSW5zcGVjdG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQo
aWQpOwogICAgICAgICBpZiAoIWV4cGFuZGVkTm9kZSkgewotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIidjb250YWluZXInIG5vZGUgbm90IGZvdW5kIik7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiJyIgKyBpZCArICInIG5vZGUgbm90IGZvdW5kIik7
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5lLmZp
bmRUcmVlRWxlbWVudChleHBhbmRlZE5vZGUpOwpAQCAtODQsMTAgKzEwNiwxMCBAQCBmdW5jdGlv
biB0ZXN0KCkKIAogPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgogPHA+Ci1UZXN0cyB0aGF0IGNo
YW5nZXMgdG8gYW4gaW5saW5lIHN0eWxlIGZyb20gSmF2YVNjcmlwdCBhcmUgcmVmbGVjdGVkIGlu
IHRoZSBTdHlsZXMgcGFuZSBhbmQgRWxlbWVudHMgdHJlZS4KK1Rlc3RzIHRoYXQgY2hhbmdlcyB0
byBhbiBpbmxpbmUgc3R5bGUgYW5kIGFuY2VzdG9yIGNsYXNzTmFtZSBmcm9tIEphdmFTY3JpcHQg
YXJlIHJlZmxlY3RlZCBpbiB0aGUgU3R5bGVzIHBhbmUgYW5kIEVsZW1lbnRzIHRyZWUuCiA8L3A+
CiAKLTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPjwvZGl2Pgor
PGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+PGRpdiBpZD0iY2hp
bGQiPjwvZGl2PjwvZGl2PgogCiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162032</attachid>
            <date>2012-09-04 06:40:31 -0700</date>
            <delta_ts>2012-09-10 07:37:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95722-20120904174013.patch</filename>
            <type>text/plain</type>
            <size>10629</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY5MDI2YjcxMmIyYjBm
YjJiNzRiNmU4MjM0ZDEzZDE1MWNhY2FlYi4uNTg1MmUzMWUyY2Q2OWVhZDY2ZTZmMjA5NzU3OGM5
Y2RjNWM0OWFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTA0ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW0VsZW1lbnRzXSBTaWRlYmFyIHBhbmVzIG5vdCB1cGRhdGVkIG9uIHN0eWxlIGNoYW5n
ZXMgZHVlIHRvICJjbGFzcyIgYXR0cmlidXRlIG1vZGlmaWNhdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzIyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVjdXJzaXZlbHkgZGlzcGF0Y2ggdGhl
IFN0eWxlSW52YWxpZGF0ZWQgZXZlbnQgb24gY2hpbGRyZW4gYW5kIHNpYmxpbmdzIG9mIGFuIGVs
ZW1lbnQgd2hvc2UgImNsYXNzIiBhdHRyaWJ1dGUgaGFzIGJlZW4gbW9kaWZpZWQuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkRPTUFnZW50LnByb3RvdHlwZS5fYXR0cmlidXRlTW9kaWZpZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZS5faW52YWxpZGF0ZVNlbGZBbmRDaGlsZEVsZW1l
bnRTdHlsZXNSZWN1cnNpdmVseSk6CisKIDIwMTItMDgtMzEgIFNpbW9uIEhhdXNtYW5uICA8c2lt
b24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gUG9ydCB0aGUgUXQgcGl4bWFw
IEpTIGJpbmRpbmdzIHRvIHVzZSB0aGUgSlNDIEMgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwppbmRleCAyZjQ1MWY1NjU5NjQyOTRlMDI1ODVm
NDc1MDViNmFjOGM4YjQ1MjJjLi5mMzRhODkyMGVmMzY0OTc2YmQwNTYzY2YwZWYzYzA1MGU2YzBm
NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFn
ZW50LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQu
anMKQEAgLTkxNywxMSArOTE3LDM4IEBAIFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGlmICghbm9kZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdmFy
IGlzc3VlU3R5bGVJbnZhbGlkYXRlZCA9IG5hbWUgPT09ICJzdHlsZSIgJiYgdmFsdWUgIT09IG5v
ZGUuZ2V0QXR0cmlidXRlKCJzdHlsZSIpOworICAgICAgICB2YXIgaXNzdWVTZWxmU2libGluZ0Fu
ZENoaWxkU3R5bGVzSW52YWxpZGF0ZWQgPSBuYW1lID09PSAiY2xhc3MiICYmIHZhbHVlICE9PSBu
b2RlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKTsKIAogICAgICAgICBub2RlLl9zZXRBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLkF0dHJNb2RpZmllZCwgeyBub2RlOiBub2RlLCBuYW1l
OiBuYW1lIH0pOwogICAgICAgICBpZiAoaXNzdWVTdHlsZUludmFsaWRhdGVkKQotICAgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVu
dHMuU3R5bGVJbnZhbGlkYXRlZCwgbm9kZSkKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuU3R5bGVJbnZhbGlkYXRl
ZCwgbm9kZSk7CisgICAgICAgIGVsc2UgaWYgKGlzc3VlU2VsZlNpYmxpbmdBbmRDaGlsZFN0eWxl
c0ludmFsaWRhdGVkKSB7CisgICAgICAgICAgICBpZiAoIW5vZGUucGFyZW50Tm9kZSkgeworICAg
ICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5E
T01BZ2VudC5FdmVudHMuU3R5bGVJbnZhbGlkYXRlZCwgbm9kZSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyIGNoaWxkcmVuID0gbm9kZS5w
YXJlbnROb2RlLmNoaWxkcmVuOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIHNpemUgPSBj
aGlsZHJlbi5sZW5ndGg7IGkgPCBzaXplOyArK2kpCisgICAgICAgICAgICAgICAgdGhpcy5faW52
YWxpZGF0ZVNlbGZBbmRDaGlsZEVsZW1lbnRTdHlsZXNSZWN1cnNpdmVseShjaGlsZHJlbltpXSk7
CisgICAgICAgIH0KKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuRE9NTm9kZX0gbm9kZQorICAgICAqLworICAgIF9pbnZhbGlkYXRlU2VsZkFuZENoaWxkRWxl
bWVudFN0eWxlc1JlY3Vyc2l2ZWx5OiBmdW5jdGlvbihub2RlKQorICAgIHsKKyAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5T
dHlsZUludmFsaWRhdGVkLCBub2RlKTsKKyAgICAgICAgdmFyIGNoaWxkcmVuID0gbm9kZS5jaGls
ZHJlbjsKKyAgICAgICAgaWYgKCFjaGlsZHJlbikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDAsIHNpemUgPSBjaGlsZHJlbi5sZW5ndGg7IGkgPCBzaXplOyArK2kp
IHsKKyAgICAgICAgICAgIGlmIChjaGlsZHJlbltpXS5fbm9kZVR5cGUgIT09IE5vZGUuRUxFTUVO
VF9OT0RFKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5TdHlsZUlu
dmFsaWRhdGVkLCBjaGlsZHJlbltpXSk7CisgICAgICAgICAgICB0aGlzLl9pbnZhbGlkYXRlU2Vs
ZkFuZENoaWxkRWxlbWVudFN0eWxlc1JlY3Vyc2l2ZWx5KGNoaWxkcmVuW2ldKTsKKyAgICAgICAg
fQogICAgIH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5MjRhYzQ3MTljYmE3YTY1ODIzMjlhNzRlYmU3
NTUwMTRkYWRkNjdiLi40MzNhNjlhNmI3YTM4NTYyN2MzYjRlMWIxMzg5M2NiY2MyMjMxNDE2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDktMDQgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2
bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbRWxlbWVudHNdIFNp
ZGViYXIgcGFuZXMgbm90IHVwZGF0ZWQgb24gc3R5bGUgY2hhbmdlcyBkdWUgdG8gImNsYXNzIiBh
dHRyaWJ1dGUgbW9kaWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTU3MjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJv
bS1qcy5odG1sOgorCiAyMDEyLTA5LTAzICBOb2VsIEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWls
LmNvbT4KIAogICAgICAgICBodHRwL3Rlc3RzL2luY3JlbWVudGFsL3BhcnRpYWwtanBlZy5odG1s
IGlzIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
cy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQKaW5kZXggMWMxZDY2N2IzYTMz
NmFiOTJlZTJkNTZkYjU2NjAyMzk5MmY5MTM4Ni4uYTM2M2Q2MzkwMGUwNDIzMzQ4OTBkNGFiYTgx
OWNjNGI1MjM1ZWY5MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtdXBkYXRlLWZyb20tanMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVkLnR4dApAQCAtMSwxMCAr
MSwxMCBAQAotVGVzdHMgdGhhdCBjaGFuZ2VzIHRvIGFuIGlubGluZSBzdHlsZSBmcm9tIEphdmFT
Y3JpcHQgYXJlIHJlZmxlY3RlZCBpbiB0aGUgU3R5bGVzIHBhbmUgYW5kIEVsZW1lbnRzIHRyZWUu
CitUZXN0cyB0aGF0IGNoYW5nZXMgdG8gYW4gaW5saW5lIHN0eWxlIGFuZCBhbmNlc3RvciBjbGFz
c05hbWUgZnJvbSBKYXZhU2NyaXB0IGFyZSByZWZsZWN0ZWQgaW4gdGhlIFN0eWxlcyBwYW5lIGFu
ZCBFbGVtZW50cyB0cmVlLgogCiAKIFJ1bm5pbmc6IHRlc3RJbml0CiAKIFJ1bm5pbmc6IHRlc3RT
ZXRTdHlsZUF0dHJpYnV0ZQotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iY29sb3I6ICNkYUMw
REU7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8ZGl2IGlkPSJjb250YWluZXIi
IHN0eWxlPSJjb2xvcjogI2RhQzBERTsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Ij7igKY8L2Rp
dj4KIFtleHBhbmRlZF0gCiBlbGVtZW50LnN0eWxlICB7ICgpCiBjb2xvcjogI0RBQzBERTsKQEAg
LTIyLDE4ICsyMiwyOCBAQCBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKICAgICBib3JkZXItbGVm
dC1zdHlsZTogc29saWQ7CiAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsKIAorPT09PT09PT0g
TWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdl
bnQgc3R5bGVzaGVldCkKK2Rpc3BsYXk6IGJsb2NrOworCiAKIAogUnVubmluZzogdGVzdFNldFN0
eWxlQ1NTVGV4dAotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iY29sb3I6IHJnYigxOTIsIDI1
NSwgMjM4KTsiPjwvZGl2PgorPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iY29sb3I6IHJnYigx
OTIsIDI1NSwgMjM4KTsiPuKApjwvZGl2PgogW2V4cGFuZGVkXSAKIGVsZW1lbnQuc3R5bGUgIHsg
KCkKIGNvbG9yOiAjQzBGRkVFOwogCis9PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09
PQorW2V4cGFuZGVkXSAKK2RpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQorZGlzcGxheTog
YmxvY2s7CisKIAogCiBSdW5uaW5nOiB0ZXN0U2V0VmlhUGFyc2VkQXR0cmlidXRlcwotPGRpdiBp
ZD0iY29udGFpbmVyIiBzdHlsZT0iY29sb3I6IHJnYigxOTIsIDI1NSwgMjM4KTsgYm9yZGVyOiAz
cHggZGFzaGVkIGdyZWVuOyI+PC9kaXY+Cis8ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJjb2xv
cjogcmdiKDE5MiwgMjU1LCAyMzgpOyBib3JkZXI6IDNweCBkYXNoZWQgZ3JlZW47Ij7igKY8L2Rp
dj4KIFtleHBhbmRlZF0gCiBlbGVtZW50LnN0eWxlICB7ICgpCiBjb2xvcjogI0MwRkZFRTsKQEAg
LTUxLDUgKzYxLDUyIEBAIGJvcmRlcjogM3B4IGRhc2hlZCBncmVlbjsKICAgICBib3JkZXItbGVm
dC1zdHlsZTogZGFzaGVkOwogICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAzcHg7CiAKKz09PT09PT09
IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09CitbZXhwYW5kZWRdIAorZGl2ICB7ICh1c2VyIGFn
ZW50IHN0eWxlc2hlZXQpCitkaXNwbGF5OiBibG9jazsKKworCisKK1J1bm5pbmc6IHRlc3RTZXRW
aWFBbmNlc3RvckNsYXNzCis8ZGl2IGlkPSJjaGlsZCI+PC9kaXY+CitbZXhwYW5kZWRdIAorZWxl
bWVudC5zdHlsZSAgeyAoKQorCis9PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQor
W2V4cGFuZGVkXSAKKy5yZWQgZGl2OmZpcnN0LWNoaWxkICB7IChzdHlsZXMtdXBkYXRlLWZyb20t
anMuaHRtbDo0KQorYmFja2dyb3VuZC1jb2xvcjogcmVkOworCitbZXhwYW5kZWRdIAorZGl2ICB7
ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCitkaXNwbGF5OiBibG9jazsKKworPT09PT09PT0gSW5o
ZXJpdGVkIGZyb20gZGl2I2NvbnRhaW5lci5yZWQgPT09PT09PT0KK1tleHBhbmRlZF0gCitTdHls
ZSBBdHRyaWJ1dGUgIHsgKCkKK2NvbG9yOiAjQzBGRkVFOworCisKKworUnVubmluZzogdGVzdFNl
dFZpYVNpYmxpbmdDbGFzcworPGRpdiBpZD0iY2hpbGRTaWJsaW5nIj48L2Rpdj4KK1tleHBhbmRl
ZF0gCitlbGVtZW50LnN0eWxlICB7ICgpCisKKz09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09
PT09PT09CitbZXhwYW5kZWRdIAorLmJsdWUgKyBkaXYgIHsgKHN0eWxlcy11cGRhdGUtZnJvbS1q
cy5odG1sOjgpCitiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworCitbZXhwYW5kZWRdIAorZGl2ICB7
ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCitkaXNwbGF5OiBibG9jazsKKworPT09PT09PT0gSW5o
ZXJpdGVkIGZyb20gZGl2I2NvbnRhaW5lci5yZWQgPT09PT09PT0KK1tleHBhbmRlZF0gCitTdHls
ZSBBdHRyaWJ1dGUgIHsgKCkKK2NvbG9yOiAjQzBGRkVFOworCiAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20tanMuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWwKaW5k
ZXggODJhNTRiY2VlOTFkMjUxZWZkZjA3NWFjOWI2ZDA3ZjA5MjQzYTJmYi4uZmM5M2JkYWZiYzIw
YTFjMzE4Zjk3MmM3OTRhYzRmMjkzMDgxNDU4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20tanMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy5odG1sCkBAIC0xLDUgKzEs
MTUgQEAKIDxodG1sPgogPGhlYWQ+Cis8c3R5bGU+CisucmVkIGRpdjpmaXJzdC1jaGlsZCB7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorCisuYmx1ZSArIGRpdiB7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogYmx1ZTsKK30KKworPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0PgpAQCAtMjAsNiArMzAsMTYgQEAgZnVuY3Rpb24gbW9kaWZ5UGFyc2VkQXR0cmli
dXRlcygpCiAgICAgc3R5bGUuYm9yZGVyV2lkdGggPSAiM3B4IjsKIH0KIAorZnVuY3Rpb24gbW9k
aWZ5Q29udGFpbmVyQ2xhc3MoKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250
YWluZXIiKS5jbGFzc05hbWUgPSAicmVkIjsKK30KKworZnVuY3Rpb24gbW9kaWZ5Q2hpbGRDbGFz
cygpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxkIikuY2xhc3NOYW1lID0g
ImJsdWUiOworfQorCiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnJ1blRl
c3RTdWl0ZShbCkBAIC00NCwzNiArNjQsNTkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIHdhaXRBbmREdW1wQXR0cmlidXRlQW5kU3R5bGVzKG5leHQpOwogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibW9kaWZ5UGFyc2VkQXR0cmlidXRl
cygpIik7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdFNldFZpYUFuY2VzdG9y
Q2xhc3MobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3RO
b2RlQW5kV2FpdEZvclN0eWxlcygiY2hpbGQiLCBjYWxsYmFjayk7CisKKyAgICAgICAgICAgIGZ1
bmN0aW9uIGNhbGxiYWNrKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB3YWl0QW5k
RHVtcEF0dHJpYnV0ZUFuZFN0eWxlcyhuZXh0LCAiY2hpbGQiKTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJtb2RpZnlDb250YWluZXJDbGFzcygpIik7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdFNldFZpYVNp
YmxpbmdDbGFzcyhuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJjaGlsZFNpYmxpbmciLCBjYWxsYmFjayk7CisKKyAg
ICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICB3YWl0QW5kRHVtcEF0dHJpYnV0ZUFuZFN0eWxlcyhuZXh0LCAiY2hpbGRTaWJsaW5nIik7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibW9kaWZ5Q2hp
bGRDbGFzcygpIik7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICBdKTsKIAotICAgIGZ1
bmN0aW9uIHdhaXRBbmREdW1wQXR0cmlidXRlQW5kU3R5bGVzKG5leHQpCisgICAgZnVuY3Rpb24g
d2FpdEFuZER1bXBBdHRyaWJ1dGVBbmRTdHlsZXMobmV4dCwgaWQpCiAgICAgeworICAgICAgICBp
ZCA9IGlkIHx8ICJjb250YWluZXIiOwogICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGR1bXBBdHRyaWJ1dGVBbmRTdHlsZXMoKTsKKyAgICAgICAgICAg
IGR1bXBBdHRyaWJ1dGVBbmRTdHlsZXMoaWQpOwogICAgICAgICAgICAgbmV4dCgpOwogICAgICAg
ICB9Ci0gICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvclN0eWxlcygiY29udGFpbmVyIiwgY2Fs
bGJhY2spOworICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMoaWQsIGNhbGxiYWNr
KTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBkdW1wQXR0cmlidXRlQW5kU3R5bGVzKCkKKyAgICBm
dW5jdGlvbiBkdW1wQXR0cmlidXRlQW5kU3R5bGVzKGlkKQogICAgIHsKLSAgICAgICAgdmFyIHRy
ZWVFbGVtZW50ID0gZmluZE5vZGVUcmVlRWxlbWVudCgpCisgICAgICAgIHZhciB0cmVlRWxlbWVu
dCA9IGZpbmROb2RlVHJlZUVsZW1lbnQoaWQpOwogICAgICAgICBpZiAoIXRyZWVFbGVtZW50KSB7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiJ2NvbnRhaW5lcicgdHJlZSBl
bGVtZW50IG5vdCBmb3VuZCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IiciICsgaWQgKyAiJyB0cmVlIGVsZW1lbnQgbm90IGZvdW5kIik7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodHJlZUVsZW1l
bnQubGlzdEl0ZW1FbGVtZW50LnRleHRDb250ZW50LnJlcGxhY2UoL1x1MjAwYi9nLCAiIikpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwgdHJ1
ZSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVl
KTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBmaW5kTm9kZVRyZWVFbGVtZW50KCkKKyAgICBmdW5j
dGlvbiBmaW5kTm9kZVRyZWVFbGVtZW50KGlkKQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9y
LnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZS5fdXBkYXRlTW9kaWZpZWROb2RlcygpOwotICAg
ICAgICB2YXIgZXhwYW5kZWROb2RlID0gSW5zcGVjdG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQo
ImNvbnRhaW5lciIpOworICAgICAgICB2YXIgZXhwYW5kZWROb2RlID0gSW5zcGVjdG9yVGVzdC5l
eHBhbmRlZE5vZGVXaXRoSWQoaWQpOwogICAgICAgICBpZiAoIWV4cGFuZGVkTm9kZSkgewotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIidjb250YWluZXInIG5vZGUgbm90IGZv
dW5kIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiJyIgKyBpZCArICIn
IG5vZGUgbm90IGZvdW5kIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1l
bnRzLnRyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChleHBhbmRlZE5vZGUpOwpAQCAtODQsMTAg
KzEyNywxMCBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgog
PHA+Ci1UZXN0cyB0aGF0IGNoYW5nZXMgdG8gYW4gaW5saW5lIHN0eWxlIGZyb20gSmF2YVNjcmlw
dCBhcmUgcmVmbGVjdGVkIGluIHRoZSBTdHlsZXMgcGFuZSBhbmQgRWxlbWVudHMgdHJlZS4KK1Rl
c3RzIHRoYXQgY2hhbmdlcyB0byBhbiBpbmxpbmUgc3R5bGUgYW5kIGFuY2VzdG9yIGNsYXNzTmFt
ZSBmcm9tIEphdmFTY3JpcHQgYXJlIHJlZmxlY3RlZCBpbiB0aGUgU3R5bGVzIHBhbmUgYW5kIEVs
ZW1lbnRzIHRyZWUuCiA8L3A+CiAKLTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImZvbnQtd2Vp
Z2h0OmJvbGQiPjwvZGl2PgorPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZm9udC13ZWlnaHQ6
Ym9sZCI+PGRpdiBpZD0iY2hpbGQiPjwvZGl2PjxkaXYgaWQ9ImNoaWxkU2libGluZyI+PC9kaXY+
PC9kaXY+CiAKIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163127</attachid>
            <date>2012-09-10 07:37:07 -0700</date>
            <delta_ts>2012-09-12 02:23:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95722-20120910183642.patch</filename>
            <type>text/plain</type>
            <size>20640</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZjYmE3OWQ0YzlmYWY4
NzJiOTIzNjJmYmM5MWU5YjNkNTlmODlhYy4uNzU0ZjIyMzUwN2NlOTkzNDBhYjc0YmFiMDEzZDkx
YzQ3MThiZDRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA5LTA0ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW0VsZW1lbnRzXSBTaWRlYmFyIHBhbmVzIG5vdCB1cGRhdGVkIG9uIHN0eWxlIGNoYW5n
ZXMgZHVlIHRvICJjbGFzcyIgYXR0cmlidXRlIG1vZGlmaWNhdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzIyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVjdXJzaXZlbHkgZGlzcGF0Y2ggdGhl
IFN0eWxlSW52YWxpZGF0ZWQgZXZlbnQgb24gY2hpbGRyZW4gYW5kIHNpYmxpbmdzIG9mIGFuIGVs
ZW1lbnQgd2hvc2UgImNsYXNzIiBhdHRyaWJ1dGUgaGFzIGJlZW4gbW9kaWZpZWQuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkRPTUFnZW50LnByb3RvdHlwZS5fYXR0cmlidXRlTW9kaWZpZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZS5fcHJvY2Vzc05vZGVTdHlsZUludmFsaWRhdGlv
bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlLl9pbnZhbGlkYXRl
U2VsZkFuZENoaWxkRWxlbWVudFN0eWxlc1JlY3Vyc2l2ZWx5KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5ET01BZ2VudC5wcm90b3R5cGUuX2F0dHJpYnV0ZVJlbW92ZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZS5fY2hpbGROb2RlUmVtb3ZlZCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLnVwZGF0ZVNlbGVjdGlv
bik6IEF2b2lkIGEgY29zdGx5IHN5bmNocm9ub3VzIGxheW91dCBkdXJpbmcgRE9NIHRyZWUgdXBk
YXRlcy4KKwogMjAxMi0wOS0xMCAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tp
YS5jb20+CiAKICAgICAgICAgW1RleE1hcF0gRml4IGNvbXBpbGF0aW9uIG9uIFdpbmRvd3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCmluZGV4IDJm
NDUxZjU2NTk2NDI5NGUwMjU4NWY0NzUwNWI2YWM4YzhiNDUyMmMuLjIwNTY4ZDZmM2M3MjRiMzM3
ZDZhYTA3ZjUxN2FiM2JhOWM2NWI0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9ET01BZ2VudC5qcwpAQCAtOTE2LDEyICs5MTYsNDYgQEAgV2ViSW5zcGVjdG9y
LkRPTUFnZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLl9pZFRvRE9N
Tm9kZVtub2RlSWRdOwogICAgICAgICBpZiAoIW5vZGUpCiAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIHZhciBpc3N1ZVN0eWxlSW52YWxpZGF0ZWQgPSBuYW1lID09PSAic3R5bGUiICYmIHZh
bHVlICE9PSBub2RlLmdldEF0dHJpYnV0ZSgic3R5bGUiKTsKIAorICAgICAgICB2YXIgdmFsdWVN
b2RpZmllZCA9IHZhbHVlICE9PSBub2RlLmdldEF0dHJpYnV0ZShuYW1lKTsKICAgICAgICAgbm9k
ZS5fc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQsIHsg
bm9kZTogbm9kZSwgbmFtZTogbmFtZSB9KTsKLSAgICAgICAgaWYgKGlzc3VlU3R5bGVJbnZhbGlk
YXRlZCkKLSAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuRE9NQWdlbnQuRXZlbnRzLlN0eWxlSW52YWxpZGF0ZWQsIG5vZGUpCisgICAgICAgIGlmICh2
YWx1ZU1vZGlmaWVkKQorICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc05vZGVTdHlsZUludmFsaWRh
dGlvbihub2RlLCBuYW1lICE9PSAic3R5bGUiKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuRE9NTm9kZX0gbm9kZQorICAgICAqIEBwYXJhbSB7Ym9vbGVh
bn0gaW52YWxpZGF0ZVNpYmxpbmdBbmRDaGlsZFN0eWxlcworICAgICAqLworICAgIF9wcm9jZXNz
Tm9kZVN0eWxlSW52YWxpZGF0aW9uOiBmdW5jdGlvbihub2RlLCBpbnZhbGlkYXRlU2libGluZ0Fu
ZENoaWxkU3R5bGVzKQorICAgIHsKKyAgICAgICAgaWYgKCFpbnZhbGlkYXRlU2libGluZ0FuZENo
aWxkU3R5bGVzIHx8ICFub2RlLnBhcmVudE5vZGUgfHwgIW5vZGUucGFyZW50Tm9kZS5jaGlsZHJl
bikgeworICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLkRPTUFnZW50LkV2ZW50cy5TdHlsZUludmFsaWRhdGVkLCBub2RlKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBjaGlsZHJlbiA9IG5vZGUucGFyZW50
Tm9kZS5jaGlsZHJlbjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5n
dGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGNoaWxkcmVuW2ldLm5vZGVUeXBlKCkgPT09IE5v
ZGUuRUxFTUVOVF9OT0RFKQorICAgICAgICAgICAgICAgIHRoaXMuX2ludmFsaWRhdGVTZWxmQW5k
Q2hpbGRFbGVtZW50U3R5bGVzUmVjdXJzaXZlbHkoY2hpbGRyZW5baV0pOworICAgICAgICB9Cisg
ICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRPTU5vZGV9IG5v
ZGUKKyAgICAgKi8KKyAgICBfaW52YWxpZGF0ZVNlbGZBbmRDaGlsZEVsZW1lbnRTdHlsZXNSZWN1
cnNpdmVseTogZnVuY3Rpb24obm9kZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuU3R5bGVJbnZhbGlkYXRl
ZCwgbm9kZSk7CisgICAgICAgIHZhciBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47CisgICAgICAg
IGlmICghY2hpbGRyZW4pCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGZvciAodmFyIGkg
PSAwLCBzaXplID0gY2hpbGRyZW4ubGVuZ3RoOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAg
ICBpZiAoY2hpbGRyZW5baV0uX25vZGVUeXBlICE9PSBOb2RlLkVMRU1FTlRfTk9ERSkKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHRoaXMuX2ludmFsaWRhdGVTZWxmQW5k
Q2hpbGRFbGVtZW50U3R5bGVzUmVjdXJzaXZlbHkoY2hpbGRyZW5baV0pOworICAgICAgICB9CiAg
ICAgfSwKIAogICAgIC8qKgpAQCAtOTM1LDYgKzk2OSw3IEBAIFdlYkluc3BlY3Rvci5ET01BZ2Vu
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG5vZGUuX3JlbW92
ZUF0dHJpYnV0ZShuYW1lKTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5BdHRyUmVtb3ZlZCwgeyBub2RlOiBub2RlLCBu
YW1lOiBuYW1lIH0pOworICAgICAgICB0aGlzLl9wcm9jZXNzTm9kZVN0eWxlSW52YWxpZGF0aW9u
KG5vZGUsIG5hbWUgIT09ICJzdHlsZSIpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTEwODAsNyAr
MTExNSw3IEBAIFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZh
ciBub2RlID0gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXTsKICAgICAgICAgcGFyZW50Ll9yZW1v
dmVDaGlsZChub2RlKTsKICAgICAgICAgdGhpcy5fdW5iaW5kKG5vZGUpOwotICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLk5v
ZGVSZW1vdmVkLCB7bm9kZTpub2RlLCBwYXJlbnQ6cGFyZW50fSk7CisgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuTm9kZVJl
bW92ZWQsIHtub2RlOiBub2RlLCBwYXJlbnQ6IHBhcmVudH0pOwogICAgIH0sCiAKICAgICAvKioK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNU
cmVlT3V0bGluZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVu
dHNUcmVlT3V0bGluZS5qcwppbmRleCA4MTgzNjM2NGQ0NmY4OWMxN2I4MDJhNjI5MWM5OTI5ODIz
NGM1NzgzLi4wNzg0M2M5NmJjMmNmN2I0OGRkOTU1N2UyNmMxYjdhYTIyZmNmODQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxp
bmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1Ry
ZWVPdXRsaW5lLmpzCkBAIC04MTIsMTAgKzgxMiwxNCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghbGlzdEl0ZW1FbGVtZW50KQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChkb2N1bWVudC5ib2R5Lm9mZnNldFdp
ZHRoIDw9IDApIHsKLSAgICAgICAgICAgIC8vIFRoZSBzdHlsZXNoZWV0IGhhc24ndCBsb2FkZWQg
eWV0IG9yIHRoZSB3aW5kb3cgaXMgY2xvc2VkLAotICAgICAgICAgICAgLy8gc28gd2UgY2FuJ3Qg
Y2FsY3VsYXRlIHdoYXQgaXMgbmVlZC4gUmV0dXJuIGVhcmx5LgotICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICBpZiAoIXRoaXMuX3JlYWR5VG9VcGRhdGVTZWxlY3Rpb24pIHsKKyAgICAgICAg
ICAgIGlmIChkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoID4gMCkKKyAgICAgICAgICAgICAgICB0
aGlzLl9yZWFkeVRvVXBkYXRlU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICAgIC8vIFRoZSBzdHlsZXNoZWV0IGhhc24ndCBsb2FkZWQgeWV0IG9yIHRo
ZSB3aW5kb3cgaXMgY2xvc2VkLAorICAgICAgICAgICAgICAgIC8vIHNvIHdlIGNhbid0IGNhbGN1
bGF0ZSB3aGF0IHdlIG5lZWQuIFJldHVybiBlYXJseS4KKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIXRoaXMuc2VsZWN0aW9u
RWxlbWVudCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGE4MDA3NTFkMTAwMmQ4ZTFlNzg1Y2RkNDhlZjA5OWYyMDhmM2U5
Y2IuLjJlMTZlNjRhYWYyMWE4Njk0MzVjMDY5NjYxNzhkNmZmZTIyYzA1ZmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxMi0wOS0wNCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFbGVtZW50c10gU2lkZWJhciBwYW5l
cyBub3QgdXBkYXRlZCBvbiBzdHlsZSBjaGFuZ2VzIGR1ZSB0byAiY2xhc3MiIGF0dHJpYnV0ZSBt
b2RpZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NTcyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLTItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXItaHRtbC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8tc2V0LW91dGVyLWh0bWwtMi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8tc2V0LW91dGVyLWh0
bWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2Ny
ZWVuLXNpemUuaHRtbDogRHJpdmUtYnk6IEZpeGVkIHJhY2UgY29uZGl0aW9uIHRoYXQgd2FzIHJl
c3VsdGluZyBpbiB0aGlzIHRlc3QncyBmYWlsdXJlcy4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5
bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVj
dG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20tanMuaHRtbDoKKwogMjAxMi0wOS0xMCAgQWxs
YW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQG5va2lhLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkIGdhcmRlbmluZywgdW5za2lwIHRlc3RzIHBhc3NpbmcgYWZ0ZXIgcjEyODA0MCBs
YW5kZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91
dGVyLWh0bWwtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
c2V0LW91dGVyLWh0bWwtMi1leHBlY3RlZC50eHQKaW5kZXggMzIxOWUxZTc4YzRhMGEyMTg1MTY1
YzgxNWNiMTYyYjM1NzcxMjU5ZC4uMTJjNjU4MTI1MjY2NzcxYjVmMTBkOTMxOTJlZTRjZTY2MGFm
NDBhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRl
ci1odG1sLTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy9zZXQtb3V0ZXItaHRtbC0yLWV4cGVjdGVkLnR4dApAQCAtMTAsNiArMTAsMTggQEAgRXZlbnQg
QXR0ck1vZGlmaWVkOiBIMgogRXZlbnQgQXR0ck1vZGlmaWVkOiBIMgogRXZlbnQgTm9kZUluc2Vy
dGVkOiBVTAogRXZlbnQgTm9kZVJlbW92ZWQ6IFVMCitFdmVudCBTdHlsZUludmFsaWRhdGVkOiBB
CitFdmVudCBTdHlsZUludmFsaWRhdGVkOiBBCitFdmVudCBTdHlsZUludmFsaWRhdGVkOiBIMgor
RXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogSDIKK0V2ZW50IFN0eWxlSW52YWxpZGF0ZWQ6IExJCitF
dmVudCBTdHlsZUludmFsaWRhdGVkOiBMSQorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogUAorRXZl
bnQgU3R5bGVJbnZhbGlkYXRlZDogUAorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogUAorRXZlbnQg
U3R5bGVJbnZhbGlkYXRlZDogUAorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogVUwKK0V2ZW50IFN0
eWxlSW52YWxpZGF0ZWQ6IFVMCiA9PT09PT09PT09ODw9PT09PT09PT09CiA8ZGl2IGlkPSJjb250
YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgogPHA+V2ViS2l0IGlzIHVzZWQgYnkgPGEgaHJl
Zj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJvYXJkLCBl
dGMuLjwvcD4KQEAgLTMxLDYgKzQzLDIyIEBAIEV2ZW50IEF0dHJSZW1vdmVkOiBIMgogRXZlbnQg
QXR0clJlbW92ZWQ6IEgyCiBFdmVudCBDaGFyYWN0ZXJEYXRhTW9kaWZpZWQ6IAogRXZlbnQgTm9k
ZUluc2VydGVkOiBMSQorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogQQorRXZlbnQgU3R5bGVJbnZh
bGlkYXRlZDogQQorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogSDIKK0V2ZW50IFN0eWxlSW52YWxp
ZGF0ZWQ6IEgyCitFdmVudCBTdHlsZUludmFsaWRhdGVkOiBMSQorRXZlbnQgU3R5bGVJbnZhbGlk
YXRlZDogTEkKK0V2ZW50IFN0eWxlSW52YWxpZGF0ZWQ6IExJCitFdmVudCBTdHlsZUludmFsaWRh
dGVkOiBMSQorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogUAorRXZlbnQgU3R5bGVJbnZhbGlkYXRl
ZDogUAorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogUAorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDog
UAorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogVUwKK0V2ZW50IFN0eWxlSW52YWxpZGF0ZWQ6IFVM
CitFdmVudCBTdHlsZUludmFsaWRhdGVkOiBVTAorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogVUwK
ID09PT09PT09PT04PD09PT09PT09PT0KIDxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImRpc3Bs
YXk6bm9uZSI+CiA8cD5XZWJLaXQgaXMgdXNlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LmFwcGxl
LmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy4uPC9wPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXItaHRtbC1leHBl
Y3RlZC50eHQKaW5kZXggMGZjNjgwNjBkODlkODdlNDQ0ZWMwNDVkNzExYTk5NzQ0YWY4ZjAyYy4u
M2RjNTIwZmMzYzQ0ZWJjZDM3YTk4NDUxZmIwOWY0ZjQwNTc1ZWNiMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0bWwtZXhwZWN0
ZWQudHh0CkBAIC0zOSw2ICszOSw5IEBAIFdyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5CiBFdmVu
dCBBdHRyTW9kaWZpZWQ6IEEKIEV2ZW50IEF0dHJNb2RpZmllZDogQQogRXZlbnQgQXR0clJlbW92
ZWQ6IEEKK0V2ZW50IFN0eWxlSW52YWxpZGF0ZWQ6IEEKK0V2ZW50IFN0eWxlSW52YWxpZGF0ZWQ6
IEEKK0V2ZW50IFN0eWxlSW52YWxpZGF0ZWQ6IEEKID09PT09PT09PT04PD09PT09PT09PT0KIDxk
aXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CiA8cD5XZWJLaXQgaXMgdXNl
ZCBieSA8YSBmb289ImJhciIgaHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJpLyI+U2Fm
YXJpPC9hPiwgRGFzaGJvYXJkLCBldGMuLjwvcD4KQEAgLTUzLDYgKzU2LDkgQEAgV3JhcHBlciBp
ZGVudGl0eTogaWRlbnRpdHkKIEV2ZW50IEF0dHJNb2RpZmllZDogQQogRXZlbnQgQXR0clJlbW92
ZWQ6IEEKIEV2ZW50IEF0dHJSZW1vdmVkOiBBCitFdmVudCBTdHlsZUludmFsaWRhdGVkOiBBCitF
dmVudCBTdHlsZUludmFsaWRhdGVkOiBBCitFdmVudCBTdHlsZUludmFsaWRhdGVkOiBBCiA9PT09
PT09PT09ODw9PT09PT09PT09CiA8ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5v
bmUiPgogPHA+V2ViS2l0IGlzIHVzZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20v
c2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJvYXJkLCBldGMuLjwvcD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy91bmRvLXNldC1vdXRlci1odG1sLTItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8tc2V0LW91dGVyLWh0
bWwtMi1leHBlY3RlZC50eHQKaW5kZXggYjY0NmE4MDk4NTQ0ZjMzOWY4ODQzOGE3MmEyNWMzNjlm
NjQzMjdiNy4uMmY5ODBkZjdkNzgzYzFjNDMyYjUwNzQ1ODc0ZTQ0ZGYzNTY4NGZlZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8tc2V0LW91dGVyLWh0bWwt
Mi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8t
c2V0LW91dGVyLWh0bWwtMi1leHBlY3RlZC50eHQKQEAgLTksNiArOSwxOCBAQCBFdmVudCBBdHRy
TW9kaWZpZWQ6IEgyCiBFdmVudCBBdHRyTW9kaWZpZWQ6IEgyCiBFdmVudCBOb2RlSW5zZXJ0ZWQ6
IFVMCiBFdmVudCBOb2RlUmVtb3ZlZDogVUwKK0V2ZW50IFN0eWxlSW52YWxpZGF0ZWQ6IEEKK0V2
ZW50IFN0eWxlSW52YWxpZGF0ZWQ6IEEKK0V2ZW50IFN0eWxlSW52YWxpZGF0ZWQ6IEgyCitFdmVu
dCBTdHlsZUludmFsaWRhdGVkOiBIMgorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogTEkKK0V2ZW50
IFN0eWxlSW52YWxpZGF0ZWQ6IExJCitFdmVudCBTdHlsZUludmFsaWRhdGVkOiBQCitFdmVudCBT
dHlsZUludmFsaWRhdGVkOiBQCitFdmVudCBTdHlsZUludmFsaWRhdGVkOiBQCitFdmVudCBTdHls
ZUludmFsaWRhdGVkOiBQCitFdmVudCBTdHlsZUludmFsaWRhdGVkOiBVTAorRXZlbnQgU3R5bGVJ
bnZhbGlkYXRlZDogVUwKID09PT09PT09PT04PD09PT09PT09PT0KIDxkaXYgaWQ9ImNvbnRhaW5l
ciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CiA8cD5XZWJLaXQgaXMgdXNlZCBieSA8YSBocmVmPSJo
dHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy4u
PC9wPgpAQCAtMzAsNiArNDIsMTggQEAgRXZlbnQgQXR0clJlbW92ZWQ6IEgyCiBFdmVudCBBdHRy
UmVtb3ZlZDogSDIKIEV2ZW50IE5vZGVJbnNlcnRlZDogVUwKIEV2ZW50IE5vZGVSZW1vdmVkOiBV
TAorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogQQorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogQQor
RXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogSDIKK0V2ZW50IFN0eWxlSW52YWxpZGF0ZWQ6IEgyCitF
dmVudCBTdHlsZUludmFsaWRhdGVkOiBMSQorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogTEkKK0V2
ZW50IFN0eWxlSW52YWxpZGF0ZWQ6IFAKK0V2ZW50IFN0eWxlSW52YWxpZGF0ZWQ6IFAKK0V2ZW50
IFN0eWxlSW52YWxpZGF0ZWQ6IFAKK0V2ZW50IFN0eWxlSW52YWxpZGF0ZWQ6IFAKK0V2ZW50IFN0
eWxlSW52YWxpZGF0ZWQ6IFVMCitFdmVudCBTdHlsZUludmFsaWRhdGVkOiBVTAogPT09PT09PT09
PTg8PT09PT09PT09PQogPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4K
IDxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFy
aS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdW5kby1zZXQtb3V0ZXItaHRtbC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdW5kby1zZXQtb3V0ZXItaHRtbC1leHBl
Y3RlZC50eHQKaW5kZXggYzlmNjBmOWU1MDM2MDQwMjNlNDY4ZGU1ZjIxMDViNzcwYjZiZmE3NS4u
OWYxZDQyODgzNmE2NjUzMzc3Y2JkY2YxMTAzNzdiNjZiNGFlYjYwMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8tc2V0LW91dGVyLWh0bWwtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy91bmRvLXNldC1vdXRlci1o
dG1sLWV4cGVjdGVkLnR4dApAQCAtMzksNiArMzksOSBAQCBXcmFwcGVyIGlkZW50aXR5OiBpZGVu
dGl0eQogRXZlbnQgQXR0ck1vZGlmaWVkOiBBCiBFdmVudCBBdHRyTW9kaWZpZWQ6IEEKIEV2ZW50
IEF0dHJSZW1vdmVkOiBBCitFdmVudCBTdHlsZUludmFsaWRhdGVkOiBBCitFdmVudCBTdHlsZUlu
dmFsaWRhdGVkOiBBCitFdmVudCBTdHlsZUludmFsaWRhdGVkOiBBCiA9PT09PT09PT09ODw9PT09
PT09PT09CiA8ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgogPHA+V2Vi
S2l0IGlzIHVzZWQgYnkgPGEgZm9vPSJiYXIiIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3Nh
ZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+CkBAIC01Myw2ICs1Niw5IEBA
IFdyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5CiBFdmVudCBBdHRyTW9kaWZpZWQ6IEEKIEV2ZW50
IEF0dHJSZW1vdmVkOiBBCiBFdmVudCBBdHRyUmVtb3ZlZDogQQorRXZlbnQgU3R5bGVJbnZhbGlk
YXRlZDogQQorRXZlbnQgU3R5bGVJbnZhbGlkYXRlZDogQQorRXZlbnQgU3R5bGVJbnZhbGlkYXRl
ZDogQQogPT09PT09PT09PTg8PT09PT09PT09PQogPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0i
ZGlzcGxheTpub25lIj4KIDxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cu
YXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVlbi1zaXpl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVlbi1zaXpl
Lmh0bWwKaW5kZXggZmFkMjZkN2Q2N2NjYzMxNzU5MWFiY2FlMjk4YWM3OWQyNTRhM2M1NS4uOGQ0
NjY5OTJiYTZlZDZmNzRlOTRkYTJlNjUzNWZlODFlZjllMjc5NyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNpemUuaHRtbApAQCAt
MTU4LDE5ICsxNTgsMzYgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBvdmVycmlk
ZUFuZER1bXBEYXRhKHdpZHRoLCBoZWlnaHQsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgZnVu
Y3Rpb24gc2VsZWN0Q2FsbGJhY2soKQorICAgICAgICBmdW5jdGlvbiBmaW5hbENhbGxiYWNrKCkK
ICAgICAgICAgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk1haW4gc3R5
bGU6Iik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHls
ZXModHJ1ZSwgZmFsc2UsIHRydWUpOwogICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAg
fQogCisgICAgICAgIHZhciBnb3RTaXplczsKKyAgICAgICAgdmFyIGdvdFN0eWxlczsKKyAgICAg
ICAgZnVuY3Rpb24gc3R5bGVzQ2FsbGJhY2soKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
Z290U2l6ZXMpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZpbmFsQ2FsbGJhY2soKTsKKyAgICAg
ICAgICAgIGdvdFN0eWxlcyA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBz
aXplc0NhbGxiYWNrKCkKKyAgICAgICAgeworICAgICAgICAgICAgZ290U2l6ZXMgPSB0cnVlOwor
ICAgICAgICAgICAgaWYgKGdvdFN0eWxlcykKKyAgICAgICAgICAgICAgICBmaW5hbENhbGxiYWNr
KCk7CisgICAgICAgIH0KKwogICAgICAgICBmdW5jdGlvbiBhcHBseUNhbGxiYWNrKCkKICAgICAg
ICAgewotICAgICAgICAgICAgZ2V0QW5kRHVtcFNpemVzKHNlbGVjdENhbGxiYWNrKTsKKyAgICAg
ICAgICAgIGdldEFuZER1bXBTaXplcyhzaXplc0NhbGxiYWNrKTsKICAgICAgICAgfQogCiAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJPdmVycmlkZTogIiArIHdpZHRoICsgIngiICsg
aGVpZ2h0KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKCJtYWluIiwgc3R5
bGVzQ2FsbGJhY2spOwogICAgICAgICBhcHBseU92ZXJyaWRlKHdpZHRoLCBoZWlnaHQsIGFwcGx5
Q2FsbGJhY2spOwogICAgIH0KIApAQCAtMTgyLDcgKzE5OSw4IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmVlbiBmcm9tIHBhZ2U6ICIg
KyByZXN1bHQuc2NyZWVuKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJX
aW5kb3cgZnJvbSBwYWdlOiAiICsgcmVzdWx0LmlubmVyKTsKICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJCb2R5IGZyb20gcGFnZTogIiArIHJlc3VsdC5ib2R5KTsKLSAgICAg
ICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAgICBpZiAoY2FsbGJhY2spCisgICAgICAgICAg
ICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgfQogCiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoImdldFNpemVzKCkiLCBnZXRTaXplc0NhbGxiYWNrKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9t
LWpzLWV4cGVjdGVkLnR4dAppbmRleCAxYzFkNjY3YjNhMzM2YWI5MmVlMmQ1NmRiNTY2MDIzOTky
ZjkxMzg2Li5hMzYzZDYzOTAwZTA0MjMzNDg5MGQ0YWJhODE5Y2M0YjUyMzVlZjkyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBk
YXRlLWZyb20tanMtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDEwIEBACi1UZXN0cyB0aGF0IGNo
YW5nZXMgdG8gYW4gaW5saW5lIHN0eWxlIGZyb20gSmF2YVNjcmlwdCBhcmUgcmVmbGVjdGVkIGlu
IHRoZSBTdHlsZXMgcGFuZSBhbmQgRWxlbWVudHMgdHJlZS4KK1Rlc3RzIHRoYXQgY2hhbmdlcyB0
byBhbiBpbmxpbmUgc3R5bGUgYW5kIGFuY2VzdG9yIGNsYXNzTmFtZSBmcm9tIEphdmFTY3JpcHQg
YXJlIHJlZmxlY3RlZCBpbiB0aGUgU3R5bGVzIHBhbmUgYW5kIEVsZW1lbnRzIHRyZWUuCiAKIAog
UnVubmluZzogdGVzdEluaXQKIAogUnVubmluZzogdGVzdFNldFN0eWxlQXR0cmlidXRlCi08ZGl2
IGlkPSJjb250YWluZXIiIHN0eWxlPSJjb2xvcjogI2RhQzBERTsgYm9yZGVyOiAxcHggc29saWQg
YmxhY2s7Ij48L2Rpdj4KKzxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImNvbG9yOiAjZGFDMERF
OyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsiPuKApjwvZGl2PgogW2V4cGFuZGVkXSAKIGVsZW1l
bnQuc3R5bGUgIHsgKCkKIGNvbG9yOiAjREFDMERFOwpAQCAtMjIsMTggKzIyLDI4IEBAIGJvcmRl
cjogMXB4IHNvbGlkIGJsYWNrOwogICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsKICAgICBi
b3JkZXItbGVmdC13aWR0aDogMXB4OwogCis9PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09
PT09PQorW2V4cGFuZGVkXSAKK2RpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQorZGlzcGxh
eTogYmxvY2s7CisKIAogCiBSdW5uaW5nOiB0ZXN0U2V0U3R5bGVDU1NUZXh0Ci08ZGl2IGlkPSJj
b250YWluZXIiIHN0eWxlPSJjb2xvcjogcmdiKDE5MiwgMjU1LCAyMzgpOyI+PC9kaXY+Cis8ZGl2
IGlkPSJjb250YWluZXIiIHN0eWxlPSJjb2xvcjogcmdiKDE5MiwgMjU1LCAyMzgpOyI+4oCmPC9k
aXY+CiBbZXhwYW5kZWRdIAogZWxlbWVudC5zdHlsZSAgeyAoKQogY29sb3I6ICNDMEZGRUU7CiAK
Kz09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09CitbZXhwYW5kZWRdIAorZGl2ICB7
ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCitkaXNwbGF5OiBibG9jazsKKwogCiAKIFJ1bm5pbmc6
IHRlc3RTZXRWaWFQYXJzZWRBdHRyaWJ1dGVzCi08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJj
b2xvcjogcmdiKDE5MiwgMjU1LCAyMzgpOyBib3JkZXI6IDNweCBkYXNoZWQgZ3JlZW47Ij48L2Rp
dj4KKzxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImNvbG9yOiByZ2IoMTkyLCAyNTUsIDIzOCk7
IGJvcmRlcjogM3B4IGRhc2hlZCBncmVlbjsiPuKApjwvZGl2PgogW2V4cGFuZGVkXSAKIGVsZW1l
bnQuc3R5bGUgIHsgKCkKIGNvbG9yOiAjQzBGRkVFOwpAQCAtNTEsNSArNjEsNTIgQEAgYm9yZGVy
OiAzcHggZGFzaGVkIGdyZWVuOwogICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBkYXNoZWQ7CiAgICAg
Ym9yZGVyLWxlZnQtd2lkdGg6IDNweDsKIAorPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09
PT09PT0KK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKK2Rpc3Bs
YXk6IGJsb2NrOworCisKKworUnVubmluZzogdGVzdFNldFZpYUFuY2VzdG9yQ2xhc3MKKzxkaXYg
aWQ9ImNoaWxkIj48L2Rpdj4KK1tleHBhbmRlZF0gCitlbGVtZW50LnN0eWxlICB7ICgpCisKKz09
PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09CitbZXhwYW5kZWRdIAorLnJlZCBkaXY6
Zmlyc3QtY2hpbGQgIHsgKHN0eWxlcy11cGRhdGUtZnJvbS1qcy5odG1sOjQpCitiYWNrZ3JvdW5k
LWNvbG9yOiByZWQ7CisKK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVl
dCkKK2Rpc3BsYXk6IGJsb2NrOworCis9PT09PT09PSBJbmhlcml0ZWQgZnJvbSBkaXYjY29udGFp
bmVyLnJlZCA9PT09PT09PQorW2V4cGFuZGVkXSAKK1N0eWxlIEF0dHJpYnV0ZSAgeyAoKQorY29s
b3I6ICNDMEZGRUU7CisKKworCitSdW5uaW5nOiB0ZXN0U2V0VmlhU2libGluZ0NsYXNzCis8ZGl2
IGlkPSJjaGlsZFNpYmxpbmciPjwvZGl2PgorW2V4cGFuZGVkXSAKK2VsZW1lbnQuc3R5bGUgIHsg
KCkKKworPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KK1tleHBhbmRlZF0gCisu
Ymx1ZSArIGRpdiAgeyAoc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWw6OCkKK2JhY2tncm91bmQt
Y29sb3I6IGJsdWU7CisKK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVl
dCkKK2Rpc3BsYXk6IGJsb2NrOworCis9PT09PT09PSBJbmhlcml0ZWQgZnJvbSBkaXYjY29udGFp
bmVyLnJlZCA9PT09PT09PQorW2V4cGFuZGVkXSAKK1N0eWxlIEF0dHJpYnV0ZSAgeyAoKQorY29s
b3I6ICNDMEZGRUU7CisKIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20tanMuaHRtbAppbmRleCA4MmE1NGJjZWU5MWQyNTFlZmRm
MDc1YWM5YjZkMDdmMDkyNDNhMmZiLi41ZmI1MjdiNDNmZTE5OGU1YTQyMzQ4MDkzYzEyODJiNDNl
ODFkYmY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11
cGRhdGUtZnJvbS1qcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5
bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWwKQEAgLTEsNSArMSwxNSBAQAogPGh0bWw+CiA8aGVhZD4K
KzxzdHlsZT4KKy5yZWQgZGl2OmZpcnN0LWNoaWxkIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7Cit9CisKKy5ibHVlICsgZGl2IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQor
Cis8L3N0eWxlPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CkBAIC0yMCw2ICsz
MCwxNiBAQCBmdW5jdGlvbiBtb2RpZnlQYXJzZWRBdHRyaWJ1dGVzKCkKICAgICBzdHlsZS5ib3Jk
ZXJXaWR0aCA9ICIzcHgiOwogfQogCitmdW5jdGlvbiBtb2RpZnlDb250YWluZXJDbGFzcygpCit7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLmNsYXNzTmFtZSA9ICJy
ZWQiOworfQorCitmdW5jdGlvbiBtb2RpZnlDaGlsZENsYXNzKCkKK3sKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY2hpbGQiKS5jbGFzc05hbWUgPSAiYmx1ZSI7Cit9IAorCiBmdW5jdGlv
biB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCkBAIC00NCwzNiAr
NjQsNTkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHdhaXRBbmRE
dW1wQXR0cmlidXRlQW5kU3R5bGVzKG5leHQpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
dmFsdWF0ZUluUGFnZSgibW9kaWZ5UGFyc2VkQXR0cmlidXRlcygpIik7CisgICAgICAgIH0sCisK
KyAgICAgICAgZnVuY3Rpb24gdGVzdFNldFZpYUFuY2VzdG9yQ2xhc3MobmV4dCkKKyAgICAgICAg
eworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygi
Y2hpbGQiLCBjYWxsYmFjayk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB3YWl0QW5kRHVtcEF0dHJpYnV0ZUFuZFN0eWxl
cyhuZXh0LCAiY2hpbGQiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKCJtb2RpZnlDb250YWluZXJDbGFzcygpIik7CisgICAgICAgICAgICB9CisgICAgICAg
IH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdFNldFZpYVNpYmxpbmdDbGFzcyhuZXh0KQorICAg
ICAgICB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5
bGVzKCJjaGlsZFNpYmxpbmciLCBjYWxsYmFjayk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNh
bGxiYWNrKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB3YWl0QW5kRHVtcEF0dHJp
YnV0ZUFuZFN0eWxlcyhuZXh0LCAiY2hpbGRTaWJsaW5nIik7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibW9kaWZ5Q2hpbGRDbGFzcygpIik7CisgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICBdKTsKIAotICAgIGZ1bmN0aW9uIHdhaXRBbmREdW1wQXR0
cmlidXRlQW5kU3R5bGVzKG5leHQpCisgICAgZnVuY3Rpb24gd2FpdEFuZER1bXBBdHRyaWJ1dGVB
bmRTdHlsZXMobmV4dCwgaWQpCiAgICAgeworICAgICAgICBpZCA9IGlkIHx8ICJjb250YWluZXIi
OwogICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGR1
bXBBdHRyaWJ1dGVBbmRTdHlsZXMoKTsKKyAgICAgICAgICAgIGR1bXBBdHRyaWJ1dGVBbmRTdHls
ZXMoaWQpOwogICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICB9Ci0gICAgICAgIEluc3BlY3Rv
clRlc3Qud2FpdEZvclN0eWxlcygiY29udGFpbmVyIiwgY2FsbGJhY2spOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMoaWQsIGNhbGxiYWNrKTsKICAgICB9CiAKLSAgICBmdW5j
dGlvbiBkdW1wQXR0cmlidXRlQW5kU3R5bGVzKCkKKyAgICBmdW5jdGlvbiBkdW1wQXR0cmlidXRl
QW5kU3R5bGVzKGlkKQogICAgIHsKLSAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gZmluZE5vZGVU
cmVlRWxlbWVudCgpCisgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IGZpbmROb2RlVHJlZUVsZW1l
bnQoaWQpOwogICAgICAgICBpZiAoIXRyZWVFbGVtZW50KSB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiJ2NvbnRhaW5lcicgdHJlZSBlbGVtZW50IG5vdCBmb3VuZCIpOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiciICsgaWQgKyAiJyB0cmVlIGVs
ZW1lbnQgbm90IGZvdW5kIik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodHJlZUVsZW1lbnQubGlzdEl0ZW1FbGVtZW50LnRl
eHRDb250ZW50LnJlcGxhY2UoL1x1MjAwYi9nLCAiIikpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwgdHJ1ZSk7CisgICAgICAgIEluc3BlY3Rv
clRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsKICAgICB9CiAKLSAgICBmdW5j
dGlvbiBmaW5kTm9kZVRyZWVFbGVtZW50KCkKKyAgICBmdW5jdGlvbiBmaW5kTm9kZVRyZWVFbGVt
ZW50KGlkKQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVl
T3V0bGluZS5fdXBkYXRlTW9kaWZpZWROb2RlcygpOwotICAgICAgICB2YXIgZXhwYW5kZWROb2Rl
ID0gSW5zcGVjdG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQoImNvbnRhaW5lciIpOworICAgICAg
ICB2YXIgZXhwYW5kZWROb2RlID0gSW5zcGVjdG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQoaWQp
OwogICAgICAgICBpZiAoIWV4cGFuZGVkTm9kZSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIidjb250YWluZXInIG5vZGUgbm90IGZvdW5kIik7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiJyIgKyBpZCArICInIG5vZGUgbm90IGZvdW5kIik7CiAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgICAgICB9CiAgICAg
ICAgIHJldHVybiBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5lLmZpbmRU
cmVlRWxlbWVudChleHBhbmRlZE5vZGUpOwpAQCAtODQsMTAgKzEyNywxMCBAQCBmdW5jdGlvbiB0
ZXN0KCkKIAogPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgogPHA+Ci1UZXN0cyB0aGF0IGNoYW5n
ZXMgdG8gYW4gaW5saW5lIHN0eWxlIGZyb20gSmF2YVNjcmlwdCBhcmUgcmVmbGVjdGVkIGluIHRo
ZSBTdHlsZXMgcGFuZSBhbmQgRWxlbWVudHMgdHJlZS4KK1Rlc3RzIHRoYXQgY2hhbmdlcyB0byBh
biBpbmxpbmUgc3R5bGUgYW5kIGFuY2VzdG9yIGNsYXNzTmFtZSBmcm9tIEphdmFTY3JpcHQgYXJl
IHJlZmxlY3RlZCBpbiB0aGUgU3R5bGVzIHBhbmUgYW5kIEVsZW1lbnRzIHRyZWUuCiA8L3A+CiAK
LTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPjwvZGl2PgorPGRp
diBpZD0iY29udGFpbmVyIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+PGRpdiBpZD0iY2hpbGQi
PjwvZGl2PjxkaXYgaWQ9ImNoaWxkU2libGluZyI+PC9kaXY+PC9kaXY+CiAKIDwvYm9keT4KIDwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163554</attachid>
            <date>2012-09-12 02:23:57 -0700</date>
            <delta_ts>2012-09-12 03:44:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95722-20120912132330.patch</filename>
            <type>text/plain</type>
            <size>20928</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTM3NTg0MjRhYWQxMTU4
YmY3Y2Q4ZWYwNTZmOGJjNjczNDVkMmZmOS4uMzI5NGIwOWUzMmVkZTQ2YWM1YWZkNjI1MDBhYmUx
MzljNTU3NDY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA5LTEyICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW0VsZW1lbnRzXSBTaWRlYmFyIHBhbmVzIG5vdCB1cGRhdGVkIG9uIHN0eWxlIGNoYW5n
ZXMgZHVlIHRvICJjbGFzcyIgYXR0cmlidXRlIG1vZGlmaWNhdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzIyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIERPTUFnZW50IFN0eWxlSW52YWxp
ZGF0ZWQgZXZlbnQgaGFzIGJlZW4gcmVtb3ZlZCBpbiBmYXZvciBvZiB0aGUgU3R5bGVzU2lkZWJh
clBhbmUgZXhwbGljaXRseSBsaXN0ZW5pbmcgb24gdGhlCisgICAgICAgIEF0dHJNb2RpZmllZC9B
dHRyUmVtb3ZlZCBldmVudHMgdGhhdCByZXN1bHQgaW4gdGhvc2Ugc2FtZSB1cGRhdGVzLgorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUuX2F0dHJpYnV0ZU1vZGlmaWVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUuX2xvYWROb2RlQXR0cmlidXRlcyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlLl9jaGlsZE5vZGVSZW1vdmVk
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUudXBk
YXRlU2VsZWN0aW9uKTogRHJpdmUtYnk6IGF2b2lkIGEgY29zdGx5IHN5bmNocm9ub3VzIGxheW91
dCBkdXJpbmcgRE9NIHRyZWUgdXBkYXRlcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1N0eWxlc1NpZGViYXJQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGVi
YXJQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5
cGUuX2F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGVi
YXJQYW5lLnByb3RvdHlwZS5fY2FuQWZmZWN0Q3VycmVudFN0eWxlcyk6CisKIDIwMTItMDktMTEg
IFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtDTUFLRV0g
U3VwcGx5IGZlYXR1cmUgZGVmaW5lcyB0byBDb2RlR2VuZXJhdG9yVGVzdFJ1bm5lci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCmluZGV4IDJmNDUx
ZjU2NTk2NDI5NGUwMjU4NWY0NzUwNWI2YWM4YzhiNDUyMmMuLjgxMWZkMmU2ZDI0NWZmNmY0YmMx
NTE0MmNiZTAzOTMyNTUwMWMxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRE9NQWdlbnQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9ET01BZ2VudC5qcwpAQCAtNzk0LDcgKzc5NCw2IEBAIFdlYkluc3BlY3Rvci5ET01B
Z2VudC5FdmVudHMgPSB7CiAgICAgRG9jdW1lbnRVcGRhdGVkOiAiRG9jdW1lbnRVcGRhdGVkIiwK
ICAgICBDaGlsZE5vZGVDb3VudFVwZGF0ZWQ6ICJDaGlsZE5vZGVDb3VudFVwZGF0ZWQiLAogICAg
IEluc3BlY3RFbGVtZW50UmVxdWVzdGVkOiAiSW5zcGVjdEVsZW1lbnRSZXF1ZXN0ZWQiLAotICAg
IFN0eWxlSW52YWxpZGF0ZWQ6ICJTdHlsZUludmFsaWRhdGVkIiwKICAgICBVbmRvUmVkb1JlcXVl
c3RlZDogIlVuZG9SZWRvUmVxdWVzdGVkIiwKICAgICBVbmRvUmVkb0NvbXBsZXRlZDogIlVuZG9S
ZWRvQ29tcGxldGVkIgogfQpAQCAtOTE2LDEyICs5MTUsOSBAQCBXZWJJbnNwZWN0b3IuRE9NQWdl
bnQucHJvdG90eXBlID0gewogICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX2lkVG9ET01Ob2RlW25v
ZGVJZF07CiAgICAgICAgIGlmICghbm9kZSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
dmFyIGlzc3VlU3R5bGVJbnZhbGlkYXRlZCA9IG5hbWUgPT09ICJzdHlsZSIgJiYgdmFsdWUgIT09
IG5vZGUuZ2V0QXR0cmlidXRlKCJzdHlsZSIpOwogCiAgICAgICAgIG5vZGUuX3NldEF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSk7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdl
Ykluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuQXR0ck1vZGlmaWVkLCB7IG5vZGU6IG5vZGUsIG5h
bWU6IG5hbWUgfSk7Ci0gICAgICAgIGlmIChpc3N1ZVN0eWxlSW52YWxpZGF0ZWQpCi0gICAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2
ZW50cy5TdHlsZUludmFsaWRhdGVkLCBub2RlKQogICAgIH0sCiAKICAgICAvKioKQEAgLTk2NSwx
MCArOTYxLDggQEAgV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHZhciBub2RlID0gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXTsK
ICAgICAgICAgICAgIGlmIChub2RlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG5vZGUuX3NldEF0
dHJpYnV0ZXNQYXlsb2FkKGF0dHJpYnV0ZXMpKSB7CisgICAgICAgICAgICAgICAgaWYgKG5vZGUu
X3NldEF0dHJpYnV0ZXNQYXlsb2FkKGF0dHJpYnV0ZXMpKQogICAgICAgICAgICAgICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRz
LkF0dHJNb2RpZmllZCwgeyBub2RlOiBub2RlLCBuYW1lOiAic3R5bGUiIH0pOwotICAgICAgICAg
ICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRE9N
QWdlbnQuRXZlbnRzLlN0eWxlSW52YWxpZGF0ZWQsIG5vZGUpOwotICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0xMDgwLDcgKzEwNzQsNyBAQCBXZWJJbnNw
ZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlID0gewogICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX2lk
VG9ET01Ob2RlW25vZGVJZF07CiAgICAgICAgIHBhcmVudC5fcmVtb3ZlQ2hpbGQobm9kZSk7CiAg
ICAgICAgIHRoaXMuX3VuYmluZChub2RlKTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5Ob2RlUmVtb3ZlZCwge25vZGU6
bm9kZSwgcGFyZW50OnBhcmVudH0pOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLk5vZGVSZW1vdmVkLCB7bm9kZTogbm9k
ZSwgcGFyZW50OiBwYXJlbnR9KTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMK
aW5kZXggODE4MzYzNjRkNDZmODljMTdiODAyYTYyOTFjOTkyOTgyMzRjNTc4My4uMDc4NDNjOTZi
YzJjZjdiNDhkZDk1NTdlMjZjMWI3YWEyMmZjZjg0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAt
ODEyLDEwICs4MTIsMTQgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogICAgICAgICBpZiAoIWxpc3RJdGVtRWxlbWVudCkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCA8PSAwKSB7Ci0gICAg
ICAgICAgICAvLyBUaGUgc3R5bGVzaGVldCBoYXNuJ3QgbG9hZGVkIHlldCBvciB0aGUgd2luZG93
IGlzIGNsb3NlZCwKLSAgICAgICAgICAgIC8vIHNvIHdlIGNhbid0IGNhbGN1bGF0ZSB3aGF0IGlz
IG5lZWQuIFJldHVybiBlYXJseS4KLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKCF0
aGlzLl9yZWFkeVRvVXBkYXRlU2VsZWN0aW9uKSB7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQu
Ym9keS5vZmZzZXRXaWR0aCA+IDApCisgICAgICAgICAgICAgICAgdGhpcy5fcmVhZHlUb1VwZGF0
ZVNlbGVjdGlvbiA9IHRydWU7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAv
LyBUaGUgc3R5bGVzaGVldCBoYXNuJ3QgbG9hZGVkIHlldCBvciB0aGUgd2luZG93IGlzIGNsb3Nl
ZCwKKyAgICAgICAgICAgICAgICAvLyBzbyB3ZSBjYW4ndCBjYWxjdWxhdGUgd2hhdCB3ZSBuZWVk
LiBSZXR1cm4gZWFybHkuCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGlvbkVsZW1lbnQpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBh
bmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQ
YW5lLmpzCmluZGV4IDA0Njc4YjA5NDc2ZWZmM2M0MDlmMDYzMzYxZDFhZTI1NzY0YTEwMTEuLjE4
ZGY1OTkxNjVlY2Q1ZTA5NTkzNTNhY2NiODBkN2U3YzQ0ZWY1MzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwpA
QCAtOTcsOSArOTcsOCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUgPSBmdW5jdGlv
bihjb21wdXRlZFN0eWxlUGFuZSwgc2V0UHNldWRvQ2xhc3NDYWxsYgogCiAgICAgV2ViSW5zcGVj
dG9yLmNzc01vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwu
RXZlbnRzLlN0eWxlU2hlZXRDaGFuZ2VkLCB0aGlzLl9zdHlsZVNoZWV0T3JNZWRpYVF1ZXJ5UmVz
dWx0Q2hhbmdlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLk1lZGlhUXVlcnlSZXN1bHRD
aGFuZ2VkLCB0aGlzLl9zdHlsZVNoZWV0T3JNZWRpYVF1ZXJ5UmVzdWx0Q2hhbmdlZCwgdGhpcyk7
Ci0gICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkRPTUFnZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQsIHRoaXMuX2F0dHJpYnV0ZXNNb2RpZmllZCwg
dGhpcyk7Ci0gICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRPTUFnZW50LkV2ZW50cy5BdHRyUmVtb3ZlZCwgdGhpcy5fYXR0cmlidXRlc1JlbW92
ZWQsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuU3R5bGVJbnZhbGlkYXRlZCwgdGhpcy5fc3R5bGVJ
bnZhbGlkYXRlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQsIHRoaXMuX2F0
dHJpYnV0ZUNoYW5nZWQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuQXR0clJlbW92ZWQsIHRoaXMu
X2F0dHJpYnV0ZUNoYW5nZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93
VXNlckFnZW50U3R5bGVzLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMuX3Nob3dVc2VyQWdlbnRTdHls
ZXNTZXR0aW5nQ2hhbmdlZC5iaW5kKHRoaXMpKTsKIH0KIApAQCAtMzE0LDM3ICszMTMsMjIgQEAg
V2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5fcmVidWlsZFVwZGF0ZSgpOwogICAgIH0sCiAKLSAgICBfYXR0cmlidXRlc01vZGlmaWVkOiBm
dW5jdGlvbihldmVudCkKKyAgICBfYXR0cmlidXRlQ2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCiAg
ICAgewotICAgICAgICBpZiAodGhpcy5ub2RlICE9PSBldmVudC5kYXRhLm5vZGUpCisgICAgICAg
IC8vIEFueSBhdHRyaWJ1dGUgcmVtb3ZhbCBvciBtb2RpZmljYXRpb24gY2FuIGFmZmVjdCB0aGUg
c3R5bGVzIG9mICJyZWxhdGVkIiBub2Rlcy4KKyAgICAgICAgLy8gRG8gbm90IHRvdWNoIHRoZSBz
dHlsZXMgaWYgdGhleSBhcmUgYmVpbmcgZWRpdGVkLgorICAgICAgICBpZiAodGhpcy5faXNFZGl0
aW5nU3R5bGUgfHwgdGhpcy5fdXNlck9wZXJhdGlvbikKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICAvLyBDaGFuZ2luZyBzdHlsZSBhdHRyaWJ1dGUgd2lsbCBhbnl3YXlzIGdlbmVyYXRl
IF9zdHlsZUludmFsaWRhdGVkIG1lc3NhZ2UuCi0gICAgICAgIGlmIChldmVudC5kYXRhLm5hbWUg
PT09ICJzdHlsZSIpCisgICAgICAgIGlmICghdGhpcy5fY2FuQWZmZWN0Q3VycmVudFN0eWxlcyhl
dmVudC5kYXRhLm5vZGUpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIC8vICJjbGFz
cyIgKG9yIGFueSBvdGhlcikgYXR0cmlidXRlIG1pZ2h0IGhhdmUgY2hhbmdlZC4gVXBkYXRlIHN0
eWxlcyB1bmxlc3MgdGhleSBhcmUgYmVpbmcgZWRpdGVkLgotICAgICAgICBpZiAoIXRoaXMuX2lz
RWRpdGluZ1N0eWxlICYmICF0aGlzLl91c2VyT3BlcmF0aW9uKQotICAgICAgICAgICAgdGhpcy5f
cmVidWlsZFVwZGF0ZSgpOwotICAgIH0sCi0KLSAgICBfYXR0cmlidXRlc1JlbW92ZWQ6IGZ1bmN0
aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMubm9kZSAhPT0gZXZlbnQuZGF0YS5u
b2RlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vICJzdHlsZSIgYXR0cmlidXRl
IG1pZ2h0IGhhdmUgYmVlbiByZW1vdmVkLgotICAgICAgICBpZiAoIXRoaXMuX2lzRWRpdGluZ1N0
eWxlICYmICF0aGlzLl91c2VyT3BlcmF0aW9uKQotICAgICAgICAgICAgdGhpcy5fcmVidWlsZFVw
ZGF0ZSgpOworICAgICAgICB0aGlzLl9yZWJ1aWxkVXBkYXRlKCk7CiAgICAgfSwKIAotICAgIF9z
dHlsZUludmFsaWRhdGVkOiBmdW5jdGlvbihldmVudCkKKyAgICBfY2FuQWZmZWN0Q3VycmVudFN0
eWxlczogZnVuY3Rpb24obm9kZSkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLm5vZGUgIT09IGV2
ZW50LmRhdGEpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKCF0aGlzLl9pc0Vk
aXRpbmdTdHlsZSAmJiAhdGhpcy5fdXNlck9wZXJhdGlvbikKLSAgICAgICAgICAgIHRoaXMuX3Jl
YnVpbGRVcGRhdGUoKTsKKyAgICAgICAgcmV0dXJuICF0aGlzLm5vZGUgfHwgdGhpcy5ub2RlID09
PSBub2RlIHx8IG5vZGUucGFyZW50Tm9kZSA9PT0gdGhpcy5ub2RlLnBhcmVudE5vZGUgfHwgbm9k
ZS5pc0FuY2VzdG9yKHRoaXMubm9kZSk7CiAgICAgfSwKIAogICAgIF9pbm5lclJlZnJlc2hVcGRh
dGU6IGZ1bmN0aW9uKG5vZGUsIGNvbXB1dGVkU3R5bGUsIGVkaXRlZFNlY3Rpb24pCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YTMyYjQ2ZGU5YzZhMTRmMDlhOWJiMTJkOTU3MDE5YjE3MjJiNGJhMi4uZmFmNzFkM2Y2ZGQxMTNk
YWYzMGVmZjYxMTNjZWQ2NTBkMDgyYTljYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA5
LTEyICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogW0VsZW1lbnRzXSBTaWRlYmFyIHBhbmVzIG5vdCB1cGRhdGVkIG9uIHN0
eWxlIGNoYW5nZXMgZHVlIHRvICJjbGFzcyIgYXR0cmlidXRlIG1vZGlmaWNhdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzIyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZWxl
bWVudHMvZWRpdC1zdHlsZS1hdHRyaWJ1dGUuaHRtbDogUmVuYW1lZCBldmVudHMgb24gd2hpY2gg
dG8gbGlzdGVuLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNp
emUuaHRtbDogRHJpdmUtYnk6IGZpeGVkIHJhY2UgY29uZGl0aW9uIHRoYXQgd2FzIHJlc3VsdGlu
ZyBpbiB0aGlzIHRlc3QncyBmYWlsdXJlcy4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0
eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20tanMuaHRtbDogQWRkZWQgdGVzdCBjYXNlcyBmb3Igc3R5
bGUgdXBkYXRlcyBvbiBhbmNlc3RvciBhbmQgc2libGluZyBhdHRyaWJ1dGVzJyBjaGFuZ2VzLgor
CiAyMDEyLTA5LTExICBUYWlqdSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBXZWJGcmFtZUltcGw6OmNsaWVudCgpIG5lZWRzIE5VTEwgY2hlY2sgaW4gV2ViV29ya2VyQ2xp
ZW50SW1wbDo6b3BlbkZpbGVTeXN0ZW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy9lZGl0LXN0eWxlLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMvZWRpdC1zdHlsZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDZmN2JjZTdlMjc4NWEzOWNmNjYwNDg4N2Q0MDhjOWYzNWUxYTUxOTAuLmE2NTIzODRjMjc1
NTdlNzg5NGQzNDRkMjUzZjVkZDA4NWFlNWYwNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9lZGl0LXN0eWxlLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtc3R5bGUtYXR0cmlidXRlLWV4cGVj
dGVkLnR4dApAQCAtNCw3ICs0LDcgQEAgVGVzdHMgdGhhdCBzdHlsZSBtb2RpZmljYXRpb24gZ2Vu
ZXJhdGVzIGF0dHJpYnV0ZSB1cGRhdGVkIGV2ZW50IG9ubHkgd2hlbiBhdHRyaWIKIFJ1bm5pbmc6
IHRlc3RTZXRVcAogCiBSdW5uaW5nOiB0ZXN0U2V0TmV3VmFsdWUKLVdlYkluc3BlY3Rvci5ET01B
Z2VudC5FdmVudHMuU3R5bGVJbnZhbGlkYXRlZCBzaG91bGQgYmUgaXNzdWVkCitXZWJJbnNwZWN0
b3IuRE9NQWdlbnQuRXZlbnRzLkF0dHJNb2RpZmllZCBzaG91bGQgYmUgaXNzdWVkCiAKIFJ1bm5p
bmc6IHRlc3RTZXRTYW1lVmFsdWUKIFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZS5fc2V0
QXR0cmlidXRlc1BheWxvYWQgc2hvdWxkIGJlIGNhbGxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtc3R5bGUtYXR0cmlidXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWRpdC1zdHlsZS1hdHRyaWJ1dGUuaHRtbAppbmRleCBm
NGQ4NmE0YmU1YTE2NDZkNjAyM2U1YTdiYTA3OTY5YjNhN2MzZDUyLi42N2Y3Y2EzNDdjNjUzMDhl
NjA5ZGQ3ZmUxODJlODNhZTk1MWQ1YjFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvZWRpdC1zdHlsZS1hdHRyaWJ1dGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvZWRpdC1zdHlsZS1hdHRyaWJ1dGUuaHRtbApAQCAtMzEsMTEgKzMx
LDExIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJ0ZXN0U2V0TmV3VmFsdWUoKSIpOwogCi0gICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdl
bnQuRXZlbnRzLlN0eWxlSW52YWxpZGF0ZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5F
dmVudHMuQXR0ck1vZGlmaWVkLCBsaXN0ZW5lcik7CiAgICAgICAgICAgICBmdW5jdGlvbiBsaXN0
ZW5lcihldmVudCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5TdHlsZUludmFsaWRhdGVk
IHNob3VsZCBiZSBpc3N1ZWQiKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdl
bnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLlN0eWxl
SW52YWxpZGF0ZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQgc2hvdWxk
IGJlIGlzc3VlZCIpOworICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZW1v
dmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuQXR0ck1vZGlmaWVk
LCBsaXN0ZW5lcik7CiAgICAgICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9LApAQCAtNDQsMTggKzQ0LDE4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJ0ZXN0U2V0U2FtZVZhbHVl
KCkiKTsKIAotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5TdHlsZUludmFsaWRhdGVkLCBsaXN0ZW5l
cik7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLkF0dHJNb2RpZmllZCwgbGlzdGVuZXIpOwogICAg
ICAgICAgICAgZnVuY3Rpb24gbGlzdGVuZXIoZXZlbnQpCiAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIldlYkluc3BlY3Rvci5ET01BZ2VudC5F
dmVudHMuU3R5bGVJbnZhbGlkYXRlZCBzaG91bGQgbm90IGJlIGlzc3VlZCIpOwotICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5ET01BZ2VudC5FdmVudHMuU3R5bGVJbnZhbGlkYXRlZCwgbGlzdGVuZXIpOworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJXZWJJbnNwZWN0b3IuRE9NQWdlbnQu
RXZlbnRzLkF0dHJNb2RpZmllZCBzaG91bGQgbm90IGJlIGlzc3VlZCIpOworICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5ET01BZ2VudC5FdmVudHMuQXR0ck1vZGlmaWVkLCBsaXN0ZW5lcik7CiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuRE9N
Tm9kZS5wcm90b3R5cGUsICJfc2V0QXR0cmlidXRlc1BheWxvYWQiLCBjYWxsYmFjayk7CiAgICAg
ICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIldlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlw
ZS5fc2V0QXR0cmlidXRlc1BheWxvYWQgc2hvdWxkIGJlIGNhbGxlZCIpOwotICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5ET01BZ2VudC5FdmVudHMuU3R5bGVJbnZhbGlkYXRlZCwgbGlzdGVuZXIpOworICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5ET01BZ2VudC5FdmVudHMuQXR0ck1vZGlmaWVkLCBsaXN0ZW5lcik7CiAgICAgICAgICAg
ICAgICAgbmV4dCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVlbi1zaXplLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVlbi1zaXplLmh0bWwKaW5kZXgg
ZmFkMjZkN2Q2N2NjYzMxNzU5MWFiY2FlMjk4YWM3OWQyNTRhM2M1NS4uOGQ0NjY5OTJiYTZlZDZm
NzRlOTRkYTJlNjUzNWZlODFlZjllMjc5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNpemUuaHRtbApAQCAtMTU4LDE5ICsxNTgs
MzYgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBvdmVycmlkZUFuZER1bXBEYXRh
KHdpZHRoLCBoZWlnaHQsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gc2VsZWN0
Q2FsbGJhY2soKQorICAgICAgICBmdW5jdGlvbiBmaW5hbENhbGxiYWNrKCkKICAgICAgICAgewog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk1haW4gc3R5bGU6Iik7CiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwgZmFs
c2UsIHRydWUpOwogICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgfQogCisgICAgICAg
IHZhciBnb3RTaXplczsKKyAgICAgICAgdmFyIGdvdFN0eWxlczsKKyAgICAgICAgZnVuY3Rpb24g
c3R5bGVzQ2FsbGJhY2soKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZ290U2l6ZXMpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZpbmFsQ2FsbGJhY2soKTsKKyAgICAgICAgICAgIGdvdFN0
eWxlcyA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzaXplc0NhbGxiYWNr
KCkKKyAgICAgICAgeworICAgICAgICAgICAgZ290U2l6ZXMgPSB0cnVlOworICAgICAgICAgICAg
aWYgKGdvdFN0eWxlcykKKyAgICAgICAgICAgICAgICBmaW5hbENhbGxiYWNrKCk7CisgICAgICAg
IH0KKwogICAgICAgICBmdW5jdGlvbiBhcHBseUNhbGxiYWNrKCkKICAgICAgICAgewotICAgICAg
ICAgICAgZ2V0QW5kRHVtcFNpemVzKHNlbGVjdENhbGxiYWNrKTsKKyAgICAgICAgICAgIGdldEFu
ZER1bXBTaXplcyhzaXplc0NhbGxiYWNrKTsKICAgICAgICAgfQogCiAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJPdmVycmlkZTogIiArIHdpZHRoICsgIngiICsgaGVpZ2h0KTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKCJtYWluIiwgc3R5bGVzQ2FsbGJhY2sp
OwogICAgICAgICBhcHBseU92ZXJyaWRlKHdpZHRoLCBoZWlnaHQsIGFwcGx5Q2FsbGJhY2spOwog
ICAgIH0KIApAQCAtMTgyLDcgKzE5OSw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmVlbiBmcm9tIHBhZ2U6ICIgKyByZXN1bHQuc2Ny
ZWVuKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJXaW5kb3cgZnJvbSBw
YWdlOiAiICsgcmVzdWx0LmlubmVyKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJCb2R5IGZyb20gcGFnZTogIiArIHJlc3VsdC5ib2R5KTsKLSAgICAgICAgICAgIGNhbGxi
YWNrKCk7CisgICAgICAgICAgICBpZiAoY2FsbGJhY2spCisgICAgICAgICAgICAgICAgY2FsbGJh
Y2soKTsKICAgICAgICAgfQogCiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
ImdldFNpemVzKCkiLCBnZXRTaXplc0NhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVk
LnR4dAppbmRleCAxYzFkNjY3YjNhMzM2YWI5MmVlMmQ1NmRiNTY2MDIzOTkyZjkxMzg2Li4xNjg2
YTIyNWIyMzBiZDgzMGM5YTRlZTk5ZjgxNjNkZGJhZmE1NjRlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20tanMt
ZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDEwIEBACi1UZXN0cyB0aGF0IGNoYW5nZXMgdG8gYW4g
aW5saW5lIHN0eWxlIGZyb20gSmF2YVNjcmlwdCBhcmUgcmVmbGVjdGVkIGluIHRoZSBTdHlsZXMg
cGFuZSBhbmQgRWxlbWVudHMgdHJlZS4KK1Rlc3RzIHRoYXQgY2hhbmdlcyB0byBhbiBpbmxpbmUg
c3R5bGUgYW5kIGFuY2VzdG9yL3NpYmxpbmcgY2xhc3NOYW1lIGZyb20gSmF2YVNjcmlwdCBhcmUg
cmVmbGVjdGVkIGluIHRoZSBTdHlsZXMgcGFuZSBhbmQgRWxlbWVudHMgdHJlZS4KIAogCiBSdW5u
aW5nOiB0ZXN0SW5pdAogCiBSdW5uaW5nOiB0ZXN0U2V0U3R5bGVBdHRyaWJ1dGUKLTxkaXYgaWQ9
ImNvbnRhaW5lciIgc3R5bGU9ImNvbG9yOiAjZGFDMERFOyBib3JkZXI6IDFweCBzb2xpZCBibGFj
azsiPjwvZGl2PgorPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iY29sb3I6ICNkYUMwREU7IGJv
cmRlcjogMXB4IHNvbGlkIGJsYWNrOyI+4oCmPC9kaXY+CiBbZXhwYW5kZWRdIAogZWxlbWVudC5z
dHlsZSAgeyAoKQogY29sb3I6ICNEQUMwREU7CkBAIC0yMiwxOCArMjIsMjggQEAgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7CiAgICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOwogICAgIGJvcmRl
ci1sZWZ0LXdpZHRoOiAxcHg7CiAKKz09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09
CitbZXhwYW5kZWRdIAorZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCitkaXNwbGF5OiBi
bG9jazsKKwogCiAKIFJ1bm5pbmc6IHRlc3RTZXRTdHlsZUNTU1RleHQKLTxkaXYgaWQ9ImNvbnRh
aW5lciIgc3R5bGU9ImNvbG9yOiByZ2IoMTkyLCAyNTUsIDIzOCk7Ij48L2Rpdj4KKzxkaXYgaWQ9
ImNvbnRhaW5lciIgc3R5bGU9ImNvbG9yOiByZ2IoMTkyLCAyNTUsIDIzOCk7Ij7igKY8L2Rpdj4K
IFtleHBhbmRlZF0gCiBlbGVtZW50LnN0eWxlICB7ICgpCiBjb2xvcjogI0MwRkZFRTsKIAorPT09
PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KK1tleHBhbmRlZF0gCitkaXYgIHsgKHVz
ZXIgYWdlbnQgc3R5bGVzaGVldCkKK2Rpc3BsYXk6IGJsb2NrOworCiAKIAogUnVubmluZzogdGVz
dFNldFZpYVBhcnNlZEF0dHJpYnV0ZXMKLTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImNvbG9y
OiByZ2IoMTkyLCAyNTUsIDIzOCk7IGJvcmRlcjogM3B4IGRhc2hlZCBncmVlbjsiPjwvZGl2Pgor
PGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iY29sb3I6IHJnYigxOTIsIDI1NSwgMjM4KTsgYm9y
ZGVyOiAzcHggZGFzaGVkIGdyZWVuOyI+4oCmPC9kaXY+CiBbZXhwYW5kZWRdIAogZWxlbWVudC5z
dHlsZSAgeyAoKQogY29sb3I6ICNDMEZGRUU7CkBAIC01MSw1ICs2MSw1MiBAQCBib3JkZXI6IDNw
eCBkYXNoZWQgZ3JlZW47CiAgICAgYm9yZGVyLWxlZnQtc3R5bGU6IGRhc2hlZDsKICAgICBib3Jk
ZXItbGVmdC13aWR0aDogM3B4OwogCis9PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09
PQorW2V4cGFuZGVkXSAKK2RpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQorZGlzcGxheTog
YmxvY2s7CisKKworCitSdW5uaW5nOiB0ZXN0U2V0VmlhQW5jZXN0b3JDbGFzcworPGRpdiBpZD0i
Y2hpbGQiPjwvZGl2PgorW2V4cGFuZGVkXSAKK2VsZW1lbnQuc3R5bGUgIHsgKCkKKworPT09PT09
PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KK1tleHBhbmRlZF0gCisucmVkIGRpdjpmaXJz
dC1jaGlsZCAgeyAoc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWw6NCkKK2JhY2tncm91bmQtY29s
b3I6IHJlZDsKKworW2V4cGFuZGVkXSAKK2RpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQor
ZGlzcGxheTogYmxvY2s7CisKKz09PT09PT09IEluaGVyaXRlZCBmcm9tIGRpdiNjb250YWluZXIu
cmVkID09PT09PT09CitbZXhwYW5kZWRdIAorU3R5bGUgQXR0cmlidXRlICB7ICgpCitjb2xvcjog
I0MwRkZFRTsKKworCisKK1J1bm5pbmc6IHRlc3RTZXRWaWFTaWJsaW5nQ2xhc3MKKzxkaXYgaWQ9
ImNoaWxkU2libGluZyI+PC9kaXY+CitbZXhwYW5kZWRdIAorZWxlbWVudC5zdHlsZSAgeyAoKQor
Cis9PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQorW2V4cGFuZGVkXSAKKy5ibHVl
ICsgZGl2ICB7IChzdHlsZXMtdXBkYXRlLWZyb20tanMuaHRtbDo4KQorYmFja2dyb3VuZC1jb2xv
cjogYmx1ZTsKKworW2V4cGFuZGVkXSAKK2RpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQor
ZGlzcGxheTogYmxvY2s7CisKKz09PT09PT09IEluaGVyaXRlZCBmcm9tIGRpdiNjb250YWluZXIu
cmVkID09PT09PT09CitbZXhwYW5kZWRdIAorU3R5bGUgQXR0cmlidXRlICB7ICgpCitjb2xvcjog
I0MwRkZFRTsKKwogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
c3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3N0eWxlcy11cGRhdGUtZnJvbS1qcy5odG1sCmluZGV4IDgyYTU0YmNlZTkxZDI1MWVmZGYwNzVh
YzliNmQwN2YwOTI0M2EyZmIuLjIxNzc4MmYwNzE3OGUzNWU0ODJjNmNmZTk4ZGM4Njc1NWY1ZDRi
Y2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0
ZS1mcm9tLWpzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMt
dXBkYXRlLWZyb20tanMuaHRtbApAQCAtMSw1ICsxLDE1IEBACiA8aHRtbD4KIDxoZWFkPgorPHN0
eWxlPgorLnJlZCBkaXY6Zmlyc3QtY2hpbGQgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsK
K30KKworLmJsdWUgKyBkaXYgeworICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Cit9CisKKzwv
c3R5bGU+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KQEAgLTIwLDYgKzMwLDE2
IEBAIGZ1bmN0aW9uIG1vZGlmeVBhcnNlZEF0dHJpYnV0ZXMoKQogICAgIHN0eWxlLmJvcmRlcldp
ZHRoID0gIjNweCI7CiB9CiAKK2Z1bmN0aW9uIG1vZGlmeUNvbnRhaW5lckNsYXNzKCkKK3sKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIikuY2xhc3NOYW1lID0gInJlZCI7
Cit9CisKK2Z1bmN0aW9uIG1vZGlmeUNoaWxkQ2xhc3MoKQoreworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjaGlsZCIpLmNsYXNzTmFtZSA9ICJibHVlIjsKK30KKwogZnVuY3Rpb24gdGVz
dCgpCiB7CiAgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwpAQCAtNDQsMzYgKzY0LDU5
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICB3YWl0QW5kRHVtcEF0
dHJpYnV0ZUFuZFN0eWxlcyhuZXh0KTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoIm1vZGlmeVBhcnNlZEF0dHJpYnV0ZXMoKSIpOworICAgICAgICB9LAorCisgICAg
ICAgIGZ1bmN0aW9uIHRlc3RTZXRWaWFBbmNlc3RvckNsYXNzKG5leHQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImNoaWxk
IiwgY2FsbGJhY2spOworCisgICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgd2FpdEFuZER1bXBBdHRyaWJ1dGVBbmRTdHlsZXMobmV4
dCwgImNoaWxkIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZSgibW9kaWZ5Q29udGFpbmVyQ2xhc3MoKSIpOworICAgICAgICAgICAgfQorICAgICAgICB9LAor
CisgICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRWaWFTaWJsaW5nQ2xhc3MobmV4dCkKKyAgICAgICAg
eworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygi
Y2hpbGRTaWJsaW5nIiwgY2FsbGJhY2spOworCisgICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFj
aygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgd2FpdEFuZER1bXBBdHRyaWJ1dGVB
bmRTdHlsZXMobmV4dCwgImNoaWxkU2libGluZyIpOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoIm1vZGlmeUNoaWxkQ2xhc3MoKSIpOworICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgXSk7CiAKLSAgICBmdW5jdGlvbiB3YWl0QW5kRHVtcEF0dHJpYnV0
ZUFuZFN0eWxlcyhuZXh0KQorICAgIGZ1bmN0aW9uIHdhaXRBbmREdW1wQXR0cmlidXRlQW5kU3R5
bGVzKG5leHQsIGlkKQogICAgIHsKKyAgICAgICAgaWQgPSBpZCB8fCAiY29udGFpbmVyIjsKICAg
ICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQogICAgICAgICB7Ci0gICAgICAgICAgICBkdW1wQXR0
cmlidXRlQW5kU3R5bGVzKCk7CisgICAgICAgICAgICBkdW1wQXR0cmlidXRlQW5kU3R5bGVzKGlk
KTsKICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JUZXN0
LndhaXRGb3JTdHlsZXMoImNvbnRhaW5lciIsIGNhbGxiYWNrKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC53YWl0Rm9yU3R5bGVzKGlkLCBjYWxsYmFjayk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24g
ZHVtcEF0dHJpYnV0ZUFuZFN0eWxlcygpCisgICAgZnVuY3Rpb24gZHVtcEF0dHJpYnV0ZUFuZFN0
eWxlcyhpZCkKICAgICB7Ci0gICAgICAgIHZhciB0cmVlRWxlbWVudCA9IGZpbmROb2RlVHJlZUVs
ZW1lbnQoKQorICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSBmaW5kTm9kZVRyZWVFbGVtZW50KGlk
KTsKICAgICAgICAgaWYgKCF0cmVlRWxlbWVudCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIidjb250YWluZXInIHRyZWUgZWxlbWVudCBub3QgZm91bmQiKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCInIiArIGlkICsgIicgdHJlZSBlbGVtZW50
IG5vdCBmb3VuZCIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KHRyZWVFbGVtZW50Lmxpc3RJdGVtRWxlbWVudC50ZXh0Q29u
dGVudC5yZXBsYWNlKC9cdTIwMGIvZywgIiIpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1w
U2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUsIHRydWUpOworICAgICAgICBJbnNwZWN0b3JUZXN0
LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24g
ZmluZE5vZGVUcmVlRWxlbWVudCgpCisgICAgZnVuY3Rpb24gZmluZE5vZGVUcmVlRWxlbWVudChp
ZCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxp
bmUuX3VwZGF0ZU1vZGlmaWVkTm9kZXMoKTsKLSAgICAgICAgdmFyIGV4cGFuZGVkTm9kZSA9IElu
c3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElkKCJjb250YWluZXIiKTsKKyAgICAgICAgdmFy
IGV4cGFuZGVkTm9kZSA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElkKGlkKTsKICAg
ICAgICAgaWYgKCFleHBhbmRlZE5vZGUpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCInY29udGFpbmVyJyBub2RlIG5vdCBmb3VuZCIpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIiciICsgaWQgKyAiJyBub2RlIG5vdCBmb3VuZCIpOwogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZS5maW5kVHJlZUVs
ZW1lbnQoZXhwYW5kZWROb2RlKTsKQEAgLTg0LDEwICsxMjcsMTAgQEAgZnVuY3Rpb24gdGVzdCgp
CiAKIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KIDxwPgotVGVzdHMgdGhhdCBjaGFuZ2VzIHRv
IGFuIGlubGluZSBzdHlsZSBmcm9tIEphdmFTY3JpcHQgYXJlIHJlZmxlY3RlZCBpbiB0aGUgU3R5
bGVzIHBhbmUgYW5kIEVsZW1lbnRzIHRyZWUuCitUZXN0cyB0aGF0IGNoYW5nZXMgdG8gYW4gaW5s
aW5lIHN0eWxlIGFuZCBhbmNlc3Rvci9zaWJsaW5nIGNsYXNzTmFtZSBmcm9tIEphdmFTY3JpcHQg
YXJlIHJlZmxlY3RlZCBpbiB0aGUgU3R5bGVzIHBhbmUgYW5kIEVsZW1lbnRzIHRyZWUuCiA8L3A+
CiAKLTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPjwvZGl2Pgor
PGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+PGRpdiBpZD0iY2hp
bGQiPjwvZGl2PjxkaXYgaWQ9ImNoaWxkU2libGluZyI+PC9kaXY+PC9kaXY+CiAKIDwvYm9keT4K
IDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163573</attachid>
            <date>2012-09-12 03:44:36 -0700</date>
            <delta_ts>2012-09-12 04:24:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95722-20120912144409.patch</filename>
            <type>text/plain</type>
            <size>20929</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTM3NTg0MjRhYWQxMTU4
YmY3Y2Q4ZWYwNTZmOGJjNjczNDVkMmZmOS4uMzI5NGIwOWUzMmVkZTQ2YWM1YWZkNjI1MDBhYmUx
MzljNTU3NDY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA5LTEyICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW0VsZW1lbnRzXSBTaWRlYmFyIHBhbmVzIG5vdCB1cGRhdGVkIG9uIHN0eWxlIGNoYW5n
ZXMgZHVlIHRvICJjbGFzcyIgYXR0cmlidXRlIG1vZGlmaWNhdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzIyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIERPTUFnZW50IFN0eWxlSW52YWxp
ZGF0ZWQgZXZlbnQgaGFzIGJlZW4gcmVtb3ZlZCBpbiBmYXZvciBvZiB0aGUgU3R5bGVzU2lkZWJh
clBhbmUgZXhwbGljaXRseSBsaXN0ZW5pbmcgb24gdGhlCisgICAgICAgIEF0dHJNb2RpZmllZC9B
dHRyUmVtb3ZlZCBldmVudHMgdGhhdCByZXN1bHQgaW4gdGhvc2Ugc2FtZSB1cGRhdGVzLgorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUuX2F0dHJpYnV0ZU1vZGlmaWVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUuX2xvYWROb2RlQXR0cmlidXRlcyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlLl9jaGlsZE5vZGVSZW1vdmVk
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUudXBk
YXRlU2VsZWN0aW9uKTogRHJpdmUtYnk6IGF2b2lkIGEgY29zdGx5IHN5bmNocm9ub3VzIGxheW91
dCBkdXJpbmcgRE9NIHRyZWUgdXBkYXRlcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1N0eWxlc1NpZGViYXJQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGVi
YXJQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5
cGUuX2F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGVi
YXJQYW5lLnByb3RvdHlwZS5fY2FuQWZmZWN0Q3VycmVudFN0eWxlcyk6CisKIDIwMTItMDktMTEg
IFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtDTUFLRV0g
U3VwcGx5IGZlYXR1cmUgZGVmaW5lcyB0byBDb2RlR2VuZXJhdG9yVGVzdFJ1bm5lci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCmluZGV4IDJmNDUx
ZjU2NTk2NDI5NGUwMjU4NWY0NzUwNWI2YWM4YzhiNDUyMmMuLjgxMWZkMmU2ZDI0NWZmNmY0YmMx
NTE0MmNiZTAzOTMyNTUwMWMxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRE9NQWdlbnQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9ET01BZ2VudC5qcwpAQCAtNzk0LDcgKzc5NCw2IEBAIFdlYkluc3BlY3Rvci5ET01B
Z2VudC5FdmVudHMgPSB7CiAgICAgRG9jdW1lbnRVcGRhdGVkOiAiRG9jdW1lbnRVcGRhdGVkIiwK
ICAgICBDaGlsZE5vZGVDb3VudFVwZGF0ZWQ6ICJDaGlsZE5vZGVDb3VudFVwZGF0ZWQiLAogICAg
IEluc3BlY3RFbGVtZW50UmVxdWVzdGVkOiAiSW5zcGVjdEVsZW1lbnRSZXF1ZXN0ZWQiLAotICAg
IFN0eWxlSW52YWxpZGF0ZWQ6ICJTdHlsZUludmFsaWRhdGVkIiwKICAgICBVbmRvUmVkb1JlcXVl
c3RlZDogIlVuZG9SZWRvUmVxdWVzdGVkIiwKICAgICBVbmRvUmVkb0NvbXBsZXRlZDogIlVuZG9S
ZWRvQ29tcGxldGVkIgogfQpAQCAtOTE2LDEyICs5MTUsOSBAQCBXZWJJbnNwZWN0b3IuRE9NQWdl
bnQucHJvdG90eXBlID0gewogICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX2lkVG9ET01Ob2RlW25v
ZGVJZF07CiAgICAgICAgIGlmICghbm9kZSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
dmFyIGlzc3VlU3R5bGVJbnZhbGlkYXRlZCA9IG5hbWUgPT09ICJzdHlsZSIgJiYgdmFsdWUgIT09
IG5vZGUuZ2V0QXR0cmlidXRlKCJzdHlsZSIpOwogCiAgICAgICAgIG5vZGUuX3NldEF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSk7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdl
Ykluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuQXR0ck1vZGlmaWVkLCB7IG5vZGU6IG5vZGUsIG5h
bWU6IG5hbWUgfSk7Ci0gICAgICAgIGlmIChpc3N1ZVN0eWxlSW52YWxpZGF0ZWQpCi0gICAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2
ZW50cy5TdHlsZUludmFsaWRhdGVkLCBub2RlKQogICAgIH0sCiAKICAgICAvKioKQEAgLTk2NSwx
MCArOTYxLDggQEAgV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHZhciBub2RlID0gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXTsK
ICAgICAgICAgICAgIGlmIChub2RlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG5vZGUuX3NldEF0
dHJpYnV0ZXNQYXlsb2FkKGF0dHJpYnV0ZXMpKSB7CisgICAgICAgICAgICAgICAgaWYgKG5vZGUu
X3NldEF0dHJpYnV0ZXNQYXlsb2FkKGF0dHJpYnV0ZXMpKQogICAgICAgICAgICAgICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRz
LkF0dHJNb2RpZmllZCwgeyBub2RlOiBub2RlLCBuYW1lOiAic3R5bGUiIH0pOwotICAgICAgICAg
ICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRE9N
QWdlbnQuRXZlbnRzLlN0eWxlSW52YWxpZGF0ZWQsIG5vZGUpOwotICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0xMDgwLDcgKzEwNzQsNyBAQCBXZWJJbnNw
ZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlID0gewogICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX2lk
VG9ET01Ob2RlW25vZGVJZF07CiAgICAgICAgIHBhcmVudC5fcmVtb3ZlQ2hpbGQobm9kZSk7CiAg
ICAgICAgIHRoaXMuX3VuYmluZChub2RlKTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5Ob2RlUmVtb3ZlZCwge25vZGU6
bm9kZSwgcGFyZW50OnBhcmVudH0pOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLk5vZGVSZW1vdmVkLCB7bm9kZTogbm9k
ZSwgcGFyZW50OiBwYXJlbnR9KTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMK
aW5kZXggODE4MzYzNjRkNDZmODljMTdiODAyYTYyOTFjOTkyOTgyMzRjNTc4My4uMDc4NDNjOTZi
YzJjZjdiNDhkZDk1NTdlMjZjMWI3YWEyMmZjZjg0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAt
ODEyLDEwICs4MTIsMTQgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogICAgICAgICBpZiAoIWxpc3RJdGVtRWxlbWVudCkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCA8PSAwKSB7Ci0gICAg
ICAgICAgICAvLyBUaGUgc3R5bGVzaGVldCBoYXNuJ3QgbG9hZGVkIHlldCBvciB0aGUgd2luZG93
IGlzIGNsb3NlZCwKLSAgICAgICAgICAgIC8vIHNvIHdlIGNhbid0IGNhbGN1bGF0ZSB3aGF0IGlz
IG5lZWQuIFJldHVybiBlYXJseS4KLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKCF0
aGlzLl9yZWFkeVRvVXBkYXRlU2VsZWN0aW9uKSB7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQu
Ym9keS5vZmZzZXRXaWR0aCA+IDApCisgICAgICAgICAgICAgICAgdGhpcy5fcmVhZHlUb1VwZGF0
ZVNlbGVjdGlvbiA9IHRydWU7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAv
LyBUaGUgc3R5bGVzaGVldCBoYXNuJ3QgbG9hZGVkIHlldCBvciB0aGUgd2luZG93IGlzIGNsb3Nl
ZCwKKyAgICAgICAgICAgICAgICAvLyBzbyB3ZSBjYW4ndCBjYWxjdWxhdGUgd2hhdCB3ZSBuZWVk
LiBSZXR1cm4gZWFybHkuCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGlvbkVsZW1lbnQpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBh
bmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQ
YW5lLmpzCmluZGV4IDA0Njc4YjA5NDc2ZWZmM2M0MDlmMDYzMzYxZDFhZTI1NzY0YTEwMTEuLjA1
Mzg1M2EzOGIwYzY3ZmM5YTc2N2VmYWE2MTA3NmIyNTVmMWNiZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwpA
QCAtOTcsOSArOTcsOCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUgPSBmdW5jdGlv
bihjb21wdXRlZFN0eWxlUGFuZSwgc2V0UHNldWRvQ2xhc3NDYWxsYgogCiAgICAgV2ViSW5zcGVj
dG9yLmNzc01vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwu
RXZlbnRzLlN0eWxlU2hlZXRDaGFuZ2VkLCB0aGlzLl9zdHlsZVNoZWV0T3JNZWRpYVF1ZXJ5UmVz
dWx0Q2hhbmdlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLk1lZGlhUXVlcnlSZXN1bHRD
aGFuZ2VkLCB0aGlzLl9zdHlsZVNoZWV0T3JNZWRpYVF1ZXJ5UmVzdWx0Q2hhbmdlZCwgdGhpcyk7
Ci0gICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkRPTUFnZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQsIHRoaXMuX2F0dHJpYnV0ZXNNb2RpZmllZCwg
dGhpcyk7Ci0gICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRPTUFnZW50LkV2ZW50cy5BdHRyUmVtb3ZlZCwgdGhpcy5fYXR0cmlidXRlc1JlbW92
ZWQsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuU3R5bGVJbnZhbGlkYXRlZCwgdGhpcy5fc3R5bGVJ
bnZhbGlkYXRlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQsIHRoaXMuX2F0
dHJpYnV0ZUNoYW5nZWQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuQXR0clJlbW92ZWQsIHRoaXMu
X2F0dHJpYnV0ZUNoYW5nZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93
VXNlckFnZW50U3R5bGVzLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMuX3Nob3dVc2VyQWdlbnRTdHls
ZXNTZXR0aW5nQ2hhbmdlZC5iaW5kKHRoaXMpKTsKIH0KIApAQCAtMzE0LDM3ICszMTMsMjIgQEAg
V2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5fcmVidWlsZFVwZGF0ZSgpOwogICAgIH0sCiAKLSAgICBfYXR0cmlidXRlc01vZGlmaWVkOiBm
dW5jdGlvbihldmVudCkKKyAgICBfYXR0cmlidXRlQ2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCiAg
ICAgewotICAgICAgICBpZiAodGhpcy5ub2RlICE9PSBldmVudC5kYXRhLm5vZGUpCisgICAgICAg
IC8vIEFueSBhdHRyaWJ1dGUgcmVtb3ZhbCBvciBtb2RpZmljYXRpb24gY2FuIGFmZmVjdCB0aGUg
c3R5bGVzIG9mICJyZWxhdGVkIiBub2Rlcy4KKyAgICAgICAgLy8gRG8gbm90IHRvdWNoIHRoZSBz
dHlsZXMgaWYgdGhleSBhcmUgYmVpbmcgZWRpdGVkLgorICAgICAgICBpZiAodGhpcy5faXNFZGl0
aW5nU3R5bGUgfHwgdGhpcy5fdXNlck9wZXJhdGlvbikKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICAvLyBDaGFuZ2luZyBzdHlsZSBhdHRyaWJ1dGUgd2lsbCBhbnl3YXlzIGdlbmVyYXRl
IF9zdHlsZUludmFsaWRhdGVkIG1lc3NhZ2UuCi0gICAgICAgIGlmIChldmVudC5kYXRhLm5hbWUg
PT09ICJzdHlsZSIpCisgICAgICAgIGlmICghdGhpcy5fY2FuQWZmZWN0Q3VycmVudFN0eWxlcyhl
dmVudC5kYXRhLm5vZGUpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIC8vICJjbGFz
cyIgKG9yIGFueSBvdGhlcikgYXR0cmlidXRlIG1pZ2h0IGhhdmUgY2hhbmdlZC4gVXBkYXRlIHN0
eWxlcyB1bmxlc3MgdGhleSBhcmUgYmVpbmcgZWRpdGVkLgotICAgICAgICBpZiAoIXRoaXMuX2lz
RWRpdGluZ1N0eWxlICYmICF0aGlzLl91c2VyT3BlcmF0aW9uKQotICAgICAgICAgICAgdGhpcy5f
cmVidWlsZFVwZGF0ZSgpOwotICAgIH0sCi0KLSAgICBfYXR0cmlidXRlc1JlbW92ZWQ6IGZ1bmN0
aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMubm9kZSAhPT0gZXZlbnQuZGF0YS5u
b2RlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vICJzdHlsZSIgYXR0cmlidXRl
IG1pZ2h0IGhhdmUgYmVlbiByZW1vdmVkLgotICAgICAgICBpZiAoIXRoaXMuX2lzRWRpdGluZ1N0
eWxlICYmICF0aGlzLl91c2VyT3BlcmF0aW9uKQotICAgICAgICAgICAgdGhpcy5fcmVidWlsZFVw
ZGF0ZSgpOworICAgICAgICB0aGlzLl9yZWJ1aWxkVXBkYXRlKCk7CiAgICAgfSwKIAotICAgIF9z
dHlsZUludmFsaWRhdGVkOiBmdW5jdGlvbihldmVudCkKKyAgICBfY2FuQWZmZWN0Q3VycmVudFN0
eWxlczogZnVuY3Rpb24obm9kZSkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLm5vZGUgIT09IGV2
ZW50LmRhdGEpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKCF0aGlzLl9pc0Vk
aXRpbmdTdHlsZSAmJiAhdGhpcy5fdXNlck9wZXJhdGlvbikKLSAgICAgICAgICAgIHRoaXMuX3Jl
YnVpbGRVcGRhdGUoKTsKKyAgICAgICAgcmV0dXJuIHRoaXMubm9kZSAmJiAodGhpcy5ub2RlID09
PSBub2RlIHx8IG5vZGUucGFyZW50Tm9kZSA9PT0gdGhpcy5ub2RlLnBhcmVudE5vZGUgfHwgbm9k
ZS5pc0FuY2VzdG9yKHRoaXMubm9kZSkpOwogICAgIH0sCiAKICAgICBfaW5uZXJSZWZyZXNoVXBk
YXRlOiBmdW5jdGlvbihub2RlLCBjb21wdXRlZFN0eWxlLCBlZGl0ZWRTZWN0aW9uKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGEzMmI0NmRlOWM2YTE0ZjA5YTliYjEyZDk1NzAxOWIxNzIyYjRiYTIuLmZhZjcxZDNmNmRkMTEz
ZGFmMzBlZmY2MTEzY2VkNjUwZDA4MmE5Y2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0w
OS0xMiAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFtFbGVtZW50c10gU2lkZWJhciBwYW5lcyBub3QgdXBkYXRlZCBvbiBz
dHlsZSBjaGFuZ2VzIGR1ZSB0byAiY2xhc3MiIGF0dHJpYnV0ZSBtb2RpZmljYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTcyMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Vs
ZW1lbnRzL2VkaXQtc3R5bGUtYXR0cmlidXRlLmh0bWw6IFJlbmFtZWQgZXZlbnRzIG9uIHdoaWNo
IHRvIGxpc3Rlbi4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVlbi1z
aXplLmh0bWw6IERyaXZlLWJ5OiBmaXhlZCByYWNlIGNvbmRpdGlvbiB0aGF0IHdhcyByZXN1bHRp
bmcgaW4gdGhpcyB0ZXN0J3MgZmFpbHVyZXMuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtdXBkYXRlLWZyb20tanMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9z
dHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWw6IEFkZGVkIHRlc3QgY2FzZXMgZm9yIHN0
eWxlIHVwZGF0ZXMgb24gYW5jZXN0b3IgYW5kIHNpYmxpbmcgYXR0cmlidXRlcycgY2hhbmdlcy4K
KwogMjAxMi0wOS0xMSAgVGFpanUgVHN1aWtpICA8dHppa0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgV2ViRnJhbWVJbXBsOjpjbGllbnQoKSBuZWVkcyBOVUxMIGNoZWNrIGluIFdlYldvcmtlckNs
aWVudEltcGw6Om9wZW5GaWxlU3lzdGVtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvZWRpdC1zdHlsZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtc3R5bGUtYXR0cmlidXRlLWV4cGVjdGVkLnR4dApp
bmRleCA2ZjdiY2U3ZTI3ODVhMzljZjY2MDQ4ODdkNDA4YzlmMzVlMWE1MTkwLi5hNjUyMzg0YzI3
NTU3ZTc4OTRkMzQ0ZDI1M2Y1ZGQwODVhZTVmMDc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvZWRpdC1zdHlsZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lZGl0LXN0eWxlLWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIFRlc3RzIHRoYXQgc3R5bGUgbW9kaWZpY2F0aW9uIGdl
bmVyYXRlcyBhdHRyaWJ1dGUgdXBkYXRlZCBldmVudCBvbmx5IHdoZW4gYXR0cmliCiBSdW5uaW5n
OiB0ZXN0U2V0VXAKIAogUnVubmluZzogdGVzdFNldE5ld1ZhbHVlCi1XZWJJbnNwZWN0b3IuRE9N
QWdlbnQuRXZlbnRzLlN0eWxlSW52YWxpZGF0ZWQgc2hvdWxkIGJlIGlzc3VlZAorV2ViSW5zcGVj
dG9yLkRPTUFnZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQgc2hvdWxkIGJlIGlzc3VlZAogCiBSdW5u
aW5nOiB0ZXN0U2V0U2FtZVZhbHVlCiBXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUuX3Nl
dEF0dHJpYnV0ZXNQYXlsb2FkIHNob3VsZCBiZSBjYWxsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy9lZGl0LXN0eWxlLWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtc3R5bGUtYXR0cmlidXRlLmh0bWwKaW5kZXgg
ZjRkODZhNGJlNWExNjQ2ZDYwMjNlNWE3YmEwNzk2OWIzYTdjM2Q1Mi4uNjdmN2NhMzQ3YzY1MzA4
ZTYwOWRkN2ZlMTgyZTgzYWU5NTFkNWIxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzL2VkaXQtc3R5bGUtYXR0cmlidXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtc3R5bGUtYXR0cmlidXRlLmh0bWwKQEAgLTMxLDExICsz
MSwxMSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZSgidGVzdFNldE5ld1ZhbHVlKCkiKTsKIAotICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFn
ZW50LkV2ZW50cy5TdHlsZUludmFsaWRhdGVkLCBsaXN0ZW5lcik7CisgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQu
RXZlbnRzLkF0dHJNb2RpZmllZCwgbGlzdGVuZXIpOwogICAgICAgICAgICAgZnVuY3Rpb24gbGlz
dGVuZXIoZXZlbnQpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIldlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuU3R5bGVJbnZhbGlkYXRl
ZCBzaG91bGQgYmUgaXNzdWVkIik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFn
ZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5TdHls
ZUludmFsaWRhdGVkLCBsaXN0ZW5lcik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIldlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuQXR0ck1vZGlmaWVkIHNob3Vs
ZCBiZSBpc3N1ZWQiKTsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQucmVt
b3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLkF0dHJNb2RpZmll
ZCwgbGlzdGVuZXIpOwogICAgICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfSwKQEAgLTQ0LDE4ICs0NCwxOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgewog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgidGVzdFNldFNhbWVWYWx1
ZSgpIik7CiAKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuU3R5bGVJbnZhbGlkYXRlZCwgbGlzdGVu
ZXIpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQsIGxpc3RlbmVyKTsKICAg
ICAgICAgICAgIGZ1bmN0aW9uIGxpc3RlbmVyKGV2ZW50KQogICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJXZWJJbnNwZWN0b3IuRE9NQWdlbnQu
RXZlbnRzLlN0eWxlSW52YWxpZGF0ZWQgc2hvdWxkIG5vdCBiZSBpc3N1ZWQiKTsKLSAgICAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRE9NQWdlbnQuRXZlbnRzLlN0eWxlSW52YWxpZGF0ZWQsIGxpc3RlbmVyKTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiV2ViSW5zcGVjdG9yLkRPTUFnZW50
LkV2ZW50cy5BdHRyTW9kaWZpZWQgc2hvdWxkIG5vdCBiZSBpc3N1ZWQiKTsKKyAgICAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuRE9NQWdlbnQuRXZlbnRzLkF0dHJNb2RpZmllZCwgbGlzdGVuZXIpOwogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkRP
TU5vZGUucHJvdG90eXBlLCAiX3NldEF0dHJpYnV0ZXNQYXlsb2FkIiwgY2FsbGJhY2spOwogICAg
ICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQogICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5
cGUuX3NldEF0dHJpYnV0ZXNQYXlsb2FkIHNob3VsZCBiZSBjYWxsZWQiKTsKLSAgICAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuRE9NQWdlbnQuRXZlbnRzLlN0eWxlSW52YWxpZGF0ZWQsIGxpc3RlbmVyKTsKKyAgICAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRE9NQWdlbnQuRXZlbnRzLkF0dHJNb2RpZmllZCwgbGlzdGVuZXIpOwogICAgICAgICAg
ICAgICAgIG5leHQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sCmluZGV4
IGZhZDI2ZDdkNjdjY2MzMTc1OTFhYmNhZTI5OGFjNzlkMjU0YTNjNTUuLjhkNDY2OTkyYmE2ZWQ2
Zjc0ZTk0ZGEyZTY1MzVmZTgxZWY5ZTI3OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNpemUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVlbi1zaXplLmh0bWwKQEAgLTE1OCwxOSArMTU4
LDM2IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gb3ZlcnJpZGVBbmREdW1wRGF0
YSh3aWR0aCwgaGVpZ2h0LCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIHNlbGVj
dENhbGxiYWNrKCkKKyAgICAgICAgZnVuY3Rpb24gZmluYWxDYWxsYmFjaygpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJNYWluIHN0eWxlOiIpOwogICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUsIGZh
bHNlLCB0cnVlKTsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIH0KIAorICAgICAg
ICB2YXIgZ290U2l6ZXM7CisgICAgICAgIHZhciBnb3RTdHlsZXM7CisgICAgICAgIGZ1bmN0aW9u
IHN0eWxlc0NhbGxiYWNrKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGdvdFNpemVzKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmaW5hbENhbGxiYWNrKCk7CisgICAgICAgICAgICBnb3RT
dHlsZXMgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2l6ZXNDYWxsYmFj
aygpCisgICAgICAgIHsKKyAgICAgICAgICAgIGdvdFNpemVzID0gdHJ1ZTsKKyAgICAgICAgICAg
IGlmIChnb3RTdHlsZXMpCisgICAgICAgICAgICAgICAgZmluYWxDYWxsYmFjaygpOworICAgICAg
ICB9CisKICAgICAgICAgZnVuY3Rpb24gYXBwbHlDYWxsYmFjaygpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGdldEFuZER1bXBTaXplcyhzZWxlY3RDYWxsYmFjayk7CisgICAgICAgICAgICBnZXRB
bmREdW1wU2l6ZXMoc2l6ZXNDYWxsYmFjayk7CiAgICAgICAgIH0KIAogICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiT3ZlcnJpZGU6ICIgKyB3aWR0aCArICJ4IiArIGhlaWdodCk7Cisg
ICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvclN0eWxlcygibWFpbiIsIHN0eWxlc0NhbGxiYWNr
KTsKICAgICAgICAgYXBwbHlPdmVycmlkZSh3aWR0aCwgaGVpZ2h0LCBhcHBseUNhbGxiYWNrKTsK
ICAgICB9CiAKQEAgLTE4Miw3ICsxOTksOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTY3JlZW4gZnJvbSBwYWdlOiAiICsgcmVzdWx0LnNj
cmVlbik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiV2luZG93IGZyb20g
cGFnZTogIiArIHJlc3VsdC5pbm5lcik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiQm9keSBmcm9tIHBhZ2U6ICIgKyByZXN1bHQuYm9keSk7Ci0gICAgICAgICAgICBjYWxs
YmFjaygpOworICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNhbGxi
YWNrKCk7CiAgICAgICAgIH0KIAogICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KCJnZXRTaXplcygpIiwgZ2V0U2l6ZXNDYWxsYmFjayk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy1leHBlY3Rl
ZC50eHQKaW5kZXggMWMxZDY2N2IzYTMzNmFiOTJlZTJkNTZkYjU2NjAyMzk5MmY5MTM4Ni4uMTY4
NmEyMjViMjMwYmQ4MzBjOWE0ZWU5OWY4MTYzZGRiYWZhNTY0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20tanMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpz
LWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSwxMCBAQAotVGVzdHMgdGhhdCBjaGFuZ2VzIHRvIGFu
IGlubGluZSBzdHlsZSBmcm9tIEphdmFTY3JpcHQgYXJlIHJlZmxlY3RlZCBpbiB0aGUgU3R5bGVz
IHBhbmUgYW5kIEVsZW1lbnRzIHRyZWUuCitUZXN0cyB0aGF0IGNoYW5nZXMgdG8gYW4gaW5saW5l
IHN0eWxlIGFuZCBhbmNlc3Rvci9zaWJsaW5nIGNsYXNzTmFtZSBmcm9tIEphdmFTY3JpcHQgYXJl
IHJlZmxlY3RlZCBpbiB0aGUgU3R5bGVzIHBhbmUgYW5kIEVsZW1lbnRzIHRyZWUuCiAKIAogUnVu
bmluZzogdGVzdEluaXQKIAogUnVubmluZzogdGVzdFNldFN0eWxlQXR0cmlidXRlCi08ZGl2IGlk
PSJjb250YWluZXIiIHN0eWxlPSJjb2xvcjogI2RhQzBERTsgYm9yZGVyOiAxcHggc29saWQgYmxh
Y2s7Ij48L2Rpdj4KKzxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImNvbG9yOiAjZGFDMERFOyBi
b3JkZXI6IDFweCBzb2xpZCBibGFjazsiPuKApjwvZGl2PgogW2V4cGFuZGVkXSAKIGVsZW1lbnQu
c3R5bGUgIHsgKCkKIGNvbG9yOiAjREFDMERFOwpAQCAtMjIsMTggKzIyLDI4IEBAIGJvcmRlcjog
MXB4IHNvbGlkIGJsYWNrOwogICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsKICAgICBib3Jk
ZXItbGVmdC13aWR0aDogMXB4OwogCis9PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09
PQorW2V4cGFuZGVkXSAKK2RpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQorZGlzcGxheTog
YmxvY2s7CisKIAogCiBSdW5uaW5nOiB0ZXN0U2V0U3R5bGVDU1NUZXh0Ci08ZGl2IGlkPSJjb250
YWluZXIiIHN0eWxlPSJjb2xvcjogcmdiKDE5MiwgMjU1LCAyMzgpOyI+PC9kaXY+Cis8ZGl2IGlk
PSJjb250YWluZXIiIHN0eWxlPSJjb2xvcjogcmdiKDE5MiwgMjU1LCAyMzgpOyI+4oCmPC9kaXY+
CiBbZXhwYW5kZWRdIAogZWxlbWVudC5zdHlsZSAgeyAoKQogY29sb3I6ICNDMEZGRUU7CiAKKz09
PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09CitbZXhwYW5kZWRdIAorZGl2ICB7ICh1
c2VyIGFnZW50IHN0eWxlc2hlZXQpCitkaXNwbGF5OiBibG9jazsKKwogCiAKIFJ1bm5pbmc6IHRl
c3RTZXRWaWFQYXJzZWRBdHRyaWJ1dGVzCi08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJjb2xv
cjogcmdiKDE5MiwgMjU1LCAyMzgpOyBib3JkZXI6IDNweCBkYXNoZWQgZ3JlZW47Ij48L2Rpdj4K
KzxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImNvbG9yOiByZ2IoMTkyLCAyNTUsIDIzOCk7IGJv
cmRlcjogM3B4IGRhc2hlZCBncmVlbjsiPuKApjwvZGl2PgogW2V4cGFuZGVkXSAKIGVsZW1lbnQu
c3R5bGUgIHsgKCkKIGNvbG9yOiAjQzBGRkVFOwpAQCAtNTEsNSArNjEsNTIgQEAgYm9yZGVyOiAz
cHggZGFzaGVkIGdyZWVuOwogICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBkYXNoZWQ7CiAgICAgYm9y
ZGVyLWxlZnQtd2lkdGg6IDNweDsKIAorPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09
PT0KK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKK2Rpc3BsYXk6
IGJsb2NrOworCisKKworUnVubmluZzogdGVzdFNldFZpYUFuY2VzdG9yQ2xhc3MKKzxkaXYgaWQ9
ImNoaWxkIj48L2Rpdj4KK1tleHBhbmRlZF0gCitlbGVtZW50LnN0eWxlICB7ICgpCisKKz09PT09
PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09CitbZXhwYW5kZWRdIAorLnJlZCBkaXY6Zmly
c3QtY2hpbGQgIHsgKHN0eWxlcy11cGRhdGUtZnJvbS1qcy5odG1sOjQpCitiYWNrZ3JvdW5kLWNv
bG9yOiByZWQ7CisKK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkK
K2Rpc3BsYXk6IGJsb2NrOworCis9PT09PT09PSBJbmhlcml0ZWQgZnJvbSBkaXYjY29udGFpbmVy
LnJlZCA9PT09PT09PQorW2V4cGFuZGVkXSAKK1N0eWxlIEF0dHJpYnV0ZSAgeyAoKQorY29sb3I6
ICNDMEZGRUU7CisKKworCitSdW5uaW5nOiB0ZXN0U2V0VmlhU2libGluZ0NsYXNzCis8ZGl2IGlk
PSJjaGlsZFNpYmxpbmciPjwvZGl2PgorW2V4cGFuZGVkXSAKK2VsZW1lbnQuc3R5bGUgIHsgKCkK
KworPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KK1tleHBhbmRlZF0gCisuYmx1
ZSArIGRpdiAgeyAoc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWw6OCkKK2JhY2tncm91bmQtY29s
b3I6IGJsdWU7CisKK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkK
K2Rpc3BsYXk6IGJsb2NrOworCis9PT09PT09PSBJbmhlcml0ZWQgZnJvbSBkaXYjY29udGFpbmVy
LnJlZCA9PT09PT09PQorW2V4cGFuZGVkXSAKK1N0eWxlIEF0dHJpYnV0ZSAgeyAoKQorY29sb3I6
ICNDMEZGRUU7CisKIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3N0eWxlcy11cGRhdGUtZnJvbS1qcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtdXBkYXRlLWZyb20tanMuaHRtbAppbmRleCA4MmE1NGJjZWU5MWQyNTFlZmRmMDc1
YWM5YjZkMDdmMDkyNDNhMmZiLi4yMTc3ODJmMDcxNzhlMzVlNDgyYzZjZmU5OGRjODY3NTVmNWQ0
YmNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRh
dGUtZnJvbS1qcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVz
LXVwZGF0ZS1mcm9tLWpzLmh0bWwKQEAgLTEsNSArMSwxNSBAQAogPGh0bWw+CiA8aGVhZD4KKzxz
dHlsZT4KKy5yZWQgZGl2OmZpcnN0LWNoaWxkIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
Cit9CisKKy5ibHVlICsgZGl2IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQorCis8
L3N0eWxlPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CkBAIC0yMCw2ICszMCwx
NiBAQCBmdW5jdGlvbiBtb2RpZnlQYXJzZWRBdHRyaWJ1dGVzKCkKICAgICBzdHlsZS5ib3JkZXJX
aWR0aCA9ICIzcHgiOwogfQogCitmdW5jdGlvbiBtb2RpZnlDb250YWluZXJDbGFzcygpCit7Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLmNsYXNzTmFtZSA9ICJyZWQi
OworfQorCitmdW5jdGlvbiBtb2RpZnlDaGlsZENsYXNzKCkKK3sKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY2hpbGQiKS5jbGFzc05hbWUgPSAiYmx1ZSI7Cit9CisKIGZ1bmN0aW9uIHRl
c3QoKQogewogICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKQEAgLTQ0LDM2ICs2NCw1
OSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAgd2FpdEFuZER1bXBB
dHRyaWJ1dGVBbmRTdHlsZXMobmV4dCk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKCJtb2RpZnlQYXJzZWRBdHRyaWJ1dGVzKCkiKTsKKyAgICAgICAgfSwKKworICAg
ICAgICBmdW5jdGlvbiB0ZXN0U2V0VmlhQW5jZXN0b3JDbGFzcyhuZXh0KQorICAgICAgICB7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJjaGls
ZCIsIGNhbGxiYWNrKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHdhaXRBbmREdW1wQXR0cmlidXRlQW5kU3R5bGVzKG5l
eHQsICJjaGlsZCIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoIm1vZGlmeUNvbnRhaW5lckNsYXNzKCkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwK
KworICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0VmlhU2libGluZ0NsYXNzKG5leHQpCisgICAgICAg
IHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMo
ImNoaWxkU2libGluZyIsIGNhbGxiYWNrKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJh
Y2soKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHdhaXRBbmREdW1wQXR0cmlidXRl
QW5kU3R5bGVzKG5leHQsICJjaGlsZFNpYmxpbmciKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJtb2RpZnlDaGlsZENsYXNzKCkiKTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIF0pOwogCi0gICAgZnVuY3Rpb24gd2FpdEFuZER1bXBBdHRyaWJ1
dGVBbmRTdHlsZXMobmV4dCkKKyAgICBmdW5jdGlvbiB3YWl0QW5kRHVtcEF0dHJpYnV0ZUFuZFN0
eWxlcyhuZXh0LCBpZCkKICAgICB7CisgICAgICAgIGlkID0gaWQgfHwgImNvbnRhaW5lciI7CiAg
ICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKICAgICAgICAgewotICAgICAgICAgICAgZHVtcEF0
dHJpYnV0ZUFuZFN0eWxlcygpOworICAgICAgICAgICAgZHVtcEF0dHJpYnV0ZUFuZFN0eWxlcyhp
ZCk7CiAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yVGVz
dC53YWl0Rm9yU3R5bGVzKCJjb250YWluZXIiLCBjYWxsYmFjayk7CisgICAgICAgIEluc3BlY3Rv
clRlc3Qud2FpdEZvclN0eWxlcyhpZCwgY2FsbGJhY2spOwogICAgIH0KIAotICAgIGZ1bmN0aW9u
IGR1bXBBdHRyaWJ1dGVBbmRTdHlsZXMoKQorICAgIGZ1bmN0aW9uIGR1bXBBdHRyaWJ1dGVBbmRT
dHlsZXMoaWQpCiAgICAgewotICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSBmaW5kTm9kZVRyZWVF
bGVtZW50KCkKKyAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gZmluZE5vZGVUcmVlRWxlbWVudChp
ZCk7CiAgICAgICAgIGlmICghdHJlZUVsZW1lbnQpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCInY29udGFpbmVyJyB0cmVlIGVsZW1lbnQgbm90IGZvdW5kIik7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiJyIgKyBpZCArICInIHRyZWUgZWxlbWVu
dCBub3QgZm91bmQiKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0cmVlRWxlbWVudC5saXN0SXRlbUVsZW1lbnQudGV4dENv
bnRlbnQucmVwbGFjZSgvXHUyMDBiL2csICIiKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlLCB0cnVlKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwogICAgIH0KIAotICAgIGZ1bmN0aW9u
IGZpbmROb2RlVHJlZUVsZW1lbnQoKQorICAgIGZ1bmN0aW9uIGZpbmROb2RlVHJlZUVsZW1lbnQo
aWQpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRs
aW5lLl91cGRhdGVNb2RpZmllZE5vZGVzKCk7Ci0gICAgICAgIHZhciBleHBhbmRlZE5vZGUgPSBJ
bnNwZWN0b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJZCgiY29udGFpbmVyIik7CisgICAgICAgIHZh
ciBleHBhbmRlZE5vZGUgPSBJbnNwZWN0b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJZChpZCk7CiAg
ICAgICAgIGlmICghZXhwYW5kZWROb2RlKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiJ2NvbnRhaW5lcicgbm9kZSBub3QgZm91bmQiKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCInIiArIGlkICsgIicgbm9kZSBub3QgZm91bmQiKTsKICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxpbmUuZmluZFRyZWVF
bGVtZW50KGV4cGFuZGVkTm9kZSk7CkBAIC04NCwxMCArMTI3LDEwIEBAIGZ1bmN0aW9uIHRlc3Qo
KQogCiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CiA8cD4KLVRlc3RzIHRoYXQgY2hhbmdlcyB0
byBhbiBpbmxpbmUgc3R5bGUgZnJvbSBKYXZhU2NyaXB0IGFyZSByZWZsZWN0ZWQgaW4gdGhlIFN0
eWxlcyBwYW5lIGFuZCBFbGVtZW50cyB0cmVlLgorVGVzdHMgdGhhdCBjaGFuZ2VzIHRvIGFuIGlu
bGluZSBzdHlsZSBhbmQgYW5jZXN0b3Ivc2libGluZyBjbGFzc05hbWUgZnJvbSBKYXZhU2NyaXB0
IGFyZSByZWZsZWN0ZWQgaW4gdGhlIFN0eWxlcyBwYW5lIGFuZCBFbGVtZW50cyB0cmVlLgogPC9w
PgogCi08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj48L2Rpdj4K
KzxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPjxkaXYgaWQ9ImNo
aWxkIj48L2Rpdj48ZGl2IGlkPSJjaGlsZFNpYmxpbmciPjwvZGl2PjwvZGl2PgogCiA8L2JvZHk+
CiA8L2h0bWw+Cg==
</data>
<flag name="review"
          id="175071"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
      

    </bug>

</bugzilla>