<?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>177259</bug_id>
          
          <creation_ts>2017-09-20 12:28:30 -0700</creation_ts>
          <short_desc>OfflineAudioContext does not validate allocation of destination buffer, results in null pointer dereference</short_desc>
          <delta_ts>2019-10-11 07:18:10 -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>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.12.4</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="Avi Saven">avi.saven</reporter>
          <assigned_to name="Bjorn Melinder">bjornm</assigned_to>
          <cc>ap</cc>
    
    <cc>bjornm</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1350900</commentid>
    <comment_count>0</comment_count>
      <attachid>321343</attachid>
    <who name="Avi Saven">avi.saven</who>
    <bug_when>2017-09-20 12:28:30 -0700</bug_when>
    <thetext>Created attachment 321343
A testcase causing the bug to trigger.

An OfflineAudioContext initialized with a frame size of -1 causes Float32Array to fail to allocate for m_renderTarget. m_renderTarget as a result gets set to null, this is not validated and as a result a null pointer is dereferenced, leading to a crash.

Steps to reproduce:
1) Run new webkitOfflineAudioContext(1, -1, 44100.0); in console

Expected results:
1) It throws an error

Build Date &amp; Hardware:
Built 09-19-2017 from master, macOS 10.12.5

Additional Information:
The allocation of the AudioBuffer occurs on AudioContext.cpp line 160, which directly passes numberOfFrames to Float32Array::create on AudioBuffer.cpp line 70. This failed allocation causes the allocation of the AudioBuffer to fail, returning null. This is directly passed to OfflineAudioDestinationNode::create, which goes to OfflineAudioDestinationNode::OfflineAudioDestinationNode, which calls renderTarget-&gt;sampleRate() in the constructor, causing the null pointer dereference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350968</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-20 14:10:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/34557006&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578345</commentid>
    <comment_count>2</comment_count>
      <attachid>380556</attachid>
    <who name="Bjorn Melinder">bjornm</who>
    <bug_when>2019-10-09 12:30:19 -0700</bug_when>
    <thetext>Created attachment 380556
Patch which fixes the bug.

Hi! Here&apos;s a patch which fixes the bug. This is my first contribution to WebKit, so I wasn&apos;t allowed to assign myself to the bug. I&apos;ve added LayoutTests which crashes before the patch is applied, but passes once the patch is applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578517</commentid>
    <comment_count>3</comment_count>
      <attachid>380606</attachid>
    <who name="Bjorn Melinder">bjornm</who>
    <bug_when>2019-10-09 22:02:46 -0700</bug_when>
    <thetext>Created attachment 380606
revised patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578529</commentid>
    <comment_count>4</comment_count>
      <attachid>380607</attachid>
    <who name="Bjorn Melinder">bjornm</who>
    <bug_when>2019-10-09 23:19:28 -0700</bug_when>
    <thetext>Created attachment 380607
whitespace fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578625</commentid>
    <comment_count>5</comment_count>
      <attachid>380607</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-10-10 06:57:39 -0700</bug_when>
    <thetext>Comment on attachment 380607
whitespace fix

Thanks for the patch bjornm!

Set the cq? flag if you would like someone to add this to the commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578866</commentid>
    <comment_count>6</comment_count>
      <attachid>380607</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-10 14:39:04 -0700</bug_when>
    <thetext>Comment on attachment 380607
whitespace fix

Rejecting attachment 380607 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 380607, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=380607&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=177259&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Updating working directory
Processing patch 380607 from bug 177259.
Fetching: https://bugs.webkit.org/attachment.cgi?id=380607
Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog

ERROR from SVN:
Item is out of date: File &apos;/trunk/LayoutTests/ChangeLog&apos; is out of date
W: d353ef1dac081cecead024488cebf67049d1d6a5 and refs/remotes/origin/master differ, using rebase:
:040000 040000 5b41967191d52892123402660994f4124311a7de e52780749b294b64c01f5d512889635447d01081 M	LayoutTests
:040000 040000 306bc68cae5cca6b352afe890b154353b8980d81 164d7496ca6450981ff22f035e81193c2b101837 M	Source
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog

ERROR from SVN:
Item is out of date: File &apos;/trunk/LayoutTests/ChangeLog&apos; is out of date
W: d353ef1dac081cecead024488cebf67049d1d6a5 and refs/remotes/origin/master differ, using rebase:
:040000 040000 5b41967191d52892123402660994f4124311a7de e52780749b294b64c01f5d512889635447d01081 M	LayoutTests
:040000 040000 306bc68cae5cca6b352afe890b154353b8980d81 164d7496ca6450981ff22f035e81193c2b101837 M	Source
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
Updating OpenSource
From https://git.webkit.org/git/WebKit
   867cf4cdd0e..fe799a5a648  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 250987 = 867cf4cdd0e763b3c4feae4fb680054c710fe41f
r250988 = fe799a5a64859783d4bcc7fffeea4cc7db2a7d62
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: https://webkit-queues.webkit.org/results/13115952</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579090</commentid>
    <comment_count>7</comment_count>
      <attachid>380607</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-11 07:18:08 -0700</bug_when>
    <thetext>Comment on attachment 380607
whitespace fix

Clearing flags on attachment: 380607

