<?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>79228</bug_id>
          
          <creation_ts>2012-02-22 05:29:19 -0800</creation_ts>
          <short_desc>Add performance tests for the getters/setters of HTMLElement attributes</short_desc>
          <delta_ts>2012-02-23 01:19:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>79208</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>561881</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-22 05:29:19 -0800</bug_when>
    <thetext>We can add micro-benchmark performance tests for the getters/setters of HTMLElement attributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561891</commentid>
    <comment_count>1</comment_count>
      <attachid>128186</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-22 05:44:32 -0800</bug_when>
    <thetext>Created attachment 128186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561912</commentid>
    <comment_count>2</comment_count>
      <attachid>128194</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-22 06:10:40 -0800</bug_when>
    <thetext>Created attachment 128194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561915</commentid>
    <comment_count>3</comment_count>
      <attachid>128196</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-22 06:13:10 -0800</bug_when>
    <thetext>Created attachment 128196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561935</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-22 06:41:40 -0800</bug_when>
    <thetext>Same comment as the bug 79231. I don&apos;t think we want to add hundreds of these tests. We need to make sure performance tests we&apos;re adding are useful on their own.

e.g. a test that takes 100ms to run would end up consuming at least 2s in total since we get 20 samples by default. If we&apos;re adding 30 of those, then we&apos;ll be increasing the bot cycle time by a minute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561936</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-22 06:42:40 -0800</bug_when>
    <thetext>Also note that Chromium Mac Perf bots are Mac minis and will be significantly slower than your Linux machines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561971</commentid>
    <comment_count>6</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-22 07:26:31 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Same comment as the bug 79231. I don&apos;t think we want to add hundreds of these tests. We need to make sure performance tests we&apos;re adding are useful on their own.

OK, let me reduce the number of tests.

&gt; e.g. a test that takes 100ms to run would end up consuming at least 2s in total since we get 20 samples by default. If we&apos;re adding 30 of those, then we&apos;ll be increasing the bot cycle time by a minute.

Also I want to reduce the time of each test, keeping the test results &quot;reliable&quot;. Do you have any rough condition between median and stddev which would guarantee the &quot;reliability&quot;?


