<?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>198433</bug_id>
          
          <creation_ts>2019-05-31 13:53:15 -0700</creation_ts>
          <short_desc>[WHLSL] Zero-fill parameters to entry point functions or make any mismatch a compile error</short_desc>
          <delta_ts>2022-02-10 16:50:18 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=198440</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>dino</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jonlee</cc>
    
    <cc>justin_fan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1540824</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-05-31 13:53:15 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540869</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-05-31 15:47:06 -0700</bug_when>
    <thetext>Currently, it&apos;s a compile error if the JS attributes define fewer things than the WHLSL defined attributes. Maybe we&apos;re ok keeping it this way, then we wouldn&apos;t need to zero fill</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540870</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-05-31 15:47:27 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #1)
&gt; Currently, it&apos;s a compile error if the JS attributes define fewer things
&gt; than the WHLSL defined attributes. Maybe we&apos;re ok keeping it this way, then
&gt; we wouldn&apos;t need to zero fill

If we loosen this, though, we&apos;d need to zero fill.

Attaching a patch that does that zero filling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540871</commentid>
    <comment_count>3</comment_count>
      <attachid>371093</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-05-31 15:48:09 -0700</bug_when>
    <thetext>Created attachment 371093
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546198</commentid>
    <comment_count>4</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-19 12:54:03 -0700</bug_when>
    <thetext>We could also make this a compile error. Maybe that&apos;s nicer, but I don&apos;t think it&apos;s a P1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546202</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-19 12:54:39 -0700</bug_when>
    <thetext>*** Bug 195771 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546828</commentid>
    <comment_count>6</comment_count>
      <attachid>372620</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-06-21 00:24:11 -0700</bug_when>
    <thetext>Created attachment 372620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546879</commentid>
    <comment_count>7</comment_count>
      <attachid>372620</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-21 08:35:07 -0700</bug_when>
    <thetext>Comment on attachment 372620
Patch

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

&gt; LayoutTests/ChangeLog:8
&gt; +        Turns out this bug is already fixed, so this just adds some tests.

Which part is already fixed? Last time I checked we allow multiple parameters to be hooked up to the same attribute index.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546893</commentid>
    <comment_count>8</comment_count>
      <attachid>372620</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-06-21 09:37:32 -0700</bug_when>
    <thetext>Comment on attachment 372620
Patch

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

&gt;&gt; LayoutTests/ChangeLog:8
&gt;&gt; +        Turns out this bug is already fixed, so this just adds some tests.
&gt; 
&gt; Which part is already fixed? Last time I checked we allow multiple parameters to be hooked up to the same attribute index.

https://bugs.webkit.org/show_bug.cgi?id=198440 Is for duplicates. This is for attributes that exist in the shader text but aren’t hooked up to any API objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546933</commentid>
    <comment_count>9</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-21 11:39:05 -0700</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #8)
&gt; Comment on attachment 372620 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=372620&amp;action=review
&gt; 
&gt; &gt;&gt; LayoutTests/ChangeLog:8
&gt; &gt;&gt; +        Turns out this bug is already fixed, so this just adds some tests.
&gt; &gt; 
&gt; &gt; Which part is already fixed? Last time I checked we allow multiple parameters to be hooked up to the same attribute index.
&gt; 
&gt; https://bugs.webkit.org/show_bug.cgi?id=198440 Is for duplicates. This is
&gt; for attributes that exist in the shader text but aren’t hooked up to any API
&gt; objects.

Can you make the changelog more descriptive of what we&apos;re testing for here? I&apos;m still confused, because I thought we actually didn&apos;t allow code like this? I don&apos;t remember ever actually implementing zero filling here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546934</commentid>
    <comment_count>10</comment_count>
      <attachid>372620</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-21 11:39:52 -0700</bug_when>
    <thetext>Comment on attachment 372620
Patch

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