Committed r251007: &lt;https://trac.webkit.org/changeset/251007&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579091</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-11 07:18:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>321343</attachid>
            <date>2017-09-20 12:28:30 -0700</date>
            <delta_ts>2017-09-20 12:28:30 -0700</delta_ts>
            <desc>A testcase causing the bug to trigger.</desc>
            <filename>nullptr_deref2.html</filename>
            <type>text/html</type>
            <size>176</size>
            <attacher name="Avi Saven">avi.saven</attacher>
            
              <data encoding="base64">PGh0bWw+CjxzY3JpcHQ+CglmdW5jdGlvbiBkb0NyYXNoKCkgewoJCW5ldyB3ZWJraXRPZmZsaW5l
QXVkaW9Db250ZXh0KDEsIC0xLCA0NDEwMC4wKTsKCX0KPC9zY3JpcHQ+Cjxib2R5PgoJPGJ1dHRv
biBvbmNsaWNrPSJkb0NyYXNoKCkiPkNhdXNlIHRoZSBjcmFzaDwvYnV0dG9uPgo8L2JvZHk+Cjwv
aHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380556</attachid>
            <date>2019-10-09 12:30:19 -0700</date>
            <delta_ts>2019-10-09 22:02:46 -0700</delta_ts>
            <desc>Patch which fixes the bug.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>8241</size>
            <attacher name="Bjorn Melinder">bjornm</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDkxOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE5LTEwLTA5ICBCam9ybiBN