The objectives of these tests are as follows:
- catch the performance regression in WebCore implementation
- catch the performance regression in DOM bindings
- compare the performance between JSC bindings and V8 bindings (My primary focus is here. Currently V8 bindings are slower than JSC bindings, and I want to improve it.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561986</commentid>
    <comment_count>7</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-22 07:50:30 -0800</bug_when>
    <thetext>By the way, what is a good way to describe multiple tests in one html file? It seems wasteful to load one html just for a ~100ms test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562036</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-22 09:20:05 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; The objectives of these tests are as follows:
&gt; - catch the performance regression in WebCore implementation
&gt; - catch the performance regression in DOM bindings
&gt; - compare the performance between JSC bindings and V8 bindings (My primary focus is here. Currently V8 bindings are slower than JSC bindings, and I want to improve it.)

Do we really need to add new tests for these? I suspect DOM and Dromaeo tests would catch these regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562505</commentid>
    <comment_count>9</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-22 16:08:13 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Do we really need to add new tests for these? I suspect DOM and Dromaeo tests would catch these regressions.

rniwa: Dromaeo lacks coverage and simplicity. In case of Dromaeo&apos;s dom-attr.html, it just tests HTMLElement.id. In case of Dromaeo&apos;s dom-traverse.html, it just tests a small part of Node attributes. In addition, Dromaeo&apos;s dom-traverse.html traverses a large HTML, which can be affected by a cache performance (at the JavaScript level or the CPU level) and thus makes it difficult to capture a _pure_ performance of DOM bindings and WebCore implementation.

In fact, performance issues seem to have been happening in various DOM attributes (https://docs.google.com/a/google.com/spreadsheet/ccc?key=0ArGPzKNdEGeQdEttZTAxWXJwMVdWeGxjbDgxMExYSEE#gid=0).

Thus I would like to add a micro-benchmark that _directly_ captures the _pure_ performance of each DOM attribute getter/setter. That being said, I do agree that we do not need to add micro-benchmarks for all DOM attributes. We can select DOM attributes which would practically important (i.e. attributes in HTMLElement, Element and Node) and would have a different call-path from another DOM attribute (i.e. if we have a test for div.scrollTop, we do not need a test for div.scrollLeft).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128186</attachid>
            <date>2012-02-22 05:44:32 -0800</date>
            <delta_ts>2012-02-22 06:10:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79228-20120222224431.patch</filename>
            <type>text/plain</type>
            <size>25983</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NDg1CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfYWNjZXNzS2V5X2dldHRlci5odG1sIGIvUGVyZm9ybWFu
Y2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2FjY2Vzc0tleV9nZXR0ZXIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wYThlMWEzYTQ0ZDljMGRjMGMwMGViMGJiNzQ3NDZlM2QxY2JiYjhmCi0tLSAvZGV2
L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2FjY2Vz
c0tleV9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBl
YXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5hY2Nlc3NLZXk7CisgICAgfQor
fSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1h
bmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9hY2Nlc3NLZXlfc2V0dGVyLmh0bWwgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfYWNjZXNzS2V5X3NldHRlci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY5MTM3ZGZjNDY5NTlhODE1NGY1MDJiMGQ4MWQ0MTAzNjg0Y2JlY2YK
LS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1
dGVfYWNjZXNzS2V5X3NldHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHJlcGVhdFRpbWVzRm9yU2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LmFjY2Vzc0tleSA9
ICJmb28iOworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY2hpbGRyZW5f
Z2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY2hp
bGRyZW5fZ2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNlODU0ZjcxMDQ3OWJiMDU0MjE5NDdhMDQw
NzlhNzUwNmM5YTQ0NwotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGlu
Z3MvZG9tX2F0dHJpYnV0ZV9jaGlsZHJlbl9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21t
b24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigp
IHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRp
di5jaGlsZHJlbjsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2NsYXNz
TGlzdF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9jbGFzc0xpc3RfZ2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmIzNzU0NDFhMDM0N2U5MzhhNzQ5
NmMzY2NlYWZlNWEwMDU4NzllNQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMv
QmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9jbGFzc0xpc3RfZ2V0dGVyLmh0bWwKQEAgLTAsMCArMSwx
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
cnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0
ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVu
Y3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JHZXR0ZXI7IGkrKykgeworICAg
ICAgICBkaXYuY2xhc3NMaXN0OworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1
dGVfY2xhc3NOYW1lX2dldHRlci5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21f
YXR0cmlidXRlX2NsYXNzTmFtZV9nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzVlMjhlYmM3ZjZi
M2EzZjZjZWMyNDQ2NDlhMDQyNjJiNTNiOWFhCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFu
Y2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2NsYXNzTmFtZV9nZXR0ZXIuaHRtbApAQCAt
MCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21f
YXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVy
LnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsr
KSB7CisgICAgICAgIGRpdi5jbGFzc05hbWU7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9t
X2F0dHJpYnV0ZV9jbGFzc05hbWVfc2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRp
bmdzL2RvbV9hdHRyaWJ1dGVfY2xhc3NOYW1lX3NldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyM2Rm
ZGIxOGJhZGJlZDI4MmZjMDgwN2MwNzU2ZGViMWFhZDc1NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY2xhc3NOYW1lX3NldHRlci5o
dG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRl
c3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yU2V0
dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJmb28iOworICAgIH0KK30sIDEp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRl
c3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY29udGVudEVkaXRhYmxlX2dldHRlci5odG1sIGIv
UGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2NvbnRlbnRFZGl0YWJsZV9n
ZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzU5N2Y3NGIwZDU4NDBlYWIyNjBkMzBmYzIzYzExNTFh
YzdkNzMyCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21f
YXR0cmlidXRlX2NvbnRlbnRFZGl0YWJsZV9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21t
b24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigp
IHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRp
di5jb250ZW50RWRpdGFibGU7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9kaXJfZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1
dGVfZGlyX2dldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzYTUxZjMyYmVjOTllODc4YmUyZTZmZTdl
ZWFmYjcyMGZmZGFlNGEKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRp
bmdzL2RvbV9hdHRyaWJ1dGVfZGlyX2dldHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgewor
ICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LmRp
cjsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2Rpcl9zZXR0ZXIuaHRt
bCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9kaXJfc2V0dGVyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGMwM2NiMzA3OGY0ODA0NTczMTRlNmJjNTBjZGY5MzE4MTRhMTUzYQot
LS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9kaXJfc2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVw
ZWF0VGltZXNGb3JTZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYuZGlyID0gImZvbyI7CisgICAg
fQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9kcmFnZ2FibGVfZ2V0dGVyLmh0bWwg
Yi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfZHJhZ2dhYmxlX2dldHRl
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhkMDhmYjI5ZTQ3MWQyNDZiMzUwOTUyZDcxYzk1ZjliMWUwODg4
Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRy
aWJ1dGVfZHJhZ2dhYmxlX2dldHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LmRyYWdnYWJs
ZTsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2RyYWdnYWJsZV9zZXR0
ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9kcmFnZ2Fi
bGVfc2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZkOTgxOWQxMWYwZDUzY2NiZWFjYTVlNzNiNzJk
MDRjOTZjZjRiMwotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3Mv
ZG9tX2F0dHJpYnV0ZV9kcmFnZ2FibGVfc2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9u
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7
CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JTZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYu
ZHJhZ2dhYmxlID0gImZvbyI7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9oaWRkZW5fZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRy
aWJ1dGVfaGlkZGVuX2dldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkZDVhMDY5NjU0NmIxNThhYTMz
N2RkNmM0MDY2MWE0ZmE5ODAxYWQKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfaGlkZGVuX2dldHRlci5odG1sCkBAIC0wLDAgKzEsMTQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1
bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVz
X2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0
aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBpKyspIHsKKyAgICAg
ICAgZGl2LmhpZGRlbjsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2hp
ZGRlbl9zZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9oaWRkZW5fc2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY2YjUzMmFjMzMyZTNiYmU0YTAyMmJl
YWQxMWMzNzBhNWRjNDExMgotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmlu
ZGluZ3MvZG9tX2F0dHJpYnV0ZV9oaWRkZW5fc2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29t
bW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24o
KSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JTZXR0ZXI7IGkrKykgeworICAgICAgICBk
aXYuaGlkZGVuID0gImZvbyI7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9pbm5lckhUTUxfZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9h
dHRyaWJ1dGVfaW5uZXJIVE1MX2dldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkNmQyOTlhMTIxZjY2
MzEzZTUzNzk1Y2RhZmY4MTI5M2VhY2YwZWMKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5j
ZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfaW5uZXJIVE1MX2dldHRlci5odG1sCkBAIC0w
LDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9h
dHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIu
cnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBpKysp
IHsKKyAgICAgICAgZGl2LmlubmVySFRNTDsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21f
YXR0cmlidXRlX2lubmVySFRNTF9zZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGlu
Z3MvZG9tX2F0dHJpYnV0ZV9pbm5lckhUTUxfc2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjllMTA2
MmZkMzdhNTQ3ZmMwMjk4ZjI1YWFmYWE4MWJkMjMwOTA3NwotLS0gL2Rldi9udWxsCisrKyBiL1Bl
cmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9pbm5lckhUTUxfc2V0dGVyLmh0
bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVz
dFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JTZXR0
ZXI7IGkrKykgeworICAgICAgICBkaXYuaW5uZXJIVE1MID0gImZvbyI7CisgICAgfQorfSwgMSk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVz
dHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9pbm5lclRleHRfZ2V0dGVyLmh0bWwgYi9QZXJmb3Jt
YW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfaW5uZXJUZXh0X2dldHRlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNlMGQ1NzRjNzE1ZTFmMGU4MmYzODI4Y2Y4M2IzNjA0MWUwYjEwN2QKLS0tIC9k
ZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfaW5u
ZXJUZXh0X2dldHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
cGVhdFRpbWVzRm9yR2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LmlubmVyVGV4dDsKKyAgICB9
Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2lubmVyVGV4dF9zZXR0ZXIuaHRtbCBi
L1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9pbm5lclRleHRfc2V0dGVy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGE2Yjc4MzA2MzllOGQ5ZTA2NmZjZDI1NmI4ZWViMWQxOWMxYTc1
NAotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJp
YnV0ZV9pbm5lclRleHRfc2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgcmVwZWF0VGltZXNGb3JTZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYuaW5uZXJUZXh0
ID0gImZvbyI7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9pc0NvbnRl
bnRFZGl0YWJsZV9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0
dHJpYnV0ZV9pc0NvbnRlbnRFZGl0YWJsZV9nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzYyMjcx
ZmRjYmQ5YTM1NDhjZjg0YzgzMzNhMDNkMzI1YzRhMDVjCi0tLSAvZGV2L251bGwKKysrIGIvUGVy
Zm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2lzQ29udGVudEVkaXRhYmxlX2dl
dHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
UGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVz
Rm9yR2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LmlzQ29udGVudEVkaXRhYmxlOworICAgIH0K
K30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3Jt
YW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbGFuZ19nZXR0ZXIuaHRtbCBiL1BlcmZv
cm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9sYW5nX2dldHRlci5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjgzMzZiOWYzY2NlNWI4YjIzZjI3YmE2YWU0N2I3YTgxNmM5ZjUyZWYKLS0tIC9kZXYv
bnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbGFuZ19n
ZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1l
c0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5sYW5nOworICAgIH0KK30sIDEpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0Jp
bmRpbmdzL2RvbV9hdHRyaWJ1dGVfbGFuZ19zZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMv
QmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9sYW5nX3NldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3MTE1
NDIyNTZjMDA4MzdlMmFiYWIxMGMyMjRhZWQyOWU5MzIzMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbGFuZ19zZXR0ZXIuaHRtbApA
QCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9k
b21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVu
bmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvclNldHRlcjsg
aSsrKSB7CisgICAgICAgIGRpdi5sYW5nID0gImZvbyI7CisgICAgfQorfSwgMSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGlu
Z3MvZG9tX2F0dHJpYnV0ZV9vdXRlckhUTUxfZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3Rz
L0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfb3V0ZXJIVE1MX2dldHRlci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUzMmEzODNlOWE1NDM4MWEzNjNmM2YyZjEyY2ZmZmQ1YjA3MjM5ZjMKLS0tIC9kZXYvbnVsbAor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfb3V0ZXJIVE1MX2dl
dHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
UGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVz
Rm9yR2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2Lm91dGVySFRNTDsKKyAgICB9Cit9LCAxKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0
cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX291dGVyVGV4dF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1h
bmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9vdXRlclRleHRfZ2V0dGVyLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTUwNmQyNTYzOTkyYWY5YTMzOWVkMTIwOTZhNzE4NmI5NWFlZmMyOQotLS0gL2Rl
di9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9vdXRl
clRleHRfZ2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVw
ZWF0VGltZXNGb3JHZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYub3V0ZXJUZXh0OworICAgIH0K
K30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3Jt
YW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfc3BlbGxjaGVja19nZXR0ZXIuaHRtbCBi
L1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9zcGVsbGNoZWNrX2dldHRl
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZlY2UzMmM1YmFlZGIyODYyODI0YWQ1YWVmNzBiODFjMDY5MTEy
YmEKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRy
aWJ1dGVfc3BlbGxjaGVja19nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2
YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5zcGVsbGNo
ZWNrOworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfc3BlbGxjaGVja19z
ZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9zcGVs
bGNoZWNrX3NldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxYjNjOTNhNzI5OGZkYjEzYzk0YzE4NjNl
YmJkNzFhOWUzN2QwZTEKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRp
bmdzL2RvbV9hdHRyaWJ1dGVfc3BlbGxjaGVja19zZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5u
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19j
b21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlv
bigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvclNldHRlcjsgaSsrKSB7CisgICAgICAg
IGRpdi5zcGVsbGNoZWNrID0gImZvbyI7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0
dHJpYnV0ZV90YWJJbmRleF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3Mv
ZG9tX2F0dHJpYnV0ZV90YWJJbmRleF9nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZWQxNjRmMTVj
Y2EyYTQ3OTRjZWYyOThmNTAwY2ViZDQ3ZWViOTI2Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9y
bWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3RhYkluZGV4X2dldHRlci5odG1sCkBA
IC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Rv
bV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5u
ZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBp
KyspIHsKKyAgICAgICAgZGl2LnRhYkluZGV4OworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2Rv
bV9hdHRyaWJ1dGVfdGFiSW5kZXhfc2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRp
bmdzL2RvbV9hdHRyaWJ1dGVfdGFiSW5kZXhfc2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA3MTkw
NzNhZGQ2Yjg5MmM2OTQ0MTAxMmFkNDczMThmOTA1MDM4MwotLS0gL2Rldi9udWxsCisrKyBiL1Bl
cmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV90YWJJbmRleF9zZXR0ZXIuaHRt
bApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0
UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvclNldHRl
cjsgaSsrKSB7CisgICAgICAgIGRpdi50YWJJbmRleCA9ICJmb28iOworICAgIH0KK30sIDEpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfdGl0bGVfZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRl
c3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfdGl0bGVfZ2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjkwMTY0ZjliM2JmYTQxZGI2MWQ1MTdhNGE4MmExNWZkZTljNmJjYwotLS0gL2Rldi9udWxsCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV90aXRsZV9nZXR0ZXIu
aHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZU
ZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0Zvckdl
dHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi50aXRsZTsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5n
cy9kb21fYXR0cmlidXRlX3RpdGxlX3NldHRlci5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5k
aW5ncy9kb21fYXR0cmlidXRlX3RpdGxlX3NldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5Yjc5MTRh
YWEyYzNkNWI0YmY4NmRmY2U4NmYzZmI2N2U5NGI4MTMKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfdGl0bGVfc2V0dGVyLmh0bWwKQEAg
LTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9t
X2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5l
ci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JTZXR0ZXI7IGkr
KykgeworICAgICAgICBkaXYudGl0bGUgPSAiZm9vIjsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5n
cy9kb21fYXR0cmlidXRlX3dlYmtpdGRyb3B6b25lX2dldHRlci5odG1sIGIvUGVyZm9ybWFuY2VU
ZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3dlYmtpdGRyb3B6b25lX2dldHRlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYxODllOWI2NGYzOWNmNTZhY2I2NTFmYWE1Njg5ZmE3YjYwOWQzNGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfd2Vi
a2l0ZHJvcHpvbmVfZ2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRp
diA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcmVwZWF0VGltZXNGb3JHZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYud2Via2l0ZHJvcHpv
bmU7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV93ZWJraXRkcm9wem9u
ZV9zZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV93
ZWJraXRkcm9wem9uZV9zZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Y2I5MjY1NDFlNjg2ZDM3YWEx
YmE4N2UxOWEyNjYyOTM1MmVkMWFiCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3dlYmtpdGRyb3B6b25lX3NldHRlci5odG1sCkBAIC0w
LDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9h
dHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIu
cnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yU2V0dGVyOyBpKysp
IHsKKyAgICAgICAgZGl2LndlYmtpdGRyb3B6b25lID0gImZvbyI7CisgICAgfQorfSwgMSk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMv
Q2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDI3ZDdjYTIxNTIw
MDI4YTQ0MTEzNTYxZWQzNWFhMjVjYjVmMzg1YS4uNGEwMGJlYTM5YzA3MTA2ODk3MmNlZDdlOWY4
NjJiNzFmNGUzYjY0NyAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSw3NyBAQAogMjAxMi0wMi0y
MiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgQWRkIHBl
cmZvcm1hbmNlIHRlc3RzIGZvciB0aGUgZ2V0dGVycy9zZXR0ZXJzIG9mIEhUTUxFbGVtZW50IGF0
dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc5MjI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBhZGRzIHBlcmZvcm1hbmNlIHRlc3RzIGZvciBnZXR0ZXJzL3NldHRlcnMgb2Yg
SFRNTEVsZW1lbnQgYXR0cmlidXRlcy4KKworICAgICAgICBUaGUgcmVzdWx0cyBvZiB0aGVzZSB0
ZXN0cyBpbiBteSBsb2NhbCBDaHJvbWl1bS9MaW51eCBtYWNoaW5lIGlzIGFzIGZvbGxvd3M6CisK
KyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX2FjY2Vzc0tleV9nZXR0ZXIuaHRtbDog
QWRkZWQuCisgICAgICAgIG1lZGlhbj0gODguMCBtcywgc3RkZXY9IDEuNTMyMTU1MzQ0NiBtcywg
bWluPSA4NS4wIG1zLCBtYXg9IDkxLjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmli
dXRlX2FjY2Vzc0tleV9zZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gMTI0LjAg
bXMsIHN0ZGV2PSAxLjQzMTc4MjEwNjMzIG1zLCBtaW49IDEyMC4wIG1zLCBtYXg9IDEyNS4wIG1z
CisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9jaGlsZHJlbl9nZXR0ZXIuaHRtbDog
QWRkZWQuCisgICAgICAgIG1lZGlhbj0gMTU1LjAgbXMsIHN0ZGV2PSAxLjM1OTIyNzcyMTkxIG1z
LCBtaW49IDE1Mi4wIG1zLCBtYXg9IDE1OC4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0
dHJpYnV0ZV9jbGFzc0xpc3RfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDI0
OTIuMCBtcywgc3RkZXY9IDMuNDk2Nzg0MjM2OTggbXMsIG1pbj0gMjQ4Ny4wIG1zLCBtYXg9IDI1
MDMuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY2xhc3NOYW1lX2dldHRl
ci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSA4Ny41IG1zLCBzdGRldj0gMS4zMjY2NDk5
MTYxNCBtcywgbWluPSA4NS4wIG1zLCBtYXg9IDg5LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9k
b21fYXR0cmlidXRlX2NsYXNzTmFtZV9zZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlh
bj0gMTMzLjAgbXMsIHN0ZGV2PSAxLjE0NDU1MjMxNDIzIG1zLCBtaW49IDEzMC4wIG1zLCBtYXg9
IDEzNC4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9jb250ZW50RWRpdGFi
bGVfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDQ2MS41IG1zLCBzdGRldj0g
My41NzU5NjE0MDkxOSBtcywgbWluPSA0NTcuMCBtcywgbWF4PSA0NzAuMCBtcworICAgICAgICAq
IEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfZGlyX2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAg
bWVkaWFuPSA4Ni4wIG1zLCBzdGRldj0gMS4zNzM4NjMxNjY0IG1zLCBtaW49IDg0LjAgbXMsIG1h
eD0gODkuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfZGlyX3NldHRlci5o
dG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSAxMDcuMCBtcywgc3RkZXY9IDIuMDcwNjI3OTI0
MDggbXMsIG1pbj0gMTA1LjAgbXMsIG1heD0gMTE0LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9k
b21fYXR0cmlidXRlX2RyYWdnYWJsZV9nZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlh
bj0gMTEwLjUgbXMsIHN0ZGV2PSA1LjYwNjAyMzU0NjE1IG1zLCBtaW49IDEwMC4wIG1zLCBtYXg9
IDk5LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX2RyYWdnYWJsZV9zZXR0
ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gMTYzLjAgbXMsIHN0ZGV2PSAxLjk4Njgz
MTY0ODYzIG1zLCBtaW49IDE1OS4wIG1zLCBtYXg9IDE2Ny4wIG1zCisgICAgICAgICogQmluZGlu
Z3MvZG9tX2F0dHJpYnV0ZV9oaWRkZW5fZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRp
YW49IDk0LjAgbXMsIHN0ZGV2PSA0LjM4NzE5NzI4MyBtcywgbWluPSA4NC4wIG1zLCBtYXg9IDk4
LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX2hpZGRlbl9zZXR0ZXIuaHRt
bDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gMTI1LjAgbXMsIHN0ZGV2PSAxLjUxMjQ0ODM0NjIz
IG1zLCBtaW49IDEyMi4wIG1zLCBtYXg9IDEyNy4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9t
X2F0dHJpYnV0ZV9pbm5lckhUTUxfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49
IDM1OC4wIG1zLCBzdGRldj0gMi4wNDYzMzgxOTI5NyBtcywgbWluPSAzNTYuMCBtcywgbWF4PSAz
NjMuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfaW5uZXJIVE1MX3NldHRl
ci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSAyMzQ0LjAgbXMsIHN0ZGV2PSA1Mi40ODIz
Nzc5OTQ5IG1zLCBtaW49IDIyNjYuMCBtcywgbWF4PSAyNDY0LjAgbXMKKyAgICAgICAgKiBCaW5k
aW5ncy9kb21fYXR0cmlidXRlX2lubmVyVGV4dF9nZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAg
IG1lZGlhbj0gMjkxLjUgbXMsIHN0ZGV2PSAzLjM0NjY0MDEwNjE0IG1zLCBtaW49IDI4OC4wIG1z
LCBtYXg9IDMwMy4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9pbm5lclRl
eHRfc2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDg5LjAgbXMsIHN0ZGV2PSAy
LjEwODkwOTY3MDkgbXMsIG1pbj0gODYuMCBtcywgbWF4PSA5NC4wIG1zCisgICAgICAgICogQmlu
ZGluZ3MvZG9tX2F0dHJpYnV0ZV9pc0NvbnRlbnRFZGl0YWJsZV9nZXR0ZXIuaHRtbDogQWRkZWQu
CisgICAgICAgIG1lZGlhbj0gMTUwLjAgbXMsIHN0ZGV2PSAzLjI5MzU1NDMxMTA3IG1zLCBtaW49
IDE0My4wIG1zLCBtYXg9IDE1My4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9sYW5nX2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSA4Ny41IG1zLCBzdGRl
dj0gMS41NTgwNDM2NDUwOSBtcywgbWluPSA4NS4wIG1zLCBtYXg9IDg5LjAgbXMKKyAgICAgICAg
KiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX2xhbmdfc2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAg
ICBtZWRpYW49IDEyMC4wIG1zLCBzdGRldj0gMS42NDYyMDc3NjMzMiBtcywgbWluPSAxMTguMCBt
cywgbWF4PSAxMjMuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfb3V0ZXJI
VE1MX2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSAxOTk5LjAgbXMsIHN0ZGV2
PSAxNy4yMTc0MzMwMjU5IG1zLCBtaW49IDE5NzQuMCBtcywgbWF4PSAyMDM0LjAgbXMKKyAgICAg
ICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX291dGVyVGV4dF9nZXR0ZXIuaHRtbDogQWRkZWQu
CisgICAgICAgIG1lZGlhbj0gMjg4LjAgbXMsIHN0ZGV2PSAyLjM0MjU0MTM1NTAyIG1zLCBtaW49
IDI4My4wIG1zLCBtYXg9IDI5NC4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9zcGVsbGNoZWNrX2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSAxMDYuMCBt
cywgc3RkZXY9IDEuNDg2NjA2ODc0NzMgbXMsIG1pbj0gMTA0LjAgbXMsIG1heD0gMTA5LjAgbXMK
KyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX3NwZWxsY2hlY2tfc2V0dGVyLmh0bWw6
IEFkZGVkLgorICAgICAgICBtZWRpYW49IDE2NC4wIG1zLCBzdGRldj0gMS40OTkxNjY0MzUwNiBt
cywgbWluPSAxNjAuMCBtcywgbWF4PSAxNjUuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9h
dHRyaWJ1dGVfdGFiSW5kZXhfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDEw
NS4wIG1zLCBzdGRldj0gMS44ODM0ODA4MjAxOCBtcywgbWluPSAxMDMuMCBtcywgbWF4PSAxMTEu
MCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfdGFiSW5kZXhfc2V0dGVyLmh0
bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDcwMC4wIG1zLCBzdGRldj0gMi4xMjM2NzYwNTgx
NiBtcywgbWluPSA2OTcuMCBtcywgbWF4PSA3MDUuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2Rv
bV9hdHRyaWJ1dGVfdGl0bGVfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDg2
LjAgbXMsIHN0ZGV2PSAxLjQ2Mjg3Mzg4MzgzIG1zLCBtaW49IDg0LjAgbXMsIG1heD0gODkuMCBt
cworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfdGl0bGVfc2V0dGVyLmh0bWw6IEFk
ZGVkLgorICAgICAgICBtZWRpYW49IDEyOS4wIG1zLCBzdGRldj0gMS40MzE3ODIxMDYzMyBtcywg
bWluPSAxMjYuMCBtcywgbWF4PSAxMzAuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRy
aWJ1dGVfd2Via2l0ZHJvcHpvbmVfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49
IDk2LjAgbXMsIHN0ZGV2PSAxLjUzMjE1NTM0NDYgbXMsIG1pbj0gOTQuMCBtcywgbWF4PSA5OS4w
IG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV93ZWJraXRkcm9wem9uZV9zZXR0
ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gMTIyLjAgbXMsIHN0ZGV2PSAxLjQ0NDgx
ODMyNzY4IG1zLCBtaW49IDExOS4wIG1zLCBtYXg9IDEyNC4wIG1zCisKKzIwMTItMDItMjIgIEtl
bnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIEFkZCBwZXJmb3Jt
YW5jZSB0ZXN0cyBmb3IgdGhlIEVsZW1lbnQuaWQgZ2V0dGVyIGFuZCBzZXR0ZXIKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MjA5CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128194</attachid>
            <date>2012-02-22 06:10:40 -0800</date>
            <delta_ts>2012-02-22 06:13:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79228-20120222231039.patch</filename>
            <type>text/plain</type>
            <size>22721</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NDg1CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY2hpbGRFbGVtZW50Q291bnRfZ2V0dGVyLmh0bWwgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY2hpbGRFbGVtZW50Q291bnRf
Z2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA2M2IyNTFmYjdiOTQ2MTcwNzMzMmFhMjIzMGMwOWFm
Y2QwMTUzMgotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9t
X2F0dHJpYnV0ZV9jaGlsZEVsZW1lbnRDb3VudF9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5u
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19j
b21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlv
bigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAg
IGRpdi5jaGlsZEVsZW1lbnRDb3VudDsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0
cmlidXRlX2NsaWVudEhlaWdodF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGlu
Z3MvZG9tX2F0dHJpYnV0ZV9jbGllbnRIZWlnaHRfZ2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTcz
ODFhYzNmYjFmOTc5NWE3MzRjMjRlOGExZWViMzlhZTMzOWY5OAotLS0gL2Rldi9udWxsCisrKyBi
L1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9jbGllbnRIZWlnaHRfZ2V0
dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQ
ZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNG
b3JHZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYuY2xpZW50SGVpZ2h0OworICAgIH0KK30sIDEp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRl
c3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY2xpZW50TGVmdF9nZXR0ZXIuaHRtbCBiL1BlcmZv
cm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9jbGllbnRMZWZ0X2dldHRlci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA2MGI0NWMxOThmODMxNGFmZDRmY2Y5NDkyODZiNTVkNzUxNzEwYjEKLS0t
IC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVf
Y2xpZW50TGVmdF9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5jbGllbnRMZWZ0Owor
ICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Q
ZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY2xpZW50VG9wX2dldHRlci5o
dG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2NsaWVudFRvcF9n
ZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDRlZmI4YjQyMDA1MmY2MGJhMGNmOGExNDZjYTlmZjM3
NmQ2ZWUzCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21f
YXR0cmlidXRlX2NsaWVudFRvcF9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAg
ICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5jbGll
bnRUb3A7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9jbGllbnRXaWR0
aF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9j
bGllbnRXaWR0aF9nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzZhZWRhN2Y4YmM1NmY0ZTcyNDVj
MWJjMGZhNjc3MTc3YjBlNGQyCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9C
aW5kaW5ncy9kb21fYXR0cmlidXRlX2NsaWVudFdpZHRoX2dldHRlci5odG1sCkBAIC0wLDAgKzEs
MTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1
dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1
bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBpKyspIHsKKyAg
ICAgICAgZGl2LmNsaWVudFdpZHRoOworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRy
aWJ1dGVfZGF0YXNldF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9t
X2F0dHJpYnV0ZV9kYXRhc2V0X2dldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZmRmNjM3MDhjNTM2
NjA5ZjMwNmE3NDVjMGY3YjE4MjhhZjlmN2EKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5j
ZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfZGF0YXNldF9nZXR0ZXIuaHRtbApAQCAtMCww
ICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0
cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1
bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7
CisgICAgICAgIGRpdi5kYXRhc2V0OworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRy
aWJ1dGVfZmlyc3RFbGVtZW50Q2hpbGRfZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0Jp
bmRpbmdzL2RvbV9hdHRyaWJ1dGVfZmlyc3RFbGVtZW50Q2hpbGRfZ2V0dGVyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjMyYjczZDMwNDcxNDljMTNkYWU4NDBjNGE0NTYxY2RiYjczYTY4MQotLS0gL2Rldi9u
dWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9maXJzdEVs
ZW1lbnRDaGlsZF9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5maXJzdEVsZW1lbnRD
aGlsZDsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2xhc3RFbGVtZW50
Q2hpbGRfZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1
dGVfbGFzdEVsZW1lbnRDaGlsZF9nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOTdiZTY1NzYwOGRh
OTM0ODUwMTNlOTk4ZmFhN2EyMjI3MmQ5MGVhCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFu
Y2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2xhc3RFbGVtZW50Q2hpbGRfZ2V0dGVyLmh0
bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVz
dFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JHZXR0
ZXI7IGkrKykgeworICAgICAgICBkaXYubGFzdEVsZW1lbnRDaGlsZDsKKyAgICB9Cit9LCAxKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0
cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX25leHRFbGVtZW50U2libGluZ19nZXR0ZXIuaHRtbCBi
L1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9uZXh0RWxlbWVudFNpYmxp
bmdfZ2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBmY2M3OTExYmI5NmI0MTJhNGIxNzBjMmU3YzJl
M2VmN2QxODYwZAotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3Mv
ZG9tX2F0dHJpYnV0ZV9uZXh0RWxlbWVudFNpYmxpbmdfZ2V0dGVyLmh0bWwKQEAgLTAsMCArMSwx
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
cnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0
ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVu
Y3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JHZXR0ZXI7IGkrKykgeworICAg
ICAgICBkaXYubmV4dEVsZW1lbnRTaWJsaW5nOworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2Rv
bV9hdHRyaWJ1dGVfb2Zmc2V0SGVpZ2h0X2dldHRlci5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9C
aW5kaW5ncy9kb21fYXR0cmlidXRlX29mZnNldEhlaWdodF9nZXR0ZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41YmEwYmUwOTQyNmExNjQ3ODllNzE2YTg1Mjk0YTEwYjI1MWIwNjI2Ci0tLSAvZGV2L251bGwK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX29mZnNldEhlaWdo
dF9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRU
aW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5vZmZzZXRIZWlnaHQ7CisgICAgfQor
fSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1h
bmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9vZmZzZXRMZWZ0X2dldHRlci5odG1sIGIv
UGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX29mZnNldExlZnRfZ2V0dGVy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGM4NGNiYTI5ZTVhYjljMDVlY2YwNTJlMTdiNmFlZGFkMDA5NjUz
OAotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJp
YnV0ZV9vZmZzZXRMZWZ0X2dldHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2Lm9mZnNldExl
ZnQ7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9vZmZzZXRQYXJlbnRf
Z2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfb2Zm
c2V0UGFyZW50X2dldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2YWZiNjE3OTNmYjk3ZWY4Yjg5NzZi
MTU3MTI0NDViNzg4NWJjNDQKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0Jp
bmRpbmdzL2RvbV9hdHRyaWJ1dGVfb2Zmc2V0UGFyZW50X2dldHRlci5odG1sCkBAIC0wLDAgKzEs
MTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1
dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1
bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBpKyspIHsKKyAg
ICAgICAgZGl2Lm9mZnNldFBhcmVudDsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0
cmlidXRlX29mZnNldFRvcF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3Mv
ZG9tX2F0dHJpYnV0ZV9vZmZzZXRUb3BfZ2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ3MjE4N2My
MzI2ODI5ZmFjNzEyOTBjYjM1NTliMmExMjI4MmRkOQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9vZmZzZXRUb3BfZ2V0dGVyLmh0bWwK
QEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
ZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1
bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JHZXR0ZXI7
IGkrKykgeworICAgICAgICBkaXYub2Zmc2V0VG9wOworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdz
L2RvbV9hdHRyaWJ1dGVfb2Zmc2V0V2lkdGhfZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3Rz
L0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfb2Zmc2V0V2lkdGhfZ2V0dGVyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzIxYjkzMjAzMzYxZjcxOTAwMTVlOTU1NDlhZDM2M2QwNTA0NGYxOAotLS0gL2Rldi9udWxs
CisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9vZmZzZXRXaWR0
aF9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRU
aW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5vZmZzZXRXaWR0aDsKKyAgICB9Cit9
LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX29ubG9hZF9nZXR0ZXIuaHRtbCBiL1BlcmZv
cm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9vbmxvYWRfZ2V0dGVyLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODk5ZmEwNWViNzZjZWIzY2FjYzI0NzA4ZjMxZDMyMGE3ZGNlMDkxZQotLS0gL2Rl
di9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9vbmxv
YWRfZ2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0
VGltZXNGb3JHZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYub25sb2FkOworICAgIH0KK30sIDEp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRl
c3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfb25sb2FkX3NldHRlci5odG1sIGIvUGVyZm9ybWFu
Y2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX29ubG9hZF9zZXR0ZXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wMGYzNGZkMDUzYzMyMTQ3YzFiYzg4NDkxMGI0NzVhOWY2ODliYjM5Ci0tLSAvZGV2L251
bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX29ubG9hZF9z
ZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1l
c0ZvclNldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5vbmxvYWQgPSAiZm9vIjsKKyAgICB9Cit9
LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3ByZXZpb3VzRWxlbWVudFNpYmxpbmdfZ2V0
dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfcHJldmlv
dXNFbGVtZW50U2libGluZ19nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDU1YjU2OTczMmYxYmVi
YjMxM2QxOTAxN2NiOTdmZTE1MjhiMDUwCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3ByZXZpb3VzRWxlbWVudFNpYmxpbmdfZ2V0dGVy
Lmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJm
VGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JH
ZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYucHJldmlvdXNFbGVtZW50U2libGluZzsKKyAgICB9
Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3Njcm9sbEhlaWdodF9nZXR0ZXIuaHRt
bCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9zY3JvbGxIZWlnaHRf
Z2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDlhZTUxNWRkYTk0MGY3NjE2M2Y5NTA5MGI1NGM2NTNj
YjZjOWUzYQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9t
X2F0dHJpYnV0ZV9zY3JvbGxIZWlnaHRfZ2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9u
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7
CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JHZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYu
c2Nyb2xsSGVpZ2h0OworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfc2Ny
b2xsTGVmdF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJp
YnV0ZV9zY3JvbGxMZWZ0X2dldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiMGE2ZjZmYjgyOTE2ZDEw
ZWQwNDYyZjM5ZWJhNTE1ZmZmMWE3ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRl
c3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfc2Nyb2xsTGVmdF9nZXR0ZXIuaHRtbApAQCAtMCww
ICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0
cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1
bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7
CisgICAgICAgIGRpdi5zY3JvbGxMZWZ0OworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9h
dHRyaWJ1dGVfc2Nyb2xsTGVmdF9zZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGlu
Z3MvZG9tX2F0dHJpYnV0ZV9zY3JvbGxMZWZ0X3NldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzN2My
ZDBiZWQzOTE2MzNlMWRmY2Q1NTlhMjE1NTNjNWIyYjI2NzIKLS0tIC9kZXYvbnVsbAorKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfc2Nyb2xsTGVmdF9zZXR0ZXIu
aHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZU
ZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvclNl
dHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5zY3JvbGxMZWZ0ID0gImZvbyI7CisgICAgfQorfSwg
MSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNl
VGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9zY3JvbGxUb3BfZ2V0dGVyLmh0bWwgYi9QZXJm
b3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfc2Nyb2xsVG9wX2dldHRlci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU4YjUzNGJhOGZhMDA5MWU2NDZjNzRhZGRhYmU0NGJjOTU5M2NkNDYKLS0t
IC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVf
c2Nyb2xsVG9wX2dldHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LnNjcm9sbFRvcDsKKyAg
ICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVy
Zm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3Njcm9sbFRvcF9zZXR0ZXIuaHRt
bCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9zY3JvbGxUb3Bfc2V0
dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTczMTExYmQwMTNhOWIwNzY2NjRkMjJlODc5Y2NiMDQ3ZTBk
MjE4YQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0
dHJpYnV0ZV9zY3JvbGxUb3Bfc2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAg
dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcmVwZWF0VGltZXNGb3JTZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYuc2Nyb2xs
VG9wID0gImZvbyI7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9zY3Jv
bGxXaWR0aF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJp
YnV0ZV9zY3JvbGxXaWR0aF9nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNmJkNzdhZjcyNTBjYjg0
YzcyOGNjZTNiZjhhZTgyMGE2OTc4NWU1Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3Njcm9sbFdpZHRoX2dldHRlci5odG1sCkBAIC0w
LDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9h
dHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIu
cnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBpKysp
IHsKKyAgICAgICAgZGl2LnNjcm9sbFdpZHRoOworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2Rv
bV9hdHRyaWJ1dGVfc3R5bGVfZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdz
L2RvbV9hdHRyaWJ1dGVfc3R5bGVfZ2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjEyYTM5YTNhNjY4
MDVlNzAxNTQ5MDdhYmEyOWM0N2RmNDA5M2E2NwotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1h
bmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9zdHlsZV9nZXR0ZXIuaHRtbApAQCAtMCww
ICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0
cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1
bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7
CisgICAgICAgIGRpdi5zdHlsZTsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmli
dXRlX3RhZ05hbWVfZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9h
dHRyaWJ1dGVfdGFnTmFtZV9nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hM2EwMzJiNmI3MmJkYjhj
YjQxMGE2NWZhZWVlZmRjOGUzMGQ0MTMxCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3RhZ05hbWVfZ2V0dGVyLmh0bWwKQEAgLTAsMCAr
MSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJp
YnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4o
ZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JHZXR0ZXI7IGkrKykgewor
ICAgICAgICBkaXYudGFnTmFtZTsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cgYi9QZXJmb3Jt
YW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCAwMjdkN2NhMjE1MjAwMjhhNDQxMTM1NjFlZDM1YWEy
NWNiNWYzODVhLi5jMTFmMWUwZDI1YWZmMjg4ODQ2YzM0YmFjNWMxMDA3MTQ3NmJlN2UyIDEwMDY0
NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc1IEBACiAyMDEyLTAyLTIyICBLZW50YXJvIEhhcmEgIDxo
YXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBBZGQgcGVyZm9ybWFuY2UgdGVzdHMgZm9y
IHRoZSBnZXR0ZXJzL3NldHRlcnMgb2YgSFRNTEVsZW1lbnQgYXR0cmlidXRlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkyMjgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgbWlj
cm8tYmVuY2htYXJrIHBlcmZvcm1hbmNlIHRlc3RzIGZvciBnZXR0ZXJzL3NldHRlcnMKKyAgICAg
ICAgb2YgRWxlbWVudCBhdHRyaWJ1dGVzLiBUaGlzIHBhdGNoIG9taXRzIHRoZSBwZXJmb3JtYW5j
ZSB0ZXN0cyBmb3IKKyAgICAgICAgb25hYm9ydCwgb25ibHVyLCBvbmNoYW5nZSwgb25jbGljaywg
b25jb250ZXh0bWVudSwgb25kYmxjbGljaywgb25kcmFnLAorICAgICAgICBvbmRyYWdlbmQsIG9u
ZHJhZ2VudGVyLCBvbmRyYWdsZWF2ZSwgb25kcmFnb3Zlciwgb25kcmFnc3RhcnQsIG9uZHJvcCwK
KyAgICAgICAgb25lcnJvciwgb25mb2N1cywgb25pbnB1dCwgb25pbnZhbGlkLCBvbmtleWRvd24s
IG9ua2V5cHJlc3MsIG9ua2V5dXAsCisgICAgICAgIG9ubW91c2Vkb3duLCBvbm1vdXNlbW92ZSwg
b25tb3VzZW91dCwgb25tb3VzZW92ZXIsIG9ubW91c2V1cCwgb25tb3VzZXdoZWVsLAorICAgICAg
ICBvbnNjcm9sbCwgb25zZWxlY3QsIG9uc3VibWl0LCBvbmJlZm9yZWN1dCwgb25jdXQsIG9uYmVm
b3JlY29weSwgb25jb3B5LAorICAgICAgICBvbmJlZm9yZXBhc3RlLCBvbnBhc3RlLCBvbnJlc2V0
LCBvbnNlYXJjaCwgb25zZWxlY3RzdGFydCwgb253ZWJraXRmdWxsc2NyZWVuY2hhbmdlLAorICAg
ICAgICBhbmQgb253ZWJraXRmdWxsc2NyZWVuZXJyb3IsIGJlY2F1c2UgdGhleSB0cmFjZSBhbG1v
c3QgdGhlIHNhbWUgY2FsbC1wYXRoIGFzIG9ubG9hZC4KKworICAgICAgICBUaGUgcmVzdWx0cyBv
ZiB0aGVzZSB0ZXN0cyBpbiBteSBsb2NhbCBDaHJvbWl1bS9MaW51eCBtYWNoaW5lIGlzIGFzIGZv
bGxvd3M6CisKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX2NoaWxkRWxlbWVudENv
dW50X2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSA4Ny4wIG1zLCBzdGRldj0g
My40MDQ0MDg5MDYxMSBtcywgbWluPSA4NC4wIG1zLCBtYXg9IDk2LjAgbXMKKyAgICAgICAgKiBC
aW5kaW5ncy9kb21fYXR0cmlidXRlX2NsaWVudEhlaWdodF9nZXR0ZXIuaHRtbDogQWRkZWQuCisg
ICAgICAgIG1lZGlhbj0gMTc1LjAgbXMsIHN0ZGV2PSAxLjQ5OTE2NjQzNTA2IG1zLCBtaW49IDE3
MS4wIG1zLCBtYXg9IDE3Ni4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9j
bGllbnRMZWZ0X2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSAxMzUuMCBtcywg
c3RkZXY9IDEuMzg4MzQ0MzM3NjkgbXMsIG1pbj0gMTMzLjAgbXMsIG1heD0gMTM3LjAgbXMKKyAg
ICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX2NsaWVudFRvcF9nZXR0ZXIuaHRtbDogQWRk
ZWQuCisgICAgICAgIG1lZGlhbj0gMTU1LjAgbXMsIHN0ZGV2PSA0LjMzNzA0OTY4ODQ0IG1zLCBt
aW49IDE0OC4wIG1zLCBtYXg9IDE2Mi4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJp
YnV0ZV9jbGllbnRXaWR0aF9nZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gMTU0
LjAgbXMsIHN0ZGV2PSAyLjU3ODI3NDYxNjg3IG1zLCBtaW49IDE1MC4wIG1zLCBtYXg9IDE1OS4w
IG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9kYXRhc2V0X2dldHRlci5odG1s
OiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSAzMTgyLjAgbXMsIHN0ZGV2PSAxNC4wMTAyNjQwOTQ2
IG1zLCBtaW49IDMxNTYuMCBtcywgbWF4PSAzMjA4LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9k
b21fYXR0cmlidXRlX2ZpcnN0RWxlbWVudENoaWxkX2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAg
ICAgbWVkaWFuPSA4Ni4wIG1zLCBzdGRldj0gNC45NDg3MzcyMTI2NiBtcywgbWluPSA3Ni4wIG1z
LCBtYXg9IDg5LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX2xhc3RFbGVt
ZW50Q2hpbGRfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDg5LjAgbXMsIHN0
ZGV2PSAxLjQ2NjI4NzgyOTg2IG1zLCBtaW49IDg2LjAgbXMsIG1heD0gOTAuMCBtcworICAgICAg
ICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbmV4dEVsZW1lbnRTaWJsaW5nX2dldHRlci5odG1s
OiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSA4NC4wIG1zLCBzdGRldj0gNS4xNjgxNzE4MjM3NyBt
cywgbWluPSA3Mi4wIG1zLCBtYXg9IDg3LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0
cmlidXRlX29mZnNldEhlaWdodF9nZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0g
MTQ1LjAgbXMsIHN0ZGV2PSAxLjUxMjQ0ODM0NjIzIG1zLCBtaW49IDE0NC4wIG1zLCBtYXg9IDE0
OS4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9vZmZzZXRMZWZ0X2dldHRl
ci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSAxNDQuMCBtcywgc3RkZXY9IDEuMTEzNTUy
ODcyNTcgbXMsIG1pbj0gMTQzLjAgbXMsIG1heD0gMTQ3LjAgbXMKKyAgICAgICAgKiBCaW5kaW5n
cy9kb21fYXR0cmlidXRlX29mZnNldFBhcmVudF9nZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAg
IG1lZGlhbj0gMTM5LjUgbXMsIHN0ZGV2PSA1LjE2MjEyMTY1Njg0IG1zLCBtaW49IDEzNS4wIG1z
LCBtYXg9IDE0OS4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9vZmZzZXRU
b3BfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDE0MS4wIG1zLCBzdGRldj0g
MS42MDkzNDc2OTM5NCBtcywgbWluPSAxMzguMCBtcywgbWF4PSAxNDUuMCBtcworICAgICAgICAq
IEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfb2Zmc2V0V2lkdGhfZ2V0dGVyLmh0bWw6IEFkZGVkLgor
ICAgICAgICBtZWRpYW49IDE1NC41IG1zLCBzdGRldj0gMS45NDY3OTIyMzMzOSBtcywgbWluPSAx
NTIuMCBtcywgbWF4PSAxNjEuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVf
b25sb2FkX2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSAxMzUuMCBtcywgc3Rk
ZXY9IDEuNTQ1MTUzNzE0MDQgbXMsIG1pbj0gMTMyLjAgbXMsIG1heD0gMTM3LjAgbXMKKyAgICAg
ICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX29ubG9hZF9zZXR0ZXIuaHRtbDogQWRkZWQuCisg
ICAgICAgIG1lZGlhbj0gMTM3LjUgbXMsIHN0ZGV2PSAyLjAwOTk3NTEyNDIyIG1zLCBtaW49IDEz
NS4wIG1zLCBtYXg9IDE0My4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9w
cmV2aW91c0VsZW1lbnRTaWJsaW5nX2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFu
PSA3NC4wIG1zLCBzdGRldj0gMi4wNjM5NzY3NDQwNiBtcywgbWluPSA3My4wIG1zLCBtYXg9IDgy
LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX3Njcm9sbEhlaWdodF9nZXR0
ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gMTQ0LjAgbXMsIHN0ZGV2PSAyLjk0MDY2
MzE5MDUxIG1zLCBtaW49IDE0MC4wIG1zLCBtYXg9IDE1Mi4wIG1zCisgICAgICAgICogQmluZGlu
Z3MvZG9tX2F0dHJpYnV0ZV9zY3JvbGxMZWZ0X2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAg
bWVkaWFuPSAxNDguMCBtcywgc3RkZXY9IDEuMzk2NDI0MDA0MzggbXMsIG1pbj0gMTQ2LjAgbXMs
IG1heD0gMTUxLjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX3Njcm9sbExl
ZnRfc2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDE0My4wIG1zLCBzdGRldj0g
MS43NjM1MTkyMDg4NSBtcywgbWluPSAxMzguMCBtcywgbWF4PSAxNDQuMCBtcworICAgICAgICAq
IEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfc2Nyb2xsVG9wX2dldHRlci5odG1sOiBBZGRlZC4KKyAg
ICAgICAgbWVkaWFuPSAxMzQuMCBtcywgc3RkZXY9IDEuNjg3NDUzNzAzMDcgbXMsIG1pbj0gMTMz
LjAgbXMsIG1heD0gMTQwLjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX3Nj
cm9sbFRvcF9zZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gMTQ0LjAgbXMsIHN0
ZGV2PSAxLjEwNzkyNTk5MDMxIG1zLCBtaW49IDE0My4wIG1zLCBtYXg9IDE0Ny4wIG1zCisgICAg
ICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9zY3JvbGxXaWR0aF9nZXR0ZXIuaHRtbDogQWRk
ZWQuCisgICAgICAgIG1lZGlhbj0gMTM5LjAgbXMsIHN0ZGV2PSA1LjE2MjEyMTY1Njg0IG1zLCBt
aW49IDEzMy4wIG1zLCBtYXg9IDE0OS4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJp
YnV0ZV9zdHlsZV9nZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gMTQyLjAgbXMs
IHN0ZGV2PSAyLjAyMjM3NDg0MTYyIG1zLCBtaW49IDEzOS4wIG1zLCBtYXg9IDE0Ny4wIG1zCisg
ICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV90YWdOYW1lX2dldHRlci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgbWVkaWFuPSAxMTAuMCBtcywgc3RkZXY9IDEuNjQwMTIxOTQ2NjkgbXMsIG1p
bj0gMTA3LjAgbXMsIG1heD0gMTEzLjAgbXMKKworMjAxMi0wMi0yMiAgS2VudGFybyBIYXJhICA8
aGFyYWtlbkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgQWRkIHBlcmZvcm1hbmNlIHRlc3RzIGZv
ciB0aGUgRWxlbWVudC5pZCBnZXR0ZXIgYW5kIHNldHRlcgogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkyMDkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128196</attachid>
            <date>2012-02-22 06:13:10 -0800</date>
            <delta_ts>2012-02-22 07:26:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79228-20120222231308.patch</filename>
            <type>text/plain</type>
            <size>25983</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NDg1CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfYWNjZXNzS2V5X2dldHRlci5odG1sIGIvUGVyZm9ybWFu
Y2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2FjY2Vzc0tleV9nZXR0ZXIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wYThlMWEzYTQ0ZDljMGRjMGMwMGViMGJiNzQ3NDZlM2QxY2JiYjhmCi0tLSAvZGV2
L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2FjY2Vz
c0tleV9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBl
YXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5hY2Nlc3NLZXk7CisgICAgfQor
fSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1h
bmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9hY2Nlc3NLZXlfc2V0dGVyLmh0bWwgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfYWNjZXNzS2V5X3NldHRlci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY5MTM3ZGZjNDY5NTlhODE1NGY1MDJiMGQ4MWQ0MTAzNjg0Y2JlY2YK
LS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1
dGVfYWNjZXNzS2V5X3NldHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHJlcGVhdFRpbWVzRm9yU2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LmFjY2Vzc0tleSA9
ICJmb28iOworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY2hpbGRyZW5f
Z2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY2hp
bGRyZW5fZ2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNlODU0ZjcxMDQ3OWJiMDU0MjE5NDdhMDQw
NzlhNzUwNmM5YTQ0NwotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGlu
Z3MvZG9tX2F0dHJpYnV0ZV9jaGlsZHJlbl9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21t
b24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigp
IHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRp
di5jaGlsZHJlbjsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2NsYXNz
TGlzdF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9jbGFzc0xpc3RfZ2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmIzNzU0NDFhMDM0N2U5MzhhNzQ5
NmMzY2NlYWZlNWEwMDU4NzllNQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMv
QmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9jbGFzc0xpc3RfZ2V0dGVyLmh0bWwKQEAgLTAsMCArMSwx
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
cnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0
ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVu
Y3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JHZXR0ZXI7IGkrKykgeworICAg
ICAgICBkaXYuY2xhc3NMaXN0OworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1
dGVfY2xhc3NOYW1lX2dldHRlci5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21f
YXR0cmlidXRlX2NsYXNzTmFtZV9nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzVlMjhlYmM3ZjZi
M2EzZjZjZWMyNDQ2NDlhMDQyNjJiNTNiOWFhCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFu
Y2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2NsYXNzTmFtZV9nZXR0ZXIuaHRtbApAQCAt
MCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21f
YXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVy
LnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsr
KSB7CisgICAgICAgIGRpdi5jbGFzc05hbWU7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9t
X2F0dHJpYnV0ZV9jbGFzc05hbWVfc2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRp
bmdzL2RvbV9hdHRyaWJ1dGVfY2xhc3NOYW1lX3NldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyM2Rm
ZGIxOGJhZGJlZDI4MmZjMDgwN2MwNzU2ZGViMWFhZDc1NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY2xhc3NOYW1lX3NldHRlci5o
dG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRl
c3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yU2V0
dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJmb28iOworICAgIH0KK30sIDEp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRl
c3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY29udGVudEVkaXRhYmxlX2dldHRlci5odG1sIGIv
UGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2NvbnRlbnRFZGl0YWJsZV9n
ZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzU5N2Y3NGIwZDU4NDBlYWIyNjBkMzBmYzIzYzExNTFh
YzdkNzMyCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21f
YXR0cmlidXRlX2NvbnRlbnRFZGl0YWJsZV9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21t
b24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigp
IHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRp
di5jb250ZW50RWRpdGFibGU7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9kaXJfZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1
dGVfZGlyX2dldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzYTUxZjMyYmVjOTllODc4YmUyZTZmZTdl
ZWFmYjcyMGZmZGFlNGEKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRp
bmdzL2RvbV9hdHRyaWJ1dGVfZGlyX2dldHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgewor
ICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LmRp
cjsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2Rpcl9zZXR0ZXIuaHRt
bCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9kaXJfc2V0dGVyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGMwM2NiMzA3OGY0ODA0NTczMTRlNmJjNTBjZGY5MzE4MTRhMTUzYQot
LS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9kaXJfc2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVw
ZWF0VGltZXNGb3JTZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYuZGlyID0gImZvbyI7CisgICAg
fQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9kcmFnZ2FibGVfZ2V0dGVyLmh0bWwg
Yi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfZHJhZ2dhYmxlX2dldHRl
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhkMDhmYjI5ZTQ3MWQyNDZiMzUwOTUyZDcxYzk1ZjliMWUwODg4
Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRy
aWJ1dGVfZHJhZ2dhYmxlX2dldHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LmRyYWdnYWJs
ZTsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2RyYWdnYWJsZV9zZXR0
ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9kcmFnZ2Fi
bGVfc2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZkOTgxOWQxMWYwZDUzY2NiZWFjYTVlNzNiNzJk
MDRjOTZjZjRiMwotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3Mv
ZG9tX2F0dHJpYnV0ZV9kcmFnZ2FibGVfc2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9u
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7
CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JTZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYu
ZHJhZ2dhYmxlID0gImZvbyI7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9oaWRkZW5fZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRy
aWJ1dGVfaGlkZGVuX2dldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkZDVhMDY5NjU0NmIxNThhYTMz
N2RkNmM0MDY2MWE0ZmE5ODAxYWQKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfaGlkZGVuX2dldHRlci5odG1sCkBAIC0wLDAgKzEsMTQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1
bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVz
X2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0
aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBpKyspIHsKKyAgICAg
ICAgZGl2LmhpZGRlbjsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2hp
ZGRlbl9zZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9oaWRkZW5fc2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY2YjUzMmFjMzMyZTNiYmU0YTAyMmJl
YWQxMWMzNzBhNWRjNDExMgotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmlu
ZGluZ3MvZG9tX2F0dHJpYnV0ZV9oaWRkZW5fc2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29t
bW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24o
KSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JTZXR0ZXI7IGkrKykgeworICAgICAgICBk
aXYuaGlkZGVuID0gImZvbyI7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9pbm5lckhUTUxfZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9h
dHRyaWJ1dGVfaW5uZXJIVE1MX2dldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkNmQyOTlhMTIxZjY2
MzEzZTUzNzk1Y2RhZmY4MTI5M2VhY2YwZWMKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5j
ZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfaW5uZXJIVE1MX2dldHRlci5odG1sCkBAIC0w
LDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9h
dHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIu
cnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBpKysp
IHsKKyAgICAgICAgZGl2LmlubmVySFRNTDsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21f
YXR0cmlidXRlX2lubmVySFRNTF9zZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGlu
Z3MvZG9tX2F0dHJpYnV0ZV9pbm5lckhUTUxfc2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjllMTA2
MmZkMzdhNTQ3ZmMwMjk4ZjI1YWFmYWE4MWJkMjMwOTA3NwotLS0gL2Rldi9udWxsCisrKyBiL1Bl
cmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9pbm5lckhUTUxfc2V0dGVyLmh0
bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVz
dFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JTZXR0
ZXI7IGkrKykgeworICAgICAgICBkaXYuaW5uZXJIVE1MID0gImZvbyI7CisgICAgfQorfSwgMSk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVz
dHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9pbm5lclRleHRfZ2V0dGVyLmh0bWwgYi9QZXJmb3Jt
YW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfaW5uZXJUZXh0X2dldHRlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNlMGQ1NzRjNzE1ZTFmMGU4MmYzODI4Y2Y4M2IzNjA0MWUwYjEwN2QKLS0tIC9k
ZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfaW5u
ZXJUZXh0X2dldHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
cGVhdFRpbWVzRm9yR2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LmlubmVyVGV4dDsKKyAgICB9
Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2lubmVyVGV4dF9zZXR0ZXIuaHRtbCBi
L1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9pbm5lclRleHRfc2V0dGVy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGE2Yjc4MzA2MzllOGQ5ZTA2NmZjZDI1NmI4ZWViMWQxOWMxYTc1
NAotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJp
YnV0ZV9pbm5lclRleHRfc2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgcmVwZWF0VGltZXNGb3JTZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYuaW5uZXJUZXh0
ID0gImZvbyI7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9pc0NvbnRl
bnRFZGl0YWJsZV9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0
dHJpYnV0ZV9pc0NvbnRlbnRFZGl0YWJsZV9nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzYyMjcx
ZmRjYmQ5YTM1NDhjZjg0YzgzMzNhMDNkMzI1YzRhMDVjCi0tLSAvZGV2L251bGwKKysrIGIvUGVy
Zm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2lzQ29udGVudEVkaXRhYmxlX2dl
dHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
UGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVz
Rm9yR2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LmlzQ29udGVudEVkaXRhYmxlOworICAgIH0K
K30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3Jt
YW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbGFuZ19nZXR0ZXIuaHRtbCBiL1BlcmZv
cm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9sYW5nX2dldHRlci5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjgzMzZiOWYzY2NlNWI4YjIzZjI3YmE2YWU0N2I3YTgxNmM5ZjUyZWYKLS0tIC9kZXYv
bnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbGFuZ19n
ZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1l
c0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5sYW5nOworICAgIH0KK30sIDEpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0Jp
bmRpbmdzL2RvbV9hdHRyaWJ1dGVfbGFuZ19zZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMv
QmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9sYW5nX3NldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3MTE1
NDIyNTZjMDA4MzdlMmFiYWIxMGMyMjRhZWQyOWU5MzIzMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbGFuZ19zZXR0ZXIuaHRtbApA
QCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9k
b21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVu
bmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvclNldHRlcjsg
aSsrKSB7CisgICAgICAgIGRpdi5sYW5nID0gImZvbyI7CisgICAgfQorfSwgMSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGlu
Z3MvZG9tX2F0dHJpYnV0ZV9vdXRlckhUTUxfZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3Rz
L0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfb3V0ZXJIVE1MX2dldHRlci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUzMmEzODNlOWE1NDM4MWEzNjNmM2YyZjEyY2ZmZmQ1YjA3MjM5ZjMKLS0tIC9kZXYvbnVsbAor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfb3V0ZXJIVE1MX2dl
dHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
UGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVz
Rm9yR2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2Lm91dGVySFRNTDsKKyAgICB9Cit9LCAxKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0
cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX291dGVyVGV4dF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1h
bmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9vdXRlclRleHRfZ2V0dGVyLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTUwNmQyNTYzOTkyYWY5YTMzOWVkMTIwOTZhNzE4NmI5NWFlZmMyOQotLS0gL2Rl
di9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9vdXRl
clRleHRfZ2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVw
ZWF0VGltZXNGb3JHZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYub3V0ZXJUZXh0OworICAgIH0K
K30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3Jt
YW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfc3BlbGxjaGVja19nZXR0ZXIuaHRtbCBi
L1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9zcGVsbGNoZWNrX2dldHRl
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZlY2UzMmM1YmFlZGIyODYyODI0YWQ1YWVmNzBiODFjMDY5MTEy
YmEKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRy
aWJ1dGVfc3BlbGxjaGVja19nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2
YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5zcGVsbGNo
ZWNrOworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfc3BlbGxjaGVja19z
ZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9zcGVs
bGNoZWNrX3NldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxYjNjOTNhNzI5OGZkYjEzYzk0YzE4NjNl
YmJkNzFhOWUzN2QwZTEKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRp
bmdzL2RvbV9hdHRyaWJ1dGVfc3BlbGxjaGVja19zZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5u
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19j
b21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlv
bigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvclNldHRlcjsgaSsrKSB7CisgICAgICAg
IGRpdi5zcGVsbGNoZWNrID0gImZvbyI7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0
dHJpYnV0ZV90YWJJbmRleF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3Mv
ZG9tX2F0dHJpYnV0ZV90YWJJbmRleF9nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZWQxNjRmMTVj
Y2EyYTQ3OTRjZWYyOThmNTAwY2ViZDQ3ZWViOTI2Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9y
bWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3RhYkluZGV4X2dldHRlci5odG1sCkBA
IC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Rv
bV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5u
ZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBp
KyspIHsKKyAgICAgICAgZGl2LnRhYkluZGV4OworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2Rv
bV9hdHRyaWJ1dGVfdGFiSW5kZXhfc2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRp
bmdzL2RvbV9hdHRyaWJ1dGVfdGFiSW5kZXhfc2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA3MTkw
NzNhZGQ2Yjg5MmM2OTQ0MTAxMmFkNDczMThmOTA1MDM4MwotLS0gL2Rldi9udWxsCisrKyBiL1Bl
cmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV90YWJJbmRleF9zZXR0ZXIuaHRt
bApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0
UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvclNldHRl
cjsgaSsrKSB7CisgICAgICAgIGRpdi50YWJJbmRleCA9ICJmb28iOworICAgIH0KK30sIDEpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfdGl0bGVfZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRl
c3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfdGl0bGVfZ2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjkwMTY0ZjliM2JmYTQxZGI2MWQ1MTdhNGE4MmExNWZkZTljNmJjYwotLS0gL2Rldi9udWxsCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV90aXRsZV9nZXR0ZXIu
aHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZU
ZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0Zvckdl
dHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi50aXRsZTsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5n
cy9kb21fYXR0cmlidXRlX3RpdGxlX3NldHRlci5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5k
aW5ncy9kb21fYXR0cmlidXRlX3RpdGxlX3NldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5Yjc5MTRh
YWEyYzNkNWI0YmY4NmRmY2U4NmYzZmI2N2U5NGI4MTMKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfdGl0bGVfc2V0dGVyLmh0bWwKQEAg
LTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9t
X2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5l
ci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JTZXR0ZXI7IGkr
KykgeworICAgICAgICBkaXYudGl0bGUgPSAiZm9vIjsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5n
cy9kb21fYXR0cmlidXRlX3dlYmtpdGRyb3B6b25lX2dldHRlci5odG1sIGIvUGVyZm9ybWFuY2VU
ZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3dlYmtpdGRyb3B6b25lX2dldHRlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYxODllOWI2NGYzOWNmNTZhY2I2NTFmYWE1Njg5ZmE3YjYwOWQzNGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfd2Vi
a2l0ZHJvcHpvbmVfZ2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRp
diA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcmVwZWF0VGltZXNGb3JHZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYud2Via2l0ZHJvcHpv
bmU7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV93ZWJraXRkcm9wem9u
ZV9zZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV93
ZWJraXRkcm9wem9uZV9zZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Y2I5MjY1NDFlNjg2ZDM3YWEx
YmE4N2UxOWEyNjYyOTM1MmVkMWFiCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3dlYmtpdGRyb3B6b25lX3NldHRlci5odG1sCkBAIC0w
LDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9h
dHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIu
cnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yU2V0dGVyOyBpKysp
IHsKKyAgICAgICAgZGl2LndlYmtpdGRyb3B6b25lID0gImZvbyI7CisgICAgfQorfSwgMSk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMv
Q2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDI3ZDdjYTIxNTIw
MDI4YTQ0MTEzNTYxZWQzNWFhMjVjYjVmMzg1YS4uNGEwMGJlYTM5YzA3MTA2ODk3MmNlZDdlOWY4
NjJiNzFmNGUzYjY0NyAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSw3NyBAQAogMjAxMi0wMi0y
MiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgQWRkIHBl
cmZvcm1hbmNlIHRlc3RzIGZvciB0aGUgZ2V0dGVycy9zZXR0ZXJzIG9mIEhUTUxFbGVtZW50IGF0
dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc5MjI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBhZGRzIHBlcmZvcm1hbmNlIHRlc3RzIGZvciBnZXR0ZXJzL3NldHRlcnMgb2Yg
SFRNTEVsZW1lbnQgYXR0cmlidXRlcy4KKworICAgICAgICBUaGUgcmVzdWx0cyBvZiB0aGVzZSB0
ZXN0cyBpbiBteSBsb2NhbCBDaHJvbWl1bS9MaW51eCBtYWNoaW5lIGlzIGFzIGZvbGxvd3M6CisK
KyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX2FjY2Vzc0tleV9nZXR0ZXIuaHRtbDog
QWRkZWQuCisgICAgICAgIG1lZGlhbj0gODguMCBtcywgc3RkZXY9IDEuNTMyMTU1MzQ0NiBtcywg
bWluPSA4NS4wIG1zLCBtYXg9IDkxLjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmli
dXRlX2FjY2Vzc0tleV9zZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gMTI0LjAg
bXMsIHN0ZGV2PSAxLjQzMTc4MjEwNjMzIG1zLCBtaW49IDEyMC4wIG1zLCBtYXg9IDEyNS4wIG1z
CisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9jaGlsZHJlbl9nZXR0ZXIuaHRtbDog
QWRkZWQuCisgICAgICAgIG1lZGlhbj0gMTU1LjAgbXMsIHN0ZGV2PSAxLjM1OTIyNzcyMTkxIG1z
LCBtaW49IDE1Mi4wIG1zLCBtYXg9IDE1OC4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0
dHJpYnV0ZV9jbGFzc0xpc3RfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDI0
OTIuMCBtcywgc3RkZXY9IDMuNDk2Nzg0MjM2OTggbXMsIG1pbj0gMjQ4Ny4wIG1zLCBtYXg9IDI1
MDMuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY2xhc3NOYW1lX2dldHRl
ci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSA4Ny41IG1zLCBzdGRldj0gMS4zMjY2NDk5
MTYxNCBtcywgbWluPSA4NS4wIG1zLCBtYXg9IDg5LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9k
b21fYXR0cmlidXRlX2NsYXNzTmFtZV9zZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlh
bj0gMTMzLjAgbXMsIHN0ZGV2PSAxLjE0NDU1MjMxNDIzIG1zLCBtaW49IDEzMC4wIG1zLCBtYXg9
IDEzNC4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9jb250ZW50RWRpdGFi
bGVfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDQ2MS41IG1zLCBzdGRldj0g
My41NzU5NjE0MDkxOSBtcywgbWluPSA0NTcuMCBtcywgbWF4PSA0NzAuMCBtcworICAgICAgICAq
IEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfZGlyX2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAg
bWVkaWFuPSA4Ni4wIG1zLCBzdGRldj0gMS4zNzM4NjMxNjY0IG1zLCBtaW49IDg0LjAgbXMsIG1h
eD0gODkuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfZGlyX3NldHRlci5o
dG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSAxMDcuMCBtcywgc3RkZXY9IDIuMDcwNjI3OTI0
MDggbXMsIG1pbj0gMTA1LjAgbXMsIG1heD0gMTE0LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9k
b21fYXR0cmlidXRlX2RyYWdnYWJsZV9nZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlh
bj0gMTEwLjUgbXMsIHN0ZGV2PSA1LjYwNjAyMzU0NjE1IG1zLCBtaW49IDEwMC4wIG1zLCBtYXg9
IDk5LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX2RyYWdnYWJsZV9zZXR0
ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gMTYzLjAgbXMsIHN0ZGV2PSAxLjk4Njgz
MTY0ODYzIG1zLCBtaW49IDE1OS4wIG1zLCBtYXg9IDE2Ny4wIG1zCisgICAgICAgICogQmluZGlu
Z3MvZG9tX2F0dHJpYnV0ZV9oaWRkZW5fZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRp
YW49IDk0LjAgbXMsIHN0ZGV2PSA0LjM4NzE5NzI4MyBtcywgbWluPSA4NC4wIG1zLCBtYXg9IDk4
LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX2hpZGRlbl9zZXR0ZXIuaHRt
bDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gMTI1LjAgbXMsIHN0ZGV2PSAxLjUxMjQ0ODM0NjIz
IG1zLCBtaW49IDEyMi4wIG1zLCBtYXg9IDEyNy4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9t
X2F0dHJpYnV0ZV9pbm5lckhUTUxfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49
IDM1OC4wIG1zLCBzdGRldj0gMi4wNDYzMzgxOTI5NyBtcywgbWluPSAzNTYuMCBtcywgbWF4PSAz
NjMuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfaW5uZXJIVE1MX3NldHRl
ci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSAyMzQ0LjAgbXMsIHN0ZGV2PSA1Mi40ODIz
Nzc5OTQ5IG1zLCBtaW49IDIyNjYuMCBtcywgbWF4PSAyNDY0LjAgbXMKKyAgICAgICAgKiBCaW5k
aW5ncy9kb21fYXR0cmlidXRlX2lubmVyVGV4dF9nZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAg
IG1lZGlhbj0gMjkxLjUgbXMsIHN0ZGV2PSAzLjM0NjY0MDEwNjE0IG1zLCBtaW49IDI4OC4wIG1z
LCBtYXg9IDMwMy4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9pbm5lclRl
eHRfc2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDg5LjAgbXMsIHN0ZGV2PSAy
LjEwODkwOTY3MDkgbXMsIG1pbj0gODYuMCBtcywgbWF4PSA5NC4wIG1zCisgICAgICAgICogQmlu
ZGluZ3MvZG9tX2F0dHJpYnV0ZV9pc0NvbnRlbnRFZGl0YWJsZV9nZXR0ZXIuaHRtbDogQWRkZWQu
CisgICAgICAgIG1lZGlhbj0gMTUwLjAgbXMsIHN0ZGV2PSAzLjI5MzU1NDMxMTA3IG1zLCBtaW49
IDE0My4wIG1zLCBtYXg9IDE1My4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9sYW5nX2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSA4Ny41IG1zLCBzdGRl
dj0gMS41NTgwNDM2NDUwOSBtcywgbWluPSA4NS4wIG1zLCBtYXg9IDg5LjAgbXMKKyAgICAgICAg
KiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX2xhbmdfc2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAg
ICBtZWRpYW49IDEyMC4wIG1zLCBzdGRldj0gMS42NDYyMDc3NjMzMiBtcywgbWluPSAxMTguMCBt
cywgbWF4PSAxMjMuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfb3V0ZXJI
VE1MX2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSAxOTk5LjAgbXMsIHN0ZGV2
PSAxNy4yMTc0MzMwMjU5IG1zLCBtaW49IDE5NzQuMCBtcywgbWF4PSAyMDM0LjAgbXMKKyAgICAg
ICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX291dGVyVGV4dF9nZXR0ZXIuaHRtbDogQWRkZWQu
CisgICAgICAgIG1lZGlhbj0gMjg4LjAgbXMsIHN0ZGV2PSAyLjM0MjU0MTM1NTAyIG1zLCBtaW49
IDI4My4wIG1zLCBtYXg9IDI5NC4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9zcGVsbGNoZWNrX2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgbWVkaWFuPSAxMDYuMCBt
cywgc3RkZXY9IDEuNDg2NjA2ODc0NzMgbXMsIG1pbj0gMTA0LjAgbXMsIG1heD0gMTA5LjAgbXMK
KyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX3NwZWxsY2hlY2tfc2V0dGVyLmh0bWw6
IEFkZGVkLgorICAgICAgICBtZWRpYW49IDE2NC4wIG1zLCBzdGRldj0gMS40OTkxNjY0MzUwNiBt
cywgbWluPSAxNjAuMCBtcywgbWF4PSAxNjUuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9h
dHRyaWJ1dGVfdGFiSW5kZXhfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDEw
NS4wIG1zLCBzdGRldj0gMS44ODM0ODA4MjAxOCBtcywgbWluPSAxMDMuMCBtcywgbWF4PSAxMTEu
MCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfdGFiSW5kZXhfc2V0dGVyLmh0
bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDcwMC4wIG1zLCBzdGRldj0gMi4xMjM2NzYwNTgx
NiBtcywgbWluPSA2OTcuMCBtcywgbWF4PSA3MDUuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2Rv
bV9hdHRyaWJ1dGVfdGl0bGVfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDg2
LjAgbXMsIHN0ZGV2PSAxLjQ2Mjg3Mzg4MzgzIG1zLCBtaW49IDg0LjAgbXMsIG1heD0gODkuMCBt
cworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfdGl0bGVfc2V0dGVyLmh0bWw6IEFk
ZGVkLgorICAgICAgICBtZWRpYW49IDEyOS4wIG1zLCBzdGRldj0gMS40MzE3ODIxMDYzMyBtcywg
bWluPSAxMjYuMCBtcywgbWF4PSAxMzAuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRy
aWJ1dGVfd2Via2l0ZHJvcHpvbmVfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49
IDk2LjAgbXMsIHN0ZGV2PSAxLjUzMjE1NTM0NDYgbXMsIG1pbj0gOTQuMCBtcywgbWF4PSA5OS4w
IG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV93ZWJraXRkcm9wem9uZV9zZXR0
ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gMTIyLjAgbXMsIHN0ZGV2PSAxLjQ0NDgx
ODMyNzY4IG1zLCBtaW49IDExOS4wIG1zLCBtYXg9IDEyNC4wIG1zCisKKzIwMTItMDItMjIgIEtl
bnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIEFkZCBwZXJmb3Jt
YW5jZSB0ZXN0cyBmb3IgdGhlIEVsZW1lbnQuaWQgZ2V0dGVyIGFuZCBzZXR0ZXIKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MjA5CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>