<?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>194911</bug_id>
          
          <creation_ts>2019-02-21 12:15:01 -0800</creation_ts>
          <short_desc>Add more doesGC() assertions.</short_desc>
          <delta_ts>2019-02-21 18:03:25 -0800</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>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1508603</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-21 12:15:01 -0800</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508605</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-21 12:16:44 -0800</bug_when>
    <thetext>&lt;rdar://problem/48285723&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508668</commentid>
    <comment_count>2</comment_count>
      <attachid>362645</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-21 14:17:57 -0800</bug_when>
    <thetext>Created attachment 362645
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508671</commentid>
    <comment_count>3</comment_count>
      <attachid>362645</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-21 14:24:31 -0800</bug_when>
    <thetext>Comment on attachment 362645
proposed patch.

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

&gt; Source/JavaScriptCore/ChangeLog:47
&gt; +        (JSC::Heap::collectAsync):

I wonder if it&apos;s correct for this one.

&gt; Source/JavaScriptCore/heap/DeferGC.h:49
&gt; +            if (m_heap.deferralDepth() == 1)

Why would we not always assert this? We generally don&apos;t know if we&apos;re the outmost or not.

&gt; Source/JavaScriptCore/heap/Heap.cpp:1033
&gt; +        RELEASE_ASSERT(expectDoesGC());

I wonder if this should be based on synchronousness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508728</commentid>
    <comment_count>4</comment_count>
      <attachid>362645</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-21 16:12:15 -0800</bug_when>
    <thetext>Comment on attachment 362645
proposed patch.

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:47
&gt;&gt; +        (JSC::Heap::collectAsync):
&gt; 
&gt; I wonder if it&apos;s correct for this one.

collectAsync can GC synchronously as well because:
- collectAsync() calls requestCollection()
- requestCollection() calls stopIfNecessary()
- stopIfNecessary() can calls collectInMutatorThread().

&gt;&gt; Source/JavaScriptCore/heap/DeferGC.h:49
&gt;&gt; +            if (m_heap.deferralDepth() == 1)
&gt; 
&gt; Why would we not always assert this? We generally don&apos;t know if we&apos;re the outmost or not.

You&apos;re right.  This check is not needed.  I&apos;ll make the assertion unconditional.

&gt;&gt; Source/JavaScriptCore/heap/Heap.cpp:1033
&gt;&gt; +        RELEASE_ASSERT(expectDoesGC());
&gt; 
&gt; I wonder if this should be based on synchronousness

Async can GC in mutator thread as well (as explained above).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508798</commentid>
    <comment_count>5</comment_count>
      <attachid>362679</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-21 17:54:00 -0800</bug_when>
    <thetext>Created attachment 362679
proposed patch after applying Saam&apos;s and Yusuke&apos;s feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508801</commentid>
    <comment_count>6</comment_count>
      <attachid>362679</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-21 17:58:16 -0800</bug_when>
    <thetext>Comment on attachment 362679
proposed patch after applying Saam&apos;s and Yusuke&apos;s feedback.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508804</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-21 18:03:25 -0800</bug_when>
    <thetext>Thanks for the reviews.  Landed in r241927: &lt;http://trac.webkit.org/r241927&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362645</attachid>
            <date>2019-02-21 14:17:57 -0800</date>
            <delta_ts>2019-02-21 17:54:00 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-194911.patch</filename>
            <type>text/plain</type>
            <size>13955</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQxOTAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY4IEBA
