<?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>136201</bug_id>
          
          <creation_ts>2014-08-24 10:53:07 -0700</creation_ts>
          <short_desc>TypeProfiler search breaks on return statements</short_desc>
          <delta_ts>2014-08-25 21:37:02 -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>JavaScriptCore</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></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>commit-queue</cc>
    
    <cc>fpizlo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1030974</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-08-24 10:53:07 -0700</bug_when>
    <thetext>Currently, searching for all TypeLocations in TypeProfiler breaks when looking for an actual return statement in the source text of a function. This breaks because we ask that the search descriptor be a function return statement, but this descriptor should be a function return statement only when we ask for the global return statement of a function (i.e the merged types of all return statements), not when we are asking for the type information for an actual return statement in the source code of a function.

i.e:

function foo() { return bar };

when asking for type information for &quot;return bar&quot;, we should not require the search descriptor to be `function return descriptor`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031172</commentid>
    <comment_count>1</comment_count>
      <attachid>237094</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-08-25 10:55:08 -0700</bug_when>
    <thetext>Created attachment 237094
patch

Fixes TypeProfiler search.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031304</commentid>
    <comment_count>2</comment_count>
      <attachid>237130</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-08-25 20:35:47 -0700</bug_when>
    <thetext>Created attachment 237130
patch

Patch can now be applied to ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031309</commentid>
    <comment_count>3</comment_count>
      <attachid>237130</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-08-25 20:57:27 -0700</bug_when>
    <thetext>Comment on attachment 237130
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031322</commentid>
    <comment_count>4</comment_count>
      <attachid>237130</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-25 21:36:59 -0700</bug_when>
    <thetext>Comment on attachment 237130
patch

Clearing flags on attachment: 237130

Committed r172950: &lt;http://trac.webkit.org/changeset/172950&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031323</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-25 21:37:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237094</attachid>
            <date>2014-08-25 10:55:08 -0700</date>
            <delta_ts>2014-08-25 20:35:47 -0700</delta_ts>
            <desc>patch</desc>
            <filename>136201-patch.diff</filename>
            <type>text/plain</type>
            <size>5923</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcyOTI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDE0LTA4LTI1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFR5cGVQcm9maWxlciBzZWFyY2ggYnJlYWtzIG9uIHJldHVybiBzdGF0ZW1lbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYyMDEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWFyY2hpbmcgZm9yIHJl
