<?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>175041</bug_id>
          
          <creation_ts>2017-08-01 12:14:51 -0700</creation_ts>
          <short_desc>On memory-constrained iOS devices, reduce the rate at which the JS heap grows before a GC to try to keep more memory available for the system</short_desc>
          <delta_ts>2018-07-13 11:42:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>175276</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1333887</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-01 12:14:51 -0700</bug_when>
    <thetext>patch forthcoming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333888</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-01 12:15:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/33659370&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333905</commentid>
    <comment_count>2</comment_count>
      <attachid>316883</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-01 12:36:19 -0700</bug_when>
    <thetext>Created attachment 316883
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333906</commentid>
    <comment_count>3</comment_count>
      <attachid>316883</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-01 12:37:02 -0700</bug_when>
    <thetext>Comment on attachment 316883
patch

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

&gt; Source/JavaScriptCore/heap/Heap.cpp:146
&gt; +        double memoryUsed = bmalloc::api::percentAvailableMemoryInUse();
&gt; +        double result = ((1 - memoryUsed) / 3.5) + 1;
&gt; +        return heapSize * std::max(std::min(result, 2.0), 1.06);

Can we put these constants in Options?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333907</commentid>
    <comment_count>4</comment_count>
      <attachid>316883</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-01 12:37:14 -0700</bug_when>
    <thetext>Comment on attachment 316883
patch

r=me with Options</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333917</commentid>
    <comment_count>5</comment_count>
      <attachid>316886</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-01 13:03:57 -0700</bug_when>
    <thetext>Created attachment 316886
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333919</commentid>
    <comment_count>6</comment_count>
      <attachid>316886</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-01 13:09:09 -0700</bug_when>
    <thetext>Comment on attachment 316886
patch for landing

seems good to me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334115</commentid>
    <comment_count>7</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-01 20:36:04 -0700</bug_when>
    <thetext>I&apos;m holding off on landing this because I think I&apos;m going to make it just apply to all devices with &lt;= 1GB RAM on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334144</commentid>
    <comment_count>8</comment_count>
      <attachid>316937</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-01 23:57:56 -0700</bug_when>
    <thetext>Created attachment 316937
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334153</commentid>
    <comment_count>9</comment_count>
      <attachid>316943</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-02 00:20:33 -0700</bug_when>
    <thetext>Created attachment 316943
patch for landing

fixed changelog to reflect the new heuristic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334227</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-08-02 08:45:41 -0700</bug_when>
    <thetext>Can we retitle this something like &quot;On memory-contained iOS devices, reduce the rate at which the JS heap grows to keep more memory available for the system&quot; or something? Please re-word to make it accurate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334257</commentid>
    <comment_count>11</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-02 09:59:22 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #10)
&gt; Can we retitle this something like &quot;On memory-contained iOS devices, reduce
&gt; the rate at which the JS heap grows to keep more memory available for the
&gt; system&quot; or something? Please re-word to make it accurate.

This wording SGTM. I’ll change and land once I’m in front of a computer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334296</commentid>
    <comment_count>12</comment_count>
      <attachid>316943</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-02 10:57:08 -0700</bug_when>
    <thetext>Comment on attachment 316943
patch for landing

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

&gt; Source/JavaScriptCore/heap/Heap.cpp:121
&gt; +static bool useAggressiveHeapTrigger()

If I understand the code correctly, the use of proportionalHeapSize() is for determining max heap size, and therefore, it determines when to trigger a GC.  I suggest renaming this function to useAggressiveGCTrigger.

&gt; Source/JavaScriptCore/runtime/Options.h:216
&gt; +    v(bool, forceAggressiveHeapTrigger, false, Normal, &quot;If true, on iOS, we will use a different formula for proportionalHeapSize().&quot;) \
&gt; +    v(double, aggressiveHeapTriggerMinumumMultiplier, 1.07, Normal, &quot;This is the minimum we must grow by for proportionalHeapSize() when doing aggressive triggering.&quot;) \
&gt; +    v(double, aggressiveHeapTriggerMaximumMultiplier, 2.0, Normal,  &quot;This is the maximum we can grow by for proportionalHeapSize() when doing aggressive triggering.&quot;) \
&gt; +    v(double, aggressiveHeapTriggerScalingValue, 3.5, Normal, &quot;This scales the above formula. A larger number is more aggressive in limiting heap growth. A smaller number is more permissive in allowing heap growth.&quot;) \

I suggest renaming these options as follows:
forceAggressiveHeapTrigger =&gt; forceAggressiveGCTrigger
aggressiveHeapTriggerMinumumMultiplier =&gt; aggressiveGCTriggerMinMultiplier
aggressiveHeapTriggerMaximumMultiplier =&gt; aggressiveGCTriggerMaxMultiplier
aggressiveHeapTriggerScalingValue =&gt; aggressiveGCTriggerScalingValue

Min and max are so commonly use that anyone reading this code should understand them.  It&apos;d be nice to have shorted options names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334299</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-02 10:58:52 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #12)
&gt; It&apos;d be nice to have shorted options names.

*shorter*.  Can&apos;t type today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334313</commentid>
    <comment_count>14</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-02 11:16:05 -0700</bug_when>
    <thetext>landed in:
https://trac.webkit.org/changeset/220144/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336058</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-07 11:38:56 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 175276</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337130</commentid>
    <comment_count>16</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-09 14:25:52 -0700</bug_when>
    <thetext>wont fix this, it didn&apos;t actually help perf.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441937</commentid>
    <comment_count>17</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-13 11:42:41 -0700</bug_when>
    <thetext>It actually looks like this might be a good idea. It turned out it was a memory improvement and a JetStream speedup.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316883</attachid>
            <date>2017-08-01 12:36:19 -0700</date>
            <delta_ts>2017-08-01 13:03:57 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>2555</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwMTA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDE3LTA4LTAxICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEhhdmUgYSBkaWZmZXJlbnQgbWF0aGVtYXRpY2FsIGZ1bmN0aW9uIGZvciBwcm9wb3J0aW9uYWxI
ZWFwU2l6ZSBvbiBtZW1vcnkgbGltaXRlZCBpT1MgZGV2aWNlIHRoYXQgaXMgbW9yZSBhZ2dyZXNz
aXZlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUw
NDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzNjU5MzcwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0ZXN0aW5nIEkgaGF2ZSBkb25lIG9u
IGlQaG9uZTcsMSBzaG93cyB0aGlzIGlzIGFib3V0IGEgMTAlIHNwZWVkdXAKKyAgICAgICAgb24g
SmV0U3RyZWFtLiBJIG1pZ2h0IG9wdCBvdGhlciBoYXJkd2FyZSBpbnRvIHRoaXMsIGJ1dCBJJ2xs
IGZpcnN0IHByb3ZlCisgICAgICAgIHRoZXkgYWxzbyBiZW5lZml0LgorCisgICAgICAgICogaGVh
cC9IZWFwLmNwcDoKKwogMjAxNy0wNy0zMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkZWQgc29tZSBVTkxJS0VMWXMgdG8gb3BlcmF0aW9uT3B0aW1pemUoKS4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAyMjAxMDgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzEsNiArNzEsNyBAQAogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpZiBQTEFURk9STShJT1MpCiAj
aW5jbHVkZSA8Ym1hbGxvYy9ibWFsbG9jLmg+CisjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgogI2Vu
ZGlmCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1w
Lmg+CkBAIC0xMTYsOSArMTE3LDM1IEBAIHNpemVfdCBtaW5IZWFwU2l6ZShIZWFwVHlwZSBoZWFw
VHlwZSwgc2kKICAgICByZXR1cm4gT3B0aW9uczo6c21hbGxIZWFwU2l6ZSgpOwogfQogCisjaWYg
UExBVEZPUk0oSU9TKQorc3RhdGljIGJvb2wgaXNJcGhvbmVTZXZlbk9uZSgpCit7CisgICAgc3Rh
dGljIGJvb2wgaXNJcGhvbmVTZXZlbkNvbW1hT25lOworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBvbmNlOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKKyAgICAgICAgaXNJcGhvbmVT
ZXZlbkNvbW1hT25lID0gZmFsc2U7CisgICAgICAgIHNpemVfdCBzaXplOyAvLyBJbmNsdWRlcyBu
dWxsIHRlcm1pbmF0b3IuCisgICAgICAgIGlmIChzeXNjdGxieW5hbWUoImh3Lm1hY2hpbmUiLCBu
dWxscHRyLCAmc2l6ZSwgbnVsbHB0ciwgMCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IGNoYXIqIG1hY2hpbmVOYW1lID0gc3RhdGljX2Nhc3Q8Y2hhcio+KGZhc3RNYWxsb2Moc2l6ZSAq
IHNpemVvZihjaGFyKSkpOworICAgICAgICBpZiAoc3lzY3RsYnluYW1lKCJody5tYWNoaW5lIiwg
bWFjaGluZU5hbWUsICZzaXplLCBudWxscHRyLCAwKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgaXNJcGhvbmVTZXZlbkNvbW1hT25lID0gIXN0cm5jbXAoImlQaG9uZTcsMSIsIG1hY2hp
bmVOYW1lLCBzaXplKTsKKyAgICAgICAgZmFzdEZyZWUobWFjaGluZU5hbWUpOworICAgIH0pOwor
ICAgIHJldHVybiBpc0lwaG9uZVNldmVuQ29tbWFPbmU7Cit9CisjZW5kaWYKKwogc2l6ZV90IHBy
b3BvcnRpb25hbEhlYXBTaXplKHNpemVfdCBoZWFwU2l6ZSwgc2l6ZV90IHJhbVNpemUpCiB7CiAj
aWYgUExBVEZPUk0oSU9TKQorICAgIGlmIChpc0lwaG9uZVNldmVuT25lKCkpIHsKKyAgICAgICAg
ZG91YmxlIG1lbW9yeVVzZWQgPSBibWFsbG9jOjphcGk6OnBlcmNlbnRBdmFpbGFibGVNZW1vcnlJ
blVzZSgpOworICAgICAgICBkb3VibGUgcmVzdWx0ID0gKCgxIC0gbWVtb3J5VXNlZCkgLyAzLjUp
ICsgMTsKKyAgICAgICAgcmV0dXJuIGhlYXBTaXplICogc3RkOjptYXgoc3RkOjptaW4ocmVzdWx0
LCAyLjApLCAxLjA2KTsKKyAgICB9CisKICAgICBzaXplX3QgbWVtb3J5Rm9vdHByaW50ID0gYm1h
bGxvYzo6YXBpOjptZW1vcnlGb290cHJpbnQoKTsKICAgICBpZiAobWVtb3J5Rm9vdHByaW50IDwg
cmFtU2l6ZSAqIE9wdGlvbnM6OnNtYWxsSGVhcFJBTUZyYWN0aW9uKCkpCiAgICAgICAgIHJldHVy
biBPcHRpb25zOjpzbWFsbEhlYXBHcm93dGhGYWN0b3IoKSAqIGhlYXBTaXplOwo=
</data>
<flag name="review"
          id="337497"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316886</attachid>
            <date>2017-08-01 13:03:57 -0700</date>
            <delta_ts>2017-08-01 23:57:56 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>4465</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwMTA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDE3LTA4LTAxICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEhhdmUgYSBkaWZmZXJlbnQgbWF0aGVtYXRpY2FsIGZ1bmN0aW9uIGZvciBwcm9wb3J0aW9uYWxI
