<?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>144622</bug_id>
          
          <creation_ts>2015-05-04 21:37:39 -0700</creation_ts>
          <short_desc>JSArray::setLength() should reallocate instead of zero-filling if the reallocation would be small enough</short_desc>
          <delta_ts>2015-05-15 18:13:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1091695</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-04 21:37:39 -0700</bug_when>
    <thetext>This would be a speed-up on some pathological array shrinkage cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091696</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-04 21:38:40 -0700</bug_when>
    <thetext>If we fix this, we could unhack tests/mozilla/js1_5/Array/regress-101964.js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094760</commentid>
    <comment_count>2</comment_count>
      <attachid>253108</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-14 00:50:31 -0700</bug_when>
    <thetext>Created attachment 253108
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094761</commentid>
    <comment_count>3</comment_count>
      <attachid>253109</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-14 00:51:30 -0700</bug_when>
    <thetext>Created attachment 253109
Summary of benchmark results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094762</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-14 00:52:19 -0700</bug_when>
    <thetext>Attachment 253108 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSObject.h:832:  The parameter name &quot;vm&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094764</commentid>
    <comment_count>5</comment_count>
      <attachid>253111</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-14 00:54:40 -0700</bug_when>
    <thetext>Created attachment 253111
patch 2: fixed style issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094853</commentid>
    <comment_count>6</comment_count>
      <attachid>253111</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-14 11:28:43 -0700</bug_when>
    <thetext>Comment on attachment 253111
patch 2: fixed style issue.

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

&gt; Source/JavaScriptCore/runtime/JSArray.cpp:422
&gt; +        // These heuristic values were picked experimentally from running benchmarks.

Is this patch a speedup on any benchmarks? If so, which ones?

&gt; Source/JavaScriptCore/runtime/JSArray.cpp:427
&gt; +
&gt; +        unsigned lengthToClear = m_butterfly-&gt;publicLength() - newLength;
&gt; +        unsigned costToTrim = newLength * costAdjustmentToMakeNewButterfly;

This code is more complicated than it needs to be, by virtue of the meaningless * 1.0 abstraction. A simpler way to write this is:

unsigned lengthToClear = m_butterfly-&gt;publicLength() - newLength;
unsigned minLengthToAllocate = 64;
if (lengthToClear &gt; newLength &amp;&amp; newLength &gt; minLengthToAllocate) {
    allocateButterfly(...);
    return true;
}

&gt; Source/JavaScriptCore/runtime/JSArray.cpp:430
&gt; +            trimLength(exec-&gt;vm(), newLength);

&quot;trim&quot; usually means &quot;do an in-place reduction in size&quot;, which is the opposite of what this function does. I would call this createButterfly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094963</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-14 16:53:20 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Is this patch a speedup on any benchmarks? If so, which ones?

Perf is neutral on the benchmarks.  However, this patch makes it such that we don’t have to wait a long time for tests/mozilla/js1_5/Array/regress-101964.js to complete.

&gt; &gt; Source/JavaScriptCore/runtime/JSArray.cpp:427
&gt; &gt; +
&gt; &gt; +        unsigned lengthToClear = m_butterfly-&gt;publicLength() - newLength;
&gt; &gt; +        unsigned costToTrim = newLength * costAdjustmentToMakeNewButterfly;
&gt; 
&gt; This code is more complicated than it needs to be, by virtue of the
&gt; meaningless * 1.0 abstraction. A simpler way to write this is:
&gt; 
&gt; unsigned lengthToClear = m_butterfly-&gt;publicLength() - newLength;
&gt; unsigned minLengthToAllocate = 64;
&gt; if (lengthToClear &gt; newLength &amp;&amp; newLength &gt; minLengthToAllocate) {
&gt;     allocateButterfly(...);
&gt;     return true;
&gt; }

I’ve change the test, but have to adjust the algorithm.  The one you suggested has the following flaw:

Let’s say:
    lengthToClear is 1000000.
    newLength is 16.
    minLengthToAllocate is 64.
In this case, we would want to reallocate instead of clearing 1000000 - 16 slots.  However, your test would not let us reallocate because newLength is less than minLengthToAllocate.

Instead, this is the new test I’m going with:

    unsigned lengthToClear = m_butterfly-&gt;publicLength() - newLength;
    unsigned costToAllocateNewButterfly = 64; // a heuristic.
    if (lengthToClear &gt; newLength &amp;&amp; lengthToClear &gt; costToAllocateNewButterfly) {
        reallocateAndShrinkButterfly(exec-&gt;vm(), newLength);
        return true;
    }

I also considered (lengthToClear &gt; newLength + costToAllocateNewButterfly), but that test has an overflow problem when newLength is near max unsigned.  The (lengthToClear &gt; newLength &amp;&amp; lengthToClear &gt; costToAllocateNewButterfly) test is a good enough heuristic for modeling the cost of allocation overhead.  So, I’m going with that.

&gt; &gt; Source/JavaScriptCore/runtime/JSArray.cpp:430
&gt; &gt; +            trimLength(exec-&gt;vm(), newLength);
&gt; 
&gt; &quot;trim&quot; usually means &quot;do an in-place reduction in size&quot;, which is the
&gt; opposite of what this function does. I would call this createButterfly.

Renamed to reallocateAndShrinkButterfly().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094967</commentid>
    <comment_count>8</comment_count>
      <attachid>253156</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-14 16:54:54 -0700</bug_when>
    <thetext>Created attachment 253156
patch 2: addressed Geoff’s feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094968</commentid>
    <comment_count>9</comment_count>
      <attachid>253156</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-14 16:56:06 -0700</bug_when>
    <thetext>Comment on attachment 253156
patch 2: addressed Geoff’s feedback.

The shortened test timing is still failing.  I’ll investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095057</commentid>
    <comment_count>10</comment_count>
      <attachid>253156</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-15 00:37:13 -0700</bug_when>
    <thetext>Comment on attachment 253156
patch 2: addressed Geoff’s feedback.

The test time out I saw earlier was due to me doing a build on the same machine while test was being run.  As a result, the test was CPU starved from time to time.  When running only the test, there was no time out.  So, I’ll resubmit the patch for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095058</commentid>
    <comment_count>11</comment_count>
      <attachid>253182</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-15 00:40:43 -0700</bug_when>
    <thetext>Created attachment 253182
patch 2: re-uploaded again to trigger EWS bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095169</commentid>
    <comment_count>12</comment_count>
      <attachid>253182</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-15 11:17:58 -0700</bug_when>
    <thetext>Comment on attachment 253182
patch 2: re-uploaded again to trigger EWS bots.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095210</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-15 13:06:35 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r184407: &lt;http://trac.webkit.org/r184407&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095336</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-05-15 17:47:59 -0700</bug_when>
    <thetext>Didn&apos;t we also expect this to fix mozilla/js1_5/Array/regress-157652.js?  It has been flakey for some time and is still failing on ARM64:

JavaScriptCore Regression Test Results for 184409

JavaScriptCore Regression Test Failures - 64 bit

Failures                                                                                     184407  184409
mozilla-tests.yaml/js1_5/Array/regress-157652.js.mozilla                                     Passed  Failed
mozilla-tests.yaml/js1_5/Array/regress-157652.js.mozilla-dfg-eager-no-cjit-validate-phases   Passed  Failed
mozilla-tests.yaml/js1_5/Array/regress-157652.js.mozilla-llint                               Failed  Passed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095340</commentid>
    <comment_count>15</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-15 18:13:09 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Didn&apos;t we also expect this to fix mozilla/js1_5/Array/regress-157652.js?  It
&gt; has been flakey for some time and is still failing on ARM64:
&gt; 
&gt; JavaScriptCore Regression Test Results for 184409
&gt; 
&gt; JavaScriptCore Regression Test Failures - 64 bit
&gt; 
&gt; Failures                                                                    
&gt; 184407  184409
&gt; mozilla-tests.yaml/js1_5/Array/regress-157652.js.mozilla                    
&gt; Passed  Failed
&gt; mozilla-tests.yaml/js1_5/Array/regress-157652.js.mozilla-dfg-eager-no-cjit-
&gt; validate-phases   Passed  Failed
&gt; mozilla-tests.yaml/js1_5/Array/regress-157652.js.mozilla-llint              
&gt; Failed  Passed

I’ll look into it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253108</attachid>
            <date>2015-05-14 00:50:31 -0700</date>
            <delta_ts>2015-05-14 00:54:40 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-144622.patch</filename>
            <type>text/plain</type>
            <size>5761</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0MzMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDE1LTA1LTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBK
