<?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>160716</bug_id>
          
          <creation_ts>2016-08-09 16:19:01 -0700</creation_ts>
          <short_desc>Disallow synchronous sweeping for eden GCs.</short_desc>
          <delta_ts>2016-08-11 18:05:46 -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 Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1218888</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-09 16:19:01 -0700</bug_when>
    <thetext>This functionality was broken, and it was only used by $vm.edenGC().  It&apos;s sad that we can&apos;t do a synchronous sweep after an edenGC for testing purposes anymore, but as far as I know, this functionality hasn&apos;t been used much.  So, I&apos;m removing it for now and switching $vm.edenGC() do the default eden GC behavior which lets the incremental sweeper do the sweeping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218931</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-09 17:53:40 -0700</bug_when>
    <thetext>Actually, ... I can make collectAndSweep() work with EdenCollections with no perf impact.  And so I shall do that and retain the current behavior of $vm.edenGC().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218936</commentid>
    <comment_count>2</comment_count>
      <attachid>285704</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-09 18:14:17 -0700</bug_when>
    <thetext>Created attachment 285704
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219155</commentid>
    <comment_count>3</comment_count>
      <attachid>285704</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-08-10 14:59:26 -0700</bug_when>
    <thetext>Comment on attachment 285704
proposed patch.

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

&gt; Source/JavaScriptCore/heap/Heap.cpp:1095
&gt; +        // Sweep the list of blocks that the IncrementalSweeper would have swept later.
&gt; +        while (!m_blockSnapshot.isEmpty()) {
&gt; +            MarkedBlock* block = m_blockSnapshot.takeLast();
&gt; +            block-&gt;sweep();
&gt; +            objectSpace().freeOrShrinkBlock(block);
&gt; +        }

This is a layering violation.  ObjectSpace should own any logic like this.

For that reason, I think we should just disallow collectAndSweep in eden.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219157</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-10 15:03:43 -0700</bug_when>
    <thetext>Going back to disallowing collectAndSweep for EdenCollections.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219197</commentid>
    <comment_count>5</comment_count>
      <attachid>285785</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-10 16:52:02 -0700</bug_when>
    <thetext>Created attachment 285785
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219354</commentid>
    <comment_count>6</comment_count>
      <attachid>285785</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-08-11 11:46:17 -0700</bug_when>
    <thetext>Comment on attachment 285785
proposed patch.

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

&gt; Source/JavaScriptCore/heap/MarkedBlock.h:193
&gt; +        // will simply ignore Retured blocks (i.e. they will not be swept even

Retired</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219392</commentid>
    <comment_count>7</comment_count>
      <attachid>285785</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-08-11 13:27:38 -0700</bug_when>
    <thetext>Comment on attachment 285785
proposed patch.

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

r=me

&gt; Source/JavaScriptCore/heap/MarkedBlock.cpp:-160
&gt;      case Allocated:
&gt;          RELEASE_ASSERT_NOT_REACHED();
&gt; -        return FreeList();

Since all cases are handled in this switch, I think you can leave the return here and remove the assert and return at the end of the function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219398</commentid>
    <comment_count>8</comment_count>
      <attachid>285785</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-11 13:32:47 -0700</bug_when>
    <thetext>Comment on attachment 285785
proposed patch.

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

Thanks for the review.  Will fix the issues before landing.

&gt;&gt; Source/JavaScriptCore/heap/MarkedBlock.cpp:-160
&gt;&gt; -        return FreeList();
&gt; 
&gt; Since all cases are handled in this switch, I think you can leave the return here and remove the assert and return at the end of the function.

Ok.  Will do.

&gt;&gt; Source/JavaScriptCore/heap/MarkedBlock.h:193
&gt;&gt; +        // will simply ignore Retured blocks (i.e. they will not be swept even
&gt; 
&gt; Retired

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219414</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-11 14:20:28 -0700</bug_when>
    <thetext>Landed in r204387: &lt;http://trac.webkit.org/r204387&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219494</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-11 18:05:46 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt;&gt; Source/JavaScriptCore/heap/MarkedBlock.cpp:-160
&gt; &gt;&gt; -        return FreeList();
&gt; &gt; 
&gt; &gt; Since all cases are handled in this switch, I think you can leave the return here and remove the assert and return at the end of the function.
&gt; 
&gt; Ok.  Will do.

gcc did not like this.  I restored the assertion and return statement at the end of the function.  Fix landed in r204398: &lt;http://trac.webkit.org/r204398&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285704</attachid>
            <date>2016-08-09 18:14:17 -0700</date>
            <delta_ts>2016-08-10 16:52:02 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-160716.patch</filename>
            <type>text/plain</type>
            <size>10075</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDQzMTgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDE2LTA4LTA5ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBGaXggY29sbGVjdEFuZFN3ZWVwIGZvciBFZGVuQ29sbGVjdGlvbnMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA3MTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9l