ZWxpbmRlciAgPGJqb3JubUBzcG90aWZ5LmNvbT4KKworICAgICAgICBPZmZsaW5lQXVkaW9Db250
ZXh0IGRvZXMgbm90IHZhbGlkYXRlIGFsbG9jYXRpb24gb2YgZGVzdGluYXRpb24gYnVmZmVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcyNTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCB0aGUg
YWxsb2NhdGlvbiBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIHRvIHRoZSBzdGF0aWMKKyAgICAg
ICAgT2ZmbGluZUF1ZGlvQ29udGV4dDo6Y3JlYXRlIG1ldGhvZCB3aGVyZSB3ZSBhcmUgYWJsZSB0
byBoYW5kbGUgYSBmYWlsZWQKKyAgICAgICAgYWxsb2NhdGlvbiBwcm9wZXJseSBhbmQgcmV0dXJu
IGFuIEV4Y2VwdGlvbi4gVGhpcyBjaGFuZ2UgaGFuZGxlcyBib3RoCisgICAgICAgIG5lZ2F0aXZl
IGxlbmd0aHMgYXMgd2VsbCBhcyB0b28gbGFyZ2UgbGVuZ3RocyB3aGVyZSB0aGUgbWVtb3J5IGNh
bm5vdAorICAgICAgICBiZSBhbGxvY2F0ZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OkF1ZGlv
Q29udGV4dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6T2ZmbGluZUF1ZGlvQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db250ZXh0OjpjcmVhdGUpOgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oOgorCiAyMDE5LTEwLTA5ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgoKICAgICAgICAgWyBNYWMgV0sy
IF0gTGF5b3V0IFRlc3QgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNldHRp
bmdzLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCShyZXZpc2lvbiAyNTA5MTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE1OCw3ICsxNTgsNyBAQCBBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1
bWVudCYgZG9jCiB9CgogLy8gQ29uc3RydWN0b3IgZm9yIG9mZmxpbmUgKG5vbi1yZWFsdGltZSkg
cmVuZGVyaW5nLgotQXVkaW9Db250ZXh0OjpBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50
LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0
IHNhbXBsZVJhdGUpCitBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1l
bnQsIEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJnZXQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9j
dW1lbnQpCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihkb2N1bWVu
dC5sb2dnZXIoKSkKQEAgLTE2NywxMSArMTY3LDExIEBAIEF1ZGlvQ29udGV4dDo6QXVkaW9Db250
ZXh0KERvY3VtZW50JiBkb2MKICAgICAsIG1faXNPZmZsaW5lQ29udGV4dCh0cnVlKQogICAgICwg
bV9tZWRpYVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OmNyZWF0ZSgqdGhpcykpCiAgICAg
LCBtX2V2ZW50UXVldWUoTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUoKnRoaXMp
KQorICAgICwgbV9yZW5kZXJUYXJnZXQocmVuZGVyVGFyZ2V0KQogewogICAgIGNvbnN0cnVjdENv
bW1vbigpOwoKICAgICAvLyBDcmVhdGUgYSBuZXcgZGVzdGluYXRpb24gZm9yIG9mZmxpbmUgcmVu
ZGVyaW5nLgotICAgIG1fcmVuZGVyVGFyZ2V0ID0gQXVkaW9CdWZmZXI6OmNyZWF0ZShudW1iZXJP
ZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgbV9kZXN0aW5hdGlv
bk5vZGUgPSBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OmNyZWF0ZSgqdGhpcywgbV9yZW5k
ZXJUYXJnZXQuZ2V0KCkpOwogfQoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkocmV2aXNpb24gMjUwOTEyKQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMjk2
LDcgKzI5Niw3IEBAIHB1YmxpYzoKCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQXVkaW9Db250
ZXh0KERvY3VtZW50Jik7Ci0gICAgQXVkaW9Db250ZXh0KERvY3VtZW50JiwgdW5zaWduZWQgbnVt
YmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlKTsK
KyAgICBBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCBBdWRpb0J1ZmZlciogcmVuZGVyVGFyZ2V0KTsK
CiAgICAgc3RhdGljIGJvb2wgaXNTYW1wbGVSYXRlUmFuZ2VHb29kKGZsb2F0IHNhbXBsZVJhdGUp
OwogICAgIHZvaWQgY2xlYXJQZW5kaW5nQWN0aXZpdHkoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcAko
cmV2aXNpb24gMjUwOTEyKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZs
aW5lQXVkaW9Db250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOCArMzUsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CgogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKE9mZmxpbmVBdWRp
b0NvbnRleHQpOwoKLWlubGluZSBPZmZsaW5lQXVkaW9Db250ZXh0OjpPZmZsaW5lQXVkaW9Db250
ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90
IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlKQotICAgIDogQXVkaW9Db250ZXh0KGRv
Y3VtZW50LCBudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSkKK2lu
bGluZSBPZmZsaW5lQXVkaW9Db250ZXh0OjpPZmZsaW5lQXVkaW9Db250ZXh0KERvY3VtZW50JiBk
b2N1bWVudCwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCkKKyAgICA6IEF1ZGlvQ29udGV4dChk
b2N1bWVudCwgcmVuZGVyVGFyZ2V0KQogewogfQoKQEAgLTQ3LDcgKzQ3LDExIEBAIEV4Y2VwdGlv
bk9yPFJlZjxPZmZsaW5lQXVkaW9Db250ZXh0Pj4gT2YKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vdFN1cHBvcnRlZEVycm9yIH07CiAgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51
bWJlck9mQ2hhbm5lbHMgPiAxMCB8fCAhbnVtYmVyT2ZGcmFtZXMgfHwgIWlzU2FtcGxlUmF0ZVJh
bmdlR29vZChzYW1wbGVSYXRlKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVy
cm9yIH07Ci0gICAgYXV0byBhdWRpb0NvbnRleHQgPSBhZG9wdFJlZigqbmV3IE9mZmxpbmVBdWRp
b0NvbnRleHQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCBudW1iZXJPZkNoYW5uZWxzLCBu
dW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSkpOworICAgIGF1dG8gcmVuZGVyVGFyZ2V0ID0gQXVk
aW9CdWZmZXI6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxl
UmF0ZSk7CisgICAgaWYgKCFyZW5kZXJUYXJnZXQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBTeW50YXhFcnJvciB9OworCisgICAgYXV0byBhdWRpb0NvbnRleHQgPSBhZG9wdFJlZigqbmV3
IE9mZmxpbmVBdWRpb0NvbnRleHQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCByZW5kZXJU
YXJnZXQuZ2V0KCkpKTsKICAgICBhdWRpb0NvbnRleHQtPnN1c3BlbmRJZk5lZWRlZCgpOwogICAg
IHJldHVybiBhdWRpb0NvbnRleHQ7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaAkocmV2aXNpb24gMjUwOTEy
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBF
eGNlcHRpb25PcjxSZWY8T2ZmbGluZUF1ZGlvQ29udGV4dD4+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJh
bWVzLCBmbG9hdCBzYW1wbGVSYXRlKTsKCiBwcml2YXRlOgotICAgIE9mZmxpbmVBdWRpb0NvbnRl
eHQoRG9jdW1lbnQmLCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZG
cmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIE9mZmxpbmVBdWRpb0NvbnRleHQoRG9jdW1l
bnQmLCBBdWRpb0J1ZmZlciogcmVuZGVyVGFyZ2V0KTsKIH07CgogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjUwOTE5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMTAtMDkgIEJqb3JuIE1lbGlu
ZGVyICA8Ympvcm5tQHNwb3RpZnkuY29tPgorCisgICAgICAgIE9mZmxpbmVBdWRpb0NvbnRleHQg
ZG9lcyBub3QgdmFsaWRhdGUgYWxsb2NhdGlvbiBvZiBkZXN0aW5hdGlvbiBidWZmZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzI1OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIHRoZSBhbGxv
Y2F0aW9uIG9mIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgdG8gdGhlIHN0YXRpYworICAgICAgICBP
ZmZsaW5lQXVkaW9Db250ZXh0OjpjcmVhdGUgbWV0aG9kIHdoZXJlIHdlIGFyZSBhYmxlIHRvIGhh
bmRsZSBhIGZhaWxlZAorICAgICAgICBhbGxvY2F0aW9uIHByb3Blcmx5IGFuZCByZXR1cm4gYW4g
RXhjZXB0aW9uLiBUaGlzIGNoYW5nZSBoYW5kbGVzIGJvdGgKKyAgICAgICAgbmVnYXRpdmUgbGVu
Z3RocyBhcyB3ZWxsIGFzIHRvbyBsYXJnZSBsZW5ndGhzIHdoZXJlIHRoZSBtZW1vcnkgY2Fubm90
CisgICAgICAgIGJlIGFsbG9jYXRlZC4KKworICAgICAgICAqIHdlYmF1ZGlvL29mZmxpbmVhdWRp
b2NvbnRleHQtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL29m
ZmxpbmVhdWRpb2NvbnRleHQtY29uc3RydWN0b3IuaHRtbDoKKwogMjAxOS0xMC0wOSAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KCiAgICAgICAgIFsgTWFjIFdLMiBdIExh
eW91dCBUZXN0IGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1nZXRTZXR0aW5ncy5o
dG1sIGlzIGEgZmxha3kgZmFpbHVyZQpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vb2ZmbGlu
ZWF1ZGlvY29udGV4dC1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvd2ViYXVkaW8vb2ZmbGluZWF1ZGlvY29udGV4dC1jb25zdHJ1Y3Rvci1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDI1MDkxMikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL29mZmxpbmVh
dWRpb2NvbnRleHQtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00
LDYgKzQsOCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCgoKIFBB
U1MgbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgMCwgNDQxMDApIHRocmV3IGV4Y2Vw
dGlvbiBTeW50YXhFcnJvcjogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBw
YXR0ZXJuLi4KK1BBU1MgbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgLTEsIDQ0MTAw
KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0
aGUgZXhwZWN0ZWQgcGF0dGVybi4uCitQQVNTIG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0
KDEsIDk5OTk5OTk5OTk5LCA0NDEwMCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBUaGUg
c3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uLgogUEFTUyBuZXcgd2Vi
a2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgwLCAxLCA0NDEwMCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRh
eEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uLgog
UEFTUyBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAxLCAwKSB0aHJldyBleGNlcHRp
b24gU3ludGF4RXJyb3I6IFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0
dGVybi4uCiBQQVNTIG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDEsIDQ0MTAwKSBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbi4KSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL29mZmxp
bmVhdWRpb2NvbnRleHQtY29uc3RydWN0b3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy93ZWJhdWRpby9vZmZsaW5lYXVkaW9jb250ZXh0LWNvbnN0cnVjdG9yLmh0bWwJKHJldmlzaW9u
IDI1MDkxMikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL29mZmxpbmVhdWRpb2NvbnRleHQtY29u
c3RydWN0b3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDggQEAKICAgICAgICAgPHNj
cmlwdD4KICAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdUaGlzIHRlc3RzIHRoYXQgcGFzc2luZyB6
ZXJvIHRvIHRoZSAibnVtYmVyT2ZGcmFtZXMiIHBhcmFtZXRlciBvZiB0aGUgT2ZmbGluZUF1ZGlv
Q29udGV4dCBjb25zdHJ1Y3RvciBkb2VzIG5vdCBjYXVzZSBhIGNyYXNoLicpOwogICAgICAgICAg
ICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDAsIDQ0MTAw
KScpOworICAgICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250
ZXh0KDEsIC0xLCA0NDEwMCknKTsKKyAgICAgICAgICAgIHNob3VsZFRocm93KCduZXcgd2Via2l0
T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCA5OTk5OTk5OTk5OSwgNDQxMDApJyk7CiAgICAgICAgICAg
ICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMCwgMSwgNDQxMDAp
Jyk7CiAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRl
eHQoMSwgMSwgMCknKTsKICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCduZXcgd2Via2l0T2Zm
bGluZUF1ZGlvQ29udGV4dCgxLCAxLCA0NDEwMCknKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380606</attachid>
            <date>2019-10-09 22:02:46 -0700</date>
            <delta_ts>2019-10-09 23:19:28 -0700</delta_ts>
            <desc>revised patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>8233</size>
            <attacher name="Bjorn Melinder">bjornm</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDkxOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE5LTEwLTA5ICBCam9ybiBN