U0FycmF5OjpzZXRMZW5ndGgoKSBzaG91bGQgcmVhbGxvY2F0ZSBpbnN0ZWFkIG9mIHplcm8tZmls
bGluZyBpZiB0aGUgcmVhbGxvY2F0aW9uIHdvdWxkIGJlIHNtYWxsIGVub3VnaC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDYyMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gc2V0dGluZyB0aGUg
YXJyYXkgdG8gYSBuZXcgbGVuZ3RoIHRoYXQgaXMgc2hvcnRlciwgd2Ugbm93IGNoZWNrIGlmIGl0
IGlzIHdvcnRoCisgICAgICAgIGp1c3QgbWFraW5nIGEgbmV3IGJ1dHRlcmZseSBpbnN0ZWFkIG9m
IGNsZWFyaW5nIG91dCB0aGUgc2xvdHMgaW4gdGhlIG9sZCBidXR0ZXJmbHkKKyAgICAgICAgdGhh
dCByZXNpZGVzIGJleW9uZCB0aGUgbmV3IGxlbmd0aC4gIElmIHNvLCB3ZSB3aWxsIG1ha2UgYSBu
ZXcgYnV0dGVyZmx5IGluc3RlYWQuCisKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgor
ICAgICAgICAoSlNDOjpKU0FycmF5OjpzZXRMZW5ndGgpOgorICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6dHJpbUxlbmd0aCk6CisgICAgICAg
IC0gbWFrZXMgYSBuZXcgYnV0dGVyZmx5IHdpdGggYSBuZXcgc2hvcnRlciBsZW5ndGguCisgICAg
ICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAqIHRlc3RzL21vemlsbGEvanMxXzUv
QXJyYXkvcmVncmVzcy0xMDE5NjQuanM6CisgICAgICAgIC0gVW5kbyB0aGlzIHRlc3QgY2hhbmdl
IHNpbmNlIHRoaXMgcGF0Y2ggd2lsbCBwcmV2ZW50IHVzIGZyb20gc3BlbmRpbmcgYSBsb3Qgb2Yg
dGltZQorICAgICAgICAgIGNsZWFyaW5nIGEgbGFyZ2UgYnV0dGVyZmx5LgorCiAyMDE1LTA1LTEz
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjE4MDU5NSk6IHNhbWUtY2FsbGVlIHByb2ZpbGluZyBubyBsb25nZXIgd29ya3MKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCShyZXZpc2lvbiAxODQzMzAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDA0LDcgKzQwNCw3IEBAIGJvb2wgSlNBcnJheTo6c2V0TGVuZ3RoKEV4ZWNTdGF0
ZSogZXhlYywKICAgICBjYXNlIEFycmF5V2l0aFVuZGVjaWRlZDoKICAgICBjYXNlIEFycmF5V2l0
aEludDMyOgogICAgIGNhc2UgQXJyYXlXaXRoRG91YmxlOgotICAgIGNhc2UgQXJyYXlXaXRoQ29u
dGlndW91czoKKyAgICBjYXNlIEFycmF5V2l0aENvbnRpZ3VvdXM6IHsKICAgICAgICAgaWYgKG5l
d0xlbmd0aCA9PSBtX2J1dHRlcmZseS0+cHVibGljTGVuZ3RoKCkpCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgaWYgKG5ld0xlbmd0aCA+PSBNQVhfQVJSQVlfSU5ERVggLy8gVGhp
cyBjYXNlIGVuc3VyZXMgdGhhdCB3ZSBjYW4gZG8gZmFzdCBwdXNoLgpAQCAtNDE4LDYgKzQxOCwx
OSBAQCBib29sIEpTQXJyYXk6OnNldExlbmd0aChFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgICAg
ICBlbnN1cmVMZW5ndGgoZXhlYy0+dm0oKSwgbmV3TGVuZ3RoKTsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CisKKyAgICAgICAgLy8gVGhlc2UgaGV1cmlzdGljIHZhbHVlcyB3
ZXJlIHBpY2tlZCBleHBlcmltZW50YWxseSBmcm9tIHJ1bm5pbmcgYmVuY2htYXJrcy4KKyAgICAg
ICAgc3RhdGljIGNvbnN0IGRvdWJsZSBjb3N0QWRqdXN0bWVudFRvTWFrZU5ld0J1dHRlcmZseSA9
IDEuMDsKKyAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1pbmltdW1MZW5ndGhUb0NsZWFy
QmVmb3JlSXRJc1dvcnRoTWFraW5nQU5ld0J1dHRlcmZseSA9IDY0OworCisgICAgICAgIHVuc2ln
bmVkIGxlbmd0aFRvQ2xlYXIgPSBtX2J1dHRlcmZseS0+cHVibGljTGVuZ3RoKCkgLSBuZXdMZW5n
dGg7CisgICAgICAgIHVuc2lnbmVkIGNvc3RUb1RyaW0gPSBuZXdMZW5ndGggKiBjb3N0QWRqdXN0
bWVudFRvTWFrZU5ld0J1dHRlcmZseTsKKyAgICAgICAgaWYgKGxlbmd0aFRvQ2xlYXIgPiBtaW5p
bXVtTGVuZ3RoVG9DbGVhckJlZm9yZUl0SXNXb3J0aE1ha2luZ0FOZXdCdXR0ZXJmbHkKKyAgICAg
ICAgICAgICYmIGNvc3RUb1RyaW0gPCBsZW5ndGhUb0NsZWFyKSB7CisgICAgICAgICAgICB0cmlt
TGVuZ3RoKGV4ZWMtPnZtKCksIG5ld0xlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQorCiAgICAgICAgIGlmIChpbmRleGluZ1R5cGUoKSA9PSBBcnJheVdpdGhEb3Vi
bGUpIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1fYnV0dGVyZmx5LT5wdWJsaWNM
ZW5ndGgoKTsgaS0tID4gbmV3TGVuZ3RoOykKICAgICAgICAgICAgICAgICBtX2J1dHRlcmZseS0+
Y29udGlndW91c0RvdWJsZSgpW2ldID0gUE5hTjsKQEAgLTQyNyw2ICs0NDAsNyBAQCBib29sIEpT
QXJyYXk6OnNldExlbmd0aChFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgIH0KICAgICAgICAgbV9i
dXR0ZXJmbHktPnNldFB1YmxpY0xlbmd0aChuZXdMZW5ndGgpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CiAgICAgICAgIAogICAgIGNhc2UgQXJyYXlXaXRoQXJyYXlTdG9yYWdlOgogICAg
IGNhc2UgQXJyYXlXaXRoU2xvd1B1dEFycmF5U3RvcmFnZToKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHJldmlzaW9uIDE4NDMzMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQ1Nyw2ICsyNDU3LDIxIEBAIHZvaWQgSlNPYmplY3Q6OmVuc3VyZUxlbmd0aFNsb3coVk0mIHZt
LCAKICAgICB9CiB9CiAKK3ZvaWQgSlNPYmplY3Q6OnRyaW1MZW5ndGgoVk0mIHZtLCB1bnNpZ25l
ZCBsZW5ndGgpCit7CisgICAgQVNTRVJUKGxlbmd0aCA8IE1BWF9BUlJBWV9JTkRFWCk7CisgICAg
QVNTRVJUKGxlbmd0aCA8IE1BWF9TVE9SQUdFX1ZFQ1RPUl9MRU5HVEgpOworICAgIEFTU0VSVCho
YXNDb250aWd1b3VzKGluZGV4aW5nVHlwZSgpKSB8fCBoYXNJbnQzMihpbmRleGluZ1R5cGUoKSkg
fHwgaGFzRG91YmxlKGluZGV4aW5nVHlwZSgpKSB8fCBoYXNVbmRlY2lkZWQoaW5kZXhpbmdUeXBl
KCkpKTsKKyAgICBBU1NFUlQobV9idXR0ZXJmbHktPnZlY3Rvckxlbmd0aCgpID4gbGVuZ3RoKTsK
KyAgICBBU1NFUlQoIW1fYnV0dGVyZmx5LT5pbmRleGluZ0hlYWRlcigpLT5wcmVDYXBhY2l0eShz
dHJ1Y3R1cmUoKSkpOworCisgICAgRGVmZXJHQyBkZWZlckdDKHZtLmhlYXApOworICAgIEJ1dHRl
cmZseSogbmV3QnV0dGVyZmx5ID0gbV9idXR0ZXJmbHktPnJlc2l6ZUFycmF5KHZtLCB0aGlzLCBz
dHJ1Y3R1cmUoKSwgMCwgQXJyYXlTdG9yYWdlOjpzaXplRm9yKGxlbmd0aCkpOworICAgIG1fYnV0
dGVyZmx5LnNldCh2bSwgdGhpcywgbmV3QnV0dGVyZmx5KTsKKyAgICBtX2J1dHRlcmZseS0+c2V0
VmVjdG9yTGVuZ3RoKGxlbmd0aCk7CisgICAgbV9idXR0ZXJmbHktPnNldFB1YmxpY0xlbmd0aChs
ZW5ndGgpOworfQorCiBCdXR0ZXJmbHkqIEpTT2JqZWN0Ojpncm93T3V0T2ZMaW5lU3RvcmFnZShW
TSYgdm0sIHNpemVfdCBvbGRTaXplLCBzaXplX3QgbmV3U2l6ZSkKIHsKICAgICBBU1NFUlQobmV3
U2l6ZSA+IG9sZFNpemUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oCShyZXZpc2lvbiAxODQzMzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MjcsNiArODI3LDEwIEBAIHByb3RlY3Rl
ZDoKICAgICAgICAgICAgIG1fYnV0dGVyZmx5LT5zZXRQdWJsaWNMZW5ndGgobGVuZ3RoKTsKICAg
ICB9CiAgICAgICAgIAorICAgIC8vIENhbGwgdGhpcyBpZiB5b3Ugd2FudCB0byBzaHJpbmsgdGhl
IGJ1dHRlcmZseSBiYWNraW5nIHN0b3JlLCBhbmQgeW91J3JlCisgICAgLy8gc3VyZSB0aGF0IHRo
ZSBhcnJheSBpcyBjb250aWd1b3VzLgorICAgIHZvaWQgdHJpbUxlbmd0aChWTSYgdm0sIHVuc2ln
bmVkIGxlbmd0aCk7CisgICAgCiAgICAgdGVtcGxhdGU8SW5kZXhpbmdUeXBlIGluZGV4aW5nU2hh
cGU+CiAgICAgdW5zaWduZWQgY291bnRFbGVtZW50cyhCdXR0ZXJmbHkqKTsKICAgICAgICAgCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW96aWxsYS9qczFfNS9BcnJheS9yZWdy
ZXNzLTEwMTk2NC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
bW96aWxsYS9qczFfNS9BcnJheS9yZWdyZXNzLTEwMTk2NC5qcwkocmV2aXNpb24gMTg0MzMwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vemlsbGEvanMxXzUvQXJyYXkvcmVncmVz
cy0xMDE5NjQuanMJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgdmFyIGJ1ZyA9IDEw
MTk2NDsKIHZhciBzdW1tYXJ5ID0gJ1BlcmZvcm1hbmNlOiB0cnVuY2F0aW5nIGV2ZW4gdmVyeSBs
YXJnZSBhcnJheXMgc2hvdWxkIGJlIGZhc3QhJzsKIHZhciBCSUcgPSAxMDAwMDAwMDsKIHZhciBM
SVRUTEUgPSAxMDsKLXZhciBGQVNUID0gMTAwMDA7IC8vIFRoaXMgdXNlZCB0byB0ZXN0IHRoYXQg
YXJyYXkgdHJ1bmNhdGlvbiBzaG91bGQgYmUgNTAgbXMgb3IgbGVzcy4gV2UndmUgY2hhbmdlZCBp
dCBiZWNhdXNlIHdlIGRvbid0IGNhcmUgaG93IGxvbmcgaXQgdGFrZXMuIFdlIGp1c3QgdHJ5IHRv
IG1ha2Ugc3VyZSBpdCBkb2Vzbid0IHRha2UgKnJpZGljdWxvdXNseSogbG9uZyBhbmQgd2Ugd2Fu
dCBpdCB0byBydW4gdG8gY29tcGxldGlvbiBjb3JyZWN0bHkuCit2YXIgRkFTVCA9IDUwOyAvLyBh
cnJheSB0cnVuY2F0aW9uIHNob3VsZCBiZSA1MCBtcyBvciBsZXNzIHRvIHBhc3MgdGhlIHRlc3QK
IHZhciBNU0dfRkFTVCA9ICdUcnVuY2F0aW9uIHRvb2sgbGVzcyB0aGFuICcgKyBGQVNUICsgJyBt
cyc7CiB2YXIgTVNHX1NMT1cgPSAnVHJ1bmNhdGlvbiB0b29rICc7CiB2YXIgTVNHX01TID0gJyBt
cyc7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>253109</attachid>
            <date>2015-05-14 00:51:30 -0700</date>
            <delta_ts>2015-05-14 00:51:30 -0700</delta_ts>
            <desc>Summary of benchmark results</desc>
            <filename>benchmark-results.txt</filename>
            <type>text/plain</type>
            <size>14946</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">V2hhdCBpcyBiZWluZyB0ZXN0ZWQ6Cj09PT09PT09PT09PT09PT09PT09ClRoZSBmb2xsb3dpbmcg