ZGVuLWdjLWFuZC1zd2VlcC13aXRoLXJldGlyZWQtYmxvY2tzLmpzOiBBZGRlZC4KKwogMjAxNi0w
OC0wOCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9O
IEZBSUxFRDogaGFzSW5saW5lU3RvcmFnZSgpIGluIEpTRmluYWxPYmplY3Q6OnZpc2l0Q2hpbGRy
ZW4oKS4KSW5kZXg6IEpTVGVzdHMvc3RyZXNzL2VkZW4tZ2MtYW5kLXN3ZWVwLXdpdGgtcmV0aXJl
ZC1ibG9ja3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvZWRlbi1nYy1hbmQtc3dl
ZXAtd2l0aC1yZXRpcmVkLWJsb2Nrcy5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3N0cmVz
cy9lZGVuLWdjLWFuZC1zd2VlcC13aXRoLXJldGlyZWQtYmxvY2tzLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMjQgQEAKKy8vQCBydW5EZWZhdWx0CisvLyBUaGlzIHRlc3Qgc2hvdWxkIG5v
dCBjcmFzaC4KKwordmFyIG9ianM7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyBpICs9IDEw
MCkgeworICAgIG9ianMgPSBbXTsKKyAgICBnYygpOworCisgICAgLy8gTWFrZSAiUmV0aXJlZCIg
YmxvY2tzLgorICAgIGZvciAobGV0IGogPSAwOyBqIDwgaTsgaisrKSB7CisgICAgICAgIGxldCBv
OworICAgICAgICBzd2l0Y2ggKGkgJSA2KSB7CisgICAgICAgIGNhc2UgMDogbyA9IHsgfTsKKyAg
ICAgICAgY2FzZSAxOiBvID0geyBhOiBpIH07CisgICAgICAgIGNhc2UgMjogbyA9IHsgYTogaSwg
YjogaX07CisgICAgICAgIGNhc2UgMzogbyA9IHsgYTogaSwgYjogaSwgYzogaSB9OworICAgICAg
ICBjYXNlIDQ6IG8gPSB7IGE6IGksIGI6IGksIGM6IGksIGQ6IGkgfTsKKyAgICAgICAgY2FzZSA1
OiBvID0geyBhOiBpLCBiOiBpLCBjOiBpLCBkOiBpLCBlOiBpIH07CisgICAgICAgIH0KKyAgICAg
ICAgb2Jqc1tqXSA9IG87CisgICAgfQorICAgIGVkZW5HQ0FuZFN3ZWVwKCk7Cit9CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDMxMSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNSBAQAorMjAxNi0w
OC0wOSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGNvbGxl
Y3RBbmRTd2VlcCBmb3IgRWRlbkNvbGxlY3Rpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpI
ZWFwOjphZGRUb1JlbWVtYmVyZWRTZXQpOgorICAgICAgICAoSlNDOjpIZWFwOjpjb2xsZWN0QW5k
U3dlZXApOgorICAgICAgICAtIFNpbmNlIHdlJ3ZlIGFscmVhZHkgc3dlcHQgYWxsIHRoZSBibG9j
a3MsIEkgY2xlYXJlZCBtX2Jsb2NrU25hcHNob3Qgc28gdGhhdCB0aGUKKyAgICAgICAgICBJbmNy
ZW1lbnRhbFN3ZWVwZXIgY2FuIGJhaWwgZWFybGllciB3aGVuIGl0IHJ1bnMgbGF0ZXIuCisKKyAg
ICAgICAgKEpTQzo6SGVhcDo6Y29sbGVjdEFsbEdhcmJhZ2UpOgorICAgICAgICAoSlNDOjpIZWFw
OjplZGVuQ29sbGVjdEFuZFN3ZWVwU3luY2hyb25vdXNseSk6CisgICAgICAgIChKU0M6OkhlYXA6
OmNvbGxlY3QpOgorICAgICAgICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAoSlNDOjpIZWFwOjpj
b2xsZWN0QWxsR2FyYmFnZSk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBoZWFwL01hcmtlZEJsb2Nr
LmNwcDoKKyAgICAgICAgKEpTQzo6TWFya2VkQmxvY2s6OnN3ZWVwSGVscGVyKToKKyAgICAgICAg
LSBSZW1vdmVkIHRoZSB1bnJlYWNoYWJsZSByZXR1cm4gc3RhdGVtZW50LgorCisgICAgICAgICog
aGVhcC9NYXJrZWRCbG9jay5oOgorICAgICAgICAtIERvY3VtZW50IHdoYXQgIlJldGlyZWQiIG1l
YW5zLgorCisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAoZnVuY3Rpb25FZGVuR0NBbmRTd2VlcCk6CisgICAgICAgICog
dG9vbHMvSlNEb2xsYXJWTVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTRG9sbGFyVk1Q
cm90b3R5cGU6OmVkZW5HQyk6CisKIDIwMTYtMDgtMDkgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBh
cHBsZS5jb20+CiAKICAgICAgICAgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlRnVuY3Rpb25JbmZv
KCkgaGFzIHRoZSB3cm9uZyBpbmZvIGFib3V0IGNhcHR1cmVkIHZhcnMgd2hlbiBhIGZ1bmN0aW9u
IGlzIG5vdCBjYWNoZWQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkocmV2aXNpb24gMjA0MzEx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4
MCw2ICs1ODAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jCiBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdDQW5kU3dlZXAoRXhl
Y1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZ1
bGxHQyhFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uRWRlbkdDKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25FZGVuR0NBbmRTd2VlcChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRm9yY2VHQ1Nsb3dQYXRocyhFeGVjU3RhdGUq
KTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGVhcFNpemUo
RXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkFkZHJlc3NPZihFeGVjU3RhdGUqKTsKQEAgLTc3NSw2ICs3NzYsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2MiLCBmdW5jdGlvbkdDQW5kU3dlZXAsIDApOwogICAg
ICAgICBhZGRGdW5jdGlvbih2bSwgImZ1bGxHQyIsIGZ1bmN0aW9uRnVsbEdDLCAwKTsKICAgICAg
ICAgYWRkRnVuY3Rpb24odm0sICJlZGVuR0MiLCBmdW5jdGlvbkVkZW5HQywgMCk7CisgICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAiZWRlbkdDQW5kU3dlZXAiLCBmdW5jdGlvbkVkZW5HQ0FuZFN3ZWVw
LCAwKTsKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJmb3JjZUdDU2xvd1BhdGhzIiwgZnVuY3Rp
b25Gb3JjZUdDU2xvd1BhdGhzLCAwKTsKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJnY0hlYXBT
aXplIiwgZnVuY3Rpb25IZWFwU2l6ZSwgMCk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiYWRk
cmVzc09mIiwgZnVuY3Rpb25BZGRyZXNzT2YsIDEpOwpAQCAtMTM1MSw2ICsxMzUzLDEzIEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FZGUKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKGV4ZWMtPmhlYXAoKS0+c2l6ZUFmdGVyTGFzdEVkZW5Db2xsZWN0
aW9uKCkpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVkZW5H
Q0FuZFN3ZWVwKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVj
KTsKKyAgICBleGVjLT5oZWFwKCktPmVkZW5Db2xsZWN0QW5kU3dlZXBTeW5jaHJvbm91c2x5KCk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihleGVjLT5oZWFwKCktPnNpemVB
ZnRlckxhc3RFZGVuQ29sbGVjdGlvbigpKSk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25Gb3JjZUdDU2xvd1BhdGhzKEV4ZWNTdGF0ZSopCiB7CiAgICAgLy8gSXQn
cyBiZXN0IGZvciB0aGlzIHRvIGJlIHRoZSBmaXJzdCB0aGluZyBjYWxsZWQgaW4gdGhlIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9uIDIwNDMxMSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcx
LDcgKzEwNzEsOCBAQCB2b2lkIEhlYXA6OmFkZFRvUmVtZW1iZXJlZFNldChjb25zdCBKU0NlCiAg
ICAgbV9zbG90VmlzaXRvci5hcHBlbmRUb01hcmtTdGFjayhjb25zdF9jYXN0PEpTQ2VsbCo+KGNl
bGwpKTsKIH0KIAotdm9pZCBIZWFwOjpjb2xsZWN0QW5kU3dlZXAoSGVhcE9wZXJhdGlvbiBjb2xs
ZWN0aW9uVHlwZSkKK3RlbXBsYXRlPEhlYXBPcGVyYXRpb24gY29sbGVjdGlvblR5cGU+Cit2b2lk
IEhlYXA6OmNvbGxlY3RBbmRTd2VlcCgpCiB7CiAgICAgaWYgKCFtX2lzU2FmZVRvQ29sbGVjdCkK
ICAgICAgICAgcmV0dXJuOwpAQCAtMTA3OSwxMiArMTA4MCwzMyBAQCB2b2lkIEhlYXA6OmNvbGxl
Y3RBbmRTd2VlcChIZWFwT3BlcmF0aW9uCiAgICAgY29sbGVjdChjb2xsZWN0aW9uVHlwZSk7CiAK
ICAgICBEZWZlckdDRm9yQVdoaWxlIGRlZmVyR0MoKnRoaXMpOwotICAgIG1fb2JqZWN0U3BhY2Uu
c3dlZXAoKTsKLSAgICBtX29iamVjdFNwYWNlLnNocmluaygpOwogCisgICAgaWYgKGNvbGxlY3Rp
b25UeXBlID09IEZ1bGxDb2xsZWN0aW9uKSB7CisgICAgICAgIG1fb2JqZWN0U3BhY2Uuc3dlZXAo
KTsKKyAgICAgICAgbV9vYmplY3RTcGFjZS5zaHJpbmsoKTsKKyAgICAgICAgbV9ibG9ja1NuYXBz
aG90LmNsZWFyKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKGNvbGxlY3Rpb25UeXBl
ID09IEVkZW5Db2xsZWN0aW9uKTsKKyAgICAgICAgLy8gU3dlZXAgdGhlIGxpc3Qgb2YgYmxvY2tz
IHRoYXQgdGhlIEluY3JlbWVudGFsU3dlZXBlciB3b3VsZCBoYXZlIHN3ZXB0IGxhdGVyLgorICAg
ICAgICB3aGlsZSAoIW1fYmxvY2tTbmFwc2hvdC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIE1h
cmtlZEJsb2NrKiBibG9jayA9IG1fYmxvY2tTbmFwc2hvdC50YWtlTGFzdCgpOworICAgICAgICAg
ICAgYmxvY2stPnN3ZWVwKCk7CisgICAgICAgICAgICBvYmplY3RTcGFjZSgpLmZyZWVPclNocmlu
a0Jsb2NrKGJsb2NrKTsKKyAgICAgICAgfQorICAgIH0KICAgICBzd2VlcEFsbExvZ2ljYWxseUVt
cHR5V2Vha0Jsb2NrcygpOwogfQogCit2b2lkIEhlYXA6OmNvbGxlY3RBbGxHYXJiYWdlKCkKK3sK
KyAgICBjb2xsZWN0QW5kU3dlZXA8RnVsbENvbGxlY3Rpb24+KCk7Cit9CisKK3ZvaWQgSGVhcDo6
ZWRlbkNvbGxlY3RBbmRTd2VlcFN5bmNocm9ub3VzbHkoKQoreworICAgIGNvbGxlY3RBbmRTd2Vl
cDxFZGVuQ29sbGVjdGlvbj4oKTsKK30KKwogTkVWRVJfSU5MSU5FIHZvaWQgSGVhcDo6Y29sbGVj
dChIZWFwT3BlcmF0aW9uIGNvbGxlY3Rpb25UeXBlKQogewogICAgIHZvaWQqIHN0YWNrVG9wOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2aXNpb24gMjA0MzExKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsOCAr
MTY1LDkgQEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNIZWFwU25hcHNo
b3R0aW5nKCkgY29uc3Q7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGNvbGxlY3RBbGxH
YXJiYWdlSWZOb3REb25lUmVjZW50bHkoKTsKLSAgICB2b2lkIGNvbGxlY3RBbGxHYXJiYWdlKCkg
eyBjb2xsZWN0QW5kU3dlZXAoRnVsbENvbGxlY3Rpb24pOyB9Ci0gICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBjb2xsZWN0QW5kU3dlZXAoSGVhcE9wZXJhdGlvbiBjb2xsZWN0aW9uVHlwZSA9IEFu
eUNvbGxlY3Rpb24pOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgY29sbGVjdEFsbEdhcmJh
Z2UoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGVkZW5Db2xsZWN0QW5kU3dlZXBTeW5j
aHJvbm91c2x5KCk7CisKICAgICBib29sIHNob3VsZENvbGxlY3QoKTsKICAgICBKU19FWFBPUlRf
UFJJVkFURSB2b2lkIGNvbGxlY3QoSGVhcE9wZXJhdGlvbiBjb2xsZWN0aW9uVHlwZSA9IEFueUNv
bGxlY3Rpb24pOwogICAgIGJvb2wgY29sbGVjdElmTmVjZXNzYXJ5T3JEZWZlcigpOyAvLyBSZXR1
cm5zIHRydWUgaWYgaXQgZGlkIGNvbGxlY3QuCkBAIC0yOTcsNiArMjk4LDggQEAgcHJpdmF0ZToK
ICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHJlcG9ydEV4dHJhTWVtb3J5QWxsb2NhdGVkU2xv
d0Nhc2Uoc2l6ZV90KTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGRlcHJlY2F0ZWRSZXBv
cnRFeHRyYU1lbW9yeVNsb3dDYXNlKHNpemVfdCk7CiAKKyAgICB0ZW1wbGF0ZTxIZWFwT3BlcmF0
aW9uIGNvbGxlY3Rpb25UeXBlPiB2b2lkIGNvbGxlY3RBbmRTd2VlcCgpOworCiAgICAgdm9pZCBj
b2xsZWN0SW1wbChIZWFwT3BlcmF0aW9uLCB2b2lkKiBzdGFja09yaWdpbiwgdm9pZCogc3RhY2tU
b3AsIE1hY2hpbmVUaHJlYWRzOjpSZWdpc3RlclN0YXRlJik7CiAKICAgICB2b2lkIHN1c3BlbmRD
b21waWxlclRocmVhZHMoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtl
ZEJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJr
ZWRCbG9jay5jcHAJKHJldmlzaW9uIDIwNDMxMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL01hcmtlZEJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU3LDcgKzE1Nyw2IEBAIE1h
cmtlZEJsb2NrOjpGcmVlTGlzdCBNYXJrZWRCbG9jazo6c3dlZXAKICAgICBjYXNlIFJldGlyZWQ6
CiAgICAgY2FzZSBBbGxvY2F0ZWQ6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIHJldHVybiBGcmVlTGlzdCgpOwogICAgIGNhc2UgTWFya2VkOgogICAgICAg
ICByZXR1cm4gc3dlZXBNb2RlID09IFN3ZWVwVG9GcmVlTGlzdAogICAgICAgICAgICAgPyBzcGVj
aWFsaXplZFN3ZWVwPE1hcmtlZCwgU3dlZXBUb0ZyZWVMaXN0LCBjYWxsRGVzdHJ1Y3RvcnM+KCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAkocmV2aXNpb24g
MjA0MzExKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAkod29y
a2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIw
MDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKICAqICBDb3B5cmlnaHQgKEMpIDIwMDEg
UGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQs
IDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTEsIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMy0yMDA5LCAyMDExLCAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAg
LTE4Myw2ICsxODMsMTYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAg
c3RhdGljIGNvbnN0IHNpemVfdCBhdG9tQWxpZ25tZW50TWFzayA9IGF0b21TaXplIC0gMTsKIAor
ICAgICAgICAvLyBEdXJpbmcgYWxsb2NhdGlvbiwgd2UgbG9vayBmb3IgYXZhaWxhYmxlIHNwYWNl
IGluIGZyZWUgbGlzdHMgaW4gYmxvY2tzLgorICAgICAgICAvLyBJZiBhIGJsb2NrJ3MgdXRpbGl6
YXRpb24gaXMgc3VmZmljaWVudGx5IGhpZ2ggKGkuZS4gaXQncyBhbG1vc3QgZnVsbCksCisgICAg
ICAgIC8vIHdlIHdhbnQgdG8gcmVtb3ZlIHRoYXQgYmxvY2sgYXMgYSBjYW5kaWRhdGUgZm9yIGFs
bG9jYXRpbmcgdG8gcmVkdWNlCisgICAgICAgIC8vIHRoZSBsaWtlbGlob29kIG9mIGFsbG9jYXRp
b24gaGF2aW5nIHRvIHRha2UgYSBzbG93IHBhdGguIFdoZW4gdGhlCisgICAgICAgIC8vIGJsb2Nr
IGlzIGluIHRoaXMgc3RhdGUsIHdlIHNheSB0aGF0IGl0IGlzICJSZXRpcmVkIi4KKyAgICAgICAg
Ly8KKyAgICAgICAgLy8gQSBmdWxsIEdDIGNhbiB0YWtlIGEgUmV0aXJlZCBibG9ja3Mgb3V0IG9m
IHJldGlyZW1lbnQuIEFuIGVkZW4gR0MKKyAgICAgICAgLy8gd2lsbCBzaW1wbHkgaWdub3JlIFJl
dHVyZWQgYmxvY2tzIChpLmUuIHRoZXkgd2lsbCBub3QgYmUgc3dlcHQgZXZlbgorICAgICAgICAv
LyBpZiB0aGV5IG5vIGxvbmdlciBoYXZlIGxpdmUgb2JqZWN0cykuCisKICAgICAgICAgZW51bSBC
bG9ja1N0YXRlIHsgTmV3LCBGcmVlTGlzdGVkLCBBbGxvY2F0ZWQsIE1hcmtlZCwgUmV0aXJlZCB9
OwogICAgICAgICB0ZW1wbGF0ZTxib29sIGNhbGxEZXN0cnVjdG9ycz4gRnJlZUxpc3Qgc3dlZXBI
ZWxwZXIoU3dlZXBNb2RlID0gU3dlZXBPbmx5KTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rvb2xzL0pTRG9sbGFyVk1Qcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMjA0
MzExKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk1Qcm90b3R5cGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBKU0RvbGxhclZNUHJv
dG90eXBlOjplZGVuR0MoRXhlY1N0YQogewogICAgIGlmICghZW5zdXJlQ3VycmVudFRocmVhZE93
bnNKU0xvY2soZXhlYykpCiAgICAgICAgIHJldHVybjsKLSAgICBleGVjLT5oZWFwKCktPmNvbGxl
Y3RBbmRTd2VlcChFZGVuQ29sbGVjdGlvbik7CisgICAgZXhlYy0+aGVhcCgpLT5lZGVuQ29sbGVj
dEFuZFN3ZWVwU3luY2hyb25vdXNseSgpOwogfQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkVkZW5HQyhFeGVjU3RhdGUqIGV4ZWMpCg==
</data>
<flag name="review"
          id="309310"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285785</attachid>
            <date>2016-08-10 16:52:02 -0700</date>
            <delta_ts>2016-08-11 13:27:38 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-160716.patch</filename>
            <type>text/plain</type>
            <size>7003</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDQzNTkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDE2LTA4LTEwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBEaXNhbGxvdyBzeW5jaHJvbm91cyBzd2VlcGluZyBmb3IgZWRlbiBHQ3Mu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA3MTYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVz
cy9lZGVuLWdjLXdpdGgtcmV0aXJlZC1ibG9ja3MuanM6IEFkZGVkLgorICAgICAgICAtIFRoaXMg
dGVzdCBpcyBqdXN0IGluIGNhc2Ugd2UgYWRkIGJhY2sgc3VwcG9ydCBmb3IgZWRlbiBHQ3Mgd2l0
aCBzeW5jaHJvbm91cworICAgICAgICAgIHN3ZWVwaW5nIGluIHRoZSBmdXR1cmUuCisKIDIwMTYt
MDgtMDkgIFNrYWNoa292IE9sZWtzYW5kciAgPGdza2FjaGtvdkBnbWFpbC5jb20+CiAKICAgICAg
ICAgW0VTMjAxNl0gSW1wbGVtZW50IE9iamVjdC52YWx1ZXMKSW5kZXg6IEpTVGVzdHMvc3RyZXNz
L2VkZW4tZ2Mtd2l0aC1yZXRpcmVkLWJsb2Nrcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0
cmVzcy9lZGVuLWdjLXdpdGgtcmV0aXJlZC1ibG9ja3MuanMJKG5vbmV4aXN0ZW50KQorKysgSlNU
ZXN0cy9zdHJlc3MvZWRlbi1nYy13aXRoLXJldGlyZWQtYmxvY2tzLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMjQgQEAKKy8vQCBydW5EZWZhdWx0CisvLyBUaGlzIHRlc3Qgc2hvdWxkIG5v
dCBjcmFzaC4KKwordmFyIG9ianM7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyBpICs9IDEw
MCkgeworICAgIG9ianMgPSBbXTsKKyAgICBnYygpOworCisgICAgLy8gTWFrZSAiUmV0aXJlZCIg
YmxvY2tzLgorICAgIGZvciAobGV0IGogPSAwOyBqIDwgaTsgaisrKSB7CisgICAgICAgIGxldCBv
OworICAgICAgICBzd2l0Y2ggKGkgJSA2KSB7CisgICAgICAgIGNhc2UgMDogbyA9IHsgfTsKKyAg
ICAgICAgY2FzZSAxOiBvID0geyBhOiBpIH07CisgICAgICAgIGNhc2UgMjogbyA9IHsgYTogaSwg
YjogaX07CisgICAgICAgIGNhc2UgMzogbyA9IHsgYTogaSwgYjogaSwgYzogaSB9OworICAgICAg
ICBjYXNlIDQ6IG8gPSB7IGE6IGksIGI6IGksIGM6IGksIGQ6IGkgfTsKKyAgICAgICAgY2FzZSA1
OiBvID0geyBhOiBpLCBiOiBpLCBjOiBpLCBkOiBpLCBlOiBpIH07CisgICAgICAgIH0KKyAgICAg
ICAgb2Jqc1tqXSA9IG87CisgICAgfQorICAgIGVkZW5HQygpOworfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDQzMTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTYtMDgtMTAgIE1h
cmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIERpc2FsbG93IHN5bmNocm9u
b3VzIHN3ZWVwaW5nIGZvciBlZGVuIEdDcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MDcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6
Y29sbGVjdEFsbEdhcmJhZ2UpOgorICAgICAgICAoSlNDOjpIZWFwOjpjb2xsZWN0QW5kU3dlZXAp
OiBEZWxldGVkLgorICAgICAgICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAoSlNDOjpIZWFwOjpj
b2xsZWN0QWxsR2FyYmFnZSk6IERlbGV0ZWQuCisgICAgICAgIC0gTm8gbmVlZCBmb3IgYSBzZXBh
cmF0ZSBjb2xsZWN0QW5kU3dlZXAoKSBhbnltb3JlIHNpbmNlIHdlIG9ubHkgY2FsbCBpdCBmb3IK
KyAgICAgICAgICBGdWxsQ29sbGVjdGlvbnMuCisgICAgICAgIC0gU2luY2Ugd2UndmUgYWxyZWFk
eSBzd2VwdCBhbGwgdGhlIGJsb2NrcywgSSBjbGVhcmVkIG1fYmxvY2tTbmFwc2hvdCBzbyB0aGF0
IHRoZQorICAgICAgICAgIEluY3JlbWVudGFsU3dlZXBlciBjYW4gYmFpbCBlYXJsaWVyIHdoZW4g
aXQgcnVucyBsYXRlci4KKworICAgICAgICAqIGhlYXAvTWFya2VkQmxvY2suY3BwOgorICAgICAg
ICAoSlNDOjpNYXJrZWRCbG9jazo6c3dlZXBIZWxwZXIpOgorICAgICAgICAtIFJlbW92ZWQgdGhl
IHVucmVhY2hhYmxlIHJldHVybiBzdGF0ZW1lbnQuCisKKyAgICAgICAgKiBoZWFwL01hcmtlZEJs
b2NrLmg6CisgICAgICAgIC0gRG9jdW1lbnQgd2hhdCAiUmV0aXJlZCIgbWVhbnMuCisKKyAgICAg
ICAgKiB0b29scy9KU0RvbGxhclZNUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNEb2xs
YXJWTVByb3RvdHlwZTo6ZWRlbkdDKToKKwogMjAxNi0wOC0wOSAgU2FhbSBCYXJhdGkgIDxzYmFy
YXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VGdW5jdGlv
bkluZm8oKSBoYXMgdGhlIHdyb25nIGluZm8gYWJvdXQgY2FwdHVyZWQgdmFycyB3aGVuIGEgZnVu
Y3Rpb24gaXMgbm90IGNhY2hlZC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3Bw
CShyZXZpc2lvbiAyMDQzMTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTA3MSwxNiArMTA3MSwxNyBAQCB2b2lkIEhlYXA6OmFkZFRv
UmVtZW1iZXJlZFNldChjb25zdCBKU0NlCiAgICAgbV9zbG90VmlzaXRvci5hcHBlbmRUb01hcmtT
dGFjayhjb25zdF9jYXN0PEpTQ2VsbCo+KGNlbGwpKTsKIH0KIAotdm9pZCBIZWFwOjpjb2xsZWN0
QW5kU3dlZXAoSGVhcE9wZXJhdGlvbiBjb2xsZWN0aW9uVHlwZSkKK3ZvaWQgSGVhcDo6Y29sbGVj
dEFsbEdhcmJhZ2UoKQogewogICAgIGlmICghbV9pc1NhZmVUb0NvbGxlY3QpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGNvbGxlY3QoY29sbGVjdGlvblR5cGUpOworICAgIGNvbGxlY3QoRnVsbENv
bGxlY3Rpb24pOwogCiAgICAgRGVmZXJHQ0ZvckFXaGlsZSBkZWZlckdDKCp0aGlzKTsKICAgICBt
X29iamVjdFNwYWNlLnN3ZWVwKCk7CiAgICAgbV9vYmplY3RTcGFjZS5zaHJpbmsoKTsKKyAgICBt
X2Jsb2NrU25hcHNob3QuY2xlYXIoKTsKIAogICAgIHN3ZWVwQWxsTG9naWNhbGx5RW1wdHlXZWFr
QmxvY2tzKCk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCShyZXZpc2lvbiAy
MDQzMTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE2NSw4ICsxNjUsOCBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9v
bCBpc0hlYXBTbmFwc2hvdHRpbmcoKSBjb25zdDsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgY29sbGVjdEFsbEdhcmJhZ2VJZk5vdERvbmVSZWNlbnRseSgpOwotICAgIHZvaWQgY29sbGVj
dEFsbEdhcmJhZ2UoKSB7IGNvbGxlY3RBbmRTd2VlcChGdWxsQ29sbGVjdGlvbik7IH0KLSAgICBK
U19FWFBPUlRfUFJJVkFURSB2b2lkIGNvbGxlY3RBbmRTd2VlcChIZWFwT3BlcmF0aW9uIGNvbGxl
Y3Rpb25UeXBlID0gQW55Q29sbGVjdGlvbik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBj
b2xsZWN0QWxsR2FyYmFnZSgpOworCiAgICAgYm9vbCBzaG91bGRDb2xsZWN0KCk7CiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgdm9pZCBjb2xsZWN0KEhlYXBPcGVyYXRpb24gY29sbGVjdGlvblR5cGUg
PSBBbnlDb2xsZWN0aW9uKTsKICAgICBib29sIGNvbGxlY3RJZk5lY2Vzc2FyeU9yRGVmZXIoKTsg
Ly8gUmV0dXJucyB0cnVlIGlmIGl0IGRpZCBjb2xsZWN0LgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAkocmV2aXNpb24gMjA0MzExKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NTcsNyArMTU3LDYgQEAgTWFya2VkQmxvY2s6OkZyZWVMaXN0IE1hcmtlZEJsb2NrOjpzd2VlcAog
ICAgIGNhc2UgUmV0aXJlZDoKICAgICBjYXNlIEFsbG9jYXRlZDoKICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIEZyZWVMaXN0KCk7CiAgICAgY2Fz
ZSBNYXJrZWQ6CiAgICAgICAgIHJldHVybiBzd2VlcE1vZGUgPT0gU3dlZXBUb0ZyZWVMaXN0CiAg
ICAgICAgICAgICA/IHNwZWNpYWxpemVkU3dlZXA8TWFya2VkLCBTd2VlcFRvRnJlZUxpc3QsIGNh
bGxEZXN0cnVjdG9ycz4oKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2Vk
QmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRC
bG9jay5oCShyZXZpc2lvbiAyMDQzMTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9N
YXJrZWRCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqICBDb3B5
cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQogICogIENv
cHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQotICogIENvcHlyaWdo
dCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSwgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAz
LTIwMDksIDIwMTEsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwpAQCAtMTgzLDYgKzE4MywxNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBw
cml2YXRlOgogICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGF0b21BbGlnbm1lbnRNYXNrID0g
YXRvbVNpemUgLSAxOwogCisgICAgICAgIC8vIER1cmluZyBhbGxvY2F0aW9uLCB3ZSBsb29rIGZv
ciBhdmFpbGFibGUgc3BhY2UgaW4gZnJlZSBsaXN0cyBpbiBibG9ja3MuCisgICAgICAgIC8vIElm
IGEgYmxvY2sncyB1dGlsaXphdGlvbiBpcyBzdWZmaWNpZW50bHkgaGlnaCAoaS5lLiBpdCdzIGFs
bW9zdCBmdWxsKSwKKyAgICAgICAgLy8gd2Ugd2FudCB0byByZW1vdmUgdGhhdCBibG9jayBhcyBh
IGNhbmRpZGF0ZSBmb3IgYWxsb2NhdGluZyB0byByZWR1Y2UKKyAgICAgICAgLy8gdGhlIGxpa2Vs
aWhvb2Qgb2YgYWxsb2NhdGlvbiBoYXZpbmcgdG8gdGFrZSBhIHNsb3cgcGF0aC4gV2hlbiB0aGUK
KyAgICAgICAgLy8gYmxvY2sgaXMgaW4gdGhpcyBzdGF0ZSwgd2Ugc2F5IHRoYXQgaXQgaXMgIlJl
dGlyZWQiLgorICAgICAgICAvLworICAgICAgICAvLyBBIGZ1bGwgR0MgY2FuIHRha2UgYSBSZXRp
cmVkIGJsb2NrcyBvdXQgb2YgcmV0aXJlbWVudC4gQW4gZWRlbiBHQworICAgICAgICAvLyB3aWxs
IHNpbXBseSBpZ25vcmUgUmV0dXJlZCBibG9ja3MgKGkuZS4gdGhleSB3aWxsIG5vdCBiZSBzd2Vw
dCBldmVuCisgICAgICAgIC8vIGlmIHRoZXkgbm8gbG9uZ2VyIGhhdmUgbGl2ZSBvYmplY3RzKS4K
KwogICAgICAgICBlbnVtIEJsb2NrU3RhdGUgeyBOZXcsIEZyZWVMaXN0ZWQsIEFsbG9jYXRlZCwg
TWFya2VkLCBSZXRpcmVkIH07CiAgICAgICAgIHRlbXBsYXRlPGJvb2wgY2FsbERlc3RydWN0b3Jz
PiBGcmVlTGlzdCBzd2VlcEhlbHBlcihTd2VlcE1vZGUgPSBTd2VlcE9ubHkpOwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTVByb3RvdHlwZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk1Qcm90b3R5cGUu
Y3BwCShyZXZpc2lvbiAyMDQzMTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNE
b2xsYXJWTVByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw3ICsxMjksNyBAQCB2
b2lkIEpTRG9sbGFyVk1Qcm90b3R5cGU6OmVkZW5HQyhFeGVjU3RhCiB7CiAgICAgaWYgKCFlbnN1
cmVDdXJyZW50VGhyZWFkT3duc0pTTG9jayhleGVjKSkKICAgICAgICAgcmV0dXJuOwotICAgIGV4
ZWMtPmhlYXAoKS0+Y29sbGVjdEFuZFN3ZWVwKEVkZW5Db2xsZWN0aW9uKTsKKyAgICBleGVjLT5o
ZWFwKCktPmNvbGxlY3QoRWRlbkNvbGxlY3Rpb24pOwogfQogCiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVkZW5HQyhFeGVjU3RhdGUqIGV4ZWMpCg==
</data>
<flag name="review"
          id="309386"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>