<?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>79235</bug_id>
          
          <creation_ts>2012-02-22 06:15:53 -0800</creation_ts>
          <short_desc>Add performance tests for the getters/setters of Node attributes</short_desc>
          <delta_ts>2012-02-23 01:19:11 -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>morrita</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>561920</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-22 06:15:53 -0800</bug_when>
    <thetext>We can add micro-benchmark performance tests for the getters/setters of Node attributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561927</commentid>
    <comment_count>1</comment_count>
      <attachid>128201</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-22 06:21:18 -0800</bug_when>
    <thetext>Created attachment 128201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562595</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-22 17:13:33 -0800</bug_when>
    <thetext>I&apos;m a bit worry about to have these too-micro-benchmarks 
because they could prevent code enhancement in unreasonable way - 
degrading the speed of non-hot attribute accesses.

How about to make these tests into single test and
provide individual score in FYI manner intead?
For example, we could make them visible when you run it on the browsers or DRT
but make the perfbot use only its accumulated value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562599</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-22 17:16:20 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; I&apos;m a bit worry about to have these too-micro-benchmarks 
&gt; because they could prevent code enhancement in unreasonable way - 
&gt; degrading the speed of non-hot attribute accesses.

I have the same concern as well.

&gt; How about to make these tests into single test and
&gt; provide individual score in FYI manner intead?
&gt; For example, we could make them visible when you run it on the browsers or DRT
&gt; but make the perfbot use only its accumulated value.

That sounds reasonable. Presumably, we just need a new regex to the list of lines to ignore in performance_tests.py.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562623</commentid>
    <comment_count>4</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-22 17:36:39 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; How about to make these tests into single test and
&gt; &gt; provide individual score in FYI manner intead?
&gt; &gt; For example, we could make them visible when you run it on the browsers or DRT
&gt; &gt; but make the perfbot use only its accumulated value.
&gt; 
&gt; That sounds reasonable. Presumably, we just need a new regex to the list of lines to ignore in performance_tests.py.

Sounds good. I&apos;ll take the approach.

&gt; &gt; I&apos;m a bit worry about to have these too-micro-benchmarks 
&gt; &gt; because they could prevent code enhancement in unreasonable way - 
&gt; &gt; degrading the speed of non-hot attribute accesses.