YmVuY2htYXJrIHJlc3VsdHMgYXJlIGF0dGFpbmVkIHVzaW5nIDIgYnVpbGRzOgoxLiBiYXNlOiBi
dWlsZCB3aXRob3V0IHRoZSBjaGFuZ2VzIGluIEpTQXJyYXkuY3BwCjIuIG5ldzogYnVpbGQgd2l0
aCB0aGUgY2hhbmdlcyBpbiBKU0FycmF5IHdpdGggMyB0dW5pbmcgb3B0aW9ucyB0aGF0IGFyZSBu
b3QgaW4gdGhlIHBhdGNoCiAgIHN1Ym1pdHRlZCBmb3IgcmV2aWV3LgoKICAgVGhlc2UgMyB0dW5p
bmcgb3B0aW9ucyBhcmU6CgogICAxLiBKU0NfZW5hYmxlVHJpbQogICAgICBJZiBmYWxzZSwgYnlw
YXNzZXMgdGhlIGNvZGUgaW4gSlNBcnJheTo6c2V0TGVuZ3RoKCkgdG8gY2hlY2sgYW5kIHRyaW0g
dGhlIGFycmF5IHRvCiAgICAgIGJlIHNob3J0ZW5lZC4KCiAgIDIuIEpTQ19uZXdCdXR0ZXJmbHlD
b3N0CiAgICAgIEEgbXVsdGlwbGllciBhcHBsaWVkIHRvIHRoZSBsZW5ndGggb2YgdGhlIHNob3J0
ZW5lZCBhcnJheSB0byBhZGQgc29tZSBmdWRnZSBmYWN0b3IKICAgICAgdG8gYWNjb3VudCBmb3Ig
YWRkaXRpb25hbCBjb3N0IGR1ZSB0byBhbGxvY2F0aW9uLgoKICAgICAgVGhpcyBvcHRpb24gd2Fz
IHJlcGxhY2VkIHdpdGggdGhlIGNvc3RBZGp1c3RtZW50VG9NYWtlTmV3QnV0dGVyZmx5IGNvbnN0
YW50IGluIHRoZQogICAgICBwYXRjaCBzdWJtaXR0ZWQgZm9yIHJldmlldy4KICAgICAgCiAgIDMu
IEpTQ19tYXhDbGVhckxlbmd0aENvc3QKICAgICAgVGhlIG1heGltdW0gbGVuZ3RoIHdlJ3JlIHdp
bGxpbmcgdG8gY2xlYXIgd2hlbiBzZXR0aW5nIHRoZSBsZW5ndGggb2YgdGhlIGFycmF5IHRoYXQK
ICAgICAgd2UnbGwgdG9sZXJhdGUgYmVmb3JlIHdlJ3JlIHdpbGxpbmcgdG8gY29uc2lkZXIgbWFr
aW5nIGEgd2hvbGUgbmV3IGJ1dHRlcmZseS4KCiAgICAgIFRoaXMgb3B0aW9uIHdhcyByZXBsYWNl
ZCB3aXRoIHRoZSBtaW5pbXVtTGVuZ3RoVG9DbGVhckJlZm9yZUl0SXNXb3J0aE1ha2luZ0FOZXdC
dXR0ZXJmbHkKICAgICAgaW4gdGhlIHBhdGNoIHN1Ym1pdHRlZCBmb3IgcmV2aWV3LgoKV2l0aCB0
aGUgMiBidWlsZHMsIEkgcmFuIHdpdGggZGlmZmVyZW50IHZhbHVlcyBmb3IgdGhlIG9wdGlvbnMu
ICBGb3IgZWFjaCBzZXQgb2Ygb3B0aW9ucywKSSBkaWQgMiBydW5zOgogICAgUnVuIDE6IHRoZSBi
YXNlIGJ1aWxkIGZvbGxvd2VkIGJ5IHRoZSBuZXcgYnVpbGQuCiAgICBSdW4gMjogdGhlIG5ldyBi
dWlsZCBmb2xsb3dlZCBieSB0aGUgYmFzZSBidWlsZC4KCkZvciB0aGUgUnVuIDIgcmVzdWx0cywg
YmVjYXVzZSBJIHJldmVyc2VkIGJhc2UgYW5kIG5ldywgYSAic2xvd2VyIiByZXN1bHQgYWN0dWFs
bHkgbWVhbnMKImZhc3RlciIsIGFuZCB2aWNlIHZlcnNhLiAgCgpTdW1tYXJ5IG9mIHJlc3VsdHM6
Cj09PT09PT09PT09PT09PT09PQpJbiBhZ2dyZWdhdGUsIGFsbCBydW5zIHNob3cgbm8gc2lnbmlm
aWNhbnQgZGlmZmVyZW5jZSBpbiBwZXJmb3JtYW5jZSBiZXR3ZWVuIHRoZSBiYXNlbGluZQphbmQg
bmV3IGJ1aWxkcy4gIEluZGl2aWR1YWwgYmVuY2htYXJrIGNvbXBvbmVudHMgZGlkIHNvbWV0aW1l
cyBzaG93IHNvbWUgcGVyZiBkaWZmZXJlbmNlLApidXQgdGhleSBhcHBlYXIgdG8gYmUgbm9pc2Ug
c2luY2UgZXZlbiB0aGUgY29udHJvbCBydW4gd2l0aCBKU0NfZW5hYmxlVHJpbT0wICh3aGljaApk
b2Vzbid0IGV2ZW4gcnVuIHRoZSBuZXcgY29kZSkgYWxyZWFkeSBzaG93cyBzb21lIHBlcmYgZGlm
ZmVyZW5jZXMuICBXaGVyZSB0aGUKZGlmZmVyZW5jZXMgYXBwZWFyIGFsc28gc2VlbXMgdG8gYmUg
aW5jb25zaXN0ZW50IGZyb20gcnVuIHRvIHJ1bi4KCkluIHRoZSBlbmQsIGZvciB0aGUgcGF0Y2gs
IEkgd2VudCB3aXRoIHRoZSBoZXVyaXN0aWNzIHZhbHVlcyBpbiBUZXN0IDYgYmVsb3c6CiAgICBK
U0NfZW5hYmxlVHJpbT0xIEpTQ19uZXdCdXR0ZXJmbHlDb3N0PTEuMCBKU0NfbWF4Q2xlYXJMZW5n
dGhDb3N0PTY0CgoKCgovLyBUaGlzIGlzIGEgY29udHJvbCBydW4gd2l0aCB0aGUgbmV3IGNvZGUg
ZGlzYWJsZWQgdmlhIEpTQ19lbmFibGVUcmltPTAuCkJhc2VsaW5lIGJhc2UtbmV3ICBKU0NfZW5h
YmxlVHJpbT0wIEpTQ19uZXdCdXR0ZXJmbHlDb3N0PTEuMiBKU0NfbWF4Q2xlYXJMZW5ndGhDb3N0
PTUxMgpPY3RhbmU6CiAgIGRlY3J5cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNC43ODA0MSstMC4wNjIzNSAgICAhICAgICA0Ljg4OTc4Ky0wLjA0NjE3ICAgICAg
ICEgZGVmaW5pdGVseSAxLjAyMjl4IHNsb3dlcgpKU1JlZ3Jlc3M6CiAgIGFicy1ib29sZWFuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNTA3OCstMC4xNjYwICAgICBe
ICAgICAgMy4yNDMzKy0wLjAyOTggICAgICAgIF4gZGVmaW5pdGVseSAxLjA4MTZ4IGZhc3Rlcgog
ICBJbnQxNkFycmF5LXRvLUludDMyQXJyYXktc2V0ICAgICAgICAgICAgICAgICAgICAgIDU4LjI3
ODkrLTAuNDQwOSAgICAgISAgICAgNjIuOTE2MistMy43MTY5ICAgICAgICAhIGRlZmluaXRlbHkg
MS4wNzk2eCBzbG93ZXIKICAgSW50MzJBcnJheS1JbnQ4QXJyYXktdmlldy1hbGxvYyAgICAgICAg
ICAgICAgICAgICAxMi4yMDM5Ky0xLjQ2OTEgICAgIF4gICAgICA3Ljc5MDUrLTAuMDg5NCAgICAg
ICAgXiBkZWZpbml0ZWx5IDEuNTY2NXggZmFzdGVyCiAgIHB1dC1ieS1pZC1zbGlnaHRseS1wb2x5
bW9ycGhpYyAgICAgICAgICAgICAgICAgICAgIDMuMjA2OCstMC4wODIyICAgICAhICAgICAgMy4z
NDY1Ky0wLjA0OTkgICAgICAgICEgZGVmaW5pdGVseSAxLjA0MzV4IHNsb3dlcgoKQmFzZWxpbmUg
bmV3LWJhc2UgIEpTQ19lbmFibGVUcmltPTAgSlNDX25ld0J1dHRlcmZseUNvc3Q9MS4yIEpTQ19t
YXhDbGVhckxlbmd0aENvc3Q9NTEyCkpTUmVncmVzczoKICAgaG9pc3QtcG9seS1jaGVjay1zdHJ1
Y3R1cmUtZWZmZWN0ZnVsLWxvb3AgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNi4wNzgyKy0wLjA5MzMgICAgIF4gICAgICA1Ljc3MTIrLTAu
MDMxMyAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDUzMnggZmFzdGVyCiAgIEludDE2QXJyYXktdG8t
SW50MzJBcnJheS1zZXQgICAgICAgICAgICAgICAgICAgICAgNjMuODgyNCstNC4zOTUyICAgICBe
ICAgICA1OC41Mzc0Ky0wLjQ1OTggICAgICAgIF4gZGVmaW5pdGVseSAxLjA5MTN4IGZhc3RlcgoK
CgpUZXN0IDAgYmFzZS1uZXcgIEpTQ19lbmFibGVUcmltPTEgSlNDX25ld0J1dHRlcmZseUNvc3Q9
MS4wIEpTQ19tYXhDbGVhckxlbmd0aENvc3Q9NTEyCkpTUmVncmVzczoKICAgQXJyYXlCdWZmZXIt
SW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MC43NDIyKy0yLjk5OTEgICAgIF4gICAg
IDM2LjQ0ODcrLTEuMDc2MyAgICAgICAgXiBkZWZpbml0ZWx5IDEuMTE3OHggZmFzdGVyCiAgIGhv
aXN0LXBvbHktY2hlY2stc3RydWN0dXJlLWVmZmVjdGZ1bC1sb29wICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuODA3NSstMC4xODI0ICAg
ICAhICAgICAgNi4wNjg3Ky0wLjAzMzAgICAgICAgICEgZGVmaW5pdGVseSAxLjA0NTB4IHNsb3dl
cgogICBpbmZlci1vbmUtdGltZS1jbG9zdXJlLXR3by12YXJzICAgICAgICAgICAgICAgICAgIDE3
LjcyNzUrLTIuMzYyMiAgICAgXiAgICAgMTIuODgyNystMC42NzMxICAgICAgICBeIGRlZmluaXRl
bHkgMS4zNzYxeCBmYXN0ZXIKICAgaW50LW92ZXJmbG93LWxvY2FsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNS4yMjg4Ky0wLjAyNzAgICAgIF4gICAgICA1LjE4NTYrLTAuMDExNiAg
ICAgICAgXiBkZWZpbml0ZWx5IDEuMDA4M3ggZmFzdGVyCiAgIG1heC1ib29sZWFuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDMxMystMC4wMjkzICAgICAhICAgICAg
My4xOTQ3Ky0wLjExNzYgICAgICAgICEgZGVmaW5pdGVseSAxLjA1Mzl4IHNsb3dlcgoKVGVzdCAw
IG5ldy1iYXNlICBKU0NfZW5hYmxlVHJpbT0xIEpTQ19uZXdCdXR0ZXJmbHlDb3N0PTEuMCBKU0Nf
bWF4Q2xlYXJMZW5ndGhDb3N0PTUxMgpMb25nU3BpZGVyOgogICBjcnlwdG8tc2hhMSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzk2LjA2MDgrLTEwLjg5NjcgICAgXiAgICA3
NjAuMjk1MistMTMuNzY0OCAgICAgICBeIGRlZmluaXRlbHkgMS4wNDcweCBmYXN0ZXIKVjhTcGlk
ZXI6CiAgIGVhcmxleS1ib3llciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NDkuNDgxNistMC40Mjk2ICAgICAhICAgICA1My45NTcwKy0zLjQ1OTYgICAgICAgICEgZGVmaW5p
dGVseSAxLjA5MDR4IHNsb3dlcgpKU1JlZ3Jlc3M6CiAgIGhvaXN0LXBvbHktY2hlY2stc3RydWN0
dXJlLWVmZmVjdGZ1bC1sb29wICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDYuMDk2NCstMC4wNDY0ICAgICBeICAgICAgNS44MTgwKy0wLjEw
MjggICAgICAgIF4gZGVmaW5pdGVseSAxLjA0Nzl4IGZhc3RlcgoKCgpUZXN0IDEgYmFzZS1uZXc6
ICBKU0NfZW5hYmxlVHJpbT0xIEpTQ19uZXdCdXR0ZXJmbHlDb3N0PTEuMiBKU0NfbWF4Q2xlYXJM
ZW5ndGhDb3N0PTUxMgpKU1JlZ3Jlc3M6CiAgIGhvaXN0LXBvbHktY2hlY2stc3RydWN0dXJlLWVm
ZmVjdGZ1bC1sb29wICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDUuNzQ5MCstMC4wNTE1ICAgICAhICAgICAgNi4xNjc0Ky0wLjA2NzcgICAg
ICAgICEgZGVmaW5pdGVseSAxLjA3Mjh4IHNsb3dlcgoKVGVzdCAxIG5ldy1iYXNlICAgSlNDX2Vu
YWJsZVRyaW09MSBKU0NfbmV3QnV0dGVyZmx5Q29zdD0xLjIgSlNDX21heENsZWFyTGVuZ3RoQ29z
dD01MTIKU3VuU3BpZGVyOgogICBhY2Nlc3MtZmFubmt1Y2ggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA2Ljc0NjArLTAuMDU2NSAgICAgXiAgICAgIDYuNTY4NystMC4wMjg3ICAg
ICAgICBeIGRlZmluaXRlbHkgMS4wMjcweCBmYXN0ZXIKTG9uZ1NwaWRlcjoKICAgM2QtcmF5dHJh
Y2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg1Ni40MTI3Ky05LjY4NTMg
ICAgICEgICAgODgwLjEwMTcrLTEyLjI0MzkgICAgICAgISBkZWZpbml0ZWx5IDEuMDI3N3ggc2xv
d2VyCk9jdGFuZToKICAgcmVnZXhwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4
MiAgICAgIDM2LjQ4MDQ5Ky0wLjM5ODg5ICAgICEgICAgMzcuNjg4MTErLTAuNTg3NTkgICAgICAg
ISBkZWZpbml0ZWx5IDEuMDMzMXggc2xvd2VyCkpTUmVncmVzczoKICAgaG9pc3QtcG9seS1jaGVj
ay1zdHJ1Y3R1cmUtZWZmZWN0ZnVsLWxvb3AgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4xMDgwKy0wLjAzMDUgICAgIF4gICAgICA1Ljc2
MjIrLTAuMDQ5MCAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDYwMHggZmFzdGVyCkNvbXByZXNzaW9u
QmVuY2g6CiAgIGFyaXRobWV0aWMtcHJlY2lzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzMzcuMTAzOCstMi40MjQ2ICAgICAhICAgIDM1NC41OTg4Ky0xMC4xOTY4ICAgICAgICEgZGVm
aW5pdGVseSAxLjA1MTl4IHNsb3dlcgoKCgpUZXN0IDIgYmFzZS1uZXcgICBKU0NfZW5hYmxlVHJp
bT0xIEpTQ19uZXdCdXR0ZXJmbHlDb3N0PTEuMiBKU0NfbWF4Q2xlYXJMZW5ndGhDb3N0PTEwMjQK
T2N0YW5lOgogICByZWdleHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAg
ICAgMzcuMjg0ODArLTAuNzMwMDEgICAgXiAgICAzNi4yNTAxNystMC4xNDcwOSAgICAgICBeIGRl
ZmluaXRlbHkgMS4wMjg1eCBmYXN0ZXIKSlNSZWdyZXNzOgogICBhYnMtYm9vbGVhbiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjQ3NTArLTAuMDc3NCAgICAgXiAgICAg
IDMuMjY5MistMC4wNzIxICAgICAgICBeIGRlZmluaXRlbHkgMS4wNjMweCBmYXN0ZXIKICAgZnRs
LWxpYnJhcnktaW5saW5pbmctZGF0YXZpZXcgICAgICAgICAgICAgICAgICAgICA3NS45NDU3Ky03
LjM5MjcgICAgICEgICAgIDg3LjcxMzUrLTEuMTIyNSAgICAgICAgISBkZWZpbml0ZWx5IDEuMTU0
OXggc2xvd2VyCiAgIGhvaXN0LXBvbHktY2hlY2stc3RydWN0dXJlLWVmZmVjdGZ1bC1sb29wICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUu
Nzg4OCstMC4xMDUxICAgICAhICAgICAgNi4xNTUwKy0wLjA5OTAgICAgICAgICEgZGVmaW5pdGVs
eSAxLjA2MzN4IHNsb3dlcgogICBuZWdhdGl2ZS16ZXJvLWRpdmlkZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAwLjM3MDMrLTAuMDAyNCAgICAgISAgICAgIDAuNDA3NSstMC4wMTk3ICAg
ICAgICAhIGRlZmluaXRlbHkgMS4xMDA0eCBzbG93ZXIKClRlc3QgMiBuZXctYmFzZSAgIEpTQ19l
bmFibGVUcmltPTEgSlNDX25ld0J1dHRlcmZseUNvc3Q9MS4yIEpTQ19tYXhDbGVhckxlbmd0aENv
c3Q9MTAyNCAKCgoKVGVzdCAzIGJhc2UtbmV3OiAgIEpTQ19lbmFibGVUcmltPTEgSlNDX25ld0J1
dHRlcmZseUNvc3Q9MS41IEpTQ19tYXhDbGVhckxlbmd0aENvc3Q9NTEyClN1blNwaWRlcjoKICAg
c3RyaW5nLXZhbGlkYXRlLWlucHV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4zMTE0
Ky0wLjA4MzkgICAgICEgICAgICA1LjUwMTMrLTAuMDY2MCAgICAgICAgISBkZWZpbml0ZWx5IDEu
MDM1N3ggc2xvd2VyCk9jdGFuZToKICAgcmVnZXhwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB4MiAgICAgIDM3LjU5MjUwKy0wLjc0MDU2ICAgIF4gICAgMzYuMjc3MDIrLTAuMjM1
MTQgICAgICAgXiBkZWZpbml0ZWx5IDEuMDM2M3ggZmFzdGVyCkpTUmVncmVzczoKICAgaG9pc3Qt
cG9seS1jaGVjay1zdHJ1Y3R1cmUtZWZmZWN0ZnVsLWxvb3AgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS43NzY5Ky0wLjAyOTggICAgICEg
ICAgICA2LjA4MDErLTAuMDI3NyAgICAgICAgISBkZWZpbml0ZWx5IDEuMDUyNXggc2xvd2VyCiAg
IHNpbmstZnVuY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNTY3
NCstMC4yMTg1ICAgICAhICAgICAxMi45MzYzKy0wLjA0MDEgICAgICAgICEgZGVmaW5pdGVseSAx
LjAyOTR4IHNsb3dlcgoKClRlc3QgMyBuZXctYmFzZSAgIEpTQ19lbmFibGVUcmltPTEgSlNDX25l
d0J1dHRlcmZseUNvc3Q9MS41IEpTQ19tYXhDbGVhckxlbmd0aENvc3Q9NTEyCk9jdGFuZToKICAg
ZW5jcnlwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI2OTE4
Ky0wLjAwMjc1ICAgICEgICAgIDAuMjc2NzYrLTAuMDA0MjggICAgICAgISBkZWZpbml0ZWx5IDEu
MDI4Mnggc2xvd2VyCkpTUmVncmVzczoKICAgSW50MTZBcnJheS1idWJibGUtc29ydCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyMi43NDEzKy0wLjI5MTQgICAgICEgICAgIDIzLjcyOTErLTAu
Njc4NSAgICAgICAgISBkZWZpbml0ZWx5IDEuMDQzNHggc2xvd2VyCgoKClRlc3QgNCBiYXNlLW5l
dzogICBKU0NfZW5hYmxlVHJpbT0xIEpTQ19uZXdCdXR0ZXJmbHlDb3N0PTEuMiBKU0NfbWF4Q2xl
YXJMZW5ndGhDb3N0PTI1NgpMb25nU3BpZGVyOgogICAzZC1yYXl0cmFjZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgODkzLjI2NTArLTE1LjgyNzcgICAgXiAgICA4NTIuNDM4
MCstMTguODcwOSAgICAgICBeIGRlZmluaXRlbHkgMS4wNDc5eCBmYXN0ZXIKICAgc3RyaW5nLWZh
c3RhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ5MC42NDM0Ky02LjI1Njcg
ICAgICEgICAgNTEzLjk1NzgrLTE0Ljg3MDIgICAgICAgISBkZWZpbml0ZWx5IDEuMDQ3NXggc2xv
d2VyCkpTUmVncmVzczoKICAgaG9pc3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUtZWZmZWN0ZnVsLWxv
b3AgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNS43ODQ5Ky0wLjA4NTUgICAgICEgICAgICA2LjA5OTUrLTAuMTA5OSAgICAgICAgISBkZWZp
bml0ZWx5IDEuMDU0NHggc2xvd2VyCiAgIGlzLW9iamVjdC1vci1udWxsLWZvbGQtZnVuY3Rpb25z
ICAgICAgICAgICAgICAgICAgIDMuNzQ1NSstMC4wMzg3ICAgICBeICAgICAgMy41NTUxKy0wLjAy
NjcgICAgICAgIF4gZGVmaW5pdGVseSAxLjA1MzZ4IGZhc3RlcgogICBwb2x5LXN0cmljdGVxICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY5LjYwNzQrLTAuODUxMCAgICAgXiAg
ICAgNjMuODQ4MistMC43OTU2ICAgICAgICBeIGRlZmluaXRlbHkgMS4wOTAyeCBmYXN0ZXIKClRl
c3QgNCBuZXctYmFzZSAgIEpTQ19lbmFibGVUcmltPTEgSlNDX25ld0J1dHRlcmZseUNvc3Q9MS4y
IEpTQ19tYXhDbGVhckxlbmd0aENvc3Q9MjU2CkxvbmdTcGlkZXI6CiAgIDNkLXJheXRyYWNlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4NTYuOTQyMCstMTQuNzk0NiAgICAh
ICAgIDg5MC43ODY4Ky03Ljg1NjkgICAgICAgICEgZGVmaW5pdGVseSAxLjAzOTV4IHNsb3dlcgpK
U1JlZ3Jlc3M6CiAgIGdldHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDYuODMyNistMC4yMTkwICAgICBeICAgICAgNi4xOTk1Ky0wLjA4MTEgICAgICAgIF4g
ZGVmaW5pdGVseSAxLjEwMjF4IGZhc3RlcgogICBob2lzdC1wb2x5LWNoZWNrLXN0cnVjdHVyZS1l
ZmZlY3RmdWwtbG9vcCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA2LjExMjIrLTAuMDg3OCAgICAgXiAgICAgIDUuODIzMCstMC4xMzI3ICAg
ICAgICBeIGRlZmluaXRlbHkgMS4wNDk3eCBmYXN0ZXIKICAgaW5mZXItY29uc3RhbnQtcHJvcGVy
dHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xODg1Ky0wLjA2MzUgICAgIF4gICAgICAz
LjAzMzMrLTAuMDI5NSAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDUxMnggZmFzdGVyCiAgIG5ldy1h
cnJheS1kZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuNTAyMCstMC43
ODkzICAgICAhICAgICAyMS4xODE4Ky0wLjYxNDMgICAgICAgICEgZGVmaW5pdGVseSAxLjA4NjF4
IHNsb3dlcgoKCgoKVGVzdCA1IGJhc2UtbmV3OiAgIEpTQ19lbmFibGVUcmltPTEgSlNDX25ld0J1
dHRlcmZseUNvc3Q9MS4yIEpTQ19tYXhDbGVhckxlbmd0aENvc3Q9MTI4ClN1blNwaWRlcjoKICAg
c3RyaW5nLXRhZ2Nsb3VkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy44ODI0
Ky0wLjkyNTkgICAgIF4gICAgIDExLjE2MzgrLTEuMTM2NSAgICAgICAgXiBkZWZpbml0ZWx5IDEu
MjQzNXggZmFzdGVyCkxvbmdTcGlkZXI6CiAgIDNkLXJheXRyYWNlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA5MDIuOTM3OSstMTEuMzQyMiAgICBeICAgIDg2Ni44NDY0Ky0x
OC40NTg3ICAgICAgIF4gZGVmaW5pdGVseSAxLjA0MTZ4IGZhc3RlcgpKU1JlZ3Jlc3M6CiAgIGFi
cy1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNDcwOCst
MC4xMzEyICAgICBeICAgICAgMy4yNTI5Ky0wLjAxOTggICAgICAgIF4gZGVmaW5pdGVseSAxLjA2
NzB4IGZhc3RlcgogICBkZWxheS10ZWFyLW9mZi1hcmd1bWVudHMtc3RyaWN0bW9kZSAgICAgICAg
ICAgICAgIDIwLjQzNTUrLTEuNDcyMiAgICAgXiAgICAgMTYuMTAzNSstMS41MTkzICAgICAgICBe
IGRlZmluaXRlbHkgMS4yNjkweCBmYXN0ZXIKICAgaW5mZXItY29uc3RhbnQtcHJvcGVydHkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMy4xOTk2Ky0wLjAxMTIgICAgIF4gICAgICAzLjA1MTAr
LTAuMDM5MCAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDQ4N3ggZmFzdGVyCiAgIHN0cmluZy1nZXQt
YnktdmFsLWJpZy1jaGFyICAgICAgICAgICAgICAgICAgICAgICAgIDguOTg0NSstMC4yNDUzICAg
ICBeICAgICAgOC42NjMwKy0wLjA3MDggICAgICAgIF4gZGVmaW5pdGVseSAxLjAzNzF4IGZhc3Rl
cgoKVGVzdCA1IG5ldy1iYXNlICAgSlNDX2VuYWJsZVRyaW09MSBKU0NfbmV3QnV0dGVyZmx5Q29z
dD0xLjIgSlNDX21heENsZWFyTGVuZ3RoQ29zdD0xMjgKSlNSZWdyZXNzOgogICBmdGwtbGlicmFy
eS1pbmxpbmluZy1kYXRhdmlldyAgICAgICAgICAgICAgICAgICAgIDgzLjU2MDUrLTIuNzE5OCAg
ICAgXiAgICAgNzIuMDk1MCstNC40OTg4ICAgICAgICBeIGRlZmluaXRlbHkgMS4xNTkweCBmYXN0
ZXIKICAgSW50MTZBcnJheS1idWJibGUtc29ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
Mi41NjU1Ky0wLjE5NjQgICAgICEgICAgIDIzLjQxMjUrLTAuMzE3MyAgICAgICAgISBkZWZpbml0
ZWx5IDEuMDM3NXggc2xvd2VyCgoKClRlc3QgNiBiYXNlLW5ldzogICBKU0NfZW5hYmxlVHJpbT0x
IEpTQ19uZXdCdXR0ZXJmbHlDb3N0PTEuMCBKU0NfbWF4Q2xlYXJMZW5ndGhDb3N0PTY0CkpTUmVn
cmVzczoKICAgaG9pc3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUtZWZmZWN0ZnVsLWxvb3AgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS44MzIw
Ky0wLjIyMjkgICAgICEgICAgICA2LjA4MzcrLTAuMDI0OCAgICAgICAgISBkZWZpbml0ZWx5IDEu
MDQzMnggc2xvd2VyCiAgIG1hcnNhZ2xpYS1vc3ItZW50cnkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjYuNTE5MCstMC4xNDUxICAgICAhICAgICAzMS41NTUwKy0zLjc0ODAgICAgICAg
ICEgZGVmaW5pdGVseSAxLjE4OTl4IHNsb3dlcgoKClRlc3QgNiBuZXctYmFzZTogICBKU0NfZW5h
YmxlVHJpbT0xIEpTQ19uZXdCdXR0ZXJmbHlDb3N0PTEuMCBKU0NfbWF4Q2xlYXJMZW5ndGhDb3N0
PTY0CkxvbmdTcGlkZXI6CiAgIDNkLXJheXRyYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA4NTIuOTIxOSstMjAuMjI0NSAgICAhICAgIDg4OS4zOTEyKy0xMC4wNzIzICAg
ICAgICEgZGVmaW5pdGVseSAxLjA0Mjh4IHNsb3dlcgoKCgpUZXN0IDcgYmFzZS1uZXc6ICAgSlND
X2VuYWJsZVRyaW09MSBKU0NfbmV3QnV0dGVyZmx5Q29zdD0xLjAgSlNDX21heENsZWFyTGVuZ3Ro
Q29zdD0zMgpUZXN0IDcgbmV3LWJhc2U6ICAgSlNDX2VuYWJsZVRyaW09MSBKU0NfbmV3QnV0dGVy
Zmx5Q29zdD0xLjAgSlNDX21heENsZWFyTGVuZ3RoQ29zdD0zMgpMb25nU3BpZGVyOgogICAzZC1y
YXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODU3LjY5NTArLTE0
LjEwMzQgICAgISAgICA4OTUuMzQ2NystMjEuNzIzOSAgICAgICAhIGRlZmluaXRlbHkgMS4wNDM5
eCBzbG93ZXIKICAgY3J5cHRvLXNoYTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDc4OC41OTE4Ky02LjU4MzggICAgIF4gICAgNzcxLjI5NjcrLTYuNjE5MSAgICAgICAgXiBk
ZWZpbml0ZWx5IDEuMDIyNHggZmFzdGVyCktyYWtlbjoKICAgaW1hZ2luZy1kYXJrcm9vbSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjUuNTA4Ky0xLjU4NCAgICAgIF4gICAgIDEx
OS43OTArLTIuMDIxICAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDQ3N3ggZmFzdGVyCkpTUmVncmVz
czoKICAgYXJyYXktd2l0aC1kb3VibGUtYWRkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NC4zOTI5Ky0wLjAxMTcgICAgICEgICAgICA0LjYzNTYrLTAuMDg2NyAgICAgICAgISBkZWZpbml0
ZWx5IDEuMDU1Mnggc2xvd2VyCiAgIGdldC1ieS1pZC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tc2ltcGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuMzY0MCstMC4wNDk4ICAgICBeICAgICAgMy4yNTAwKy0w
LjAyMzMgICAgICAgIF4gZGVmaW5pdGVseSAxLjAzNTF4IGZhc3RlcgogICBob2lzdC1wb2x5LWNo
ZWNrLXN0cnVjdHVyZS1lZmZlY3RmdWwtbG9vcCAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjA4NTYrLTAuMDQxMCAgICAgXiAgICAgIDUu
Nzc1MistMC4wNjk5ICAgICAgICBeIGRlZmluaXRlbHkgMS4wNTM3eCBmYXN0ZXIKICAgaW50LW9y
LW90aGVyLW11bC10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNC40MDQyKy0wLjAx
NTYgICAgICEgICAgICA0LjQzNjgrLTAuMDEwNSAgICAgICAgISBkZWZpbml0ZWx5IDEuMDA3NHgg
c2xvd2VyCgoKClRlc3QgOCBiYXNlLW5ldzogICBKU0NfZW5hYmxlVHJpbT0xIEpTQ19uZXdCdXR0
ZXJmbHlDb3N0PTEuMCBKU0NfbWF4Q2xlYXJMZW5ndGhDb3N0PTE2CkxvbmdTcGlkZXI6CiAgIDNk
LXJheXRyYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4ODcuOTgyMyst
NS4zMjM3ICAgICBeICAgIDg2MS4zMTA3Ky0xNi42NjMxICAgICAgIF4gZGVmaW5pdGVseSAxLjAz
MTB4IGZhc3RlcgpKU1JlZ3Jlc3M6CiAgIEZsb2F0MzJBcnJheS10by1GbG9hdDY0QXJyYXktc2V0
ICAgICAgICAgICAgICAgICAgNjcuMjA1OSstMS4zOTYwICAgICBeICAgICA2MS44ODczKy0wLjUy
MTQgICAgICAgIF4gZGVmaW5pdGVseSAxLjA4NTl4IGZhc3RlcgogICBnbG9iYWwtdmFyLWNvbnN0
LWluZmVyLWZpcmUtZnJvbS1vcHQgICAgICAgICAgICAgICAxLjA2NjUrLTAuMDQwNiAgICAgXiAg
ICAgIDAuOTYyMCstMC4wNjM1ICAgICAgICBeIGRlZmluaXRlbHkgMS4xMDg3eCBmYXN0ZXIKICAg
aG9pc3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUtZWZmZWN0ZnVsLWxvb3AgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS43NTQ4Ky0wLjA1MzAg
ICAgICEgICAgICA2LjEzNjArLTAuMDg5MCAgICAgICAgISBkZWZpbml0ZWx5IDEuMDY2Mnggc2xv
d2VyCgpUZXN0IDggbmV3LWJhc2U6ICAgSlNDX2VuYWJsZVRyaW09MSBKU0NfbmV3QnV0dGVyZmx5
Q29zdD0xLjAgSlNDX21heENsZWFyTGVuZ3RoQ29zdD0xNgpKU1JlZ3Jlc3M6CiAgIGZ0bC1saWJy
YXJ5LWlubGluaW5nLWRhdGF2aWV3ICAgICAgICAgICAgICAgICAgICAgODguMjY2NSstOC40ODM1
ICAgICBeICAgICA3Ni4yMTA3Ky0wLjc2ODggICAgICAgIF4gZGVmaW5pdGVseSAxLjE1ODJ4IGZh
c3RlcgogICBob2lzdC1wb2x5LWNoZWNrLXN0cnVjdHVyZS1lZmZlY3RmdWwtbG9vcCAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjE3OTAr
LTAuMTExMSAgICAgXiAgICAgIDUuNzgxMystMC4wNjU5ICAgICAgICBeIGRlZmluaXRlbHkgMS4w
Njg4eCBmYXN0ZXIKICAgbWlzYy1zdHJpY3QtZXEgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0MS4zNDY2Ky0wLjE2OTAgICAgICEgICAgIDQyLjUyMDMrLTAuODk3OSAgICAgICAg
ISBkZWZpbml0ZWx5IDEuMDI4NHggc2xvd2VyCgoKClRlc3QgOSBiYXNlLW5ldzogICBKU0NfZW5h
YmxlVHJpbT0xIEpTQ19uZXdCdXR0ZXJmbHlDb3N0PTEuMCBKU0NfbWF4Q2xlYXJMZW5ndGhDb3N0
PTAKT2N0YW5lOgogICBib3llciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDcuODMzOTUrLTAuMDgwMzYgICAgISAgICAgOC4wMDkwOCstMC4wNDQ4NCAgICAgICAh
IGRlZmluaXRlbHkgMS4wMjI0eCBzbG93ZXIKSlNSZWdyZXNzOgogICBhYnMtYm9vbGVhbiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjU2MDIrLTAuMDc1MyAgICAgXiAg
ICAgIDMuMjQ4MSstMC4wMzkyICAgICAgICBeIGRlZmluaXRlbHkgMS4wOTYxeCBmYXN0ZXIKICAg
RmxvYXQzMkFycmF5LW1hdHJpeC1tdWx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44NzMy
Ky0wLjEzOTEgICAgICEgICAgICA1LjA4ODgrLTAuMDY0OSAgICAgICAgISBkZWZpbml0ZWx5IDEu
MDQ0Mnggc2xvd2VyCiAgIGhvaXN0LXBvbHktY2hlY2stc3RydWN0dXJlLWVmZmVjdGZ1bC1sb29w
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDUuNzgyMCstMC4wNDg0ICAgICAhICAgICAgNi4wODQ2Ky0wLjA3MzAgICAgICAgICEgZGVmaW5p
dGVseSAxLjA1MjN4IHNsb3dlcgogICBpbmZlci1vbmUtdGltZS1jbG9zdXJlLXR3by12YXJzICAg
ICAgICAgICAgICAgICAgIDEyLjUzMDcrLTAuNDk2NCAgICAgISAgICAgMTUuNjY0MistMi41NzA4
ICAgICAgICAhIGRlZmluaXRlbHkgMS4yNTAxeCBzbG93ZXIKQ29tcHJlc3Npb25CZW5jaDoKICAg
YXJpdGhtZXRpYy1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ1OC4xMzAx
Ky02LjAyMjAgICAgIF4gICAgNDQ5LjExMDArLTIuNTY2NiAgICAgICAgXiBkZWZpbml0ZWx5IDEu
MDIwMXggZmFzdGVyCgoKVGVzdCA5IG5ldy1iYXNlOiAgIEpTQ19lbmFibGVUcmltPTEgSlNDX25l
d0J1dHRlcmZseUNvc3Q9MS4wIEpTQ19tYXhDbGVhckxlbmd0aENvc3Q9MApKU1JlZ3Jlc3M6CiAg
IGhvaXN0LXBvbHktY2hlY2stc3RydWN0dXJlLWVmZmVjdGZ1bC1sb29wICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMTAwNystMC4xMzY4
ICAgICBeICAgICAgNS43NTY2Ky0wLjAyNDYgICAgICAgIF4gZGVmaW5pdGVseSAxLjA1OTh4IGZh
c3RlcgoKCgoKCgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253111</attachid>
            <date>2015-05-14 00:54:40 -0700</date>
            <delta_ts>2015-05-14 16:54:54 -0700</delta_ts>
            <desc>patch 2: fixed style issue.</desc>
            <filename>bug-144622.patch</filename>
            <type>text/plain</type>
            <size>5758</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0MzMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDE1LTA1LTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBK
U0FycmF5OjpzZXRMZW5ndGgoKSBzaG91bGQgcmVhbGxvY2F0ZSBpbnN0ZWFkIG9mIHplcm8tZmls
bGluZyBpZiB0aGUgcmVhbGxvY2F0aW9uIHdvdWxkIGJlIHNtYWxsIGVub3VnaC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDYyMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gc2V0dGluZyB0aGUg
YXJyYXkgdG8gYSBuZXcgbGVuZ3RoIHRoYXQgaXMgc2hvcnRlciwgd2Ugbm93IGNoZWNrIGlmIGl0
IGlzIHdvcnRoCisgICAgICAgIGp1c3QgbWFraW5nIGEgbmV3IGJ1dHRlcmZseSBpbnN0ZWFkIG9m
IGNsZWFyaW5nIG91dCB0aGUgc2xvdHMgaW4gdGhlIG9sZCBidXR0ZXJmbHkKKyAgICAgICAgdGhh
dCByZXNpZGVzIGJleW9uZCB0aGUgbmV3IGxlbmd0aC4gIElmIHNvLCB3ZSB3aWxsIG1ha2UgYSBu
ZXcgYnV0dGVyZmx5IGluc3RlYWQuCisKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgor
ICAgICAgICAoSlNDOjpKU0FycmF5OjpzZXRMZW5ndGgpOgorICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6dHJpbUxlbmd0aCk6CisgICAgICAg
IC0gbWFrZXMgYSBuZXcgYnV0dGVyZmx5IHdpdGggYSBuZXcgc2hvcnRlciBsZW5ndGguCisgICAg
ICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAqIHRlc3RzL21vemlsbGEvanMxXzUv
QXJyYXkvcmVncmVzcy0xMDE5NjQuanM6CisgICAgICAgIC0gVW5kbyB0aGlzIHRlc3QgY2hhbmdl
IHNpbmNlIHRoaXMgcGF0Y2ggd2lsbCBwcmV2ZW50IHVzIGZyb20gc3BlbmRpbmcgYSBsb3Qgb2Yg
dGltZQorICAgICAgICAgIGNsZWFyaW5nIGEgbGFyZ2UgYnV0dGVyZmx5LgorCiAyMDE1LTA1LTEz
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjE4MDU5NSk6IHNhbWUtY2FsbGVlIHByb2ZpbGluZyBubyBsb25nZXIgd29ya3MKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCShyZXZpc2lvbiAxODQzMzAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDA0LDcgKzQwNCw3IEBAIGJvb2wgSlNBcnJheTo6c2V0TGVuZ3RoKEV4ZWNTdGF0
ZSogZXhlYywKICAgICBjYXNlIEFycmF5V2l0aFVuZGVjaWRlZDoKICAgICBjYXNlIEFycmF5V2l0
aEludDMyOgogICAgIGNhc2UgQXJyYXlXaXRoRG91YmxlOgotICAgIGNhc2UgQXJyYXlXaXRoQ29u
dGlndW91czoKKyAgICBjYXNlIEFycmF5V2l0aENvbnRpZ3VvdXM6IHsKICAgICAgICAgaWYgKG5l
d0xlbmd0aCA9PSBtX2J1dHRlcmZseS0+cHVibGljTGVuZ3RoKCkpCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgaWYgKG5ld0xlbmd0aCA+PSBNQVhfQVJSQVlfSU5ERVggLy8gVGhp
cyBjYXNlIGVuc3VyZXMgdGhhdCB3ZSBjYW4gZG8gZmFzdCBwdXNoLgpAQCAtNDE4LDYgKzQxOCwx
OSBAQCBib29sIEpTQXJyYXk6OnNldExlbmd0aChFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgICAg
ICBlbnN1cmVMZW5ndGgoZXhlYy0+dm0oKSwgbmV3TGVuZ3RoKTsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CisKKyAgICAgICAgLy8gVGhlc2UgaGV1cmlzdGljIHZhbHVlcyB3
ZXJlIHBpY2tlZCBleHBlcmltZW50YWxseSBmcm9tIHJ1bm5pbmcgYmVuY2htYXJrcy4KKyAgICAg
ICAgc3RhdGljIGNvbnN0IGRvdWJsZSBjb3N0QWRqdXN0bWVudFRvTWFrZU5ld0J1dHRlcmZseSA9
IDEuMDsKKyAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1pbmltdW1MZW5ndGhUb0NsZWFy
QmVmb3JlSXRJc1dvcnRoTWFraW5nQU5ld0J1dHRlcmZseSA9IDY0OworCisgICAgICAgIHVuc2ln
bmVkIGxlbmd0aFRvQ2xlYXIgPSBtX2J1dHRlcmZseS0+cHVibGljTGVuZ3RoKCkgLSBuZXdMZW5n
dGg7CisgICAgICAgIHVuc2lnbmVkIGNvc3RUb1RyaW0gPSBuZXdMZW5ndGggKiBjb3N0QWRqdXN0
bWVudFRvTWFrZU5ld0J1dHRlcmZseTsKKyAgICAgICAgaWYgKGxlbmd0aFRvQ2xlYXIgPiBtaW5p
bXVtTGVuZ3RoVG9DbGVhckJlZm9yZUl0SXNXb3J0aE1ha2luZ0FOZXdCdXR0ZXJmbHkKKyAgICAg
ICAgICAgICYmIGNvc3RUb1RyaW0gPCBsZW5ndGhUb0NsZWFyKSB7CisgICAgICAgICAgICB0cmlt
TGVuZ3RoKGV4ZWMtPnZtKCksIG5ld0xlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQorCiAgICAgICAgIGlmIChpbmRleGluZ1R5cGUoKSA9PSBBcnJheVdpdGhEb3Vi
bGUpIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1fYnV0dGVyZmx5LT5wdWJsaWNM
ZW5ndGgoKTsgaS0tID4gbmV3TGVuZ3RoOykKICAgICAgICAgICAgICAgICBtX2J1dHRlcmZseS0+
Y29udGlndW91c0RvdWJsZSgpW2ldID0gUE5hTjsKQEAgLTQyNyw2ICs0NDAsNyBAQCBib29sIEpT
QXJyYXk6OnNldExlbmd0aChFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgIH0KICAgICAgICAgbV9i
dXR0ZXJmbHktPnNldFB1YmxpY0xlbmd0aChuZXdMZW5ndGgpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CiAgICAgICAgIAogICAgIGNhc2UgQXJyYXlXaXRoQXJyYXlTdG9yYWdlOgogICAg
IGNhc2UgQXJyYXlXaXRoU2xvd1B1dEFycmF5U3RvcmFnZToKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHJldmlzaW9uIDE4NDMzMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQ1Nyw2ICsyNDU3LDIxIEBAIHZvaWQgSlNPYmplY3Q6OmVuc3VyZUxlbmd0aFNsb3coVk0mIHZt
LCAKICAgICB9CiB9CiAKK3ZvaWQgSlNPYmplY3Q6OnRyaW1MZW5ndGgoVk0mIHZtLCB1bnNpZ25l
ZCBsZW5ndGgpCit7CisgICAgQVNTRVJUKGxlbmd0aCA8IE1BWF9BUlJBWV9JTkRFWCk7CisgICAg
QVNTRVJUKGxlbmd0aCA8IE1BWF9TVE9SQUdFX1ZFQ1RPUl9MRU5HVEgpOworICAgIEFTU0VSVCho
YXNDb250aWd1b3VzKGluZGV4aW5nVHlwZSgpKSB8fCBoYXNJbnQzMihpbmRleGluZ1R5cGUoKSkg
fHwgaGFzRG91YmxlKGluZGV4aW5nVHlwZSgpKSB8fCBoYXNVbmRlY2lkZWQoaW5kZXhpbmdUeXBl
KCkpKTsKKyAgICBBU1NFUlQobV9idXR0ZXJmbHktPnZlY3Rvckxlbmd0aCgpID4gbGVuZ3RoKTsK
KyAgICBBU1NFUlQoIW1fYnV0dGVyZmx5LT5pbmRleGluZ0hlYWRlcigpLT5wcmVDYXBhY2l0eShz
dHJ1Y3R1cmUoKSkpOworCisgICAgRGVmZXJHQyBkZWZlckdDKHZtLmhlYXApOworICAgIEJ1dHRl
cmZseSogbmV3QnV0dGVyZmx5ID0gbV9idXR0ZXJmbHktPnJlc2l6ZUFycmF5KHZtLCB0aGlzLCBz
dHJ1Y3R1cmUoKSwgMCwgQXJyYXlTdG9yYWdlOjpzaXplRm9yKGxlbmd0aCkpOworICAgIG1fYnV0
dGVyZmx5LnNldCh2bSwgdGhpcywgbmV3QnV0dGVyZmx5KTsKKyAgICBtX2J1dHRlcmZseS0+c2V0
VmVjdG9yTGVuZ3RoKGxlbmd0aCk7CisgICAgbV9idXR0ZXJmbHktPnNldFB1YmxpY0xlbmd0aChs
ZW5ndGgpOworfQorCiBCdXR0ZXJmbHkqIEpTT2JqZWN0Ojpncm93T3V0T2ZMaW5lU3RvcmFnZShW
TSYgdm0sIHNpemVfdCBvbGRTaXplLCBzaXplX3QgbmV3U2l6ZSkKIHsKICAgICBBU1NFUlQobmV3
U2l6ZSA+IG9sZFNpemUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oCShyZXZpc2lvbiAxODQzMzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MjcsNiArODI3LDEwIEBAIHByb3RlY3Rl
ZDoKICAgICAgICAgICAgIG1fYnV0dGVyZmx5LT5zZXRQdWJsaWNMZW5ndGgobGVuZ3RoKTsKICAg
ICB9CiAgICAgICAgIAorICAgIC8vIENhbGwgdGhpcyBpZiB5b3Ugd2FudCB0byBzaHJpbmsgdGhl
IGJ1dHRlcmZseSBiYWNraW5nIHN0b3JlLCBhbmQgeW91J3JlCisgICAgLy8gc3VyZSB0aGF0IHRo
ZSBhcnJheSBpcyBjb250aWd1b3VzLgorICAgIHZvaWQgdHJpbUxlbmd0aChWTSYsIHVuc2lnbmVk
IGxlbmd0aCk7CisgICAgCiAgICAgdGVtcGxhdGU8SW5kZXhpbmdUeXBlIGluZGV4aW5nU2hhcGU+
CiAgICAgdW5zaWduZWQgY291bnRFbGVtZW50cyhCdXR0ZXJmbHkqKTsKICAgICAgICAgCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW96aWxsYS9qczFfNS9BcnJheS9yZWdyZXNz
LTEwMTk2NC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW96
aWxsYS9qczFfNS9BcnJheS9yZWdyZXNzLTEwMTk2NC5qcwkocmV2aXNpb24gMTg0MzMwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vemlsbGEvanMxXzUvQXJyYXkvcmVncmVzcy0x
MDE5NjQuanMJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgdmFyIGJ1ZyA9IDEwMTk2
NDsKIHZhciBzdW1tYXJ5ID0gJ1BlcmZvcm1hbmNlOiB0cnVuY2F0aW5nIGV2ZW4gdmVyeSBsYXJn
ZSBhcnJheXMgc2hvdWxkIGJlIGZhc3QhJzsKIHZhciBCSUcgPSAxMDAwMDAwMDsKIHZhciBMSVRU
TEUgPSAxMDsKLXZhciBGQVNUID0gMTAwMDA7IC8vIFRoaXMgdXNlZCB0byB0ZXN0IHRoYXQgYXJy
YXkgdHJ1bmNhdGlvbiBzaG91bGQgYmUgNTAgbXMgb3IgbGVzcy4gV2UndmUgY2hhbmdlZCBpdCBi
ZWNhdXNlIHdlIGRvbid0IGNhcmUgaG93IGxvbmcgaXQgdGFrZXMuIFdlIGp1c3QgdHJ5IHRvIG1h
a2Ugc3VyZSBpdCBkb2Vzbid0IHRha2UgKnJpZGljdWxvdXNseSogbG9uZyBhbmQgd2Ugd2FudCBp
dCB0byBydW4gdG8gY29tcGxldGlvbiBjb3JyZWN0bHkuCit2YXIgRkFTVCA9IDUwOyAvLyBhcnJh
eSB0cnVuY2F0aW9uIHNob3VsZCBiZSA1MCBtcyBvciBsZXNzIHRvIHBhc3MgdGhlIHRlc3QKIHZh
ciBNU0dfRkFTVCA9ICdUcnVuY2F0aW9uIHRvb2sgbGVzcyB0aGFuICcgKyBGQVNUICsgJyBtcyc7
CiB2YXIgTVNHX1NMT1cgPSAnVHJ1bmNhdGlvbiB0b29rICc7CiB2YXIgTVNHX01TID0gJyBtcyc7
Cg==
</data>
<flag name="review"
          id="277968"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253156</attachid>
            <date>2015-05-14 16:54:54 -0700</date>
            <delta_ts>2015-05-15 00:40:43 -0700</delta_ts>
            <desc>patch 2: addressed Geoff’s feedback.</desc>
            <filename>bug-144622.patch</filename>
            <type>text/plain</type>
            <size>5879</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0MzMxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDE1LTA1LTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBK
U0FycmF5OjpzZXRMZW5ndGgoKSBzaG91bGQgcmVhbGxvY2F0ZSBpbnN0ZWFkIG9mIHplcm8tZmls
bGluZyBpZiB0aGUgcmVhbGxvY2F0aW9uIHdvdWxkIGJlIHNtYWxsIGVub3VnaC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDYyMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gc2V0dGluZyB0aGUg
YXJyYXkgdG8gYSBuZXcgbGVuZ3RoIHRoYXQgaXMgc2hvcnRlciwgd2Ugbm93IGNoZWNrIGlmIGl0
IGlzIHdvcnRoCisgICAgICAgIGp1c3QgbWFraW5nIGEgbmV3IGJ1dHRlcmZseSBpbnN0ZWFkIG9m
IGNsZWFyaW5nIG91dCB0aGUgc2xvdHMgaW4gdGhlIG9sZCBidXR0ZXJmbHkKKyAgICAgICAgdGhh
dCByZXNpZGVzIGJleW9uZCB0aGUgbmV3IGxlbmd0aC4gIElmIHNvLCB3ZSB3aWxsIG1ha2UgYSBu
ZXcgYnV0dGVyZmx5IGluc3RlYWQuCisKKyAgICAgICAgVGhlcmUgaXMgbm8gcGVyZiBkaWZmZXJl
bmNlcyBpbiB0aGUgYmVuY2htYXJrIHJlc3VsdHMuICBIb3dldmVyLCB0aGlzIGRvZXMgYmVuZWZp
dAorICAgICAgICB0aGUgcGVyZiBvZiBwYXRob2xvZ2ljYWwgY2FzZXMgd2hlcmUgd2UgbmVlZCB0
byBzaG9ydGVuIHRoZSBsZW5ndGggb2YgYSB2ZXJ5IGxhcmdlCisgICAgICAgIGFycmF5LCBhcyBp
cyB0aGUgY2FzZSBpbiB0ZXN0cy9tb3ppbGxhL2pzMV81L0FycmF5L3JlZ3Jlc3MtMTAxOTY0Lmpz
LiAgV2l0aCB0aGlzCisgICAgICAgIHBhdGNoLCB3ZSBjYW4gZXhwZWN0IHRoYXQgdGVzdCB0byBj
b21wbGV0ZSBpbiBhIHNob3J0IHRpbWUgYWdhaW4uCisKKyAgICAgICAgKiBydW50aW1lL0pTQXJy
YXkuY3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpzZXRMZW5ndGgpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6cmVhbGxvY2F0ZUFu
ZFNocmlua0J1dHRlcmZseSk6CisgICAgICAgIC0gbWFrZXMgYSBuZXcgYnV0dGVyZmx5IHdpdGgg
YSBuZXcgc2hvcnRlciBsZW5ndGguCisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAg
ICAgICAqIHRlc3RzL21vemlsbGEvanMxXzUvQXJyYXkvcmVncmVzcy0xMDE5NjQuanM6CisgICAg
ICAgIC0gVW5kbyB0aGlzIHRlc3QgY2hhbmdlIHNpbmNlIHRoaXMgcGF0Y2ggd2lsbCBwcmV2ZW50
IHVzIGZyb20gc3BlbmRpbmcgYSBsb3Qgb2YgdGltZQorICAgICAgICAgIGNsZWFyaW5nIGEgbGFy
Z2UgYnV0dGVyZmx5LgorCiAyMDE1LTA1LTEzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE4MDU5NSk6IHNhbWUtY2FsbGVlIHByb2ZpbGlu
ZyBubyBsb25nZXIgd29ya3MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuY3BwCShyZXZpc2lvbiAxODQzMzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FycmF5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA0LDcgKzQwNCw3IEBAIGJvb2wg
SlNBcnJheTo6c2V0TGVuZ3RoKEV4ZWNTdGF0ZSogZXhlYywKICAgICBjYXNlIEFycmF5V2l0aFVu
ZGVjaWRlZDoKICAgICBjYXNlIEFycmF5V2l0aEludDMyOgogICAgIGNhc2UgQXJyYXlXaXRoRG91
YmxlOgotICAgIGNhc2UgQXJyYXlXaXRoQ29udGlndW91czoKKyAgICBjYXNlIEFycmF5V2l0aENv
bnRpZ3VvdXM6IHsKICAgICAgICAgaWYgKG5ld0xlbmd0aCA9PSBtX2J1dHRlcmZseS0+cHVibGlj
TGVuZ3RoKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKG5ld0xlbmd0
aCA+PSBNQVhfQVJSQVlfSU5ERVggLy8gVGhpcyBjYXNlIGVuc3VyZXMgdGhhdCB3ZSBjYW4gZG8g
ZmFzdCBwdXNoLgpAQCAtNDE4LDYgKzQxOCwxNCBAQCBib29sIEpTQXJyYXk6OnNldExlbmd0aChF
eGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgICAgICBlbnN1cmVMZW5ndGgoZXhlYy0+dm0oKSwgbmV3
TGVuZ3RoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisKKyAgICAgICAg
dW5zaWduZWQgbGVuZ3RoVG9DbGVhciA9IG1fYnV0dGVyZmx5LT5wdWJsaWNMZW5ndGgoKSAtIG5l
d0xlbmd0aDsKKyAgICAgICAgdW5zaWduZWQgY29zdFRvQWxsb2NhdGVOZXdCdXR0ZXJmbHkgPSA2
NDsgLy8gYSBoZXVyaXN0aWMuCisgICAgICAgIGlmIChsZW5ndGhUb0NsZWFyID4gbmV3TGVuZ3Ro
ICYmIGxlbmd0aFRvQ2xlYXIgPiBjb3N0VG9BbGxvY2F0ZU5ld0J1dHRlcmZseSkgeworICAgICAg
ICAgICAgcmVhbGxvY2F0ZUFuZFNocmlua0J1dHRlcmZseShleGVjLT52bSgpLCBuZXdMZW5ndGgp
OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoaW5k
ZXhpbmdUeXBlKCkgPT0gQXJyYXlXaXRoRG91YmxlKSB7CiAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSBtX2J1dHRlcmZseS0+cHVibGljTGVuZ3RoKCk7IGktLSA+IG5ld0xlbmd0aDspCiAg
ICAgICAgICAgICAgICAgbV9idXR0ZXJmbHktPmNvbnRpZ3VvdXNEb3VibGUoKVtpXSA9IFBOYU47
CkBAIC00MjcsNiArNDM1LDcgQEAgYm9vbCBKU0FycmF5OjpzZXRMZW5ndGgoRXhlY1N0YXRlKiBl
eGVjLAogICAgICAgICB9CiAgICAgICAgIG1fYnV0dGVyZmx5LT5zZXRQdWJsaWNMZW5ndGgobmV3
TGVuZ3RoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogICAgICAgICAKICAgICBjYXNl
IEFycmF5V2l0aEFycmF5U3RvcmFnZToKICAgICBjYXNlIEFycmF5V2l0aFNsb3dQdXRBcnJheVN0
b3JhZ2U6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3Bw
CShyZXZpc2lvbiAxODQzMzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0NTcsNiArMjQ1NywyMSBAQCB2b2lkIEpTT2Jq
ZWN0OjplbnN1cmVMZW5ndGhTbG93KFZNJiB2bSwgCiAgICAgfQogfQogCit2b2lkIEpTT2JqZWN0
OjpyZWFsbG9jYXRlQW5kU2hyaW5rQnV0dGVyZmx5KFZNJiB2bSwgdW5zaWduZWQgbGVuZ3RoKQor
eworICAgIEFTU0VSVChsZW5ndGggPCBNQVhfQVJSQVlfSU5ERVgpOworICAgIEFTU0VSVChsZW5n
dGggPCBNQVhfU1RPUkFHRV9WRUNUT1JfTEVOR1RIKTsKKyAgICBBU1NFUlQoaGFzQ29udGlndW91
cyhpbmRleGluZ1R5cGUoKSkgfHwgaGFzSW50MzIoaW5kZXhpbmdUeXBlKCkpIHx8IGhhc0RvdWJs
ZShpbmRleGluZ1R5cGUoKSkgfHwgaGFzVW5kZWNpZGVkKGluZGV4aW5nVHlwZSgpKSk7CisgICAg
QVNTRVJUKG1fYnV0dGVyZmx5LT52ZWN0b3JMZW5ndGgoKSA+IGxlbmd0aCk7CisgICAgQVNTRVJU
KCFtX2J1dHRlcmZseS0+aW5kZXhpbmdIZWFkZXIoKS0+cHJlQ2FwYWNpdHkoc3RydWN0dXJlKCkp
KTsKKworICAgIERlZmVyR0MgZGVmZXJHQyh2bS5oZWFwKTsKKyAgICBCdXR0ZXJmbHkqIG5ld0J1
dHRlcmZseSA9IG1fYnV0dGVyZmx5LT5yZXNpemVBcnJheSh2bSwgdGhpcywgc3RydWN0dXJlKCks
IDAsIEFycmF5U3RvcmFnZTo6c2l6ZUZvcihsZW5ndGgpKTsKKyAgICBtX2J1dHRlcmZseS5zZXQo
dm0sIHRoaXMsIG5ld0J1dHRlcmZseSk7CisgICAgbV9idXR0ZXJmbHktPnNldFZlY3Rvckxlbmd0
aChsZW5ndGgpOworICAgIG1fYnV0dGVyZmx5LT5zZXRQdWJsaWNMZW5ndGgobGVuZ3RoKTsKK30K
KwogQnV0dGVyZmx5KiBKU09iamVjdDo6Z3Jvd091dE9mTGluZVN0b3JhZ2UoVk0mIHZtLCBzaXpl
X3Qgb2xkU2l6ZSwgc2l6ZV90IG5ld1NpemUpCiB7CiAgICAgQVNTRVJUKG5ld1NpemUgPiBvbGRT
aXplKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkocmV2
aXNpb24gMTg0MzMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtODI3LDYgKzgyNywxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
ICAgICBtX2J1dHRlcmZseS0+c2V0UHVibGljTGVuZ3RoKGxlbmd0aCk7CiAgICAgfQogICAgICAg
ICAKKyAgICAvLyBDYWxsIHRoaXMgaWYgeW91IHdhbnQgdG8gc2hyaW5rIHRoZSBidXR0ZXJmbHkg
YmFja2luZyBzdG9yZSwgYW5kIHlvdSdyZQorICAgIC8vIHN1cmUgdGhhdCB0aGUgYXJyYXkgaXMg
Y29udGlndW91cy4KKyAgICB2b2lkIHJlYWxsb2NhdGVBbmRTaHJpbmtCdXR0ZXJmbHkoVk0mLCB1
bnNpZ25lZCBsZW5ndGgpOworICAgIAogICAgIHRlbXBsYXRlPEluZGV4aW5nVHlwZSBpbmRleGlu
Z1NoYXBlPgogICAgIHVuc2lnbmVkIGNvdW50RWxlbWVudHMoQnV0dGVyZmx5Kik7CiAgICAgICAg
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vemlsbGEvanMxXzUvQXJyYXkv
cmVncmVzcy0xMDE5NjQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL21vemlsbGEvanMxXzUvQXJyYXkvcmVncmVzcy0xMDE5NjQuanMJKHJldmlzaW9uIDE4NDMz
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb3ppbGxhL2pzMV81L0FycmF5L3Jl
Z3Jlc3MtMTAxOTY0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIHZhciBidWcg
PSAxMDE5NjQ7CiB2YXIgc3VtbWFyeSA9ICdQZXJmb3JtYW5jZTogdHJ1bmNhdGluZyBldmVuIHZl
cnkgbGFyZ2UgYXJyYXlzIHNob3VsZCBiZSBmYXN0ISc7CiB2YXIgQklHID0gMTAwMDAwMDA7CiB2
YXIgTElUVExFID0gMTA7Ci12YXIgRkFTVCA9IDEwMDAwOyAvLyBUaGlzIHVzZWQgdG8gdGVzdCB0
aGF0IGFycmF5IHRydW5jYXRpb24gc2hvdWxkIGJlIDUwIG1zIG9yIGxlc3MuIFdlJ3ZlIGNoYW5n
ZWQgaXQgYmVjYXVzZSB3ZSBkb24ndCBjYXJlIGhvdyBsb25nIGl0IHRha2VzLiBXZSBqdXN0IHRy
eSB0byBtYWtlIHN1cmUgaXQgZG9lc24ndCB0YWtlICpyaWRpY3Vsb3VzbHkqIGxvbmcgYW5kIHdl
IHdhbnQgaXQgdG8gcnVuIHRvIGNvbXBsZXRpb24gY29ycmVjdGx5LgordmFyIEZBU1QgPSA1MDsg
Ly8gYXJyYXkgdHJ1bmNhdGlvbiBzaG91bGQgYmUgNTAgbXMgb3IgbGVzcyB0byBwYXNzIHRoZSB0
ZXN0CiB2YXIgTVNHX0ZBU1QgPSAnVHJ1bmNhdGlvbiB0b29rIGxlc3MgdGhhbiAnICsgRkFTVCAr
ICcgbXMnOwogdmFyIE1TR19TTE9XID0gJ1RydW5jYXRpb24gdG9vayAnOwogdmFyIE1TR19NUyA9
ICcgbXMnOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253182</attachid>
            <date>2015-05-15 00:40:43 -0700</date>
            <delta_ts>2015-05-15 11:17:58 -0700</delta_ts>
            <desc>patch 2: re-uploaded again to trigger EWS bots.</desc>
            <filename>bug-144622.patch</filename>
            <type>text/plain</type>
            <size>5879</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0MzMxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDE1LTA1LTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBK
U0FycmF5OjpzZXRMZW5ndGgoKSBzaG91bGQgcmVhbGxvY2F0ZSBpbnN0ZWFkIG9mIHplcm8tZmls
bGluZyBpZiB0aGUgcmVhbGxvY2F0aW9uIHdvdWxkIGJlIHNtYWxsIGVub3VnaC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDYyMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gc2V0dGluZyB0aGUg
YXJyYXkgdG8gYSBuZXcgbGVuZ3RoIHRoYXQgaXMgc2hvcnRlciwgd2Ugbm93IGNoZWNrIGlmIGl0
IGlzIHdvcnRoCisgICAgICAgIGp1c3QgbWFraW5nIGEgbmV3IGJ1dHRlcmZseSBpbnN0ZWFkIG9m
IGNsZWFyaW5nIG91dCB0aGUgc2xvdHMgaW4gdGhlIG9sZCBidXR0ZXJmbHkKKyAgICAgICAgdGhh
dCByZXNpZGVzIGJleW9uZCB0aGUgbmV3IGxlbmd0aC4gIElmIHNvLCB3ZSB3aWxsIG1ha2UgYSBu
ZXcgYnV0dGVyZmx5IGluc3RlYWQuCisKKyAgICAgICAgVGhlcmUgaXMgbm8gcGVyZiBkaWZmZXJl
bmNlcyBpbiB0aGUgYmVuY2htYXJrIHJlc3VsdHMuICBIb3dldmVyLCB0aGlzIGRvZXMgYmVuZWZp
dAorICAgICAgICB0aGUgcGVyZiBvZiBwYXRob2xvZ2ljYWwgY2FzZXMgd2hlcmUgd2UgbmVlZCB0
byBzaG9ydGVuIHRoZSBsZW5ndGggb2YgYSB2ZXJ5IGxhcmdlCisgICAgICAgIGFycmF5LCBhcyBp
cyB0aGUgY2FzZSBpbiB0ZXN0cy9tb3ppbGxhL2pzMV81L0FycmF5L3JlZ3Jlc3MtMTAxOTY0Lmpz
LiAgV2l0aCB0aGlzCisgICAgICAgIHBhdGNoLCB3ZSBjYW4gZXhwZWN0IHRoYXQgdGVzdCB0byBj
b21wbGV0ZSBpbiBhIHNob3J0IHRpbWUgYWdhaW4uCisKKyAgICAgICAgKiBydW50aW1lL0pTQXJy
YXkuY3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpzZXRMZW5ndGgpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6cmVhbGxvY2F0ZUFu
ZFNocmlua0J1dHRlcmZseSk6CisgICAgICAgIC0gbWFrZXMgYSBuZXcgYnV0dGVyZmx5IHdpdGgg
YSBuZXcgc2hvcnRlciBsZW5ndGguCisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAg
ICAgICAqIHRlc3RzL21vemlsbGEvanMxXzUvQXJyYXkvcmVncmVzcy0xMDE5NjQuanM6CisgICAg
ICAgIC0gVW5kbyB0aGlzIHRlc3QgY2hhbmdlIHNpbmNlIHRoaXMgcGF0Y2ggd2lsbCBwcmV2ZW50
IHVzIGZyb20gc3BlbmRpbmcgYSBsb3Qgb2YgdGltZQorICAgICAgICAgIGNsZWFyaW5nIGEgbGFy
Z2UgYnV0dGVyZmx5LgorCiAyMDE1LTA1LTEzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE4MDU5NSk6IHNhbWUtY2FsbGVlIHByb2ZpbGlu
ZyBubyBsb25nZXIgd29ya3MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuY3BwCShyZXZpc2lvbiAxODQzMzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FycmF5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA0LDcgKzQwNCw3IEBAIGJvb2wg
SlNBcnJheTo6c2V0TGVuZ3RoKEV4ZWNTdGF0ZSogZXhlYywKICAgICBjYXNlIEFycmF5V2l0aFVu
ZGVjaWRlZDoKICAgICBjYXNlIEFycmF5V2l0aEludDMyOgogICAgIGNhc2UgQXJyYXlXaXRoRG91
YmxlOgotICAgIGNhc2UgQXJyYXlXaXRoQ29udGlndW91czoKKyAgICBjYXNlIEFycmF5V2l0aENv
bnRpZ3VvdXM6IHsKICAgICAgICAgaWYgKG5ld0xlbmd0aCA9PSBtX2J1dHRlcmZseS0+cHVibGlj
TGVuZ3RoKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKG5ld0xlbmd0
aCA+PSBNQVhfQVJSQVlfSU5ERVggLy8gVGhpcyBjYXNlIGVuc3VyZXMgdGhhdCB3ZSBjYW4gZG8g
ZmFzdCBwdXNoLgpAQCAtNDE4LDYgKzQxOCwxNCBAQCBib29sIEpTQXJyYXk6OnNldExlbmd0aChF
eGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgICAgICBlbnN1cmVMZW5ndGgoZXhlYy0+dm0oKSwgbmV3
TGVuZ3RoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisKKyAgICAgICAg
dW5zaWduZWQgbGVuZ3RoVG9DbGVhciA9IG1fYnV0dGVyZmx5LT5wdWJsaWNMZW5ndGgoKSAtIG5l
d0xlbmd0aDsKKyAgICAgICAgdW5zaWduZWQgY29zdFRvQWxsb2NhdGVOZXdCdXR0ZXJmbHkgPSA2
NDsgLy8gYSBoZXVyaXN0aWMuCisgICAgICAgIGlmIChsZW5ndGhUb0NsZWFyID4gbmV3TGVuZ3Ro
ICYmIGxlbmd0aFRvQ2xlYXIgPiBjb3N0VG9BbGxvY2F0ZU5ld0J1dHRlcmZseSkgeworICAgICAg
ICAgICAgcmVhbGxvY2F0ZUFuZFNocmlua0J1dHRlcmZseShleGVjLT52bSgpLCBuZXdMZW5ndGgp
OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoaW5k
ZXhpbmdUeXBlKCkgPT0gQXJyYXlXaXRoRG91YmxlKSB7CiAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSBtX2J1dHRlcmZseS0+cHVibGljTGVuZ3RoKCk7IGktLSA+IG5ld0xlbmd0aDspCiAg
ICAgICAgICAgICAgICAgbV9idXR0ZXJmbHktPmNvbnRpZ3VvdXNEb3VibGUoKVtpXSA9IFBOYU47
CkBAIC00MjcsNiArNDM1LDcgQEAgYm9vbCBKU0FycmF5OjpzZXRMZW5ndGgoRXhlY1N0YXRlKiBl
eGVjLAogICAgICAgICB9CiAgICAgICAgIG1fYnV0dGVyZmx5LT5zZXRQdWJsaWNMZW5ndGgobmV3
TGVuZ3RoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogICAgICAgICAKICAgICBjYXNl
IEFycmF5V2l0aEFycmF5U3RvcmFnZToKICAgICBjYXNlIEFycmF5V2l0aFNsb3dQdXRBcnJheVN0
b3JhZ2U6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3Bw
CShyZXZpc2lvbiAxODQzMzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0NTcsNiArMjQ1NywyMSBAQCB2b2lkIEpTT2Jq
ZWN0OjplbnN1cmVMZW5ndGhTbG93KFZNJiB2bSwgCiAgICAgfQogfQogCit2b2lkIEpTT2JqZWN0
OjpyZWFsbG9jYXRlQW5kU2hyaW5rQnV0dGVyZmx5KFZNJiB2bSwgdW5zaWduZWQgbGVuZ3RoKQor
eworICAgIEFTU0VSVChsZW5ndGggPCBNQVhfQVJSQVlfSU5ERVgpOworICAgIEFTU0VSVChsZW5n
dGggPCBNQVhfU1RPUkFHRV9WRUNUT1JfTEVOR1RIKTsKKyAgICBBU1NFUlQoaGFzQ29udGlndW91
cyhpbmRleGluZ1R5cGUoKSkgfHwgaGFzSW50MzIoaW5kZXhpbmdUeXBlKCkpIHx8IGhhc0RvdWJs
ZShpbmRleGluZ1R5cGUoKSkgfHwgaGFzVW5kZWNpZGVkKGluZGV4aW5nVHlwZSgpKSk7CisgICAg
QVNTRVJUKG1fYnV0dGVyZmx5LT52ZWN0b3JMZW5ndGgoKSA+IGxlbmd0aCk7CisgICAgQVNTRVJU
KCFtX2J1dHRlcmZseS0+aW5kZXhpbmdIZWFkZXIoKS0+cHJlQ2FwYWNpdHkoc3RydWN0dXJlKCkp
KTsKKworICAgIERlZmVyR0MgZGVmZXJHQyh2bS5oZWFwKTsKKyAgICBCdXR0ZXJmbHkqIG5ld0J1
dHRlcmZseSA9IG1fYnV0dGVyZmx5LT5yZXNpemVBcnJheSh2bSwgdGhpcywgc3RydWN0dXJlKCks
IDAsIEFycmF5U3RvcmFnZTo6c2l6ZUZvcihsZW5ndGgpKTsKKyAgICBtX2J1dHRlcmZseS5zZXQo
dm0sIHRoaXMsIG5ld0J1dHRlcmZseSk7CisgICAgbV9idXR0ZXJmbHktPnNldFZlY3Rvckxlbmd0
aChsZW5ndGgpOworICAgIG1fYnV0dGVyZmx5LT5zZXRQdWJsaWNMZW5ndGgobGVuZ3RoKTsKK30K
KwogQnV0dGVyZmx5KiBKU09iamVjdDo6Z3Jvd091dE9mTGluZVN0b3JhZ2UoVk0mIHZtLCBzaXpl
X3Qgb2xkU2l6ZSwgc2l6ZV90IG5ld1NpemUpCiB7CiAgICAgQVNTRVJUKG5ld1NpemUgPiBvbGRT
aXplKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkocmV2
aXNpb24gMTg0MzMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtODI3LDYgKzgyNywxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
ICAgICBtX2J1dHRlcmZseS0+c2V0UHVibGljTGVuZ3RoKGxlbmd0aCk7CiAgICAgfQogICAgICAg
ICAKKyAgICAvLyBDYWxsIHRoaXMgaWYgeW91IHdhbnQgdG8gc2hyaW5rIHRoZSBidXR0ZXJmbHkg
YmFja2luZyBzdG9yZSwgYW5kIHlvdSdyZQorICAgIC8vIHN1cmUgdGhhdCB0aGUgYXJyYXkgaXMg
Y29udGlndW91cy4KKyAgICB2b2lkIHJlYWxsb2NhdGVBbmRTaHJpbmtCdXR0ZXJmbHkoVk0mLCB1
bnNpZ25lZCBsZW5ndGgpOworICAgIAogICAgIHRlbXBsYXRlPEluZGV4aW5nVHlwZSBpbmRleGlu
Z1NoYXBlPgogICAgIHVuc2lnbmVkIGNvdW50RWxlbWVudHMoQnV0dGVyZmx5Kik7CiAgICAgICAg
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vemlsbGEvanMxXzUvQXJyYXkv
cmVncmVzcy0xMDE5NjQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL21vemlsbGEvanMxXzUvQXJyYXkvcmVncmVzcy0xMDE5NjQuanMJKHJldmlzaW9uIDE4NDMz
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb3ppbGxhL2pzMV81L0FycmF5L3Jl
Z3Jlc3MtMTAxOTY0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIHZhciBidWcg
PSAxMDE5NjQ7CiB2YXIgc3VtbWFyeSA9ICdQZXJmb3JtYW5jZTogdHJ1bmNhdGluZyBldmVuIHZl
cnkgbGFyZ2UgYXJyYXlzIHNob3VsZCBiZSBmYXN0ISc7CiB2YXIgQklHID0gMTAwMDAwMDA7CiB2
YXIgTElUVExFID0gMTA7Ci12YXIgRkFTVCA9IDEwMDAwOyAvLyBUaGlzIHVzZWQgdG8gdGVzdCB0
aGF0IGFycmF5IHRydW5jYXRpb24gc2hvdWxkIGJlIDUwIG1zIG9yIGxlc3MuIFdlJ3ZlIGNoYW5n
ZWQgaXQgYmVjYXVzZSB3ZSBkb24ndCBjYXJlIGhvdyBsb25nIGl0IHRha2VzLiBXZSBqdXN0IHRy
eSB0byBtYWtlIHN1cmUgaXQgZG9lc24ndCB0YWtlICpyaWRpY3Vsb3VzbHkqIGxvbmcgYW5kIHdl
IHdhbnQgaXQgdG8gcnVuIHRvIGNvbXBsZXRpb24gY29ycmVjdGx5LgordmFyIEZBU1QgPSA1MDsg
Ly8gYXJyYXkgdHJ1bmNhdGlvbiBzaG91bGQgYmUgNTAgbXMgb3IgbGVzcyB0byBwYXNzIHRoZSB0
ZXN0CiB2YXIgTVNHX0ZBU1QgPSAnVHJ1bmNhdGlvbiB0b29rIGxlc3MgdGhhbiAnICsgRkFTVCAr
ICcgbXMnOwogdmFyIE1TR19TTE9XID0gJ1RydW5jYXRpb24gdG9vayAnOwogdmFyIE1TR19NUyA9
ICcgbXMnOwo=
</data>
<flag name="review"
          id="278048"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>