ZWFwU2l6ZSBvbiBtZW1vcnkgbGltaXRlZCBpT1MgZGV2aWNlIHRoYXQgaXMgbW9yZSBhZ2dyZXNz
aXZlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUw
NDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzNjU5MzcwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEZpbGlwIFBpemxvLgorCisgICAgICAgIFRoZSB0ZXN0aW5nIEkgaGF2ZSBkb25lIG9uIGlQ
aG9uZTcsMSBzaG93cyB0aGlzIGlzIGFib3V0IGEgMTAlIHNwZWVkdXAKKyAgICAgICAgb24gSmV0
U3RyZWFtLiBJIG1pZ2h0IG9wdCBvdGhlciBoYXJkd2FyZSBpbnRvIHRoaXMsIGJ1dCBJJ2xsIGZp
cnN0IHByb3ZlCisgICAgICAgIHRoZXkgYWxzbyBiZW5lZml0LiBJIHdyb3RlIHRoZSBjb2RlIGlu
IGEgZ2VuZXJhbCB3YXkgc28gd2UgY2FuIHR3ZWFrCisgICAgICAgIHBhcmFtZXRlcnMgYmFzZWQg
b24gaGFyZHdhcmUgZGV0YWlscyBpZiB3ZSBmaW5kIHRoYXQgaXQgaXMgcHJvZml0YWJsZS4KKwor
ICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisKIDIwMTctMDctMzEgIE1hcmsgTGFtICA8bWFyay5s
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIHNvbWUgVU5MSUtFTFlzIHRvIG9wZXJhdGlv
bk9wdGltaXplKCkuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNp
b24gMjIwMTA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTcxLDYgKzcxLDcgQEAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaWYgUExB
VEZPUk0oSU9TKQogI2luY2x1ZGUgPGJtYWxsb2MvYm1hbGxvYy5oPgorI2luY2x1ZGUgPHN5cy9z
eXNjdGwuaD4KICNlbmRpZgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUg
PHd0Zi9MaXN0RHVtcC5oPgpAQCAtMTE2LDkgKzExNyw0MCBAQCBzaXplX3QgbWluSGVhcFNpemUo
SGVhcFR5cGUgaGVhcFR5cGUsIHNpCiAgICAgcmV0dXJuIE9wdGlvbnM6OnNtYWxsSGVhcFNpemUo
KTsKIH0KIAorI2lmIFBMQVRGT1JNKElPUykKK3N0YXRpYyBib29sIGZvcmNlQWdncmVzc2l2ZUhl
YXBUcmlnZ2VyKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBmb3JjZUFnZ3Jlc3NpdmVIZWFwVHJpZ2dl
cjsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAgICBzdGQ6OmNhbGxfb25jZShv
bmNlLCBbXSB7CisgICAgICAgIGlmIChPcHRpb25zOjpmb3JjZUFnZ3Jlc3NpdmVIZWFwVHJpZ2dl
cigpKSB7CisgICAgICAgICAgICBmb3JjZUFnZ3Jlc3NpdmVIZWFwVHJpZ2dlciA9IHRydWU7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBmb3JjZUFnZ3Jlc3NpdmVI
ZWFwVHJpZ2dlciA9IGZhbHNlOworICAgICAgICBzaXplX3Qgc2l6ZTsgLy8gSW5jbHVkZXMgbnVs
bCB0ZXJtaW5hdG9yLgorICAgICAgICBpZiAoc3lzY3RsYnluYW1lKCJody5tYWNoaW5lIiwgbnVs
bHB0ciwgJnNpemUsIG51bGxwdHIsIDApKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBj
aGFyKiBtYWNoaW5lTmFtZSA9IHN0YXRpY19jYXN0PGNoYXIqPihmYXN0TWFsbG9jKHNpemUgKiBz
aXplb2YoY2hhcikpKTsKKyAgICAgICAgaWYgKHN5c2N0bGJ5bmFtZSgiaHcubWFjaGluZSIsIG1h
Y2hpbmVOYW1lLCAmc2l6ZSwgbnVsbHB0ciwgMCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIGZvcmNlQWdncmVzc2l2ZUhlYXBUcmlnZ2VyID0gIXN0cm5jbXAoImlQaG9uZTcsMSIsIG1h
Y2hpbmVOYW1lLCBzaXplKTsKKyAgICAgICAgZmFzdEZyZWUobWFjaGluZU5hbWUpOworICAgIH0p
OworICAgIHJldHVybiBmb3JjZUFnZ3Jlc3NpdmVIZWFwVHJpZ2dlcjsKK30KKyNlbmRpZgorCiBz
aXplX3QgcHJvcG9ydGlvbmFsSGVhcFNpemUoc2l6ZV90IGhlYXBTaXplLCBzaXplX3QgcmFtU2l6
ZSkKIHsKICNpZiBQTEFURk9STShJT1MpCisgICAgaWYgKGZvcmNlQWdncmVzc2l2ZUhlYXBUcmln
Z2VyKCkpIHsKKyAgICAgICAgZG91YmxlIG1lbW9yeVVzZWQgPSBibWFsbG9jOjphcGk6OnBlcmNl
bnRBdmFpbGFibGVNZW1vcnlJblVzZSgpOworICAgICAgICBkb3VibGUgcmVzdWx0ID0gKCgxIC0g
bWVtb3J5VXNlZCkgLyBPcHRpb25zOjphZ2dyZXNzaXZlSGVhcFRyaWdnZXJTY2FsaW5nVmFsdWUo
KSkgKyAxOworICAgICAgICByZXR1cm4gaGVhcFNpemUgKiBzdGQ6Om1heChzdGQ6Om1pbihyZXN1
bHQsIE9wdGlvbnM6OmFnZ3Jlc3NpdmVIZWFwVHJpZ2dlck1heGltdW1NdWx0aXBsaWVyKCkpLCBP
cHRpb25zOjphZ2dyZXNzaXZlSGVhcFRyaWdnZXJNaW51bXVtTXVsdGlwbGllcigpKTsKKyAgICB9
CisKICAgICBzaXplX3QgbWVtb3J5Rm9vdHByaW50ID0gYm1hbGxvYzo6YXBpOjptZW1vcnlGb290
cHJpbnQoKTsKICAgICBpZiAobWVtb3J5Rm9vdHByaW50IDwgcmFtU2l6ZSAqIE9wdGlvbnM6OnNt
YWxsSGVhcFJBTUZyYWN0aW9uKCkpCiAgICAgICAgIHJldHVybiBPcHRpb25zOjpzbWFsbEhlYXBH
cm93dGhGYWN0b3IoKSAqIGhlYXBTaXplOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMjIwMTA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAsNiArMjEwLDEwIEBAIHR5
cGVkZWYgY29uc3QgY2hhciogb3B0aW9uU3RyaW5nOwogICAgIHYoZG91YmxlLCBtZWRpdW1IZWFw
UkFNRnJhY3Rpb24sIDAuNSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihkb3VibGUsIG1lZGl1
bUhlYXBHcm93dGhGYWN0b3IsIDEuNSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihkb3VibGUs
IGxhcmdlSGVhcEdyb3d0aEZhY3RvciwgMS4yNCwgTm9ybWFsLCBudWxscHRyKSBcCisgICAgdihi
b29sLCBmb3JjZUFnZ3Jlc3NpdmVIZWFwVHJpZ2dlciwgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUs
IG9uIGlPUywgd2Ugd2lsbCB1c2UgYSBkaWZmZXJlbnQgZm9ybXVsYSBmb3IgcHJvcG9ydGlvbmFs
SGVhcFNpemUoKS4iKSBcCisgICAgdihkb3VibGUsIGFnZ3Jlc3NpdmVIZWFwVHJpZ2dlck1pbnVt
dW1NdWx0aXBsaWVyLCAxLjA2LCBOb3JtYWwsICJUaGlzIGlzIHRoZSBtaW5pbXVtIHdlIG11c3Qg
Z3JvdyBieSBmb3IgcHJvcG9ydGlvbmFsSGVhcFNpemUoKSB3aGVuIGRvaW5nIGFnZ3Jlc3NpdmUg
dHJpZ2dlcmluZy4iKSBcCisgICAgdihkb3VibGUsIGFnZ3Jlc3NpdmVIZWFwVHJpZ2dlck1heGlt
dW1NdWx0aXBsaWVyLCAyLjAsIE5vcm1hbCwgICJUaGlzIGlzIHRoZSBtYXhpbXVtIGNhbiBncm93
IGJ5IGZvciBwcm9wb3J0aW9uYWxIZWFwU2l6ZSgpIHdoZW4gZG9pbmcgYWdncmVzc2l2ZSB0cmln
Z2VyaW5nLiIpIFwKKyAgICB2KGRvdWJsZSwgYWdncmVzc2l2ZUhlYXBUcmlnZ2VyU2NhbGluZ1Zh
bHVlLCAzLjUsIE5vcm1hbCwgIlRoaXMgc2NhbGVzIHRoZSBhYm92ZSBmb3JtdWxhLiBBIGxhcmdl
ciBudW1iZXIgaXMgbW9yZSBhZ2dyZXNzaXZlIGluIGxpbWl0aW5nIGhlYXAgZ3Jvd3RoLiBBIHNt
YWxsZXIgbnVtYmVyIGlzIG1vcmUgcGVybWlzc2l2ZSBpbiBhbGxvd2luZyBoZWFwIGdyb3d0aC4i
KSBcCiAgICAgdihkb3VibGUsIGNyaXRpY2FsR0NNZW1vcnlUaHJlc2hvbGQsIDAuODAsIE5vcm1h
bCwgInBlcmNlbnQgbWVtb3J5IGluIHVzZSB0aGUgR0MgY29uc2lkZXJzIGNyaXRpY2FsLiAgVGhl
IGNvbGxlY3RvciBpcyBtdWNoIG1vcmUgYWdncmVzc2l2ZSBhYm92ZSB0aGlzIHRocmVzaG9sZCIp
IFwKICAgICB2KGRvdWJsZSwgbWluaW11bU11dGF0b3JVdGlsaXphdGlvbiwgMCwgTm9ybWFsLCBu
dWxscHRyKSBcCiAgICAgdihkb3VibGUsIG1heGltdW1NdXRhdG9yVXRpbGl6YXRpb24sIDAuNywg
Tm9ybWFsLCBudWxscHRyKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316937</attachid>
            <date>2017-08-01 23:57:56 -0700</date>
            <delta_ts>2017-08-02 00:20:33 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>4290</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwMTA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDE3LTA4LTAxICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEhhdmUgYSBkaWZmZXJlbnQgbWF0aGVtYXRpY2FsIGZ1bmN0aW9uIGZvciBwcm9wb3J0aW9uYWxI