Personally I do not think so, (as I mentioned in https://bugs.webkit.org/show_bug.cgi?id=79228#c9m). Micro benchmarks would be useful as long as they are intended to test hot call-paths and they are providing &quot;reliable&quot; results. As far as I see the current DOM getter/setter performance, it seems that we have &quot;enhanced&quot; code without knowing whether it changes a hot call-path or a non-hot call-path. This is never a code enhancement. Having micro benchmarks detect performance degradation would avoid that. After we learned the detected performance degradation is not a hot call-path, we can just ignore it or remove the test.

That being said, I am not sure how much these micro benchmarks would work well as I expected. So for now I am happy to add it as &quot;FYI&quot; as morrita@ suggested.


rniwa: Would you tell me what kind of output would be helpful for the bot?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562637</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-22 17:47:23 -0800</bug_when>
    <thetext>&gt; Personally I do not think so, (as I mentioned in https://bugs.webkit.org/show_bug.cgi?id=79228#c9m). Micro benchmarks would be useful as long as they are intended to test hot call-paths and they are providing &quot;reliable&quot; results.

Not necessarily. Since adding new perf. tests will increase cycle time, it&apos;ll widen the regression window when we have a regression. And detecting performance regressions that don&apos;t affect user experience isn&apos;t useful.

&gt;As far as I see the current DOM getter/setter performance, it seems that we have &quot;enhanced&quot; code without knowing whether it changes a hot call-path or a non-hot call-path. This is never a code enhancement. Having micro benchmarks detect performance degradation would avoid that. After we learned the detected performance degradation is not a hot call-path, we can just ignore it or remove the test.

I do agree that having a perf. test is good but we need to be careful not to overwhelm ourselves with data. e.g. slowing down the setter for Document.title by 100% might be okay because people rarely reset title. On the other hand, slowing down Element.style by even 5% will have quite disastrous consequences.

&gt; rniwa: Would you tell me what kind of output would be helpful for the bot?

The bot doesn&apos;t really care what&apos;s in stdout. All you need to do is to modify _process_parser_test_result in perftestsrunner.py to ignore those &quot;FYI&quot; lines. We should probably add some generic method on PerfTestRunner (runner.js) that outputs information in certain format.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128201</attachid>
            <date>2012-02-22 06:21:18 -0800</date>
            <delta_ts>2012-02-22 07:27:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79235-20120222232117.patch</filename>
            <type>text/plain</type>
            <size>17685</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NDg1CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfYXR0cmlidXRlc19nZXR0ZXIuaHRtbCBiL1BlcmZvcm1h
bmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9hdHRyaWJ1dGVzX2dldHRlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg4NTdmYzQ5ZWU2MDIxNDY0OGFhMzc1MzJhNGY0OWY3N2Q1ODcyYmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfYXR0
cmlidXRlc19nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBy
ZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5hdHRyaWJ1dGVzOworICAg
IH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJm
b3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfYmFzZVVSSV9nZXR0ZXIuaHRtbCBi
L1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9iYXNlVVJJX2dldHRlci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJkY2UxZjllODYwOTU5N2IxYWRjYzFiM2EzMTc0NmEyZDVkYTNlMTYK
LS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1
dGVfYmFzZVVSSV9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5iYXNlVVJJOworICAg
IH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJm
b3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfY2hpbGROb2Rlc19nZXR0ZXIuaHRt
bCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9jaGlsZE5vZGVzX2dl
dHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5M2FiY2UwNzllMDA1ODIxMWU1MWMyOTUwMzJhYjZlMjE1
ODg1YTUKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9h
dHRyaWJ1dGVfY2hpbGROb2Rlc19nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAg
ICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5jaGls
ZE5vZGVzOworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfZmlyc3RDaGls
ZF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9m
aXJzdENoaWxkX2dldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmNTQyMzkzMDE5M2EzOGM4MjFmYTRi
ZjVjYTkwMmQyOWI5MmY4ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0Jp
bmRpbmdzL2RvbV9hdHRyaWJ1dGVfZmlyc3RDaGlsZF9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9y
dW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRl
c19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5j
dGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAg
ICAgIGRpdi5maXJzdENoaWxkOworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1
dGVfbGFzdENoaWxkX2dldHRlci5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21f
YXR0cmlidXRlX2xhc3RDaGlsZF9nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjQzNjdiODU4OWFk
MTYwYjU1ZWI1MDg5YzJjMDIzN2Y5ZjZkMTYzCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFu
Y2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX2xhc3RDaGlsZF9nZXR0ZXIuaHRtbApAQCAt
MCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21f
YXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVy
LnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsr
KSB7CisgICAgICAgIGRpdi5sYXN0Q2hpbGQ7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9t
X2F0dHJpYnV0ZV9sb2NhbE5hbWVfZ2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRp
bmdzL2RvbV9hdHRyaWJ1dGVfbG9jYWxOYW1lX2dldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5OTVm
YmRkMzM1ZjI5MzRlNWEyZWExOTliNjc5ZDk3MzAyZTNmMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbG9jYWxOYW1lX2dldHRlci5o
dG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRl
c3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0
dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LmxvY2FsTmFtZTsKKyAgICB9Cit9LCAxKTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5k
aW5ncy9kb21fYXR0cmlidXRlX25hbWVzcGFjZVVSSV9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNl
VGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9uYW1lc3BhY2VVUklfZ2V0dGVyLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjk0MjlmMDA4NmViNGM1YWJiMTVmNTc0ODcwYzAyNmM3MTFjNWE4NAotLS0gL2Rl
di9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9uYW1l
c3BhY2VVUklfZ2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVwZWF0VGltZXNGb3JHZXR0ZXI7IGkrKykgeworICAgICAgICBkaXYubmFtZXNwYWNlVVJJOwor
ICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Q
ZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbmV4dFNpYmxpbmdfZ2V0dGVy
Lmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbmV4dFNpYmxp
bmdfZ2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M4YzBkY2I1YzNmYjU4N2FjY2U5NDdlNTVjYzBh
YTUzMjVkYjY3NwotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3Mv
ZG9tX2F0dHJpYnV0ZV9uZXh0U2libGluZ19nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21t
b24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigp
IHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRp
di5uZXh0U2libGluZzsKKyAgICB9Cit9LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX25v
ZGVOYW1lX2dldHRlci5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmli
dXRlX25vZGVOYW1lX2dldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkM2VmOTBiOWUyMDU5YzNhMmJm
ZWM2YzI4MTkxMTZlZmYyMzBmZGEKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbm9kZU5hbWVfZ2V0dGVyLmh0bWwKQEAgLTAsMCArMSwx
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
cnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9tX2F0dHJpYnV0
ZXNfY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5ydW4oZnVu
Y3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwZWF0VGltZXNGb3JHZXR0ZXI7IGkrKykgeworICAg
ICAgICBkaXYubm9kZU5hbWU7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0
ZV9ub2RlVHlwZV9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0
dHJpYnV0ZV9ub2RlVHlwZV9nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDIyNzQ3ZmEwOWI2NmMw
NjNiMmI0ZTBiNmQ1Nzg0ZTdlOWU1ZDU4Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX25vZGVUeXBlX2dldHRlci5odG1sCkBAIC0wLDAg
KzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbV9hdHRy
aWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVyZlRlc3RSdW5uZXIucnVu
KGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9yR2V0dGVyOyBpKyspIHsK
KyAgICAgICAgZGl2Lm5vZGVUeXBlOworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRy
aWJ1dGVfbm9kZVZhbHVlX2dldHRlci5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9k
b21fYXR0cmlidXRlX25vZGVWYWx1ZV9nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZGRhMmM2MzY0
YzA0ZGQyMTg0ZTI1Y2RhYzdhNzk4MzRmOWM1NDgxCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9y
bWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX25vZGVWYWx1ZV9nZXR0ZXIuaHRtbApA
QCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9k
b21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVu
bmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsg
aSsrKSB7CisgICAgICAgIGRpdi5ub2RlVmFsdWU7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3Mv
ZG9tX2F0dHJpYnV0ZV9ub2RlVmFsdWVfc2V0dGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0Jp
bmRpbmdzL2RvbV9hdHRyaWJ1dGVfbm9kZVZhbHVlX3NldHRlci5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1
MmM5NDA3MjA2OGY0ZjE1YjQzMzJjNzJjYjUyN2U3OTVjN2FjOTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbm9kZVZhbHVlX3NldHRl
ci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVy
ZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9y
U2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2Lm5vZGVWYWx1ZSA9ICJmb28iOworICAgIH0KK30s
IDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5j
ZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfb3duZXJEb2N1bWVudF9nZXR0ZXIuaHRtbCBi
L1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9vd25lckRvY3VtZW50X2dl
dHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0NmU0MDI2ZmNhNGY3ZjI4NzIwNzdjMjUyZjA0OTNhYTNl
Mjk3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9h
dHRyaWJ1dGVfb3duZXJEb2N1bWVudF9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24u
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsK
KyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5v
d25lckRvY3VtZW50OworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfcGFy
ZW50RWxlbWVudF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0
dHJpYnV0ZV9wYXJlbnRFbGVtZW50X2dldHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5NTNiYzA1MGJm
ZTMzYzlhMTU1MjM1MDJlNjhjYTZjOGQzODc1NjIKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3Jt
YW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfcGFyZW50RWxlbWVudF9nZXR0ZXIuaHRt
bApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0
UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRl
cjsgaSsrKSB7CisgICAgICAgIGRpdi5wYXJlbnRFbGVtZW50OworICAgIH0KK30sIDEpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0Jp
bmRpbmdzL2RvbV9hdHRyaWJ1dGVfcGFyZW50Tm9kZV9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNl
VGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9wYXJlbnROb2RlX2dldHRlci5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA3OWFiMWQzMmI4MzgwYTU5YzQ1OTQ0ZWU2MzJkMjljMWUwMWQxYTgKLS0tIC9kZXYv
bnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfcGFyZW50
Tm9kZV9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBl
YXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5wYXJlbnROb2RlOworICAgIH0K
K30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3Jt
YW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfcHJlZml4X2dldHRlci5odG1sIGIvUGVy
Zm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3ByZWZpeF9nZXR0ZXIuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lMWJlNjAyY2UzMjhjODI4MTU5YzU0MzNmNDY2Y2ZlNWRkZDAzNTNiCi0tLSAv
ZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3By
ZWZpeF9nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBl
YXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi5wcmVmaXg7CisgICAgfQorfSwg
MSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNl
VGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9wcmVmaXhfc2V0dGVyLmh0bWwgYi9QZXJmb3Jt
YW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfcHJlZml4X3NldHRlci5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU2MTNiMDBkNWE5ZGJhODI0OTRhZTEyNDJkMGFkMWNmMTU1YjZmYTMKLS0tIC9kZXYv
bnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfcHJlZml4
X3NldHRlci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRp
bWVzRm9yU2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LnByZWZpeCA9ICJmb28iOworICAgIH0K
K30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3Jt
YW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfcHJldmlvdXNTaWJsaW5nX2dldHRlci5o
dG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3ByZXZpb3VzU2li
bGluZ19nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzhmMWEwNzhjMDU0MGJmYWMwMTEwZWFmM2Yy
NzEyZmNiMmEwZDQzCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5n
cy9kb21fYXR0cmlidXRlX3ByZXZpb3VzU2libGluZ19nZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9y
dW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRl
c19jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5j
dGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBlYXRUaW1lc0ZvckdldHRlcjsgaSsrKSB7CisgICAg
ICAgIGRpdi5wcmV2aW91c1NpYmxpbmc7CisgICAgfQorfSwgMSk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0
dHJpYnV0ZV90ZXh0Q29udGVudF9nZXR0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGlu
Z3MvZG9tX2F0dHJpYnV0ZV90ZXh0Q29udGVudF9nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDhm
YTU1M2VjN2QyZjZiNWI0ZDliNDUzNzhhNzVhMTc0MzdmNTQzCi0tLSAvZGV2L251bGwKKysrIGIv
UGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy9kb21fYXR0cmlidXRlX3RleHRDb250ZW50X2dldHRl
ci5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2RvbV9hdHRyaWJ1dGVzX2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorUGVy
ZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdFRpbWVzRm9y
R2V0dGVyOyBpKyspIHsKKyAgICAgICAgZGl2LnRleHRDb250ZW50OworICAgIH0KK30sIDEpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfdGV4dENvbnRlbnRfc2V0dGVyLmh0bWwgYi9QZXJmb3Jt
YW5jZVRlc3RzL0JpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfdGV4dENvbnRlbnRfc2V0dGVyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmYyZGUwYzk3MjE1NjhhZjBlMjFkY2VmNjAwZWYzZDNmOWRkNzg4NQotLS0g
L2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV90
ZXh0Q29udGVudF9zZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9kb21fYXR0cmlidXRlc19jb21tb24uanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZXBlYXRUaW1lc0ZvclNldHRlcjsgaSsrKSB7CisgICAgICAgIGRpdi50ZXh0Q29udGVudCA9
ICJmb28iOworICAgIH0KK30sIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDAyN2Q3Y2EyMTUyMDAyOGE0NDExMzU2MWVkMzVhYTI1Y2I1ZjM4NWEuLmMz
MTNiNzAxM2I5MjZiZTJkMjdjOTkzNDQ1NjgwZDM5MWMzODBiMjIgMTAwNjQ0Ci0tLSBhL1BlcmZv
cm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsNTggQEAKIDIwMTItMDItMjIgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21p
dW0ub3JnPgogCisgICAgICAgIEFkZCBwZXJmb3JtYW5jZSB0ZXN0cyBmb3IgdGhlIGdldHRlcnMv
c2V0dGVycyBvZiBOb2RlIGF0dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc5MjM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIG1pY3JvLWJlbmNobWFyayBwZXJmb3Jt
YW5jZSB0ZXN0cyBmb3IgdGhlIGdldHRlcnMvc2V0dGVycworICAgICAgICBvZiBOb2RlIGF0dHJp
YnV0ZXMuCisKKyAgICAgICAgVGhlIHJlc3VsdHMgb2YgdGhlc2UgdGVzdHMgaW4gbXkgbG9jYWwg
Q2hyb21pdW0vTGludXggYXJlIGFzIGZvbGxvd3M6CisKKyAgICAgICAgKiBCaW5kaW5ncy9kb21f
YXR0cmlidXRlX2F0dHJpYnV0ZXNfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49
IDI2MDEuNSBtcywgc3RkZXY9IDYuMDg3NjkyNTAyMDkgbXMsIG1pbj0gMjU5Ny4wIG1zLCBtYXg9
IDI2MTkuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfYmFzZVVSSV9nZXR0
ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gOTI0LjUgbXMsIHN0ZGV2PSAxNS41NTI4
MTMyNTAzIG1zLCBtaW49IDkxNS4wIG1zLCBtYXg9IDk5Mi4wIG1zCisgICAgICAgICogQmluZGlu
Z3MvZG9tX2F0dHJpYnV0ZV9jaGlsZE5vZGVzX2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAg
bWVkaWFuPSAxNDUuMCBtcywgc3RkZXY9IDEuMzAzODQwNDgxMDQgbXMsIG1pbj0gMTQzLjAgbXMs
IG1heD0gMTQ4LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX2ZpcnN0Q2hp
bGRfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDcxLjUgbXMsIHN0ZGV2PSAx
LjYyNzg4MjA1OTYxIG1zLCBtaW49IDY5LjAgbXMsIG1heD0gNzQuMCBtcworICAgICAgICAqIEJp
bmRpbmdzL2RvbV9hdHRyaWJ1dGVfbGFzdENoaWxkX2dldHRlci5odG1sOiBBZGRlZC4KKyAgICAg
ICAgbWVkaWFuPSA3NS4wIG1zLCBzdGRldj0gMS43NTcxMjgzMzkwOCBtcywgbWluPSA3MS4wIG1z
LCBtYXg9IDc3LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX2xvY2FsTmFt
ZV9nZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gODAuNSBtcywgc3RkZXY9IDEu
NDY5NjkzODQ1NjcgbXMsIG1pbj0gNzcuMCBtcywgbWF4PSA4Mi4wIG1zCisgICAgICAgICogQmlu
ZGluZ3MvZG9tX2F0dHJpYnV0ZV9uYW1lc3BhY2VVUklfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAg
ICAgICBtZWRpYW49IDkyLjAgbXMsIHN0ZGV2PSAyLjY3MzQ4MDg3NzA2IG1zLCBtaW49IDg1LjAg
bXMsIG1heD0gOTguMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbmV4dFNp
YmxpbmdfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDY4LjAgbXMsIHN0ZGV2
PSAxLjQyODI4NTY4NTcxIG1zLCBtaW49IDY3LjAgbXMsIG1heD0gNzEuMCBtcworICAgICAgICAq
IEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbm9kZU5hbWVfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAg
ICAgICBtZWRpYW49IDEwOS4wIG1zLCBzdGRldj0gMi42NzM5NDgzOTE0MiBtcywgbWluPSAxMDQu
MCBtcywgbWF4PSAxMTIuMCBtcworICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbm9k
ZVR5cGVfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDc0LjAgbXMsIHN0ZGV2
PSAyLjAzNzE1NDg3ODc1IG1zLCBtaW49IDcxLjAgbXMsIG1heD0gODAuMCBtcworICAgICAgICAq
IEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfbm9kZVZhbHVlX2dldHRlci5odG1sOiBBZGRlZC4KKyAg
ICAgICAgbWVkaWFuPSA4OS4wIG1zLCBzdGRldj0gMS40NjI4NzM4ODM4MyBtcywgbWluPSA4Ny4w
IG1zLCBtYXg9IDkxLjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRlX25vZGVW
YWx1ZV9zZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0gNDguNSBtcywgc3RkZXY9
IDIuMzk3Mzk0NDE4OTUgbXMsIG1pbj0gNDUuMCBtcywgbWF4PSA1Ni4wIG1zCisgICAgICAgICog
QmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9vd25lckRvY3VtZW50X2dldHRlci5odG1sOiBBZGRlZC4K
KyAgICAgICAgbWVkaWFuPSAyMDQuNSBtcywgc3RkZXY9IDEuMzYwMTQ3MDUwODcgbXMsIG1pbj0g
MjAyLjAgbXMsIG1heD0gMjA3LjAgbXMKKyAgICAgICAgKiBCaW5kaW5ncy9kb21fYXR0cmlidXRl
X3BhcmVudEVsZW1lbnRfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDcyLjAg
bXMsIHN0ZGV2PSAxLjkyNjEzNjAyODQzIG1zLCBtaW49IDY5LjAgbXMsIG1heD0gNzcuMCBtcwor
ICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfcGFyZW50Tm9kZV9nZXR0ZXIuaHRtbDog
QWRkZWQuCisgICAgICAgIG1lZGlhbj0gNzIuMCBtcywgc3RkZXY9IDEuMTYwODE4Njc2NjIgbXMs
IG1pbj0gNzAuMCBtcywgbWF4PSA3My4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJp
YnV0ZV9wcmVmaXhfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDgwLjAgbXMs
IHN0ZGV2PSAxLjI4MzU0OTc2NTMgbXMsIG1pbj0gNzcuMCBtcywgbWF4PSA4MS4wIG1zCisgICAg
ICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9wcmVmaXhfc2V0dGVyLmh0bWw6IEFkZGVkLgor
ICAgICAgICBtZWRpYW49IDEwMi4wIG1zLCBzdGRldj0gMS45OTY4NzI1NTQ3NyBtcywgbWluPSAx
MDAuMCBtcywgbWF4PSA5OS4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0dHJpYnV0ZV9w
cmV2aW91c1NpYmxpbmdfZ2V0dGVyLmh0bWw6IEFkZGVkLgorICAgICAgICBtZWRpYW49IDc1LjAg
bXMsIHN0ZGV2PSAxLjA4OTcyNDczNTg5IG1zLCBtaW49IDcyLjAgbXMsIG1heD0gNzYuMCBtcwor
ICAgICAgICAqIEJpbmRpbmdzL2RvbV9hdHRyaWJ1dGVfdGV4dENvbnRlbnRfZ2V0dGVyLmh0bWw6
IEFkZGVkLgorICAgICAgICBtZWRpYW49IDIyNC4wIG1zLCBzdGRldj0gNC45NjM4Njk0NTg0IG1z
LCBtaW49IDIxMy4wIG1zLCBtYXg9IDIyNy4wIG1zCisgICAgICAgICogQmluZGluZ3MvZG9tX2F0
dHJpYnV0ZV90ZXh0Q29udGVudF9zZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgIG1lZGlhbj0g
MjgyLjAgbXMsIHN0ZGV2PSAyLjA3MDYyNzkyNDA4IG1zLCBtaW49IDI3OS4wIG1zLCBtYXg9IDI4
Ny4wIG1zCisKKzIwMTItMDItMjIgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3Jn
PgorCiAgICAgICAgIEFkZCBwZXJmb3JtYW5jZSB0ZXN0cyBmb3IgdGhlIEVsZW1lbnQuaWQgZ2V0
dGVyIGFuZCBzZXR0ZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc5MjA5CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>