<?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>145360</bug_id>
          
          <creation_ts>2015-05-24 12:32:28 -0700</creation_ts>
          <short_desc>[JSC] Generate put_by_val_direct for indexed identifiers instead of put_by_id with direct postfix</short_desc>
          <delta_ts>2017-04-24 19:07:28 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          
          <blocked>145358</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>barraclough</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
    
    <cc>oliver</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1097171</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-24 12:32:28 -0700</bug_when>
    <thetext>[JSC] Generate put_by_val_direct for indexed identifiers instead of put_by_id with direct postfix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097172</commentid>
    <comment_count>1</comment_count>
      <attachid>253663</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-24 12:34:20 -0700</bug_when>
    <thetext>Created attachment 253663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097177</commentid>
    <comment_count>2</comment_count>
      <attachid>253665</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-24 12:39:27 -0700</bug_when>
    <thetext>Created attachment 253665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097320</commentid>
    <comment_count>3</comment_count>
      <attachid>253665</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-26 09:26:00 -0700</bug_when>
    <thetext>Comment on attachment 253665
Patch

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

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:573
&gt; +    const auto* identifier = node.name();
&gt; +    if (identifier) {

I suggest putting this definition inside the if.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097327</commentid>
    <comment_count>4</comment_count>
      <attachid>253665</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-26 10:16:53 -0700</bug_when>
    <thetext>Comment on attachment 253665
Patch

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

Thanks for your review.

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:573
&gt;&gt; +    if (identifier) {
&gt; 
&gt; I suggest putting this definition inside the if.

Sounds nice. I&apos;ll do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097331</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-26 10:27:01 -0700</bug_when>
    <thetext>Committed r184859: &lt;http://trac.webkit.org/changeset/184859&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097371</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-26 12:25:29 -0700</bug_when>
    <thetext>EFL JSC tests fail due to performance regression.
I&apos;ll investigate it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097374</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-26 12:35:44 -0700</bug_when>
    <thetext>Ah, OK. This test is flaky (I think this patch is not related to it). (this patch&apos;s build is https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Thumb2%20Release/builds/13243)

Before this patch, it is failed frequently.
https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Thumb2%20Release/builds/13238
https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Thumb2%20Release/builds/13234</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097485</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-26 15:14:21 -0700</bug_when>
    <thetext>This change may have caused a ~1% Octane regression according to our bots (there are several commits in the range but this seems the most likely).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097487</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-26 15:17:37 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; This change may have caused a ~1% Octane regression according to our bots
&gt; (there are several commits in the range but this seems the most likely).

And 1.3% on Kraken (both regressions are on Yosemite).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097498</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-26 15:30:54 -0700</bug_when>
    <thetext>Investigating into it.
Too frequent `parseIndex` seems related I think now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097538</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-26 16:49:11 -0700</bug_when>
    <thetext>I&apos;ll submit the patch and performance result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097544</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-26 17:06:03 -0700</bug_when>
    <thetext>Octane benchmark results. Core i7, Linux Ubuntu 14.04, gcc 4.9, GTK port.

Baseline: The old revision, r184858, it doesn&apos;t include this patch.
Patched: The trunk + proposed patch
Trunk: the tip of trunk r184882

Hmm, maybe, this micro-optimization avoid some `parseIndex` calls.
But the benchmark results show that there&apos;s not so regression...


Benchmark report for Octane on gpgpu.

VMs tested:
&quot;Baseline&quot; at /home/yusuke/dev/WebKit/WebKitBuild/older/Release/bin/jsc
&quot;Patched&quot; at /home/yusuke/dev/WebKit/WebKitBuild/property-name/Release/bin/jsc
&quot;Trunk&quot; at /home/yusuke/dev/WebKit/WebKitBuild/Release/bin/jsc

Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get
microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.

                            Baseline                  Patched                    Trunk                 Trunk v. Baseline     

encrypt                 0.25848+-0.02639    ?     0.25853+-0.02341          0.25038+-0.00492         might be 1.0323x faster
decrypt                 4.35885+-0.02955    ?     4.39807+-0.13897    ?     4.45279+-0.16368       ? might be 1.0216x slower
deltablue      x2       0.22649+-0.01049    ?     0.24398+-0.03869          0.22338+-0.00466         might be 1.0139x faster
earley                  0.50067+-0.02269          0.49025+-0.01594    ?     0.49245+-0.01641         might be 1.0167x faster
boyer                   6.02713+-0.04338    ?     6.03946+-0.10722          6.01483+-0.10204       
navier-stokes  x2       5.37322+-0.19882          5.31016+-0.00496    ?     5.32196+-0.03964       
raytrace       x2       1.57754+-0.06923    ?     1.62999+-0.04657          1.62146+-0.02827       ? might be 1.0278x slower
richards       x2       0.12982+-0.00098    ?     0.13032+-0.00178          0.12983+-0.00168       ?
splay          x2       0.42982+-0.00798          0.42535+-0.01350          0.42401+-0.01962         might be 1.0137x faster
regexp         x2      35.90531+-0.88059         35.69890+-1.41240         34.98468+-0.57679         might be 1.0263x faster
pdfjs          x2      51.85544+-1.34951    ?    52.03845+-0.75426    ?    52.81362+-0.94944       ? might be 1.0185x slower
mandreel       x2      59.94943+-3.94804         57.77248+-3.00983    ?    62.01018+-7.70833       ? might be 1.0344x slower
gbemu          x2      47.14241+-2.30970    ?    52.30351+-4.31744         49.64379+-4.81731       ? might be 1.0531x slower
closure                 0.59549+-0.01980    ?     0.59708+-0.01199          0.59580+-0.00186       ?
jquery                  7.83578+-0.16688    ?     7.89178+-0.07892    ?     7.89763+-0.10582       ?
box2d          x2      16.43452+-1.72699         15.26979+-1.98011         14.94061+-1.02672         might be 1.1000x faster
zlib           x2     460.78442+-74.30509       439.77671+-30.31445   ?   443.82365+-14.18337        might be 1.0382x faster
typescript     x2     895.07581+-40.91225       888.03925+-31.71457   ?   893.75397+-24.21094      

&lt;geometric&gt;             7.56089+-0.05199    ?     7.57391+-0.18620          7.52442+-0.10181         might be 1.0048x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097547</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-26 17:11:22 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097548</commentid>
    <comment_count>14</comment_count>
      <attachid>253761</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-26 17:11:28 -0700</bug_when>
    <thetext>Created attachment 253761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097573</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-26 19:09:03 -0700</bug_when>
    <thetext>The actual regression range is r184857-r184863. I guess it could also be Andreas&apos; patch?
http://trac.webkit.org/changeset/184860</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097627</commentid>
    <comment_count>16</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-27 05:43:27 -0700</bug_when>
    <thetext>r184856 v.s. r184864 benchmark results.


Benchmark report for SunSpider, LongSpider, V8Spider, Octane, and JSRegress on gpgpu.

VMs tested:
&quot;r184856&quot; at /home/yusuke/dev/WebKit/WebKitBuild/r184856/Release/bin/jsc
&quot;r184864&quot; at /home/yusuke/dev/WebKit/WebKitBuild/r184864/Release/bin/jsc

Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements.
Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level
timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.

                                                         r184856                   r184864                                      
SunSpider:
   3d-cube                                           10.5322+-1.8732            9.0057+-1.7746          might be 1.1695x faster
   3d-morph                                          16.8701+-2.1906     ?     17.4803+-3.8468        ? might be 1.0362x slower
   3d-raytrace                                        9.9656+-3.0128            8.8321+-3.2120          might be 1.1283x faster
   access-binary-trees                                6.0079+-6.6488            3.8192+-0.7995          might be 1.5731x faster
   access-fannkuch                                   14.6362+-3.8497           13.1035+-0.7644          might be 1.1170x faster
   access-nbody                                       5.3290+-1.1274            4.5573+-1.7493          might be 1.1693x faster
   access-nsieve                                      4.4615+-0.5167            4.1710+-0.6382          might be 1.0697x faster
   bitops-3bit-bits-in-byte                           3.7817+-4.0018            3.3983+-3.1387          might be 1.1128x faster
   bitops-bits-in-byte                                6.4319+-1.1055            5.0859+-1.9129          might be 1.2647x faster
   bitops-bitwise-and                                 2.7314+-0.7041     ?      2.9556+-0.8046        ? might be 1.0821x slower
   bitops-nsieve-bits                                 5.4086+-2.0231     ?      5.8285+-2.2280        ? might be 1.0776x slower
   controlflow-recursive                              3.2122+-0.7601     ?      4.8156+-2.4877        ? might be 1.4992x slower
   crypto-aes                                         5.1515+-1.2109     ?      5.7790+-1.1026        ? might be 1.1218x slower
   crypto-md5                                         4.9973+-2.6030            4.6370+-2.6730          might be 1.0777x faster
   crypto-sha1                                        6.1595+-0.8440            4.9264+-2.5666          might be 1.2503x faster
   date-format-tofte                                 13.2852+-4.1226           13.1889+-1.6201        
   date-format-xparb                                 11.1035+-1.3659     ?     12.0417+-0.5703        ? might be 1.0845x slower
   math-cordic                                        5.0301+-1.4031            4.8505+-0.4714          might be 1.0370x faster
   math-partial-sums                                 11.2982+-6.0477            9.7968+-1.3792          might be 1.1533x faster
   math-spectral-norm                                 4.0679+-1.0513            3.9573+-1.3233          might be 1.0280x faster
   regexp-dna                                         8.5383+-1.2942            7.6409+-0.3464          might be 1.1174x faster
   string-base64                                      5.5748+-0.8688            5.2729+-1.0925          might be 1.0573x faster
   string-fasta                                      16.3877+-4.1009     ?     16.6516+-1.5206        ? might be 1.0161x slower
   string-tagcloud                                   10.0035+-0.4969     ?     10.7733+-2.0259        ? might be 1.0770x slower
   string-unpack-code                                21.4518+-0.2965     ?     22.2780+-1.3434        ? might be 1.0385x slower
   string-validate-input                              7.7576+-3.2912            6.8535+-2.1887          might be 1.1319x faster

   &lt;arithmetic&gt;                                       8.4683+-0.6011            8.1423+-0.3023          might be 1.0400x faster

                                                         r184856                   r184864                                      
LongSpider:
   3d-cube                                          929.6830+-16.6089    ?    947.0031+-12.8423       ? might be 1.0186x slower
   3d-morph                                        2450.2272+-4.7587         2446.9473+-7.3860        
   3d-raytrace                                      869.8697+-20.3888         847.4702+-3.9696          might be 1.0264x faster
   access-binary-trees                             1176.2562+-34.2130        1149.9440+-7.4916          might be 1.0229x faster
   access-fannkuch                                  350.6440+-26.4076         341.0156+-10.5422         might be 1.0282x faster
   access-nbody                                     676.5134+-14.7343         672.7704+-4.7872        
   access-nsieve                                    451.3521+-3.5218     ?    454.8046+-4.4623        ?
   bitops-3bit-bits-in-byte                          48.5033+-2.5163           47.6240+-1.1105          might be 1.0185x faster
   bitops-bits-in-byte                              102.5594+-8.5078     ?    103.1653+-10.0184       ?
   bitops-nsieve-bits                               443.1892+-19.4842         437.9615+-4.5405          might be 1.0119x faster
   controlflow-recursive                            539.0093+-41.2608    ?    549.6973+-31.0442       ? might be 1.0198x slower
   crypto-aes                                       812.8805+-11.9570    ?    827.3798+-31.2479       ? might be 1.0178x slower
   crypto-md5                                       604.7539+-47.1828    ?    612.4618+-53.1557       ? might be 1.0127x slower
   crypto-sha1                                      744.6804+-6.4820     ?    744.8743+-8.8611        ?
   date-format-tofte                                986.5198+-10.1128    ^    919.1963+-11.5060       ^ definitely 1.0732x faster
   date-format-xparb                               1054.3289+-69.1447        1034.5974+-42.5453         might be 1.0191x faster
   hash-map                                         197.2560+-17.2231         194.7787+-14.6426         might be 1.0127x faster
   math-cordic                                      649.0570+-9.0286          647.6547+-1.4032        
   math-partial-sums                                959.5775+-17.8964         947.3591+-8.4459          might be 1.0129x faster
   math-spectral-norm                               905.5217+-9.3994     ?    909.6811+-17.5642       ?
   string-base64                                    417.2084+-19.4406    ?    425.2043+-6.0169        ? might be 1.0192x slower
   string-fasta                                     557.7410+-39.9172         519.5312+-11.3139         might be 1.0735x faster
   string-tagcloud                                  228.2759+-13.1129         224.5493+-11.4731         might be 1.0166x faster

   &lt;geometric&gt;                                      538.7151+-9.4545          533.8070+-2.1858          might be 1.0092x faster

                                                         r184856                   r184864                                      
V8Spider:
   crypto                                            70.3075+-18.9862          68.9193+-12.0096         might be 1.0201x faster
   deltablue                                         94.6340+-8.1018           90.0020+-1.5288          might be 1.0515x faster
   earley-boyer                                      57.1172+-11.2460          52.3282+-4.2584          might be 1.0915x faster
   raytrace                                          44.1878+-7.3393           42.7120+-6.9401          might be 1.0346x faster
   regexp                                            87.2105+-2.1266     ?     88.0405+-4.9292        ?
   richards                                          81.2207+-6.4337     ?     85.3194+-5.1551        ? might be 1.0505x slower
   splay                                             46.6209+-8.9111     ?     48.2805+-8.4239        ? might be 1.0356x slower

   &lt;geometric&gt;                                       65.9480+-5.2631           65.1064+-2.4687          might be 1.0129x faster

                                                         r184856                   r184864                                      
Octane:
   encrypt                                           0.24870+-0.00495    ?     0.25062+-0.00463       ?
   decrypt                                           4.35216+-0.01084    ?     4.43725+-0.17345       ? might be 1.0196x slower
   deltablue                                x2       0.22612+-0.00288    ?     0.23067+-0.00427       ? might be 1.0201x slower
   earley                                            0.49230+-0.02223          0.49212+-0.02020       
   boyer                                             6.12005+-0.26281          6.06978+-0.15246       
   navier-stokes                            x2       5.32558+-0.02941          5.31614+-0.01760       
   raytrace                                 x2       1.60546+-0.09124          1.58458+-0.06124         might be 1.0132x faster
   richards                                 x2       0.13037+-0.00072          0.13025+-0.00065       
   splay                                    x2       0.42066+-0.01177    ?     0.42370+-0.00659       ?
   regexp                                   x2      34.93783+-0.17319         34.79994+-0.63335       
   pdfjs                                    x2      53.21346+-1.88851         52.46573+-2.98611         might be 1.0143x faster
   mandreel                                 x2      57.66970+-3.93652    ?    58.52256+-3.58385       ? might be 1.0148x slower
   gbemu                                    x2      48.11428+-3.73271    ?    49.45250+-2.97067       ? might be 1.0278x slower
   closure                                           0.58070+-0.01325    ?     0.59054+-0.01978       ? might be 1.0170x slower
   jquery                                            7.87678+-0.19912    ?     7.89419+-0.17977       ?
   box2d                                    x2      15.76998+-1.61497         15.09564+-0.96708         might be 1.0447x faster
   zlib                                     x2     487.19686+-44.29548   ?   498.91945+-20.91835      ? might be 1.0241x slower
   typescript                               x2     884.30371+-27.39947       883.87769+-25.02804      

   &lt;geometric&gt;                                       7.53323+-0.12697    ?     7.55119+-0.09339       ? might be 1.0024x slower

                                                         r184856                   r184864                                      
JSRegress:
   string-get-by-val-big-char                        11.3624+-2.7757            9.7737+-1.8940          might be 1.1625x faster
   slow-convergence                                   4.0342+-0.3959            3.6614+-1.3529          might be 1.1018x faster
   int-or-other-abs-zero-then-get-by-val             23.9683+-0.8788           23.6931+-0.9667          might be 1.0116x faster
   switch-string-basic                               17.0275+-1.8956           15.8347+-0.6352          might be 1.0753x faster
   integer-modulo                                     4.4088+-5.1723            4.0833+-2.5134          might be 1.0797x faster
   fold-double-to-int                                14.7610+-0.4416     ?     15.2510+-1.2260        ? might be 1.0332x slower
   is-object-or-null-trickier-internal-function   
                                                     14.8163+-2.2867           14.2424+-1.9135          might be 1.0403x faster
   adapt-to-double-divide                            16.5663+-0.8058           16.3473+-0.5264          might be 1.0134x faster
   tear-off-arguments                                 7.4456+-2.3523            6.1663+-0.8330          might be 1.2075x faster
   polymorphic-get-by-id                              5.2145+-0.9665            4.5165+-0.9832          might be 1.1545x faster
   is-object-or-null-fold-tricky                      8.8218+-1.9248     ?     10.4222+-6.3277        ? might be 1.1814x slower
   inline-arguments-local-escape                      5.8762+-1.3540            5.5049+-1.1494          might be 1.0675x faster
   int-or-other-sub                                   5.8076+-1.6829     ?      6.2290+-0.7499        ? might be 1.0726x slower
   new-array-dead                                    16.7617+-1.6703           16.5977+-0.8096        
   rare-osr-exit-on-local                            16.4288+-0.6167           16.1649+-0.6107          might be 1.0163x faster
   obvious-sink-pathology                           159.8562+-7.6087          154.6556+-10.3952         might be 1.0336x faster
   infer-one-time-closure                            11.7203+-0.5807           11.5162+-0.4865          might be 1.0177x faster
   in-one-case-true                                  13.8612+-2.8812     ?     17.6742+-5.1176        ? might be 1.2751x slower
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     24.5991+-0.6905     ?     26.6860+-2.8869        ? might be 1.0848x slower
   infer-closure-const-then-reenter-no-inline   
                                                     60.3090+-3.7389           59.2197+-3.6083          might be 1.0184x faster
   call-spread-apply                                 34.5342+-3.8604     ?     34.9313+-5.8085        ? might be 1.0115x slower
   destructuring-arguments                           18.7172+-0.6534     ?     18.7761+-0.1902        ?
   string-concat-object                               3.2552+-0.6378            2.9943+-0.5386          might be 1.0871x faster
   arguments-named-and-reflective                    12.4688+-1.9938           11.6360+-0.5833          might be 1.0716x faster
   singleton-scope                                   73.1330+-4.0916           72.6887+-0.4720        
   sparse-conditional                                 2.3914+-1.0060            1.5645+-0.5930          might be 1.5286x faster
   is-string-fold-tricky                              7.6061+-1.2491     ?      8.1979+-3.5844        ? might be 1.0778x slower
   splice-to-remove                                  17.1807+-0.7999           17.0391+-0.7327        
   assign-custom-setter                               5.6105+-0.1096     !      5.8333+-0.0090        ! definitely 1.0397x slower
   slow-array-profile-convergence                     3.4406+-0.9864     ?      3.5878+-0.5818        ? might be 1.0428x slower
   proto-getter-access                                9.8213+-1.6821     ?     10.4337+-1.7771        ? might be 1.0624x slower
   direct-arguments-getbyval                          1.8171+-0.5353     ?      1.8486+-0.8104        ? might be 1.0173x slower
   fold-put-by-id-to-multi-put-by-offset              8.3145+-2.0866     ?      8.8769+-2.5890        ? might be 1.0676x slower
   to-int32-boolean                                  16.3641+-0.4561     ?     16.5181+-0.6362        ?
   is-object-or-null-fold-functions                   5.5450+-1.0628            4.9619+-1.2369          might be 1.1175x faster
   Float32Array-matrix-mult                           5.7317+-1.5072     ?      6.2078+-1.8716        ? might be 1.0831x slower
   register-pressure-from-osr                        22.9285+-0.9421     ?     27.2861+-8.3439        ? might be 1.1901x slower
   new-array-buffer-dead                            134.5660+-9.4404          132.3558+-11.3781         might be 1.0167x faster
   infer-closure-const-then-put-to-scope-no-inline   
                                                     12.7786+-1.2318           12.6115+-0.3341          might be 1.0133x faster
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     43.3578+-5.0165           41.8992+-2.1186          might be 1.0348x faster
   double-to-int32-typed-array-no-inline              4.7768+-1.8619            4.0665+-1.7404          might be 1.1747x faster
   getter-richards                                  120.8605+-2.4735          116.7328+-9.7459          might be 1.0354x faster
   new-array-push                                     5.9390+-1.3618            5.4940+-0.7187          might be 1.0810x faster
   infer-closure-const-then-put-to-scope             24.5926+-1.5943     ?     24.6070+-1.1524        ?
   array-splice-contiguous                           79.6620+-41.7664          71.3470+-23.7649         might be 1.1165x faster
   ftl-library-inlining-dataview                     61.5903+-3.3045     ?     62.8602+-4.2504        ? might be 1.0206x slower
   indexed-properties-in-objects                      5.2268+-1.5411            4.5341+-2.6000          might be 1.1528x faster
   div-boolean-double                                 7.0809+-1.7162     ?      7.4098+-0.4325        ? might be 1.0464x slower
   is-boolean-fold                                    4.5401+-1.4228     ?      4.8653+-1.2075        ? might be 1.0716x slower
   int-or-other-neg-then-get-by-val                   5.9163+-1.0878     ?      6.4595+-1.5956        ? might be 1.0918x slower
   poly-stricteq                                     60.1089+-3.2479     ?     65.1965+-7.5105        ? might be 1.0846x slower
   polymorphic-put-by-id                             32.0007+-2.0102     ?     34.7143+-4.9897        ? might be 1.0848x slower
   try-catch-get-by-val-cloned-arguments             16.7048+-0.6489           15.4928+-2.3229          might be 1.0782x faster
   polymorphic-array-call                             2.1359+-0.7514     ?      2.8882+-1.1968        ? might be 1.3522x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      7.4839+-2.3967     ?      8.6299+-2.4454        ? might be 1.1531x slower
   in-two-cases                                      13.9758+-2.9788           12.6483+-0.8361          might be 1.1050x faster
   array-access-polymorphic-structure                 6.7664+-0.0327     ?      7.4170+-1.5369        ? might be 1.0962x slower
   varargs-call                                      16.5760+-0.7891           16.0143+-0.5064          might be 1.0351x faster
   poly-chain-access                                  4.6900+-1.8735     ?      5.3887+-1.8273        ? might be 1.1490x slower
   get_callee_polymorphic                             4.6655+-1.2031            4.3424+-0.6110          might be 1.0744x faster
   cmpeq-obj-to-obj-other                            13.1257+-5.6059     ?     13.5660+-1.6435        ? might be 1.0335x slower
   cast-int-to-double                                 9.4523+-5.4718            7.9501+-1.2161          might be 1.1890x faster
   polyvariant-monomorphic-get-by-id                 10.3355+-1.9632     ?     10.5000+-1.3753        ? might be 1.0159x slower
   global-var-const-infer-fire-from-opt               2.2090+-0.9078            1.9153+-0.4259          might be 1.1533x faster
   array-prototype-some                              84.0952+-0.7487     ?     85.6570+-2.2067        ? might be 1.0186x slower
   basic-set                                         11.5705+-2.6538     ?     14.8561+-4.0095        ? might be 1.2840x slower
   is-function-fold                                   5.4578+-1.0201            4.8481+-0.4542          might be 1.1258x faster
   switch-string-basic-var                           18.7906+-2.0913           16.8185+-0.7358          might be 1.1173x faster
   assign-custom-setter-polymorphic                   4.2507+-1.4216     ?      4.4145+-0.5014        ? might be 1.0385x slower
   put-by-val-direct                                  0.5978+-0.1460            0.4749+-0.2176          might be 1.2590x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     40.7961+-4.9233     ?     43.4852+-1.0027        ? might be 1.0659x slower
   simple-activation-demo                            27.8020+-1.5156     ?     30.6238+-5.6782        ? might be 1.1015x slower
   string-concat-pair-simple                         15.2442+-1.4929           14.7346+-1.8875          might be 1.0346x faster
   get-by-val-out-of-bounds                           6.7281+-1.4151            6.3849+-1.3248          might be 1.0538x faster
   switch-string-length-tower-var                    17.7234+-1.7630           17.0082+-1.0708          might be 1.0421x faster
   captured-assignments                               0.6401+-0.2594            0.5280+-0.1216          might be 1.2125x faster
   string-var-equality                               33.6935+-0.6075     ?     33.9373+-0.7628        ?
   int-or-other-mod-then-get-by-val                   6.0976+-1.0806     ?      6.5455+-1.2486        ? might be 1.0735x slower
   Int32Array-alloc-large                            29.2655+-6.7069           28.9550+-1.0425          might be 1.0107x faster
   sin-boolean                                       14.9479+-1.8603           13.7553+-1.0278          might be 1.0867x faster
   string-concat-simple                              16.0356+-4.7453           14.4103+-1.0913          might be 1.1128x faster
   getter-no-activation                               7.7762+-1.6068            6.8965+-1.6092          might be 1.1276x faster
   try-catch-get-by-val-direct-arguments              6.7759+-0.3187     ?      7.1877+-0.9259        ? might be 1.0608x slower
   infer-constant-property                            4.1267+-1.4960     ?      4.2353+-1.3983        ? might be 1.0263x slower
   div-boolean                                        9.9383+-1.9787            9.1525+-1.5953          might be 1.0859x faster
   large-int                                         16.3099+-1.1157     ?     16.7669+-1.6707        ? might be 1.0280x slower
   external-arguments-putbyval                        3.4342+-1.2015     ?      3.9082+-1.1748        ? might be 1.1380x slower
   max-boolean                                        5.5606+-4.4813            4.9872+-1.1507          might be 1.1150x faster
   get-by-id-proto-or-self                           18.9053+-2.0333     ?     20.1298+-5.1560        ? might be 1.0648x slower
   get-by-id-bimorphic-check-structure-elimination   
                                                      8.8401+-2.6791     ?      9.7146+-2.1074        ? might be 1.0989x slower
   string-equality                                   22.6588+-2.6428     ?     22.7263+-1.7750        ?
   getter                                             7.5020+-3.3115     ?      9.5560+-3.5222        ? might be 1.2738x slower
   Int32Array-Int8Array-view-alloc                    8.4750+-1.9870            7.4027+-0.3273          might be 1.1448x faster
   substring-concat                                  53.3347+-2.6994     ?     53.5922+-3.5605        ?
   is-boolean-fold-tricky                             6.0338+-1.4671     ?      6.2027+-1.6624        ? might be 1.0280x slower
   integer-divide                                    12.4915+-0.9482           12.4348+-1.4020        
   cse-new-array                                      4.3862+-1.6450            3.7278+-0.5700          might be 1.1766x faster
   is-string-fold                                     5.5228+-1.2899            4.6100+-1.7974          might be 1.1980x faster
   object-closure-call                                8.9084+-2.3123     ?      8.9179+-1.7155        ?
   sinkable-new-object-dag                           72.7029+-3.7165     ?     74.2867+-7.3814        ? might be 1.0218x slower
   string-char-code-at                               18.4653+-1.9454           17.2058+-0.9010          might be 1.0732x faster
   double-to-uint32-typed-array-no-inline             4.5450+-2.6916     ?      4.7786+-2.8256        ? might be 1.0514x slower
   Int16Array-bubble-sort                            24.4518+-2.7938           22.0496+-0.9613          might be 1.1089x faster
   switch-char                                       13.1322+-5.2668           11.0695+-9.9218          might be 1.1863x faster
   switch-char-constant                               4.9430+-1.4360            4.1226+-1.3452          might be 1.1990x faster
   infer-one-time-closure-two-vars                   11.6683+-0.6188           11.6438+-0.5058        
   object-test                                        4.1212+-0.9096     ?      4.8004+-0.4758        ? might be 1.1648x slower
   external-arguments-getbyval                        1.9717+-0.5839     ?      2.4728+-1.0740        ? might be 1.2541x slower
   plus-boolean                                       4.7476+-0.7654     ?      4.7968+-0.7074        ? might be 1.0103x slower
   Int16Array-alloc-long-lived                       61.8108+-6.6363     ?     76.3590+-10.6594       ? might be 1.2354x slower
   fold-get-by-id-to-multi-get-by-offset              9.1223+-3.1018     ?     11.2785+-6.0456        ? might be 1.2364x slower
   infer-one-time-deep-closure                       21.8535+-3.5163           20.4308+-0.8718          might be 1.0696x faster
   new-array-buffer-push                              8.1047+-1.0368            7.9681+-1.2525          might be 1.0172x faster
   aliased-arguments-getbyval                         1.8229+-0.6912     ?      3.0095+-3.1899        ? might be 1.6509x slower
   by-val-generic                                    10.9616+-1.6943           10.3168+-0.6029          might be 1.0625x faster
   ArrayBuffer-Int8Array-alloc-long-lived            14.7166+-0.3513     ?     16.2218+-2.8586        ? might be 1.1023x slower
   exit-length-on-plain-object                       14.1879+-0.4846     ?     14.7670+-1.9458        ? might be 1.0408x slower
   Int32Array-alloc                                   4.2960+-0.3841     ?      5.6129+-5.5318        ? might be 1.3065x slower
   weird-inlining-const-prop                          5.2028+-3.0146     ?      7.5887+-8.6286        ? might be 1.4586x slower
   DataView-custom-properties                        47.9183+-4.0183     ?     48.9783+-3.3204        ? might be 1.0221x slower
   HashMap-string-put-get-iterate                    33.6415+-3.1610           32.8994+-3.4233          might be 1.0226x faster
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      4.4927+-1.8775            4.3230+-0.6987          might be 1.0393x faster
   temporal-structure                                19.7338+-7.8586           17.4769+-4.7479          might be 1.1291x faster
   for-of-iterate-array-values                        5.9645+-1.6304            5.2565+-1.7591          might be 1.1347x faster
   varargs-construct                                 25.8622+-3.1802     ?     26.7017+-1.6410        ? might be 1.0325x slower
   double-to-uint32-typed-array                       2.6110+-1.0460     ?      3.1612+-1.1832        ? might be 1.2107x slower
   int-or-other-mul-then-get-by-val                   5.9734+-0.6056     ?      6.2501+-2.3207        ? might be 1.0463x slower
   put-by-val-machine-int                             4.3174+-1.6936     ?      4.3665+-1.4921        ? might be 1.0114x slower
   lots-of-fields                                    17.3014+-8.4745     ?     17.7250+-11.1978       ? might be 1.0245x slower
   infer-closure-const-then-mov-no-inline             5.7834+-2.6428            5.6035+-2.4310          might be 1.0321x faster
   arguments                                          9.6257+-0.6913     ?      9.9408+-1.3796        ? might be 1.0327x slower
   negative-zero-divide                               0.4211+-0.1416     ?      0.4785+-0.2570        ? might be 1.1364x slower
   big-int-mul                                        6.8394+-1.9804     ?      7.2910+-3.3904        ? might be 1.0660x slower
   is-object-or-null-tricky-function                  7.6171+-1.2500            6.7409+-0.6413          might be 1.1300x faster
   try-catch-get-by-val-scoped-arguments              8.2031+-0.5582     ?      8.5107+-0.9737        ? might be 1.0375x slower
   is-undefined-fold-tricky                           5.6260+-2.3803     ?      5.7416+-2.6792        ? might be 1.0205x slower
   setter                                             8.6186+-3.7018            7.5829+-1.9874          might be 1.1366x faster
   neg-boolean                                        5.5330+-0.9351            5.3252+-1.0535          might be 1.0390x faster
   poly-chain-access-simpler                          4.7128+-1.0513     ?      6.4695+-3.9978        ? might be 1.3728x slower
   slow-ternaries                                    25.2370+-0.3248     ?     26.3618+-2.9393        ? might be 1.0446x slower
   put-by-id-slightly-polymorphic                     5.5599+-1.3373            5.0634+-1.5781          might be 1.0980x faster
   arguments-out-of-bounds                           15.4224+-1.3053           15.0777+-0.9936          might be 1.0229x faster
   sink-function                                     12.6973+-1.9845           11.6980+-0.5295          might be 1.0854x faster
   marsaglia-larger-ints                             45.6088+-3.8553     ?     46.7136+-3.4727        ? might be 1.0242x slower
   undefined-test                                     6.3382+-5.4944            4.9109+-0.9735          might be 1.2906x faster
   imul-mixed                                         7.0153+-1.2297     ?      7.1182+-1.1323        ? might be 1.0147x slower
   global-var-const-infer                             1.2905+-0.4894     ?      1.4402+-0.6901        ? might be 1.1160x slower
   asmjs_bool_bug                                     8.4406+-1.0903     ?      9.4737+-3.1645        ? might be 1.1224x slower
   double-pollution-putbyoffset                       7.8749+-2.7560     ?      8.5148+-3.0241        ? might be 1.0812x slower
   is-object-or-null-fold                             5.1965+-0.6895     ?      5.7101+-1.9425        ? might be 1.0989x slower
   cell-argument                                      8.6300+-1.1160     ?      9.6582+-1.5888        ? might be 1.1191x slower
   int-or-other-add                                   7.3117+-0.2922     ?      7.3699+-1.3601        ?
   plus-boolean-arith                                 4.0051+-0.4143            3.8397+-0.6290          might be 1.0431x faster
   ArrayBuffer-Int32Array-byteOffset                  5.6940+-0.8869            5.3765+-1.4738          might be 1.0591x faster
   mod-boolean                                       10.4268+-1.1106           10.3246+-1.7089        
   infer-closure-const-then-mov                      17.9391+-2.5755     ?     18.0295+-1.3802        ?
   large-int-neg                                     17.0115+-0.7243     ?     17.2623+-1.4797        ? might be 1.0147x slower
   fround                                            18.0360+-0.5216     ?     19.0964+-1.8294        ? might be 1.0588x slower
   elidable-new-object-dag                           51.7133+-1.2665     ?     54.5828+-2.2256        ? might be 1.0555x slower
   make-indexed-storage                               6.4317+-4.1624            4.3729+-1.1295          might be 1.4708x faster
   int-or-other-add-then-get-by-val                   8.1925+-2.2807            6.0457+-0.9863          might be 1.3551x faster
   string-cons-repeat                                 8.3797+-0.8776            8.3433+-0.0988        
   logical-not                                        6.7126+-0.6807            6.1112+-1.5222          might be 1.0984x faster
   poly-chain-access-different-prototypes-simple   
                                                      6.3796+-1.5273            5.5552+-2.7035          might be 1.1484x faster
   fixed-typed-array-storage-var-index                2.0158+-1.3504            1.7903+-0.3983          might be 1.1260x faster
   function-test                                      4.1841+-1.8890     ?      4.8608+-1.8816        ? might be 1.1617x slower
   string-cons-tower                                  8.8532+-1.3258            8.3741+-0.3160          might be 1.0572x faster
   destructuring-swap                                 6.8434+-2.8925            6.7002+-0.4499          might be 1.0214x faster
   is-function-fold-tricky                            6.5551+-2.6593     ?      7.3018+-2.8769        ? might be 1.1139x slower
   int-or-other-max-then-get-by-val                   6.2038+-0.9241     ?      6.5240+-0.7733        ? might be 1.0516x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                      8.9169+-2.3714            8.6263+-1.5415          might be 1.0337x faster
   method-on-number                                  23.2176+-5.7804           22.9716+-1.7753          might be 1.0107x faster
   put-by-id-replace-and-transition                  12.1280+-2.9081           12.0281+-3.5398        
   int-or-other-neg-zero-then-get-by-val             24.1658+-2.4359           24.0451+-2.9268        
   varargs-strict-mode                               11.2963+-0.7249     ?     12.5732+-2.8134        ? might be 1.1130x slower
   string-get-by-val-out-of-bounds-insane             4.8555+-0.6679     ?      5.0996+-0.1616        ? might be 1.0503x slower
   imul-double-only                                   7.9050+-1.4784     ?      8.7803+-0.6632        ? might be 1.1107x slower
   for-of-iterate-array-keys                          5.5608+-0.8821     ?      5.6778+-1.2131        ? might be 1.0210x slower
   string-get-by-val                                  5.2645+-1.2426     ?      6.9647+-2.0467        ? might be 1.3229x slower
   nested-function-parsing                           47.7977+-5.1682     ?     49.8262+-4.0967        ? might be 1.0424x slower
   string-repeat-arith                               35.2322+-0.6652           33.7990+-0.8994          might be 1.0424x faster
   inline-arguments-aliased-access                    8.1149+-6.1793            5.9343+-1.7650          might be 1.3674x faster
   allocate-big-object                                3.7022+-1.4374            3.7012+-1.1077        
   is-object-or-null-fold-less-tricky                 7.4739+-2.2170            7.0731+-2.8428          might be 1.0567x faster
   elidable-new-object-tree                          54.7603+-4.9959     ?     56.7492+-6.2591        ? might be 1.0363x slower
   ArrayBuffer-Int8Array-alloc                       12.3801+-0.1513     ?     12.8491+-2.0544        ? might be 1.0379x slower
   int52-spill                                        9.2490+-1.7645     ?      9.2666+-3.4586        ?
   no-inline-constructor                             43.9425+-6.0660     ?     46.3403+-2.8640        ? might be 1.0546x slower
   hoist-make-rope                                   10.6816+-0.9843           10.6097+-1.1932        
   arguments-strict-mode                             11.0357+-0.9222           11.0234+-0.3684        
   function-with-eval                               117.2428+-10.5007    ?    120.8619+-11.6911       ? might be 1.0309x slower
   ArrayBuffer-DataView-alloc-long-lived             17.4417+-2.8077     ?     17.4990+-2.8172        ?
   simple-poly-call-nested                           10.9669+-3.6323            9.4580+-2.5034          might be 1.1595x faster
   switch-string-big-length-tower-var                21.0335+-0.4188           20.7550+-0.2760          might be 1.0134x faster
   number-test                                        6.4571+-3.4070            4.8482+-1.2946          might be 1.3319x faster
   Int16Array-load-int-mul                            3.5450+-3.2725     ?      4.0240+-3.9755        ? might be 1.1351x slower
   put-by-id                                         14.8286+-2.7244     ?     14.8440+-1.1574        ?
   imul-int-only                                     10.0451+-1.9565     ?     10.5219+-2.4041        ? might be 1.0475x slower
   gcse                                               7.3659+-1.0022            7.3615+-1.8020        
   create-lots-of-functions                          14.7322+-1.0547           14.1789+-2.2234          might be 1.0390x faster
   in-four-cases                                     22.3618+-1.3320           21.1706+-1.6345          might be 1.0563x faster
   elidable-new-object-then-call                     43.8583+-7.2420     ?     45.1194+-2.5823        ? might be 1.0288x slower
   int-or-other-sub-then-get-by-val                   7.1619+-0.2675     ?      9.6372+-8.5999        ? might be 1.3456x slower
   mul-boolean-double                                 5.9554+-3.3428     ?      6.7634+-4.2816        ? might be 1.1357x slower
   mod-boolean-double                                10.0422+-4.2826     ?     10.3235+-1.1861        ? might be 1.0280x slower
   inline-arguments-access                            5.6655+-1.5408            5.6205+-1.8579        
   substring-concat-weird                            51.8192+-2.0474           50.3279+-2.1194          might be 1.0296x faster
   varargs-construct-inline                          31.7155+-1.5258     ?     32.1487+-2.9461        ? might be 1.0137x slower
   HashMap-put-get-iterate                           33.9410+-7.0062           33.5217+-7.5638          might be 1.0125x faster
   string-long-ident-equality                        17.5677+-0.2484     ?     20.1985+-4.5566        ? might be 1.1498x slower
   mul-boolean                                        5.0858+-1.8916            4.1771+-0.8829          might be 1.2175x faster
   get-by-id-check-structure-elimination              6.8480+-1.4077     ?      7.6365+-0.4064        ? might be 1.1152x slower
   marsaglia-osr-entry                               23.1066+-0.0965     ?     23.9767+-2.1328        ? might be 1.0377x slower
   Float64Array-alloc-long-lived                     94.0431+-9.8905     ?    110.7338+-18.1161       ? might be 1.1775x slower
   misc-strict-eq                                    41.5983+-4.7375           37.7764+-1.1440          might be 1.1012x faster
   make-rope-cse                                      4.9265+-0.7637            4.7380+-0.4497          might be 1.0398x faster
   array-with-double-sum                              4.9749+-1.0066     ?      5.0550+-2.0585        ? might be 1.0161x slower
   substring                                         62.1523+-5.4154     ?     64.9737+-2.8143        ? might be 1.0454x slower
   array-with-double-increment                        5.5295+-1.3353            5.4482+-1.8967          might be 1.0149x faster
   is-object-or-null-trickier-function                7.5065+-0.6947            6.3815+-0.8759          might be 1.1763x faster
   for-of-iterate-array-entries                       7.4147+-4.0649     ?      7.6802+-3.2244        ? might be 1.0358x slower
   array-nonarray-polymorhpic-access                 34.4141+-2.7669     ?     35.2151+-2.7767        ? might be 1.0233x slower
   varargs                                           11.6454+-1.5814     ?     11.8404+-1.2843        ? might be 1.0167x slower
   string-out-of-bounds                              15.1312+-1.0237     ?     16.2595+-3.7061        ? might be 1.0746x slower
   inlined-put-by-id-transition                      14.1367+-2.3184           12.8412+-0.7731          might be 1.1009x faster
   minus-boolean-double                               6.0002+-0.5772            5.0952+-2.1936          might be 1.1776x faster
   is-object-or-null-tricky-internal-function   
                                                     12.6797+-3.6390           10.7009+-1.2895          might be 1.1849x faster
   delay-tear-off-arguments-strictmode               16.4383+-4.3158     ?     16.9280+-5.5669        ? might be 1.0298x slower
   array-prototype-every                             92.7157+-3.9438     ^     84.7415+-1.8355        ^ definitely 1.0941x faster
   chain-getter-access                               10.2015+-1.0471            9.9442+-0.6717          might be 1.0259x faster
   int-or-other-min-then-get-by-val                   6.4608+-0.6254            5.9821+-1.9034          might be 1.0800x faster
   HashMap-put-get-iterate-keys                      34.8317+-4.8492           33.1544+-5.1816          might be 1.0506x faster
   double-pollution-getbyval                         10.5535+-1.7640     ?     11.5334+-1.4769        ? might be 1.0928x slower
   structure-hoist-over-transitions                   3.8466+-1.2182            3.3866+-1.3014          might be 1.1358x faster
   polymorphic-structure                             18.9404+-1.1917           18.8818+-0.6501        
   sorting-benchmark                                 23.2720+-3.0087           21.0457+-0.5361          might be 1.1058x faster
   fixed-typed-array-storage                          1.5047+-0.3830     ?      1.7148+-0.3976        ? might be 1.1396x slower
   load-varargs-elimination                          25.1177+-0.5448     ?     26.7568+-3.8194        ? might be 1.0653x slower
   switch-string-length-tower                        15.2633+-1.1851     ?     15.6516+-1.4483        ? might be 1.0254x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                     11.6678+-2.0029            9.8802+-2.8977          might be 1.1809x faster
   Int8Array-load-with-byteLength                     5.4308+-1.3019     ?      5.4602+-1.0393        ?
   Float64Array-to-Int16Array-set                    83.7790+-2.8562           83.2014+-3.0044        
   infer-constant-global-property                     9.1907+-1.5025     ?     10.2361+-1.0003        ? might be 1.1137x slower
   int-overflow-local                                 6.2455+-1.8594     ?      6.7238+-2.2637        ? might be 1.0766x slower
   min-boolean                                        5.2263+-1.2645            4.9160+-0.8582          might be 1.0631x faster
   simple-getter-access                              12.3855+-1.2473     ?     12.5608+-1.0300        ? might be 1.0142x slower
   string-hash                                        4.1275+-2.3439            3.0797+-0.4009          might be 1.3402x faster
   arity-mismatch-inlining                            1.2814+-0.4625     ?      1.5043+-0.2846        ? might be 1.1740x slower
   obviously-elidable-new-object                     37.5864+-2.0121           36.2910+-5.5271          might be 1.0357x faster
   deltablue-varargs                                244.2429+-12.1848    ?    244.8193+-20.8396       ?
   gcse-poly-get                                     24.2264+-6.2834     ?     26.2155+-3.2882        ? might be 1.0821x slower
   hoist-poly-check-structure-effectful-loop   
                                                      7.6047+-1.2463            6.8340+-0.4289          might be 1.1128x faster
   minus-boolean                                      3.5559+-0.4648     ?      3.9617+-1.7967        ? might be 1.1141x slower
   gcse-poly-get-less-obvious                        20.9863+-1.4639           20.7892+-3.0607        
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     11.5727+-2.6897     ?     11.9166+-2.1819        ? might be 1.0297x slower
   branch-fold                                        5.9443+-2.0006            5.4439+-1.0004          might be 1.0919x faster
   double-to-int32-typed-array                        2.9875+-1.0691     ?      3.4883+-2.1670        ? might be 1.1676x slower
   plus-boolean-double                                4.3246+-1.2785     ?      4.8348+-0.8094        ? might be 1.1180x slower
   hoist-poly-check-structure                         5.3235+-0.7701     ?      6.3512+-2.1657        ? might be 1.1931x slower
   infer-one-time-closure-ten-vars                   12.8358+-1.8047           12.4649+-1.2435          might be 1.0298x faster
   is-function-fold-tricky-internal-function   
                                                     12.7388+-1.5586     ?     15.8207+-4.3050        ? might be 1.2419x slower
   array-with-double-mul-add                          6.4813+-1.4306     ?      7.4380+-0.7074        ? might be 1.1476x slower
   array-prototype-map                               94.3920+-1.0174     ?    101.1829+-25.2184       ? might be 1.0719x slower
   varargs-inline                                     9.8464+-0.6237     ?     11.0990+-1.0914        ? might be 1.1272x slower
   sink-huge-activation                              18.5956+-2.2300           17.6389+-1.8440          might be 1.0542x faster
   undefined-property-access                        350.2167+-3.7141     ?    351.2655+-4.4025        ?
   array-with-int32-add-sub                          10.4902+-2.9066            9.8260+-3.9062          might be 1.0676x faster
   function-dot-apply                                 3.4468+-1.7082     ?      3.5315+-1.3427        ? might be 1.0246x slower
   string-sub                                        68.4437+-0.0496     !     70.4719+-1.5312        ! definitely 1.0296x slower
   boolean-test                                       4.7534+-1.5187     ?      4.9540+-0.5864        ? might be 1.0422x slower
   emscripten-cube2hash                              37.3763+-4.4873           36.8752+-2.2891          might be 1.0136x faster
   Int32Array-alloc-long-lived                       74.7368+-13.0363    ?     91.9872+-5.7788        ? might be 1.2308x slower
   get-by-id-self-or-proto                           18.2962+-1.6006     ?     18.6127+-2.8485        ? might be 1.0173x slower
   cse-new-array-buffer                               3.4872+-1.4375            2.8083+-0.5851          might be 1.2418x faster
   sinkable-new-object                               42.5928+-7.2541     ?     43.4496+-5.5984        ? might be 1.0201x slower
   put-by-val-large-index-blank-indexing-type   
                                                      6.5702+-0.5188     !      8.3482+-0.4018        ! definitely 1.2706x slower
   Int8Array-load                                     7.1740+-5.5493            5.4684+-3.0816          might be 1.3119x faster
   int-or-other-abs-then-get-by-val                   7.9348+-1.3618     ?      9.4655+-7.6770        ? might be 1.1929x slower
   abs-boolean                                        4.8796+-0.2094     ?      5.3408+-0.9636        ? might be 1.0945x slower
   call-spread-call                                  27.9070+-6.8915           24.7865+-1.9360          might be 1.1259x faster
   unprofiled-licm                                   22.2053+-0.8532     ?     22.4575+-0.9400        ? might be 1.0114x slower
   constant-test                                      7.3916+-1.8719     ?     10.1443+-7.1806        ? might be 1.3724x slower
   cfg-simplify                                       4.3295+-1.5360     ?      4.4305+-0.7594        ? might be 1.0233x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      5.1694+-2.6990     ?      5.7130+-2.0695        ? might be 1.1052x slower
   fold-put-structure                                 7.4554+-3.1346     ?      7.7346+-2.3490        ? might be 1.0374x slower
   get-by-id-chain-from-try-block                     8.1493+-2.1131            7.8218+-0.7727          might be 1.0419x faster
   poly-chain-access-different-prototypes             4.7463+-1.8652            4.4816+-1.0524          might be 1.0591x faster
   is-number-fold-tricky                              5.7168+-0.5441     ?      6.7357+-1.2656        ? might be 1.1782x slower
   get_callee_monomorphic                             3.8865+-0.9309     ?      3.9148+-0.5348        ?
   deconstructing-parameters-overridden-by-function   
                                                      0.5660+-0.1872     ?      0.6298+-0.3309        ? might be 1.1126x slower
   empty-string-plus-int                              6.6705+-0.9700     ?      7.9969+-1.3999        ? might be 1.1989x slower
   Float32Array-to-Float64Array-set                  69.4396+-4.0602     ?     69.4448+-4.4977        ?
   switch-string-short                               15.3152+-0.8953           15.1553+-2.0501          might be 1.0106x faster
   switch-string-basic-big                           20.0325+-0.9580     ?     21.1200+-3.2013        ? might be 1.0543x slower
   double-get-by-val-out-of-bounds                    5.6615+-1.2954     ?      6.7704+-0.6902        ? might be 1.1959x slower
   large-int-captured                                 6.4516+-2.5289            6.0627+-0.8079          might be 1.0641x faster
   elidable-new-object-roflcopter                    59.1138+-1.9272           58.1780+-3.4271          might be 1.0161x faster
   string-get-by-val-out-of-bounds                   10.5193+-7.9876            7.7269+-1.8570          might be 1.3614x faster
   array-with-double-add                              5.2585+-1.5731     ?      5.3849+-0.1851        ? might be 1.0240x slower
   string-test                                        4.4788+-1.7694     ?      6.6624+-3.8248        ? might be 1.4875x slower
   is-undefined-fold                                  5.0908+-1.5513     ?      6.0392+-2.6202        ? might be 1.1863x slower
   switch                                            14.8953+-2.1684     ?     16.6607+-0.9187        ? might be 1.1185x slower
   inline-get-scoped-var                              7.0057+-2.0598     ?      9.7189+-4.5327        ? might be 1.3873x slower
   tear-off-arguments-simple                          4.5596+-1.7114     ?      4.7722+-1.1258        ? might be 1.0466x slower
   negative-zero-modulo                               0.4259+-0.0791     ?      0.5038+-0.0954        ? might be 1.1829x slower
   infer-closure-const-then-reenter                  24.7183+-1.1451     ?     25.2079+-1.3838        ? might be 1.0198x slower
   array-prototype-forEach                           84.4922+-5.3922           83.6901+-2.8281        
   switch-constant                                   11.1484+-1.5609           10.5502+-2.5900          might be 1.0567x faster
   negative-zero-negate                               0.4385+-0.1906            0.4026+-0.0946          might be 1.0890x faster
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                      9.2075+-1.1063     ?     10.0836+-1.2673        ? might be 1.0952x slower
   in-one-case-false                                 13.2571+-1.6347     ?     13.2947+-1.9381        ?
   int-or-other-div-then-get-by-val                   6.4341+-2.9939     ?      8.5380+-4.6359        ? might be 1.3270x slower
   typed-array-get-set-by-val-profiling              33.4785+-1.0122           33.4337+-1.3250        
   Int8Array-alloc-long-lived                        53.5845+-7.9205     ?     67.8139+-13.8286       ? might be 1.2655x slower
   simple-poly-call                                   2.0551+-0.5652     ?      2.0974+-0.8946        ? might be 1.0206x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      7.8505+-2.6160            7.3090+-2.9738          might be 1.0741x faster
   switch-string-basic-big-var                       22.8231+-1.3558     ?     23.5211+-4.6329        ? might be 1.0306x slower
   Int16Array-to-Int32Array-set                      67.3456+-2.6856           65.7778+-1.1780          might be 1.0238x faster
   sinkable-new-object-taken                         64.6713+-7.0152           59.2859+-5.6305          might be 1.0908x faster
   string-concat-pair-object                          2.7362+-0.5410     ?      3.0059+-0.5978        ? might be 1.0986x slower
   branch-on-string-as-boolean                       17.6627+-1.1155           16.5963+-0.1617          might be 1.0643x faster
   is-number-fold                                     5.0388+-0.8025            4.5695+-0.7425          might be 1.1027x faster
   obvious-sink-pathology-taken                     167.2427+-7.3730     ?    169.8694+-7.9221        ? might be 1.0157x slower
   ftl-library-inlining                              70.4174+-5.3341           68.3188+-1.0143          might be 1.0307x faster
   array-with-int32-or-double-sum                     4.8277+-1.8252     ?      5.4268+-0.5049        ? might be 1.1241x slower
   Int16Array-bubble-sort-with-byteLength            22.7845+-0.5481     ^     21.6740+-0.3061        ^ definitely 1.0512x faster

   &lt;geometric&gt;                                       10.8425+-0.0994     ?     10.9405+-0.0559        ? might be 1.0090x slower

                                                         r184856                   r184864                                      
Geomean of preferred means:
   &lt;scaled-result&gt;                                   47.6365+-0.3518           47.1764+-0.1966          might be 1.0098x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097628</commentid>
    <comment_count>17</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-27 06:07:19 -0700</bug_when>
    <thetext>Hmm, not so much regression is not seen in the result of octane...
Chris, could you show me the result recorded by the bot?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097641</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-27 09:43:47 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Hmm, not so much regression is not seen in the result of octane...
&gt; Chris, could you show me the result recorded by the bot?

Before:
Octane:
   encrypt                                   0.23155+-0.00148   
   decrypt                                   3.97006+-0.01770   
   deltablue                        x2       0.20161+-0.00239   
   earley                                    0.40753+-0.00262   
   boyer                                     5.28486+-0.02377   
   navier-stokes                    x2       5.30456+-0.00516   
   raytrace                         x2       1.29004+-0.06608   
   richards                         x2       0.11809+-0.00218   
   splay                            x2       0.43150+-0.00193   
   regexp                           x2      33.76876+-1.20706   
   pdfjs                            x2      44.27672+-0.12879   
   mandreel                         x2      55.98757+-0.30013   
   gbemu                            x2      45.07825+-0.80017   
   closure                                   0.56693+-0.00258   
   jquery                                    7.36867+-0.08556   
   box2d                            x2      13.32420+-0.11109   
   zlib                             x2     415.57583+-4.16257   
   typescript                       x2     876.47437+-21.74862  

   &lt;geometric&gt;                               6.88459+-0.02350  

After:
Octane:
   encrypt                                   0.23677+-0.00496   
   decrypt                                   4.08401+-0.07232   
   deltablue                        x2       0.20326+-0.00203   
   earley                                    0.40773+-0.00335   
   boyer                                     5.30627+-0.02365   
   navier-stokes                    x2       5.42207+-0.11326   
   raytrace                         x2       1.28632+-0.04799   
   richards                         x2       0.11991+-0.00399   
   splay                            x2       0.42998+-0.00350   
   regexp                           x2      34.04030+-0.19098   
   pdfjs                            x2      44.87976+-0.66909   
   mandreel                         x2      56.67771+-0.56932   
   gbemu                            x2      46.01357+-0.36334   
   closure                                   0.57666+-0.00794   
   jquery                                    7.56159+-0.19547   
   box2d                            x2      13.59086+-0.18671   
   zlib                             x2     421.73576+-1.37770   
   typescript                       x2     866.99280+-26.61258  

   &lt;geometric&gt;                               6.96116+-0.02616</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097642</commentid>
    <comment_count>19</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-27 09:45:25 -0700</bug_when>
    <thetext>Before:
Kraken:
   ai-astar                                  241.371+-3.389     
   audio-beat-detection                      110.743+-0.826     
   audio-dft                                 133.197+-2.383     
   audio-fft                                  82.868+-1.108     
   audio-oscillator                           74.805+-0.658     
   imaging-darkroom                          107.580+-2.332     
   imaging-desaturate                         64.847+-2.574     
   imaging-gaussian-blur                     111.811+-1.039     
   json-parse-financial                       45.688+-0.853     
   json-stringify-tinderbox                   28.833+-0.106     
   stanford-crypto-aes                        60.056+-2.170     
   stanford-crypto-ccm                        48.420+-1.759     
   stanford-crypto-pbkdf2                    110.730+-1.447     
   stanford-crypto-sha256-iterative           42.744+-0.261     

   &lt;arithmetic&gt;                               90.264+-0.132 

After:
Kraken:
   ai-astar                                  246.549+-5.077     
   audio-beat-detection                      111.295+-1.463     
   audio-dft                                 134.715+-3.754     
   audio-fft                                  83.275+-0.687     
   audio-oscillator                           75.996+-2.610     
   imaging-darkroom                          109.206+-3.707     
   imaging-desaturate                         64.143+-0.229     
   imaging-gaussian-blur                     118.906+-6.630     
   json-parse-financial                       47.229+-1.999     
   json-stringify-tinderbox                   29.711+-0.777     
   stanford-crypto-aes                        59.652+-1.085     
   stanford-crypto-ccm                        49.938+-3.520     
   stanford-crypto-pbkdf2                    113.525+-2.838     
   stanford-crypto-sha256-iterative           43.867+-2.174     

   &lt;arithmetic&gt;                               92.001+-0.809</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098085</commentid>
    <comment_count>20</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-28 23:36:57 -0700</bug_when>
    <thetext>(In reply to comment #19)

Thank you! I&apos;ll investigate it more at night.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098091</commentid>
    <comment_count>21</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-29 00:38:02 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Before:
&gt; Kraken:
&gt;    ai-astar                                  241.371+-3.389     
&gt;    audio-beat-detection                      110.743+-0.826     
&gt;    audio-dft                                 133.197+-2.383     
&gt;    audio-fft                                  82.868+-1.108     
&gt;    audio-oscillator                           74.805+-0.658     
&gt;    imaging-darkroom                          107.580+-2.332     
&gt;    imaging-desaturate                         64.847+-2.574     
&gt;    imaging-gaussian-blur                     111.811+-1.039     
&gt;    json-parse-financial                       45.688+-0.853     
&gt;    json-stringify-tinderbox                   28.833+-0.106     
&gt;    stanford-crypto-aes                        60.056+-2.170     
&gt;    stanford-crypto-ccm                        48.420+-1.759     
&gt;    stanford-crypto-pbkdf2                    110.730+-1.447     
&gt;    stanford-crypto-sha256-iterative           42.744+-0.261     
&gt; 
&gt;    &lt;arithmetic&gt;                               90.264+-0.132 
&gt; 
&gt; After:
&gt; Kraken:
&gt;    ai-astar                                  246.549+-5.077     
&gt;    audio-beat-detection                      111.295+-1.463     
&gt;    audio-dft                                 134.715+-3.754     
&gt;    audio-fft                                  83.275+-0.687     
&gt;    audio-oscillator                           75.996+-2.610     
&gt;    imaging-darkroom                          109.206+-3.707     
&gt;    imaging-desaturate                         64.143+-0.229     
&gt;    imaging-gaussian-blur                     118.906+-6.630     
&gt;    json-parse-financial                       47.229+-1.999     
&gt;    json-stringify-tinderbox                   29.711+-0.777     
&gt;    stanford-crypto-aes                        59.652+-1.085     
&gt;    stanford-crypto-ccm                        49.938+-3.520     
&gt;    stanford-crypto-pbkdf2                    113.525+-2.838     
&gt;    stanford-crypto-sha256-iterative           43.867+-2.174     
&gt; 
&gt;    &lt;arithmetic&gt;                               92.001+-0.809

stanford-crypto-sha256-iterative doesn&apos;t contain any put_by_id direct related operations. Hm, i think it is related to StringView operations. But if i&apos;m wrong, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300817</commentid>
    <comment_count>22</comment_count>
      <attachid>253761</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-24 19:07:28 -0700</bug_when>
    <thetext>Comment on attachment 253761
Patch

This patch has been pending review since 2015 with no recent activity.

Clearing from the review queue.

Feel free to update and resubmit if the patch is still relevant.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253663</attachid>
            <date>2015-05-24 12:34:20 -0700</date>
            <delta_ts>2015-05-24 12:39:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145360-20150525043411.patch</filename>
            <type>text/plain</type>
            <size>4962</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0ODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NDI4MWEwOWU1YzZjZjUyYjU1NTkzZTE1YjhhZjUwZjU4ODAzNjk5Li42MTA3MDhlZGMwODU1NjFl
ZDM4MDFiMmFiYjQ0NTQwNzkwNGIwMThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNS0wNS0yNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBHZW5lcmF0ZSBwdXRfYnlfdmFsX2RpcmVjdCBmb3IgaW5k
ZXhlZCBpZGVudGlmaWVycyBpbnN0ZWFkIG9mIHB1dF9ieV9pZCB3aXRoIGRpcmVjdCBwb3N0Zml4
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUzNjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKU09iamVj
dDo6cHV0RGlyZWN0IG9ubHkgYWNjZXB0cyBub24taW5kZXhlZCBwcm9wZXJ0aWVzLgorICAgICAg
ICBTbyB3aGVuIGdlbmVyYXRpbmcgcHV0X2J5X2lkICh3aXRoIGRpcmVjdCBwb3N0Zml4KSBmb3Ig
aW5kZXhlZCBwcm9wZXJ0eSwKKyAgICAgICAgd2Ugc2hvdWxkIGdlbmVyYXRlIHB1dF9ieV92YWxf
ZGlyZWN0IGluc3RlYWQuCisKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERpcmVjdFB1dEJ5
SWQpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAo
SlNDOjpQcm9wZXJ0eUxpc3ROb2RlOjplbWl0UHV0Q29uc3RhbnRQcm9wZXJ0eSk6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC1kaXJlY3Qtc2hvdWxkLWJlLWRvbmUtZm9yLW5vbi1p
bmRleC1wcm9wZXJ0eS5qczogQWRkZWQuCisKIDIwMTUtMDUtMjMgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgSW50cm9kdWNlIFVuaXF1ZWRTdHJpbmdJ
bXBsIGFuZCBTeW1ib2xJbXBsIHRvIHNlcGFyYXRlIHN5bWJvbGljIHN0cmluZ3MgZnJvbSBBdG9t
aWNTdHJpbmdJbXBsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDRhNTc1N2JhMjljNzExODIwM2NmNjI2
NjU1OWJkNjU3M2IzMWViNzQuLjE3MWZjNWEyMzBjMTBjNDRiMjc1NjUxZGJiZjdkYjQxOWJkYTMw
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0xNTMxLDYgKzE1MzEsNyBAQCBSZWdpc3RlcklEKiBC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dEJ5SWQoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRl
bnRpZmllciYgcAogCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERpcmVjdFB1
dEJ5SWQoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIFJlZ2lz
dGVySUQqIHZhbHVlLCBQcm9wZXJ0eU5vZGU6OlB1dFR5cGUgcHV0VHlwZSkKIHsKKyAgICBBU1NF
UlQoIXBhcnNlSW5kZXgocHJvcGVydHkpKTsKICAgICB1bnNpZ25lZCBwcm9wZXJ0eUluZGV4ID0g
YWRkQ29uc3RhbnQocHJvcGVydHkpOwogCiAgICAgbV9zdGF0aWNQcm9wZXJ0eUFuYWx5emVyLnB1
dEJ5SWQoYmFzZS0+aW5kZXgoKSwgcHJvcGVydHlJbmRleCk7CkBAIC0xNTQ1LDcgKzE1NDYsNyBA
QCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERpcmVjdFB1dEJ5SWQoUmVnaXN0
ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZgogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCgwKTsK
ICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoMCk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5k
KDApOwotICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChwdXRUeXBlID09IFByb3BlcnR5Tm9kZTo6
S25vd25EaXJlY3QgfHwgKHByb3BlcnR5ICE9IG1fdm0tPnByb3BlcnR5TmFtZXMtPnVuZGVyc2Nv
cmVQcm90byAmJiAhcGFyc2VJbmRleChwcm9wZXJ0eSkpKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5h
cHBlbmQocHV0VHlwZSA9PSBQcm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0IHx8IChwcm9wZXJ0eSAh
PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT51bmRlcnNjb3JlUHJvdG8pKTsKICAgICByZXR1cm4gdmFs
dWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcAppbmRleCA2MTU5MTM4ZDZhNmYxZDMwOWVkZjNhNmFkN2M1MzYzYjdmNGMx
ZjkwLi5hZWQ5N2JhMjZkM2M5ODNlYThkOTQ2YTUwMjA3OWY0ZGRlMmNmNjhmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBA
IC01NjksOCArNTY5LDE2IEBAIHZvaWQgUHJvcGVydHlMaXN0Tm9kZTo6ZW1pdFB1dENvbnN0YW50
UHJvcGVydHkoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnCiAgICAgICAgICAgICB2
YWx1ZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0ciwgQnl0ZWNvZGVHZW5lcmF0b3I6OlByb3BlcnR5
Q29uZmlndXJhYmxlIHwgQnl0ZWNvZGVHZW5lcmF0b3I6OlByb3BlcnR5V3JpdGFibGUsIG1fcG9z
aXRpb24pOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlmIChub2RlLm5hbWUoKSkgewot
ICAgICAgICBnZW5lcmF0b3IuZW1pdERpcmVjdFB1dEJ5SWQobmV3T2JqLCAqbm9kZS5uYW1lKCks
IHZhbHVlLmdldCgpLCBub2RlLnB1dFR5cGUoKSk7CisgICAgY29uc3QgYXV0byogaWRlbnRpZmll
ciA9IG5vZGUubmFtZSgpOworICAgIGlmIChpZGVudGlmaWVyKSB7CisgICAgICAgIE9wdGlvbmFs
PHVpbnQzMl90PiBvcHRpb25hbEluZGV4ID0gcGFyc2VJbmRleCgqaWRlbnRpZmllcik7CisgICAg
ICAgIGlmICghb3B0aW9uYWxJbmRleCkgeworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJl
Y3RQdXRCeUlkKG5ld09iaiwgKmlkZW50aWZpZXIsIHZhbHVlLmdldCgpLCBub2RlLnB1dFR5cGUo
KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gaW5kZXggPSBnZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFy
eSgpLCBqc051bWJlcihvcHRpb25hbEluZGV4LnZhbHVlKCkpKTsKKyAgICAgICAgZ2VuZXJhdG9y
LmVtaXREaXJlY3RQdXRCeVZhbChuZXdPYmosIGluZGV4LmdldCgpLCB2YWx1ZS5nZXQoKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3BlcnR5TmFt
ZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShub2RlLm1fZXhwcmVzc2lvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC1kaXJlY3Qtc2hvdWxk
LWJlLWRvbmUtZm9yLW5vbi1pbmRleC1wcm9wZXJ0eS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvcHV0LWJ5LWlkLWRpcmVjdC1zaG91bGQtYmUtZG9uZS1mb3Itbm9uLWlu
ZGV4LXByb3BlcnR5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxNTk1MjI3MWY3ZTZjOTM2OWI1ZGRlNWFlYTEx
YWQ1ZmExNDg3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL3B1dC1ieS1pZC1kaXJlY3Qtc2hvdWxkLWJlLWRvbmUtZm9yLW5vbi1pbmRleC1w
cm9wZXJ0eS5qcwpAQCAtMCwwICsxLDQxIEBACisoZnVuY3Rpb24gKCkgeworICAgIHZhciBvYmpl
Y3QgPSB7CisgICAgICAgIDI6IDIKKyAgICB9OworCisgICAgdmFyIHJlc3VsdCA9IG9iamVjdFsy
XTsKKyAgICBpZiAocmVzdWx0ICE9PSAyKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2
YWx1ZTonICsgcmVzdWx0KTsKK30oKSk7CisKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgb2Jq
ZWN0ID0geworICAgICAgICBnZXQgMigpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAg
ICB9LAorICAgICAgICBzZXQgMih2YWx1ZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KDIpOworICAgICAgICB9LAorICAgIH07CisKKyAgICB2YXIgcmVzdWx0ID0gb2JqZWN0WzJdOwor
ICAgIGlmIChyZXN1bHQgIT09IDEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVl
OicgKyByZXN1bHQpOworfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgb2JqZWN0ID0g
eworICAgICAgICBnZXQgMigpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9LAor
ICAgICAgICBzZXQgMih2YWx1ZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKDIpOwor
ICAgICAgICB9LAorICAgICAgICAyOiAyLCAgLy8gRG8gbm90IHRocm93IG5ldyBFcnJvcigyKQor
ICAgIH07CisKKyAgICB2YXIgcmVzdWx0ID0gb2JqZWN0WzJdOworICAgIGlmIChyZXN1bHQgIT09
IDIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOicgKyByZXN1bHQpOworfSgp
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253665</attachid>
            <date>2015-05-24 12:39:27 -0700</date>
            <delta_ts>2015-05-26 17:11:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145360-20150525043918.patch</filename>
            <type>text/plain</type>
            <size>4960</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0ODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NDI4MWEwOWU1YzZjZjUyYjU1NTkzZTE1YjhhZjUwZjU4ODAzNjk5Li42MTA3MDhlZGMwODU1NjFl
ZDM4MDFiMmFiYjQ0NTQwNzkwNGIwMThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNS0wNS0yNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBHZW5lcmF0ZSBwdXRfYnlfdmFsX2RpcmVjdCBmb3IgaW5k
ZXhlZCBpZGVudGlmaWVycyBpbnN0ZWFkIG9mIHB1dF9ieV9pZCB3aXRoIGRpcmVjdCBwb3N0Zml4
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUzNjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKU09iamVj
dDo6cHV0RGlyZWN0IG9ubHkgYWNjZXB0cyBub24taW5kZXhlZCBwcm9wZXJ0aWVzLgorICAgICAg
ICBTbyB3aGVuIGdlbmVyYXRpbmcgcHV0X2J5X2lkICh3aXRoIGRpcmVjdCBwb3N0Zml4KSBmb3Ig
aW5kZXhlZCBwcm9wZXJ0eSwKKyAgICAgICAgd2Ugc2hvdWxkIGdlbmVyYXRlIHB1dF9ieV92YWxf
ZGlyZWN0IGluc3RlYWQuCisKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERpcmVjdFB1dEJ5
SWQpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAo
SlNDOjpQcm9wZXJ0eUxpc3ROb2RlOjplbWl0UHV0Q29uc3RhbnRQcm9wZXJ0eSk6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC1kaXJlY3Qtc2hvdWxkLWJlLWRvbmUtZm9yLW5vbi1p
bmRleC1wcm9wZXJ0eS5qczogQWRkZWQuCisKIDIwMTUtMDUtMjMgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgSW50cm9kdWNlIFVuaXF1ZWRTdHJpbmdJ
bXBsIGFuZCBTeW1ib2xJbXBsIHRvIHNlcGFyYXRlIHN5bWJvbGljIHN0cmluZ3MgZnJvbSBBdG9t
aWNTdHJpbmdJbXBsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDRhNTc1N2JhMjljNzExODIwM2NmNjI2
NjU1OWJkNjU3M2IzMWViNzQuLmNhNDg3OTk5MzQxODIyZWUyODQ0ZjViZGU4MzdkMWQ1MTA3YjUw
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0xNTMxLDYgKzE1MzEsNyBAQCBSZWdpc3RlcklEKiBC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dEJ5SWQoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRl
bnRpZmllciYgcAogCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERpcmVjdFB1
dEJ5SWQoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIFJlZ2lz
dGVySUQqIHZhbHVlLCBQcm9wZXJ0eU5vZGU6OlB1dFR5cGUgcHV0VHlwZSkKIHsKKyAgICBBU1NF
UlQoIXBhcnNlSW5kZXgocHJvcGVydHkpKTsKICAgICB1bnNpZ25lZCBwcm9wZXJ0eUluZGV4ID0g
YWRkQ29uc3RhbnQocHJvcGVydHkpOwogCiAgICAgbV9zdGF0aWNQcm9wZXJ0eUFuYWx5emVyLnB1
dEJ5SWQoYmFzZS0+aW5kZXgoKSwgcHJvcGVydHlJbmRleCk7CkBAIC0xNTQ1LDcgKzE1NDYsNyBA
QCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERpcmVjdFB1dEJ5SWQoUmVnaXN0
ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZgogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCgwKTsK
ICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoMCk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5k
KDApOwotICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChwdXRUeXBlID09IFByb3BlcnR5Tm9kZTo6
S25vd25EaXJlY3QgfHwgKHByb3BlcnR5ICE9IG1fdm0tPnByb3BlcnR5TmFtZXMtPnVuZGVyc2Nv
cmVQcm90byAmJiAhcGFyc2VJbmRleChwcm9wZXJ0eSkpKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5h
cHBlbmQocHV0VHlwZSA9PSBQcm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0IHx8IHByb3BlcnR5ICE9
IG1fdm0tPnByb3BlcnR5TmFtZXMtPnVuZGVyc2NvcmVQcm90byk7CiAgICAgcmV0dXJuIHZhbHVl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAKaW5kZXggNjE1OTEzOGQ2YTZmMWQzMDllZGYzYTZhZDdjNTM2M2I3ZjRjMWY5
MC4uYWVkOTdiYTI2ZDNjOTgzZWE4ZDk0NmE1MDIwNzlmNGRkZTJjZjY4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAt
NTY5LDggKzU2OSwxNiBAQCB2b2lkIFByb3BlcnR5TGlzdE5vZGU6OmVtaXRQdXRDb25zdGFudFBy
b3BlcnR5KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZwogICAgICAgICAgICAgdmFs
dWUuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIsIEJ5dGVjb2RlR2VuZXJhdG9yOjpQcm9wZXJ0eUNv
bmZpZ3VyYWJsZSB8IEJ5dGVjb2RlR2VuZXJhdG9yOjpQcm9wZXJ0eVdyaXRhYmxlLCBtX3Bvc2l0
aW9uKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAobm9kZS5uYW1lKCkpIHsKLSAg
ICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeUlkKG5ld09iaiwgKm5vZGUubmFtZSgpLCB2
YWx1ZS5nZXQoKSwgbm9kZS5wdXRUeXBlKCkpOworICAgIGNvbnN0IGF1dG8qIGlkZW50aWZpZXIg
PSBub2RlLm5hbWUoKTsKKyAgICBpZiAoaWRlbnRpZmllcikgeworICAgICAgICBPcHRpb25hbDx1
aW50MzJfdD4gb3B0aW9uYWxJbmRleCA9IHBhcnNlSW5kZXgoKmlkZW50aWZpZXIpOworICAgICAg
ICBpZiAoIW9wdGlvbmFsSW5kZXgpIHsKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0
UHV0QnlJZChuZXdPYmosICppZGVudGlmaWVyLCB2YWx1ZS5nZXQoKSwgbm9kZS5wdXRUeXBlKCkp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgUmVmUHRyPFJlZ2lz
dGVySUQ+IGluZGV4ID0gZ2VuZXJhdG9yLmVtaXRMb2FkKGdlbmVyYXRvci5uZXdUZW1wb3Jhcnko
KSwganNOdW1iZXIob3B0aW9uYWxJbmRleC52YWx1ZSgpKSk7CisgICAgICAgIGdlbmVyYXRvci5l
bWl0RGlyZWN0UHV0QnlWYWwobmV3T2JqLCBpbmRleC5nZXQoKSwgdmFsdWUuZ2V0KCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9wZXJ0eU5hbWUg
PSBnZW5lcmF0b3IuZW1pdE5vZGUobm9kZS5tX2V4cHJlc3Npb24pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wdXQtYnktaWQtZGlyZWN0LXNob3VsZC1i
ZS1kb25lLWZvci1ub24taW5kZXgtcHJvcGVydHkuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3B1dC1ieS1pZC1kaXJlY3Qtc2hvdWxkLWJlLWRvbmUtZm9yLW5vbi1pbmRl
eC1wcm9wZXJ0eS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTU5NTIyNzFmN2U2YzkzNjliNWRkZTVhZWExMWFk
NWZhMTQ4Nzg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9wdXQtYnktaWQtZGlyZWN0LXNob3VsZC1iZS1kb25lLWZvci1ub24taW5kZXgtcHJv
cGVydHkuanMKQEAgLTAsMCArMSw0MSBAQAorKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgb2JqZWN0
ID0geworICAgICAgICAyOiAyCisgICAgfTsKKworICAgIHZhciByZXN1bHQgPSBvYmplY3RbMl07
CisgICAgaWYgKHJlc3VsdCAhPT0gMikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFs
dWU6JyArIHJlc3VsdCk7Cit9KCkpOworCisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIG9iamVj
dCA9IHsKKyAgICAgICAgZ2V0IDIoKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAg
fSwKKyAgICAgICAgc2V0IDIodmFsdWUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigy
KTsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgdmFyIHJlc3VsdCA9IG9iamVjdFsyXTsKKyAg
ICBpZiAocmVzdWx0ICE9PSAxKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTon
ICsgcmVzdWx0KTsKK30oKSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIG9iamVjdCA9IHsK
KyAgICAgICAgZ2V0IDIoKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfSwKKyAg
ICAgICAgc2V0IDIodmFsdWUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigyKTsKKyAg
ICAgICAgfSwKKyAgICAgICAgMjogMiwgIC8vIERvIG5vdCB0aHJvdyBuZXcgRXJyb3IoMikKKyAg
ICB9OworCisgICAgdmFyIHJlc3VsdCA9IG9iamVjdFsyXTsKKyAgICBpZiAocmVzdWx0ICE9PSAy
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTonICsgcmVzdWx0KTsKK30oKSk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253761</attachid>
            <date>2015-05-26 17:11:28 -0700</date>
            <delta_ts>2017-04-24 19:07:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145360-20150527091116.patch</filename>
            <type>text/plain</type>
            <size>18185</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0ODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZGRkNzU3NTM0ODc1NzQ3NzA0NWNmYjkyMjExYWQxYzU2NzRlZWU2Li4yZDcxNDk5ZjQyMTVkMTdh
MGUzMWRkMTJmODFlOTlmNzc3N2ZmNzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNSBAQAogMjAxNS0wNS0yNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBQcm9wZXJ0eU5vZGUgY2Fycnkgd2hldGhlciB0aGUgcHJvcGVydHkg
bmFtZSBpcyBkZWZpbml0ZWx5IG5vbi1pbmRleAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MzYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQnkgY2Fycnlpbmcgd2hldGhlciB0aGUgcHJvcGVydHkgbmFt
ZSBpcyBkZWZpbml0ZWx5IG5vbi1pbmRleCwKKyAgICAgICAgd2UgY2FuIGF2b2lkIGBwYXJzZUlu
ZGV4YCBjaGVjayB3aGVuIHRoZSBnaXZlbiBwcm9wZXJ0eSBuYW1lIGlzIGRlZmluaXRlbHkgbm9u
LWluZGV4LgorCisgICAgICAgIEluIG9iamVjdCBsaXRlcmFsIGNhc2UsIGlmIHRoZSBnaXZlbiBv
YmplY3QgbGl0ZXJhbCBwcm9wZXJ0eSBuYW1lIGlzIElERU5ULAorICAgICAgICB0aGlzIGlzIGRl
ZmluaXRlbHkgbm9uLWluZGV4LgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdl
bi5jcHA6CisgICAgICAgIChKU0M6OlByb3BlcnR5TGlzdE5vZGU6OmVtaXRQdXRDb25zdGFudFBy
b3BlcnR5KToKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAoSlNDOjpB
U1RCdWlsZGVyOjpjcmVhdGVHZXR0ZXJPclNldHRlclByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6
QVNUQnVpbGRlcjo6Y3JlYXRlUHJvcGVydHkpOgorICAgICAgICAqIHBhcnNlci9Ob2RlQ29uc3Ry
dWN0b3JzLmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5Tm9kZTo6UHJvcGVydHlOb2RlKToKKyAg
ICAgICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOb2RlOjpwcm9w
ZXJ0eU5hbWVUeXBlKToKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpT
Qzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQ2xhc3MpOgorICAgICAgICAoSlNDOjpQYXJzZXI8
TGV4ZXJUeXBlPjo6cGFyc2VQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5
cGU+OjpwYXJzZUdldHRlclNldHRlcik6CisgICAgICAgICogcGFyc2VyL1N5bnRheENoZWNrZXIu
aDoKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6Y3JlYXRlUHJvcGVydHkpOgorICAgICAg
ICAoSlNDOjpTeW50YXhDaGVja2VyOjpjcmVhdGVHZXR0ZXJPclNldHRlclByb3BlcnR5KToKKwor
MjAxNS0wNS0yNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwogICAg
ICAgICBBZGQgQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4gdG8gSlNDIGZlYXR1cmVzLmpzb24K
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTM4Nwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdl
bi5jcHAKaW5kZXggOWVjOTFjYjE2YzA0NTdhYjg3YmVlNjc0MWM5ZWI1MGQzZjg4ODliYy4uYWVh
MzQ5YTQ0ZWM4ZjcxMjZkMjBiODUwMzUyNGMwN2VmNjQ5ODJmOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtNTcwLDE0
ICs1NzAsMTQgQEAgdm9pZCBQcm9wZXJ0eUxpc3ROb2RlOjplbWl0UHV0Q29uc3RhbnRQcm9wZXJ0
eShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWcKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBpZiAoY29uc3QgYXV0byogaWRlbnRpZmllciA9IG5vZGUubmFtZSgpKSB7Ci0gICAg
ICAgIE9wdGlvbmFsPHVpbnQzMl90PiBvcHRpb25hbEluZGV4ID0gcGFyc2VJbmRleCgqaWRlbnRp
Zmllcik7Ci0gICAgICAgIGlmICghb3B0aW9uYWxJbmRleCkgewotICAgICAgICAgICAgZ2VuZXJh
dG9yLmVtaXREaXJlY3RQdXRCeUlkKG5ld09iaiwgKmlkZW50aWZpZXIsIHZhbHVlLmdldCgpLCBu
b2RlLnB1dFR5cGUoKSk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChub2RlLnBy
b3BlcnR5TmFtZVR5cGUoKSAhPSBQcm9wZXJ0eU5vZGU6OkRlZmluaXRlbHlOb25JbmRleCkgewor
ICAgICAgICAgICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBvcHRpb25hbEluZGV4ID0gcGFyc2VJ
bmRleCgqaWRlbnRpZmllcikpIHsKKyAgICAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4g
aW5kZXggPSBnZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBqc051
bWJlcihvcHRpb25hbEluZGV4LnZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3Iu
ZW1pdERpcmVjdFB1dEJ5VmFsKG5ld09iaiwgaW5kZXguZ2V0KCksIHZhbHVlLmdldCgpKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAgICAgICAgIH0KLQotICAgICAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gaW5kZXggPSBnZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJhdG9y
Lm5ld1RlbXBvcmFyeSgpLCBqc051bWJlcihvcHRpb25hbEluZGV4LnZhbHVlKCkpKTsKLSAgICAg
ICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeVZhbChuZXdPYmosIGluZGV4LmdldCgpLCB2YWx1
ZS5nZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChuZXdPYmosICpp
ZGVudGlmaWVyLCB2YWx1ZS5nZXQoKSwgbm9kZS5wdXRUeXBlKCkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9wZXJ0eU5hbWUgPSBnZW5lcmF0b3Iu
ZW1pdE5vZGUobm9kZS5tX2V4cHJlc3Npb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L0FTVEJ1aWxkZXIuaAppbmRleCBmMWYwYzA0ZmU1ZTcwYWIwOTk0MWM2NDAzODNkNzI2MjU2ZmEz
MDhkLi4yYjY2ODVhZThjYWU5YTdkMTA5ODc4N2Y1NDVhNjFiMDNiYWVhZjFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaApAQCAtMzY0LDcgKzM2NCw3IEBAIGNs
YXNzIEFTVEJ1aWxkZXIgewogICAgICAgICAgICAgaW5TdHJpY3RDb250ZXh0LCBjb25zdHJ1Y3Rv
cktpbmQpOwogICAgIH0KIAotICAgIE5FVkVSX0lOTElORSBQcm9wZXJ0eU5vZGUqIGNyZWF0ZUdl
dHRlck9yU2V0dGVyUHJvcGVydHkoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgUHJv
cGVydHlOb2RlOjpUeXBlIHR5cGUsIGJvb2wsCisgICAgTkVWRVJfSU5MSU5FIFByb3BlcnR5Tm9k
ZSogY3JlYXRlR2V0dGVyT3JTZXR0ZXJQcm9wZXJ0eShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxv
Y2F0aW9uLCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQcm9wZXJ0eU5h
bWVUeXBlIHByb3BlcnR5TmFtZVR5cGUsIGJvb2wsCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIq
IG5hbWUsIGNvbnN0IFBhcnNlckZ1bmN0aW9uSW5mbzxBU1RCdWlsZGVyPiYgaW5mbywgU3VwZXJC
aW5kaW5nIHN1cGVyQmluZGluZykKICAgICB7CiAgICAgICAgIEFTU0VSVChuYW1lKTsKQEAgLTM3
MiwxNyArMzcyLDE3IEBAIGNsYXNzIEFTVEJ1aWxkZXIgewogICAgICAgICBpbmZvLmJvZHktPnNl
dEluZmVycmVkTmFtZSgqbmFtZSk7CiAgICAgICAgIFNvdXJjZUNvZGUgc291cmNlID0gbV9zb3Vy
Y2VDb2RlLT5zdWJFeHByZXNzaW9uKGluZm8ub3BlbkJyYWNlT2Zmc2V0LCBpbmZvLmNsb3NlQnJh
Y2VPZmZzZXQsIGluZm8uYm9keVN0YXJ0TGluZSwgaW5mby5ib2R5U3RhcnRDb2x1bW4pOwogICAg
ICAgICBGdW5jRXhwck5vZGUqIGZ1bmNFeHByID0gbmV3IChtX3BhcnNlckFyZW5hKSBGdW5jRXhw
ck5vZGUobG9jYXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPm51bGxJZGVudGlmaWVyLCBpbmZv
LmJvZHksIHNvdXJjZSwgaW5mby5wYXJhbWV0ZXJzKTsKLSAgICAgICAgcmV0dXJuIG5ldyAobV9w
YXJzZXJBcmVuYSkgUHJvcGVydHlOb2RlKCpuYW1lLCBmdW5jRXhwciwgdHlwZSwgUHJvcGVydHlO
b2RlOjpVbmtub3duLCBzdXBlckJpbmRpbmcpOworICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNl
ckFyZW5hKSBQcm9wZXJ0eU5vZGUoKm5hbWUsIGZ1bmNFeHByLCB0eXBlLCBQcm9wZXJ0eU5vZGU6
OlVua25vd24sIHByb3BlcnR5TmFtZVR5cGUsIHN1cGVyQmluZGluZyk7CiAgICAgfQogICAgIAot
ICAgIE5FVkVSX0lOTElORSBQcm9wZXJ0eU5vZGUqIGNyZWF0ZUdldHRlck9yU2V0dGVyUHJvcGVy
dHkoVk0qIHZtLCBQYXJzZXJBcmVuYSYgcGFyc2VyQXJlbmEsIGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgbG9jYXRpb24sIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBib29sLAorICAgIE5FVkVSX0lO
TElORSBQcm9wZXJ0eU5vZGUqIGNyZWF0ZUdldHRlck9yU2V0dGVyUHJvcGVydHkoVk0qIHZtLCBQ
YXJzZXJBcmVuYSYgcGFyc2VyQXJlbmEsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24s
IFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0eU5vZGU6OlByb3BlcnR5TmFtZVR5cGUg
cHJvcGVydHlOYW1lVHlwZSwgYm9vbCwKICAgICAgICAgZG91YmxlIG5hbWUsIGNvbnN0IFBhcnNl
ckZ1bmN0aW9uSW5mbzxBU1RCdWlsZGVyPiYgaW5mbywgU3VwZXJCaW5kaW5nIHN1cGVyQmluZGlu
ZykKICAgICB7CiAgICAgICAgIGluZm8uYm9keS0+c2V0TG9jKGluZm8uYm9keVN0YXJ0TGluZSwg
aW5mby5ib2R5RW5kTGluZSwgbG9jYXRpb24uc3RhcnRPZmZzZXQsIGxvY2F0aW9uLmxpbmVTdGFy
dE9mZnNldCk7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gcGFyc2VyQXJlbmEu
aWRlbnRpZmllckFyZW5hKCkubWFrZU51bWVyaWNJZGVudGlmaWVyKHZtLCBuYW1lKTsKICAgICAg
ICAgU291cmNlQ29kZSBzb3VyY2UgPSBtX3NvdXJjZUNvZGUtPnN1YkV4cHJlc3Npb24oaW5mby5v
cGVuQnJhY2VPZmZzZXQsIGluZm8uY2xvc2VCcmFjZU9mZnNldCwgaW5mby5ib2R5U3RhcnRMaW5l
LCBpbmZvLmJvZHlTdGFydENvbHVtbik7CiAgICAgICAgIEZ1bmNFeHByTm9kZSogZnVuY0V4cHIg
PSBuZXcgKG1fcGFyc2VyQXJlbmEpIEZ1bmNFeHByTm9kZShsb2NhdGlvbiwgdm0tPnByb3BlcnR5
TmFtZXMtPm51bGxJZGVudGlmaWVyLCBpbmZvLmJvZHksIHNvdXJjZSwgaW5mby5wYXJhbWV0ZXJz
KTsKLSAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlOb2RlKGlkZW50
LCBmdW5jRXhwciwgdHlwZSwgUHJvcGVydHlOb2RlOjpVbmtub3duLCBzdXBlckJpbmRpbmcpOwor
ICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBQcm9wZXJ0eU5vZGUoaWRlbnQsIGZ1
bmNFeHByLCB0eXBlLCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIHByb3BlcnR5TmFtZVR5cGUsIHN1
cGVyQmluZGluZyk7CiAgICAgfQogCiAgICAgQXJndW1lbnRzTm9kZSogY3JlYXRlQXJndW1lbnRz
KCkgeyByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBBcmd1bWVudHNOb2RlKCk7IH0KQEAgLTM5
MCwxNSArMzkwLDE1IEBAIGNsYXNzIEFTVEJ1aWxkZXIgewogICAgIEFyZ3VtZW50TGlzdE5vZGUq
IGNyZWF0ZUFyZ3VtZW50c0xpc3QoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhw
cmVzc2lvbk5vZGUqIGFyZykgeyByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBBcmd1bWVudExp
c3ROb2RlKGxvY2F0aW9uLCBhcmcpOyB9CiAgICAgQXJndW1lbnRMaXN0Tm9kZSogY3JlYXRlQXJn
dW1lbnRzTGlzdChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBBcmd1bWVudExpc3RO
b2RlKiBhcmdzLCBFeHByZXNzaW9uTm9kZSogYXJnKSB7IHJldHVybiBuZXcgKG1fcGFyc2VyQXJl
bmEpIEFyZ3VtZW50TGlzdE5vZGUobG9jYXRpb24sIGFyZ3MsIGFyZyk7IH0KIAotICAgIFByb3Bl
cnR5Tm9kZSogY3JlYXRlUHJvcGVydHkoY29uc3QgSWRlbnRpZmllciogcHJvcGVydHlOYW1lLCBF
eHByZXNzaW9uTm9kZSogbm9kZSwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIFByb3BlcnR5Tm9k
ZTo6UHV0VHlwZSBwdXRUeXBlLCBib29sLCBTdXBlckJpbmRpbmcgc3VwZXJCaW5kaW5nID0gU3Vw
ZXJCaW5kaW5nOjpOb3ROZWVkZWQpCisgICAgUHJvcGVydHlOb2RlKiBjcmVhdGVQcm9wZXJ0eShj
b25zdCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25Ob2RlKiBub2RlLCBQcm9w
ZXJ0eU5vZGU6OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlIHB1dFR5cGUsIFByb3Bl
cnR5Tm9kZTo6UHJvcGVydHlOYW1lVHlwZSBwcm9wZXJ0eU5hbWVUeXBlLCBib29sLCBTdXBlckJp
bmRpbmcgc3VwZXJCaW5kaW5nID0gU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQpCiAgICAgewogICAg
ICAgICBpZiAobm9kZS0+aXNGdW5jRXhwck5vZGUoKSkKICAgICAgICAgICAgIHN0YXRpY19jYXN0
PEZ1bmNFeHByTm9kZSo+KG5vZGUpLT5ib2R5KCktPnNldEluZmVycmVkTmFtZSgqcHJvcGVydHlO
YW1lKTsKLSAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlOb2RlKCpw
cm9wZXJ0eU5hbWUsIG5vZGUsIHR5cGUsIHB1dFR5cGUsIHN1cGVyQmluZGluZyk7CisgICAgICAg
IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZSgqcHJvcGVydHlOYW1lLCBu
b2RlLCB0eXBlLCBwdXRUeXBlLCBwcm9wZXJ0eU5hbWVUeXBlLCBzdXBlckJpbmRpbmcpOwogICAg
IH0KICAgICBQcm9wZXJ0eU5vZGUqIGNyZWF0ZVByb3BlcnR5KFZNKiB2bSwgUGFyc2VyQXJlbmEm
IHBhcnNlckFyZW5hLCBkb3VibGUgcHJvcGVydHlOYW1lLCBFeHByZXNzaW9uTm9kZSogbm9kZSwg
UHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIFByb3BlcnR5Tm9kZTo6UHV0VHlwZSBwdXRUeXBlLCBi
b29sKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlO
b2RlKHBhcnNlckFyZW5hLmlkZW50aWZpZXJBcmVuYSgpLm1ha2VOdW1lcmljSWRlbnRpZmllcih2
bSwgcHJvcGVydHlOYW1lKSwgbm9kZSwgdHlwZSwgcHV0VHlwZSk7CisgICAgICAgIHJldHVybiBu
ZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZShwYXJzZXJBcmVuYS5pZGVudGlmaWVyQXJl
bmEoKS5tYWtlTnVtZXJpY0lkZW50aWZpZXIodm0sIHByb3BlcnR5TmFtZSksIG5vZGUsIHR5cGUs
IHB1dFR5cGUsIFByb3BlcnR5Tm9kZTo6SW5kZXRlcm1pbmF0ZSk7CiAgICAgfQogICAgIFByb3Bl
cnR5Tm9kZSogY3JlYXRlUHJvcGVydHkoRXhwcmVzc2lvbk5vZGUqIHByb3BlcnR5TmFtZSwgRXhw
cmVzc2lvbk5vZGUqIG5vZGUsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0eU5vZGU6
OlB1dFR5cGUgcHV0VHlwZSwgYm9vbCkgeyByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBQcm9w
ZXJ0eU5vZGUocHJvcGVydHlOYW1lLCBub2RlLCB0eXBlLCBwdXRUeXBlKTsgfQogICAgIFByb3Bl
cnR5TGlzdE5vZGUqIGNyZWF0ZVByb3BlcnR5TGlzdChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxv
Y2F0aW9uLCBQcm9wZXJ0eU5vZGUqIHByb3BlcnR5KSB7IHJldHVybiBuZXcgKG1fcGFyc2VyQXJl
bmEpIFByb3BlcnR5TGlzdE5vZGUobG9jYXRpb24sIHByb3BlcnR5KTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAppbmRleCA5NTQ2YjcxMzhm
YmRjMTJhMjdlMmIwYmVhNDJmZjkwYjg2ZjA5MzJkLi5mNWM1ZWY0NjJlOTIzY2YzM2YxZjJmMzUy
ZDJmZDQyYzcyZjM5NzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVDb25zdHJ1Y3RvcnMuaApAQCAtMjE3LDEyICsyMTcsMTMgQEAKICAgICB7CiAgICAgfQogCi0g
ICAgaW5saW5lIFByb3BlcnR5Tm9kZTo6UHJvcGVydHlOb2RlKGNvbnN0IElkZW50aWZpZXImIG5h
bWUsIEV4cHJlc3Npb25Ob2RlKiBhc3NpZ24sIFR5cGUgdHlwZSwgUHV0VHlwZSBwdXRUeXBlLCBT
dXBlckJpbmRpbmcgc3VwZXJCaW5kaW5nID0gU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQpCisgICAg
aW5saW5lIFByb3BlcnR5Tm9kZTo6UHJvcGVydHlOb2RlKGNvbnN0IElkZW50aWZpZXImIG5hbWUs
IEV4cHJlc3Npb25Ob2RlKiBhc3NpZ24sIFR5cGUgdHlwZSwgUHV0VHlwZSBwdXRUeXBlLCBQcm9w
ZXJ0eU5hbWVUeXBlIHByb3BlcnR5TmFtZVR5cGUsIFN1cGVyQmluZGluZyBzdXBlckJpbmRpbmcg
PSBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCkKICAgICAgICAgOiBtX25hbWUoJm5hbWUpCiAgICAg
ICAgICwgbV9hc3NpZ24oYXNzaWduKQogICAgICAgICAsIG1fdHlwZSh0eXBlKQogICAgICAgICAs
IG1fbmVlZHNTdXBlckJpbmRpbmcoc3VwZXJCaW5kaW5nID09IFN1cGVyQmluZGluZzo6TmVlZGVk
KQogICAgICAgICAsIG1fcHV0VHlwZShwdXRUeXBlKQorICAgICAgICAsIG1fcHJvcGVydHlOYW1l
VHlwZShwcm9wZXJ0eU5hbWVUeXBlKQogICAgIHsKICAgICB9CiAKQEAgLTIzMyw2ICsyMzQsNyBA
QAogICAgICAgICAsIG1fdHlwZSh0eXBlKQogICAgICAgICAsIG1fbmVlZHNTdXBlckJpbmRpbmco
ZmFsc2UpCiAgICAgICAgICwgbV9wdXRUeXBlKHB1dFR5cGUpCisgICAgICAgICwgbV9wcm9wZXJ0
eU5hbWVUeXBlKEluZGV0ZXJtaW5hdGUpCiAgICAgewogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2Rlcy5oCmluZGV4IDJhNDUyYWQzOGFhYzE0ZTM2NjFjZjk2ZWVlYjc5ZmFjZjFi
ZGI0OGMuLjVlNDU5ZDQ4NDE4NWQ2MjY5ZjBmNjIxMjFmNWVjNjBhNzNiZmM0YzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTU4Miw4ICs1ODIsOSBAQAogICAgIHB1Ymxp
YzoKICAgICAgICAgZW51bSBUeXBlIHsgQ29uc3RhbnQgPSAxLCBHZXR0ZXIgPSAyLCBTZXR0ZXIg
PSA0LCBDb21wdXRlZCA9IDgsIFNob3J0aGFuZCA9IDE2IH07CiAgICAgICAgIGVudW0gUHV0VHlw
ZSB7IFVua25vd24sIEtub3duRGlyZWN0IH07CisgICAgICAgIGVudW0gUHJvcGVydHlOYW1lVHlw
ZSB7IERlZmluaXRlbHlOb25JbmRleCA9IDAsIEluZGV0ZXJtaW5hdGUgPSAxIH07CiAKLSAgICAg
ICAgUHJvcGVydHlOb2RlKGNvbnN0IElkZW50aWZpZXImLCBFeHByZXNzaW9uTm9kZSosIFR5cGUs
IFB1dFR5cGUsIFN1cGVyQmluZGluZyk7CisgICAgICAgIFByb3BlcnR5Tm9kZShjb25zdCBJZGVu
dGlmaWVyJiwgRXhwcmVzc2lvbk5vZGUqLCBUeXBlLCBQdXRUeXBlLCBQcm9wZXJ0eU5hbWVUeXBl
LCBTdXBlckJpbmRpbmcpOwogICAgICAgICBQcm9wZXJ0eU5vZGUoRXhwcmVzc2lvbk5vZGUqIHBy
b3BlcnR5TmFtZSwgRXhwcmVzc2lvbk5vZGUqLCBUeXBlLCBQdXRUeXBlKTsKIAogICAgICAgICBF
eHByZXNzaW9uTm9kZSogZXhwcmVzc2lvbk5hbWUoKSBjb25zdCB7IHJldHVybiBtX2V4cHJlc3Np
b247IH0KQEAgLTU5Miw2ICs1OTMsNyBAQAogICAgICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxUeXBlPihtX3R5cGUpOyB9CiAgICAgICAgIGJvb2wgbmVlZHNTdXBl
ckJpbmRpbmcoKSBjb25zdCB7IHJldHVybiBtX25lZWRzU3VwZXJCaW5kaW5nOyB9CiAgICAgICAg
IFB1dFR5cGUgcHV0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFB1dFR5cGU+KG1f
cHV0VHlwZSk7IH0KKyAgICAgICAgUHJvcGVydHlOYW1lVHlwZSBwcm9wZXJ0eU5hbWVUeXBlKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlOYW1lVHlwZT4obV9wcm9wZXJ0eU5h
bWVUeXBlKTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIFByb3BlcnR5
TGlzdE5vZGU7CkBAIC02MDEsNiArNjAzLDcgQEAKICAgICAgICAgdW5zaWduZWQgbV90eXBlIDog
NTsKICAgICAgICAgdW5zaWduZWQgbV9uZWVkc1N1cGVyQmluZGluZyA6IDE7CiAgICAgICAgIHVu
c2lnbmVkIG1fcHV0VHlwZSA6IDE7CisgICAgICAgIHVuc2lnbmVkIG1fcHJvcGVydHlOYW1lVHlw
ZSA6IDE7CiAgICAgfTsKIAogICAgIGNsYXNzIFByb3BlcnR5TGlzdE5vZGUgOiBwdWJsaWMgRXhw
cmVzc2lvbk5vZGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Q
YXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4
IGQ2NzE2NWNlZDdhMDUxNmIxMGJhZjcwMDMzYzg3YzBkNDNmODEzM2EuLjcwZTNkOGYwYmU5N2Qw
ZmVjYTY0NWQ5OTRjYzc3Y2NmYmRkYTE2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1BhcnNlci5jcHAKQEAgLTE2MTAsNyArMTYxMCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBzdHJp
bmdGb3JGdW5jdGlvbk1vZGUoRnVuY3Rpb25QYXJzZU1vZGUgbW9kZSkKICAgICAgICAgICAgIC8v
IEZJWE1FOiBTeW50YXggZXJyb3Igd2hlbiBzdXBlcigpIGlzIGNhbGxlZAogICAgICAgICAgICAg
c2VtYW50aWNGYWlsSWZUcnVlKGlzU3RhdGljTWV0aG9kICYmIG1ldGhvZEluZm8ubmFtZSAmJiAq
bWV0aG9kSW5mby5uYW1lID09IHByb3BlcnR5TmFtZXMucHJvdG90eXBlLAogICAgICAgICAgICAg
ICAgICJDYW5ub3QgZGVjbGFyZSBhIHN0YXRpYyBtZXRob2QgbmFtZWQgJ3Byb3RvdHlwZSciKTsK
LSAgICAgICAgICAgIHByb3BlcnR5ID0gY29udGV4dC5jcmVhdGVQcm9wZXJ0eShtZXRob2RJbmZv
Lm5hbWUsIG1ldGhvZCwgUHJvcGVydHlOb2RlOjpDb25zdGFudCwgUHJvcGVydHlOb2RlOjpVbmtu
b3duLCBhbHdheXNTdHJpY3RJbnNpZGVDbGFzcywgU3VwZXJCaW5kaW5nOjpOZWVkZWQpOworICAg
ICAgICAgICAgcHJvcGVydHkgPSBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KG1ldGhvZEluZm8ubmFt
ZSwgbWV0aG9kLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQcm9wZXJ0eU5vZGU6OlVua25vd24s
IFByb3BlcnR5Tm9kZTo6SW5kZXRlcm1pbmF0ZSwgYWx3YXlzU3RyaWN0SW5zaWRlQ2xhc3MsIFN1
cGVyQmluZGluZzo6TmVlZGVkKTsKICAgICAgICAgfQogCiAgICAgICAgIFRyZWVQcm9wZXJ0eUxp
c3QmIHRhaWwgPSBpc1N0YXRpY01ldGhvZCA/IHN0YXRpY01ldGhvZHNUYWlsIDogaW5zdGFuY2VN
ZXRob2RzVGFpbDsKQEAgLTIwMTksMTMgKzIwMTksMTMgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMg
Ym9vbCBpc1VuYXJ5T3AoSlNUb2tlblR5cGUgdG9rZW4pCiAgICAgICAgICAgICBUcmVlRXhwcmVz
c2lvbiBub2RlID0gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAg
ICAgIGZhaWxJZkZhbHNlKG5vZGUsICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiBmb3IgcHJvcGVy
dHkgZGVjbGFyYXRpb24iKTsKICAgICAgICAgICAgIGNvbnRleHQuc2V0RW5kT2Zmc2V0KG5vZGUs
IG1fbGV4ZXItPmN1cnJlbnRPZmZzZXQoKSk7Ci0gICAgICAgICAgICByZXR1cm4gY29udGV4dC5j
cmVhdGVQcm9wZXJ0eShpZGVudCwgbm9kZSwgUHJvcGVydHlOb2RlOjpDb25zdGFudCwgUHJvcGVy
dHlOb2RlOjpVbmtub3duLCBjb21wbGV0ZSk7CisgICAgICAgICAgICByZXR1cm4gY29udGV4dC5j
cmVhdGVQcm9wZXJ0eShpZGVudCwgbm9kZSwgUHJvcGVydHlOb2RlOjpDb25zdGFudCwgUHJvcGVy
dHlOb2RlOjpVbmtub3duLCB3YXNJZGVudCA/IFByb3BlcnR5Tm9kZTo6RGVmaW5pdGVseU5vbklu
ZGV4IDogUHJvcGVydHlOb2RlOjpJbmRldGVybWluYXRlLCBjb21wbGV0ZSk7CiAgICAgICAgIH0K
IAogICAgICAgICBpZiAobWF0Y2goT1BFTlBBUkVOKSkgewogICAgICAgICAgICAgYXV0byBtZXRo
b2QgPSBwYXJzZVByb3BlcnR5TWV0aG9kKGNvbnRleHQsIGlkZW50KTsKICAgICAgICAgICAgIHBy
b3BhZ2F0ZUVycm9yKCk7Ci0gICAgICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVQcm9wZXJ0
eShpZGVudCwgbWV0aG9kLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQcm9wZXJ0eU5vZGU6Oktu
b3duRGlyZWN0LCBjb21wbGV0ZSk7CisgICAgICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVQ
cm9wZXJ0eShpZGVudCwgbWV0aG9kLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQcm9wZXJ0eU5v
ZGU6Oktub3duRGlyZWN0LCB3YXNJZGVudCA/IFByb3BlcnR5Tm9kZTo6RGVmaW5pdGVseU5vbklu
ZGV4IDogUHJvcGVydHlOb2RlOjpJbmRldGVybWluYXRlLCBjb21wbGV0ZSk7CiAgICAgICAgIH0K
IAogICAgICAgICBmYWlsSWZGYWxzZSh3YXNJZGVudCwgIkV4cGVjdGVkIGFuIGlkZW50aWZpZXIg
YXMgcHJvcGVydHkgbmFtZSIpOwpAQCAtMjAzNSw3ICsyMDM1LDcgQEAgQUxXQVlTX0lOTElORSBz
dGF0aWMgYm9vbCBpc1VuYXJ5T3AoSlNUb2tlblR5cGUgdG9rZW4pCiAgICAgICAgICAgICBKU1Rv
a2VuTG9jYXRpb24gbG9jYXRpb24odG9rZW5Mb2NhdGlvbigpKTsKICAgICAgICAgICAgIGN1cnJl
bnRTY29wZSgpLT51c2VWYXJpYWJsZShpZGVudCwgbV92bS0+cHJvcGVydHlOYW1lcy0+ZXZhbCA9
PSAqaWRlbnQpOwogICAgICAgICAgICAgVHJlZUV4cHJlc3Npb24gbm9kZSA9IGNvbnRleHQuY3Jl
YXRlUmVzb2x2ZShsb2NhdGlvbiwgaWRlbnQsIHN0YXJ0KTsKLSAgICAgICAgICAgIHJldHVybiBj
b250ZXh0LmNyZWF0ZVByb3BlcnR5KGlkZW50LCBub2RlLCBzdGF0aWNfY2FzdDxQcm9wZXJ0eU5v
ZGU6OlR5cGU+KFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQgfCBQcm9wZXJ0eU5vZGU6OlNob3J0aGFu
ZCksIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QsIGNvbXBsZXRlKTsKKyAgICAgICAgICAgIHJl
dHVybiBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KGlkZW50LCBub2RlLCBzdGF0aWNfY2FzdDxQcm9w
ZXJ0eU5vZGU6OlR5cGU+KFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQgfCBQcm9wZXJ0eU5vZGU6OlNo
b3J0aGFuZCksIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QsIHdhc0lkZW50ID8gUHJvcGVydHlO
b2RlOjpEZWZpbml0ZWx5Tm9uSW5kZXggOiBQcm9wZXJ0eU5vZGU6OkluZGV0ZXJtaW5hdGUsIGNv
bXBsZXRlKTsKICAgICAgICAgfQogCiAgICAgICAgIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlOwpA
QCAtMjA1Niw3ICsyMDU2LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBpc1VuYXJ5T3Ao
SlNUb2tlblR5cGUgdG9rZW4pCiAgICAgICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9
IG1fcGFyc2VyQXJlbmEuaWRlbnRpZmllckFyZW5hKCkubWFrZU51bWVyaWNJZGVudGlmaWVyKGNv
bnN0X2Nhc3Q8Vk0qPihtX3ZtKSwgcHJvcGVydHlOYW1lKTsKICAgICAgICAgICAgIGF1dG8gbWV0
aG9kID0gcGFyc2VQcm9wZXJ0eU1ldGhvZChjb250ZXh0LCAmaWRlbnQpOwogICAgICAgICAgICAg
cHJvcGFnYXRlRXJyb3IoKTsKLSAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVByb3Bl
cnR5KCZpZGVudCwgbWV0aG9kLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQcm9wZXJ0eU5vZGU6
OlVua25vd24sIGNvbXBsZXRlKTsKKyAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVBy
b3BlcnR5KCZpZGVudCwgbWV0aG9kLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQcm9wZXJ0eU5v
ZGU6OlVua25vd24sIFByb3BlcnR5Tm9kZTo6SW5kZXRlcm1pbmF0ZSwgY29tcGxldGUpOwogICAg
ICAgICB9CiAKICAgICAgICAgY29uc3VtZU9yRmFpbChDT0xPTiwgIkV4cGVjdGVkICc6JyBhZnRl
ciBwcm9wZXJ0eSBuYW1lIik7CkBAIC0yMTA3LDcgKzIxMDcsMTAgQEAgQUxXQVlTX0lOTElORSBz
dGF0aWMgYm9vbCBpc1VuYXJ5T3AoSlNUb2tlblR5cGUgdG9rZW4pCiB7CiAgICAgY29uc3QgSWRl
bnRpZmllciogc3RyaW5nUHJvcGVydHlOYW1lID0gMDsKICAgICBkb3VibGUgbnVtZXJpY1Byb3Bl
cnR5TmFtZSA9IDA7CisgICAgUHJvcGVydHlOb2RlOjpQcm9wZXJ0eU5hbWVUeXBlIHByb3BlcnR5
TmFtZVR5cGUgPSBQcm9wZXJ0eU5vZGU6OkluZGV0ZXJtaW5hdGU7CiAgICAgaWYgKG1fdG9rZW4u
bV90eXBlID09IElERU5UIHx8IG1fdG9rZW4ubV90eXBlID09IFNUUklORykgeworICAgICAgICBp
ZiAobV90b2tlbi5tX3R5cGUgPT0gSURFTlQpCisgICAgICAgICAgICBwcm9wZXJ0eU5hbWVUeXBl
ID0gUHJvcGVydHlOb2RlOjpEZWZpbml0ZWx5Tm9uSW5kZXg7CiAgICAgICAgIHN0cmluZ1Byb3Bl
cnR5TmFtZSA9IG1fdG9rZW4ubV9kYXRhLmlkZW50OwogICAgICAgICBzZW1hbnRpY0ZhaWxJZlRy
dWUoc3VwZXJCaW5kaW5nID09IFN1cGVyQmluZGluZzo6TmVlZGVkICYmICpzdHJpbmdQcm9wZXJ0
eU5hbWUgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLAogICAgICAgICAgICAgIkNh
bm5vdCBkZWNsYXJlIGEgc3RhdGljIG1ldGhvZCBuYW1lZCAncHJvdG90eXBlJyIpOwpAQCAtMjEz
MCw4ICsyMTMzLDggQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBpc1VuYXJ5T3AoSlNUb2tl
blR5cGUgdG9rZW4pCiAgICAgICAgICAgICBnZXR0ZXJPclNldHRlclN0YXJ0T2Zmc2V0LCBpbmZv
KSksICJDYW5ub3QgcGFyc2Ugc2V0dGVyIGRlZmluaXRpb24iKTsKICAgICB9CiAgICAgaWYgKHN0
cmluZ1Byb3BlcnR5TmFtZSkKLSAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlR2V0dGVyT3JT
ZXR0ZXJQcm9wZXJ0eShsb2NhdGlvbiwgdHlwZSwgc3RyaWN0LCBzdHJpbmdQcm9wZXJ0eU5hbWUs
IGluZm8sIHN1cGVyQmluZGluZyk7Ci0gICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlR2V0dGVyT3JT
ZXR0ZXJQcm9wZXJ0eShjb25zdF9jYXN0PFZNKj4obV92bSksIG1fcGFyc2VyQXJlbmEsIGxvY2F0
aW9uLCB0eXBlLCBzdHJpY3QsIG51bWVyaWNQcm9wZXJ0eU5hbWUsIGluZm8sIHN1cGVyQmluZGlu
Zyk7CisgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUdldHRlck9yU2V0dGVyUHJvcGVydHko
bG9jYXRpb24sIHR5cGUsIHByb3BlcnR5TmFtZVR5cGUsIHN0cmljdCwgc3RyaW5nUHJvcGVydHlO
YW1lLCBpbmZvLCBzdXBlckJpbmRpbmcpOworICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUdldHRl
ck9yU2V0dGVyUHJvcGVydHkoY29uc3RfY2FzdDxWTSo+KG1fdm0pLCBtX3BhcnNlckFyZW5hLCBs
b2NhdGlvbiwgdHlwZSwgcHJvcGVydHlOYW1lVHlwZSwgc3RyaWN0LCBudW1lcmljUHJvcGVydHlO
YW1lLCBpbmZvLCBzdXBlckJpbmRpbmcpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJU
eXBlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVj
a2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAppbmRl
eCA3MDA4ODllZmYyOWQ0NDc5ZmI1MmQxYjYwNTEwNjAwZDAyMzdmNmNmLi44MDdhYWVlNjgzNGNk
MTMxZGEyOGNlMTllNTVlNmI2ZDY2MWE3OTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1N5bnRheENoZWNrZXIuaApAQCAtMTk1LDcgKzE5NSw3IEBAIGNsYXNzIFN5bnRheENo
ZWNrZXIgewogCiAgICAgaW50IGNyZWF0ZUFyZ3VtZW50c0xpc3QoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiwgaW50KSB7IHJldHVybiBBcmd1bWVudHNMaXN0UmVzdWx0OyB9CiAgICAgaW50IGNyZWF0
ZUFyZ3VtZW50c0xpc3QoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50LCBpbnQpIHsgcmV0dXJu
IEFyZ3VtZW50c0xpc3RSZXN1bHQ7IH0KLSAgICBQcm9wZXJ0eSBjcmVhdGVQcm9wZXJ0eShjb25z
dCBJZGVudGlmaWVyKiBuYW1lLCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0
eU5vZGU6OlB1dFR5cGUsIGJvb2wgY29tcGxldGUsIFN1cGVyQmluZGluZyA9IFN1cGVyQmluZGlu
Zzo6Tm90TmVlZGVkKQorICAgIFByb3BlcnR5IGNyZWF0ZVByb3BlcnR5KGNvbnN0IElkZW50aWZp
ZXIqIG5hbWUsIGludCwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIFByb3BlcnR5Tm9kZTo6UHV0
VHlwZSwgUHJvcGVydHlOb2RlOjpQcm9wZXJ0eU5hbWVUeXBlLCBib29sIGNvbXBsZXRlLCBTdXBl
ckJpbmRpbmcgPSBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCkKICAgICB7CiAgICAgICAgIGlmICgh
Y29tcGxldGUpCiAgICAgICAgICAgICByZXR1cm4gUHJvcGVydHkodHlwZSk7CkBAIC0yNTAsMTQg
KzI1MCwxNCBAQCBjbGFzcyBTeW50YXhDaGVja2VyIHsKICAgICBpbnQgY3JlYXRlRGVidWdnZXIo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50LCBpbnQpIHsgcmV0dXJuIFN0YXRlbWVudFJlc3Vs
dDsgfQogICAgIGludCBjcmVhdGVDb25zdFN0YXRlbWVudChjb25zdCBKU1Rva2VuTG9jYXRpb24m
LCBpbnQsIGludCwgaW50KSB7IHJldHVybiBTdGF0ZW1lbnRSZXN1bHQ7IH0KICAgICBpbnQgYXBw
ZW5kQ29uc3REZWNsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGludCwgY29uc3QgSWRlbnRpZmll
ciosIGludCkgeyByZXR1cm4gU3RhdGVtZW50UmVzdWx0OyB9Ci0gICAgUHJvcGVydHkgY3JlYXRl
R2V0dGVyT3JTZXR0ZXJQcm9wZXJ0eShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBQcm9wZXJ0eU5v
ZGU6OlR5cGUgdHlwZSwgYm9vbCBzdHJpY3QsIGNvbnN0IElkZW50aWZpZXIqIG5hbWUsIGNvbnN0
IFBhcnNlckZ1bmN0aW9uSW5mbzxTeW50YXhDaGVja2VyPiYsIFN1cGVyQmluZGluZykKKyAgICBQ
cm9wZXJ0eSBjcmVhdGVHZXR0ZXJPclNldHRlclByb3BlcnR5KGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0eU5vZGU6OlByb3BlcnR5TmFtZVR5
cGUsIGJvb2wgc3RyaWN0LCBjb25zdCBJZGVudGlmaWVyKiBuYW1lLCBjb25zdCBQYXJzZXJGdW5j
dGlvbkluZm88U3ludGF4Q2hlY2tlcj4mLCBTdXBlckJpbmRpbmcpCiAgICAgewogICAgICAgICBB
U1NFUlQobmFtZSk7CiAgICAgICAgIGlmICghc3RyaWN0KQogICAgICAgICAgICAgcmV0dXJuIFBy
b3BlcnR5KHR5cGUpOwogICAgICAgICByZXR1cm4gUHJvcGVydHkobmFtZSwgdHlwZSk7CiAgICAg
fQotICAgIFByb3BlcnR5IGNyZWF0ZUdldHRlck9yU2V0dGVyUHJvcGVydHkoVk0qIHZtLCBQYXJz
ZXJBcmVuYSYgcGFyc2VyQXJlbmEsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIFByb3BlcnR5Tm9k
ZTo6VHlwZSB0eXBlLCBib29sIHN0cmljdCwgZG91YmxlIG5hbWUsIGNvbnN0IFBhcnNlckZ1bmN0
aW9uSW5mbzxTeW50YXhDaGVja2VyPiYsIFN1cGVyQmluZGluZykKKyAgICBQcm9wZXJ0eSBjcmVh
dGVHZXR0ZXJPclNldHRlclByb3BlcnR5KFZNKiB2bSwgUGFyc2VyQXJlbmEmIHBhcnNlckFyZW5h
LCBjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgUHJvcGVy
dHlOb2RlOjpQcm9wZXJ0eU5hbWVUeXBlLCBib29sIHN0cmljdCwgZG91YmxlIG5hbWUsIGNvbnN0
IFBhcnNlckZ1bmN0aW9uSW5mbzxTeW50YXhDaGVja2VyPiYsIFN1cGVyQmluZGluZykKICAgICB7
CiAgICAgICAgIGlmICghc3RyaWN0KQogICAgICAgICAgICAgcmV0dXJuIFByb3BlcnR5KHR5cGUp
Owo=
</data>
<flag name="review"
          id="278703"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>