<?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>156421</bug_id>
          
          <creation_ts>2016-04-08 16:01:35 -0700</creation_ts>
          <short_desc>[WebIDL] Add support for [ImplementedAs] for EventHandler attributes</short_desc>
          <delta_ts>2016-04-11 16:00:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1182340</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-08 16:01:35 -0700</bug_when>
    <thetext>Add support for [ImplementedAs] for EventHandler attributes so we can get rid of some ugly name hardcoding in the bindings generator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182341</commentid>
    <comment_count>1</comment_count>
      <attachid>276049</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-08 16:05:14 -0700</bug_when>
    <thetext>Created attachment 276049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182342</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-08 16:07:15 -0700</bug_when>
    <thetext>Attachment 276049 did not pass style-queue:


ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:1502:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:2747:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182364</commentid>
    <comment_count>3</comment_count>
      <attachid>276049</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-08 16:54:12 -0700</bug_when>
    <thetext>Comment on attachment 276049
Patch

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

&gt; Source/WebCore/Modules/notifications/Notification.idl:49
&gt; +    [ImplementedAs=onshow] attribute EventHandler ondisplay;

Why include &quot;on&quot; in the ImplementedAs name? Can’t this just be [ImplementedAs=show] instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182708</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-11 09:10:04 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 276049 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=276049&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/notifications/Notification.idl:49
&gt; &gt; +    [ImplementedAs=onshow] attribute EventHandler ondisplay;
&gt; 
&gt; Why include &quot;on&quot; in the ImplementedAs name? Can’t this just be
&gt; [ImplementedAs=show] instead?

While this is shorter, I would personally find it a bit confusing. EventHandlers always start with &quot;on&quot; prefix. [ImplementedAs] is used to provide the alternative name for the attribute. Here the alternative name for the attribute is &apos;onshow&apos; for the attribute &apos;ondisplay&apos;. &apos;show&apos; would be the name of the Event we deduce from the name of the event handler attribute.

I would prefer landing the patch as is unless you feel strongly about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182712</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-11 09:48:36 -0700</bug_when>
    <thetext>I agree with Chris here. Since onshow is a replacement for ondisplay, it&apos;s more consistent for it to start with &quot;on&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182762</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-11 11:58:52 -0700</bug_when>
    <thetext>I don’t agree with you guys.

There is no &quot;onshow&quot; attribute nor an &quot;onshow&quot; event type. So I don’t see why we would ever write &quot;onshow&quot;.

The attribute is named &quot;ondisplay&quot; and the event type it sets up a handler for is &quot;display&quot;. The new attribute is telling the code generator that the &quot;ondisplay&quot; attribute instead should set up an event handler for the event type &quot;show&quot;.

There’s no &quot;onshow&quot; involved at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182763</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-11 11:59:28 -0700</bug_when>
    <thetext>Maybe we shouldn’t use ImplementedAs for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182764</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-11 12:00:21 -0700</bug_when>
    <thetext>Attribute could be named EventType perhaps?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182769</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-11 12:02:44 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Maybe we shouldn’t use ImplementedAs for this.

I did not want to add yet another WebKit-specific IDL extended attribute just for this. I thought that ImplementedAs suited pretty well for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182775</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-11 12:06:19 -0700</bug_when>
    <thetext>I think it’s strange to write &quot;onshow&quot; when there is no &quot;onshow&quot;, just &quot;show&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182777</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-11 12:09:01 -0700</bug_when>
    <thetext>ImplementedAs as nothing to do with IDL really. It merely tells that we are using a different name for this on the native side.

In general, when we use ImplementedAs on an attribute, it means that the implementation Setter/Getter uses a different naming, which is not based on the attribute name in the IDL.

[ImplementedAs=bar] attribute DOMString foo;

We deduce that we need to call bar() / setBar() on native side.

Then for EventHandler attributes, there is no corresponding getter / setter. The native getter / setter is generic and relies on an event name that is based on the IDL attribute name.

[ImplementedAs=onbar] attribute DOMString onfoo;

We deduce that we need to call eventHandlerAttribute(element, eventNames().barEvent) / setEventHandlerAttribute(*state, jsElement, element, eventNames().barEvent, value) on native side.

I personally think it does make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182779</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-11 12:10:42 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; I think it’s strange to write &quot;onshow&quot; when there is no &quot;onshow&quot;, just
&gt; &quot;show&quot;.

[ImplementedAs=bar] attribute DOMString foo;

