<?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>119408</bug_id>
          
          <creation_ts>2013-08-01 13:47:58 -0700</creation_ts>
          <short_desc>Incorrect behavior from non-obvious [[ToPrimitive]] conversions for MakeRope</short_desc>
          <delta_ts>2013-08-01 15:17:52 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>fpizlo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>913846</commentid>
    <comment_count>0</comment_count>
      <attachid>207948</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-08-01 13:47:58 -0700</bug_when>
    <thetext>Created attachment 207948
Testcase

We end up with bogus behavior from the DFG when attempting to perform [[ToPrimitive]] on values with exciting defaultValue behavior.

function f(a,b,c,d,e) { return &quot;1&quot;+a+b+c+d+e+&quot;6&quot;; }
var a=new String(&quot;2&quot;)
var b = 5;
var e = false;
var k={valueOf:function(){return 4;}, toString:function(){return {}}}
s=String

var h =&quot;&quot;; for (var i = 0; i &lt; 200; i++) h+=f(a,new s(3),k, b, e)
h = h.replace(/12345false6/g, &quot;&quot;)
print(&quot;Passed: &quot; + (h.length == 0));


The function f results in:
f#BJa4XW:[0x7fee8a5022f0-&gt;0x14a7cfe70, BaselineFunctionCall]: 43 m_instructions; 344 bytes; 6 parameter(s); 7 callee register(s); 0 variable(s)[   0] enter
[   1] mov		 r0, String (identifier): 1(@k0)
[   4] mov		 r1, r-8
[   7] to_primitive	 r1, r1    rare case: 66
[  10] mov		 r2, r-9
[  13] to_primitive	 r2, r2    rare case: 66
[  16] mov		 r3, r-10
[  19] to_primitive	 r3, r3    rare case: 66
[  22] mov		 r4, r-11
[  25] to_primitive	 r4, r4
[  28] mov		 r5, r-12
[  31] to_primitive	 r5, r5
[  34] mov		 r6, String (identifier): 6(@k1)
[  37] strcat		 r0, r0, 7
[  41] ret		 r0

Constants:
   k0 = String (identifier): 1
   k1 = String (identifier): 6


