<?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>204458</bug_id>
          
          <creation_ts>2019-11-21 09:50:38 -0800</creation_ts>
          <short_desc>ITP Database crashes if table schema is not correct</short_desc>
          <delta_ts>2019-11-22 16:42:37 -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>WebKit Misc.</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="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jbedard</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1592415</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-11-21 09:50:38 -0800</bug_when>
    <thetext>Started seeing this after TopFrameLoadedThirdPartyScripts was added. I had been using the ITP database before the update, so the schema wasn&apos;t up to date. Trying to update/check the new table caused crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592423</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-21 10:20:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/57399084&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592431</commentid>
    <comment_count>2</comment_count>
      <attachid>384068</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-11-21 10:36:51 -0800</bug_when>
    <thetext>Created attachment 384068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592456</commentid>
    <comment_count>3</comment_count>
      <attachid>384068</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-11-21 11:26:27 -0800</bug_when>
    <thetext>Comment on attachment 384068
Patch

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

&gt; Source/WebKit/ChangeLog:12
&gt; +        any manual changes to the database file.

How does this relate to the &quot;migration&quot; task (see Bug 195294)

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:305
&gt; +    };

It&apos;s a shame we need this array of strings in addition to the schema creation string (createObservedDomain) and the enum of column ID&apos;s for each of these. I wonder if there is a way to consolidate this information somehow.

At the very least, I feel like this array of strings should live very close to the table creation string to make it harder to add something in one place and not the other.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:308
&gt; +        SQLiteStatement statement(m_database, &quot;SELECT 1 from sqlite_master WHERE type=&apos;table&apos; and tbl_name=?&quot;);

Can this be done more efficiently?

For example, could we do something like &quot;SELECT COUNT(*) FROM sqlite_master WHERE type=&apos;table&apos; and tbl_name IN (... the list of tables)&quot; or something?

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:326
&gt; +        FileSystem::deleteFile(m_storageDirectoryPath);

We should add a FIXME(195294): Perform migration here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592511</commentid>
    <comment_count>4</comment_count>
      <attachid>384068</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-11-21 13:11:39 -0800</bug_when>
    <thetext>Comment on attachment 384068
Patch

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

&gt;&gt; Source/WebKit/ChangeLog:12
&gt;&gt; +        any manual changes to the database file.
&gt; 
&gt; How does this relate to the &quot;migration&quot; task (see Bug 195294)

Maybe they should be one and the same, but I&apos;m wondering if there might be more to do for the entire versioning/upgrade path radar.

&gt;&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:305
&gt;&gt; +    };
&gt; 
&gt; It&apos;s a shame we need this array of strings in addition to the schema creation string (createObservedDomain) and the enum of column ID&apos;s for each of these. I wonder if there is a way to consolidate this information somehow.
&gt; 
&gt; At the very least, I feel like this array of strings should live very close to the table creation string to make it harder to add something in one place and not the other.

We could store the table names as keys in a map, and the values could be the CREATE TABLE queries. Then both isCorrectTableSchema() and createSchema() could iterate through the map to get the tableNames/create table queries. And if someone added a new table, it would only have to be added once to the map.

&gt;&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:308
&gt;&gt; +        SQLiteStatement statement(m_database, &quot;SELECT 1 from sqlite_master WHERE type=&apos;table&apos; and tbl_name=?&quot;);
&gt; 
&gt; Can this be done more efficiently?
&gt; 
&gt; For example, could we do something like &quot;SELECT COUNT(*) FROM sqlite_master WHERE type=&apos;table&apos; and tbl_name IN (... the list of tables)&quot; or something?

agreed, I think this will work!

&gt;&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:326
&gt;&gt; +        FileSystem::deleteFile(m_storageDirectoryPath);
&gt; 
&gt; We should add a FIXME(195294): Perform migration here.