dHVybiBzdGF0ZW1lbnRzIGluIHRoZSBUeXBlUHJvZmlsZXIgY3VycmVudGx5IAorICAgICAgICBi
cmVha3MgZG93biBiZWNhdXNlIGl0IGV4cGVjdGVkIHRvIHNlZSB0aGUgc2VhcmNoIGRlc2NyaXB0
b3IgCisgICAgICAgIFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3JGdW5jdGlvblJldHVybiB3
aGVuIGxvb2tpbmcgZm9yIAorICAgICAgICByZXR1cm4gc3RhdGVtZW50cyBpbiB0aGUgYWN0dWFs
IHNvdXJjZSBjb2RlIG9mIHRoZSBwcm9ncmFtLiAKKyAgICAgICAgQnV0LCBUeXBlUHJvZmlsZXJT
ZWFyY2hEZXNjcmlwdG9yRnVuY3Rpb25SZXR1cm4gc2VhcmNoIGRlc2NyaXB0b3IgCisgICAgICAg
IGlzIHJlc2VydmVkIGZvciBsb29raW5nIGZvciByZXR1cm4gc3RhdGVtZW50cyB0aGF0IGFyZW4n
dCBpbiB0aGUgCisgICAgICAgIGFjdHVhbCBzb3VyY2UgY29kZSBvZiB0aGUgcHJvZ3JhbSwgYnV0
IHdoZW4gYXNraW5nIGZvciB0aGUgCisgICAgICAgIGFnZ3JlZ2F0ZSByZXR1cm4gdHlwZSBvZiBh
IGZ1bmN0aW9uLiBOb3csIHNlYXJjaGluZyBmb3IgCisgICAgICAgIHJldHVybiBzdGF0ZW1lbnRz
IGluIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgb2YgdGhlIHByb2dyYW0gd2lsbCAKKyAgICAgICAg
d29yayB3aGVuIHBhc3NpbmcgaW4gdGhlIHNlYXJjaCBkZXNjcmlwdG9yIFR5cGVQcm9maWxlclNl
YXJjaERlc2NyaXB0b3JOb3JtYWwuICAKKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5j
cHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Q29kZUJsb2NrKToKKyAgICAgICAgKiBydW50
aW1lL1R5cGVQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlR5cGVQcm9maWxlcjo6ZmluZExv
Y2F0aW9uKToKKyAgICAgICAgKEpTQzo6ZGVzY3JpcHRvck1hdGNoZXNUeXBlTG9jYXRpb24pOiBE
ZWxldGVkLgorCiAyMDE0LTA4LTI0ICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9u
LmVkdT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW5hbWUgRE9NLlJHQkEgYW5kIHJlbW92
ZSB3b3JrYXJvdW5kcyBpbiB0aGUgYmluZGluZ3MgZ2VuZXJhdG9yCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTcyOTI2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIwNDYsOCArMjA0NiwxMSBAQCBDb2RlQmxvY2s6OkNvZGVCbG9jayhTY3JpcHRF
eGVjdXRhYmxlKiBvCiAgICAgICAgICAgICAgICAgZ2xvYmFsVHlwZVNldCA9IHJldHVyblN0YXRl
bWVudFR5cGVTZXQoKTsKICAgICAgICAgICAgICAgICBnbG9iYWxWYXJpYWJsZUlEID0gVHlwZVBy
b2ZpbGVyUmV0dXJuU3RhdGVtZW50OwogICAgICAgICAgICAgICAgIGlmICghc2hvdWxkQW5hbHl6
ZSkgewotICAgICAgICAgICAgICAgICAgICAvLyBCZWNhdXNlIHNvbWUgcmV0dXJuIHN0YXRlbWVu
dHMgYXJlIGFkZGVkIGltcGxpY2l0bHkgKHRvIHJldHVybiB1bmRlZmluZWQgYXQgdGhlIGVuZCBv
ZiBhIGZ1bmN0aW9uKSwgYW5kIHRoZXNlIG5vZGVzIGRvbid0IGVtaXQgZXhwcmVzc2lvbiByYW5n
ZXMsIGdpdmUgdGhlbSBzb21lIHJhbmdlLgotICAgICAgICAgICAgICAgICAgICAvLyBDdXJyZW50
bHksIHRoaXMgZGl2b3QgaXMgb24gdGhlIG9wZW4gYnJhY2Ugb2YgdGhlIGZ1bmN0aW9uLiAKKyAg
ICAgICAgICAgICAgICAgICAgLy8gQmVjYXVzZSBhIHJldHVybiBzdGF0ZW1lbnQgY2FuIGJlIGFk
ZGVkIGltcGxpY2l0bHkgdG8gcmV0dXJuIHVuZGVmaW5lZCBhdCB0aGUgZW5kIG9mIGEgZnVuY3Rp
b24sCisgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGVzZSBub2RlcyBkb24ndCBlbWl0IGV4
cHJlc3Npb24gcmFuZ2VzIGJlY2F1c2UgdGhleSBhcmVuJ3QgaW4gdGhlIGFjdHVhbCBzb3VyY2Ug
dGV4dCBvZgorICAgICAgICAgICAgICAgICAgICAvLyB0aGUgdXNlcidzIHByb2dyYW0sIGdpdmUg
dGhlIHR5cGUgcHJvZmlsZXIgc29tZSByYW5nZSB0byBpZGVudGlmeSB0aGVzZSByZXR1cm4gc3Rh
dGVtZW50cy4KKyAgICAgICAgICAgICAgICAgICAgLy8gQ3VycmVudGx5LCB0aGUgdGV4dCBvZmZz
ZXQgdGhhdCBpcyB1c2VkIGFzIGlkZW50aWZpY2F0aW9uIGlzIG9uIHRoZSBvcGVuIGJyYWNlIG9m
IHRoZSBmdW5jdGlvbiAKKyAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGlzIHN0b3JlZCBvbiBU
eXBlTG9jYXRpb24ncyBtX2Rpdm90Rm9yRnVuY3Rpb25PZmZzZXRJZlJldHVyblN0YXRlbWVudCBt
ZW1iZXIgdmFyaWFibGUuCiAgICAgICAgICAgICAgICAgICAgIGRpdm90U3RhcnQgPSBkaXZvdEVu
ZCA9IG1fc291cmNlT2Zmc2V0OwogICAgICAgICAgICAgICAgICAgICBzaG91bGRBbmFseXplID0g
dHJ1ZTsKICAgICAgICAgICAgICAgICB9CkBAIC0yMDYwLDcgKzIwNjMsNyBAQCBDb2RlQmxvY2s6
OkNvZGVCbG9jayhTY3JpcHRFeGVjdXRhYmxlKiBvCiAgICAgICAgICAgICBUeXBlTG9jYXRpb24q
IGxvY2F0aW9uID0gbG9jYXRpb25QYWlyLmZpcnN0OwogICAgICAgICAgICAgYm9vbCBpc05ld0xv
Y2F0aW9uID0gbG9jYXRpb25QYWlyLnNlY29uZDsKIAotICAgICAgICAgICAgaWYgKFByb2ZpbGVU
eXBlQnl0ZWNvZGVGdW5jdGlvblJldHVyblN0YXRlbWVudCkKKyAgICAgICAgICAgIGlmIChmbGFn
ID09IFByb2ZpbGVUeXBlQnl0ZWNvZGVGdW5jdGlvblJldHVyblN0YXRlbWVudCkKICAgICAgICAg
ICAgICAgICBsb2NhdGlvbi0+bV9kaXZvdEZvckZ1bmN0aW9uT2Zmc2V0SWZSZXR1cm5TdGF0ZW1l
bnQgPSBtX3NvdXJjZU9mZnNldDsKIAogICAgICAgICAgICAgaWYgKHNob3VsZEFuYWx5emUgJiYg
aXNOZXdMb2NhdGlvbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQ
cm9maWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VHlwZVByb2ZpbGVyLmNwcAkocmV2aXNpb24gMTcyOTI2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIsMTcgKzgy
LDYgQEAgdm9pZCBUeXBlUHJvZmlsZXI6OmdldFR5cGVzRm9yVmFyaWFibGVBdAogICAgIGRlc2Ny
aXB0aW9uLT5zZXRMb2NhbFN0cnVjdHVyZXMobG9jYXRpb24tPm1faW5zdHJ1Y3Rpb25UeXBlU2V0
LT5hbGxTdHJ1Y3R1cmVSZXByZXNlbnRhdGlvbnMoKSk7CiB9CiAKLXN0YXRpYyBib29sIGRlc2Ny
aXB0b3JNYXRjaGVzVHlwZUxvY2F0aW9uKFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3IgZGVz
Y3JpcHRvciwgVHlwZUxvY2F0aW9uKiBsb2NhdGlvbikKLXsKLSAgICBpZiAoZGVzY3JpcHRvciA9
PSBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yRnVuY3Rpb25SZXR1cm4gJiYgbG9jYXRpb24t
Pm1fZ2xvYmFsVmFyaWFibGVJRCA9PSBUeXBlUHJvZmlsZXJSZXR1cm5TdGF0ZW1lbnQpICAKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoZGVzY3JpcHRvciA9PSBUeXBlUHJvZmlsZXJT
ZWFyY2hEZXNjcmlwdG9yTm9ybWFsICYmIGxvY2F0aW9uLT5tX2dsb2JhbFZhcmlhYmxlSUQgIT0g
VHlwZVByb2ZpbGVyUmV0dXJuU3RhdGVtZW50KSAgCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCiBUeXBlTG9jYXRpb24qIFR5cGVQcm9maWxlcjo6ZmluZExv
Y2F0aW9uKHVuc2lnbmVkIGRpdm90LCBpbnRwdHJfdCBzb3VyY2VJRCwgVHlwZVByb2ZpbGVyU2Vh
cmNoRGVzY3JpcHRvciBkZXNjcmlwdG9yKQogewogICAgIFF1ZXJ5S2V5IHF1ZXJ5S2V5KHNvdXJj
ZUlELCBkaXZvdCk7CkBAIC0xMTAsMTAgKzk5LDEyIEBAIFR5cGVMb2NhdGlvbiogVHlwZVByb2Zp
bGVyOjpmaW5kTG9jYXRpb24KICAgICB1bnNpZ25lZCBkaXN0YW5jZSA9IFVJTlRfTUFYOyAvLyBC
ZWNhdXNlIGFzc2lnbm1lbnRzIG1heSBiZSBuZXN0ZWQsIG1ha2Ugc3VyZSB3ZSBmaW5kIHRoZSBj
bG9zZXN0IGVuY2xvc2luZyBhc3NpZ25tZW50IHRvIHRoaXMgY2hhcmFjdGVyIG9mZnNldC4KICAg
ICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IGJ1Y2tldC5zaXplKCk7IGkgPCBzaXplOyBpKysp
IHsKICAgICAgICAgVHlwZUxvY2F0aW9uKiBsb2NhdGlvbiA9IGJ1Y2tldC5hdChpKTsKLSAgICAg
ICAgaWYgKGRlc2NyaXB0b3IgPT0gVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvckZ1bmN0aW9u
UmV0dXJuICYmIGRlc2NyaXB0b3JNYXRjaGVzVHlwZUxvY2F0aW9uKGRlc2NyaXB0b3IsIGxvY2F0
aW9uKSAmJiBsb2NhdGlvbi0+bV9kaXZvdEZvckZ1bmN0aW9uT2Zmc2V0SWZSZXR1cm5TdGF0ZW1l
bnQgPT0gZGl2b3QpCisgICAgICAgIC8vIFdlIGZvdW5kIHRoZSB0eXBlIGxvY2F0aW9uIHRoYXQg
Y29ycmVsYXRlcyB0byB0aGUgY29udmVyZ2VuY2Ugb2YgYWxsIHJldHVybiBzdGF0ZW1lbnRzIGlu
IGEgZnVuY3Rpb24uCisgICAgICAgIC8vIFRoaXMgdGV4dCBvZmZzZXQgaXMgdGhlIG9mZnNldCBv
ZiB0aGUgb3BlbmluZyBicmFjZSBpbiBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLgorICAgICAgICBp
ZiAoZGVzY3JpcHRvciA9PSBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yRnVuY3Rpb25SZXR1
cm4gJiYgbG9jYXRpb24tPm1fZ2xvYmFsVmFyaWFibGVJRCA9PSBUeXBlUHJvZmlsZXJSZXR1cm5T
dGF0ZW1lbnQgJiYgbG9jYXRpb24tPm1fZGl2b3RGb3JGdW5jdGlvbk9mZnNldElmUmV0dXJuU3Rh
dGVtZW50ID09IGRpdm90KQogICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uOwogCi0gICAgICAg
IGlmIChsb2NhdGlvbi0+bV9kaXZvdFN0YXJ0IDw9IGRpdm90ICYmIGRpdm90IDw9IGxvY2F0aW9u
LT5tX2Rpdm90RW5kICYmIGxvY2F0aW9uLT5tX2Rpdm90RW5kIC0gbG9jYXRpb24tPm1fZGl2b3RT
dGFydCA8PSBkaXN0YW5jZSAmJiBkZXNjcmlwdG9yTWF0Y2hlc1R5cGVMb2NhdGlvbihkZXNjcmlw
dG9yLCBsb2NhdGlvbikpIHsKKyAgICAgICAgaWYgKGRlc2NyaXB0b3IgIT0gVHlwZVByb2ZpbGVy
U2VhcmNoRGVzY3JpcHRvckZ1bmN0aW9uUmV0dXJuICYmIGxvY2F0aW9uLT5tX2Rpdm90U3RhcnQg
PD0gZGl2b3QgJiYgZGl2b3QgPD0gbG9jYXRpb24tPm1fZGl2b3RFbmQgJiYgbG9jYXRpb24tPm1f
ZGl2b3RFbmQgLSBsb2NhdGlvbi0+bV9kaXZvdFN0YXJ0IDw9IGRpc3RhbmNlKSB7CiAgICAgICAg
ICAgICBkaXN0YW5jZSA9IGxvY2F0aW9uLT5tX2Rpdm90RW5kIC0gbG9jYXRpb24tPm1fZGl2b3RT
dGFydDsKICAgICAgICAgICAgIGJlc3RNYXRjaCA9IGxvY2F0aW9uOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237130</attachid>
            <date>2014-08-25 20:35:47 -0700</date>
            <delta_ts>2014-08-25 21:36:59 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>5929</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcyOTQ5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDE0LTA4LTI1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFR5cGVQcm9maWxlciBzZWFyY2ggYnJlYWtzIG9uIHJldHVybiBzdGF0ZW1lbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYyMDEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWFyY2hpbmcgZm9yIHJl
