<?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>170882</bug_id>
          
          <creation_ts>2017-04-15 22:09:18 -0700</creation_ts>
          <short_desc>test262: test262/test/built-ins/Object/prototype/toLocaleString/primitive_this_value.js</short_desc>
          <delta_ts>2017-04-16 19:59:45 -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>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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1297729</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-15 22:09:18 -0700</bug_when>
    <thetext>test262/test/built-ins/Object/prototype/toLocaleString/primitive_this_value.js

Summary:
In strict mode retains the primitive valueless of a this object.
In invoking toString the primitive value is passed not the ToObject version of it.
So the end result is both the toString accessor and invocation the this object is
the primitive value not an object.

Boiled down to:

    &quot;use strict&quot;;
    Boolean.prototype.toString = function() { return typeof this; }
    assert( true.toLocaleString() === &quot;boolean&quot; )

Notes:
- Chrome and Firefox both pass
- Safari produced &quot;object&quot;

Spec:
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
https://tc39.github.io/ecma262/#_ref_3826

&gt; 1. Let O be the this value.
&gt; 2. Return ? Invoke(O, &quot;toString&quot;).

7.3.18 Invoke ( V, P [ , argumentsList ] )
https://tc39.github.io/ecma262/#sec-invoke

&gt; ...
&gt; 3. Let func be ? GetV(V, P).
&gt; 4. Return ? Call(func, V, argumentsList).

7.3.2 GetV ( V, P )
https://tc39.github.io/ecma262/#sec-getv

&gt; ...
&gt; 2. Let O be ? ToObject(V).
&gt; 3. Return ? O.[[Get]](P, V).

7.3.12 Call ( F, V [ , argumentsList ] )
https://tc39.github.io/ecma262/#sec-call

&gt; 1. If argumentsList was not passed, set argumentsList to a new empty List.
&gt; 2. If IsCallable(F) is false, throw a TypeError exception.
&gt; 3. Return ? F.[[Call]](V, argumentsList).

The key parts of this are:

  - In toLocaleString, O is the this value (not a ToObject of it)
  - GetV uses [[Get]] passing along the value (not the ToObject) to use as the receiver when getting an accessor
  - Call is also passed the value (not the ToObject) to use as the this object in the call

This must be one of the weirdest corners of JavaScript.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297731</commentid>
    <comment_count>1</comment_count>
      <attachid>307217</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-15 22:13:52 -0700</bug_when>
    <thetext>Created attachment 307217
[PATCH] Proposed Fix

I didn&apos;t add a new test for this because I considered it too obscure. test262 covers it, and I think that should be enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297767</commentid>
    <comment_count>2</comment_count>
      <attachid>307217</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-16 10:05:15 -0700</bug_when>
    <thetext>Comment on attachment 307217
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/runtime/ObjectPrototype.cpp:294
&gt; +    JSValue toString = object-&gt;getV(exec, vm.propertyNames-&gt;toString, thisValue);

We usually do this another way:
We already have a way of distinguishing between |this| and receiver. The first argument to PropertySlot constructor is |this|. Then, you can call getPropertySlot on the receiver. That&apos;s what I&apos;d do here instead of making this new function, which looks slightly wrong since it sets |this| only after doing the lookup. You can write code like this:

PropertySlot slot(thisValue, ...Get);
JSValue toString =  object-&gt;getPropertySlot(exec, slot, toStringIdent) ? slot.getValue(exec, toStringIdent) : jsUndefined();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297803</commentid>
    <comment_count>3</comment_count>
      <attachid>307217</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-16 13:40:10 -0700</bug_when>
    <thetext>Comment on attachment 307217
[PATCH] Proposed Fix

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