By migration, I am assuming you mean migrating existing data over instead of deleting the whole file. How important is that/should it be implemented now instead of in the future? I was basing this off what we did for the change in the schema of ObservedDomains where we deleted the entire file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592517</commentid>
    <comment_count>5</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-11-21 13:23:32 -0800</bug_when>
    <thetext>(In reply to katherine_cheney from comment #4)
&gt; Comment on attachment 384068 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=384068&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/ChangeLog:12
&gt; &gt;&gt; +        any manual changes to the database file.
&gt; &gt; 
&gt; &gt; How does this relate to the &quot;migration&quot; task (see Bug 195294)
&gt; 
&gt; Maybe they should be one and the same, but I&apos;m wondering if there might be
&gt; more to do for the entire versioning/upgrade path radar.
&gt; 

I talked with Brady about this a bit. His take was that we should check for schema compatibility as needed when we make upgrades, and not worry about protecting against users changing the schema. Is there anything specific you had in mind for addressing bug 195294?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592600</commentid>
    <comment_count>6</comment_count>
      <attachid>384108</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-11-21 17:25:28 -0800</bug_when>
    <thetext>Created attachment 384108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592796</commentid>
    <comment_count>7</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-11-22 08:02:00 -0800</bug_when>
    <thetext>Per what we talked about Brent, I kept the iteration through the table list as opposed to efficient SQLite list lookup in order to future-proof this for when we merge data when the schema is updated. The iteration tells us which table(s) are missing, so we can add the new table(s) and migrate the data instead of deleting the whole file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592818</commentid>
    <comment_count>8</comment_count>
      <attachid>384108</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-11-22 08:51:49 -0800</bug_when>
    <thetext>Comment on attachment 384108
Patch

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

I think this is close, but not quite correct.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:316
&gt; +            || statement.bindText(1, table) != SQLITE_OK) {

I think this would be more efficient if you created the SQLiteStatement outside the loop, did the prepare outside the loop, and did the &apos;bindText&apos; inside the loop for each table name.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:321
&gt; +            return false;

I&apos;m not sure we should return if we don&apos;t receive a result here. Don&apos;t we want to log the missing table name, and then keep going to see what other tables are missing? This would be helpful when trying to debug a problem.

It would also give us the ability to perform fix-up (in the future) if we want to add tables to the Schema.

So maybe have a boolean that you set to &apos;true&apos; if you find any missing tables, then return that value after completing the loop?

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:323
&gt; +        resetStatement(statement);

If you leave the object construction inside the loop, you don&apos;t need this reset because the statement is fully reconstructed at each loop iteration.

However, I think you should move construction outside the loop (as I suggest above).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592834</commentid>
    <comment_count>9</comment_count>
      <attachid>384159</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-11-22 09:24:17 -0800</bug_when>
    <thetext>Created attachment 384159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592840</commentid>
    <comment_count>10</comment_count>
      <attachid>384159</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-11-22 09:26:46 -0800</bug_when>
    <thetext>Comment on attachment 384159
Patch

Looks great! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592841</commentid>
    <comment_count>11</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-11-22 09:27:20 -0800</bug_when>
    <thetext>thanks for feedback!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592888</commentid>
    <comment_count>12</comment_count>
      <attachid>384159</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-22 10:41:50 -0800</bug_when>
    <thetext>Comment on attachment 384159
Patch

Rejecting attachment 384159 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;, 384159, &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=384159&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=204458&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Updating working directory
Processing patch 384159 from bug 204458.
Fetching: https://bugs.webkit.org/attachment.cgi?id=384159
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	Source/WebKit/ChangeLog

ERROR from SVN:
Item is out of date: File &apos;/trunk/Source/WebKit/ChangeLog&apos; is out of date
W: 4d4568ee3653af4484cc8f1056bc35ba3fa3baa6 and refs/remotes/origin/master differ, using rebase:
:040000 040000 9bd957a0828fca3030d43ba6ed811003e8a814b3 5cdd1523b9652842641aa3fd0a384ef01e2728e9 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	Source/WebKit/ChangeLog

ERROR from SVN:
Item is out of date: File &apos;/trunk/Source/WebKit/ChangeLog&apos; is out of date
W: 4d4568ee3653af4484cc8f1056bc35ba3fa3baa6 and refs/remotes/origin/master differ, using rebase:
:040000 040000 9bd957a0828fca3030d43ba6ed811003e8a814b3 5cdd1523b9652842641aa3fd0a384ef01e2728e9 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
Current branch master is up to date.

Full output: https://webkit-queues.webkit.org/results/13273426</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592997</commentid>
    <comment_count>13</comment_count>
      <attachid>384194</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-11-22 14:13:51 -0800</bug_when>
    <thetext>Created attachment 384194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593001</commentid>
    <comment_count>14</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-11-22 14:15:20 -0800</bug_when>
    <thetext>did a rebase and uploaded again, hopefully won&apos;t get rejected this time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593076</commentid>
    <comment_count>15</comment_count>
      <attachid>384194</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-22 15:50:32 -0800</bug_when>
    <thetext>Comment on attachment 384194
Patch

Rejecting attachment 384194 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;, 384194, &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=384194&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=204458&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Updating working directory
Processing patch 384194 from bug 204458.
Fetching: https://bugs.webkit.org/attachment.cgi?id=384194
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	Source/WebKit/ChangeLog

ERROR from SVN:
Item is out of date: File &apos;/trunk/Source/WebKit/ChangeLog&apos; is out of date
W: e2beed0d693954c84229efc494ae93b83b9f76e2 and refs/remotes/origin/master differ, using rebase:
:040000 040000 c1ecb8dd1ba531471983bf49dd21d7046e9032e9 7e1e0dbc7e9860f75ee0932dacd3880b3869e235 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	Source/WebKit/ChangeLog

ERROR from SVN:
Item is out of date: File &apos;/trunk/Source/WebKit/ChangeLog&apos; is out of date
W: e2beed0d693954c84229efc494ae93b83b9f76e2 and refs/remotes/origin/master differ, using rebase:
:040000 040000 c1ecb8dd1ba531471983bf49dd21d7046e9032e9 7e1e0dbc7e9860f75ee0932dacd3880b3869e235 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
   d38e64630e4..30cbb8ab8be  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 252807 = d38e64630e4fe9923769b6bf2662775f5a6ddc8f
r252808 = 283deeb7fc56f6430f60dc3a067cbb44ec92901a
r252809 = 0df8c4888359f35f63e5c215004d8f15247be6a4
r252810 = 30cbb8ab8be602f24ef56dd047a591165e0797e0
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/13273966</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593104</commentid>
    <comment_count>16</comment_count>
      <attachid>384194</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-22 16:42:35 -0800</bug_when>
    <thetext>Comment on attachment 384194
Patch

Clearing flags on attachment: 384194

Committed r252817: &lt;https://trac.webkit.org/changeset/252817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593105</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-22 16:42:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384068</attachid>
            <date>2019-11-21 10:36:51 -0800</date>
            <delta_ts>2019-11-21 17:25:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204458-20191121103650.patch</filename>
            <type>text/plain</type>
            <size>3963</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk5ZmNjMDYyNjNlNzhjYTI3
NmFhYzQ2MTA0ZDc2Nzg2ZGMwMGE4NGQuLjYzZGQyOTZmOGM0YzUzMjg1OWJmZTVjOGNjYTNkMDM2
Yjc3MjRmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMTEtMjEgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgSVRQIERhdGFiYXNl
IGNyYXNoZXMgaWYgdGFibGUgc2NoZW1hIGlzIG5vdCBjb3JyZWN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0NTgKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU3Mzk5MDg0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIElUUCBkYXRhYmFzZSB3YXMgY3Jhc2hpbmcgaWYgdGhlIHRhYmxlIHNjaGVtYSB3
YXNuJ3QgY29ycmVjdC4gVGhpcworICAgICAgICBzaG91bGQgaW5zdGVhZCBiZSBoYW5kbGVkIGJ5
IHJlLW9wZW5pbmcgYSBuZXcgZGF0YWJhc2Ugd2l0aCBhIGNvcnJlY3QKKyAgICAgICAgc2NoZW1h
IHRvIGFsbG93IGJvdGggZm9yIGZ1dHVyZSBzY2hlbWEgdXBkYXRlcyBhbmQgdG8gcHJvdGVjdCBh
Z2FpbnN0CisgICAgICAgIGFueSBtYW51YWwgY2hhbmdlcyB0byB0aGUgZGF0YWJhc2UgZmlsZS4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aXNDb3JyZWN0VGFibGVTY2hlbWEpOgorICAgICAgICAoV2Vi
S2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3BlbkFuZERyb3BPbGRE
YXRhYmFzZUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmg6CisKIDIwMTktMTEtMjAgIENo
YW5nU2VvayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtHVEtdIEFkZCBB
TkdMRSBiYWNrZW5kIHRvIEdUSyBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCAyNGRiMjBiYzUzNjA0M2RiMzc3NDgx
ZTQwODczOTEzOWZmOGNmMjBkLi5hMDYwOGUwZTNkZWY3NDMyNGZhOTY5MTJmZDFhNGY4ZDlhZmIw
MGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5jcHAKQEAgLTI4OCwxMCArMjg4LDQ2IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6Om9wZW5JVFBEYXRhYmFzZSgpCiAgICAgfQogfQogCitib29sIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppc0NvcnJlY3RUYWJsZVNjaGVtYSgp
Cit7CisgICAgY29uc3QgY2hhciogdGFibGVzW10gPSB7CisgICAgICAgICJPYnNlcnZlZERvbWFp
bnMiLAorICAgICAgICAiVG9wTGV2ZWxEb21haW5zIiwKKyAgICAgICAgIlN0b3JhZ2VBY2Nlc3NV
bmRlclRvcEZyYW1lRG9tYWlucyIsCisgICAgICAgICJUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1Rv
IiwKKyAgICAgICAgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSIsCisgICAgICAgICJUb3BG
cmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20iLAorICAgICAgICAiVG9wRnJhbWVMb2FkZWRUaGlyZFBh
cnR5U2NyaXB0cyIsCisgICAgICAgICJTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zIiwKKyAg
ICAgICAgIlN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMiLAorICAgICAgICAiU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdHNUbyIsCisgICAgICAgICJTdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0c0Zyb20iCisgICAgfTsKKworICAgIGZvciAoYXV0byB0YWJsZSA6IHRhYmxlcykgeworICAg
ICAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KG1fZGF0YWJhc2UsICJTRUxFQ1QgMSBmcm9t
IHNxbGl0ZV9tYXN0ZXIgV0hFUkUgdHlwZT0ndGFibGUnIGFuZCB0YmxfbmFtZT0/Iik7CisgICAg
ICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwg
c3RhdGVtZW50LmJpbmRUZXh0KDEsIHRhYmxlKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjppc0NvcnJlY3RUYWJsZVNjaGVtYSBmYWlsZWQgdG8gYmluZCwgZXJyb3Ig
bWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChzdGF0ZW1l
bnQuc3RlcCgpICE9IFNRTElURV9ST1cpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpvcGVuQW5kRHJvcE9sZERhdGFiYXNlSWZOZWNlc3NhcnkoKQogewogICAgIG9w
ZW5JVFBEYXRhYmFzZSgpOwogCisgICAgaWYgKCFpc0NvcnJlY3RUYWJsZVNjaGVtYSgpKSB7Cisg
ICAgICAgIG1fZGF0YWJhc2UuY2xvc2UoKTsKKyAgICAgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmls
ZShtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoKTsKKyAgICAgICAgb3BlbklUUERhdGFiYXNlKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBTdHJpbmcgY3VycmVudFNjaGVtYTsKICAgICB7
CiAgICAgICAgIC8vIEZldGNoIHRoZSBzY2hlbWEgZm9yIGFuIGV4aXN0aW5nIE9ic2VydmVkIERv
bWFpbnMgdGFibGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5oCmluZGV4IDdjYmZhOGNmYTZmZjIxNzgxOGMwNzQ1MTA0NmY2MTgzNDgwNzc1
MTUuLmU3YmQ1OTU0ZTNlN2E0OTc3MTFlYzdhODkwY2MwMmE0MWY4NzJkZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCkBAIC0xMzYs
NiArMTM2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZvaWQgb3BlbklUUERhdGFiYXNl
KCk7CisgICAgYm9vbCBpc0NvcnJlY3RUYWJsZVNjaGVtYSgpOwogICAgIHZvaWQgb3BlbkFuZERy
b3BPbGREYXRhYmFzZUlmTmVjZXNzYXJ5KCk7CiAgICAgU3RyaW5nIGdldERvbWFpblN0cmluZ0Zy
b21Eb21haW5JRCh1bnNpZ25lZCkgY29uc3Q7CiAgICAgU3RyaW5nIGdldFN1YlN0YXRpc3RpY1N0
YXRlbWVudChjb25zdCBTdHJpbmcmKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384108</attachid>
            <date>2019-11-21 17:25:28 -0800</date>
            <delta_ts>2019-11-22 09:24:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204458-20191121172526.patch</filename>
            <type>text/plain</type>
            <size>5023</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk5ZmNjMDYyNjNlNzhjYTI3
NmFhYzQ2MTA0ZDc2Nzg2ZGMwMGE4NGQuLjMwODJjNzYxODZhZjY5NWQxMDE3ZWE2YmFlZmFiM2Iy
MzVhNjUwNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMTEtMjEgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgSVRQIERhdGFiYXNl
IGNyYXNoZXMgaWYgdGFibGUgc2NoZW1hIGlzIG5vdCBjb3JyZWN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0NTgKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU3Mzk5MDg0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIElUUCBkYXRhYmFzZSB3YXMgY3Jhc2hpbmcgaWYgdGhlIHRhYmxlIHNjaGVtYSB3
YXNuJ3QgY29ycmVjdC4gVGhpcworICAgICAgICBzaG91bGQgaW5zdGVhZCBiZSBoYW5kbGVkIGJ5
IHJlLW9wZW5pbmcgYSBuZXcgZGF0YWJhc2Ugd2l0aCBhIGNvcnJlY3QKKyAgICAgICAgc2NoZW1h
IHRvIGFsbG93IGZvciBmdXR1cmUgc2NoZW1hIHVwZGF0ZXMuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmlzQ29ycmVjdFRhYmxlU2NoZW1hKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Om9wZW5BbmREcm9wT2xkRGF0YWJhc2VJZk5lY2Vzc2FyeSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZS5oOgorCiAyMDE5LTExLTIwICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nl
b2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBbR1RLXSBBZGQgQU5HTEUgYmFja2VuZCB0byBHVEsg
cG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5jcHAKaW5kZXggMjRkYjIwYmM1MzYwNDNkYjM3NzQ4MWU0MDg3MzkxMzlmZjhjZjIwZC4u
MDU1MTRiYmU1NmViOGNjMmExZjJjNzNmMmQ1MmE3ZGY4M2M3MWFiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0xMjIs
NiArMTIyLDIwIEBAIGNvbnN0ZXhwciBhdXRvIGZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9uUXVl
cnkgPSAiU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWRECiBjb25zdGV4cHIgYXV0byBnZXRS
ZXNvdXJjZURhdGFCeURvbWFpbk5hbWVRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIE9ic2VydmVkRG9t
YWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iOwogY29uc3RleHByIGF1dG8gZ2V0QWxs
RG9tYWluc1F1ZXJ5ID0gIlNFTEVDVCByZWdpc3RyYWJsZURvbWFpbiBGUk9NIE9ic2VydmVkRG9t
YWlucyJfczsKIAorY29uc3QgY2hhciogdGFibGVzW10gPSB7CisgICAgIk9ic2VydmVkRG9tYWlu
cyIsCisgICAgIlRvcExldmVsRG9tYWlucyIsCisgICAgIlN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZy
YW1lRG9tYWlucyIsCisgICAgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8iLAorICAgICJUb3BG
cmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20iLAorICAgICJUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zy
b20iLAorICAgICJUb3BGcmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzIiwKKyAgICAiU3ViZnJh
bWVVbmRlclRvcEZyYW1lRG9tYWlucyIsCisgICAgIlN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURv
bWFpbnMiLAorICAgICJTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvIiwKKyAgICAiU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tIgorfTsKKwogLy8gQ1JFQVRFIFRBQkxFIFF1ZXJpZXMK
IGNvbnN0ZXhwciBhdXRvIGNyZWF0ZU9ic2VydmVkRG9tYWluID0gIkNSRUFURSBUQUJMRSBPYnNl
cnZlZERvbWFpbnMgKCIKICAgICAiZG9tYWluSUQgSU5URUdFUiBQUklNQVJZIEtFWSwgcmVnaXN0
cmFibGVEb21haW4gVEVYVCBOT1QgTlVMTCBVTklRVUUgT04gQ09ORkxJQ1QgRkFJTCwgbGFzdFNl
ZW4gUkVBTCBOT1QgTlVMTCwgIgpAQCAtMjg4LDEwICszMDIsNDEgQEAgdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3BlbklUUERhdGFiYXNlKCkKICAgICB9CiB9CiAK
K3N0YXRpYyB2b2lkIHJlc2V0U3RhdGVtZW50KFNRTGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50KQor
eworICAgIGludCByZXNldFJlc3VsdCA9IHN0YXRlbWVudC5yZXNldCgpOworICAgIEFTU0VSVF9V
TlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7Cit9CisKK2Jvb2wg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1h
KCkKK3sKKyAgICBmb3IgKGF1dG8gdGFibGUgOiB0YWJsZXMpIHsKKyAgICAgICAgU1FMaXRlU3Rh
dGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCAiU0VMRUNUIDEgZnJvbSBzcWxpdGVfbWFzdGVy
IFdIRVJFIHR5cGU9J3RhYmxlJyBhbmQgdGJsX25hbWU9PyIpOworICAgICAgICBpZiAoc3RhdGVt
ZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHN0YXRlbWVudC5iaW5k
VGV4dCgxLCB0YWJsZSkgIT0gU1FMSVRFX09LKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
aXNDb3JyZWN0VGFibGVTY2hlbWEgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVi
bGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhdGVtZW50LnN0ZXAoKSAhPSBT
UUxJVEVfUk9XKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJlc2V0U3Rh
dGVtZW50KHN0YXRlbWVudCk7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpvcGVuQW5kRHJvcE9sZERhdGFiYXNl
SWZOZWNlc3NhcnkoKQogewogICAgIG9wZW5JVFBEYXRhYmFzZSgpOwogCisgICAgaWYgKCFpc0Nv
cnJlY3RUYWJsZVNjaGVtYSgpKSB7CisgICAgICAgIG1fZGF0YWJhc2UuY2xvc2UoKTsKKyAgICAg
ICAgLy8gRklYTUU6IE1pZ3JhdGUgZXhpc3RpbmcgZGF0YSB0byBuZXcgZGF0YWJhc2UgZmlsZSBp
bnN0ZWFkIG9mIGRlbGV0aW5nIGl0ICgyMDQ0ODIpLgorICAgICAgICBGaWxlU3lzdGVtOjpkZWxl
dGVGaWxlKG1fc3RvcmFnZURpcmVjdG9yeVBhdGgpOworICAgICAgICBvcGVuSVRQRGF0YWJhc2Uo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFN0cmluZyBjdXJyZW50U2NoZW1hOwog
ICAgIHsKICAgICAgICAgLy8gRmV0Y2ggdGhlIHNjaGVtYSBmb3IgYW4gZXhpc3RpbmcgT2JzZXJ2
ZWQgRG9tYWlucyB0YWJsZS4KQEAgLTMyNCwxMiArMzY5LDYgQEAgdm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3BlbkFuZERyb3BPbGREYXRhYmFzZUlmTmVjZXNzYXJ5
KCkKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHJlc2V0U3RhdGVtZW50KFNRTGl0ZVN0YXRlbWVu
dCYgc3RhdGVtZW50KQotewotICAgIGludCByZXNldFJlc3VsdCA9IHN0YXRlbWVudC5yZXNldCgp
OwotICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9P
Syk7Ci19Ci0KIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzRW1w
dHkoKSBjb25zdAogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRleCA3Y2Jm
YThjZmE2ZmYyMTc4MThjMDc0NTEwNDZmNjE4MzQ4MDc3NTE1Li5lN2JkNTk1NGUzZTdhNDk3NzEx
ZWM3YTg5MGNjMDJhNDFmODcyZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtMTM2LDYgKzEzNiw3IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICB2b2lkIG9wZW5JVFBEYXRhYmFzZSgpOworICAgIGJvb2wgaXNDb3JyZWN0
VGFibGVTY2hlbWEoKTsKICAgICB2b2lkIG9wZW5BbmREcm9wT2xkRGF0YWJhc2VJZk5lY2Vzc2Fy
eSgpOwogICAgIFN0cmluZyBnZXREb21haW5TdHJpbmdGcm9tRG9tYWluSUQodW5zaWduZWQpIGNv
bnN0OwogICAgIFN0cmluZyBnZXRTdWJTdGF0aXN0aWNTdGF0ZW1lbnQoY29uc3QgU3RyaW5nJikg
Y29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384159</attachid>
            <date>2019-11-22 09:24:17 -0800</date>
            <delta_ts>2019-11-22 14:13:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204458-20191122092416.patch</filename>
            <type>text/plain</type>
            <size>5434</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk5ZmNjMDYyNjNlNzhjYTI3
NmFhYzQ2MTA0ZDc2Nzg2ZGMwMGE4NGQuLjc4ZThlZjhhZDdlMWQ0MGY1ZWM2NzY4NjhlYzVlNzM2
ZjI3MTE5YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMTEtMjIgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgSVRQIERhdGFiYXNl
IGNyYXNoZXMgaWYgdGFibGUgc2NoZW1hIGlzIG5vdCBjb3JyZWN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0NTgKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU3Mzk5MDg0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIElUUCBkYXRhYmFzZSB3YXMgY3Jhc2hpbmcgaWYgdGhlIHRhYmxlIHNjaGVtYSB3
YXNuJ3QgY29ycmVjdC4gVGhpcworICAgICAgICBzaG91bGQgaW5zdGVhZCBiZSBoYW5kbGVkIGJ5
IHJlLW9wZW5pbmcgYSBuZXcgZGF0YWJhc2Ugd2l0aCBhIGNvcnJlY3QKKyAgICAgICAgc2NoZW1h
IHRvIGFsbG93IGZvciBmdXR1cmUgc2NoZW1hIHVwZGF0ZXMuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmlzQ29ycmVjdFRhYmxlU2NoZW1hKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Om9wZW5BbmREcm9wT2xkRGF0YWJhc2VJZk5lY2Vzc2FyeSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZS5oOgorCiAyMDE5LTExLTIwICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nl
b2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBbR1RLXSBBZGQgQU5HTEUgYmFja2VuZCB0byBHVEsg
cG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5jcHAKaW5kZXggMjRkYjIwYmM1MzYwNDNkYjM3NzQ4MWU0MDg3MzkxMzlmZjhjZjIwZC4u
MWQ0ZTQwOWQ5MDYwYWRhODViNTIwODhkMDMyODY2NjVjN2JiZTU2NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0xMjIs
NiArMTIyLDIwIEBAIGNvbnN0ZXhwciBhdXRvIGZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9uUXVl
cnkgPSAiU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWRECiBjb25zdGV4cHIgYXV0byBnZXRS
ZXNvdXJjZURhdGFCeURvbWFpbk5hbWVRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIE9ic2VydmVkRG9t
YWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iOwogY29uc3RleHByIGF1dG8gZ2V0QWxs
RG9tYWluc1F1ZXJ5ID0gIlNFTEVDVCByZWdpc3RyYWJsZURvbWFpbiBGUk9NIE9ic2VydmVkRG9t
YWlucyJfczsKIAorY29uc3QgY2hhciogdGFibGVzW10gPSB7CisgICAgIk9ic2VydmVkRG9tYWlu
cyIsCisgICAgIlRvcExldmVsRG9tYWlucyIsCisgICAgIlN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZy
YW1lRG9tYWlucyIsCisgICAgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8iLAorICAgICJUb3BG
cmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20iLAorICAgICJUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zy
b20iLAorICAgICJUb3BGcmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzIiwKKyAgICAiU3ViZnJh
bWVVbmRlclRvcEZyYW1lRG9tYWlucyIsCisgICAgIlN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURv
bWFpbnMiLAorICAgICJTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvIiwKKyAgICAiU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tIgorfTsKKwogLy8gQ1JFQVRFIFRBQkxFIFF1ZXJpZXMK
IGNvbnN0ZXhwciBhdXRvIGNyZWF0ZU9ic2VydmVkRG9tYWluID0gIkNSRUFURSBUQUJMRSBPYnNl
cnZlZERvbWFpbnMgKCIKICAgICAiZG9tYWluSUQgSU5URUdFUiBQUklNQVJZIEtFWSwgcmVnaXN0
cmFibGVEb21haW4gVEVYVCBOT1QgTlVMTCBVTklRVUUgT04gQ09ORkxJQ1QgRkFJTCwgbGFzdFNl
ZW4gUkVBTCBOT1QgTlVMTCwgIgpAQCAtMjg4LDEwICszMDIsNDcgQEAgdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3BlbklUUERhdGFiYXNlKCkKICAgICB9CiB9CiAK
K3N0YXRpYyB2b2lkIHJlc2V0U3RhdGVtZW50KFNRTGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50KQor
eworICAgIGludCByZXNldFJlc3VsdCA9IHN0YXRlbWVudC5yZXNldCgpOworICAgIEFTU0VSVF9V
TlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7Cit9CisKK2Jvb2wg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1h
KCkKK3sKKyAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KG1fZGF0YWJhc2UsICJTRUxFQ1Qg
MSBmcm9tIHNxbGl0ZV9tYXN0ZXIgV0hFUkUgdHlwZT0ndGFibGUnIGFuZCB0YmxfbmFtZT0/Iik7
CisgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKSB7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjppc0NvcnJlY3RUYWJsZVNjaGVtYSBmYWlsZWQgdG8gcHJlcGFyZSwgZXJyb3Ig
bWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYm9vbCBoYXNBbGxUYWJsZXMgPSB0
cnVlOworICAgIGZvciAoYXV0byB0YWJsZSA6IHRhYmxlcykgeworICAgICAgICBpZiAoc3RhdGVt
ZW50LmJpbmRUZXh0KDEsIHRhYmxlKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjppc0NvcnJlY3RUYWJsZVNjaGVtYSBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2Fn
ZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChzdGF0ZW1lbnQuc3Rl
cCgpICE9IFNRTElURV9ST1cpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdv
cmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppc0NvcnJlY3RU
YWJsZVNjaGVtYSBzY2hlbWEgaXMgbWlzc2luZyB0YWJsZTogJXMiLCB0aGlzLCB0YWJsZSk7Cisg
ICAgICAgICAgICBoYXNBbGxUYWJsZXMgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXNl
dFN0YXRlbWVudChzdGF0ZW1lbnQpOworICAgIH0KKyAgICByZXR1cm4gaGFzQWxsVGFibGVzOwor
fQorCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpvcGVuQW5kRHJv
cE9sZERhdGFiYXNlSWZOZWNlc3NhcnkoKQogewogICAgIG9wZW5JVFBEYXRhYmFzZSgpOwogCisg
ICAgaWYgKCFpc0NvcnJlY3RUYWJsZVNjaGVtYSgpKSB7CisgICAgICAgIG1fZGF0YWJhc2UuY2xv
c2UoKTsKKyAgICAgICAgLy8gRklYTUU6IE1pZ3JhdGUgZXhpc3RpbmcgZGF0YSB0byBuZXcgZGF0
YWJhc2UgZmlsZSBpbnN0ZWFkIG9mIGRlbGV0aW5nIGl0ICgyMDQ0ODIpLgorICAgICAgICBGaWxl
U3lzdGVtOjpkZWxldGVGaWxlKG1fc3RvcmFnZURpcmVjdG9yeVBhdGgpOworICAgICAgICBvcGVu
SVRQRGF0YWJhc2UoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFN0cmluZyBjdXJy
ZW50U2NoZW1hOwogICAgIHsKICAgICAgICAgLy8gRmV0Y2ggdGhlIHNjaGVtYSBmb3IgYW4gZXhp
c3RpbmcgT2JzZXJ2ZWQgRG9tYWlucyB0YWJsZS4KQEAgLTMyNCwxMiArMzc1LDYgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3BlbkFuZERyb3BPbGREYXRhYmFz
ZUlmTmVjZXNzYXJ5KCkKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHJlc2V0U3RhdGVtZW50KFNR
TGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50KQotewotICAgIGludCByZXNldFJlc3VsdCA9IHN0YXRl
bWVudC5yZXNldCgpOwotICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0
ID09IFNRTElURV9PSyk7Ci19Ci0KIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmlzRW1wdHkoKSBjb25zdAogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUu
aAppbmRleCA3Y2JmYThjZmE2ZmYyMTc4MThjMDc0NTEwNDZmNjE4MzQ4MDc3NTE1Li5lN2JkNTk1
NGUzZTdhNDk3NzExZWM3YTg5MGNjMDJhNDFmODcyZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtMTM2LDYgKzEzNiw3IEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIG9wZW5JVFBEYXRhYmFzZSgpOworICAgIGJv
b2wgaXNDb3JyZWN0VGFibGVTY2hlbWEoKTsKICAgICB2b2lkIG9wZW5BbmREcm9wT2xkRGF0YWJh
c2VJZk5lY2Vzc2FyeSgpOwogICAgIFN0cmluZyBnZXREb21haW5TdHJpbmdGcm9tRG9tYWluSUQo
dW5zaWduZWQpIGNvbnN0OwogICAgIFN0cmluZyBnZXRTdWJTdGF0aXN0aWNTdGF0ZW1lbnQoY29u
c3QgU3RyaW5nJikgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384194</attachid>
            <date>2019-11-22 14:13:51 -0800</date>
            <delta_ts>2019-11-22 16:42:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204458-20191122141350.patch</filename>
            <type>text/plain</type>
            <size>5466</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI2ZDBhNDVlYjlkZDBlMDM1
MjQ2MzkyZTJlNTEyNTk3NGYyMTAzOTUuLmE1MGY5OWFmNTFjOWNjNTI3NzczZDI0Nzg0YmMyYjk1
YThjNDYxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMTEtMjIgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgSVRQIERhdGFiYXNl
IGNyYXNoZXMgaWYgdGFibGUgc2NoZW1hIGlzIG5vdCBjb3JyZWN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0NTgKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU3Mzk5MDg0PgorICAgICAgICAKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVs
Z2hhbS4KKworICAgICAgICBJVFAgZGF0YWJhc2Ugd2FzIGNyYXNoaW5nIGlmIHRoZSB0YWJsZSBz
Y2hlbWEgd2Fzbid0IGNvcnJlY3QuIFRoaXMKKyAgICAgICAgc2hvdWxkIGluc3RlYWQgYmUgaGFu
ZGxlZCBieSByZS1vcGVuaW5nIGEgbmV3IGRhdGFiYXNlIHdpdGggYSBjb3JyZWN0CisgICAgICAg
IHNjaGVtYSB0byBhbGxvdyBmb3IgZnV0dXJlIHNjaGVtYSB1cGRhdGVzLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjppc0NvcnJlY3RUYWJsZVNjaGVtYSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpvcGVuQW5kRHJvcE9sZERhdGFiYXNlSWZOZWNl
c3NhcnkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKwogMjAxOS0xMS0yMiAgQ29ucmFkIFNodWx0eiAg
PGNvbnJhZF9zaHVsdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSAtW19XS1RodW1ibmFp
bFZpZXcgdXNlc1NuYXBzaG90L3NldFVzZXNTbmFwc2hvdDpdCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCAyNGRiMjBiYzUz
NjA0M2RiMzc3NDgxZTQwODczOTEzOWZmOGNmMjBkLi4xZDRlNDA5ZDkwNjBhZGE4NWI1MjA4OGQw
MzI4NjY2NWM3YmJlNTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTEyMiw2ICsxMjIsMjAgQEAgY29uc3RleHByIGF1
dG8gZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25RdWVyeSA9ICJTRUxFQ1QgZG9tYWluSUQgRlJP
TSBPYnNlcnZlZEQKIGNvbnN0ZXhwciBhdXRvIGdldFJlc291cmNlRGF0YUJ5RG9tYWluTmFtZVF1
ZXJ5ID0gIlNFTEVDVCAqIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9t
YWluID0gPyI7CiBjb25zdGV4cHIgYXV0byBnZXRBbGxEb21haW5zUXVlcnkgPSAiU0VMRUNUIHJl
Z2lzdHJhYmxlRG9tYWluIEZST00gT2JzZXJ2ZWREb21haW5zIl9zOwogCitjb25zdCBjaGFyKiB0
YWJsZXNbXSA9IHsKKyAgICAiT2JzZXJ2ZWREb21haW5zIiwKKyAgICAiVG9wTGV2ZWxEb21haW5z
IiwKKyAgICAiU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIiwKKyAgICAiVG9wRnJh
bWVVbmlxdWVSZWRpcmVjdHNUbyIsCisgICAgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSIs
CisgICAgIlRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSIsCisgICAgIlRvcEZyYW1lTG9hZGVk
VGhpcmRQYXJ0eVNjcmlwdHMiLAorICAgICJTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zIiwK
KyAgICAiU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucyIsCisgICAgIlN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzVG8iLAorICAgICJTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20i
Cit9OworCiAvLyBDUkVBVEUgVEFCTEUgUXVlcmllcwogY29uc3RleHByIGF1dG8gY3JlYXRlT2Jz
ZXJ2ZWREb21haW4gPSAiQ1JFQVRFIFRBQkxFIE9ic2VydmVkRG9tYWlucyAoIgogICAgICJkb21h
aW5JRCBJTlRFR0VSIFBSSU1BUlkgS0VZLCByZWdpc3RyYWJsZURvbWFpbiBURVhUIE5PVCBOVUxM
IFVOSVFVRSBPTiBDT05GTElDVCBGQUlMLCBsYXN0U2VlbiBSRUFMIE5PVCBOVUxMLCAiCkBAIC0y
ODgsMTAgKzMwMiw0NyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpvcGVuSVRQRGF0YWJhc2UoKQogICAgIH0KIH0KIAorc3RhdGljIHZvaWQgcmVzZXRTdGF0ZW1l
bnQoU1FMaXRlU3RhdGVtZW50JiBzdGF0ZW1lbnQpCit7CisgICAgaW50IHJlc2V0UmVzdWx0ID0g
c3RhdGVtZW50LnJlc2V0KCk7CisgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRS
ZXN1bHQgPT0gU1FMSVRFX09LKTsKK30KKworYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6aXNDb3JyZWN0VGFibGVTY2hlbWEoKQoreworICAgIFNRTGl0ZVN0YXRlbWVu
dCBzdGF0ZW1lbnQobV9kYXRhYmFzZSwgIlNFTEVDVCAxIGZyb20gc3FsaXRlX21hc3RlciBXSEVS
RSB0eXBlPSd0YWJsZScgYW5kIHRibF9uYW1lPT8iKTsKKyAgICBpZiAoc3RhdGVtZW50LnByZXBh
cmUoKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxl
U2NoZW1hIGZhaWxlZCB0byBwcmVwYXJlLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhp
cywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisKKyAgICBib29sIGhhc0FsbFRhYmxlcyA9IHRydWU7CisgICAgZm9yIChhdXRvIHRhYmxl
IDogdGFibGVzKSB7CisgICAgICAgIGlmIChzdGF0ZW1lbnQuYmluZFRleHQoMSwgdGFibGUpICE9
IFNRTElURV9PSykgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2No
ZW1hIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKHN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgeworICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hIHNjaGVtYSBpcyBtaXNz
aW5nIHRhYmxlOiAlcyIsIHRoaXMsIHRhYmxlKTsKKyAgICAgICAgICAgIGhhc0FsbFRhYmxlcyA9
IGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJlc2V0U3RhdGVtZW50KHN0YXRlbWVudCk7Cisg
ICAgfQorICAgIHJldHVybiBoYXNBbGxUYWJsZXM7Cit9CisKIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Om9wZW5BbmREcm9wT2xkRGF0YWJhc2VJZk5lY2Vzc2FyeSgp
CiB7CiAgICAgb3BlbklUUERhdGFiYXNlKCk7CiAKKyAgICBpZiAoIWlzQ29ycmVjdFRhYmxlU2No
ZW1hKCkpIHsKKyAgICAgICAgbV9kYXRhYmFzZS5jbG9zZSgpOworICAgICAgICAvLyBGSVhNRTog
TWlncmF0ZSBleGlzdGluZyBkYXRhIHRvIG5ldyBkYXRhYmFzZSBmaWxlIGluc3RlYWQgb2YgZGVs
ZXRpbmcgaXQgKDIwNDQ4MikuCisgICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUobV9zdG9y
YWdlRGlyZWN0b3J5UGF0aCk7CisgICAgICAgIG9wZW5JVFBEYXRhYmFzZSgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgU3RyaW5nIGN1cnJlbnRTY2hlbWE7CiAgICAgewogICAgICAg
ICAvLyBGZXRjaCB0aGUgc2NoZW1hIGZvciBhbiBleGlzdGluZyBPYnNlcnZlZCBEb21haW5zIHRh
YmxlLgpAQCAtMzI0LDEyICszNzUsNiBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpvcGVuQW5kRHJvcE9sZERhdGFiYXNlSWZOZWNlc3NhcnkoKQogICAgIH0KIH0K
IAotc3RhdGljIHZvaWQgcmVzZXRTdGF0ZW1lbnQoU1FMaXRlU3RhdGVtZW50JiBzdGF0ZW1lbnQp
Ci17Ci0gICAgaW50IHJlc2V0UmVzdWx0ID0gc3RhdGVtZW50LnJlc2V0KCk7Ci0gICAgQVNTRVJU
X1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKLX0KLQogYm9v
bCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aXNFbXB0eSgpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCmluZGV4IDdjYmZhOGNmYTZmZjIxNzgx
OGMwNzQ1MTA0NmY2MTgzNDgwNzc1MTUuLmU3YmQ1OTU0ZTNlN2E0OTc3MTFlYzdhODkwY2MwMmE0
MWY4NzJkZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5oCkBAIC0xMzYsNiArMTM2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAg
IHZvaWQgb3BlbklUUERhdGFiYXNlKCk7CisgICAgYm9vbCBpc0NvcnJlY3RUYWJsZVNjaGVtYSgp
OwogICAgIHZvaWQgb3BlbkFuZERyb3BPbGREYXRhYmFzZUlmTmVjZXNzYXJ5KCk7CiAgICAgU3Ry
aW5nIGdldERvbWFpblN0cmluZ0Zyb21Eb21haW5JRCh1bnNpZ25lZCkgY29uc3Q7CiAgICAgU3Ry
aW5nIGdldFN1YlN0YXRpc3RpY1N0YXRlbWVudChjb25zdCBTdHJpbmcmKSBjb25zdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>