CisyMDE5LTAyLTIxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgbW9yZSBkb2VzR0MoKSBhc3NlcnRpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0OTExCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODI4
NTcyMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxl
T1NSRXhpdCk6CisgICAgICAgIC0gU2V0IGV4cGVjdERvZXNHQyBoZXJlIGJlY2F1c2Ugd2Ugbm8g
bG9uZ2VyIGhhdmUgdG8gd29ycnkgYWJvdXQgbWlzc2luZyBzdG9yZQorICAgICAgICAgIGJhcnJp
ZXJzIGluIG9wdGltaXplZCBjb2RlIGFmdGVyIHRoaXMgcG9pbnQuICBUaGlzIHdpbGwgcHJldmVu
dCBmYWxzZSBwb3NpdGl2ZQorICAgICAgICAgIGFzc2VydGlvbiBmYWlsdXJlcyBhcmlzaW5nIGZy
b20gZnVuY3Rpb25zIGNhbGxlZCBiZW5lYXRoIGNvbXBpbGVPU1JFeGl0KCkuCisKKyAgICAgICAg
KEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxlRXhpdCk6CisgICAgICAgIC0gQWRkIGEgY29tbWVu
dCB0byBleHBsYWluIHdoeSB0aGUgZ2VuZXJhdGVkIHJhbXAgbmVlZHMgdG8gc2V0IGV4cGVjdERv
ZXNHQyBldmVuCisgICAgICAgICAgdGhvdWdoIGNvbXBpbGVPU1JFeGl0KCkgYWxzbyBzZXRzIGl0
LiAgUmVhc29uOiBjb21waWxlT1NSRXhpdCgpIGlzIG9ubHkgY2FsbGVkCisgICAgICAgICAgZm9y
IHRoZSBmaXJzdCBPU1IgZnJvbSB0aGlzIGNvZGUgb3JpZ2luLCB0aGUgZ2VuZXJhdGVkIHJhbXAg
aXMgY2FsbGVkIGZvciBtYW55CisgICAgICAgICAgc3Vic2VxdWVudHMgT1NSIGV4aXRzIGZyb20g
dGhpcyBjb2RlIG9yaWdpbi4KKworICAgICAgICAqIGZ0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OmNvbXBpbGVTdHViKToKKyAgICAgICAgLSBBZGRlZCBhIGNv
bW1lbnQgZm9yIHRoZSBlcXVpdmFsZW50IHJlYXNvbiB0byB0aGUgb25lIGFib3ZlLgorCisgICAg
ICAgIChKU0M6OkZUTDo6Y29tcGlsZUZUTE9TUkV4aXQpOgorICAgICAgICAtIFNldCBleHBlY3RE
b2VzR0MgaGVyZSBiZWNhdXNlIHdlIG5vIGxvbmdlciBoYXZlIHRvIHdvcnJ5IGFib3V0IG1pc3Np
bmcgc3RvcmUKKyAgICAgICAgICBiYXJyaWVycyBpbiBvcHRpbWl6ZWQgY29kZSBhZnRlciB0aGlz
IHBvaW50LiAgVGhpcyB3aWxsIHByZXZlbnQgZmFsc2UgcG9zaXRpdmUKKyAgICAgICAgICBhc3Nl
cnRpb24gZmFpbHVyZXMgYXJpc2luZyBmcm9tIGZ1bmN0aW9ucyBjYWxsZWQgYmVuZWF0aCBjb21w
aWxlRlRMT1NSRXhpdCgpLgorCisgICAgICAgICogaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmNwcDoK
KyAgICAgICAgKEpTQzo6Q29tcGxldGVTdWJzcGFjZTo6dHJ5QWxsb2NhdGVTbG93KToKKyAgICAg
ICAgKiBoZWFwL0NvbXBsZXRlU3Vic3BhY2VJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkNvbXBs
ZXRlU3Vic3BhY2U6OmFsbG9jYXRlTm9uVmlydHVhbCk6CisgICAgICAgIC0gYXNzZXJ0IGV4cGVj
dERvZXNHQy4KKworICAgICAgICAqIGhlYXAvRGVmZXJHQy5oOgorICAgICAgICAoSlNDOjpEZWZl
ckdDOjp+RGVmZXJHQyk6CisgICAgICAgIC0gYXNzZXJ0IGV4cGVjdERvZXNHQyBpZiB0aGlzIERl
ZmVyR0MgaW5zdGFuY2UgaXMgdGhlIG91dGVybW9zdCBkZWZlcnJhbCBzY29wZS4KKyAgICAgICAg
ICBXZSB0cnkgdG8gYmUgY29uc2VydmF0aXZlIGFib3V0IGFzc2VydGluZyBleHBlY3REb2VzR0Mg
d2hlcmV2ZXIgd2UgY2FuIHRyaWdnZXIgR0MuCisgICAgICAgICAgSG93ZXZlciwgd2l0aCBkZWZl
cnJhbCBzY29wZXMsIGFzc2VydGluZyBvbiBpbm5lciBkZWZlcnJhbCBzY29wZXMgd2lsbCBwcm9k
dWNlCisgICAgICAgICAgZmFsc2UgcG9zaXRpdmVzLiAgU28sIHdlJ2xsIGxldCB0aGUgb3V0ZXJt
b3N0IHNjb3BlIGRvIHRoZSBhc3NlcnRpb24uCisgICAgICAgIC0gQWxzbyBhZGRlZCBXVEZfRk9S
QklEX0hFQVBfQUxMT0NBVElPTiB0byBEZWZlckdDLCBEZWZlckdDRm9yQVdoaWxlLCBhbmQgRGlz
YWxsb3dHQworICAgICAgICAgIGJlY2F1c2UgYWxsIDMgc2hvdWxkIGJlIHN0YWNrIGFsbG9jYXRl
ZCBSQUlJIG9iamVjdHMuCisKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlND
OjpIZWFwOjpjb2xsZWN0Tm93KToKKyAgICAgICAgKEpTQzo6SGVhcDo6Y29sbGVjdEFzeW5jKToK
KyAgICAgICAgKEpTQzo6SGVhcDo6Y29sbGVjdFN5bmMpOgorICAgICAgICAoSlNDOjpIZWFwOjpz
dG9wSWZOZWNlc3NhcnlTbG93KToKKyAgICAgICAgKEpTQzo6SGVhcDo6Y29sbGVjdElmTmVjZXNz
YXJ5T3JEZWZlcik6CisgICAgICAgIC0gY29uc2VydmF0aXZlbHkgYXNzZXJ0IGV4cGVjdERvZXNH
QyBvbiB0aGVzZSBmdW5jdGlvbnMgdGhhdCBtYXkgdHJpZ2dlciBhIEdDCisgICAgICAgICAgdGhv
dWdoIHRoZXkgZG9uJ3QgYWx3YXlzIGRvLgorCisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAg
ICAgIChKU0M6OkhlYXA6OmRlZmVycmFsRGVwdGggY29uc3QpOgorICAgICAgICAtIG5ldyB1dGls
aXR5IG1ldGhvZCB1c2VkIGJ5IHRoZSBhc3NlcnRpb24gaW4gRGVmZXJHQy4KKworICAgICAgICAq
IGhlYXAvSGVhcElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SGVhcDo6YWNxdWlyZUFjY2Vzcyk6
CisgICAgICAgIChKU0M6OkhlYXA6OnN0b3BJZk5lY2Vzc2FyeSk6CisgICAgICAgIC0gYXNzZXJ0
IGV4cGVjdERvZXNHQy4KKworICAgICAgICAqIHJ1bnRpbWUvRGlzYWxsb3dTY29wZS5oOgorICAg
ICAgICAtIERpc2FsbG93U2NvcGUgc2hvdWxkIGJlIHN0YWNrIGFsbG9jYXRlZCBiZWNhdXNlIGl0
J3MgYW4gUkFJSSBvYmplY3QuCisKIDIwMTktMDItMjAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtp
QGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgV2F0Y2hwb2ludFNldCBjcmVhdGlv
biBmb3IgU3ltYm9sVGFibGUgZW50cmllcyBpZiBWTTo6Y2FuVXNlSklUKCkgcmV0dXJucyBmYWxz
ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCShyZXZpc2lv
biAyNDE4NzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDE1LDYgKzEwMTUsMTIgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIE9T
UkV4aXQ6OmNvbXBpbGVPU1JFeAogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKCp2bSk7CiAKKyAgICBpZiAodmFsaWRhdGVERkdE
b2VzR0MpIHsKKyAgICAgICAgLy8gV2UncmUgYWJvdXQgdG8gZXhpdCBvcHRpbWl6ZWQgY29kZS4g
U28sIHRoZXJlJ3Mgbm8gbG9uZ2VyIGFueSBvcHRpbWl6ZWQKKyAgICAgICAgLy8gY29kZSBydW5u
aW5nIHRoYXQgZXhwZWN0cyBubyBHQy4KKyAgICAgICAgdm0tPmhlYXAuc2V0RXhwZWN0RG9lc0dD
KHRydWUpOworICAgIH0KKwogICAgIGlmICh2bS0+Y2FsbEZyYW1lRm9yQ2F0Y2gpCiAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHZtLT5jYWxsRnJhbWVGb3JDYXRjaCA9PSBleGVjKTsKIApAQCAtMTM5
OSw2ICsxNDA1LDExIEBAIHZvaWQgT1NSRXhpdDo6Y29tcGlsZUV4aXQoQ0NhbGxIZWxwZXJzJiAK
ICAgICAgICAgLy8gV2UncmUgYWJvdXQgdG8gZXhpdCBvcHRpbWl6ZWQgY29kZS4gU28sIHRoZXJl
J3Mgbm8gbG9uZ2VyIGFueSBvcHRpbWl6ZWQKICAgICAgICAgLy8gY29kZSBydW5uaW5nIHRoYXQg
ZXhwZWN0cyBubyBHQy4gV2UgbmVlZCB0byBzZXQgdGhpcyBiZWZvcmUgYXJndW1lbnRzCiAgICAg
ICAgIC8vIG1hdGVyaWFsaXphdGlvbiBiZWxvdyAoc2VlIGVtaXRSZXN0b3JlQXJndW1lbnRzKCkp
LgorCisgICAgICAgIC8vIEV2ZW4gdGhvdWdoIHdlIHNldCBIZWFwOjptX2V4cGVjdERvZXNHQyBp
biBjb21waWxlT1NSRXhpdCgpLCB3ZSBhbHNvIG5lZWQKKyAgICAgICAgLy8gdG8gc2V0IGl0IGhl
cmUgYmVjYXVzZSBjb21waWxlT1NSRXhpdCgpIGlzIG9ubHkgY2FsbGVkIG9uIHRoZSBmaXJzdCB0
aW1lCisgICAgICAgIC8vIHdlIGV4aXQgZnJvbSB0aGlzIHNpdGUsIGJ1dCBhbGwgc3Vic2VxdWVu
dCBleGl0cyB3aWxsIHRha2UgdGhpcyBjb21waWxlZAorICAgICAgICAvLyByYW1wIHdpdGhvdXQg
Y2FsbGluZyBjb21waWxlT1NSRXhpdCgpIGZpcnN0LgogICAgICAgICBqaXQuc3RvcmU4KENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKHRydWUpLCB2bS5oZWFwLmFkZHJlc3NPZkV4cGVjdERvZXNH
QygpKTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhp
dENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE9TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9uIDI0MTg3MykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ4
LDYgKzI0OCwxMSBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YigKICAgICAgICAgLy8gV2UncmUg
YWJvdXQgdG8gZXhpdCBvcHRpbWl6ZWQgY29kZS4gU28sIHRoZXJlJ3Mgbm8gbG9uZ2VyIGFueSBv
cHRpbWl6ZWQKICAgICAgICAgLy8gY29kZSBydW5uaW5nIHRoYXQgZXhwZWN0cyBubyBHQy4gV2Ug
bmVlZCB0byBzZXQgdGhpcyBiZWZvcmUgb2JqZWN0CiAgICAgICAgIC8vIG1hdGVyaWFsaXphdGlv
biBiZWxvdy4KKworICAgICAgICAvLyBFdmVuIHRob3VnaCB3ZSBzZXQgSGVhcDo6bV9leHBlY3RE
b2VzR0MgaW4gY29tcGlsZUZUTE9TUkV4aXQoKSwgd2UgYWxzbyBuZWVkCisgICAgICAgIC8vIHRv
IHNldCBpdCBoZXJlIGJlY2F1c2UgY29tcGlsZUZUTE9TUkV4aXQoKSBpcyBvbmx5IGNhbGxlZCBv
biB0aGUgZmlyc3QgdGltZQorICAgICAgICAvLyB3ZSBleGl0IGZyb20gdGhpcyBzaXRlLCBidXQg
YWxsIHN1YnNlcXVlbnQgZXhpdHMgd2lsbCB0YWtlIHRoaXMgY29tcGlsZWQKKyAgICAgICAgLy8g
cmFtcCB3aXRob3V0IGNhbGxpbmcgY29tcGlsZUZUTE9TUkV4aXQoKSBmaXJzdC4KICAgICAgICAg
aml0LnN0b3JlOChDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMih0cnVlKSwgdm0tPmhlYXAuYWRk
cmVzc09mRXhwZWN0RG9lc0dDKCkpOwogICAgIH0KIApAQCAtNTI2LDYgKzUzMSwxMyBAQCBleHRl
cm4gIkMiIHZvaWQqIGNvbXBpbGVGVExPU1JFeGl0KEV4ZWNTCiAgICAgICAgIGRhdGFMb2coIkNv
bXBpbGluZyBPU1IgZXhpdCB3aXRoIGV4aXRJRCA9ICIsIGV4aXRJRCwgIlxuIik7CiAKICAgICBW
TSYgdm0gPSBleGVjLT52bSgpOworCisgICAgaWYgKHZhbGlkYXRlREZHRG9lc0dDKSB7CisgICAg
ICAgIC8vIFdlJ3JlIGFib3V0IHRvIGV4aXQgb3B0aW1pemVkIGNvZGUuIFNvLCB0aGVyZSdzIG5v
IGxvbmdlciBhbnkgb3B0aW1pemVkCisgICAgICAgIC8vIGNvZGUgcnVubmluZyB0aGF0IGV4cGVj
dHMgbm8gR0MuCisgICAgICAgIHZtLmhlYXAuc2V0RXhwZWN0RG9lc0dDKHRydWUpOworICAgIH0K
KwogICAgIGlmICh2bS5jYWxsRnJhbWVGb3JDYXRjaCkKICAgICAgICAgUkVMRUFTRV9BU1NFUlQo
dm0uY2FsbEZyYW1lRm9yQ2F0Y2ggPT0gZXhlYyk7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmNwcAkocmV2aXNpb24gMjQxODcz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJzcGFjZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3LTIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0xMjIsNiArMTIyLDkgQEAgdm9pZCogQ29tcGxldGVTdWJzcGFjZTo6
YWxsb2NhdGVTbG93KFZNJgogCiB2b2lkKiBDb21wbGV0ZVN1YnNwYWNlOjp0cnlBbGxvY2F0ZVNs
b3coVk0mIHZtLCBzaXplX3Qgc2l6ZSwgR0NEZWZlcnJhbENvbnRleHQqIGRlZmVycmFsQ29udGV4
dCkKIHsKKyAgICBpZiAodmFsaWRhdGVERkdEb2VzR0MpCisgICAgICAgIFJFTEVBU0VfQVNTRVJU
KHZtLmhlYXAuZXhwZWN0RG9lc0dDKCkpOworCiAgICAgc2FuaXRpemVTdGFja0ZvclZNKCZ2bSk7
CiAgICAgCiAgICAgaWYgKEFsbG9jYXRvciBhbGxvY2F0b3IgPSBhbGxvY2F0b3JGb3Ioc2l6ZSwg
QWxsb2NhdG9yRm9yTW9kZTo6RW5zdXJlQWxsb2NhdG9yKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2VJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJzcGFjZUlubGluZXMuaAkocmV2aXNp
b24gMjQxODczKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJzcGFj
ZUlubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICsyOSw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiBBTFdBWVNfSU5MSU5FIHZvaWQqIENvbXBsZXRlU3Vic3BhY2U6OmFsbG9jYXRlTm9uVmlydHVh
bChWTSYgdm0sIHNpemVfdCBzaXplLCBHQ0RlZmVycmFsQ29udGV4dCogZGVmZXJyYWxDb250ZXh0
LCBBbGxvY2F0aW9uRmFpbHVyZU1vZGUgZmFpbHVyZU1vZGUpCiB7CisgICAgaWYgKHZhbGlkYXRl
REZHRG9lc0dDKQorICAgICAgICBSRUxFQVNFX0FTU0VSVCh2bS5oZWFwLmV4cGVjdERvZXNHQygp
KTsKKwogICAgIGlmIChBbGxvY2F0b3IgYWxsb2NhdG9yID0gYWxsb2NhdG9yRm9yTm9uVmlydHVh
bChzaXplLCBBbGxvY2F0b3JGb3JNb2RlOjpBbGxvY2F0b3JJZkV4aXN0cykpCiAgICAgICAgIHJl
dHVybiBhbGxvY2F0b3IuYWxsb2NhdGUoZGVmZXJyYWxDb250ZXh0LCBmYWlsdXJlTW9kZSk7CiAg
ICAgcmV0dXJuIGFsbG9jYXRlU2xvdyh2bSwgc2l6ZSwgZGVmZXJyYWxDb250ZXh0LCBmYWlsdXJl
TW9kZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9EZWZlckdDLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRGVmZXJHQy5oCShyZXZpc2lvbiAy
NDE4NzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9EZWZlckdDLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMyw2ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBEZWZlckdD
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZWZlckdDKTsKKyAgICBXVEZfRk9SQklEX0hF
QVBfQUxMT0NBVElPTjsKIHB1YmxpYzoKICAgICBEZWZlckdDKEhlYXAmIGhlYXApCiAgICAgICAg
IDogbV9oZWFwKGhlYXApCkBAIC00Miw2ICs0MywxMiBAQCBwdWJsaWM6CiAgICAgCiAgICAgfkRl
ZmVyR0MoKQogICAgIHsKKyAgICAgICAgaWYgKHZhbGlkYXRlREZHRG9lc0dDKSB7CisgICAgICAg
ICAgICAvLyBJdCBpcyBvbmx5IHBvc3NpYmxlIHRvIHRyaWdnZXIgYSBHQyBoZXJlIG9ubHkgaWYg
dGhpcyBEZWZlckdDCisgICAgICAgICAgICAvLyBzY29wZSBpcyB0aGUgb3V0ZXJtb3N0IGRlZmVy
cmFsIHNjb3BlLgorICAgICAgICAgICAgaWYgKG1faGVhcC5kZWZlcnJhbERlcHRoKCkgPT0gMSkK
KyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChtX2hlYXAuZXhwZWN0RG9lc0dDKCkpOwor
ICAgICAgICB9CiAgICAgICAgIG1faGVhcC5kZWNyZW1lbnREZWZlcnJhbERlcHRoQW5kR0NJZk5l
ZWRlZCgpOwogICAgIH0KIApAQCAtNTEsNiArNTgsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBEZWZl
ckdDRm9yQVdoaWxlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZWZlckdDRm9yQVdoaWxl
KTsKKyAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKIHB1YmxpYzoKICAgICBEZWZlckdD
Rm9yQVdoaWxlKEhlYXAmIGhlYXApCiAgICAgICAgIDogbV9oZWFwKGhlYXApCkBAIC02OSw2ICs3
Nyw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIERpc2FsbG93R0MgOiBwdWJsaWMgRGlzYWxsb3dTY29w
ZTxEaXNhbGxvd0dDPiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGlzYWxsb3dHQyk7Cisg
ICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiAgICAgdHlwZWRlZiBEaXNhbGxvd1Njb3Bl
PERpc2FsbG93R0M+IEJhc2U7CiBwdWJsaWM6CiAjaWZkZWYgTkRFQlVHCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMjQxODczKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogIENvcHlyaWdodCAoQykgMjAwMy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtp
dC5vcmc+CiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTEwMjksNiArMTAyOSw5IEBAIHZvaWQgSGVhcDo6Y29s
bGVjdChTeW5jaHJvbm91c25lc3Mgc3luY2gKIAogdm9pZCBIZWFwOjpjb2xsZWN0Tm93KFN5bmNo
cm9ub3VzbmVzcyBzeW5jaHJvbm91c25lc3MsIEdDUmVxdWVzdCByZXF1ZXN0KQogeworICAgIGlm
ICh2YWxpZGF0ZURGR0RvZXNHQykKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoZXhwZWN0RG9lc0dD
KCkpOworCiAgICAgc3dpdGNoIChzeW5jaHJvbm91c25lc3MpIHsKICAgICBjYXNlIEFzeW5jOiB7
CiAgICAgICAgIGNvbGxlY3RBc3luYyhyZXF1ZXN0KTsKQEAgLTEwNjEsNiArMTA2NCw5IEBAIHZv
aWQgSGVhcDo6Y29sbGVjdE5vdyhTeW5jaHJvbm91c25lc3Mgc3kKIAogdm9pZCBIZWFwOjpjb2xs
ZWN0QXN5bmMoR0NSZXF1ZXN0IHJlcXVlc3QpCiB7CisgICAgaWYgKHZhbGlkYXRlREZHRG9lc0dD
KQorICAgICAgICBSRUxFQVNFX0FTU0VSVChleHBlY3REb2VzR0MoKSk7CisKICAgICBpZiAoIW1f
aXNTYWZlVG9Db2xsZWN0KQogICAgICAgICByZXR1cm47CiAKQEAgLTEwODIsOSArMTA4OCwxMiBA
QCB2b2lkIEhlYXA6OmNvbGxlY3RBc3luYyhHQ1JlcXVlc3QgcmVxdWVzCiAKIHZvaWQgSGVhcDo6
Y29sbGVjdFN5bmMoR0NSZXF1ZXN0IHJlcXVlc3QpCiB7CisgICAgaWYgKHZhbGlkYXRlREZHRG9l
c0dDKQorICAgICAgICBSRUxFQVNFX0FTU0VSVChleHBlY3REb2VzR0MoKSk7CisKICAgICBpZiAo
IW1faXNTYWZlVG9Db2xsZWN0KQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICB3YWl0Rm9y
Q29sbGVjdGlvbihyZXF1ZXN0Q29sbGVjdGlvbihyZXF1ZXN0KSk7CiB9CiAKQEAgLTE3MzcsNiAr
MTc0Niw5IEBAIE5FVkVSX0lOTElORSB2b2lkIEhlYXA6OnJlc3VtZVRoZU11dGF0b3IKIAogdm9p
ZCBIZWFwOjpzdG9wSWZOZWNlc3NhcnlTbG93KCkKIHsKKyAgICBpZiAodmFsaWRhdGVERkdEb2Vz
R0MpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGV4cGVjdERvZXNHQygpKTsKKwogICAgIHdoaWxl
IChzdG9wSWZOZWNlc3NhcnlTbG93KG1fd29ybGRTdGF0ZS5sb2FkKCkpKSB7IH0KICAgICAKICAg
ICBSRUxFQVNFX0FTU0VSVChtX3dvcmxkU3RhdGUubG9hZCgpICYgaGFzQWNjZXNzQml0KTsKQEAg
LTE3NDksNiArMTc2MSw5IEBAIHZvaWQgSGVhcDo6c3RvcElmTmVjZXNzYXJ5U2xvdygpCiAKIGJv
b2wgSGVhcDo6c3RvcElmTmVjZXNzYXJ5U2xvdyh1bnNpZ25lZCBvbGRTdGF0ZSkKIHsKKyAgICBp
ZiAodmFsaWRhdGVERkdEb2VzR0MpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGV4cGVjdERvZXNH
QygpKTsKKwogICAgIFJFTEVBU0VfQVNTRVJUKG9sZFN0YXRlICYgaGFzQWNjZXNzQml0KTsKICAg
ICBSRUxFQVNFX0FTU0VSVCghKG9sZFN0YXRlICYgc3RvcHBlZEJpdCkpOwogICAgIApAQCAtMjUz
OCw5ICsyNTUzLDEyIEBAIHZvaWQgSGVhcDo6cmVwb3J0RXh0ZXJuYWxNZW1vcnlWaXNpdGVkKHMK
IHZvaWQgSGVhcDo6Y29sbGVjdElmTmVjZXNzYXJ5T3JEZWZlcihHQ0RlZmVycmFsQ29udGV4dCog
ZGVmZXJyYWxDb250ZXh0KQogewogICAgIEFTU0VSVChkZWZlcnJhbENvbnRleHQgfHwgaXNEZWZl
cnJlZCgpIHx8ICFEaXNhbGxvd0dDOjppc0luRWZmZWN0T25DdXJyZW50VGhyZWFkKCkpOworICAg
IGlmICh2YWxpZGF0ZURGR0RvZXNHQykKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoZXhwZWN0RG9l
c0dDKCkpOwogCiAgICAgaWYgKCFtX2lzU2FmZVRvQ29sbGVjdCkKICAgICAgICAgcmV0dXJuOwor
CiAgICAgc3dpdGNoIChtdXRhdG9yU3RhdGUoKSkgewogICAgIGNhc2UgTXV0YXRvclN0YXRlOjpS
dW5uaW5nOgogICAgIGNhc2UgTXV0YXRvclN0YXRlOjpBbGxvY2F0aW5nOgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2aXNpb24gMjQxODczKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NDAsNiArNTQwLDcgQEAgcHJp
dmF0ZToKIAogICAgIGJvb2wgc2hvdWxkRG9GdWxsQ29sbGVjdGlvbigpOwogCisgICAgdW5zaWdu
ZWQgZGVmZXJyYWxEZXB0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXJyYWxEZXB0aDsgfQogICAg
IHZvaWQgaW5jcmVtZW50RGVmZXJyYWxEZXB0aCgpOwogICAgIHZvaWQgZGVjcmVtZW50RGVmZXJy
YWxEZXB0aCgpOwogICAgIHZvaWQgZGVjcmVtZW50RGVmZXJyYWxEZXB0aEFuZEdDSWZOZWVkZWQo
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxpbmVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcElubGluZXMuaAkocmV2aXNp
b24gMjQxODczKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcElubGluZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtMjM4LDYgKzIzOCw5IEBAIGlubGluZSB2b2lkIEhlYXA6OmRlcHJl
Y2F0ZWRSZXBvcnRFeHRyYU0KIAogaW5saW5lIHZvaWQgSGVhcDo6YWNxdWlyZUFjY2VzcygpCiB7
CisgICAgaWYgKHZhbGlkYXRlREZHRG9lc0dDKQorICAgICAgICBSRUxFQVNFX0FTU0VSVChleHBl
Y3REb2VzR0MoKSk7CisKICAgICBpZiAobV93b3JsZFN0YXRlLmNvbXBhcmVFeGNoYW5nZVdlYWso
MCwgaGFzQWNjZXNzQml0KSkKICAgICAgICAgcmV0dXJuOwogICAgIGFjcXVpcmVBY2Nlc3NTbG93
KCk7CkBAIC0yNjIsNiArMjY1LDkgQEAgaW5saW5lIGJvb2wgSGVhcDo6bWF5TmVlZFRvU3RvcCgp
CiAKIGlubGluZSB2b2lkIEhlYXA6OnN0b3BJZk5lY2Vzc2FyeSgpCiB7CisgICAgaWYgKHZhbGlk
YXRlREZHRG9lc0dDKQorICAgICAgICBSRUxFQVNFX0FTU0VSVChleHBlY3REb2VzR0MoKSk7CisK
ICAgICBpZiAobWF5TmVlZFRvU3RvcCgpKQogICAgICAgICBzdG9wSWZOZWNlc3NhcnlTbG93KCk7
CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EaXNhbGxvd1Njb3BlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlzYWxsb3dTY29w
ZS5oCShyZXZpc2lvbiAyNDE4NzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
aXNhbGxvd1Njb3BlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE3LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0ZvcmJpZEhlYXBBbGxvY2F0aW9uLmg+CiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMzIsNiArMzMsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIHRlbXBsYXRlPGNsYXNzIFQ+CiBjbGFzcyBEaXNhbGxvd1Njb3Bl
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEaXNhbGxvd1Njb3BlKTsKKyAgICBXVEZfRk9S
QklEX0hFQVBfQUxMT0NBVElPTjsKIHB1YmxpYzoKICNpZmRlZiBOREVCVUcKIAo=
</data>
<flag name="review"
          id="379261"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362679</attachid>
            <date>2019-02-21 17:54:00 -0800</date>
            <delta_ts>2019-02-21 17:58:16 -0800</delta_ts>
            <desc>proposed patch after applying Saam&apos;s and Yusuke&apos;s feedback.</desc>
            <filename>bug-194911.patch</filename>
            <type>text/plain</type>
            <size>18289</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQxOTI0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4IEBA