&gt;&gt; Source/JavaScriptCore/runtime/ObjectPrototype.cpp:294
&gt;&gt; +    JSValue toString = object-&gt;getV(exec, vm.propertyNames-&gt;toString, thisValue);
&gt; 
&gt; We usually do this another way:
&gt; We already have a way of distinguishing between |this| and receiver. The first argument to PropertySlot constructor is |this|. Then, you can call getPropertySlot on the receiver. That&apos;s what I&apos;d do here instead of making this new function, which looks slightly wrong since it sets |this| only after doing the lookup. You can write code like this:
&gt; 
&gt; PropertySlot slot(thisValue, ...Get);
&gt; JSValue toString =  object-&gt;getPropertySlot(exec, slot, toStringIdent) ? slot.getValue(exec, toStringIdent) : jsUndefined();

Much cleaner!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297839</commentid>
    <comment_count>4</comment_count>
      <attachid>307252</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-16 18:50:57 -0700</bug_when>
    <thetext>Created attachment 307252
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297845</commentid>
    <comment_count>5</comment_count>
      <attachid>307252</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-16 19:59:43 -0700</bug_when>
    <thetext>Comment on attachment 307252
[PATCH] Proposed Fix

Clearing flags on attachment: 307252

Committed r215405: &lt;http://trac.webkit.org/changeset/215405&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297846</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-16 19:59:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307217</attachid>
            <date>2017-04-15 22:13:52 -0700</date>
            <delta_ts>2017-04-16 18:50:57 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>getV-1.patch</filename>
            <type>text/plain</type>
            <size>8225</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NjA0YjAwMWQwNGYuLjQ4M2Q0ZTlhMzI1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE0IEBACiAyMDE3LTA0LTE1ICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgdGVzdDI2MjogdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9PYmplY3QvcHJvdG90eXBlL3RvTG9jYWxlU3RyaW5nL3ByaW1p