ZWFwU2l6ZSBvbiBtZW1vcnkgbGltaXRlZCBpT1MgZGV2aWNlIHRoYXQgaXMgbW9yZSBhZ2dyZXNz
aXZlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUw
NDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzNjU5MzcwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEZpbGlwIFBpemxvLgorCisgICAgICAgIFRoZSB0ZXN0aW5nIEkgaGF2ZSBkb25lIG9uIGlQ
aG9uZTcsMSBzaG93cyB0aGlzIGlzIGFib3V0IGEgMTAlIHNwZWVkdXAKKyAgICAgICAgb24gSmV0
U3RyZWFtLiBJIG1pZ2h0IG9wdCBvdGhlciBoYXJkd2FyZSBpbnRvIHRoaXMsIGJ1dCBJJ2xsIGZp
cnN0IHByb3ZlCisgICAgICAgIHRoZXkgYWxzbyBiZW5lZml0LiBJIHdyb3RlIHRoZSBjb2RlIGlu
IGEgZ2VuZXJhbCB3YXkgc28gd2UgY2FuIHR3ZWFrCisgICAgICAgIHBhcmFtZXRlcnMgYmFzZWQg
b24gaGFyZHdhcmUgZGV0YWlscyBpZiB3ZSBmaW5kIHRoYXQgaXQgaXMgcHJvZml0YWJsZS4KKwor
ICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisKIDIwMTctMDctMzEgIE1hcmsgTGFtICA8bWFyay5s
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIHNvbWUgVU5MSUtFTFlzIHRvIG9wZXJhdGlv
bk9wdGltaXplKCkuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNp
b24gMjIwMTA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTcxLDYgKzcxLDcgQEAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaWYgUExB
VEZPUk0oSU9TKQogI2luY2x1ZGUgPGJtYWxsb2MvYm1hbGxvYy5oPgorI2luY2x1ZGUgPHN5cy9z
eXNjdGwuaD4KICNlbmRpZgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUg
PHd0Zi9MaXN0RHVtcC5oPgpAQCAtMTE2LDkgKzExNywzOSBAQCBzaXplX3QgbWluSGVhcFNpemUo
SGVhcFR5cGUgaGVhcFR5cGUsIHNpCiAgICAgcmV0dXJuIE9wdGlvbnM6OnNtYWxsSGVhcFNpemUo
KTsKIH0KIAorI2lmIFBMQVRGT1JNKElPUykKK3N0YXRpYyBib29sIHVzZUFnZ3Jlc3NpdmVIZWFw
VHJpZ2dlcigpCit7CisgICAgc3RhdGljIGJvb2wgdXNlQWdncmVzc2l2ZUhlYXBUcmlnZ2VyOwor
ICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2Us
IFtdIHsKKyAgICAgICAgdXNlQWdncmVzc2l2ZUhlYXBUcmlnZ2VyID0gZmFsc2U7CisKKyAgICAg
ICAgaWYgKE9wdGlvbnM6OmZvcmNlQWdncmVzc2l2ZUhlYXBUcmlnZ2VyKCkpIHsKKyAgICAgICAg
ICAgIHVzZUFnZ3Jlc3NpdmVIZWFwVHJpZ2dlciA9IHRydWU7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICB1aW50NjRfdCBtZW1TaXplSW5CeXRlczsKKyAgICAgICAg
c2l6ZV90IHNpemVvZk1lbVNpemUgPSBzaXplb2YobWVtU2l6ZUluQnl0ZXMpOworICAgICAgICBp
ZiAoc3lzY3RsYnluYW1lKCJody5tZW1zaXplIiwgJm1lbVNpemVJbkJ5dGVzLCAmc2l6ZW9mTWVt
U2l6ZSwgbnVsbHB0ciwgMCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHVzZUFnZ3Jl
c3NpdmVIZWFwVHJpZ2dlciA9IG1lbVNpemVJbkJ5dGVzIDw9IDEgKiBHQjsKKyAgICB9KTsKKwor
ICAgIHJldHVybiB1c2VBZ2dyZXNzaXZlSGVhcFRyaWdnZXI7Cit9CisjZW5kaWYKKwogc2l6ZV90
IHByb3BvcnRpb25hbEhlYXBTaXplKHNpemVfdCBoZWFwU2l6ZSwgc2l6ZV90IHJhbVNpemUpCiB7
CiAjaWYgUExBVEZPUk0oSU9TKQorICAgIGlmICh1c2VBZ2dyZXNzaXZlSGVhcFRyaWdnZXIoKSkg
eworICAgICAgICBkb3VibGUgbWVtb3J5VXNlZCA9IGJtYWxsb2M6OmFwaTo6cGVyY2VudEF2YWls
YWJsZU1lbW9yeUluVXNlKCk7CisgICAgICAgIGRvdWJsZSByZXN1bHQgPSAoKDEgLSBtZW1vcnlV
c2VkKSAvIE9wdGlvbnM6OmFnZ3Jlc3NpdmVIZWFwVHJpZ2dlclNjYWxpbmdWYWx1ZSgpKSArIDE7
CisgICAgICAgIHJldHVybiBoZWFwU2l6ZSAqIHN0ZDo6bWF4KHN0ZDo6bWluKHJlc3VsdCwgT3B0
aW9uczo6YWdncmVzc2l2ZUhlYXBUcmlnZ2VyTWF4aW11bU11bHRpcGxpZXIoKSksIE9wdGlvbnM6
OmFnZ3Jlc3NpdmVIZWFwVHJpZ2dlck1pbnVtdW1NdWx0aXBsaWVyKCkpOworICAgIH0KKwogICAg
IHNpemVfdCBtZW1vcnlGb290cHJpbnQgPSBibWFsbG9jOjphcGk6Om1lbW9yeUZvb3RwcmludCgp
OwogICAgIGlmIChtZW1vcnlGb290cHJpbnQgPCByYW1TaXplICogT3B0aW9uczo6c21hbGxIZWFw
UkFNRnJhY3Rpb24oKSkKICAgICAgICAgcmV0dXJuIE9wdGlvbnM6OnNtYWxsSGVhcEdyb3d0aEZh
Y3RvcigpICogaGVhcFNpemU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5oCShyZXZpc2lvbiAyMjAxMDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMCw2ICsyMTAsMTAgQEAgdHlwZWRlZiBj
b25zdCBjaGFyKiBvcHRpb25TdHJpbmc7CiAgICAgdihkb3VibGUsIG1lZGl1bUhlYXBSQU1GcmFj
dGlvbiwgMC41LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGRvdWJsZSwgbWVkaXVtSGVhcEdy
b3d0aEZhY3RvciwgMS41LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGRvdWJsZSwgbGFyZ2VI
ZWFwR3Jvd3RoRmFjdG9yLCAxLjI0LCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KGJvb2wsIGZv
cmNlQWdncmVzc2l2ZUhlYXBUcmlnZ2VyLCBmYWxzZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgb24gaU9T
LCB3ZSB3aWxsIHVzZSBhIGRpZmZlcmVudCBmb3JtdWxhIGZvciBwcm9wb3J0aW9uYWxIZWFwU2l6
ZSgpLiIpIFwKKyAgICB2KGRvdWJsZSwgYWdncmVzc2l2ZUhlYXBUcmlnZ2VyTWludW11bU11bHRp
cGxpZXIsIDEuMDcsIE5vcm1hbCwgIlRoaXMgaXMgdGhlIG1pbmltdW0gd2UgbXVzdCBncm93IGJ5
IGZvciBwcm9wb3J0aW9uYWxIZWFwU2l6ZSgpIHdoZW4gZG9pbmcgYWdncmVzc2l2ZSB0cmlnZ2Vy
aW5nLiIpIFwKKyAgICB2KGRvdWJsZSwgYWdncmVzc2l2ZUhlYXBUcmlnZ2VyTWF4aW11bU11bHRp
cGxpZXIsIDIuMCwgTm9ybWFsLCAgIlRoaXMgaXMgdGhlIG1heGltdW0gd2UgY2FuIGdyb3cgYnkg
Zm9yIHByb3BvcnRpb25hbEhlYXBTaXplKCkgd2hlbiBkb2luZyBhZ2dyZXNzaXZlIHRyaWdnZXJp
bmcuIikgXAorICAgIHYoZG91YmxlLCBhZ2dyZXNzaXZlSGVhcFRyaWdnZXJTY2FsaW5nVmFsdWUs
IDMuNSwgTm9ybWFsLCAiVGhpcyBzY2FsZXMgdGhlIGFib3ZlIGZvcm11bGEuIEEgbGFyZ2VyIG51
bWJlciBpcyBtb3JlIGFnZ3Jlc3NpdmUgaW4gbGltaXRpbmcgaGVhcCBncm93dGguIEEgc21hbGxl
ciBudW1iZXIgaXMgbW9yZSBwZXJtaXNzaXZlIGluIGFsbG93aW5nIGhlYXAgZ3Jvd3RoLiIpIFwK
ICAgICB2KGRvdWJsZSwgY3JpdGljYWxHQ01lbW9yeVRocmVzaG9sZCwgMC44MCwgTm9ybWFsLCAi
cGVyY2VudCBtZW1vcnkgaW4gdXNlIHRoZSBHQyBjb25zaWRlcnMgY3JpdGljYWwuICBUaGUgY29s
bGVjdG9yIGlzIG11Y2ggbW9yZSBhZ2dyZXNzaXZlIGFib3ZlIHRoaXMgdGhyZXNob2xkIikgXAog
ICAgIHYoZG91YmxlLCBtaW5pbXVtTXV0YXRvclV0aWxpemF0aW9uLCAwLCBOb3JtYWwsIG51bGxw
dHIpIFwKICAgICB2KGRvdWJsZSwgbWF4aW11bU11dGF0b3JVdGlsaXphdGlvbiwgMC43LCBOb3Jt
YWwsIG51bGxwdHIpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316943</attachid>
            <date>2017-08-02 00:20:33 -0700</date>
            <delta_ts>2017-08-02 00:20:33 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>4455</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwMTA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE3LTA4LTAxICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEhhdmUgYSBkaWZmZXJlbnQgbWF0aGVtYXRpY2FsIGZ1bmN0aW9uIGZvciBwcm9wb3J0aW9uYWxI