Which eventually produces:
Block #0 (bc#0):  (OSR target)
  Predecessors:
  Dominated by: #0
  Dominates: #0
  vars before: arg5:(Top, TOP, TOP, TOP) arg4:(Int) arg3:(Top, TOP, TOP, TOP) arg2:(Cell, TOP, TOP, TOP) arg1:(Cell, TOP, TOP, TOP) arg0:(Top, TOP, TOP, TOP)
  var links: arg5:@5 arg4:@4 arg3:@3 arg2:@2 arg1:@1 arg0:@0
   0:  skipped  &lt; 0:-&gt;	SetArgument(arg0(a), W:SideState, bc#0)
   1:           &lt; 2:-&gt;	SetArgument(, arg1(B&lt;StringObject&gt;), W:SideState, bc#0)  predicting Stringobject
   2:           &lt; 2:-&gt;	SetArgument(, arg2(C&lt;StringObject&gt;), W:SideState, bc#0)  predicting Stringobject
   3:           &lt; 2:-&gt;	SetArgument(, arg3(D~&lt;Final&gt;), W:SideState, bc#0)  predicting Final
   4:           &lt; 2:-&gt;	SetArgument(, arg4(E&lt;Int32&gt;), W:SideState, bc#0)  predicting Int
   5:           &lt; 2:-&gt;	SetArgument(, arg5(F~&lt;Boolean&gt;), W:SideState, bc#0)  predicting Bool
   6:           &lt; 2:0&gt;	JSConstant(JS|PureNum|UseAsOther, $0 = String (identifier): 1, bc#1)
   7:  skipped  &lt; 0:-&gt;	MovHint(@6&lt;StringIdent&gt;, r0(G~&lt;StringIdent&gt;), W:SideState, bc#1)
   8:           &lt; 1:1&gt;	GetLocal(@1, JS|PureNum|UseAsOther, arg1(B&lt;StringObject&gt;), R:Variables(-8), bc#4)  predicting Stringobject
   9:  skipped  &lt; 0:-&gt;	MovHint(@8&lt;StringObject&gt;, r1(H~&lt;StringObject&gt;), W:SideState, bc#4)
  10:           &lt;!2:1&gt;	ToString(Check:StringObject:@8&lt;StringObject&gt;, JS|MustGen|Clobbers|PureNum|UseAsOther|CanExit, R:JSCell_structure, bc#7)
  11:  skipped  &lt; 0:-&gt;	MovHint(@10&lt;String&gt;, r1(I~&lt;String&gt;), W:SideState, bc#7)
  12:           &lt; 1:2&gt;	GetLocal(@2, JS|PureNum|UseAsOther, arg2(C&lt;StringObject&gt;), R:Variables(-9), bc#10)  predicting Stringobject
  13:  skipped  &lt; 0:-&gt;	MovHint(@12&lt;StringObject&gt;, r2(J~&lt;StringObject&gt;), W:SideState, bc#10)
  14:           &lt;!2:2&gt;	ToString(Check:StringObject:@12&lt;StringObject&gt;, JS|MustGen|Clobbers|PureNum|UseAsOther|CanExit, R:JSCell_structure, bc#13)
  15:  skipped  &lt; 0:-&gt;	MovHint(@14&lt;String&gt;, r2(K~&lt;String&gt;), W:SideState, bc#13)
  16:           &lt; 1:3&gt;	GetLocal(@3, JS|PureNum|UseAsOther, arg3(D~&lt;Final&gt;), R:Variables(-10), bc#16)  predicting Final
  17:  skipped  &lt; 0:-&gt;	MovHint(@16&lt;Final&gt;, r3(L~&lt;Final&gt;), W:SideState, bc#16)
  18:           &lt;!2:3&gt;	ToPrimitive(@16&lt;Final&gt;, JS|MustGen|Clobbers|PureNum|UseAsOther, R:World, W:World, bc#19)
  19:  skipped  &lt; 0:-&gt;	MovHint(@18&lt;String&gt;, r3(M~&lt;String&gt;), W:SideState, bc#19)
  20:           &lt; 2:4&gt;	GetLocal(@4, JS|PureNum|UseAsOther, arg4(E&lt;Int32&gt;), R:Variables(-11), bc#22)  predicting Int
  21:  skipped  &lt; 0:-&gt;	MovHint(@20&lt;Int32&gt;, r4(N~&lt;Int32&gt;), W:SideState, bc#22)
  22:           &lt;!0:-&gt;	Phantom(Int32:@20&lt;Int32&gt;, MustGen, bc#25)
  23:  skipped  &lt; 0:-&gt;	MovHint(@20&lt;Int32&gt;, r4(O~&lt;Int32&gt;), W:SideState, bc#25)
  24:           &lt; 1:5&gt;	GetLocal(@5, JS|PureNum|UseAsOther, arg5(F~&lt;Boolean&gt;), R:Variables(-12), bc#28)  predicting Bool
  25:  skipped  &lt; 0:-&gt;	MovHint(@24&lt;Boolean&gt;, r5(P~&lt;Boolean&gt;), W:SideState, bc#28)
  26:           &lt;!1:5&gt;	ToPrimitive(@24&lt;Boolean&gt;, JS|MustGen|Clobbers|PureNum|UseAsOther, R:World, W:World, bc#31)
  27:  skipped  &lt; 0:-&gt;	MovHint(@26&lt;Boolean&gt;, r5(Q~&lt;Boolean&gt;), W:SideState, bc#31)
  28:           &lt; 2:6&gt;	JSConstant(JS|PureNum|UseAsOther, $1 = String (identifier): 6, bc#34)
  29:  skipped  &lt; 0:-&gt;	MovHint(@28&lt;StringIdent&gt;, r6(R~&lt;StringIdent&gt;), W:SideState, bc#34)
  30:           &lt;!0:-&gt;	Phantom(String:@6&lt;StringIdent&gt;, MustGen, bc#37)
  31:           &lt;!0:-&gt;	Phantom(String:@10&lt;String&gt;, MustGen, bc#37)
  32:           &lt;!0:-&gt;	Phantom(String:@14&lt;String&gt;, MustGen, bc#37)
  33:           &lt; 1:2&gt;	MakeRope(KnownString:@6&lt;StringIdent&gt;, KnownString:@10&lt;String&gt;, KnownString:@14&lt;String&gt;, JS|UseAsOther, R:GCState, W:GCState, bc#37)
  34:           &lt;!0:-&gt;	Phantom(Check:String:@18&lt;String&gt;, MustGen|CanExit, bc#37)
  35:           &lt;!1:4&gt;	ToString(@20&lt;Int32&gt;, JS|MustGen|MightClobber|UseAsOther, R:World, W:World, bc#37)
  36:           &lt; 1:4&gt;	MakeRope(KnownString:@33&lt;String&gt;, KnownString:@18&lt;String&gt;, KnownString:@35&lt;String&gt;, JS|UseAsOther, R:GCState, W:GCState, bc#37)
  37:           &lt;!1:5&gt;	ToString(@26&lt;Boolean&gt;, JS|MustGen|MightClobber|UseAsOther, R:World, W:World, bc#37)
  38:           &lt;!0:-&gt;	Phantom(String:@28&lt;StringIdent&gt;, MustGen, bc#37)
  39:           &lt; 1:6&gt;	MakeRope(KnownString:@36&lt;String&gt;, KnownString:@37&lt;String&gt;, KnownString:@28&lt;StringIdent&gt;, JS|UseAsOther, R:GCState, W:GCState, bc#37)
  40:  skipped  &lt; 0:-&gt;	MovHint(@39&lt;String&gt;, r0(S~&lt;String&gt;), W:SideState, bc#37)
  41:           &lt;!0:-&gt;	Flush(@5, MustGen, arg5(F~&lt;Boolean&gt;), W:SideState, bc#41)  predicting Bool
  42:           &lt;!0:-&gt;	Flush(@4, MustGen, arg4(E&lt;Int32&gt;), W:SideState, bc#41)  predicting Int
  43:           &lt;!0:-&gt;	Flush(@3, MustGen, arg3(D~&lt;Final&gt;), W:SideState, bc#41)  predicting Final
  44:           &lt;!0:-&gt;	Flush(@2, MustGen, arg2(C&lt;StringObject&gt;), W:SideState, bc#41)  predicting Stringobject
  45:           &lt;!0:-&gt;	Flush(@1, MustGen, arg1(B&lt;StringObject&gt;), W:SideState, bc#41)  predicting Stringobject
  46:           &lt;!0:-&gt;	Return(@39&lt;String&gt;, MustGen, W:SideState, bc#41)
  vars after: 
  var links: arg5:@24&lt;Boolean&gt; arg4:@20&lt;Int32&gt; arg3:@16&lt;Final&gt; arg2:@12&lt;StringObject&gt; arg1:@8&lt;StringObject&gt; arg0:@0 r0:@40 r1:@11 r2:@15 r3:@19 r4:@23 r5:@27 r6:@29



Where the function f eventually produces:
1undefinedundefined45false6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913848</commentid>
    <comment_count>1</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-08-01 13:48:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/14580940&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913882</commentid>
    <comment_count>2</comment_count>
      <attachid>207955</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-08-01 14:53:44 -0700</bug_when>
    <thetext>Created attachment 207955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913884</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-08-01 14:57:15 -0700</bug_when>
    <thetext>Actually &lt;rdar://14625273&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913902</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-08-01 15:17:52 -0700</bug_when>
    <thetext>Committed r153615: &lt;http://trac.webkit.org/changeset/153615&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>207948</attachid>
            <date>2013-08-01 13:47:58 -0700</date>
            <delta_ts>2013-08-01 13:47:58 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>test.js</filename>
            <type>text/plain</type>
            <size>318</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZnVuY3Rpb24gZihhLGIsYyxkLGUpIHsgcmV0dXJuICIxIithK2IrYytkK2UrIjYiOyB9CnZhciBh
PW5ldyBTdHJpbmcoIjIiKQp2YXIgYiA9IDU7CnZhciBlID0gZmFsc2U7CnZhciBrPXt2YWx1ZU9m
OmZ1bmN0aW9uKCl7cmV0dXJuIDQ7fSwgdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4ge319fQpz
PVN0cmluZwoKdmFyIGggPSIiOyBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDsgaSsrKSBoKz1mKGEs
bmV3IHMoMyksaywgYiwgZSkKaCA9IGgucmVwbGFjZSgvMTIzNDVmYWxzZTYvZywgIiIpCnByaW50
KCJQYXNzZWQ6ICIgKyAoaC5sZW5ndGggPT0gMCkpOwoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207955</attachid>
            <date>2013-08-01 14:53:44 -0700</date>
            <delta_ts>2013-08-01 15:15:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119408-20130801145606.patch</filename>
            <type>text/plain</type>
            <size>5712</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OGE4ODEwNDE1YjgzNDk4NjY2NzU1OWI3MjI3YjMyMDRjYjA1MzRkLi41YmEwNGNmY2NiZjVhNmM4
YmRmNDYwMDdiNjA3ZjI0OGYyZGU1M2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxMy0wOC0wMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIERGRyBpcyBub3QgZW5mb3JjaW5nIGNvcnJlY3Qgb3JkZXJpbmcgb2YgVG9TdHJp
bmcgY29udmVyc2lvbiBpbiBNYWtlUm9wZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ29uc3RydWN0IFRvU3RyaW5nIGFuZCBQaGFudG9tIG5vZGVzIGlu
IGFkdmFuY2Ugb2YgTWFrZVJvcGUKKyAgICAgICAgbm9kZXMgdG8gZW5zdXJlIHRoYXQgb3JkZXJp
bmcgaXMgZW5zdXJlZCwgYW5kIGNvcnJlY3QgdmFsdWVzCisgICAgICAgIHdpbGwgYmUgcmVpZmll
ZCBvbiBPU1IgZXhpdC4KKworICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorCiAyMDEzLTA4
LTAxICBKdWxpZW4gQnJpYW5jZWF1ICA8amJyaWFuY2VhdUBuZHMuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT04oRlRMKTogRml4IHNoNCBpbXBsZW1lbnRhdGlvbiBvZiBjdGlWTVRocm93VHJhbXBv
bGluZVNsb3dwYXRoLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAppbmRleCAyZWFjOWU4MWJmYTZmNzY2MTNlYTVjZTZiNjZiYzBiMzhiMjNjYzBk
Li4xOTgxY2U3YmQ4ZTU1ZDg0MDI5MDIwMjc1NTkxNzUwOTE0NWFlMGNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMjE0OCwxMSAr
MjE0OCwxOCBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0
KQogI2Vsc2UKICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1heFJvcGVBcmd1bWVudHMgPSAz
OwogI2VuZGlmCisgICAgICAgICAgICBPd25BcnJheVB0cjxOb2RlKj4gdG9TdHJpbmdOb2RlcyA9
IGFkb3B0QXJyYXlQdHIobmV3IE5vZGUqW251bU9wZXJhbmRzXSk7CisgICAgICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IG51bU9wZXJhbmRzOyBpKyspCisgICAgICAgICAgICAgICAgdG9TdHJp
bmdOb2Rlc1tpXSA9IGFkZFRvR3JhcGgoVG9TdHJpbmcsIGdldChzdGFydE9wZXJhbmQgKyBpKSk7
CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtT3BlcmFuZHM7IGkrKykKKyAg
ICAgICAgICAgICAgICBhZGRUb0dyYXBoKFBoYW50b20sIHRvU3RyaW5nTm9kZXNbaV0pOworCiAg
ICAgICAgICAgICBOb2RlKiBvcGVyYW5kc1tBZGphY2VuY3lMaXN0OjpTaXplXTsKICAgICAgICAg
ICAgIHVuc2lnbmVkIGluZGV4SW5PcGVyYW5kcyA9IDA7CiAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgQWRqYWNlbmN5TGlzdDo6U2l6ZTsgKytpKQogICAgICAgICAgICAgICAg
IG9wZXJhbmRzW2ldID0gMDsKLSAgICAgICAgICAgIGZvciAoaW50IG9wZXJhbmRJZHggPSBzdGFy
dE9wZXJhbmQ7IG9wZXJhbmRJZHggPCBzdGFydE9wZXJhbmQgKyBudW1PcGVyYW5kczsgKytvcGVy
YW5kSWR4KSB7CisgICAgICAgICAgICBmb3IgKGludCBvcGVyYW5kSWR4ID0gMDsgb3BlcmFuZElk
eCA8IG51bU9wZXJhbmRzOyArK29wZXJhbmRJZHgpIHsKICAgICAgICAgICAgICAgICBpZiAoaW5k
ZXhJbk9wZXJhbmRzID09IG1heFJvcGVBcmd1bWVudHMpIHsKICAgICAgICAgICAgICAgICAgICAg
b3BlcmFuZHNbMF0gPSBhZGRUb0dyYXBoKE1ha2VSb3BlLCBvcGVyYW5kc1swXSwgb3BlcmFuZHNb
MV0sIG9wZXJhbmRzWzJdKTsKICAgICAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MTsgaSA8IEFkamFjZW5jeUxpc3Q6OlNpemU7ICsraSkKQEAgLTIxNjIsNyArMjE2OSw3IEBAIGJv
b2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgQVNTRVJUKGluZGV4SW5PcGVyYW5kcyA8IEFkamFjZW5j
eUxpc3Q6OlNpemUpOwogICAgICAgICAgICAgICAgIEFTU0VSVChpbmRleEluT3BlcmFuZHMgPCBt
YXhSb3BlQXJndW1lbnRzKTsKLSAgICAgICAgICAgICAgICBvcGVyYW5kc1tpbmRleEluT3BlcmFu
ZHMrK10gPSBhZGRUb0dyYXBoKFRvU3RyaW5nLCBnZXQob3BlcmFuZElkeCkpOworICAgICAgICAg
ICAgICAgIG9wZXJhbmRzW2luZGV4SW5PcGVyYW5kcysrXSA9IHRvU3RyaW5nTm9kZXNbb3BlcmFu
ZElkeF07CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0aW9u
WzFdLnUub3BlcmFuZCwKICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKE1ha2VSb3BlLCBvcGVy
YW5kc1swXSwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjYxNjVmMzM2YWVk
OWI3MThmYzI2YmFkOTk3OTljOTdkYzc4NzIwMi4uN2Y0YmI3ZmFlNGIyNTM4MWMyNmM2MDYxOTlk
Njk2MzcxNzg5MWZjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA4LTAxICBPbGl2ZXIg
SHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgREZHIGlzIG5vdCBlbmZvcmNpbmcg
Y29ycmVjdCBvcmRlcmluZyBvZiBUb1N0cmluZyBjb252ZXJzaW9uIGluIE1ha2VSb3BlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk0MDgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMKKwor
ICAgICAgICAqIGZhc3QvanMvZGZnLW1ha2Utcm9wZS1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2RmZy1tYWtlLXJvcGUtc2lkZS1lZmZlY3RzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1tYWtlLXJvcGUt
c2lkZS1lZmZlY3RzLmpzOiBBZGRlZC4KKyAgICAgICAgKGYpOgorICAgICAgICAoay52YWx1ZU9m
KToKKyAgICAgICAgKGsudG9TdHJpbmcpOgorCiAyMDEzLTA4LTAxICBSdXRoIEZvbmcgIDxydXRo
X2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoaW5nIFRlc3Q6IGZhc3QvZm9ybXMvY29s
b3IvaW5wdXQtY29sb3Itb25jaGFuZ2UtZXZlbnQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9qcy9kZmctbWFrZS1yb3BlLXNpZGUtZWZmZWN0cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2pzL2RmZy1tYWtlLXJvcGUtc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iYzEyOGVlNmExYmRiYzY3YmRkNTViZGE2NzhjM2VjYWNhNGZiMjRkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctbWFrZS1yb3BlLXNpZGUtZWZm
ZWN0cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ2hlY2sgdGhhdCB0aGUgREZHIGNh
biBoYW5kbGUgTWFrZVJvcGUgb24gdmFsdWVzIHRoYXQgaGF2ZSBzaWRlIGVmZmVjdHMgb24gW1tU
b1ByaW1pdGl2ZV1dLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0
T3V0cHV0Lmxlbmd0aCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctbWFrZS1y
b3BlLXNpZGUtZWZmZWN0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctbWFrZS1yb3Bl
LXNpZGUtZWZmZWN0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkMjVjZDQ5NDQwMzk3NmY0MDQzODI4ZGM1
YmYyNTdkYTc0YjE1OGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2Rm
Zy1tYWtlLXJvcGUtc2lkZS1lZmZlY3RzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2RmZy1tYWtlLXJvcGUtc2lkZS1lZmZl
Y3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvanMvc2NyaXB0LXRlc3RzL2RmZy1tYWtlLXJvcGUtc2lkZS1lZmZlY3RzLmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLW1ha2Utcm9wZS1zaWRlLWVmZmVjdHMuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmI1MjQwOTI2YzVmMzdiNzg1ZTA5ZDZhNjBkMTliNzgwNGJmMzEyNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1tYWtl
LXJvcGUtc2lkZS1lZmZlY3RzLmpzCkBAIC0wLDAgKzEsMTYgQEAKK2Rlc2NyaXB0aW9uKAorIkNo
ZWNrIHRoYXQgdGhlIERGRyBjYW4gaGFuZGxlIE1ha2VSb3BlIG9uIHZhbHVlcyB0aGF0IGhhdmUg
c2lkZSBlZmZlY3RzIG9uIFtbVG9QcmltaXRpdmVdXS4iCispOworCitmdW5jdGlvbiBmKGEsYixj
LGQsZSkgeyByZXR1cm4gIjEiK2ErYitjK2QrZSsiNiI7IH0KK3ZhciBhPW5ldyBTdHJpbmcoIjIi
KQordmFyIGIgPSA1OwordmFyIGUgPSBmYWxzZTsKK3ZhciBrPXt2YWx1ZU9mOmZ1bmN0aW9uKCl7
cmV0dXJuIDQ7fSwgdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4ge319fQorcz1TdHJpbmcKKwor
dmFyIHRlc3RPdXRwdXQgPSIiOyBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDsgaSsrKSAKKwl0ZXN0
T3V0cHV0ICs9IGYoYSxuZXcgcygzKSxrLCBiLCBlKTsKK3Rlc3RPdXRwdXQgPSB0ZXN0T3V0cHV0
LnJlcGxhY2UoLzEyMzQ1ZmFsc2U2L2csICIiKTsKK3Nob3VsZEJlKCJ0ZXN0T3V0cHV0Lmxlbmd0
aCIsICIwIik7CisK
</data>
<flag name="review"
          id="229811"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>