dGl2ZV90aGlzX3ZhbHVlLmpzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzA4ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHRlc3QyNjIueWFtbDoKKworMjAxNy0wNC0xNSAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIHRlc3QyNjI6IHRlc3QyNjIvdGVzdC9i
dWlsdC1pbnMvT2JqZWN0L2dldE93blByb3BlcnR5TmFtZXMvMTUuMi4zLjQtNC00NC5qcwogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwODc5CiAKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi55YW1sIGIvSlNUZXN0cy90ZXN0MjYyLnlhbWwKaW5k
ZXggNDFiNWYzMzU3ZjguLjM1YjQyOGZiYWQ0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIu
eWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIueWFtbApAQCAtMTI3MzAsOSArMTI3MzAsOSBAQAog
LSBwYXRoOiB0ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0FycmF5L3Byb3RvdHlwZS90b0xvY2FsZVN0
cmluZy9uYW1lLmpzCiAgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBb
Ii4uLy4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uLy4uL2hhcm5l
c3Mvc3RhLmpzIiwgIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3MvcHJvcGVydHlIZWxwZXIuanMiXSwg
WzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXJyYXkvcHJvdG90eXBl
L3RvTG9jYWxlU3RyaW5nL3ByaW1pdGl2ZV90aGlzX3ZhbHVlLmpzCi0gIGNtZDogcnVuVGVzdDI2
MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5q
cyIsICIuLi8uLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBy
dW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vLi4vaGFybmVz
cy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3Rd
CiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXJyYXkvcHJvdG90eXBlL3RvTG9jYWxl
U3RyaW5nL3ByaW1pdGl2ZV90aGlzX3ZhbHVlX2dldHRlci5qcwotICBjbWQ6IHJ1blRlc3QyNjIg
OmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMi
LCAiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVu
VGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3Mv
YXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQog
LSBwYXRoOiB0ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0FycmF5L3Byb3RvdHlwZS90b1N0cmluZy9T
MTUuNC40LjJfQTFfVDEuanMKICAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vLi4v
aGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BcnJh
eS9wcm90b3R5cGUvdG9TdHJpbmcvUzE1LjQuNC4yX0ExX1QxLmpzCkBAIC0zNDI1MCw5ICszNDI1
MCw5IEBACiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvT2JqZWN0L3Byb3RvdHlwZS90
b0xvY2FsZVN0cmluZy9uYW1lLmpzCiAgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNl
cHRpb24iLCBbIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIiwgIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3MvcHJvcGVydHlIZWxw
ZXIuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvT2JqZWN0
L3Byb3RvdHlwZS90b0xvY2FsZVN0cmluZy9wcmltaXRpdmVfdGhpc192YWx1ZS5qcwotICBjbWQ6
IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vLi4vaGFybmVz
cy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3Rd
CisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4u
Ly4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0s
IFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL09iamVjdC9wcm90b3R5
cGUvdG9Mb2NhbGVTdHJpbmcvcHJpbWl0aXZlX3RoaXNfdmFsdWVfZ2V0dGVyLmpzCi0gIGNtZDog
cnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi8uLi9oYXJuZXNz
L2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0K
KyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4v
Li4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwg
WzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvT2JqZWN0L3Byb3RvdHlw
ZS90b1N0cmluZy8xNS4yLjQuMi0xLTEuanMKICAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4v
Li4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9PYmplY3QvcHJvdG90eXBlL3RvU3RyaW5nLzE1LjIuNC4yLTEtMS5qcwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKaW5kZXggOTdkMmZmNmM3YjguLjY0ZWJmYzA0NTI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAxNy0wNC0xNSAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisgICAgICAgIHRlc3QyNjI6IHRlc3QyNjIvdGVzdC9i
dWlsdC1pbnMvT2JqZWN0L3Byb3RvdHlwZS90b0xvY2FsZVN0cmluZy9wcmltaXRpdmVfdGhpc192
YWx1ZS5qcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwODgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRWKToKKyAg
ICAgICAgV2UgbmVlZCBhIHZlcnNpb24gb2YgW1tHZXRdXSB0aGF0IGNhbiBoYXZlIGEgdmFsdWUg
cGFzc2VkIGFzIHRoZSByZWNlaXZlci4KKyAgICAgICAgSlNPYmplY3Q6OmdldChQKSBtYXRjaGVz
IHRoZSBjb21tb24gb3BlcmF0aW9uOiBPLltbR2V0XV0oUCwgTykuCisgICAgICAgIEpTT2JqZWN0
OjpnZXRWKFAsIFYpIG1hdGNoZXMgdGhlIHZlcnkgcmFyZTogTy5bW0dldF1dKFAsIFYpLgorCisg
ICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpvYmpl
Y3RQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6CisgICAgICAgIEluIHRoaXMgY2FzZSB3ZSBzaG91
bGQgYmUgdXNpbmcgdGhlIHRoaXMgdmFsdWUgd2l0aG91dCBUb09iamVjdCBjb252ZXJzaW9uCisg
ICAgICAgIGJvdGggd2hlbiBnZXR0aW5nIHRoZSBhY2Nlc3NvciBhbmQgY2FsbGluZyBpdC4gSW4g
c3RyaWN0IG1vZGUsIHRoZSB0aGlzIHZhbHVlCisgICAgICAgIHdpbGwgcmVtYWluIGl0cyBzaW1w
bGUgdmFsdWUsIGluIG5vbi1zdHJpY3QgaXQgaXMgc3RpbGwgY29udmVydGVkLgorCisyMDE3LTA0
LTE1ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgdGVz
dDI2MjogdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9PYmplY3QvZ2V0T3duUHJvcGVydHlOYW1lcy8x
NS4yLjMuNC00LTQ0LmpzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzA4NzkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgK
aW5kZXggZGYyZDRhMWZlYTguLjZhY2MyZDU4MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmgKQEAgLTE2MSw2ICsxNjEsNyBAQCBwdWJsaWM6CiAgICAgICAgIAog
ICAgIEpTVmFsdWUgZ2V0KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSkgY29uc3Q7CiAgICAgSlNW
YWx1ZSBnZXQoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKSBjb25zdDsKKyAgICBK
U1ZhbHVlIGdldFYoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlIHJlY2VpdmVyKSBj
b25zdDsKIAogICAgIGJvb2wgZ2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CiAgICAgYm9vbCBnZXRQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTEzOTgsNyArMTM5OSw3
IEBAIGlubGluZSBKU1ZhbHVlIEpTT2JqZWN0OjpnZXQoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lKSBjb25zdAogICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXMsIFBy
b3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwogICAgIGlmIChjb25zdF9jYXN0
PEpTT2JqZWN0Kj4odGhpcyktPmdldFByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpKQogICAgICAgICByZXR1cm4gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwot
ICAgIAorCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE0MTEsNiArMTQxMiwx
NyBAQCBpbmxpbmUgSlNWYWx1ZSBKU09iamVjdDo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lKSBjb25zdAogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCitp
bmxpbmUgSlNWYWx1ZSBKU09iamVjdDo6Z2V0VihFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgcmVjZWl2ZXIpIGNvbnN0Cit7CisgICAgUHJvcGVydHlT
bG90IHNsb3QodGhpcywgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7Cisg
ICAgaWYgKGNvbnN0X2Nhc3Q8SlNPYmplY3QqPih0aGlzKS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAgc2xvdC5zZXRUaGlzVmFsdWUocmVjZWl2
ZXIpOworICAgICAgICByZXR1cm4gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwor
ICAgIH0KKworICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworfQorCiBpbmxpbmUgYm9vbCBKU09i
amVjdDo6cHV0T3duRGF0YVByb3BlcnR5KFZNJiB2bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEFTU0VSVCh2
YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90
eXBlLmNwcAppbmRleCA5Y2QzMDJjMzNlMi4uMmQwNzUwYzVhYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtMjgxLDIzICsy
ODEsMjggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNUb0xv
Y2FsZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICAvLyAxLiBMZXQg
TyBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgVG9PYmplY3QgcGFzc2luZyB0aGUgdGhpcyB2YWx1
ZSBhcyB0aGUgYXJndW1lbnQuCi0gICAgSlNPYmplY3QqIG9iamVjdCA9IGV4ZWMtPnRoaXNWYWx1
ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVjdChleGVjKTsKKyAgICAvLyAxLiBM
ZXQgViBiZSB0aGUgdGhpcyB2YWx1ZS4KKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRo
aXNWYWx1ZSgpOworCisgICAgLy8gMi4gSW52b2tlKFYsICJ0b1N0cmluZyIpCisKKyAgICAvLyBM
ZXQgTyBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgVG9PYmplY3QgcGFzc2luZyB0aGUgdGhpcyB2
YWx1ZSBhcyB0aGUgYXJndW1lbnQuCisgICAgSlNPYmplY3QqIG9iamVjdCA9IHRoaXNWYWx1ZS50
b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKLSAgICAvLyAyLiBMZXQgdG9TdHJp
bmcgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBbW0dldF1dIGludGVybmFsIG1ldGhvZCBv
ZiBPIHBhc3NpbmcgInRvU3RyaW5nIiBhcyB0aGUgYXJndW1lbnQuCi0gICAgSlNWYWx1ZSB0b1N0
cmluZyA9IG9iamVjdC0+Z2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nKTsKKyAg
ICAvLyBMZXQgdG9TdHJpbmcgYmUgdGhlIE8uW1tHZXRdXSgidG9TdHJpbmciLCBWKQorICAgIEpT
VmFsdWUgdG9TdHJpbmcgPSBvYmplY3QtPmdldFYoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+dG9T
dHJpbmcsIHRoaXNWYWx1ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2Rl
ZEpTVmFsdWUoKSk7CiAKLSAgICAvLyAzLiBJZiBJc0NhbGxhYmxlKHRvU3RyaW5nKSBpcyBmYWxz
ZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorICAgIC8vIElmIElzQ2FsbGFibGUodG9T
dHJpbmcpIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCiAgICAgQ2FsbERh
dGEgY2FsbERhdGE7CiAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YSh0b1N0cmlu
ZywgY2FsbERhdGEpOwogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZTo6Tm9uZSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIC8vIDQuIFJl
dHVybiB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIFtbQ2FsbF1dIGludGVybmFsIG1ldGhvZCBv
ZiB0b1N0cmluZyBwYXNzaW5nIE8gYXMgdGhlIHRoaXMgdmFsdWUgYW5kIG5vIGFyZ3VtZW50cy4K
KyAgICAvLyBSZXR1cm4gdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBbW0NhbGxdXSBpbnRlcm5h
bCBtZXRob2Qgb2YgdG9TdHJpbmcgcGFzc2luZyB0aGUgdGhpcyB2YWx1ZSBhbmQgbm8gYXJndW1l
bnRzLgogICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNh
bGwoZXhlYywgdG9TdHJpbmcsIGNhbGxUeXBlLCBjYWxsRGF0YSwgb2JqZWN0LCBleGVjLT5lbXB0
eUxpc3QoKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbChleGVjLCB0b1N0cmlu
ZywgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlzVmFsdWUsIGV4ZWMtPmVtcHR5TGlzdCgpKSk7CiB9
CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jVG9TdHJpbmco
RXhlY1N0YXRlKiBleGVjKQo=
</data>
<flag name="review"
          id="328507"
          type_id="1"
          status="-"
          setter="saam"
    />
    <flag name="commit-queue"
          id="328508"
          type_id="3"
          status="-"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307252</attachid>
            <date>2017-04-16 18:50:57 -0700</date>
            <delta_ts>2017-04-16 19:59:43 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>revised-1.patch</filename>
            <type>text/plain</type>
            <size>8929</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YzVkNTg4MTYwZTIuLmVjNDNjYTJiNmUzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE0IEBACiAyMDE3LTA0LTE2ICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgdGVzdDI2MjogdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9PYmplY3QvcHJvdG90eXBlL3RvTG9jYWxlU3RyaW5nL3ByaW1p