CisyMDE5LTAyLTIxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgbW9yZSBkb2VzR0MoKSBhc3NlcnRpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0OTExCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODI4
NTcyMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxl
T1NSRXhpdCk6CisgICAgICAgIC0gU2V0IGV4cGVjdERvZXNHQyBoZXJlIGJlY2F1c2Ugd2Ugbm8g
bG9uZ2VyIGhhdmUgdG8gd29ycnkgYWJvdXQgbWlzc2luZyBzdG9yZQorICAgICAgICAgIGJhcnJp
ZXJzIGluIG9wdGltaXplZCBjb2RlIGFmdGVyIHRoaXMgcG9pbnQuICBUaGlzIHdpbGwgcHJldmVu
dCBmYWxzZSBwb3NpdGl2ZQorICAgICAgICAgIGFzc2VydGlvbiBmYWlsdXJlcyBhcmlzaW5nIGZy
b20gZnVuY3Rpb25zIGNhbGxlZCBiZW5lYXRoIGNvbXBpbGVPU1JFeGl0KCkuCisKKyAgICAgICAg
KEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxlRXhpdCk6CisgICAgICAgIC0gQWRkIGEgY29tbWVu
dCB0byBleHBsYWluIHdoeSB0aGUgZ2VuZXJhdGVkIHJhbXAgbmVlZHMgdG8gc2V0IGV4cGVjdERv
ZXNHQyBldmVuCisgICAgICAgICAgdGhvdWdoIGNvbXBpbGVPU1JFeGl0KCkgYWxzbyBzZXRzIGl0
LiAgUmVhc29uOiBjb21waWxlT1NSRXhpdCgpIGlzIG9ubHkgY2FsbGVkCisgICAgICAgICAgZm9y
IHRoZSBmaXJzdCBPU1IgZnJvbSB0aGlzIGNvZGUgb3JpZ2luLCB0aGUgZ2VuZXJhdGVkIHJhbXAg
aXMgY2FsbGVkIGZvciBtYW55CisgICAgICAgICAgc3Vic2VxdWVudHMgT1NSIGV4aXRzIGZyb20g
dGhpcyBjb2RlIG9yaWdpbi4KKworICAgICAgICAqIGZ0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OmNvbXBpbGVTdHViKToKKyAgICAgICAgLSBBZGRlZCBhIGNv
bW1lbnQgZm9yIHRoZSBlcXVpdmFsZW50IHJlYXNvbiB0byB0aGUgb25lIGFib3ZlLgorCisgICAg
ICAgIChKU0M6OkZUTDo6Y29tcGlsZUZUTE9TUkV4aXQpOgorICAgICAgICAtIFNldCBleHBlY3RE
b2VzR0MgaGVyZSBiZWNhdXNlIHdlIG5vIGxvbmdlciBoYXZlIHRvIHdvcnJ5IGFib3V0IG1pc3Np
bmcgc3RvcmUKKyAgICAgICAgICBiYXJyaWVycyBpbiBvcHRpbWl6ZWQgY29kZSBhZnRlciB0aGlz
IHBvaW50LiAgVGhpcyB3aWxsIHByZXZlbnQgZmFsc2UgcG9zaXRpdmUKKyAgICAgICAgICBhc3Nl
cnRpb24gZmFpbHVyZXMgYXJpc2luZyBmcm9tIGZ1bmN0aW9ucyBjYWxsZWQgYmVuZWF0aCBjb21w
aWxlRlRMT1NSRXhpdCgpLgorCisgICAgICAgICogaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmNwcDoK
KyAgICAgICAgKEpTQzo6Q29tcGxldGVTdWJzcGFjZTo6dHJ5QWxsb2NhdGVTbG93KToKKyAgICAg
ICAgKiBoZWFwL0NvbXBsZXRlU3Vic3BhY2VJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkNvbXBs
ZXRlU3Vic3BhY2U6OmFsbG9jYXRlTm9uVmlydHVhbCk6CisgICAgICAgIC0gYXNzZXJ0IGV4cGVj
dERvZXNHQy4KKworICAgICAgICAqIGhlYXAvRGVmZXJHQy5oOgorICAgICAgICAoSlNDOjpEZWZl
ckdDOjp+RGVmZXJHQyk6CisgICAgICAgIC0gYXNzZXJ0IGV4cGVjdERvZXNHQy4KKyAgICAgICAg
LSBBbHNvIGFkZGVkIFdURl9GT1JCSURfSEVBUF9BTExPQ0FUSU9OIHRvIERlZmVyR0MsIERlZmVy
R0NGb3JBV2hpbGUsIGFuZCBEaXNhbGxvd0dDCisgICAgICAgICAgYmVjYXVzZSBhbGwgMyBzaG91
bGQgYmUgc3RhY2sgYWxsb2NhdGVkIFJBSUkgb2JqZWN0cy4KKworICAgICAgICAqIGhlYXAvR0NE
ZWZlcnJhbENvbnRleHQuaDoKKyAgICAgICAgKiBoZWFwL0dDRGVmZXJyYWxDb250ZXh0SW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpHQ0RlZmVycmFsQ29udGV4dDo6fkdDRGVmZXJyYWxDb250ZXh0
KToKKyAgICAgICAgLSBBZGRlZCBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTi4KKyAgICAgICAg
LSBhc3NlcnQgZXhwZWN0RG9lc0dDLgorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAg
ICAgKEpTQzo6SGVhcDo6Y29sbGVjdE5vdyk6CisgICAgICAgIChKU0M6OkhlYXA6OmNvbGxlY3RB
c3luYyk6CisgICAgICAgIChKU0M6OkhlYXA6OmNvbGxlY3RTeW5jKToKKyAgICAgICAgKEpTQzo6
SGVhcDo6c3RvcElmTmVjZXNzYXJ5U2xvdyk6CisgICAgICAgIChKU0M6OkhlYXA6OmNvbGxlY3RJ
Zk5lY2Vzc2FyeU9yRGVmZXIpOgorICAgICAgICAqIGhlYXAvSGVhcElubGluZXMuaDoKKyAgICAg
ICAgKEpTQzo6SGVhcDo6YWNxdWlyZUFjY2Vzcyk6CisgICAgICAgIChKU0M6OkhlYXA6OnN0b3BJ
Zk5lY2Vzc2FyeSk6CisgICAgICAgICogaGVhcC9MYXJnZUFsbG9jYXRpb24uY3BwOgorICAgICAg
ICAoSlNDOjpMYXJnZUFsbG9jYXRpb246OnRyeUNyZWF0ZSk6CisgICAgICAgICogaGVhcC9Mb2Nh
bEFsbG9jYXRvcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6TG9jYWxBbGxvY2F0b3I6OmFsbG9j
YXRlKToKKyAgICAgICAgLSBjb25zZXJ2YXRpdmVseSBhc3NlcnQgZXhwZWN0RG9lc0dDIG9uIHRo
ZXNlIGZ1bmN0aW9ucyB0aGF0IG1heSB0cmlnZ2VyIGEgR0MKKyAgICAgICAgICB0aG91Z2ggdGhl
eSBkb24ndCBhbHdheXMgZG8uCisKKyAgICAgICAgKiBydW50aW1lL0Rpc2FsbG93U2NvcGUuaDoK
KyAgICAgICAgLSBEaXNhbGxvd1Njb3BlIHNob3VsZCBiZSBzdGFjayBhbGxvY2F0ZWQgYmVjYXVz
ZSBpdCdzIGFuIFJBSUkgb2JqZWN0LgorCisgICAgICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OnRyeUFsbG9jYXRlQ2VsbEhlbHBlcik6CisgICAgICAgIC0gUmVt
b3ZlIHRoZSBleHBlY3REb2VzR0MgYXNzZXJ0aW9uIGJlY2F1c2UgaXQgaXMgbm93IGNvdmVyZWQg
YnkgYXNzZXJ0aW9ucyBpbgorICAgICAgICAgIENvbXBsZXRlU3Vic3BhY2UsIExhcmdlQWxsb2Nh
dGlvbiwgYW5kIExvY2FsQWxsb2NhdG9yLgorCisgICAgICAgICogcnVudGltZS9SZWdFeHBNYXRj
aGVzQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVnRXhwTWF0Y2hlc0FycmF5KToKKyAg
ICAgICAgLSBhc3NlcnQgZXhwZWN0RG9lc0dDLgorCiAyMDE5LTAyLTIxICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIEZhc3QgTWFsbG9jIGFz
IG11Y2ggYXMgcG9zc2libGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RXhpdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JF
eGl0LmNwcAkocmV2aXNpb24gMjQxOTI0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JFeGl0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxNSw2ICsxMDE1LDEyIEBAIHZvaWQg
SklUX09QRVJBVElPTiBPU1JFeGl0Ojpjb21waWxlT1NSRXgKICAgICBWTSogdm0gPSAmZXhlYy0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSgqdm0pOwogCisgICAg
aWYgKHZhbGlkYXRlREZHRG9lc0dDKSB7CisgICAgICAgIC8vIFdlJ3JlIGFib3V0IHRvIGV4aXQg
b3B0aW1pemVkIGNvZGUuIFNvLCB0aGVyZSdzIG5vIGxvbmdlciBhbnkgb3B0aW1pemVkCisgICAg
ICAgIC8vIGNvZGUgcnVubmluZyB0aGF0IGV4cGVjdHMgbm8gR0MuCisgICAgICAgIHZtLT5oZWFw
LnNldEV4cGVjdERvZXNHQyh0cnVlKTsKKyAgICB9CisKICAgICBpZiAodm0tPmNhbGxGcmFtZUZv
ckNhdGNoKQogICAgICAgICBSRUxFQVNFX0FTU0VSVCh2bS0+Y2FsbEZyYW1lRm9yQ2F0Y2ggPT0g
ZXhlYyk7CiAKQEAgLTEzOTksNiArMTQwNSwxMSBAQCB2b2lkIE9TUkV4aXQ6OmNvbXBpbGVFeGl0
KENDYWxsSGVscGVycyYgCiAgICAgICAgIC8vIFdlJ3JlIGFib3V0IHRvIGV4aXQgb3B0aW1pemVk
IGNvZGUuIFNvLCB0aGVyZSdzIG5vIGxvbmdlciBhbnkgb3B0aW1pemVkCiAgICAgICAgIC8vIGNv
ZGUgcnVubmluZyB0aGF0IGV4cGVjdHMgbm8gR0MuIFdlIG5lZWQgdG8gc2V0IHRoaXMgYmVmb3Jl
IGFyZ3VtZW50cwogICAgICAgICAvLyBtYXRlcmlhbGl6YXRpb24gYmVsb3cgKHNlZSBlbWl0UmVz
dG9yZUFyZ3VtZW50cygpKS4KKworICAgICAgICAvLyBFdmVuIHRob3VnaCB3ZSBzZXQgSGVhcDo6
bV9leHBlY3REb2VzR0MgaW4gY29tcGlsZU9TUkV4aXQoKSwgd2UgYWxzbyBuZWVkCisgICAgICAg
IC8vIHRvIHNldCBpdCBoZXJlIGJlY2F1c2UgY29tcGlsZU9TUkV4aXQoKSBpcyBvbmx5IGNhbGxl
ZCBvbiB0aGUgZmlyc3QgdGltZQorICAgICAgICAvLyB3ZSBleGl0IGZyb20gdGhpcyBzaXRlLCBi
dXQgYWxsIHN1YnNlcXVlbnQgZXhpdHMgd2lsbCB0YWtlIHRoaXMgY29tcGlsZWQKKyAgICAgICAg
Ly8gcmFtcCB3aXRob3V0IGNhbGxpbmcgY29tcGlsZU9TUkV4aXQoKSBmaXJzdC4KICAgICAgICAg
aml0LnN0b3JlOChDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMih0cnVlKSwgdm0uaGVhcC5hZGRy
ZXNzT2ZFeHBlY3REb2VzR0MoKSk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAyNDE5MjQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI0OCw2ICsyNDgsMTEgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0dWIoCiAg
ICAgICAgIC8vIFdlJ3JlIGFib3V0IHRvIGV4aXQgb3B0aW1pemVkIGNvZGUuIFNvLCB0aGVyZSdz
IG5vIGxvbmdlciBhbnkgb3B0aW1pemVkCiAgICAgICAgIC8vIGNvZGUgcnVubmluZyB0aGF0IGV4
cGVjdHMgbm8gR0MuIFdlIG5lZWQgdG8gc2V0IHRoaXMgYmVmb3JlIG9iamVjdAogICAgICAgICAv
LyBtYXRlcmlhbGl6YXRpb24gYmVsb3cuCisKKyAgICAgICAgLy8gRXZlbiB0aG91Z2ggd2Ugc2V0
IEhlYXA6Om1fZXhwZWN0RG9lc0dDIGluIGNvbXBpbGVGVExPU1JFeGl0KCksIHdlIGFsc28gbmVl
ZAorICAgICAgICAvLyB0byBzZXQgaXQgaGVyZSBiZWNhdXNlIGNvbXBpbGVGVExPU1JFeGl0KCkg
aXMgb25seSBjYWxsZWQgb24gdGhlIGZpcnN0IHRpbWUKKyAgICAgICAgLy8gd2UgZXhpdCBmcm9t
IHRoaXMgc2l0ZSwgYnV0IGFsbCBzdWJzZXF1ZW50IGV4aXRzIHdpbGwgdGFrZSB0aGlzIGNvbXBp
bGVkCisgICAgICAgIC8vIHJhbXAgd2l0aG91dCBjYWxsaW5nIGNvbXBpbGVGVExPU1JFeGl0KCkg
Zmlyc3QuCiAgICAgICAgIGppdC5zdG9yZTgoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIodHJ1
ZSksIHZtLT5oZWFwLmFkZHJlc3NPZkV4cGVjdERvZXNHQygpKTsKICAgICB9CiAKQEAgLTUyNiw2
ICs1MzEsMTMgQEAgZXh0ZXJuICJDIiB2b2lkKiBjb21waWxlRlRMT1NSRXhpdChFeGVjUwogICAg
ICAgICBkYXRhTG9nKCJDb21waWxpbmcgT1NSIGV4aXQgd2l0aCBleGl0SUQgPSAiLCBleGl0SUQs
ICJcbiIpOwogCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKworICAgIGlmICh2YWxpZGF0ZURG
R0RvZXNHQykgeworICAgICAgICAvLyBXZSdyZSBhYm91dCB0byBleGl0IG9wdGltaXplZCBjb2Rl
LiBTbywgdGhlcmUncyBubyBsb25nZXIgYW55IG9wdGltaXplZAorICAgICAgICAvLyBjb2RlIHJ1
bm5pbmcgdGhhdCBleHBlY3RzIG5vIEdDLgorICAgICAgICB2bS5oZWFwLnNldEV4cGVjdERvZXNH
Qyh0cnVlKTsKKyAgICB9CisKICAgICBpZiAodm0uY2FsbEZyYW1lRm9yQ2F0Y2gpCiAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHZtLmNhbGxGcmFtZUZvckNhdGNoID09IGV4ZWMpOwogICAgIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJzcGFjZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJzcGFjZS5jcHAJ
KHJldmlzaW9uIDI0MTkyNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRl
U3Vic3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTIyLDYgKzEyMiw5IEBAIHZvaWQqIENv
bXBsZXRlU3Vic3BhY2U6OmFsbG9jYXRlU2xvdyhWTSYKIAogdm9pZCogQ29tcGxldGVTdWJzcGFj
ZTo6dHJ5QWxsb2NhdGVTbG93KFZNJiB2bSwgc2l6ZV90IHNpemUsIEdDRGVmZXJyYWxDb250ZXh0
KiBkZWZlcnJhbENvbnRleHQpCiB7CisgICAgaWYgKHZhbGlkYXRlREZHRG9lc0dDKQorICAgICAg
ICBSRUxFQVNFX0FTU0VSVCh2bS5oZWFwLmV4cGVjdERvZXNHQygpKTsKKwogICAgIHNhbml0aXpl
U3RhY2tGb3JWTSgmdm0pOwogICAgIAogICAgIGlmIChBbGxvY2F0b3IgYWxsb2NhdG9yID0gYWxs
b2NhdG9yRm9yKHNpemUsIEFsbG9jYXRvckZvck1vZGU6OkVuc3VyZUFsbG9jYXRvcikpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlSW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2VJ
bmxpbmVzLmgJKHJldmlzaW9uIDI0MTkyNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0NvbXBsZXRlU3Vic3BhY2VJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMjksOSBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogQUxXQVlTX0lOTElORSB2b2lkKiBDb21wbGV0ZVN1YnNwYWNlOjph
bGxvY2F0ZU5vblZpcnR1YWwoVk0mIHZtLCBzaXplX3Qgc2l6ZSwgR0NEZWZlcnJhbENvbnRleHQq
IGRlZmVycmFsQ29udGV4dCwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlIGZhaWx1cmVNb2RlKQogewor
ICAgIGlmICh2YWxpZGF0ZURGR0RvZXNHQykKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQodm0uaGVh
cC5leHBlY3REb2VzR0MoKSk7CisKICAgICBpZiAoQWxsb2NhdG9yIGFsbG9jYXRvciA9IGFsbG9j
YXRvckZvck5vblZpcnR1YWwoc2l6ZSwgQWxsb2NhdG9yRm9yTW9kZTo6QWxsb2NhdG9ySWZFeGlz
dHMpKQogICAgICAgICByZXR1cm4gYWxsb2NhdG9yLmFsbG9jYXRlKGRlZmVycmFsQ29udGV4dCwg
ZmFpbHVyZU1vZGUpOwogICAgIHJldHVybiBhbGxvY2F0ZVNsb3codm0sIHNpemUsIGRlZmVycmFs
Q29udGV4dCwgZmFpbHVyZU1vZGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
RGVmZXJHQy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0RlZmVy
R0MuaAkocmV2aXNpb24gMjQxOTI0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRGVm
ZXJHQy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNiArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogY2xhc3MgRGVmZXJHQyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGVmZXJHQyk7Cisg
ICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiBwdWJsaWM6CiAgICAgRGVmZXJHQyhIZWFw
JiBoZWFwKQogICAgICAgICA6IG1faGVhcChoZWFwKQpAQCAtNDIsNiArNDMsOCBAQCBwdWJsaWM6
CiAgICAgCiAgICAgfkRlZmVyR0MoKQogICAgIHsKKyAgICAgICAgaWYgKHZhbGlkYXRlREZHRG9l
c0dDKQorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9oZWFwLmV4cGVjdERvZXNHQygpKTsK
ICAgICAgICAgbV9oZWFwLmRlY3JlbWVudERlZmVycmFsRGVwdGhBbmRHQ0lmTmVlZGVkKCk7CiAg
ICAgfQogCkBAIC01MSw2ICs1NCw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIERlZmVyR0NGb3JBV2hp
bGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERlZmVyR0NGb3JBV2hpbGUpOworICAgIFdU
Rl9GT1JCSURfSEVBUF9BTExPQ0FUSU9OOwogcHVibGljOgogICAgIERlZmVyR0NGb3JBV2hpbGUo
SGVhcCYgaGVhcCkKICAgICAgICAgOiBtX2hlYXAoaGVhcCkKQEAgLTY5LDYgKzczLDcgQEAgcHJp
dmF0ZToKIAogY2xhc3MgRGlzYWxsb3dHQyA6IHB1YmxpYyBEaXNhbGxvd1Njb3BlPERpc2FsbG93
R0M+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEaXNhbGxvd0dDKTsKKyAgICBXVEZfRk9S
QklEX0hFQVBfQUxMT0NBVElPTjsKICAgICB0eXBlZGVmIERpc2FsbG93U2NvcGU8RGlzYWxsb3dH
Qz4gQmFzZTsKIHB1YmxpYzoKICNpZmRlZiBOREVCVUcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0dDRGVmZXJyYWxDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvR0NEZWZlcnJhbENvbnRleHQuaAkocmV2aXNpb24gMjQxOTI0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NEZWZlcnJhbENvbnRleHQuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYv
Rm9yYmlkSGVhcEFsbG9jYXRpb24uaD4KKwogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEhlYXA7
CkBAIC0zMiw2ICszNCw4IEBAIGNsYXNzIEJsb2NrRGlyZWN0b3J5OwogY2xhc3MgTG9jYWxBbGxv
Y2F0b3I7CiAKIGNsYXNzIEdDRGVmZXJyYWxDb250ZXh0IHsKKyAgICBXVEZfRk9SQklEX0hFQVBf
QUxMT0NBVElPTjsKKwogICAgIGZyaWVuZCBjbGFzcyBIZWFwOwogICAgIGZyaWVuZCBjbGFzcyBC
bG9ja0RpcmVjdG9yeTsKICAgICBmcmllbmQgY2xhc3MgTG9jYWxBbGxvY2F0b3I7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0RlZmVycmFsQ29udGV4dElubGluZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0RlZmVycmFsQ29udGV4dElu
bGluZXMuaAkocmV2aXNpb24gMjQxOTI0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
R0NEZWZlcnJhbENvbnRleHRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw2ICszNyw5
IEBAIEFMV0FZU19JTkxJTkUgR0NEZWZlcnJhbENvbnRleHQ6OkdDRGVmZXIKIAogQUxXQVlTX0lO
TElORSBHQ0RlZmVycmFsQ29udGV4dDo6fkdDRGVmZXJyYWxDb250ZXh0KCkKIHsKKyAgICBpZiAo
dmFsaWRhdGVERkdEb2VzR0MpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1faGVhcC5leHBlY3RE
b2VzR0MoKSk7CisKICAgICBpZiAoVU5MSUtFTFkobV9zaG91bGRHQykpCiAgICAgICAgIG1faGVh
cC5jb2xsZWN0SWZOZWNlc3NhcnlPckRlZmVyKCk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMjQxOTI0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENv
cHlyaWdodCAoQykgMjAwMy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
ICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAg
KgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKQEAgLTEwMjksNiArMTAyOSw5IEBAIHZvaWQgSGVhcDo6Y29sbGVjdChTeW5j
aHJvbm91c25lc3Mgc3luY2gKIAogdm9pZCBIZWFwOjpjb2xsZWN0Tm93KFN5bmNocm9ub3VzbmVz
cyBzeW5jaHJvbm91c25lc3MsIEdDUmVxdWVzdCByZXF1ZXN0KQogeworICAgIGlmICh2YWxpZGF0
ZURGR0RvZXNHQykKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoZXhwZWN0RG9lc0dDKCkpOworCiAg
ICAgc3dpdGNoIChzeW5jaHJvbm91c25lc3MpIHsKICAgICBjYXNlIEFzeW5jOiB7CiAgICAgICAg
IGNvbGxlY3RBc3luYyhyZXF1ZXN0KTsKQEAgLTEwNjEsNiArMTA2NCw5IEBAIHZvaWQgSGVhcDo6
Y29sbGVjdE5vdyhTeW5jaHJvbm91c25lc3Mgc3kKIAogdm9pZCBIZWFwOjpjb2xsZWN0QXN5bmMo
R0NSZXF1ZXN0IHJlcXVlc3QpCiB7CisgICAgaWYgKHZhbGlkYXRlREZHRG9lc0dDKQorICAgICAg
ICBSRUxFQVNFX0FTU0VSVChleHBlY3REb2VzR0MoKSk7CisKICAgICBpZiAoIW1faXNTYWZlVG9D
b2xsZWN0KQogICAgICAgICByZXR1cm47CiAKQEAgLTEwODIsOSArMTA4OCwxMiBAQCB2b2lkIEhl
YXA6OmNvbGxlY3RBc3luYyhHQ1JlcXVlc3QgcmVxdWVzCiAKIHZvaWQgSGVhcDo6Y29sbGVjdFN5
bmMoR0NSZXF1ZXN0IHJlcXVlc3QpCiB7CisgICAgaWYgKHZhbGlkYXRlREZHRG9lc0dDKQorICAg
ICAgICBSRUxFQVNFX0FTU0VSVChleHBlY3REb2VzR0MoKSk7CisKICAgICBpZiAoIW1faXNTYWZl
VG9Db2xsZWN0KQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICB3YWl0Rm9yQ29sbGVjdGlv
bihyZXF1ZXN0Q29sbGVjdGlvbihyZXF1ZXN0KSk7CiB9CiAKQEAgLTE3MzcsNiArMTc0Niw5IEBA
IE5FVkVSX0lOTElORSB2b2lkIEhlYXA6OnJlc3VtZVRoZU11dGF0b3IKIAogdm9pZCBIZWFwOjpz
dG9wSWZOZWNlc3NhcnlTbG93KCkKIHsKKyAgICBpZiAodmFsaWRhdGVERkdEb2VzR0MpCisgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKGV4cGVjdERvZXNHQygpKTsKKwogICAgIHdoaWxlIChzdG9wSWZO
ZWNlc3NhcnlTbG93KG1fd29ybGRTdGF0ZS5sb2FkKCkpKSB7IH0KICAgICAKICAgICBSRUxFQVNF
X0FTU0VSVChtX3dvcmxkU3RhdGUubG9hZCgpICYgaGFzQWNjZXNzQml0KTsKQEAgLTE3NDksNiAr
MTc2MSw5IEBAIHZvaWQgSGVhcDo6c3RvcElmTmVjZXNzYXJ5U2xvdygpCiAKIGJvb2wgSGVhcDo6
c3RvcElmTmVjZXNzYXJ5U2xvdyh1bnNpZ25lZCBvbGRTdGF0ZSkKIHsKKyAgICBpZiAodmFsaWRh
dGVERkdEb2VzR0MpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGV4cGVjdERvZXNHQygpKTsKKwog
ICAgIFJFTEVBU0VfQVNTRVJUKG9sZFN0YXRlICYgaGFzQWNjZXNzQml0KTsKICAgICBSRUxFQVNF
X0FTU0VSVCghKG9sZFN0YXRlICYgc3RvcHBlZEJpdCkpOwogICAgIApAQCAtMjUzOCw5ICsyNTUz
LDEyIEBAIHZvaWQgSGVhcDo6cmVwb3J0RXh0ZXJuYWxNZW1vcnlWaXNpdGVkKHMKIHZvaWQgSGVh
cDo6Y29sbGVjdElmTmVjZXNzYXJ5T3JEZWZlcihHQ0RlZmVycmFsQ29udGV4dCogZGVmZXJyYWxD
b250ZXh0KQogewogICAgIEFTU0VSVChkZWZlcnJhbENvbnRleHQgfHwgaXNEZWZlcnJlZCgpIHx8
ICFEaXNhbGxvd0dDOjppc0luRWZmZWN0T25DdXJyZW50VGhyZWFkKCkpOworICAgIGlmICh2YWxp
ZGF0ZURGR0RvZXNHQykKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoZXhwZWN0RG9lc0dDKCkpOwog
CiAgICAgaWYgKCFtX2lzU2FmZVRvQ29sbGVjdCkKICAgICAgICAgcmV0dXJuOworCiAgICAgc3dp
dGNoIChtdXRhdG9yU3RhdGUoKSkgewogICAgIGNhc2UgTXV0YXRvclN0YXRlOjpSdW5uaW5nOgog
ICAgIGNhc2UgTXV0YXRvclN0YXRlOjpBbGxvY2F0aW5nOgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwSW5saW5lcy5oCShyZXZpc2lvbiAyNDE5MjQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzgsNiAr
MjM4LDkgQEAgaW5saW5lIHZvaWQgSGVhcDo6ZGVwcmVjYXRlZFJlcG9ydEV4dHJhTQogCiBpbmxp
bmUgdm9pZCBIZWFwOjphY3F1aXJlQWNjZXNzKCkKIHsKKyAgICBpZiAodmFsaWRhdGVERkdEb2Vz
R0MpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGV4cGVjdERvZXNHQygpKTsKKwogICAgIGlmICht
X3dvcmxkU3RhdGUuY29tcGFyZUV4Y2hhbmdlV2VhaygwLCBoYXNBY2Nlc3NCaXQpKQogICAgICAg
ICByZXR1cm47CiAgICAgYWNxdWlyZUFjY2Vzc1Nsb3coKTsKQEAgLTI2Miw2ICsyNjUsOSBAQCBp
bmxpbmUgYm9vbCBIZWFwOjptYXlOZWVkVG9TdG9wKCkKIAogaW5saW5lIHZvaWQgSGVhcDo6c3Rv
cElmTmVjZXNzYXJ5KCkKIHsKKyAgICBpZiAodmFsaWRhdGVERkdEb2VzR0MpCisgICAgICAgIFJF
TEVBU0VfQVNTRVJUKGV4cGVjdERvZXNHQygpKTsKKwogICAgIGlmIChtYXlOZWVkVG9TdG9wKCkp
CiAgICAgICAgIHN0b3BJZk5lY2Vzc2FyeVNsb3coKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0xhcmdlQWxsb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTGFyZ2VBbGxvY2F0aW9uLmNwcAkocmV2aXNpb24gMjQxOTI0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTGFyZ2VBbGxvY2F0aW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogTGFyZ2VBbGxvY2F0
aW9uKiBMYXJnZUFsbG9jYXRpb246OnRyeUNyZWF0ZShIZWFwJiBoZWFwLCBzaXplX3Qgc2l6ZSwg
U3Vic3BhY2UqIHN1YnNwYWNlKQogeworICAgIGlmICh2YWxpZGF0ZURGR0RvZXNHQykKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoaGVhcC5leHBlY3REb2VzR0MoKSk7CisKICAgICAvLyBUaGlzIGlu
Y2x1ZGVzIHBhZGRpbmcgYXQgdGhlIGVuZCBvZiB0aGUgYWxsb2NhdGlvbiB0byBtYWludGFpbiB0
aGUgZGlzdGFuY2luZyBjb25zdHJhaW50LgogICAgIGNvbnN0ZXhwciBzaXplX3QgZGlzdGFuY2lu
ZyA9IG1pbmltdW1EaXN0YW5jZUJldHdlZW5DZWxsc0Zyb21EaWZmZXJlbnRPcmlnaW5zOwogICAg
IHNpemVfdCBzaXplQmVmb3JlRGlzdGFuY2luZyA9IGhlYWRlclNpemUoKSArIHNpemU7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Mb2NhbEFsbG9jYXRvcklubGluZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Mb2NhbEFsbG9jYXRvcklubGlu
ZXMuaAkocmV2aXNpb24gMjQxOTI0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTG9j
YWxBbGxvY2F0b3JJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzEsOCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogQUxXQVlTX0lOTElORSB2b2lkKiBMb2NhbEFsbG9jYXRvcjo6YWxsb2NhdGUo
R0NEZWZlcnJhbENvbnRleHQqIGRlZmVycmFsQ29udGV4dCwgQWxsb2NhdGlvbkZhaWx1cmVNb2Rl
IGZhaWx1cmVNb2RlKQogeworICAgIGlmICh2YWxpZGF0ZURGR0RvZXNHQykKKyAgICAgICAgUkVM
RUFTRV9BU1NFUlQobV9kaXJlY3RvcnktPmhlYXAoKS0+ZXhwZWN0RG9lc0dDKCkpOwogICAgIHJl
dHVybiBtX2ZyZWVMaXN0LmFsbG9jYXRlKAogICAgICAgICBbJl0gKCkgLT4gSGVhcENlbGwqIHsK
ICAgICAgICAgICAgIHNhbml0aXplU3RhY2tGb3JWTShtX2RpcmVjdG9yeS0+aGVhcCgpLT52bSgp
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rpc2FsbG93U2NvcGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EaXNhbGxvd1Njb3Bl
LmgJKHJldmlzaW9uIDI0MTkyNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rp
c2FsbG93U2NvcGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTctMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYvRm9yYmlkSGVhcEFsbG9jYXRpb24uaD4KICNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zMiw2ICszMyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogdGVtcGxhdGU8Y2xhc3MgVD4KIGNsYXNzIERpc2FsbG93U2NvcGUg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERpc2FsbG93U2NvcGUpOworICAgIFdURl9GT1JC
SURfSEVBUF9BTExPQ0FUSU9OOwogcHVibGljOgogI2lmZGVmIE5ERUJVRwogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAy
NDE5MjQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE2Niw5ICsxNjYsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgog
QUxXQVlTX0lOTElORSB2b2lkKiB0cnlBbGxvY2F0ZUNlbGxIZWxwZXIoSGVhcCYgaGVhcCwgc2l6
ZV90IHNpemUsIEdDRGVmZXJyYWxDb250ZXh0KiBkZWZlcnJhbENvbnRleHQsIEFsbG9jYXRpb25G
YWlsdXJlTW9kZSBmYWlsdXJlTW9kZSkKIHsKICAgICBWTSYgdm0gPSAqaGVhcC52bSgpOwotICAg
IGlmICh2YWxpZGF0ZURGR0RvZXNHQykKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoaGVhcC5leHBl
Y3REb2VzR0MoKSk7Ci0KICAgICBBU1NFUlQoZGVmZXJyYWxDb250ZXh0IHx8ICFEaXNhbGxvd0dD
Ojppc0luRWZmZWN0T25DdXJyZW50VGhyZWFkKCkpOwogICAgIEFTU0VSVChzaXplID49IHNpemVv
ZihUKSk7CiAgICAgSlNDZWxsKiByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0NlbGwqPihzdWJzcGFj
ZUZvcjxUPih2bSktPmFsbG9jYXRlTm9uVmlydHVhbCh2bSwgc2l6ZSwgZGVmZXJyYWxDb250ZXh0
LCBmYWlsdXJlTW9kZSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwTWF0Y2hlc0FycmF5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgJKHJldmlzaW9uIDI0MTkyNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCSh3b3JraW5nIGNvcHkp
CkBAIC02Miw2ICs2Miw5IEBAIEFMV0FZU19JTkxJTkUgSlNBcnJheSogY3JlYXRlUmVnRXhwTWF0
Y2gKICAgICBWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBp
bnB1dCwgY29uc3QgU3RyaW5nJiBpbnB1dFZhbHVlLAogICAgIFJlZ0V4cCogcmVnRXhwLCB1bnNp
Z25lZCBzdGFydE9mZnNldCwgTWF0Y2hSZXN1bHQmIHJlc3VsdCkKIHsKKyAgICBpZiAodmFsaWRh
dGVERkdEb2VzR0MpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKHZtLmhlYXAuZXhwZWN0RG9lc0dD
KCkpOworCiAgICAgVmVjdG9yPGludCwgMzI+IHN1YnBhdHRlcm5SZXN1bHRzOwogICAgIGludCBw
b3NpdGlvbiA9IHJlZ0V4cC0+bWF0Y2hJbmxpbmUodm0sIGlucHV0VmFsdWUsIHN0YXJ0T2Zmc2V0
LCBzdWJwYXR0ZXJuUmVzdWx0cyk7CiAgICAgaWYgKHBvc2l0aW9uID09IC0xKSB7Cg==
</data>
<flag name="review"
          id="379292"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
      

    </bug>

</bugzilla>