<?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>131210</bug_id>
          
          <creation_ts>2014-04-03 21:12:07 -0700</creation_ts>
          <short_desc>Fast-path for casting JS wrappers to JSElement.</short_desc>
          <delta_ts>2014-04-03 21:43:23 -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>528+ (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>Performance</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>997458</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-04-03 21:12:07 -0700</bug_when>
    <thetext>We should have a fast-path for casting JS wrappers to JSElement, too!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997461</commentid>
    <comment_count>1</comment_count>
      <attachid>228577</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-04-03 21:12:33 -0700</bug_when>
    <thetext>Created attachment 228577
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997463</commentid>
    <comment_count>2</comment_count>
      <attachid>228577</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-03 21:16:20 -0700</bug_when>
    <thetext>Comment on attachment 228577
Patch

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

&gt; Source/WebCore/bindings/js/JSElementCustom.h:38
&gt; +    return value.asCell()-&gt;type() &gt;= JSElementType ? JSC::jsCast&lt;JSElement*&gt;(value) : nullptr;

&gt;= is a dangerous game.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997464</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-04-03 21:43:23 -0700</bug_when>
    <thetext>Committed r166765: &lt;http://trac.webkit.org/changeset/166765&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228577</attachid>
            <date>2014-04-03 21:12:33 -0700</date>
            <delta_ts>2014-04-03 21:16:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131210.diff</filename>
            <type>text/plain</type>
            <size>14299</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2MWNkY2Q4Li43NjkxZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzIg
QEAKIDIwMTQtMDQtMDMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCisgICAg
ICAgIEZhc3QtcGF0aCBmb3IgY2FzdGluZyBKUyB3cmFwcGVycyB0byBKU0VsZW1lbnQuCisgICAg
ICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzEyMTA+CisKKyAgICAgICAgQWRkIGFuIGV4dGVu
ZGVkIEpTVHlwZSBmb3IgRWxlbWVudCB3cmFwcGVycyBzbyB3ZSBjYW4gYXZvaWQgd2Fsa2luZwor
ICAgICAgICB0aGUgQ2xhc3NJbmZvIGNoYWluIGluIHRob3NlIGJpbmRpbmdzIGFzIHdlbGwuCisK
KyAgICAgICAgR2VuZXJhbGl6ZWQgdGhlIGNvZGUgdG8gc2VsZWN0IGEgY2FzdGluZyBoZWxwZXIg
aW4gdGhlIGJpbmRpbmdzCisgICAgICAgIGdlbmVyYXRvciBpbnRvIGEgZnVuY3Rpb24gKEdldENh
c3RpbmdIZWxwZXJGb3JUaGlzT2JqZWN0LikKKyAgICAgICAgVXBkYXRlZCBhbGwgdGhlIGpzRHlu
YW1pY0Nhc3QgY2FsbCBzaXRlcyB0byBnbyB0aHJvdWdoIHRoaXMsIGluIGNhc2UKKyAgICAgICAg
dGhlcmUncyBhbiBvcHRpbWl6ZWQgY2FzdCBhdmFpbGFibGUgZm9yIHRoZSBkZXNpcmVkIHR5cGUu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01XcmFwcGVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6anNFbGVtZW50Q2FzdCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNOb2RlQ3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpqc05vZGVDYXN0KToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdl
bmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdldENhc3RpbmdIZWxwZXJGb3JUaGlzT2JqZWN0KToK
KyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGRvbS9FbGVtZW50
LmlkbDoKKworMjAxNC0wNC0wMyAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CisK
ICAgICAgICAgRmFzdC1wYXRoIGZvciBjYXN0aW5nIEpTIHdyYXBwZXJzIHRvIEpTTm9kZS4KICAg
ICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzMTE5Nj4KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJlMmNhOTYuLjY2Yjll
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTQyMzYsNiArNDIzNiw3IEBACiAJCUFENzI2RkVFMTZEQTExQkMwMDNBNEU2RCAv
KiBKU1N0eWxlU2hlZXRDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFENzI2RkVDMTZEOUY0QjkwMDNBNEU2RCAvKiBKU1N0eWxlU2hlZXRDdXN0
b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
RDcyNkZFRjE2REExMUY1MDAzQTRFNkQgLyogSlNDU1NSdWxlQ3VzdG9tLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDcyNkZFOTE2RDlGNDBBMDAzQTRF
NkQgLyogSlNDU1NSdWxlQ3VzdG9tLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQURERjFBRDcxMjU3Q0Q5QTAwMDNBNzU5IC8qIFJlbmRlclNWR1Bh
dGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEREYx
QUQ1MTI1N0NEOUEwMDAzQTc1OSAvKiBSZW5kZXJTVkdQYXRoLmggKi87IH07CisJCUFERUM3OEY4
MThFRTUzMDgwMDEzMTVDMiAvKiBKU0VsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFERUM3OEY3MThFRTUzMDgwMDEzMTVDMiAvKiBK
U0VsZW1lbnRDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCMTBCNjk4MDE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9rZW4uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxMEI2OTdEMTQwQzE3
NDAwMEJDMUMyNiAvKiBXZWJWVFRUb2tlbi5oICovOyB9OwogCQlCMTBCNjk4MTE0MEMxNzQwMDBC
QzFDMjYgLyogV2ViVlRUVG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIxMEI2OTdFMTQwQzE3NDAwMEJDMUMyNiAvKiBXZWJWVFRUb2tl
bml6ZXIuY3BwICovOyB9OwogCQlCMTBCNjk4MjE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9r
ZW5pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MTBCNjk3RjE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9rZW5pemVyLmggKi87IH07CkBAIC0x
MTM0Niw2ICsxMTM0Nyw3IEBACiAJCUFEREYxQUQ1MTI1N0NEOUEwMDAzQTc1OSAvKiBSZW5kZXJT
VkdQYXRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1BhdGgu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURFMTFGNEExOEQ4MzExQjAwNzg5ODNC
IC8qIEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBREUxNjczNjE4MTA1MEMzMDA0NjNBMkUgLyogUmVuZGVyUHRyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclB0ci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBREVDNzhGNzE4RUU1MzA4MDAxMzE1QzIgLyogSlNFbGVtZW50Q3VzdG9t
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRWxlbWVudEN1c3RvbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMTBCNjk3RDE0MEMxNzQwMDBCQzFDMjYgLyog
V2ViVlRUVG9rZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVlRUVG9r
ZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjEwQjY5N0UxNDBDMTc0MDAwQkMx
QzI2IC8qIFdlYlZUVFRva2VuaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJWVFRUb2tlbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCMTBCNjk3RjE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9rZW5pemVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZUVFRva2VuaXplci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjA1MzIsNiArMjA1MzQsNyBAQAogCQkJCUJDRDlDMjVFMEMxN0FB
NjcwMDVDOTBBMiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5jcHAgKi8sCiAJCQkJNjUyRkJCQkIwREUy
N0NCNjAwMDFEMzg2IC8qIEpTRE9NV2luZG93Q3VzdG9tLmggKi8sCiAJCQkJQkMyRUQ1NTQwQzZC
OUJEMzAwOTIwQkZGIC8qIEpTRWxlbWVudEN1c3RvbS5jcHAgKi8sCisJCQkJQURFQzc4RjcxOEVF
NTMwODAwMTMxNUMyIC8qIEpTRWxlbWVudEN1c3RvbS5oICovLAogCQkJCUJDRUZBRjREMEMzMTdF
NjkwMEZBODFGNiAvKiBKU0V2ZW50Q3VzdG9tLmNwcCAqLywKIAkJCQkyRTc1ODJFRDEyNzY0RjI2
MDA2MjYyOEIgLyogSlNGaWxlUmVhZGVyQ3VzdG9tLmNwcCAqLywKIAkJCQlGRTgwRDdBNjBFOUMx
RUQyMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAgKi8sCkBAIC0yNjIxNSw2ICsy
NjIxOCw3IEBACiAJCQkJMkU0MzQ2NEQwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlckxvY2F0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2Vy
TWVzc2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNENTI0ODFCMThFMjAwRUQwMDA4
QTA3RCAvKiBEaXNwbGF5U2xlZXBEaXNhYmxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQURFQzc4
RjgxOEVFNTMwODAwMTMxNUMyIC8qIEpTRWxlbWVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTEyNzFBMEIwRUVFQzc3QTAwRjYxMjEzIC8qIFdvcmtlck5hdmlnYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUFCQzcxMDkxNzBFNUUxQjAwRjlBOUQ2IC8qIFdvcmtlck5hdmlnYXRvclN0
b3JhZ2VRdW90YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJB
IC8qIFdvcmtlck9iamVjdFByb3h5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XcmFwcGVyLmgKaW5kZXggYTE0YzY4MS4uOTY1NmYzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKQEAgLTMwLDYgKzMwLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAogc3RhdGlj
IGNvbnN0IHVpbnQ4X3QgSlNOb2RlVHlwZSA9IEpTQzo6TGFzdEpTQ09iamVjdFR5cGUgKyAxOwor
c3RhdGljIGNvbnN0IHVpbnQ4X3QgSlNFbGVtZW50VHlwZSA9IEpTQzo6TGFzdEpTQ09iamVjdFR5
cGUgKyAyOwogCiBjbGFzcyBKU0RPTVdyYXBwZXIgOiBwdWJsaWMgSlNDOjpKU0Rlc3RydWN0aWJs
ZU9iamVjdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0VsZW1lbnRDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVu
dEN1c3RvbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhMWJhMDEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0
b20uaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBKU0VsZW1lbnRDdXN0b21faAorI2RlZmluZSBKU0VsZW1lbnRD
dXN0b21faAorCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNFbGVtZW50
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQUxXQVlTX0lOTElORSBKU0VsZW1lbnQqIGpz
RWxlbWVudENhc3QoSlNDOjpKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmIChVTkxJS0VMWSghdmFs
dWUuaXNDZWxsKCkpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gdmFsdWUu
YXNDZWxsKCktPnR5cGUoKSA+PSBKU0VsZW1lbnRUeXBlID8gSlNDOjpqc0Nhc3Q8SlNFbGVtZW50
Kj4odmFsdWUpIDogbnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gSlNFbGVtZW50Q3VzdG9tX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmgKaW5kZXggNzlkNDQ3MS4uZmMwMGNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOb2RlQ3VzdG9tLmgKQEAgLTgyLDcgKzgyLDcgQEAgQUxXQVlTX0lOTElORSBKU05v
ZGUqIGpzTm9kZUNhc3QoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChVTkxJS0VMWSgh
dmFsdWUuaXNDZWxsKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gdmFs
dWUuYXNDZWxsKCktPnR5cGUoKSA9PSBKU05vZGVUeXBlID8gSlNDOjpqc0Nhc3Q8SlNOb2RlKj4o
dmFsdWUpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gdmFsdWUuYXNDZWxsKCktPnR5cGUoKSA+PSBK
U05vZGVUeXBlID8gSlNDOjpqc0Nhc3Q8SlNOb2RlKj4odmFsdWUpIDogbnVsbHB0cjsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBkZWZkMWE2Li5jODkzMDY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpA
QCAtOTU5LDYgKzk1OSw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAge1xuIik7CiAgICAgaWYgKElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2Up
KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5m
byhKU0M6Okdsb2JhbE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOwor
ICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNl
LCAiRWxlbWVudCIpKSB7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJl
dHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
SlNDOjpUeXBlSW5mbyhKU0M6OkpTVHlwZShKU0VsZW1lbnRUeXBlKSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpO1xuIik7CiAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50
ZXJmYWNlKCRpbnRlcmZhY2UsICJOb2RlIikpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6SlNUeXBlKEpTTm9kZVR5cGUpLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7XG4iKTsKICAgICB9IGVsc2UgewpAQCAtMTY5Myw2ICsxNjk1
LDE5IEBAIHN1YiBHZXRSdW50aW1lRW5hYmxlRnVuY3Rpb25OYW1lCiAgICAgcmV0dXJuICJSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLiIgLiBUb01ldGhvZE5hbWUoJHNp
Z25hdHVyZS0+bmFtZSkgLiAiRW5hYmxlZCI7CiB9CiAKK3N1YiBHZXRDYXN0aW5nSGVscGVyRm9y
VGhpc09iamVjdAoreworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKworICAgIGlmICgkaW50
ZXJmYWNlLT5uYW1lIGVxICJOb2RlIikgeworICAgICAgICByZXR1cm4gImpzTm9kZUNhc3QiOwor
ICAgIH0KKyAgICBpZiAoJGludGVyZmFjZS0+bmFtZSBlcSAiRWxlbWVudCIpIHsKKyAgICAgICAg
cmV0dXJuICJqc0VsZW1lbnRDYXN0IjsKKyAgICB9CisgICAgcmV0dXJuICJqc0R5bmFtaWNDYXN0
PEpTIiAuICRpbnRlcmZhY2UtPm5hbWUgLiAiKj4iOworfQorCiBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogewogICAgIG15ICgkb2JqZWN0LCAkaW50ZXJmYWNlKSA9IEBfOwpAQCAtMjEzMiwx
MSArMjE0Nyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IHRv
JHtjbGFzc05hbWV9KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2Up
O1xuIik7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KCRpbnRlcmZhY2VOYW1lIGVxICJOb2RlIikgewotICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgSlNOb2RlKiBjYXN0ZWRUaGlzID0ganNOb2RlQ2FzdChKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xh
c3NOYW1lfSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8JGNsYXNzTmFtZSo+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVk
VGhpcyA9ICIgLiBHZXRDYXN0aW5nSGVscGVyRm9yVGhpc09iamVjdCgkaW50ZXJmYWNlKSAuICIo
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7XG4iKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIn0gPSAxOwpAQCAtMjM1NCw3ICsyMzY1LDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tUHJveHlUb0pTT2JqZWN0In0pIHsKICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGRvbU9iamVjdCA9IHRvJHtjbGFzc05hbWV9
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGRv
bU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8JHtjbGFzc05hbWV9Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpO1xuIikgaWYgQ29uc3RydWN0b3JTaG91bGRCZU9uSW5zdGFuY2UoJGludGVyZmFj
ZSk7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9
KiBkb21PYmplY3QgPSAiIC4gR2V0Q2FzdGluZ0hlbHBlckZvclRoaXNPYmplY3QoJGludGVyZmFj
ZSkgLiAiKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpIGlmIENvbnN0cnVjdG9yU2hv
dWxkQmVPbkluc3RhbmNlKCRpbnRlcmZhY2UpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUqPihiYXNlVmFsdWUpO1xuIikgaWYgIUNvbnN0cnVj
dG9yU2hvdWxkQmVPbkluc3RhbmNlKCRpbnRlcmZhY2UpOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFkb21PYmplY3QpXG4iKTsKQEAgLTIz
NzksNyArMjM5MCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBp
ZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVByb3h5VG9KU09iamVj
dCJ9KSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05h
bWV9KiBjYXN0ZWRUaGlzID0gdG8ke2NsYXNzTmFtZX0oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpO1xuIik7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
JHtjbGFzc05hbWV9Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CisgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlz
ID0gIiAuIEdldENhc3RpbmdIZWxwZXJGb3JUaGlzT2JqZWN0KCRpbnRlcmZhY2UpIC4gIihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHtcbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7XG4iKTsKQEAgLTI0ODYsNyArMjQ5Nyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ3VzdG9tUHJveHlUb0pTT2JqZWN0In0pIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IHRv
JHtjbGFzc05hbWV9KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDwke2Ns
YXNzTmFtZX0qPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVk
VGhpcyA9ICIgLiBHZXRDYXN0aW5nSGVscGVyRm9yVGhpc09iamVjdCgkaW50ZXJmYWNlKSAuICIo
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkge1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVF
cnJvclN0cmluZyhcIlRoZSBcIiwgXCIkaW50ZXJmYWNlTmFtZVwiLCBcIi5cIiwgXCIkbmFtZVwi
LCBcIiBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgXCIsIFwiJGludGVy
ZmFjZU5hbWVcIikpO1xuIik7CkBAIC0yNzIxLDcgKzI3MzIsNyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKICAgICAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpO1xuIik7Ci0gICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRjbGFzc05hbWUqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PCRjbGFzc05hbWUqPih0aGlzVmFsdWUpO1xuIik7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRjbGFzc05hbWUqIGNhc3RlZFRoaXMgPSAiIC4g
R2V0Q2FzdGluZ0hlbHBlckZvclRoaXNPYmplY3QoJGludGVyZmFjZSkgLiAiKHRoaXNWYWx1ZSk7
XG4iKTsKICAgICAgICAgICAgICAgICAgICAgbXkgJGRvbUZ1bmN0aW9uTmFtZSA9ICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKVxuIik7CiAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoXCJDYW4gb25seSBjYWxsIFwiLCBc
IiRpbnRlcmZhY2VOYW1lXCIsIFwiLlwiLCBcIiRkb21GdW5jdGlvbk5hbWVcIiwgXCIgb24gaW5z
dGFuY2VzIG9mIFwiLCBcIiRpbnRlcmZhY2VOYW1lXCIpKTtcbiIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aWRsCmluZGV4IGY4ZTkxY2EuLjk3Nzg2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKQEAgLTE5
LDYgKzE5LDcgQEAKICAqLwogCiBbCisgICAgSlNDdXN0b21IZWFkZXIsCiAgICAgSlNHZW5lcmF0
ZVRvTmF0aXZlT2JqZWN0LAogXSBpbnRlcmZhY2UgRWxlbWVudCA6IE5vZGUgewogCg==
</data>
<flag name="review"
          id="252874"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>