dGl2ZV90aGlzX3ZhbHVlLmpzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzA4ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHRlc3QyNjIueWFtbDoKKworMjAxNy0wNC0xNiAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIHRlc3QyNjI6IHRlc3QyNjIvdGVzdC9i
dWlsdC1pbnMvaXNOYU4vdG9wcmltaXRpdmUtbm90LWNhbGxhYmxlLXRocm93cy5qcwogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwODg4CiAKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi55YW1sIGIvSlNUZXN0cy90ZXN0MjYyLnlhbWwKaW5kZXgg
NTY1ODA3NWRkOTQuLjNjMjM4N2Q5YTE0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIueWFt
bAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIueWFtbApAQCAtMTI3MzAsOSArMTI3MzAsOSBAQAogLSBw
YXRoOiB0ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0FycmF5L3Byb3RvdHlwZS90b0xvY2FsZVN0cmlu
Zy9uYW1lLmpzCiAgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4u
Ly4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3Mv
c3RhLmpzIiwgIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3MvcHJvcGVydHlIZWxwZXIuanMiXSwgWzpz
dHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXJyYXkvcHJvdG90eXBlL3Rv
TG9jYWxlU3RyaW5nL3ByaW1pdGl2ZV90aGlzX3ZhbHVlLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6
ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIs
ICIuLi8uLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5U
ZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9h
c3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAt
IHBhdGg6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXJyYXkvcHJvdG90eXBlL3RvTG9jYWxlU3Ry
aW5nL3ByaW1pdGl2ZV90aGlzX3ZhbHVlX2dldHRlci5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZh
aWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAi
Li4vLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVz
dDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3MvYXNz
ZXJ0LmpzIiwgIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBw
YXRoOiB0ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0FycmF5L3Byb3RvdHlwZS90b1N0cmluZy9TMTUu
NC40LjJfQTFfVDEuanMKICAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIs
IFsiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BcnJheS9w
cm90b3R5cGUvdG9TdHJpbmcvUzE1LjQuNC4yX0ExX1QxLmpzCkBAIC0zNDI1MCw5ICszNDI1MCw5
IEBACiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvT2JqZWN0L3Byb3RvdHlwZS90b0xv
Y2FsZVN0cmluZy9uYW1lLmpzCiAgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRp
b24iLCBbIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uLy4u
L2hhcm5lc3Mvc3RhLmpzIiwgIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3MvcHJvcGVydHlIZWxwZXIu
anMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvT2JqZWN0L3By
b3RvdHlwZS90b0xvY2FsZVN0cmluZy9wcmltaXRpdmVfdGhpc192YWx1ZS5qcwotICBjbWQ6IHJ1
blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9h
c3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisg
IGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uLy4u
L2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6
c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL09iamVjdC9wcm90b3R5cGUv
dG9Mb2NhbGVTdHJpbmcvcHJpbWl0aXZlX3RoaXNfdmFsdWVfZ2V0dGVyLmpzCi0gIGNtZDogcnVu
VGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi8uLi9oYXJuZXNzL2Fz
c2VydC5qcyIsICIuLi8uLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAg
Y21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpz
dHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvT2JqZWN0L3Byb3RvdHlwZS90
b1N0cmluZy8xNS4yLjQuMi0xLTEuanMKICAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4
Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2J1aWx0LWlu
cy9PYmplY3QvcHJvdG90eXBlL3RvU3RyaW5nLzE1LjIuNC4yLTEtMS5qcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM0NzRk
ZWRhZTAxLi4xMWYyYzhhNzIzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE2IEBACiAyMDE3LTA0LTE2ICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgdGVzdDI2Mjog
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9PYmplY3QvcHJvdG90eXBlL3RvTG9jYWxlU3RyaW5nL3By
aW1pdGl2ZV90aGlzX3ZhbHVlLmpzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzA4ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGpzL2RvbS9vYmplY3QtcHJvdG90eXBlLXRvTG9jYWxlU3RyaW5nLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL29iamVjdC1wcm90b3R5
cGUtdG9Mb2NhbGVTdHJpbmcuanM6CisgICAgICAgIFRlc3QgdGhlIGNhc2Ugb2YgdG9Mb2NhbGVT
dHJpbmcgd2hlcmUgdG9TdHJpbmcgZG9lcyBub3QgZXhpc3QuCisKKzIwMTctMDQtMTYgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwogICAgICAgICB0ZXN0MjYyOiB0ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0eU5hbWVzLzE1LjIuMy40LTQt
NDQuanMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MDg3OQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vb2JqZWN0LXByb3RvdHlwZS10
b0xvY2FsZVN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vb2JqZWN0LXBy
b3RvdHlwZS10b0xvY2FsZVN0cmluZy1leHBlY3RlZC50eHQKaW5kZXggNTgxNjQ5Njg5NmYuLmNh
NzQ0MjIzODY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vb2JqZWN0LXByb3RvdHlw
ZS10b0xvY2FsZVN0cmluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL29i
amVjdC1wcm90b3R5cGUtdG9Mb2NhbGVTdHJpbmctZXhwZWN0ZWQudHh0CkBAIC03LDYgKzcsOCBA
QCBQQVNTIG8udG9Mb2NhbGVTdHJpbmcoKSBpcyBvLnRvU3RyaW5nKCkKIFBBU1Mgby50b0xvY2Fs
ZVN0cmluZygpIGlzICJEeW5hbWljIHRvTG9jYWxlU3RyaW5nKCkiCiBQQVNTIE9iamVjdC5wcm90
b3R5cGUudG9Mb2NhbGVTdHJpbmcuY2FsbCgnSGVsbG8sIHdvcmxkIScpIGlzICJIZWxsbywgd29y
bGQhIgogUEFTUyBPYmplY3QucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmNhbGwoJ0hlbGxvLCB3
b3JsZCEnKSBpcyAic3RyaW5nUHJvdG90eXBlVG9TdHJpbmciCitQQVNTIG9iai50b0xvY2FsZVN0
cmluZygpIGlzIG9iai50b1N0cmluZygpCitQQVNTIG9iai50b0xvY2FsZVN0cmluZygpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvb2JqZWN0LXByb3RvdHlwZS10b0xvY2FsZVN0cmluZy5qcyBiL0xheW91
dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvb2JqZWN0LXByb3RvdHlwZS10b0xvY2FsZVN0cmlu
Zy5qcwppbmRleCA5NzcwNDQ1MTE1NC4uZGQzNDY5NzFjOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvb2JqZWN0LXByb3RvdHlwZS10b0xvY2FsZVN0cmluZy5q
cworKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL29iamVjdC1wcm90b3R5cGUt
dG9Mb2NhbGVTdHJpbmcuanMKQEAgLTEzLDMgKzEzLDggQEAgdmFyIHN0cmluZ1Byb3RvdHlwZVRv
U3RyaW5nID0gU3RyaW5nLnByb3RvdHlwZS50b1N0cmluZzsKIFN0cmluZy5wcm90b3R5cGUudG9T
dHJpbmcgPSAoZnVuY3Rpb24oKXsgcmV0dXJuICJzdHJpbmdQcm90b3R5cGVUb1N0cmluZyI7IH0p
Owogc2hvdWxkQmUoIk9iamVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcuY2FsbCgnSGVsbG8s
IHdvcmxkIScpIiwgJyJzdHJpbmdQcm90b3R5cGVUb1N0cmluZyInKTsKIFN0cmluZy5wcm90b3R5
cGUudG9TdHJpbmcgPSBzdHJpbmdQcm90b3R5cGVUb1N0cmluZzsKKwordmFyIG9iaiA9IHt9Owor
c2hvdWxkQmUoIm9iai50b0xvY2FsZVN0cmluZygpIiwgIm9iai50b1N0cmluZygpIik7CitkZWxl
dGUgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzsKK3Nob3VsZFRocm93KCJvYmoudG9Mb2NhbGVT
dHJpbmcoKSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggZDVhM2E0MmYzMzQuLjJjNzZl
MDE4YjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOCBAQAogMjAxNy0w
NC0xNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisgICAgICAgIHRl
c3QyNjI6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvT2JqZWN0L3Byb3RvdHlwZS90b0xvY2FsZVN0
cmluZy9wcmltaXRpdmVfdGhpc192YWx1ZS5qcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwODgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHA6CisgICAg
ICAgIChKU0M6Om9iamVjdFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKToKKyAgICAgICAgV2Ugc2hv
dWxkIGJlIHVzaW5nIHRoZSB0aGlzIHZhbHVlIHdpdGhvdXQgVG9PYmplY3QgY29udmVyc2lvbiBi
b3RoIHdoZW4KKyAgICAgICAgZ2V0dGluZyB0aGUgcG90ZW50aWFsIGFjY2Vzc29yIGFuZCBjYWxs
aW5nIGl0LiBJbiBzdHJpY3QgbW9kZSwgdGhlIHRoaXMKKyAgICAgICAgdmFsdWUgd2lsbCByZW1h
aW4gaXRzIHNpbXBsZSB2YWx1ZSwgaW4gbm9uLXN0cmljdCBpdCBpcyBzdGlsbCBjb252ZXJ0ZWQu
CisKKzIwMTctMDQtMTYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwog
ICAgICAgICB0ZXN0MjYyOiB0ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL2lzTmFOL3RvcHJpbWl0aXZl
LW5vdC1jYWxsYWJsZS10aHJvd3MuanMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MDg4OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCA5Y2QzMDJjMzNlMi4uYzAzZGMwYTU5NmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBl
LmNwcApAQCAtMjgxLDIzICsyODEsMzAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZt
ID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKLSAgICAvLyAxLiBMZXQgTyBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgVG9PYmplY3QgcGFz
c2luZyB0aGUgdGhpcyB2YWx1ZSBhcyB0aGUgYXJndW1lbnQuCi0gICAgSlNPYmplY3QqIG9iamVj
dCA9IGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVjdChl
eGVjKTsKKyAgICAvLyAxLiBMZXQgViBiZSB0aGUgdGhpcyB2YWx1ZS4KKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOworCisgICAgLy8gMi4gSW52b2tlKFYsICJ0b1N0
cmluZyIpCisKKyAgICAvLyBMZXQgTyBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgVG9PYmplY3Qg
cGFzc2luZyB0aGUgdGhpcyB2YWx1ZSBhcyB0aGUgYXJndW1lbnQuCisgICAgSlNPYmplY3QqIG9i
amVjdCA9IHRoaXNWYWx1ZS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKLSAg
ICAvLyAyLiBMZXQgdG9TdHJpbmcgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBbW0dldF1d
IGludGVybmFsIG1ldGhvZCBvZiBPIHBhc3NpbmcgInRvU3RyaW5nIiBhcyB0aGUgYXJndW1lbnQu
Ci0gICAgSlNWYWx1ZSB0b1N0cmluZyA9IG9iamVjdC0+Z2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFt
ZXMtPnRvU3RyaW5nKTsKKyAgICAvLyBMZXQgdG9TdHJpbmcgYmUgdGhlIE8uW1tHZXRdXSgidG9T
dHJpbmciLCBWKQorICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXNWYWx1ZSwgUHJvcGVydHlTbG90
OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7CisgICAgYm9vbCBoYXNQcm9wZXJ0eSA9IG9iamVj
dC0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nLCBzbG90
KTsKKyAgICBKU1ZhbHVlIHRvU3RyaW5nID0gaGFzUHJvcGVydHkgPyBzbG90LmdldFZhbHVlKGV4
ZWMsIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nKSA6IGpzVW5kZWZpbmVkKCk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKLSAgICAvLyAzLiBJ
ZiBJc0NhbGxhYmxlKHRvU3RyaW5nKSBpcyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0
aW9uLgorICAgIC8vIElmIElzQ2FsbGFibGUodG9TdHJpbmcpIGlzIGZhbHNlLCB0aHJvdyBhIFR5
cGVFcnJvciBleGNlcHRpb24uCiAgICAgQ2FsbERhdGEgY2FsbERhdGE7CiAgICAgQ2FsbFR5cGUg
Y2FsbFR5cGUgPSBnZXRDYWxsRGF0YSh0b1N0cmluZywgY2FsbERhdGEpOwogICAgIGlmIChjYWxs
VHlwZSA9PSBDYWxsVHlwZTo6Tm9uZSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2Nv
cGUpOwogCi0gICAgLy8gNC4gUmV0dXJuIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgW1tDYWxs
XV0gaW50ZXJuYWwgbWV0aG9kIG9mIHRvU3RyaW5nIHBhc3NpbmcgTyBhcyB0aGUgdGhpcyB2YWx1
ZSBhbmQgbm8gYXJndW1lbnRzLgorICAgIC8vIFJldHVybiB0aGUgcmVzdWx0IG9mIGNhbGxpbmcg
dGhlIFtbQ2FsbF1dIGludGVybmFsIG1ldGhvZCBvZiB0b1N0cmluZyBwYXNzaW5nIHRoZSB0aGlz
IHZhbHVlIGFuZCBubyBhcmd1bWVudHMuCiAgICAgc2NvcGUucmVsZWFzZSgpOwotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoY2FsbChleGVjLCB0b1N0cmluZywgY2FsbFR5cGUsIGNhbGxEYXRh
LCBvYmplY3QsIGV4ZWMtPmVtcHR5TGlzdCgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjYWxsKGV4ZWMsIHRvU3RyaW5nLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNWYWx1ZSwgZXhl
Yy0+ZW1wdHlMaXN0KCkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmpl
Y3RQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>