&gt; LayoutTests/webgpu/whlsl-extra-attribute.html:9
&gt; +vertex float4 vertexShader(float4 position : attribute(0), float i : attribute(1)) : SV_Position {

Don&apos;t you want to be checking that &quot;i&quot; is zero here since it&apos;s not hooked up?

&gt; LayoutTests/webgpu/whlsl-extra-resource.html:9
&gt; +vertex float4 vertexShader(float4 position : attribute(0), device float[] theBuffer : register(u0)) : SV_Position {

Don&apos;t you want to be checking that theBuffer is null here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550503</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-05 13:50:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/52699959&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649099</commentid>
    <comment_count>12</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-05-05 00:42:48 -0700</bug_when>
    <thetext>WHLSL is no longer relevant.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371093</attachid>
            <date>2019-05-31 15:48:09 -0700</date>
            <delta_ts>2019-06-21 00:24:09 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>1414</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNMRW50
cnlQb2ludFNjYWZmb2xkaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9NZXRhbC9XSExTTEVudHJ5UG9pbnRTY2FmZm9sZGluZy5jcHAJKHJl
dmlzaW9uIDI0NTk1MSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML01l
dGFsL1dITFNMRW50cnlQb2ludFNjYWZmb2xkaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ4
LDggKzI0OCwxNCBAQCBTdHJpbmcgRW50cnlQb2ludFNjYWZmb2xkaW5nOjptYW5nbGVkT3V0CiBT
dHJpbmcgRW50cnlQb2ludFNjYWZmb2xkaW5nOjp1bnBhY2tSZXNvdXJjZXNBbmROYW1lZEJ1aWx0
SW5zKCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7Ci0gICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBtX2Z1bmN0aW9uRGVmaW5pdGlvbi5wYXJhbWV0ZXJzKCkuc2l6ZSgpOyAr
K2kpCi0gICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKG1ha2VTdHJpbmcobV90eXBlTmFtZXIu
bWFuZ2xlZE5hbWVGb3JUeXBlKCptX2Z1bmN0aW9uRGVmaW5pdGlvbi5wYXJhbWV0ZXJzKClbaV0t
PnR5cGUoKSksICcgJywgbV9wYXJhbWV0ZXJWYXJpYWJsZXNbaV0sICI7XG4iKSk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBtX2Z1bmN0aW9uRGVmaW5pdGlvbi5wYXJhbWV0ZXJzKCkuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgYXV0byB0eXBlTmFtZSA9IG1fdHlwZU5hbWVyLm1hbmdsZWRO
YW1lRm9yVHlwZSgqbV9mdW5jdGlvbkRlZmluaXRpb24ucGFyYW1ldGVycygpW2ldLT50eXBlKCkp
OworICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChtYWtlU3RyaW5nKHR5cGVOYW1lLCAnICcs
IG1fcGFyYW1ldGVyVmFyaWFibGVzW2ldLCAiO1xuIikpOworICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZChtYWtlU3RyaW5nKCJmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZigiLCB0eXBl
TmFtZSwgIik7ICsraSkge1xuIikpOworICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChtYWtl
U3RyaW5nKCIgICAgc3RhdGljX2Nhc3Q8dGhyZWFkIGNoYXIqPihzdGF0aWNfY2FzdDx0aHJlYWQg
dm9pZCo+KCYiLCBtX3BhcmFtZXRlclZhcmlhYmxlc1tpXSwgIikpW2ldID0gMDtcbiIpKTsKKyAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoIn1cbiIpOworICAgIH0KIAogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9sYXlvdXQuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgYXV0byB2YXJp
YWJsZU5hbWUgPSBtX25hbWVkQmluZEdyb3Vwc1tpXS52YXJpYWJsZU5hbWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372620</attachid>
            <date>2019-06-21 00:24:11 -0700</date>
            <delta_ts>2022-02-10 16:50:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198433-20190621002410.patch</filename>
            <type>text/plain</type>
            <size>12442</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NjcwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWY5MTg2ZTNmYjYxYTdjN2M3MjEz
ZmU3ZTU2ODdmMWZkZDAwNTU0YS4uY2FkZTQ3MTRkNjU1ZTgwNTYxMDkyMGRiZjY4NmZmNDZlMzM1
YWM1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTA2LTIxICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dITFNMXSBaZXJvLWZpbGwgcGFy
YW1ldGVycyB0byBlbnRyeSBwb2ludCBmdW5jdGlvbnMgb3IgbWFrZSBhbnkgbWlzbWF0Y2ggYSBj
b21waWxlIGVycm9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTg0MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUdXJucyBvdXQgdGhpcyBidWcgaXMgYWxyZWFkeSBmaXhlZCwgc28gdGhpcyBqdXN0IGFk
ZHMgc29tZSB0ZXN0cy4KKworICAgICAgICAqIHdlYmdwdS93aGxzbC1leHRyYS1hdHRyaWJ1dGUt
ZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLWV4dHJhLWF0dHJp
YnV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtZXh0cmEtcmVzb3VyY2Ut
ZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLWV4dHJhLXJlc291
cmNlLmh0bWw6IEFkZGVkLgorCiAyMDE5LTA2LTIwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgaXQgcG9zc2libGUgdG8gaW5jbHVkZSBjbGlw
cGluZyBpbiBHcmFwaGljc0xheWVyIHRyZWUgZHVtcHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdwdS93aGxzbC1leHRyYS1hdHRyaWJ1dGUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdwdS93aGxzbC1leHRyYS1hdHRyaWJ1dGUtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
ZmRlM2FiZDc0N2Y2YTA0OTc0Mjc3MjRiNmExMGJmODhkNWRlZDA2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWV4dHJhLWF0dHJpYnV0ZS1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVh
ZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+
PC9jYW52YXM+Cis8c2NyaXB0PgorYXN5bmMgZnVuY3Rpb24gc3RhcnQoKSB7CisgICAgY29uc3Qg
Y2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICAgIGNvbnN0IGNv
bnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9
ICJibHVlIjsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIDQwMCwgNDAwKTsKK30KK3dpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3RhcnQpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtZXh0cmEtYXR0cmli
dXRlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtZXh0cmEtYXR0cmlidXRlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTE2NjE4ZGMzZmU0YWE4YzA0MzIzNDdiOGFmNjU1YmNiMTdkYTVkNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC1leHRyYS1hdHRyaWJ1dGUu
aHRtbApAQCAtMCwwICsxLDExMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI0MDAiIGhlaWdodD0i
NDAwIj48L2NhbnZhcz4KKzxzY3JpcHQ+Citjb25zdCBzaGFkZXJTb3VyY2UgPSBgCit2ZXJ0ZXgg
ZmxvYXQ0IHZlcnRleFNoYWRlcihmbG9hdDQgcG9zaXRpb24gOiBhdHRyaWJ1dGUoMCksIGZsb2F0
IGkgOiBhdHRyaWJ1dGUoMSkpIDogU1ZfUG9zaXRpb24geworICAgIHJldHVybiBwb3NpdGlvbjsK
K30KKworZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50U2hhZGVyKGZsb2F0NCBwb3NpdGlvbiA6IFNW
X1Bvc2l0aW9uKSA6IFNWX1RhcmdldCAwIHsKKyAgICByZXR1cm4gcG9zaXRpb247Cit9CitgOwor
YXN5bmMgZnVuY3Rpb24gc3RhcnQoKSB7CisgICAgY29uc3QgYWRhcHRlciA9IGF3YWl0IG5hdmln
YXRvci5ncHUucmVxdWVzdEFkYXB0ZXIoKTsKKyAgICBjb25zdCBkZXZpY2UgPSBhd2FpdCBhZGFw
dGVyLnJlcXVlc3REZXZpY2UoKTsKKworICAgIGNvbnN0IHNoYWRlck1vZHVsZSA9IGRldmljZS5j
cmVhdGVTaGFkZXJNb2R1bGUoe2NvZGU6IHNoYWRlclNvdXJjZSwgaXNXSExTTDogdHJ1ZX0pOwor
ICAgIGNvbnN0IHZlcnRleFN0YWdlID0ge21vZHVsZTogc2hhZGVyTW9kdWxlLCBlbnRyeVBvaW50
OiAidmVydGV4U2hhZGVyIn07CisgICAgY29uc3QgZnJhZ21lbnRTdGFnZSA9IHttb2R1bGU6IHNo
YWRlck1vZHVsZSwgZW50cnlQb2ludDogImZyYWdtZW50U2hhZGVyIn07CisgICAgY29uc3QgcHJp
bWl0aXZlVG9wb2xvZ3kgPSAidHJpYW5nbGUtc3RyaXAiOworICAgIGNvbnN0IHJhc3Rlcml6YXRp
b25TdGF0ZSA9IHtmcm9udEZhY2U6ICJjdyIsIGN1bGxNb2RlOiAibm9uZSJ9OworICAgIGNvbnN0
IGFscGhhQmxlbmQgPSB7fTsKKyAgICBjb25zdCBjb2xvckJsZW5kID0ge307CisgICAgY29uc3Qg
Y29sb3JTdGF0ZXMgPSBbe2Zvcm1hdDogInJnYmE4dW5vcm0iLCBhbHBoYUJsZW5kLCBjb2xvckJs
ZW5kLCB3cml0ZU1hc2s6IDE1fV07IC8vIEdQVUNvbG9yV3JpdGVCaXRzLkFMTAorICAgIGNvbnN0
IGRlcHRoU3RlbmNpbFN0YXRlID0gbnVsbDsKKyAgICAKKyAgICBjb25zdCBhdHRyaWJ1dGUgPSB7
c2hhZGVyTG9jYXRpb246IDAsIGZvcm1hdDogImZsb2F0NCJ9OworICAgIGNvbnN0IGlucHV0ID0g
e3N0cmlkZTogMTYsIGF0dHJpYnV0ZVNldDogW2F0dHJpYnV0ZV19OworICAgIGNvbnN0IGlucHV0
cyA9IFtpbnB1dF07CisgICAgY29uc3QgdmVydGV4SW5wdXQgPSB7dmVydGV4QnVmZmVyczogaW5w
dXRzfTsKKworICAgIGNvbnN0IGJpbmRHcm91cExheW91dERlc2NyaXB0b3IgPSB7YmluZGluZ3M6
IFt7YmluZGluZzogMCwgdmlzaWJpbGl0eTogNywgdHlwZTogInVuaWZvcm0tYnVmZmVyIn1dfTsK
KyAgICBjb25zdCBiaW5kR3JvdXBMYXlvdXQgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwTGF5b3V0
KGJpbmRHcm91cExheW91dERlc2NyaXB0b3IpOworICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0RGVz
Y3JpcHRvciA9IHtiaW5kR3JvdXBMYXlvdXRzOiBbYmluZEdyb3VwTGF5b3V0XX07CisgICAgY29u
c3QgcGlwZWxpbmVMYXlvdXQgPSBkZXZpY2UuY3JlYXRlUGlwZWxpbmVMYXlvdXQocGlwZWxpbmVM
YXlvdXREZXNjcmlwdG9yKTsKKworICAgIGNvbnN0IHJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciA9
IHt2ZXJ0ZXhTdGFnZSwgZnJhZ21lbnRTdGFnZSwgcHJpbWl0aXZlVG9wb2xvZ3ksIHJhc3Rlcml6
YXRpb25TdGF0ZSwgY29sb3JTdGF0ZXMsIGRlcHRoU3RlbmNpbFN0YXRlLCB2ZXJ0ZXhJbnB1dCwg
c2FtcGxlQ291bnQ6IDEsIGxheW91dDogcGlwZWxpbmVMYXlvdXR9OworICAgIGNvbnN0IHJlbmRl
clBpcGVsaW5lID0gZGV2aWNlLmNyZWF0ZVJlbmRlclBpcGVsaW5lKHJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvcik7CisKKyAgICBjb25zdCB2ZXJ0ZXhCdWZmZXIwRGVzY3JpcHRvciA9IHtzaXplOiBG
bG9hdDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiA0ICogNCwgdXNhZ2U6IEdQVUJ1ZmZlclVz
YWdlLlZFUlRFWCB8IEdQVUJ1ZmZlclVzYWdlLk1BUF9XUklURX07CisgICAgY29uc3QgdmVydGV4
QnVmZmVyMCA9IGRldmljZS5jcmVhdGVCdWZmZXIodmVydGV4QnVmZmVyMERlc2NyaXB0b3IpOwor
ICAgIGNvbnN0IHZlcnRleEJ1ZmZlcjBBcnJheUJ1ZmZlciA9IGF3YWl0IHZlcnRleEJ1ZmZlcjAu
bWFwV3JpdGVBc3luYygpOworICAgIGNvbnN0IHZlcnRleEJ1ZmZlcjBGbG9hdDMyQXJyYXkgPSBu
ZXcgRmxvYXQzMkFycmF5KHZlcnRleEJ1ZmZlcjBBcnJheUJ1ZmZlcik7CisgICAgdmVydGV4QnVm
ZmVyMEZsb2F0MzJBcnJheVswXSA9IC0wLjU7CisgICAgdmVydGV4QnVmZmVyMEZsb2F0MzJBcnJh
eVsxXSA9IC0wLjU7CisgICAgdmVydGV4QnVmZmVyMEZsb2F0MzJBcnJheVsyXSA9IDEuMDsKKyAg
ICB2ZXJ0ZXhCdWZmZXIwRmxvYXQzMkFycmF5WzNdID0gMTsKKyAgICB2ZXJ0ZXhCdWZmZXIwRmxv
YXQzMkFycmF5WzRdID0gLTAuNTsKKyAgICB2ZXJ0ZXhCdWZmZXIwRmxvYXQzMkFycmF5WzVdID0g
MC41OworICAgIHZlcnRleEJ1ZmZlcjBGbG9hdDMyQXJyYXlbNl0gPSAxLjA7CisgICAgdmVydGV4
QnVmZmVyMEZsb2F0MzJBcnJheVs3XSA9IDE7CisgICAgdmVydGV4QnVmZmVyMEZsb2F0MzJBcnJh
eVs4XSA9IDAuNTsKKyAgICB2ZXJ0ZXhCdWZmZXIwRmxvYXQzMkFycmF5WzldID0gLTAuNTsKKyAg
ICB2ZXJ0ZXhCdWZmZXIwRmxvYXQzMkFycmF5WzEwXSA9IDEuMDsKKyAgICB2ZXJ0ZXhCdWZmZXIw
RmxvYXQzMkFycmF5WzExXSA9IDE7CisgICAgdmVydGV4QnVmZmVyMEZsb2F0MzJBcnJheVsxMl0g
PSAwLjU7CisgICAgdmVydGV4QnVmZmVyMEZsb2F0MzJBcnJheVsxM10gPSAwLjU7CisgICAgdmVy
dGV4QnVmZmVyMEZsb2F0MzJBcnJheVsxNF0gPSAxLjA7CisgICAgdmVydGV4QnVmZmVyMEZsb2F0
MzJBcnJheVsxNV0gPSAxOworICAgIHZlcnRleEJ1ZmZlcjAudW5tYXAoKTsKKworICAgIGNvbnN0
IHJlc291cmNlQnVmZmVyRGVzY3JpcHRvciA9IHtzaXplOiBGbG9hdDMyQXJyYXkuQllURVNfUEVS
X0VMRU1FTlQsIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5VTklGT1JNIHwgR1BVQnVmZmVyVXNhZ2Uu
TUFQX1dSSVRFfTsKKyAgICBjb25zdCByZXNvdXJjZUJ1ZmZlciA9IGRldmljZS5jcmVhdGVCdWZm
ZXIocmVzb3VyY2VCdWZmZXJEZXNjcmlwdG9yKTsKKyAgICBjb25zdCByZXNvdXJjZUJ1ZmZlckFy
cmF5QnVmZmVyID0gYXdhaXQgcmVzb3VyY2VCdWZmZXIubWFwV3JpdGVBc3luYygpOworICAgIGNv
bnN0IHJlc291cmNlQnVmZmVyRmxvYXQzMkFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShyZXNvdXJj
ZUJ1ZmZlckFycmF5QnVmZmVyKTsKKyAgICByZXNvdXJjZUJ1ZmZlckZsb2F0MzJBcnJheVswXSA9
IDE7CisgICAgcmVzb3VyY2VCdWZmZXIudW5tYXAoKTsKKworICAgIGNvbnN0IGJ1ZmZlckJpbmRp
bmcgPSB7YnVmZmVyOiByZXNvdXJjZUJ1ZmZlciwgc2l6ZTogNH07CisgICAgY29uc3QgYmluZEdy
b3VwQmluZGluZyA9IHtiaW5kaW5nOiAwLCByZXNvdXJjZTogYnVmZmVyQmluZGluZ307CisgICAg
Y29uc3QgYmluZEdyb3VwRGVzY3JpcHRvciA9IHtsYXlvdXQ6IGJpbmRHcm91cExheW91dCwgYmlu
ZGluZ3M6IFtiaW5kR3JvdXBCaW5kaW5nXX07CisgICAgY29uc3QgYmluZEdyb3VwID0gZGV2aWNl
LmNyZWF0ZUJpbmRHcm91cChiaW5kR3JvdXBEZXNjcmlwdG9yKTsKKworICAgIGNvbnN0IGNhbnZh
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICBjb25zdCBjb250ZXh0
ID0gY2FudmFzLmdldENvbnRleHQoImdwdSIpOworICAgIGNvbnN0IHN3YXBDaGFpbkRlc2NyaXB0
b3IgPSB7ZGV2aWNlLCBmb3JtYXQ6ICJiZ3JhOHVub3JtIn07CisgICAgY29uc3Qgc3dhcENoYWlu
ID0gY29udGV4dC5jb25maWd1cmVTd2FwQ2hhaW4oc3dhcENoYWluRGVzY3JpcHRvcik7CisgICAg
Y29uc3Qgb3V0cHV0VGV4dHVyZSA9IHN3YXBDaGFpbi5nZXRDdXJyZW50VGV4dHVyZSgpOworICAg
IGNvbnN0IG91dHB1dFRleHR1cmVWaWV3ID0gb3V0cHV0VGV4dHVyZS5jcmVhdGVEZWZhdWx0Vmll
dygpOworCisgICAgY29uc3QgY29tbWFuZEVuY29kZXIgPSBkZXZpY2UuY3JlYXRlQ29tbWFuZEVu
Y29kZXIoKTsgLy8ge30KKyAgICBjb25zdCByZWQgPSB7cjogMCwgZzogMCwgYjogMSwgYTogMX07
CisgICAgY29uc3QgY29sb3JBdHRhY2htZW50cyA9IFt7YXR0YWNobWVudDogb3V0cHV0VGV4dHVy
ZVZpZXcsIHJlc29sdmVUYXJnZXQ6IG51bGwsIGxvYWRPcDogImNsZWFyIiwgc3RvcmVPcDogInN0
b3JlIiwgY2xlYXJDb2xvcjogcmVkfV07CisgICAgY29uc3QgZGVwdGhTdGVuY2lsQXR0YWNobWVu
dCA9IG51bGw7CisgICAgY29uc3QgcmVuZGVyUGFzc0Rlc2NyaXB0b3IgPSB7Y29sb3JBdHRhY2ht
ZW50cywgZGVwdGhTdGVuY2lsQXR0YWNobWVudH07CisgICAgY29uc3QgcmVuZGVyUGFzc0VuY29k
ZXIgPSBjb21tYW5kRW5jb2Rlci5iZWdpblJlbmRlclBhc3MocmVuZGVyUGFzc0Rlc2NyaXB0b3Ip
OworICAgIHJlbmRlclBhc3NFbmNvZGVyLnNldFBpcGVsaW5lKHJlbmRlclBpcGVsaW5lKTsKKyAg
ICByZW5kZXJQYXNzRW5jb2Rlci5zZXRCaW5kR3JvdXAoMCwgYmluZEdyb3VwKTsKKyAgICByZW5k
ZXJQYXNzRW5jb2Rlci5zZXRWZXJ0ZXhCdWZmZXJzKDAsIFt2ZXJ0ZXhCdWZmZXIwXSwgWzBdKTsK
KyAgICByZW5kZXJQYXNzRW5jb2Rlci5kcmF3KDQsIDEsIDAsIDApOworICAgIHJlbmRlclBhc3NF
bmNvZGVyLmVuZFBhc3MoKTsKKyAgICBjb25zdCBjb21tYW5kQnVmZmVyID0gY29tbWFuZEVuY29k
ZXIuZmluaXNoKCk7CisgICAgZGV2aWNlLmdldFF1ZXVlKCkuc3VibWl0KFtjb21tYW5kQnVmZmVy
XSk7Cit9CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uKCkgeworICAg
IHN0YXJ0KCkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSwgZnVuY3Rpb24o
KSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgIH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC1leHRyYS1yZXNvdXJjZS1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWV4dHJhLXJlc291cmNlLWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZkZTNhYmQ3NDdmNmEwNDk3NDI3NzI0YjZhMTBiZjg4
ZDVkZWQwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC1leHRy
YS1yZXNvdXJjZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3
aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+Cis8c2NyaXB0PgorYXN5bmMgZnVuY3Rp
b24gc3RhcnQoKSB7CisgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNhbnZhcyIpOworICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsK
KyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICJibHVlIjsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDAs
IDAsIDQwMCwgNDAwKTsKK30KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3RhcnQp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJncHUvd2hsc2wtZXh0cmEtcmVzb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS93aGxz
bC1leHRyYS1yZXNvdXJjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1OWJhZjZkMDM0NTM3NDllYmUzYzFk
OWM0MGQ1YmFhOGJkZDE5ODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUv
d2hsc2wtZXh0cmEtcmVzb3VyY2UuaHRtbApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIg
d2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2NvbnN0IHNoYWRl
clNvdXJjZSA9IGAKK3ZlcnRleCBmbG9hdDQgdmVydGV4U2hhZGVyKGZsb2F0NCBwb3NpdGlvbiA6
IGF0dHJpYnV0ZSgwKSwgZGV2aWNlIGZsb2F0W10gdGhlQnVmZmVyIDogcmVnaXN0ZXIodTApKSA6
IFNWX1Bvc2l0aW9uIHsKKyAgICByZXR1cm4gcG9zaXRpb247Cit9CisKK2ZyYWdtZW50IGZsb2F0
NCBmcmFnbWVudFNoYWRlcihmbG9hdDQgcG9zaXRpb24gOiBTVl9Qb3NpdGlvbikgOiBTVl9UYXJn
ZXQgMCB7CisgICAgcmV0dXJuIHBvc2l0aW9uOworfQorYDsKK2FzeW5jIGZ1bmN0aW9uIHN0YXJ0
KCkgeworICAgIGNvbnN0IGFkYXB0ZXIgPSBhd2FpdCBuYXZpZ2F0b3IuZ3B1LnJlcXVlc3RBZGFw
dGVyKCk7CisgICAgY29uc3QgZGV2aWNlID0gYXdhaXQgYWRhcHRlci5yZXF1ZXN0RGV2aWNlKCk7
CisKKyAgICBjb25zdCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHtj
b2RlOiBzaGFkZXJTb3VyY2UsIGlzV0hMU0w6IHRydWV9KTsKKyAgICBjb25zdCB2ZXJ0ZXhTdGFn
ZSA9IHttb2R1bGU6IHNoYWRlck1vZHVsZSwgZW50cnlQb2ludDogInZlcnRleFNoYWRlciJ9Owor
ICAgIGNvbnN0IGZyYWdtZW50U3RhZ2UgPSB7bW9kdWxlOiBzaGFkZXJNb2R1bGUsIGVudHJ5UG9p
bnQ6ICJmcmFnbWVudFNoYWRlciJ9OworICAgIGNvbnN0IHByaW1pdGl2ZVRvcG9sb2d5ID0gInRy
aWFuZ2xlLXN0cmlwIjsKKyAgICBjb25zdCByYXN0ZXJpemF0aW9uU3RhdGUgPSB7ZnJvbnRGYWNl
OiAiY3ciLCBjdWxsTW9kZTogIm5vbmUifTsKKyAgICBjb25zdCBhbHBoYUJsZW5kID0ge307Cisg
ICAgY29uc3QgY29sb3JCbGVuZCA9IHt9OworICAgIGNvbnN0IGNvbG9yU3RhdGVzID0gW3tmb3Jt
YXQ6ICJyZ2JhOHVub3JtIiwgYWxwaGFCbGVuZCwgY29sb3JCbGVuZCwgd3JpdGVNYXNrOiAxNX1d
OyAvLyBHUFVDb2xvcldyaXRlQml0cy5BTEwKKyAgICBjb25zdCBkZXB0aFN0ZW5jaWxTdGF0ZSA9
IG51bGw7CisgICAgCisgICAgY29uc3QgYXR0cmlidXRlID0ge3NoYWRlckxvY2F0aW9uOiAwLCBm
b3JtYXQ6ICJmbG9hdDQifTsKKyAgICBjb25zdCBpbnB1dCA9IHtzdHJpZGU6IDE2LCBhdHRyaWJ1
dGVTZXQ6IFthdHRyaWJ1dGVdfTsKKyAgICBjb25zdCBpbnB1dHMgPSBbaW5wdXRdOworICAgIGNv
bnN0IHZlcnRleElucHV0ID0ge3ZlcnRleEJ1ZmZlcnM6IGlucHV0c307CisKKyAgICBjb25zdCBw
aXBlbGluZUxheW91dERlc2NyaXB0b3IgPSB7YmluZEdyb3VwTGF5b3V0czogW119OworICAgIGNv
bnN0IHBpcGVsaW5lTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZVBpcGVsaW5lTGF5b3V0KHBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvcik7CisKKyAgICBjb25zdCByZW5kZXJQaXBlbGluZURlc2NyaXB0b3Ig
PSB7dmVydGV4U3RhZ2UsIGZyYWdtZW50U3RhZ2UsIHByaW1pdGl2ZVRvcG9sb2d5LCByYXN0ZXJp
emF0aW9uU3RhdGUsIGNvbG9yU3RhdGVzLCBkZXB0aFN0ZW5jaWxTdGF0ZSwgdmVydGV4SW5wdXQs
IHNhbXBsZUNvdW50OiAxLCBsYXlvdXQ6IHBpcGVsaW5lTGF5b3V0fTsKKyAgICBjb25zdCByZW5k
ZXJQaXBlbGluZSA9IGRldmljZS5jcmVhdGVSZW5kZXJQaXBlbGluZShyZW5kZXJQaXBlbGluZURl
c2NyaXB0b3IpOworCisgICAgY29uc3QgdmVydGV4QnVmZmVyMERlc2NyaXB0b3IgPSB7c2l6ZTog
RmxvYXQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogNCAqIDQsIHVzYWdlOiBHUFVCdWZmZXJV
c2FnZS5WRVJURVggfCBHUFVCdWZmZXJVc2FnZS5NQVBfV1JJVEV9OworICAgIGNvbnN0IHZlcnRl
eEJ1ZmZlcjAgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHZlcnRleEJ1ZmZlcjBEZXNjcmlwdG9yKTsK
KyAgICBjb25zdCB2ZXJ0ZXhCdWZmZXIwQXJyYXlCdWZmZXIgPSBhd2FpdCB2ZXJ0ZXhCdWZmZXIw
Lm1hcFdyaXRlQXN5bmMoKTsKKyAgICBjb25zdCB2ZXJ0ZXhCdWZmZXIwRmxvYXQzMkFycmF5ID0g
bmV3IEZsb2F0MzJBcnJheSh2ZXJ0ZXhCdWZmZXIwQXJyYXlCdWZmZXIpOworICAgIHZlcnRleEJ1
ZmZlcjBGbG9hdDMyQXJyYXlbMF0gPSAtMC41OworICAgIHZlcnRleEJ1ZmZlcjBGbG9hdDMyQXJy
YXlbMV0gPSAtMC41OworICAgIHZlcnRleEJ1ZmZlcjBGbG9hdDMyQXJyYXlbMl0gPSAxLjA7Cisg
ICAgdmVydGV4QnVmZmVyMEZsb2F0MzJBcnJheVszXSA9IDE7CisgICAgdmVydGV4QnVmZmVyMEZs
b2F0MzJBcnJheVs0XSA9IC0wLjU7CisgICAgdmVydGV4QnVmZmVyMEZsb2F0MzJBcnJheVs1XSA9
IDAuNTsKKyAgICB2ZXJ0ZXhCdWZmZXIwRmxvYXQzMkFycmF5WzZdID0gMS4wOworICAgIHZlcnRl
eEJ1ZmZlcjBGbG9hdDMyQXJyYXlbN10gPSAxOworICAgIHZlcnRleEJ1ZmZlcjBGbG9hdDMyQXJy
YXlbOF0gPSAwLjU7CisgICAgdmVydGV4QnVmZmVyMEZsb2F0MzJBcnJheVs5XSA9IC0wLjU7Cisg
ICAgdmVydGV4QnVmZmVyMEZsb2F0MzJBcnJheVsxMF0gPSAxLjA7CisgICAgdmVydGV4QnVmZmVy
MEZsb2F0MzJBcnJheVsxMV0gPSAxOworICAgIHZlcnRleEJ1ZmZlcjBGbG9hdDMyQXJyYXlbMTJd
ID0gMC41OworICAgIHZlcnRleEJ1ZmZlcjBGbG9hdDMyQXJyYXlbMTNdID0gMC41OworICAgIHZl
cnRleEJ1ZmZlcjBGbG9hdDMyQXJyYXlbMTRdID0gMS4wOworICAgIHZlcnRleEJ1ZmZlcjBGbG9h
dDMyQXJyYXlbMTVdID0gMTsKKyAgICB2ZXJ0ZXhCdWZmZXIwLnVubWFwKCk7CisKKyAgICBjb25z
dCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgY29uc3Qg
Y29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCJncHUiKTsKKyAgICBjb25zdCBzd2FwQ2hhaW5E
ZXNjcmlwdG9yID0ge2RldmljZSwgZm9ybWF0OiAiYmdyYTh1bm9ybSJ9OworICAgIGNvbnN0IHN3
YXBDaGFpbiA9IGNvbnRleHQuY29uZmlndXJlU3dhcENoYWluKHN3YXBDaGFpbkRlc2NyaXB0b3Ip
OworICAgIGNvbnN0IG91dHB1dFRleHR1cmUgPSBzd2FwQ2hhaW4uZ2V0Q3VycmVudFRleHR1cmUo
KTsKKyAgICBjb25zdCBvdXRwdXRUZXh0dXJlVmlldyA9IG91dHB1dFRleHR1cmUuY3JlYXRlRGVm
YXVsdFZpZXcoKTsKKworICAgIGNvbnN0IGNvbW1hbmRFbmNvZGVyID0gZGV2aWNlLmNyZWF0ZUNv
bW1hbmRFbmNvZGVyKCk7IC8vIHt9CisgICAgY29uc3QgcmVkID0ge3I6IDAsIGc6IDAsIGI6IDEs
IGE6IDF9OworICAgIGNvbnN0IGNvbG9yQXR0YWNobWVudHMgPSBbe2F0dGFjaG1lbnQ6IG91dHB1
dFRleHR1cmVWaWV3LCByZXNvbHZlVGFyZ2V0OiBudWxsLCBsb2FkT3A6ICJjbGVhciIsIHN0b3Jl
T3A6ICJzdG9yZSIsIGNsZWFyQ29sb3I6IHJlZH1dOworICAgIGNvbnN0IGRlcHRoU3RlbmNpbEF0
dGFjaG1lbnQgPSBudWxsOworICAgIGNvbnN0IHJlbmRlclBhc3NEZXNjcmlwdG9yID0ge2NvbG9y
QXR0YWNobWVudHMsIGRlcHRoU3RlbmNpbEF0dGFjaG1lbnR9OworICAgIGNvbnN0IHJlbmRlclBh
c3NFbmNvZGVyID0gY29tbWFuZEVuY29kZXIuYmVnaW5SZW5kZXJQYXNzKHJlbmRlclBhc3NEZXNj
cmlwdG9yKTsKKyAgICByZW5kZXJQYXNzRW5jb2Rlci5zZXRQaXBlbGluZShyZW5kZXJQaXBlbGlu
ZSk7CisgICAgcmVuZGVyUGFzc0VuY29kZXIuc2V0VmVydGV4QnVmZmVycygwLCBbdmVydGV4QnVm
ZmVyMF0sIFswXSk7CisgICAgcmVuZGVyUGFzc0VuY29kZXIuZHJhdyg0LCAxLCAwLCAwKTsKKyAg
ICByZW5kZXJQYXNzRW5jb2Rlci5lbmRQYXNzKCk7CisgICAgY29uc3QgY29tbWFuZEJ1ZmZlciA9
IGNvbW1hbmRFbmNvZGVyLmZpbmlzaCgpOworICAgIGRldmljZS5nZXRRdWV1ZSgpLnN1Ym1pdChb
Y29tbWFuZEJ1ZmZlcl0pOworfQoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5j
dGlvbigpIHsKKyAgICBzdGFydCgpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAg
IH0sIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>