ZWxpbmRlciAgPGJqb3JubUBzcG90aWZ5LmNvbT4KKworICAgICAgICBPZmZsaW5lQXVkaW9Db250
ZXh0IGRvZXMgbm90IHZhbGlkYXRlIGFsbG9jYXRpb24gb2YgZGVzdGluYXRpb24gYnVmZmVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcyNTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCB0aGUg
YWxsb2NhdGlvbiBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIHRvIHRoZSBzdGF0aWMKKyAgICAg
ICAgT2ZmbGluZUF1ZGlvQ29udGV4dDo6Y3JlYXRlIG1ldGhvZCB3aGVyZSB3ZSBhcmUgYWJsZSB0
byBoYW5kbGUgYSBmYWlsZWQKKyAgICAgICAgYWxsb2NhdGlvbiBwcm9wZXJseSBhbmQgcmV0dXJu
IGFuIEV4Y2VwdGlvbi4gVGhpcyBjaGFuZ2UgaGFuZGxlcyBib3RoCisgICAgICAgIG5lZ2F0aXZl
IGxlbmd0aHMgYXMgd2VsbCBhcyB0b28gbGFyZ2UgbGVuZ3RocyB3aGVyZSB0aGUgbWVtb3J5IGNh
bm5vdAorICAgICAgICBiZSBhbGxvY2F0ZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OkF1ZGlv
Q29udGV4dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6T2ZmbGluZUF1ZGlvQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db250ZXh0OjpjcmVhdGUpOgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oOgorCiAyMDE5LTEwLTA5ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgoKICAgICAgICAgWyBNYWMgV0sy
IF0gTGF5b3V0IFRlc3QgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNldHRp
bmdzLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCShyZXZpc2lvbiAyNTA5MTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE1OCw3ICsxNTgsNyBAQCBBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1
bWVudCYgZG9jCiB9CgogLy8gQ29uc3RydWN0b3IgZm9yIG9mZmxpbmUgKG5vbi1yZWFsdGltZSkg
cmVuZGVyaW5nLgotQXVkaW9Db250ZXh0OjpBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50
LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0
IHNhbXBsZVJhdGUpCitBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1l
bnQsIEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJnZXQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9j
dW1lbnQpCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihkb2N1bWVu
dC5sb2dnZXIoKSkKQEAgLTE2NywxMSArMTY3LDExIEBAIEF1ZGlvQ29udGV4dDo6QXVkaW9Db250
ZXh0KERvY3VtZW50JiBkb2MKICAgICAsIG1faXNPZmZsaW5lQ29udGV4dCh0cnVlKQogICAgICwg
bV9tZWRpYVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OmNyZWF0ZSgqdGhpcykpCiAgICAg
LCBtX2V2ZW50UXVldWUoTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUoKnRoaXMp
KQorICAgICwgbV9yZW5kZXJUYXJnZXQocmVuZGVyVGFyZ2V0KQogewogICAgIGNvbnN0cnVjdENv
bW1vbigpOwoKICAgICAvLyBDcmVhdGUgYSBuZXcgZGVzdGluYXRpb24gZm9yIG9mZmxpbmUgcmVu
ZGVyaW5nLgotICAgIG1fcmVuZGVyVGFyZ2V0ID0gQXVkaW9CdWZmZXI6OmNyZWF0ZShudW1iZXJP
ZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgbV9kZXN0aW5hdGlv
bk5vZGUgPSBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OmNyZWF0ZSgqdGhpcywgbV9yZW5k
ZXJUYXJnZXQuZ2V0KCkpOwogfQoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkocmV2aXNpb24gMjUwOTEyKQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMjk2
LDcgKzI5Niw3IEBACgogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEF1ZGlvQ29udGV4dChEb2N1
bWVudCYpOwotICAgIEF1ZGlvQ29udGV4dChEb2N1bWVudCYsIHVuc2lnbmVkIG51bWJlck9mQ2hh
bm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgQXVk
aW9Db250ZXh0KERvY3VtZW50JiwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCk7CgogICAgIHN0
YXRpYyBib29sIGlzU2FtcGxlUmF0ZVJhbmdlR29vZChmbG9hdCBzYW1wbGVSYXRlKTsKICAgICB2
b2lkIGNsZWFyUGVuZGluZ0FjdGl2aXR5KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAJKHJldmlzaW9u
IDI1MDkxMikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlv
Q29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDggKzM1LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewoKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChPZmZsaW5lQXVkaW9Db250ZXh0
KTsKCi1pbmxpbmUgT2ZmbGluZUF1ZGlvQ29udGV4dDo6T2ZmbGluZUF1ZGlvQ29udGV4dChEb2N1
bWVudCYgZG9jdW1lbnQsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJP
ZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSkKLSAgICA6IEF1ZGlvQ29udGV4dChkb2N1bWVudCwg
bnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpCitpbmxpbmUgT2Zm
bGluZUF1ZGlvQ29udGV4dDo6T2ZmbGluZUF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQs
IEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJnZXQpCisgICAgOiBBdWRpb0NvbnRleHQoZG9jdW1lbnQs
IHJlbmRlclRhcmdldCkKIHsKIH0KCkBAIC00Nyw3ICs0NywxMSBAQCBFeGNlcHRpb25PcjxSZWY8
T2ZmbGluZUF1ZGlvQ29udGV4dD4+IE9mCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciB9OwogICAgIGlmICghbnVtYmVyT2ZDaGFubmVscyB8fCBudW1iZXJPZkNo
YW5uZWxzID4gMTAgfHwgIW51bWJlck9mRnJhbWVzIHx8ICFpc1NhbXBsZVJhdGVSYW5nZUdvb2Qo
c2FtcGxlUmF0ZSkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciB9Owot
ICAgIGF1dG8gYXVkaW9Db250ZXh0ID0gYWRvcHRSZWYoKm5ldyBPZmZsaW5lQXVkaW9Db250ZXh0
KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgbnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZG
cmFtZXMsIHNhbXBsZVJhdGUpKTsKKyAgICBhdXRvIHJlbmRlclRhcmdldCA9IEF1ZGlvQnVmZmVy
OjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpOwor
ICAgIGlmICghcmVuZGVyVGFyZ2V0KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4
RXJyb3IgfTsKKworICAgIGF1dG8gYXVkaW9Db250ZXh0ID0gYWRvcHRSZWYoKm5ldyBPZmZsaW5l
QXVkaW9Db250ZXh0KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgcmVuZGVyVGFyZ2V0Lmdl
dCgpKSk7CiAgICAgYXVkaW9Db250ZXh0LT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICByZXR1cm4g
YXVkaW9Db250ZXh0OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmgJKHJldmlzaW9uIDI1MDkxMikKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRXhjZXB0aW9u
T3I8UmVmPE9mZmxpbmVBdWRpb0NvbnRleHQ+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxv
YXQgc2FtcGxlUmF0ZSk7CgogcHJpdmF0ZToKLSAgICBPZmZsaW5lQXVkaW9Db250ZXh0KERvY3Vt
ZW50JiwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBm
bG9hdCBzYW1wbGVSYXRlKTsKKyAgICBPZmZsaW5lQXVkaW9Db250ZXh0KERvY3VtZW50JiwgQXVk
aW9CdWZmZXIqIHJlbmRlclRhcmdldCk7CiB9OwoKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDI1MDkxOSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE5LTEwLTA5ICBCam9ybiBNZWxpbmRlciAgPGJq
b3JubUBzcG90aWZ5LmNvbT4KKworICAgICAgICBPZmZsaW5lQXVkaW9Db250ZXh0IGRvZXMgbm90
IHZhbGlkYXRlIGFsbG9jYXRpb24gb2YgZGVzdGluYXRpb24gYnVmZmVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcyNTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCB0aGUgYWxsb2NhdGlvbiBv
ZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIHRvIHRoZSBzdGF0aWMKKyAgICAgICAgT2ZmbGluZUF1
ZGlvQ29udGV4dDo6Y3JlYXRlIG1ldGhvZCB3aGVyZSB3ZSBhcmUgYWJsZSB0byBoYW5kbGUgYSBm
YWlsZWQKKyAgICAgICAgYWxsb2NhdGlvbiBwcm9wZXJseSBhbmQgcmV0dXJuIGFuIEV4Y2VwdGlv
bi4gVGhpcyBjaGFuZ2UgaGFuZGxlcyBib3RoCisgICAgICAgIG5lZ2F0aXZlIGxlbmd0aHMgYXMg
d2VsbCBhcyB0b28gbGFyZ2UgbGVuZ3RocyB3aGVyZSB0aGUgbWVtb3J5IGNhbm5vdAorICAgICAg
ICBiZSBhbGxvY2F0ZWQuCisKKyAgICAgICAgKiB3ZWJhdWRpby9vZmZsaW5lYXVkaW9jb250ZXh0
LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJhdWRpby9vZmZsaW5lYXVk
aW9jb250ZXh0LWNvbnN0cnVjdG9yLmh0bWw6CisKIDIwMTktMTAtMDkgIEVyaWMgQ2FybHNvbiAg
PGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CgogICAgICAgICBbIE1hYyBXSzIgXSBMYXlvdXQgVGVz
dCBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U2V0dGluZ3MuaHRtbCBpcyBh
IGZsYWt5IGZhaWx1cmUKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL29mZmxpbmVhdWRpb2Nv
bnRleHQtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3dlYmF1ZGlvL29mZmxpbmVhdWRpb2NvbnRleHQtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAyNTA5MTIpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9vZmZsaW5lYXVkaW9jb250
ZXh0LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw2ICs0LDgg
QEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQoKCiBQQVNTIG5ldyB3
ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDAsIDQ0MTAwKSB0aHJldyBleGNlcHRpb24gU3lu
dGF4RXJyb3I6IFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4u
CitQQVNTIG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIC0xLCA0NDEwMCkgdGhyZXcg
ZXhjZXB0aW9uIFN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVj
dGVkIHBhdHRlcm4uLgorUEFTUyBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCA5OTk5
OTk5OTk5OSwgNDQxMDApIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogVGhlIHN0cmluZyBk
aWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLi4KIFBBU1MgbmV3IHdlYmtpdE9mZmxp
bmVBdWRpb0NvbnRleHQoMCwgMSwgNDQxMDApIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjog
VGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLi4KIFBBU1MgbmV3
IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgMSwgMCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRh
eEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uLgog
UEFTUyBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAxLCA0NDEwMCkgZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24uCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9vZmZsaW5lYXVkaW9j
b250ZXh0LWNvbnN0cnVjdG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVk
aW8vb2ZmbGluZWF1ZGlvY29udGV4dC1jb25zdHJ1Y3Rvci5odG1sCShyZXZpc2lvbiAyNTA5MTIp
CisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9vZmZsaW5lYXVkaW9jb250ZXh0LWNvbnN0cnVjdG9y
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNiArNiw4IEBACiAgICAgICAgIDxzY3JpcHQ+CiAg
ICAgICAgICAgICBkZXNjcmlwdGlvbignVGhpcyB0ZXN0cyB0aGF0IHBhc3NpbmcgemVybyB0byB0
aGUgIm51bWJlck9mRnJhbWVzIiBwYXJhbWV0ZXIgb2YgdGhlIE9mZmxpbmVBdWRpb0NvbnRleHQg
Y29uc3RydWN0b3IgZG9lcyBub3QgY2F1c2UgYSBjcmFzaC4nKTsKICAgICAgICAgICAgIHNob3Vs
ZFRocm93KCduZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAwLCA0NDEwMCknKTsKKyAg
ICAgICAgICAgIHNob3VsZFRocm93KCduZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAt
MSwgNDQxMDApJyk7CisgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE9mZmxpbmVB
dWRpb0NvbnRleHQoMSwgOTk5OTk5OTk5OTksIDQ0MTAwKScpOwogICAgICAgICAgICAgc2hvdWxk
VGhyb3coJ25ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDAsIDEsIDQ0MTAwKScpOwogICAg
ICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDEs
IDApJyk7CiAgICAgICAgICAgICBzaG91bGROb3RUaHJvdygnbmV3IHdlYmtpdE9mZmxpbmVBdWRp
b0NvbnRleHQoMSwgMSwgNDQxMDApJyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380607</attachid>
            <date>2019-10-09 23:19:28 -0700</date>
            <delta_ts>2019-10-11 07:18:08 -0700</delta_ts>
            <desc>whitespace fix</desc>
            <filename>patch2.txt</filename>
            <type>text/plain</type>
            <size>8259</size>
            <attacher name="Bjorn Melinder">bjornm</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDkxOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE5LTEwLTA5ICBCam9ybiBN