ZWFwU2l6ZSBvbiBtZW1vcnkgbGltaXRlZCBpT1MgZGV2aWNlIHRoYXQgaXMgbW9yZSBhZ2dyZXNz
aXZlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUw
NDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzNjU5MzcwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEZpbGlwIFBpemxvLgorCisgICAgICAgIFRoZSB0ZXN0aW5nIEkgaGF2ZSBkb25lIHNob3dz
IHRoYXQgdGhpcyBuZXcgZnVuY3Rpb24gaXMgYSB+MTAlCisgICAgICAgIHByb2dyZXNzaW9uIHJ1
bm5pbmcgSmV0U3RyZWFtIG9uIDFHQiBpT1MgZGV2aWNlcy4gSSd2ZSBhbHNvIHRyaWVkCisgICAg
ICAgIHRoaXMgb24gYSBmZXcgPiAxR0IgaU9TIGRldmljZXMsIGFuZCB0aGUgdGVzdGluZyBzaG93
cyB0aGlzIGlzIGVpdGhlciBuZXV0cmFsCisgICAgICAgIG9yIGEgcmVncmVzc2lvbi4gUmlnaHQg
bm93LCB3ZSdsbCBqdXN0IGVuYWJsZSB0aGlzIGZvciA8PSAxR0IgZGV2aWNlcworICAgICAgICBz
aW5jZSBpdCdzIGEgd2luLiBJbiB0aGUgZnV0dXJlLCB3ZSBtaWdodCB3YW50IHRvIGVpdGhlciBs
b29rIGludG8KKyAgICAgICAgdHdlYWtpbmcgdGhlc2UgcGFyYW1ldGVycyBvciBjb21pbmcgdXAg
d2l0aCBhIG5ldyBmdW5jdGlvbiBmb3IgPiAxR0IKKyAgICAgICAgZGV2aWNlcy4KKworICAgICAg
ICAqIGhlYXAvSGVhcC5jcHA6CisKIDIwMTctMDctMzEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZGVkIHNvbWUgVU5MSUtFTFlzIHRvIG9wZXJhdGlvbk9wdGlt
aXplKCkuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMjIw
MTA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTcxLDYgKzcxLDcgQEAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaWYgUExBVEZPUk0o
SU9TKQogI2luY2x1ZGUgPGJtYWxsb2MvYm1hbGxvYy5oPgorI2luY2x1ZGUgPHN5cy9zeXNjdGwu
aD4KICNlbmRpZgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9M
aXN0RHVtcC5oPgpAQCAtMTE2LDkgKzExNywzOSBAQCBzaXplX3QgbWluSGVhcFNpemUoSGVhcFR5
cGUgaGVhcFR5cGUsIHNpCiAgICAgcmV0dXJuIE9wdGlvbnM6OnNtYWxsSGVhcFNpemUoKTsKIH0K
IAorI2lmIFBMQVRGT1JNKElPUykKK3N0YXRpYyBib29sIHVzZUFnZ3Jlc3NpdmVIZWFwVHJpZ2dl
cigpCit7CisgICAgc3RhdGljIGJvb2wgdXNlQWdncmVzc2l2ZUhlYXBUcmlnZ2VyOworICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsK
KyAgICAgICAgdXNlQWdncmVzc2l2ZUhlYXBUcmlnZ2VyID0gZmFsc2U7CisKKyAgICAgICAgaWYg
KE9wdGlvbnM6OmZvcmNlQWdncmVzc2l2ZUhlYXBUcmlnZ2VyKCkpIHsKKyAgICAgICAgICAgIHVz
ZUFnZ3Jlc3NpdmVIZWFwVHJpZ2dlciA9IHRydWU7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICB1aW50NjRfdCBtZW1TaXplSW5CeXRlczsKKyAgICAgICAgc2l6ZV90
IHNpemVvZk1lbVNpemUgPSBzaXplb2YobWVtU2l6ZUluQnl0ZXMpOworICAgICAgICBpZiAoc3lz
Y3RsYnluYW1lKCJody5tZW1zaXplIiwgJm1lbVNpemVJbkJ5dGVzLCAmc2l6ZW9mTWVtU2l6ZSwg
bnVsbHB0ciwgMCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHVzZUFnZ3Jlc3NpdmVI
ZWFwVHJpZ2dlciA9IG1lbVNpemVJbkJ5dGVzIDw9IDEgKiBHQjsKKyAgICB9KTsKKworICAgIHJl
dHVybiB1c2VBZ2dyZXNzaXZlSGVhcFRyaWdnZXI7Cit9CisjZW5kaWYKKwogc2l6ZV90IHByb3Bv
cnRpb25hbEhlYXBTaXplKHNpemVfdCBoZWFwU2l6ZSwgc2l6ZV90IHJhbVNpemUpCiB7CiAjaWYg
UExBVEZPUk0oSU9TKQorICAgIGlmICh1c2VBZ2dyZXNzaXZlSGVhcFRyaWdnZXIoKSkgeworICAg
ICAgICBkb3VibGUgbWVtb3J5VXNlZCA9IGJtYWxsb2M6OmFwaTo6cGVyY2VudEF2YWlsYWJsZU1l
bW9yeUluVXNlKCk7CisgICAgICAgIGRvdWJsZSByZXN1bHQgPSAoKDEgLSBtZW1vcnlVc2VkKSAv
IE9wdGlvbnM6OmFnZ3Jlc3NpdmVIZWFwVHJpZ2dlclNjYWxpbmdWYWx1ZSgpKSArIDE7CisgICAg
ICAgIHJldHVybiBoZWFwU2l6ZSAqIHN0ZDo6bWF4KHN0ZDo6bWluKHJlc3VsdCwgT3B0aW9uczo6
YWdncmVzc2l2ZUhlYXBUcmlnZ2VyTWF4aW11bU11bHRpcGxpZXIoKSksIE9wdGlvbnM6OmFnZ3Jl
c3NpdmVIZWFwVHJpZ2dlck1pbnVtdW1NdWx0aXBsaWVyKCkpOworICAgIH0KKwogICAgIHNpemVf
dCBtZW1vcnlGb290cHJpbnQgPSBibWFsbG9jOjphcGk6Om1lbW9yeUZvb3RwcmludCgpOwogICAg
IGlmIChtZW1vcnlGb290cHJpbnQgPCByYW1TaXplICogT3B0aW9uczo6c21hbGxIZWFwUkFNRnJh
Y3Rpb24oKSkKICAgICAgICAgcmV0dXJuIE9wdGlvbnM6OnNtYWxsSGVhcEdyb3d0aEZhY3Rvcigp
ICogaGVhcFNpemU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5o
CShyZXZpc2lvbiAyMjAxMDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMCw2ICsyMTAsMTAgQEAgdHlwZWRlZiBjb25zdCBj
aGFyKiBvcHRpb25TdHJpbmc7CiAgICAgdihkb3VibGUsIG1lZGl1bUhlYXBSQU1GcmFjdGlvbiwg
MC41LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGRvdWJsZSwgbWVkaXVtSGVhcEdyb3d0aEZh
Y3RvciwgMS41LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGRvdWJsZSwgbGFyZ2VIZWFwR3Jv
d3RoRmFjdG9yLCAxLjI0LCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KGJvb2wsIGZvcmNlQWdn
cmVzc2l2ZUhlYXBUcmlnZ2VyLCBmYWxzZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgb24gaU9TLCB3ZSB3
aWxsIHVzZSBhIGRpZmZlcmVudCBmb3JtdWxhIGZvciBwcm9wb3J0aW9uYWxIZWFwU2l6ZSgpLiIp
IFwKKyAgICB2KGRvdWJsZSwgYWdncmVzc2l2ZUhlYXBUcmlnZ2VyTWludW11bU11bHRpcGxpZXIs
IDEuMDcsIE5vcm1hbCwgIlRoaXMgaXMgdGhlIG1pbmltdW0gd2UgbXVzdCBncm93IGJ5IGZvciBw
cm9wb3J0aW9uYWxIZWFwU2l6ZSgpIHdoZW4gZG9pbmcgYWdncmVzc2l2ZSB0cmlnZ2VyaW5nLiIp
IFwKKyAgICB2KGRvdWJsZSwgYWdncmVzc2l2ZUhlYXBUcmlnZ2VyTWF4aW11bU11bHRpcGxpZXIs
IDIuMCwgTm9ybWFsLCAgIlRoaXMgaXMgdGhlIG1heGltdW0gd2UgY2FuIGdyb3cgYnkgZm9yIHBy
b3BvcnRpb25hbEhlYXBTaXplKCkgd2hlbiBkb2luZyBhZ2dyZXNzaXZlIHRyaWdnZXJpbmcuIikg
XAorICAgIHYoZG91YmxlLCBhZ2dyZXNzaXZlSGVhcFRyaWdnZXJTY2FsaW5nVmFsdWUsIDMuNSwg
Tm9ybWFsLCAiVGhpcyBzY2FsZXMgdGhlIGFib3ZlIGZvcm11bGEuIEEgbGFyZ2VyIG51bWJlciBp
cyBtb3JlIGFnZ3Jlc3NpdmUgaW4gbGltaXRpbmcgaGVhcCBncm93dGguIEEgc21hbGxlciBudW1i
ZXIgaXMgbW9yZSBwZXJtaXNzaXZlIGluIGFsbG93aW5nIGhlYXAgZ3Jvd3RoLiIpIFwKICAgICB2
KGRvdWJsZSwgY3JpdGljYWxHQ01lbW9yeVRocmVzaG9sZCwgMC44MCwgTm9ybWFsLCAicGVyY2Vu
dCBtZW1vcnkgaW4gdXNlIHRoZSBHQyBjb25zaWRlcnMgY3JpdGljYWwuICBUaGUgY29sbGVjdG9y
IGlzIG11Y2ggbW9yZSBhZ2dyZXNzaXZlIGFib3ZlIHRoaXMgdGhyZXNob2xkIikgXAogICAgIHYo
ZG91YmxlLCBtaW5pbXVtTXV0YXRvclV0aWxpemF0aW9uLCAwLCBOb3JtYWwsIG51bGxwdHIpIFwK
ICAgICB2KGRvdWJsZSwgbWF4aW11bU11dGF0b3JVdGlsaXphdGlvbiwgMC43LCBOb3JtYWwsIG51
bGxwdHIpIFwK
</data>

          </attachment>
      

    </bug>

</bugzilla>