There is not &apos;bar&apos; either. We just deduce that we need to call getters/setters based on a different name &apos;bar&apos;, which ends up resolving to bar() / setBar().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182780</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-11 12:12:05 -0700</bug_when>
    <thetext>I suppose we could update the bindings generator so that it would allow both &apos;bar&apos; and &apos;onbar&apos; in [ImplementedAs] in the case of EventHandlers (i.e. drop the &apos;on&apos; prefix to deduce the event name, if there is such prefix).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182781</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-11 12:17:12 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; I think it’s strange to write &quot;onshow&quot; when there is no &quot;onshow&quot;, just
&gt; &quot;show&quot;.

&quot;show&quot; would be the name of the event fired on JS side. But what the bindings generator needs to generate is actually eventNames().showEvent. The bindings generator is not really aware of anything named &quot;show&quot; AFAICT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182795</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-11 12:55:08 -0700</bug_when>
    <thetext>OK, but eventNames().showEvent is just the string &quot;show&quot;, and is defined to be that. We use eventNames() for efficiency, there’s no layer of abstraction there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182799</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-11 12:58:56 -0700</bug_when>
    <thetext>I can live with this, since you feel strongly about it.

I have long been frustrated and felt confused when people talk about things like &quot;the &apos;onload&apos; event&quot;, which does not exist. I seem to remember that I added support for EventHandler and I had this very thing in mind and tried hard to not conflate the names of the event handler attributes with the names of the event they are intended for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182854</commentid>
    <comment_count>17</comment_count>
      <attachid>276049</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-11 15:59:57 -0700</bug_when>
    <thetext>Comment on attachment 276049
Patch

Clearing flags on attachment: 276049

Committed r199316: &lt;http://trac.webkit.org/changeset/199316&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182855</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-11 16:00:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276049</attachid>
            <date>2016-04-08 16:05:14 -0700</date>
            <delta_ts>2016-04-11 15:59:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156421-20160408160518.patch</filename>
            <type>text/plain</type>
            <size>10889</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZhMGRhY2M1YjkyZDFh