ZWxpbmRlciAgPGJqb3JubUBzcG90aWZ5LmNvbT4KKworICAgICAgICBPZmZsaW5lQXVkaW9Db250
ZXh0IGRvZXMgbm90IHZhbGlkYXRlIGFsbG9jYXRpb24gb2YgZGVzdGluYXRpb24gYnVmZmVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcyNTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCB0aGUg
YWxsb2NhdGlvbiBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIHRvIHRoZSBzdGF0aWMKKyAgICAg
ICAgT2ZmbGluZUF1ZGlvQ29udGV4dDo6Y3JlYXRlIG1ldGhvZCB3aGVyZSB3ZSBhcmUgYWJsZSB0
byBoYW5kbGUgYSBmYWlsZWQKKyAgICAgICAgYWxsb2NhdGlvbiBwcm9wZXJseSBhbmQgcmV0dXJu
IGFuIEV4Y2VwdGlvbi4gVGhpcyBjaGFuZ2UgaGFuZGxlcyBib3RoCisgICAgICAgIG5lZ2F0aXZl
IGxlbmd0aHMgYXMgd2VsbCBhcyB0b28gbGFyZ2UgbGVuZ3RocyB3aGVyZSB0aGUgbWVtb3J5IGNh
bm5vdAorICAgICAgICBiZSBhbGxvY2F0ZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OkF1ZGlv
Q29udGV4dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6T2ZmbGluZUF1ZGlvQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db250ZXh0OjpjcmVhdGUpOgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oOgorCiAyMDE5LTEwLTA5ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFsgTWFjIFdL
MiBdIExheW91dCBUZXN0IGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1nZXRTZXR0
aW5ncy5odG1sIGlzIGEgZmxha3kgZmFpbHVyZQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAkocmV2aXNpb24gMjUwOTEyKQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTgsNyArMTU4LDcgQEAgQXVkaW9Db250ZXh0OjpBdWRpb0NvbnRleHQoRG9j
dW1lbnQmIGRvYwogfQogCiAvLyBDb25zdHJ1Y3RvciBmb3Igb2ZmbGluZSAobm9uLXJlYWx0aW1l
KSByZW5kZXJpbmcuCi1BdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1l
bnQsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxv
YXQgc2FtcGxlUmF0ZSkKK0F1ZGlvQ29udGV4dDo6QXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1
bWVudCwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChk
b2N1bWVudCkKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9nZ2VyKGRvY3Vt
ZW50LmxvZ2dlcigpKQpAQCAtMTY3LDExICsxNjcsMTEgQEAgQXVkaW9Db250ZXh0OjpBdWRpb0Nv
bnRleHQoRG9jdW1lbnQmIGRvYwogICAgICwgbV9pc09mZmxpbmVDb250ZXh0KHRydWUpCiAgICAg
LCBtX21lZGlhU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzKSkKICAg
ICAsIG1fZXZlbnRRdWV1ZShNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmNyZWF0ZSgqdGhp
cykpCisgICAgLCBtX3JlbmRlclRhcmdldChyZW5kZXJUYXJnZXQpCiB7CiAgICAgY29uc3RydWN0
Q29tbW9uKCk7CiAKICAgICAvLyBDcmVhdGUgYSBuZXcgZGVzdGluYXRpb24gZm9yIG9mZmxpbmUg
cmVuZGVyaW5nLgotICAgIG1fcmVuZGVyVGFyZ2V0ID0gQXVkaW9CdWZmZXI6OmNyZWF0ZShudW1i
ZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgbV9kZXN0aW5h
dGlvbk5vZGUgPSBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OmNyZWF0ZSgqdGhpcywgbV9y
ZW5kZXJUYXJnZXQuZ2V0KCkpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgJKHJldmlzaW9uIDI1MDkxMikKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5Niw3ICsyOTYsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBBdWRp
b0NvbnRleHQoRG9jdW1lbnQmKTsKLSAgICBBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCB1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJh
dGUpOworICAgIEF1ZGlvQ29udGV4dChEb2N1bWVudCYsIEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJn
ZXQpOwogICAgIAogICAgIHN0YXRpYyBib29sIGlzU2FtcGxlUmF0ZVJhbmdlR29vZChmbG9hdCBz
YW1wbGVSYXRlKTsKICAgICB2b2lkIGNsZWFyUGVuZGluZ0FjdGl2aXR5KCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29u
dGV4dC5jcHAJKHJldmlzaW9uIDI1MDkxMikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDggKzM1
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
T2ZmbGluZUF1ZGlvQ29udGV4dCk7CiAKLWlubGluZSBPZmZsaW5lQXVkaW9Db250ZXh0OjpPZmZs
aW5lQXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFu
bmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlKQotICAgIDogQXVk
aW9Db250ZXh0KGRvY3VtZW50LCBudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2Ft
cGxlUmF0ZSkKK2lubGluZSBPZmZsaW5lQXVkaW9Db250ZXh0OjpPZmZsaW5lQXVkaW9Db250ZXh0
KERvY3VtZW50JiBkb2N1bWVudCwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCkKKyAgICA6IEF1
ZGlvQ29udGV4dChkb2N1bWVudCwgcmVuZGVyVGFyZ2V0KQogewogfQogCkBAIC00Nyw3ICs0Nywx
MSBAQCBFeGNlcHRpb25PcjxSZWY8T2ZmbGluZUF1ZGlvQ29udGV4dD4+IE9mCiAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwogICAgIGlmICghbnVtYmVyT2ZD
aGFubmVscyB8fCBudW1iZXJPZkNoYW5uZWxzID4gMTAgfHwgIW51bWJlck9mRnJhbWVzIHx8ICFp
c1NhbXBsZVJhdGVSYW5nZUdvb2Qoc2FtcGxlUmF0ZSkpCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBTeW50YXhFcnJvciB9OwotICAgIGF1dG8gYXVkaW9Db250ZXh0ID0gYWRvcHRSZWYoKm5l
dyBPZmZsaW5lQXVkaW9Db250ZXh0KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgbnVtYmVy
T2ZDaGFubmVscywgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpKTsKKyAgICBhdXRvIHJlbmRl
clRhcmdldCA9IEF1ZGlvQnVmZmVyOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZG
cmFtZXMsIHNhbXBsZVJhdGUpOworICAgIGlmICghcmVuZGVyVGFyZ2V0KQorICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IgfTsKKworICAgIGF1dG8gYXVkaW9Db250ZXh0ID0g
YWRvcHRSZWYoKm5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KGRvd25jYXN0PERvY3VtZW50Pihjb250
ZXh0KSwgcmVuZGVyVGFyZ2V0LmdldCgpKSk7CiAgICAgYXVkaW9Db250ZXh0LT5zdXNwZW5kSWZO
ZWVkZWQoKTsKICAgICByZXR1cm4gYXVkaW9Db250ZXh0OwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmgJKHJl
dmlzaW9uIDI1MDkxMikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGlu
ZUF1ZGlvQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPE9mZmxpbmVBdWRpb0NvbnRleHQ+PiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVf
dCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKIHByaXZhdGU6Ci0gICAgT2Zm
bGluZUF1ZGlvQ29udGV4dChEb2N1bWVudCYsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNp
emVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgT2ZmbGluZUF1ZGlv
Q29udGV4dChEb2N1bWVudCYsIEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJnZXQpOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjUwOTE5KQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMTAt
MDkgIEJqb3JuIE1lbGluZGVyICA8Ympvcm5tQHNwb3RpZnkuY29tPgorCisgICAgICAgIE9mZmxp
bmVBdWRpb0NvbnRleHQgZG9lcyBub3QgdmFsaWRhdGUgYWxsb2NhdGlvbiBvZiBkZXN0aW5hdGlv
biBidWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NzI1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1vdmVkIHRoZSBhbGxvY2F0aW9uIG9mIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgdG8gdGhlIHN0
YXRpYworICAgICAgICBPZmZsaW5lQXVkaW9Db250ZXh0OjpjcmVhdGUgbWV0aG9kIHdoZXJlIHdl
IGFyZSBhYmxlIHRvIGhhbmRsZSBhIGZhaWxlZAorICAgICAgICBhbGxvY2F0aW9uIHByb3Blcmx5
IGFuZCByZXR1cm4gYW4gRXhjZXB0aW9uLiBUaGlzIGNoYW5nZSBoYW5kbGVzIGJvdGgKKyAgICAg
ICAgbmVnYXRpdmUgbGVuZ3RocyBhcyB3ZWxsIGFzIHRvbyBsYXJnZSBsZW5ndGhzIHdoZXJlIHRo
ZSBtZW1vcnkgY2Fubm90CisgICAgICAgIGJlIGFsbG9jYXRlZC4KKworICAgICAgICAqIHdlYmF1
ZGlvL29mZmxpbmVhdWRpb2NvbnRleHQtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYmF1ZGlvL29mZmxpbmVhdWRpb2NvbnRleHQtY29uc3RydWN0b3IuaHRtbDoKKwogMjAx
OS0xMC0wOSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbIE1hYyBXSzIgXSBMYXlvdXQgVGVzdCBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2stZ2V0U2V0dGluZ3MuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUKSW5kZXg6IExheW91dFRlc3Rz
L3dlYmF1ZGlvL29mZmxpbmVhdWRpb2NvbnRleHQtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL29mZmxpbmVhdWRpb2NvbnRleHQtY29u
c3RydWN0b3ItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNTA5MTIpCisrKyBMYXlvdXRUZXN0cy93
ZWJhdWRpby9vZmZsaW5lYXVkaW9jb250ZXh0LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNCw2ICs0LDggQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQQogCiAKIFBBU1MgbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgMCwg
NDQxMDApIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogVGhlIHN0cmluZyBkaWQgbm90IG1h
dGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLi4KK1BBU1MgbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0Nv
bnRleHQoMSwgLTEsIDQ0MTAwKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFRoZSBzdHJp
bmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4uCitQQVNTIG5ldyB3ZWJraXRP
ZmZsaW5lQXVkaW9Db250ZXh0KDEsIDk5OTk5OTk5OTk5LCA0NDEwMCkgdGhyZXcgZXhjZXB0aW9u
IFN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRl
cm4uLgogUEFTUyBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgwLCAxLCA0NDEwMCkgdGhy
ZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4
cGVjdGVkIHBhdHRlcm4uLgogUEFTUyBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAx
LCAwKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRj
aCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4uCiBQQVNTIG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250
ZXh0KDEsIDEsIDQ0MTAwKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KSW5kZXg6IExheW91dFRl
c3RzL3dlYmF1ZGlvL29mZmxpbmVhdWRpb2NvbnRleHQtY29uc3RydWN0b3IuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9vZmZsaW5lYXVkaW9jb250ZXh0LWNvbnN0cnVj
dG9yLmh0bWwJKHJldmlzaW9uIDI1MDkxMikKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL29mZmxp
bmVhdWRpb2NvbnRleHQtY29uc3RydWN0b3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2
LDggQEAKICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdUaGlzIHRl
c3RzIHRoYXQgcGFzc2luZyB6ZXJvIHRvIHRoZSAibnVtYmVyT2ZGcmFtZXMiIHBhcmFtZXRlciBv
ZiB0aGUgT2ZmbGluZUF1ZGlvQ29udGV4dCBjb25zdHJ1Y3RvciBkb2VzIG5vdCBjYXVzZSBhIGNy
YXNoLicpOwogICAgICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRPZmZsaW5lQXVkaW9D
b250ZXh0KDEsIDAsIDQ0MTAwKScpOworICAgICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJr
aXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIC0xLCA0NDEwMCknKTsKKyAgICAgICAgICAgIHNob3Vs
ZFRocm93KCduZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCA5OTk5OTk5OTk5OSwgNDQx
MDApJyk7CiAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0Nv
bnRleHQoMCwgMSwgNDQxMDApJyk7CiAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IHdlYmtp
dE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgMSwgMCknKTsKICAgICAgICAgICAgIHNob3VsZE5vdFRo
cm93KCduZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAxLCA0NDEwMCknKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>