dHVybiBzdGF0ZW1lbnRzIGluIHRoZSBUeXBlUHJvZmlsZXIgY3VycmVudGx5IAorICAgICAgICBi
cmVha3MgZG93biBiZWNhdXNlIGl0IGV4cGVjdGVkIHRvIHNlZSB0aGUgc2VhcmNoIGRlc2NyaXB0
b3IgCisgICAgICAgIFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3JGdW5jdGlvblJldHVybiB3
aGVuIGxvb2tpbmcgZm9yIAorICAgICAgICByZXR1cm4gc3RhdGVtZW50cyBpbiB0aGUgYWN0dWFs
IHNvdXJjZSBjb2RlIG9mIHRoZSBwcm9ncmFtLiAKKyAgICAgICAgQnV0LCBUeXBlUHJvZmlsZXJT
ZWFyY2hEZXNjcmlwdG9yRnVuY3Rpb25SZXR1cm4gc2VhcmNoIGRlc2NyaXB0b3IgCisgICAgICAg
IGlzIHJlc2VydmVkIGZvciBsb29raW5nIGZvciByZXR1cm4gc3RhdGVtZW50cyB0aGF0IGFyZW4n
dCBpbiB0aGUgCisgICAgICAgIGFjdHVhbCBzb3VyY2UgY29kZSBvZiB0aGUgcHJvZ3JhbSwgYnV0
IHdoZW4gYXNraW5nIGZvciB0aGUgCisgICAgICAgIGFnZ3JlZ2F0ZSByZXR1cm4gdHlwZSBvZiBh
IGZ1bmN0aW9uLiBOb3csIHNlYXJjaGluZyBmb3IgCisgICAgICAgIHJldHVybiBzdGF0ZW1lbnRz
IGluIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgb2YgdGhlIHByb2dyYW0gd2lsbCAKKyAgICAgICAg
d29yayB3aGVuIHBhc3NpbmcgaW4gdGhlIHNlYXJjaCBkZXNjcmlwdG9yIFR5cGVQcm9maWxlclNl
YXJjaERlc2NyaXB0b3JOb3JtYWwuICAKKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5j
cHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Q29kZUJsb2NrKToKKyAgICAgICAgKiBydW50
aW1lL1R5cGVQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlR5cGVQcm9maWxlcjo6ZmluZExv
Y2F0aW9uKToKKyAgICAgICAgKEpTQzo6ZGVzY3JpcHRvck1hdGNoZXNUeXBlTG9jYXRpb24pOiBE
ZWxldGVkLgorCiAyMDE0LTA4LTI1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldHVybiBzdGF0ZW1lbnQgVHlwZVNldCdzIG1pZ2h0IGJlIGR1cGxpY2F0ZWQK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShy
ZXZpc2lvbiAxNzI5NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA0Niw4ICsyMDQ2LDExIEBAIENvZGVCbG9jazo6
Q29kZUJsb2NrKFNjcmlwdEV4ZWN1dGFibGUqIG8KICAgICAgICAgICAgICAgICBnbG9iYWxUeXBl
U2V0ID0ganNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KG93bmVyRXhlY3V0YWJsZSktPnJldHVy
blN0YXRlbWVudFR5cGVTZXQoKTsKICAgICAgICAgICAgICAgICBnbG9iYWxWYXJpYWJsZUlEID0g
VHlwZVByb2ZpbGVyUmV0dXJuU3RhdGVtZW50OwogICAgICAgICAgICAgICAgIGlmICghc2hvdWxk
QW5hbHl6ZSkgewotICAgICAgICAgICAgICAgICAgICAvLyBCZWNhdXNlIHNvbWUgcmV0dXJuIHN0
YXRlbWVudHMgYXJlIGFkZGVkIGltcGxpY2l0bHkgKHRvIHJldHVybiB1bmRlZmluZWQgYXQgdGhl
IGVuZCBvZiBhIGZ1bmN0aW9uKSwgYW5kIHRoZXNlIG5vZGVzIGRvbid0IGVtaXQgZXhwcmVzc2lv
biByYW5nZXMsIGdpdmUgdGhlbSBzb21lIHJhbmdlLgotICAgICAgICAgICAgICAgICAgICAvLyBD
dXJyZW50bHksIHRoaXMgZGl2b3QgaXMgb24gdGhlIG9wZW4gYnJhY2Ugb2YgdGhlIGZ1bmN0aW9u
LiAKKyAgICAgICAgICAgICAgICAgICAgLy8gQmVjYXVzZSBhIHJldHVybiBzdGF0ZW1lbnQgY2Fu
IGJlIGFkZGVkIGltcGxpY2l0bHkgdG8gcmV0dXJuIHVuZGVmaW5lZCBhdCB0aGUgZW5kIG9mIGEg
ZnVuY3Rpb24sCisgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGVzZSBub2RlcyBkb24ndCBl
bWl0IGV4cHJlc3Npb24gcmFuZ2VzIGJlY2F1c2UgdGhleSBhcmVuJ3QgaW4gdGhlIGFjdHVhbCBz
b3VyY2UgdGV4dCBvZgorICAgICAgICAgICAgICAgICAgICAvLyB0aGUgdXNlcidzIHByb2dyYW0s
IGdpdmUgdGhlIHR5cGUgcHJvZmlsZXIgc29tZSByYW5nZSB0byBpZGVudGlmeSB0aGVzZSByZXR1
cm4gc3RhdGVtZW50cy4KKyAgICAgICAgICAgICAgICAgICAgLy8gQ3VycmVudGx5LCB0aGUgdGV4
dCBvZmZzZXQgdGhhdCBpcyB1c2VkIGFzIGlkZW50aWZpY2F0aW9uIGlzIG9uIHRoZSBvcGVuIGJy
YWNlIG9mIHRoZSBmdW5jdGlvbiAKKyAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGlzIHN0b3Jl
ZCBvbiBUeXBlTG9jYXRpb24ncyBtX2Rpdm90Rm9yRnVuY3Rpb25PZmZzZXRJZlJldHVyblN0YXRl
bWVudCBtZW1iZXIgdmFyaWFibGUuCiAgICAgICAgICAgICAgICAgICAgIGRpdm90U3RhcnQgPSBk
aXZvdEVuZCA9IG1fc291cmNlT2Zmc2V0OwogICAgICAgICAgICAgICAgICAgICBzaG91bGRBbmFs
eXplID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CkBAIC0yMDYwLDcgKzIwNjMsNyBAQCBDb2Rl
QmxvY2s6OkNvZGVCbG9jayhTY3JpcHRFeGVjdXRhYmxlKiBvCiAgICAgICAgICAgICBUeXBlTG9j
YXRpb24qIGxvY2F0aW9uID0gbG9jYXRpb25QYWlyLmZpcnN0OwogICAgICAgICAgICAgYm9vbCBp
c05ld0xvY2F0aW9uID0gbG9jYXRpb25QYWlyLnNlY29uZDsKIAotICAgICAgICAgICAgaWYgKFBy
b2ZpbGVUeXBlQnl0ZWNvZGVGdW5jdGlvblJldHVyblN0YXRlbWVudCkKKyAgICAgICAgICAgIGlm
IChmbGFnID09IFByb2ZpbGVUeXBlQnl0ZWNvZGVGdW5jdGlvblJldHVyblN0YXRlbWVudCkKICAg
ICAgICAgICAgICAgICBsb2NhdGlvbi0+bV9kaXZvdEZvckZ1bmN0aW9uT2Zmc2V0SWZSZXR1cm5T
dGF0ZW1lbnQgPSBtX3NvdXJjZU9mZnNldDsKIAogICAgICAgICAgICAgaWYgKHNob3VsZEFuYWx5
emUgJiYgaXNOZXdMb2NhdGlvbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1R5cGVQcm9maWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVHlwZVByb2ZpbGVyLmNwcAkocmV2aXNpb24gMTcyOTQ5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIs
MTcgKzgyLDYgQEAgdm9pZCBUeXBlUHJvZmlsZXI6OmdldFR5cGVzRm9yVmFyaWFibGVBdAogICAg
IGRlc2NyaXB0aW9uLT5zZXRMb2NhbFN0cnVjdHVyZXMobG9jYXRpb24tPm1faW5zdHJ1Y3Rpb25U
eXBlU2V0LT5hbGxTdHJ1Y3R1cmVSZXByZXNlbnRhdGlvbnMoKSk7CiB9CiAKLXN0YXRpYyBib29s
IGRlc2NyaXB0b3JNYXRjaGVzVHlwZUxvY2F0aW9uKFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0
b3IgZGVzY3JpcHRvciwgVHlwZUxvY2F0aW9uKiBsb2NhdGlvbikKLXsKLSAgICBpZiAoZGVzY3Jp
cHRvciA9PSBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yRnVuY3Rpb25SZXR1cm4gJiYgbG9j
YXRpb24tPm1fZ2xvYmFsVmFyaWFibGVJRCA9PSBUeXBlUHJvZmlsZXJSZXR1cm5TdGF0ZW1lbnQp
ICAKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoZGVzY3JpcHRvciA9PSBUeXBlUHJv
ZmlsZXJTZWFyY2hEZXNjcmlwdG9yTm9ybWFsICYmIGxvY2F0aW9uLT5tX2dsb2JhbFZhcmlhYmxl
SUQgIT0gVHlwZVByb2ZpbGVyUmV0dXJuU3RhdGVtZW50KSAgCi0gICAgICAgIHJldHVybiB0cnVl
OwotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBUeXBlTG9jYXRpb24qIFR5cGVQcm9maWxlcjo6
ZmluZExvY2F0aW9uKHVuc2lnbmVkIGRpdm90LCBpbnRwdHJfdCBzb3VyY2VJRCwgVHlwZVByb2Zp
bGVyU2VhcmNoRGVzY3JpcHRvciBkZXNjcmlwdG9yKQogewogICAgIFF1ZXJ5S2V5IHF1ZXJ5S2V5
KHNvdXJjZUlELCBkaXZvdCk7CkBAIC0xMTAsMTAgKzk5LDEyIEBAIFR5cGVMb2NhdGlvbiogVHlw
ZVByb2ZpbGVyOjpmaW5kTG9jYXRpb24KICAgICB1bnNpZ25lZCBkaXN0YW5jZSA9IFVJTlRfTUFY
OyAvLyBCZWNhdXNlIGFzc2lnbm1lbnRzIG1heSBiZSBuZXN0ZWQsIG1ha2Ugc3VyZSB3ZSBmaW5k
IHRoZSBjbG9zZXN0IGVuY2xvc2luZyBhc3NpZ25tZW50IHRvIHRoaXMgY2hhcmFjdGVyIG9mZnNl
dC4KICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IGJ1Y2tldC5zaXplKCk7IGkgPCBzaXpl
OyBpKyspIHsKICAgICAgICAgVHlwZUxvY2F0aW9uKiBsb2NhdGlvbiA9IGJ1Y2tldC5hdChpKTsK
LSAgICAgICAgaWYgKGRlc2NyaXB0b3IgPT0gVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvckZ1
bmN0aW9uUmV0dXJuICYmIGRlc2NyaXB0b3JNYXRjaGVzVHlwZUxvY2F0aW9uKGRlc2NyaXB0b3Is
IGxvY2F0aW9uKSAmJiBsb2NhdGlvbi0+bV9kaXZvdEZvckZ1bmN0aW9uT2Zmc2V0SWZSZXR1cm5T
dGF0ZW1lbnQgPT0gZGl2b3QpCisgICAgICAgIC8vIFdlIGZvdW5kIHRoZSB0eXBlIGxvY2F0aW9u
IHRoYXQgY29ycmVsYXRlcyB0byB0aGUgY29udmVyZ2VuY2Ugb2YgYWxsIHJldHVybiBzdGF0ZW1l
bnRzIGluIGEgZnVuY3Rpb24uCisgICAgICAgIC8vIFRoaXMgdGV4dCBvZmZzZXQgaXMgdGhlIG9m
ZnNldCBvZiB0aGUgb3BlbmluZyBicmFjZSBpbiBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLgorICAg
ICAgICBpZiAoZGVzY3JpcHRvciA9PSBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yRnVuY3Rp
b25SZXR1cm4gJiYgbG9jYXRpb24tPm1fZ2xvYmFsVmFyaWFibGVJRCA9PSBUeXBlUHJvZmlsZXJS
ZXR1cm5TdGF0ZW1lbnQgJiYgbG9jYXRpb24tPm1fZGl2b3RGb3JGdW5jdGlvbk9mZnNldElmUmV0
dXJuU3RhdGVtZW50ID09IGRpdm90KQogICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uOwogCi0g
ICAgICAgIGlmIChsb2NhdGlvbi0+bV9kaXZvdFN0YXJ0IDw9IGRpdm90ICYmIGRpdm90IDw9IGxv
Y2F0aW9uLT5tX2Rpdm90RW5kICYmIGxvY2F0aW9uLT5tX2Rpdm90RW5kIC0gbG9jYXRpb24tPm1f
ZGl2b3RTdGFydCA8PSBkaXN0YW5jZSAmJiBkZXNjcmlwdG9yTWF0Y2hlc1R5cGVMb2NhdGlvbihk
ZXNjcmlwdG9yLCBsb2NhdGlvbikpIHsKKyAgICAgICAgaWYgKGRlc2NyaXB0b3IgIT0gVHlwZVBy
b2ZpbGVyU2VhcmNoRGVzY3JpcHRvckZ1bmN0aW9uUmV0dXJuICYmIGxvY2F0aW9uLT5tX2Rpdm90
U3RhcnQgPD0gZGl2b3QgJiYgZGl2b3QgPD0gbG9jYXRpb24tPm1fZGl2b3RFbmQgJiYgbG9jYXRp
b24tPm1fZGl2b3RFbmQgLSBsb2NhdGlvbi0+bV9kaXZvdFN0YXJ0IDw9IGRpc3RhbmNlKSB7CiAg
ICAgICAgICAgICBkaXN0YW5jZSA9IGxvY2F0aW9uLT5tX2Rpdm90RW5kIC0gbG9jYXRpb24tPm1f
ZGl2b3RTdGFydDsKICAgICAgICAgICAgIGJlc3RNYXRjaCA9IGxvY2F0aW9uOwogICAgICAgICB9
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>