MWZkNTcxMDU4YzIwZDZiNzU4YjgxN2VmOC4uN2I0ZGE4NDlkN2FiMTRhOGY3ZWY5OGViZjZkYmVh
MDYyNTdjZTRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYklETF0gQWRkIHN1cHBv
cnQgZm9yIFtJbXBsZW1lbnRlZEFzXSBmb3IgRXZlbnRIYW5kbGVyIGF0dHJpYnV0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjQyMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBbSW1wbGVtZW50ZWRBc10gZm9yIEV2ZW50SGFuZGxlciBhdHRyaWJ1dGVzIHNvIHdlIGNhbgor
ICAgICAgICBnZXQgcmlkIG9mIHNvbWUgdWdseSBuYW1lIGhhcmQtY29kaW5nIGluIHRoZSBiaW5k
aW5ncyBnZW5lcmF0b3IuCisKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bToKKyAgICAgICAgKEV2ZW50SGFuZGxlckF0dHJpYnV0ZUV2ZW50TmFtZSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpPbndlYmtpdGZvbyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpP
bndlYmtpdGZvbyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRs
OgorICAgICAgICAqIGRvbS9FbGVtZW50LmlkbDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKIDIwMTYtMDQtMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAg
ICAgICAgIE1vZGVybiBJREI6IFVzZSBtb3JlIElEQlZhbHVlIGFuZCBJREJHZXRSZXN1bHQgaW4g
SURCQmFja2luZ1N0b3JlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbAppbmRleCA5ODQ1NGEzM2UwNTQ1MDRlMjZmYjk0ZDZl
OWJjM2E3YjMxZThlNDE5Li45N2UzNjdjMDcwMGY1NGI2YmI1NjIyODA2M2ZiMzlmZTNmOTY3MmU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uLmlkbApAQCAtNDYsNyArNDYsNyBAQAogCiAgICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbmNsaWNrOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25jbG9zZTsKLSAgICBh
dHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZGlzcGxheTsKKyAgICBbSW1wbGVtZW50ZWRBcz1vbnNo
b3ddIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25kaXNwbGF5OwogICAgIGF0dHJpYnV0ZSBFdmVu
dEhhbmRsZXIgb25lcnJvcjsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc2hvdzsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQppbmRleCAyMWFhM2UzYjE3ZjQzY2ZiODdkZDViNDIyNzNjMGIwOWEzMzhmZjlhLi40NTliNWU2
ZjdkM2E2NGMxOWViZTNlMTY1NzE3YzdkODQwYmE5NDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTM5LDE5ICsxMzks
MTAgQEAgc3ViIEdlbmVyYXRlSW50ZXJmYWNlCiBzdWIgRXZlbnRIYW5kbGVyQXR0cmlidXRlRXZl
bnROYW1lCiB7CiAgICAgbXkgJGF0dHJpYnV0ZSA9IHNoaWZ0OworICAgIG15ICRldmVudFR5cGUg
PSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRl
ZEFzIn0gfHwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwogCiAgICAgIyBSZW1vdmUgdGhl
ICJvbiIgcHJlZml4LgotICAgIG15ICRldmVudFR5cGUgPSBzdWJzdHIoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5uYW1lLCAyKTsKLQotICAgICMgRklYTUU6IENvbnNpZGVyIGFkZGluZyBhIHByb3Bl
cnR5IGluIHRoZSBJREwgZmlsZSBpbnN0ZWFkIG9mIGhhcmQgY29kaW5nIHRoZXNlIG5hbWVzLgot
Ci0gICAgJGV2ZW50VHlwZSA9ICJzaG93IiBpZiAkZXZlbnRUeXBlIGVxICJkaXNwbGF5IjsKLQot
ICAgICMgTm90ZTogVGhlc2UgZm91ciBuYW1lcyBleGlzdCBpbiBIVE1MRWxlbWVudC5jcHAuCi0g
ICAgJGV2ZW50VHlwZSA9ICJ3ZWJraXRBbmltYXRpb25FbmQiIGlmICRldmVudFR5cGUgZXEgIndl
YmtpdGFuaW1hdGlvbmVuZCI7Ci0gICAgJGV2ZW50VHlwZSA9ICJ3ZWJraXRBbmltYXRpb25JdGVy
YXRpb24iIGlmICRldmVudFR5cGUgZXEgIndlYmtpdGFuaW1hdGlvbml0ZXJhdGlvbiI7Ci0gICAg
JGV2ZW50VHlwZSA9ICJ3ZWJraXRBbmltYXRpb25TdGFydCIgaWYgJGV2ZW50VHlwZSBlcSAid2Vi
a2l0YW5pbWF0aW9uc3RhcnQiOwotICAgICRldmVudFR5cGUgPSAid2Via2l0VHJhbnNpdGlvbkVu
ZCIgaWYgJGV2ZW50VHlwZSBlcSAid2Via2l0dHJhbnNpdGlvbmVuZCI7CisgICAgJGV2ZW50VHlw
ZSA9IHN1YnN0cigkZXZlbnRUeXBlLCAyKTsKIAogICAgIHJldHVybiAiZXZlbnROYW1lcygpLiR7
ZXZlbnRUeXBlfUV2ZW50IjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggYWU5ZDQ2MTE1MTlmZTM3NmU0YzJi
MmFiOWQ3ZDI4OWIwYmE3ZWJiOC4uY2VjNzI0ODI4OGM3ODIyOTllMDM2YTdiNDljMjczYWNmMGIz
MjU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHAKQEAgLTI4Niw2ICsyODYsOCBAQCBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakN1c3RvbUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKUwogYm9vbCBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iak9uZm9vKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RPYmpPbmZvbyhKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpPbndlYmtpdGZvbyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgc2V0SlNUZXN0T2JqT253ZWJraXRm
b28oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmli
dXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwogYm9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRy
aWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CkBAIC01ODUsNiArNTg3LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
VGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMs
IHsgMCwgMCB9IH0sCiAjZW5kaWYKICAgICB7ICJvbmZvbyIsIEN1c3RvbUFjY2Vzc29yLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9iak9uZm9vKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqT25mb28pIH0gfSwKKyAgICB7ICJvbndlYmtp
dGZvbyIsIEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iak9ud2Via2l0Zm9vKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqT253ZWJraXRmb28pIH0gfSwKICAgICB7ICJ3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUi
LCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1
dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUpIH0gfSwKICAgICB7ICJ3aXRo
Q2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSIsIEN1c3RvbUFjY2Vzc29yLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUpIH0gfSwKICAgICB7
ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSIsIEN1c3RvbUFjY2Vzc29yLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUpIH0gfSwKQEAgLTE0ODgs
NiArMTQ5MSwyMCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPbmZvbyhFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcgogfQogCiAKK0VuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iak9ud2Via2l0Zm9vKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQoreworICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Cisg
ICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CisgICAgSlNWYWx1ZSBkZWNvZGVkVGhpc1ZhbHVl
ID0gSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSk7CisgICAgYXV0byogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oZGVjb2RlZFRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgeworICAgICAgICByZXR1cm4gdGhyb3dHZXR0ZXJUeXBlRXJyb3Io
KnN0YXRlLCAiVGVzdE9iaiIsICJvbndlYmtpdGZvbyIpOworICAgIH0KKyAgICBVTlVTRURfUEFS
QU0oc3RhdGUpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXZlbnRIYW5kbGVyQXR0cmli
dXRlKGNhc3RlZFRoaXMtPndyYXBwZWQoKSwgZXZlbnROYW1lcygpLmZvb0V2ZW50KSk7Cit9CisK
KwogRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CkBAIC0yNzIwLDYgKzI3MzcsMTkgQEAgYm9vbCBzZXRK
U1Rlc3RPYmpPbmZvbyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHUKIH0KIAogCitib29sIHNldEpTVGVzdE9iak9ud2Via2l0Zm9vKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQoreworICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZFZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKKyAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKKyAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CisgICAgICAgIHJldHVy
biB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgIm9ud2Via2l0Zm9vIik7
CisgICAgfQorICAgIHNldEV2ZW50SGFuZGxlckF0dHJpYnV0ZSgqc3RhdGUsICpjYXN0ZWRUaGlz
LCBjYXN0ZWRUaGlzLT53cmFwcGVkKCksIGV2ZW50TmFtZXMoKS5mb29FdmVudCwgdmFsdWUpOwor
ICAgIHJldHVybiB0cnVlOworfQorCisKIGJvb2wgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRl
QXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCBkZjBjYjM2NTU3NTg4OTdjNDQ0YmVlYTQ0YTkz
MzJhYmY3ODg4YjkzLi43M2I2NzEzNzY4OWQ2MWU0N2E2ZWMyNjQzNzI2MTE0MDYxMjNlYzE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRs
CkBAIC0xNTMsNiArMTUzLDcgQEAgZW51bSBfb3B0aW9uYWwgeyAiIiwgIk9wdGlvbmFsVmFsdWUx
IiwgIk9wdGlvbmFsVmFsdWUyIiwgIk9wdGlvbmFsVmFsdWUzIiB9OwogICAgIHZvaWQgYWRkRXZl
bnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwgRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgb3B0aW9u
YWwgYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoRE9N
U3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIG9wdGlvbmFsIGJvb2xlYW4gdXNl
Q2FwdHVyZSk7CiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmZvbzsKKyAgICBbSW1wbGVt
ZW50ZWRBcz1vbmZvb10gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbndlYmtpdGZvbzsKIAogICAg
IC8vICdDYWxsV2l0aCcgZXh0ZW5kZWQgYXR0cmlidXRlCiAgICAgW0NhbGxXaXRoPVNjcmlwdFN0
YXRlXSB2b2lkIHdpdGhTY3JpcHRTdGF0ZVZvaWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAppbmRl
eCBhYjU5Y2ZiMzA3NTcyN2IyNGM4NDc1OGMzNDFkNjhkZjFkOTk3MDZhLi5jNDU3MmNlMTA1NTU0
NzBiODc2NDJiYmI2NjFhNzQzZmE3Mzg2OTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCkBAIC0x
OTUsMTAgKzE5NSwxMCBAQAogICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9uYW5pbWF0aW9uaXRlcmF0aW9uOwogICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9uYW5pbWF0aW9uc3RhcnQ7CiAgICAgW05vdEVudW1lcmFibGVdIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb250cmFuc2l0aW9uZW5kOwotICAgIFtOb3RFbnVtZXJhYmxlXSBh
dHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ud2Via2l0YW5pbWF0aW9uZW5kOwotICAgIFtOb3RFbnVt
ZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ud2Via2l0YW5pbWF0aW9uaXRlcmF0aW9u
OwotICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ud2Via2l0YW5p
bWF0aW9uc3RhcnQ7Ci0gICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIg
b253ZWJraXR0cmFuc2l0aW9uZW5kOworICAgIFtOb3RFbnVtZXJhYmxlLCBJbXBsZW1lbnRlZEFz
PW9ud2Via2l0QW5pbWF0aW9uRW5kXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ud2Via2l0YW5p
bWF0aW9uZW5kOworICAgIFtOb3RFbnVtZXJhYmxlLCBJbXBsZW1lbnRlZEFzPW9ud2Via2l0QW5p
bWF0aW9uSXRlcmF0aW9uXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ud2Via2l0YW5pbWF0aW9u
aXRlcmF0aW9uOworICAgIFtOb3RFbnVtZXJhYmxlLCBJbXBsZW1lbnRlZEFzPW9ud2Via2l0QW5p
bWF0aW9uU3RhcnRdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb253ZWJraXRhbmltYXRpb25zdGFy
dDsKKyAgICBbTm90RW51bWVyYWJsZSwgSW1wbGVtZW50ZWRBcz1vbndlYmtpdFRyYW5zaXRpb25F
bmRdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb253ZWJraXR0cmFuc2l0aW9uZW5kOwogICAgIFtO
b3RFbnVtZXJhYmxlLCBDb25kaXRpb25hbD1JT1NfR0VTVFVSRV9FVkVOVFNdIGF0dHJpYnV0ZSBF
dmVudEhhbmRsZXIgb25nZXN0dXJlY2hhbmdlOwogICAgIFtOb3RFbnVtZXJhYmxlLCBDb25kaXRp
b25hbD1JT1NfR0VTVFVSRV9FVkVOVFNdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25nZXN0dXJl
ZW5kOwogICAgIFtOb3RFbnVtZXJhYmxlLCBDb25kaXRpb25hbD1JT1NfR0VTVFVSRV9FVkVOVFNd
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25nZXN0dXJlc3RhcnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwKaW5kZXggZGEyN2QxNzE5YWZhMDIwYjYzNDYzOWIyYzliZWIwOTI5ZjlkMDM3NS4u
YjE2MjQ0MWI3NTQ0OTQ4NjA1MzViZGZiNTdmZGE0ZDllZmE0YTkyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbApAQCAtMjExLDEwICsyMTEsMTAgQEAKICAgICBbTm90RW51bWVyYWJsZV0g
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmFuaW1hdGlvbml0ZXJhdGlvbjsKICAgICBbTm90RW51
bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmFuaW1hdGlvbnN0YXJ0OwogICAgIFtO
b3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9udHJhbnNpdGlvbmVuZDsKLSAg
ICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbndlYmtpdGFuaW1hdGlv
bmVuZDsKLSAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbndlYmtp
dGFuaW1hdGlvbml0ZXJhdGlvbjsKLSAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbndlYmtpdGFuaW1hdGlvbnN0YXJ0OwotICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9ud2Via2l0dHJhbnNpdGlvbmVuZDsKKyAgICBbTm90RW51bWVy
YWJsZSwgSW1wbGVtZW50ZWRBcz1vbndlYmtpdEFuaW1hdGlvbkVuZF0gYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbndlYmtpdGFuaW1hdGlvbmVuZDsKKyAgICBbTm90RW51bWVyYWJsZSwgSW1wbGVt
ZW50ZWRBcz1vbndlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbl0gYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbndlYmtpdGFuaW1hdGlvbml0ZXJhdGlvbjsKKyAgICBbTm90RW51bWVyYWJsZSwgSW1wbGVt
ZW50ZWRBcz1vbndlYmtpdEFuaW1hdGlvblN0YXJ0XSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
d2Via2l0YW5pbWF0aW9uc3RhcnQ7CisgICAgW05vdEVudW1lcmFibGUsIEltcGxlbWVudGVkQXM9
b253ZWJraXRUcmFuc2l0aW9uRW5kXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ud2Via2l0dHJh
bnNpdGlvbmVuZDsKICAgICBbTm90RW51bWVyYWJsZSwgQ29uZGl0aW9uYWw9SU9TX0dFU1RVUkVf
RVZFTlRTXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZ2VzdHVyZWNoYW5nZTsKICAgICBbTm90
RW51bWVyYWJsZSwgQ29uZGl0aW9uYWw9SU9TX0dFU1RVUkVfRVZFTlRTXSBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9uZ2VzdHVyZWVuZDsKICAgICBbTm90RW51bWVyYWJsZSwgQ29uZGl0aW9uYWw9
SU9TX0dFU1RVUkVfRVZFTlRTXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZ2VzdHVyZXN0YXJ0
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>