<?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>215158</bug_id>
          
          <creation_ts>2020-08-04 23:35:44 -0700</creation_ts>
          <short_desc>ResizeObserver appears to not be properly garbage collected</short_desc>
          <delta_ts>2020-10-27 01:52:48 -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>DOM</component>
          <version>Safari 13</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.15</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=186873</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=218225</see_also>
          <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="Clark Pan">clark.y.pan</reporter>
          <assigned_to name="cathiechen">cathiechen</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>cathiechen</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1677894</commentid>
    <comment_count>0</comment_count>
      <attachid>405989</attachid>
    <who name="Clark Pan">clark.y.pan</who>
    <bug_when>2020-08-04 23:35:44 -0700</bug_when>
    <thetext>Created attachment 405989
Test file to reproduce ResizeObserver memory leak

ResizeObserver appears not to be properly garbage collected.

I&apos;m unsure if this is a real problem, or simply a problem within the Web Inspector.

Steps to reproduce:

- Open provided example file in Safari (Tested on version Version 13.1.1 (15609.2.9.1.2))
- Open up Web Inspector -&gt; Timelines -&gt; Javascript Allocations
- Take a snapshot
- Wait a minute
- Take another snapshot
- Compare the two snapshots

Expected
- Only a single count of ResizeObserver and HTMLDivElement should be present

Actual
- None of the used objects seem to be garbage collected.

Notes: I&apos;ve tried the same test in Chrome and Firefox, and they both behave correctly.
These test makes the assumption that garbage collection is run every time I take a heap snapshot (not true in Firefox).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678191</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-05 21:01:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/66608245&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678192</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-08-05 21:17:38 -0700</bug_when>
    <thetext>I can reproduce.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678194</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-05 21:29:54 -0700</bug_when>
    <thetext>This might require a tweak similar to r233053.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678218</commentid>
    <comment_count>4</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-08-06 01:47:04 -0700</bug_when>
    <thetext>Thanks! I can reproduce it.
I think I can work on it in this week or next week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697116</commentid>
    <comment_count>5</comment_count>
    <who name="Clark Pan">clark.y.pan</who>
    <bug_when>2020-10-12 17:08:30 -0700</bug_when>
    <thetext>Thanks for looking at this guys. Is there any more movement on it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698090</commentid>
    <comment_count>6</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-15 06:56:55 -0700</bug_when>
    <thetext>Sorry for the delay.

It seems the snapshot do destroy JSResizeObserver. See

```
#0	0x00000004174e696c in WebCore::JSResizeObserverOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt;, void*) at /Users/cathiechen/cc/source/WebKit/WebKitBuild/Debug/DerivedSources/WebCore/JSResizeObserver.cpp:334
#1	0x0000000435efb44a in JSC::WeakBlock::finalize(JSC::WeakImpl*) at /Users/cathiechen/cc/source/WebKit/Source/JavaScriptCore/heap/WeakSetInlines.h:53
#2	0x0000000435efb4e4 in JSC::WeakBlock::sweep() at /Users/cathiechen/cc/source/WebKit/Source/JavaScriptCore/heap/WeakBlock.cpp:87
#3	0x0000000435efbfd2 in JSC::WeakSet::sweep() at /Users/cathiechen/cc/source/WebKit/Source/JavaScriptCore/heap/WeakSet.cpp:54
#4	0x0000000435ed134a in JSC::MarkedBlock::Handle::sweep(JSC::FreeList*) at /Users/cathiechen/cc/source/WebKit/Source/JavaScriptCore/heap/MarkedBlock.cpp:391
#5	0x0000000435e39a04 in JSC::BlockDirectory::sweep()::$_7::operator()(unsigned long) const at /Users/cathiechen/cc/source/WebKit/Source/JavaScriptCore/heap/BlockDirectory.cpp:280
#6	0x0000000435e3113c in void WTF::FastBitVectorImpl&lt;JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView&lt;(JSC::BlockDirectoryBits::Kind)6&gt; &gt;::forEachSetBit&lt;JSC::BlockDirectory::sweep()::$_7&gt;(JSC::BlockDirectory::sweep()::$_7 const&amp;) const at /Users/cathiechen/cc/source/WebKit/WebKitBuild/Debug/usr/local/include/wtf/FastBitVector.h:355
#7	0x0000000435e310b6 in JSC::BlockDirectory::sweep() at /Users/cathiechen/cc/source/WebKit/Source/JavaScriptCore/heap/BlockDirectory.cpp:277
#8	0x0000000435ee32e9 in JSC::MarkedSpace::sweepBlocks()::$_9::operator()(JSC::BlockDirectory&amp;) const at /Users/cathiechen/cc/source/WebKit/Source/JavaScriptCore/heap/MarkedSpace.cpp:222
#9	0x0000000435ed3f0e in void JSC::MarkedSpace::forEachDirectory&lt;JSC::MarkedSpace::sweepBlocks()::$_9&gt;(JSC::MarkedSpace::sweepBlocks()::$_9 const&amp;) at /Users/cathiechen/cc/source/WebKit/Source/JavaScriptCore/heap/MarkedSpace.h:241
#10	0x0000000435ed3ec9 in JSC::MarkedSpace::sweepBlocks() at /Users/cathiechen/cc/source/WebKit/Source/JavaScriptCore/heap/MarkedSpace.cpp:220
#11	0x0000000435e52f38 in JSC::Heap::sweepSynchronously() at /Users/cathiechen/cc/source/WebKit/Source/JavaScriptCore/heap/Heap.cpp:1048
#12	0x0000000435e53494 in JSC::Heap::collectNow(JSC::Synchronousness, JSC::GCRequest) at /Users/cathiechen/cc/source/WebKit/Source/JavaScriptCore/heap/Heap.cpp:1091
#13	0x0000000435e96fec in JSC::HeapSnapshotBuilder::buildSnapshot() at /Users/cathiechen/cc/source/WebKit/Source/JavaScriptCore/heap/HeapSnapshotBuilder.cpp:73
#14	0x000000043600aa0f in Inspector::InspectorHeapAgent::snapshot() at /Users/cathiechen/cc/source/WebKit/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.cpp:105
```

I&apos;ll check if the Snapshot data is correct later.

@Clark do you meet other problems besides the number of resizeObserver?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698093</commentid>
    <comment_count>7</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-15 07:14:47 -0700</bug_when>
    <thetext>OK, snapshot does not sweep JSResizeObserver every time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699181</commentid>
    <comment_count>8</comment_count>
    <who name="Clark Pan">clark.y.pan</who>
    <bug_when>2020-10-18 18:48:08 -0700</bug_when>
    <thetext>The number of ResizeObserver is not the issue per se; the real issue is what is leaked via the functions scopes of the passed in handler. In a single page app environment, any visual component that wants to use ResizeObserver will be leaking its entire DOM tree when the component is removed.

I&apos;ve worked around this issue in our codebase by providing a proxy implement for ResizeObserver, which nulls out the handler when I remove the component in question. It would be nice to not need this hack though, since it requires developers to know to call `disconnect` when the ResizeObserver is no longer used (which is not strictly needed, since if you have matching observe/unobserve calls, it should be sufficient based on the spec).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700079</commentid>
    <comment_count>9</comment_count>
      <attachid>411961</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-20 23:18:48 -0700</bug_when>
    <thetext>Created attachment 411961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700085</commentid>
    <comment_count>10</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-20 23:28:02 -0700</bug_when>
    <thetext>(In reply to Clark Pan from comment #8)
&gt; The number of ResizeObserver is not the issue per se; the real issue is what
&gt; is leaked via the functions scopes of the passed in handler. In a single
&gt; page app environment, any visual component that wants to use ResizeObserver
&gt; will be leaking its entire DOM tree when the component is removed.

IIUC, in the test, `handler` refers to `observer`, for `() =&gt; {}`.
Because the resize observer callback can not be garbage collected and there&apos;s always refers from callback, so observer can not be garbage collected. It will be released until the page is unloaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700086</commentid>
    <comment_count>11</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-20 23:28:28 -0700</bug_when>
    <thetext>(In reply to Clark Pan from comment #8)
&gt; The number of ResizeObserver is not the issue per se; the real issue is what
&gt; is leaked via the functions scopes of the passed in handler. In a single
&gt; page app environment, any visual component that wants to use ResizeObserver
&gt; will be leaking its entire DOM tree when the component is removed.

IIUC, in the test, `handler` refers to `observer`, for `() =&gt; {}`.
Because the resize observer callback can not be garbage collected and there&apos;s always refers from callback, so observer can not be garbage collected. It will be released until the page is unloaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700087</commentid>
    <comment_count>12</comment_count>
    <who name="Clark Pan">clark.y.pan</who>
    <bug_when>2020-10-20 23:43:52 -0700</bug_when>
    <thetext>(In reply to cathiechen from comment #11)
&gt; (In reply to Clark Pan from comment #8)
&gt; &gt; The number of ResizeObserver is not the issue per se; the real issue is what
&gt; &gt; is leaked via the functions scopes of the passed in handler. In a single
&gt; &gt; page app environment, any visual component that wants to use ResizeObserver
&gt; &gt; will be leaking its entire DOM tree when the component is removed.
&gt; 
&gt; IIUC, in the test, `handler` refers to `observer`, for `() =&gt; {}`.
&gt; Because the resize observer callback can not be garbage collected and
&gt; there&apos;s always refers from callback, so observer can not be garbage
&gt; collected. It will be released until the page is unloaded.

Your understanding is correct.

In addition, the point I was trying to make is that any other variables that are referenced by the `handler` is also not garbage collected.

In the example provided, `div` is also used by the `handler`. You can see that, within the `destructor` thats returned by the `create` function, that I&apos;m removing the `div` from the `container`, which should mark it available for garbage collection.

However, because `handler` is not garbage collected, the `div` is still held via `handler`&apos;s function scope. That means the `div` will be leaked as well.

In a live application, this represents a rather large memory leak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700096</commentid>
    <comment_count>13</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-21 00:38:27 -0700</bug_when>
    <thetext>(In reply to Clark Pan from comment #12)
&gt; 
&gt; In addition, the point I was trying to make is that any other variables that
&gt; are referenced by the `handler` is also not garbage collected.
&gt; 
&gt; In the example provided, `div` is also used by the `handler`. You can see
&gt; that, within the `destructor` thats returned by the `create` function, that
&gt; I&apos;m removing the `div` from the `container`, which should mark it available
&gt; for garbage collection.
&gt; 
&gt; However, because `handler` is not garbage collected, the `div` is still held
&gt; via `handler`&apos;s function scope. That means the `div` will be leaked as well.
&gt; 
&gt; In a live application, this represents a rather large memory leak.

Yeah, that&apos;s right.
Like Comment#3, in the patch the callback is IsWeakCallback, should be able to be gc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700119</commentid>
    <comment_count>14</comment_count>
      <attachid>411961</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-10-21 02:35:23 -0700</bug_when>
    <thetext>Comment on attachment 411961
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        If ResizeObserver is referenced inside ResizeObserverCallback, they are not garbage collected properly. To fix this,

If a ResizeObserver ... it is not garbage...

or

ResizeObservers ... they are not

&gt; LayoutTests/resize-observer/resize-observer-callback-leak.html:11
&gt; +function test0() {

can you find a better name than &quot;test0&quot;?

&gt; LayoutTests/resize-observer/resize-observer-callback-leak.html:30
&gt; +        }

I don&apos;t understand  this handler variable? Is it duplicating the handler below?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700234</commentid>
    <comment_count>15</comment_count>
      <attachid>411961</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-21 09:37:52 -0700</bug_when>
    <thetext>Comment on attachment 411961
Patch

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

Hi Fred,
Thanks for the review:)

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        If ResizeObserver is referenced inside ResizeObserverCallback, they are not garbage collected properly. To fix this,
&gt; 
&gt; If a ResizeObserver ... it is not garbage...
&gt; 
&gt; or
&gt; 
&gt; ResizeObservers ... they are not

Done, thanks

&gt;&gt; LayoutTests/resize-observer/resize-observer-callback-leak.html:11
&gt;&gt; +function test0() {
&gt; 
&gt; can you find a better name than &quot;test0&quot;?

Done, changed it to accessToObserverInCallback

&gt;&gt; LayoutTests/resize-observer/resize-observer-callback-leak.html:30
&gt;&gt; +        }
&gt; 
&gt; I don&apos;t understand  this handler variable? Is it duplicating the handler below?

Ah, yes, I should remove it! Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700241</commentid>
    <comment_count>16</comment_count>
      <attachid>411999</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-21 09:45:51 -0700</bug_when>
    <thetext>Created attachment 411999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700306</commentid>
    <comment_count>17</comment_count>
      <attachid>411999</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-10-21 12:10:00 -0700</bug_when>
    <thetext>Comment on attachment 411999
Patch

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

&gt; Source/WebCore/bindings/js/JSResizeObserverCustom.cpp:36
&gt; +    if (wrapped().callback())
&gt; +        wrapped().callback()-&gt;visitJSFunction(visitor);

This is not safe. This function runs concurrently to the main thread.
After calling callback, the callback may be set to nullptr in the main thread before visitJSFunction is called.
Store callback to a raw pointer first.

&gt; Source/WebCore/page/ResizeObserver.h:68
&gt; +    ResizeObserverCallback* callback() { return m_callback.get(); }
&gt; +

Let&apos;s call this callbackConcurrently() to signify the fact we can&apos;t mutate anything ref count, etc...

&gt; LayoutTests/resize-observer/resize-observer-callback-leak.html:27
&gt; +                        assert_true(observerCount &lt; iterationCount, &apos;Resize observers should be collected.&apos;);

Don&apos;t assume that the number of resize observers is 0 at the beginning of the test.
There might be other resize observers created for other tests that ran before this test.
Instead, record the number of resize observes at the beginning of the test, and subtract the current number.

&gt; LayoutTests/resize-observer/resize-observer-callback-leak.html:30
&gt; +                }, 1000);

What is this step_timeout about? Why is 1s sufficient?
On bots, we probably want a longer timeout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700548</commentid>
    <comment_count>18</comment_count>
      <attachid>411999</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-21 22:42:13 -0700</bug_when>
    <thetext>Comment on attachment 411999
Patch

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

Hi Ryosuke,
Thanks for the review:)

&gt;&gt; Source/WebCore/bindings/js/JSResizeObserverCustom.cpp:36
&gt;&gt; +        wrapped().callback()-&gt;visitJSFunction(visitor);
&gt; 
&gt; This is not safe. This function runs concurrently to the main thread.
&gt; After calling callback, the callback may be set to nullptr in the main thread before visitJSFunction is called.
&gt; Store callback to a raw pointer first.

Done, thanks!

&gt;&gt; Source/WebCore/page/ResizeObserver.h:68
&gt;&gt; +
&gt; 
&gt; Let&apos;s call this callbackConcurrently() to signify the fact we can&apos;t mutate anything ref count, etc...

Done

&gt;&gt; LayoutTests/resize-observer/resize-observer-callback-leak.html:27
&gt;&gt; +                        assert_true(observerCount &lt; iterationCount, &apos;Resize observers should be collected.&apos;);
&gt; 
&gt; Don&apos;t assume that the number of resize observers is 0 at the beginning of the test.
&gt; There might be other resize observers created for other tests that ran before this test.
&gt; Instead, record the number of resize observes at the beginning of the test, and subtract the current number.

Done

&gt;&gt; LayoutTests/resize-observer/resize-observer-callback-leak.html:30
&gt;&gt; +                }, 1000);
&gt; 
&gt; What is this step_timeout about? Why is 1s sufficient?
&gt; On bots, we probably want a longer timeout.

My initial thought is to call gc() in other animation frame, so that it garbage collects all the observers (except the last one).
So 1s would be sufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700551</commentid>
    <comment_count>19</comment_count>
      <attachid>412066</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-21 22:46:37 -0700</bug_when>
    <thetext>Created attachment 412066
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700555</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-10-21 22:54:31 -0700</bug_when>
    <thetext>(In reply to cathiechen from comment #18)
&gt; Comment on attachment 411999 [details]
&gt; Patch
&gt;
&gt; &gt;&gt; LayoutTests/resize-observer/resize-observer-callback-leak.html:30
&gt; &gt;&gt; +                }, 1000);
&gt; &gt; 
&gt; &gt; What is this step_timeout about? Why is 1s sufficient?
&gt; &gt; On bots, we probably want a longer timeout.
&gt; 
&gt; My initial thought is to call gc() in other animation frame, so that it
&gt; garbage collects all the observers (except the last one).
&gt; So 1s would be sufficient.

Can&apos;t we explicitly wait for that to happen instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700566</commentid>
    <comment_count>21</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-22 01:35:55 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #20)
&gt; (In reply to cathiechen from comment #18)
&gt; &gt; Comment on attachment 411999 [details]
&gt; &gt; Patch
&gt; &gt;
&gt; &gt; &gt;&gt; LayoutTests/resize-observer/resize-observer-callback-leak.html:30
&gt; &gt; &gt;&gt; +                }, 1000);
&gt; &gt; &gt; 
&gt; &gt; &gt; What is this step_timeout about? Why is 1s sufficient?
&gt; &gt; &gt; On bots, we probably want a longer timeout.
&gt; &gt; 
&gt; &gt; My initial thought is to call gc() in other animation frame, so that it
&gt; &gt; garbage collects all the observers (except the last one).
&gt; &gt; So 1s would be sufficient.
&gt; 
&gt; Can&apos;t we explicitly wait for that to happen instead?

Ah, yes, we can do that! It becomes more clear. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700569</commentid>
    <comment_count>22</comment_count>
      <attachid>412072</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-22 01:38:45 -0700</bug_when>
    <thetext>Created attachment 412072
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700606</commentid>
    <comment_count>23</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-22 05:41:14 -0700</bug_when>
    <thetext>Committed r268860: &lt;https://trac.webkit.org/changeset/268860&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412072.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700740</commentid>
    <comment_count>24</comment_count>
      <attachid>412072</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-10-22 10:55:52 -0700</bug_when>
    <thetext>Comment on attachment 412072
Patch

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

&gt; Source/WebCore/bindings/js/JSResizeObserverCustom.cpp:36
&gt; +    ResizeObserverCallback* callback = wrapped().callbackConcurrently();
&gt; +    if (callback)

Should have declared callback inside if.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>405989</attachid>
            <date>2020-08-04 23:35:44 -0700</date>
            <delta_ts>2020-08-04 23:35:44 -0700</delta_ts>
            <desc>Test file to reproduce ResizeObserver memory leak</desc>
            <filename>index.html</filename>
            <type>text/html</type>
            <size>863</size>
            <attacher name="Clark Pan">clark.y.pan</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+PC90aXRsZT4KPC9oZWFkPgo8
Ym9keT4KICA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgogIDxzY3JpcHQ+CiAgICBjb25zdCBj
cmVhdGUgPSAoKSA9PiB7CiAgICAgIGNvbnN0IGlkID0gTWF0aC5yYW5kb20oKTsKICAgICAgY29u
c3QgY29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2NvbnRhaW5lcicpOwogICAg
ICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgY29udGFp
bmVyLmFwcGVuZENoaWxkKGRpdik7CiAgICAgIGNvbnN0IGhhbmRsZXIgPSAoKSA9PiB7CiAgICAg
ICAgZGl2LmlubmVySFRNTCA9IGAke2lkfTogJHtkaXYuY2xpZW50V2lkdGh9YDsKICAgICAgfQog
ICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihoYW5kbGVyKTsKICAgICAg
b2JzZXJ2ZXIub2JzZXJ2ZShkaXYpOwogICAgICBoYW5kbGVyKCk7CiAgICAgIHJldHVybiAoKSA9
PiB7CiAgICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGRpdik7CiAgICAgICAgb2JzZXJ2ZXIuZGlz
Y29ubmVjdCgpOwogICAgICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChkaXYpOwogICAgICB9CiAg
ICB9CgogICAgY29uc3QgbG9vcCA9ICgpID0+IHsKICAgICAgY29uc3QgZGVzdHJ1Y3RvciA9IGNy
ZWF0ZSgpOwogICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICBkZXN0cnVjdG9yKCk7CiAg
ICAgICAgbG9vcCgpOwogICAgICB9LCAxMDAwKTsKICAgIH0KCiAgICBjb25zdCBtYWluID0gKCkg
PT4gewogICAgICBsb29wKCk7CiAgICB9CgogICAgbWFpbigpOwogIDwvc2NyaXB0Pgo8L2JvZHk+
CjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411961</attachid>
            <date>2020-10-20 23:18:48 -0700</date>
            <delta_ts>2020-10-21 09:45:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215158-20201021141846.patch</filename>
            <type>text/plain</type>
            <size>15598</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQzZGZkYmMxODg5Mjlk
NGI1OTliNjY5MzRkYzdkZDQ0YTk4MzFhMS4uMGY4Njk4ZTZiMTk3M2MzYTBhODc1ZDQ1NDVkMjNm
YmNmMTMwZmJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTEwLTIwICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBSZXNpemVPYnNlcnZl
ciBpcyBub3QgcHJvcGVybHkgZ2FyYmFnZSBjb2xsZWN0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTE1OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIFJlc2l6ZU9ic2VydmVyIGlzIHJlZmVyZW5j
ZWQgaW5zaWRlIFJlc2l6ZU9ic2VydmVyQ2FsbGJhY2ssIHRoZXkgYXJlIG5vdCBnYXJiYWdlIGNv
bGxlY3RlZCBwcm9wZXJseS4gVG8gZml4IHRoaXMsCisgICAgICAgIGFkZCBJc1dlYWtDYWxsYmFj
ayB0byBSZXNpemVPYnNlcnZlckNhbGxiYWNrIGludGVyZmFjZSBzbyB0aGF0IGl0IHVzZXMgSlND
OjpXZWFrIHRvIHN0b3JlIHRoZSBjYWxsYmFjay4gQW5kIGFkZCB0aGUgY2FsbGJhY2sKKyAgICAg
ICAgdG8gdmlzaXRvciBpbiBKU1Jlc2l6ZU9ic2VydmVyOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJl
bigpIHRvIGtlZXAgaXQgYWxpdmUuIEluIG9yZGVyIHRvIHRlc3QgUmVzaXplT2JzZXJ2ZXIgbGVh
aywgYWRkIHRlc3QgaW50ZXJmYWNlCisgICAgICAgIG51bWJlck9mUmVzaXplT2JzZXJ2ZXJzKCkg
dG8gSW50ZXJuYWxzLmlkbC4KKworICAgICAgICBUZXN0OiByZXNpemUtb2JzZXJ2ZXIvcmVzaXpl
LW9ic2VydmVyLWNhbGxiYWNrLWxlYWsuaHRtbAorCisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTUmVzaXplT2JzZXJ2ZXJDdXN0b20uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaWRsLgorICAgICAgICAoV2ViQ29y
ZTo6SlNSZXNpemVPYnNlcnZlcjo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4pOiBBZGQgY2FsbGJh
Y2sgdG8gU2xvdFZpc2l0b3IuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6bnVtYmVyT2ZSZXNpemVPYnNlcnZlcnMgY29uc3QpOgorICAgICAg
ICAqIHBhZ2UvUmVzaXplT2JzZXJ2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc2l6ZU9ic2Vy
dmVyOjpjYWxsYmFjayk6CisgICAgICAgICogcGFnZS9SZXNpemVPYnNlcnZlci5pZGw6IEFkZCBK
U0N1c3RvbU1hcmtGdW5jdGlvbiB0byB0aGUgaW50ZXJmYWNlLgorICAgICAgICAqIHBhZ2UvUmVz
aXplT2JzZXJ2ZXJDYWxsYmFjay5oOgorICAgICAgICAqIHBhZ2UvUmVzaXplT2JzZXJ2ZXJDYWxs
YmFjay5pZGw6IEFkZCBJc1dlYWtDYWxsYmFjayB0byB0aGUgaW50ZXJmYWNlLgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDogQWRkIG51bWJlck9mUmVzaXplT2JzZXJ2ZXJzLgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpudW1iZXJPZlJlc2l6ZU9ic2VydmVycyBjb25zdCk6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5pZGw6CisKIDIwMjAtMTAtMTQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXSBVc2UgdGhlIHRlcm0gb3ZlcnJpZGRlbiBpbnN0ZWFkIG9mIG92ZXJy
aWRlIHRvIGluZGljYXRlIHByaW9yaXR5IHZhbHVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5NjVhZGMx
MzBmMWRmNDM2NWIwODI5OWQyNjZkNjhmOWZjZjgxYjFkLi5lYTM5ZDE3MWViNTk0NmY1ZjI0YWMz
M2Q5ODZhNTAzYjU3ODEwOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNTU5LDYgKzU1OSw3IEBAIGJp
bmRpbmdzL2pzL0pTUHJvbWlzZVJlamVjdGlvbkV2ZW50Q3VzdG9tLmNwcAogYmluZGluZ3MvanMv
SlNSZWFkYWJsZVN0cmVhbVNvdXJjZUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTUmVtb3RlRE9N
V2luZG93QmFzZS5jcHAKIGJpbmRpbmdzL2pzL0pTUmVtb3RlRE9NV2luZG93Q3VzdG9tLmNwcAor
YmluZGluZ3MvanMvSlNSZXNpemVPYnNlcnZlckN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTUmVz
aXplT2JzZXJ2ZXJFbnRyeUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTU1ZHUGF0aFNlZ0N1c3Rv
bS5jcHAKIGJpbmRpbmdzL2pzL0pTU1ZHVmlld1NwZWNDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDkxZTc1N2Uz
ZDg2MWI5NmE0MDYxYmY1NjA4ODllMmZmOTRhNWJhZi4uMjM0Y2E3YzY2ZjBiZDNlZTMxZjk1NzVk
YTQ1YTZjZDc3MzVhNDBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTE5OCw2ICs5MTk4LDcgQEAKIAkJNTgyNEFCQTUxQUU4
MTM4NDAwOTA3NEI3IC8qIFJ1YnlUZXh0RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSdWJ5VGV4dEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTgyREUzMjIxQzMwQzg1NDAwQkUwMkE4IC8qIFRleHREZWNvcmF0aW9uUGFpbnRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0RGVjb3JhdGlvblBhaW50
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODJERTMyMzFDMzBDODU0MDBC
RTAyQTggLyogVGV4dERlY29yYXRpb25QYWludGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFRleHREZWNvcmF0aW9uUGFpbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1ODY4QzdDNDI1MzlEQTMzMDBCRjlERjMgLyogSlNSZXNpemVPYnNlcnZlckN1c3Rv
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Jlc2l6ZU9ic2Vy
dmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTg4NEZFNTYyMjgx
M0UyRDAwNDBBRkY2IC8qIEpTUmVzaXplT2JzZXJ2ZXJFbnRyeUN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Jlc2l6ZU9ic2VydmVyRW50cnlDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODk1NTZFQzE4RDRBNDQwMDA3NjRC
MDMgLyogQm9yZGVyRWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCb3Jk
ZXJFZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4QUVFMkYzMThENEJDQ0Yw
MDIyRTdGRSAvKiBCb3JkZXJFZGdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEJvcmRlckVkZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIy
NzIsNiArMjIyNzMsNyBAQAogCQkJCUNCMzhGRDU1MUNEMjFENUIwMDU5MkEzRiAvKiBKU1BlcmZv
cm1hbmNlRW50cnlDdXN0b20uY3BwICovLAogCQkJCTgzM0NGNzBGMjBEQjNGNUYwMDE0MUJDQyAv
KiBKU1BlcmZvcm1hbmNlT2JzZXJ2ZXJDdXN0b20uY3BwICovLAogCQkJCUE0QTY5QjhCQjkxQjQ5
RDBBODA0QzMxRCAvKiBKU1Byb21pc2VSZWplY3Rpb25FdmVudEN1c3RvbS5jcHAgKi8sCisJCQkJ
NTg2OEM3QzQyNTM5REEzMzAwQkY5REYzIC8qIEpTUmVzaXplT2JzZXJ2ZXJDdXN0b20uY3BwICov
LAogCQkJCTU4ODRGRTU2MjI4MTNFMkQwMDQwQUZGNiAvKiBKU1Jlc2l6ZU9ic2VydmVyRW50cnlD
dXN0b20uY3BwICovLAogCQkJCTgzRjU3Mjk0MUZBMTA2NkYwMDM4MzdCRSAvKiBKU1NlcnZpY2VX
b3JrZXJDbGllbnRDdXN0b20uY3BwICovLAogCQkJCTQ2MEQxOTQ0MUZDRTIxREQwMEMzREI4NSAv
KiBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Jlc2l6ZU9ic2VydmVyQ3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVzaXplT2JzZXJ2ZXJDdXN0b20uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjczMzQ1MWI3MjM4N2ZlNzJiN2I2MzI5ZTM2YTNmNGZiMzQ4MjBkMGMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Jlc2l6ZU9ic2VydmVyQ3Vz
dG9tLmNwcApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1Jlc2l6
ZU9ic2VydmVyLmgiCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBKU1Jlc2l6ZU9ic2VydmVyOjp2aXNpdEFkZGl0
aW9uYWxDaGlsZHJlbihKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIGlmICh3cmFw
cGVkKCkuY2FsbGJhY2soKSkKKyAgICAgICAgd3JhcHBlZCgpLmNhbGxiYWNrKCktPnZpc2l0SlNG
dW5jdGlvbih2aXNpdG9yKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkZDg4M2Iy
YTA3YzU2MjM2ZWNjZmQ1MDQ1YWFlNjA2YjM5NmU4NzRmLi4yNjNhYWU0NTQ4OTI1MzRiNTc4ZjQ2
YmM5YzEzM2U1ZDljZDIxNGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTQxMiw2ICsxNDEy
LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShSRVNJWkVfT0JTRVJWRVIpCiAgICAgdm9pZCBhZGRS
ZXNpemVPYnNlcnZlcihSZXNpemVPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlUmVzaXplT2Jz
ZXJ2ZXIoUmVzaXplT2JzZXJ2ZXImKTsKKyAgICB1bnNpZ25lZCBudW1iZXJPZlJlc2l6ZU9ic2Vy
dmVycygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzaXplT2JzZXJ2ZXJzLnNpemUoKTsgfQogICAgIGJv
b2wgaGFzUmVzaXplT2JzZXJ2ZXJzKCk7CiAgICAgLy8gUmV0dXJuIHRoZSBtaW5EZXB0aCBvZiB0
aGUgYWN0aXZlIG9ic2VydmF0aW9ucy4KICAgICBzaXplX3QgZ2F0aGVyUmVzaXplT2JzZXJ2YXRp
b25zKHNpemVfdCBkZWVwZXJUaGFuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UmVzaXplT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXIuaApp
bmRleCA2MDllNzBjMDE0NmM1NTBkYjUxZjhlM2VhYmQ3ZTRhNzc1ZWE0ZDBlLi4xZWQ0ZDM2YjU1
NTMwNGZmMWY4NjEwYzY5ZDBkYTRlMGYxNGNmZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Jlc2l6ZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVP
YnNlcnZlci5oCkBAIC02NCw2ICs2NCw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1NraXBwZWRP
YnNlcnZhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX2hhc1NraXBwZWRPYnNlcnZhdGlvbnM7IH0K
ICAgICB2b2lkIHNldEhhc1NraXBwZWRPYnNlcnZhdGlvbnMoYm9vbCBza2lwcGVkKSB7IG1faGFz
U2tpcHBlZE9ic2VydmF0aW9ucyA9IHNraXBwZWQ7IH0KIAorICAgIFJlc2l6ZU9ic2VydmVyQ2Fs
bGJhY2sqIGNhbGxiYWNrKCkgeyByZXR1cm4gbV9jYWxsYmFjay5nZXQoKTsgfQorCiBwcml2YXRl
OgogICAgIFJlc2l6ZU9ic2VydmVyKERvY3VtZW50JiwgUmVmPFJlc2l6ZU9ic2VydmVyQ2FsbGJh
Y2s+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmVy
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXIuaWRsCmluZGV4IDNjODdh
MjE3MTQxNWQzZTAyY2EzMWVhYTE2MDA0MzQ1YzA3NDBjOTUuLjA1ZTg0N2Q5MDA4MzE2NjY3NWE1
YTc3ZTk1ZTVjOGVlOWY4MmY2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVz
aXplT2JzZXJ2ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXIu
aWRsCkBAIC0yOSw3ICsyOSw4IEBACiAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgIENvbmRpdGlv
bmFsPVJFU0laRV9PQlNFUlZFUiwKICAgICBFbmFibGVkQnlTZXR0aW5nPVJlc2l6ZU9ic2VydmVy
LAotICAgIEV4cG9zZWQ9V2luZG93CisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSlNDdXN0b21N
YXJrRnVuY3Rpb24sCiBdIGludGVyZmFjZSBSZXNpemVPYnNlcnZlciB7CiAgICAgW0NhbGxXaXRo
PURvY3VtZW50XSBjb25zdHJ1Y3RvcihSZXNpemVPYnNlcnZlckNhbGxiYWNrIGNhbGxiYWNrKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNr
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaAppbmRleCBi
MzliOGIxOTFkNzkwMTQwZGZmYzRjYWY4ZjQ3MmU2NGU1YTlmODMyLi44M2MxMjg0MTRjNWRiZjlm
MDI3MGRkYmIxZjc4NjhmYmYzN2U0MDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6
ZU9ic2VydmVyQ2FsbGJhY2suaApAQCAtMzksNiArMzksOSBAQCBjbGFzcyBSZXNpemVPYnNlcnZl
ckVudHJ5OwogY2xhc3MgUmVzaXplT2JzZXJ2ZXJDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVk
PFJlc2l6ZU9ic2VydmVyQ2FsbGJhY2s+LCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgewogcHVi
bGljOgogICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3RpdmVET01DYWxsYmFjazsKKwor
ICAgIHZpcnR1YWwgYm9vbCBoYXNDYWxsYmFjaygpIGNvbnN0ID0gMDsKKwogICAgIHZpcnR1YWwg
Q2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoUmVzaXplT2JzZXJ2ZXImLCBjb25zdCBW
ZWN0b3I8UmVmPFJlc2l6ZU9ic2VydmVyRW50cnk+PiYsIFJlc2l6ZU9ic2VydmVyJikgPSAwOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZlckNhbGxi
YWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXJDYWxsYmFjay5pZGwK
aW5kZXggOGM3OTQwYWY4YjExNTFmMjM1Y2ZkN2FiYmQ5YjAzNDQ3NDI3NTJkYi4uMjhhYTlmMzk3
ZGRkZThiMmY4NzQ5YjFjNWQ5MzNmNzg2MWYyNTA2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaWRsCkBAIC0yOCw0ICsyOCw1IEBACiBbCiAgICAg
Q29uZGl0aW9uYWw9UkVTSVpFX09CU0VSVkVSLAogICAgIENhbGxiYWNrVGhpc09iamVjdD1SZXNp
emVPYnNlcnZlciwKKyAgICBJc1dlYWtDYWxsYmFjaywKIF0gY2FsbGJhY2sgUmVzaXplT2JzZXJ2
ZXJDYWxsYmFjayA9IHVuZGVmaW5lZCAoc2VxdWVuY2U8UmVzaXplT2JzZXJ2ZXJFbnRyeT4gZW50
cmllcywgUmVzaXplT2JzZXJ2ZXIgb2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IGEwOTMwNWYyODRjZWNhNjVkNjg0NjE4OWU5N2RkYWI3NzU1MTA2ZDYuLmVh
YmM1YjMwMzY1YmM1Mjc1ZTE1MTUxNGQwMmJlOWQ5MjdiYWViZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKQEAgLTI2MjIsNiArMjYyMiwxMyBAQCB1bnNpZ25lZCBJbnRlcm5h
bHM6Om51bWJlck9mSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzKGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCkgY29ucwogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUkVTSVpFX09CU0VSVkVSKQordW5zaWdu
ZWQgSW50ZXJuYWxzOjpudW1iZXJPZlJlc2l6ZU9ic2VydmVycyhjb25zdCBEb2N1bWVudCYgZG9j
dW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50Lm51bWJlck9mUmVzaXplT2JzZXJ2
ZXJzKCk7Cit9CisjZW5kaWYKKwogdWludDY0X3QgSW50ZXJuYWxzOjpkb2N1bWVudElkZW50aWZp
ZXIoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogewogICAgIHJldHVybiBkb2N1bWVu
dC5pZGVudGlmaWVyKCkudG9VSW50NjQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmlu
ZGV4IGExNmY5NTJmMTU1MDAxYmQ2MzUyYWU1MDk3YWQ2ODY2ZjQ4N2EyNDUuLjQyZWU4MGUwODkz
MzBlMGFlNTM1NGQ5ZGY5NDY1ODFiM2NiNTZmMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaApAQCAtNDQzLDYgKzQ0MywxMCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZJ
bnRlcnNlY3Rpb25PYnNlcnZlcnMoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKICNlbmRpZgogCisj
aWYgRU5BQkxFKFJFU0laRV9PQlNFUlZFUikKKyAgICB1bnNpZ25lZCBudW1iZXJPZlJlc2l6ZU9i
c2VydmVycyhjb25zdCBEb2N1bWVudCYpIGNvbnN0OworI2VuZGlmCisKICAgICB1aW50NjRfdCBk
b2N1bWVudElkZW50aWZpZXIoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKICAgICBib29sIGlzRG9j
dW1lbnRBbGl2ZSh1aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggYTNmNDU2ZTA4OWY3YmZhMWZmMWE3M2FlMzVk
NDdhNGNiOWMxOTQxMS4uZmI1MWRmZTkwNjFlMTJiMjdmYzM0YzA5YWVlODM0Mzc3MGY5YWJmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNTE0LDYgKzUxNCw3IEBAIGVu
dW0gQ29udGVudFNpemVDYXRlZ29yeSB7CiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZkxpdmVE
b2N1bWVudHMoKTsKICAgICB1bnNpZ25lZCBsb25nIHJlZmVyZW5jaW5nTm9kZUNvdW50KERvY3Vt
ZW50IGRvY3VtZW50KTsKICAgICBbQ29uZGl0aW9uYWw9SU5URVJTRUNUSU9OX09CU0VSVkVSXSB1
bnNpZ25lZCBsb25nIG51bWJlck9mSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzKERvY3VtZW50IGRvY3Vt
ZW50KTsKKyAgICBbQ29uZGl0aW9uYWwgPSBSRVNJWkVfT0JTRVJWRVJdIHVuc2lnbmVkIGxvbmcg
bnVtYmVyT2ZSZXNpemVPYnNlcnZlcnMoRG9jdW1lbnQgZG9jdW1lbnQpOwogICAgIFdpbmRvd1By
b3h5PyBvcGVuRHVtbXlJbnNwZWN0b3JGcm9udGVuZChET01TdHJpbmcgdXJsKTsKICAgICB1bmRl
ZmluZWQgY2xvc2VEdW1teUluc3BlY3RvckZyb250ZW5kKCk7CiAgICAgW01heVRocm93RXhjZXB0
aW9uXSB1bmRlZmluZWQgc2V0SW5zcGVjdG9ySXNVbmRlclRlc3QoYm9vbGVhbiBpc1VuZGVyVGVz
dCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggOGIxNWZlMDQwMGNiMzEwNTkwYmJkNjZmNmNmMGQ3Nzg1MmVmMjg1Mi4uNjY3
ODgyMDdlNjU3MTdiY2I1M2U3ZGJkZDJjMjkxNWU4OTBkZmJjYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDIwLTEwLTIwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBSZXNpemVPYnNlcnZlciBpcyBub3QgcHJvcGVybHkgZ2FyYmFnZSBjb2xsZWN0ZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTE1OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVzaXpl
LW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZlci1jYWxsYmFjay1sZWFrLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcmVzaXplLW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZlci1jYWxsYmFjay1s
ZWFrLmh0bWw6IEFkZGVkLgorCiAyMDIwLTEwLTE0ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNn
XzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBbIG1hY09TIF0gYWNjZXNzaWJpbGl0eS9tYWMvc2Vs
ZWN0LWVsZW1lbnQtc2VsZWN0aW9uLXdpdGgtb3B0Z3JvdXBzLmh0bWwgaXMgYSBmbGFreSBmYWls
dXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNpemUtb2JzZXJ2ZXIvcmVzaXplLW9ic2Vy
dmVyLWNhbGxiYWNrLWxlYWstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcmVzaXplLW9ic2Vy
dmVyL3Jlc2l6ZS1vYnNlcnZlci1jYWxsYmFjay1sZWFrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44ZTAxZjhjZGZiYzY3MTBkMTBhODAzZGQ5MjY3NDM5NTI5ZDI3MjM1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcmVzaXplLW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZlci1jYWxsYmFj
ay1sZWFrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBSZXNpemVPYnNlcnZl
ciBpbXBsZW1lbnRlZAorUEFTUyB0ZXN0MDogUmVzaXplIG9ic2VydmVyIGluc2lkZSBjYWxsYmFj
ayBzaG91bGQgYmUgZ2FyYmFnZSBjb2xsZWN0ZWQgaWYgbm8gb25lIHJlZmVycyB0byBpdAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNpemUtb2JzZXJ2ZXIvcmVzaXplLW9ic2VydmVyLWNh
bGxiYWNrLWxlYWsuaHRtbCBiL0xheW91dFRlc3RzL3Jlc2l6ZS1vYnNlcnZlci9yZXNpemUtb2Jz
ZXJ2ZXItY2FsbGJhY2stbGVhay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0MTZiMDM1MWE1YjVlMDk2NWZl
ZTc4NGU1YzBiMGVhOTljNDkyNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9yZXNp
emUtb2JzZXJ2ZXIvcmVzaXplLW9ic2VydmVyLWNhbGxiYWNrLWxlYWsuaHRtbApAQCAtMCwwICsx
LDYyIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1l
bnRhbDpSZXNpemVPYnNlcnZlckVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2djLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0MCgpIHsK
KyAgICBsZXQgdGVzdCA9IGFzeW5jX3Rlc3QoInRlc3QwOiBSZXNpemUgb2JzZXJ2ZXIgaW5zaWRl
IGNhbGxiYWNrIHNob3VsZCBiZSBnYXJiYWdlIGNvbGxlY3RlZCBpZiBubyBvbmUgcmVmZXJzIHRv
IGl0Iik7CisgICAgY29uc3QgaXRlcmF0aW9uQ291bnQgPSA1MDsKKyAgICBsZXQgY2FsbGJhY2tD
b3VudCA9IDA7CisgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVyYXRpb25Db3VudDsgKytqKSB7
CisgICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoKSA9PiB7CisgICAgICAgICAgICBvYnNlcnZlci5k
aXNjb25uZWN0KCk7CisgICAgICAgICAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQoZGl2KTsKKyAg
ICAgICAgICAgIGNhbGxiYWNrQ291bnQrKzsKKyAgICAgICAgICAgIGlmIChjYWxsYmFja0NvdW50
ID09IGl0ZXJhdGlvbkNvdW50KSB7CisgICAgICAgICAgICAgICAgc3RlcF90aW1lb3V0KCgpID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZ2MoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdC5z
dGVwKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvYnNlcnZlckNvdW50ID0g
aW50ZXJuYWxzLm51bWJlck9mUmVzaXplT2JzZXJ2ZXJzKGRvY3VtZW50KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF90cnVlKG9ic2VydmVyQ291bnQgPCBpdGVyYXRpb25Db3VudCwg
J1NvbWUgcmVzaXplIG9ic2VydmVycyBzaG91bGQgYmUgY29sbGVjdGVkLicpOworICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIH0sIDEwMDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBjb250
YWluZXIuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICAgICAgbGV0IG9ic2VydmVyID0gbmV3IFJlc2l6
ZU9ic2VydmVyKCgpID0+IHsKKyAgICAgICAgICAgIGNhbGxiYWNrQ291bnQrKzsKKyAgICAgICAg
ICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTsKKyAgICAgICAgICAgIGNvbnRhaW5lci5yZW1vdmVD
aGlsZChkaXYpOworICAgICAgICAgICAgaWYgKGNhbGxiYWNrQ291bnQgPT0gaXRlcmF0aW9uQ291
bnQpIHsKKyAgICAgICAgICAgICAgICBzdGVwX3RpbWVvdXQoKCkgPT4geworICAgICAgICAgICAg
ICAgICAgICBnYygpOworICAgICAgICAgICAgICAgICAgICB0ZXN0LnN0ZXAoKCkgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IG9ic2VydmVyQ291bnQgPSBpbnRlcm5hbHMubnVtYmVy
T2ZSZXNpemVPYnNlcnZlcnMoZG9jdW1lbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X3RydWUob2JzZXJ2ZXJDb3VudCA8IGl0ZXJhdGlvbkNvdW50LCAnUmVzaXplIG9ic2VydmVy
cyBzaG91bGQgYmUgY29sbGVjdGVkLicpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5k
b25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0sIDEwMDAp
OworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShk
aXYpOworICAgIH0KKworfQorCit0ZXN0KF8gPT4geworICAgIGFzc2VydF9vd25fcHJvcGVydHko
d2luZG93LCAiUmVzaXplT2JzZXJ2ZXIiKTsKK30sICJSZXNpemVPYnNlcnZlciBpbXBsZW1lbnRl
ZCIpOworCit3aW5kb3cub25sb2FkID0gdGVzdDAoKTsKKzwvc2NyaXB0PgorCis8L2JvZHk+CisK
KzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411999</attachid>
            <date>2020-10-21 09:45:51 -0700</date>
            <delta_ts>2020-10-21 22:46:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215158-20201022004550.patch</filename>
            <type>text/plain</type>
            <size>15025</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQzZGZkYmMxODg5Mjlk
NGI1OTliNjY5MzRkYzdkZDQ0YTk4MzFhMS4uOWQ2ZjJkMDI0N2VkYTVjOTQzOGI1MGEwM2Q0Njg3
ODMzMjQ0ZDJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTEwLTIwICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBSZXNpemVPYnNlcnZl
ciBpcyBub3QgcHJvcGVybHkgZ2FyYmFnZSBjb2xsZWN0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTE1OAorCisgICAgICAgIFJldmlld2VkIGJ5
IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBJZiBSZXNpemVPYnNlcnZlcnMgYXJlIHJlZmVy
ZW5jZWQgaW5zaWRlIFJlc2l6ZU9ic2VydmVyQ2FsbGJhY2tzLCB0aGV5IGFyZSBub3QgZ2FyYmFn
ZSBjb2xsZWN0ZWQgcHJvcGVybHkuIFRvIGZpeCB0aGlzLAorICAgICAgICBhZGQgSXNXZWFrQ2Fs
bGJhY2sgdG8gUmVzaXplT2JzZXJ2ZXJDYWxsYmFjayBpbnRlcmZhY2Ugc28gdGhhdCBpdCB1c2Vz
IEpTQzo6V2VhayB0byBzdG9yZSB0aGUgY2FsbGJhY2suIEFuZCBhZGQgdGhlIGNhbGxiYWNrCisg
ICAgICAgIHRvIHZpc2l0b3IgaW4gSlNSZXNpemVPYnNlcnZlcjo6dmlzaXRBZGRpdGlvbmFsQ2hp
bGRyZW4oKSB0byBrZWVwIGl0IGFsaXZlLiBJbiBvcmRlciB0byB0ZXN0IFJlc2l6ZU9ic2VydmVy
IGxlYWssIGFkZCB0ZXN0IGludGVyZmFjZQorICAgICAgICBudW1iZXJPZlJlc2l6ZU9ic2VydmVy
cygpIHRvIEludGVybmFscy5pZGwuCisKKyAgICAgICAgVGVzdDogcmVzaXplLW9ic2VydmVyL3Jl
c2l6ZS1vYnNlcnZlci1jYWxsYmFjay1sZWFrLmh0bWwKKworICAgICAgICAqIFNvdXJjZXMudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1Jlc2l6ZU9ic2VydmVyQ3VzdG9tLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNrLmlkbC4KKyAgICAgICAgKFdl
YkNvcmU6OkpTUmVzaXplT2JzZXJ2ZXI6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKTogQWRkIGNh
bGxiYWNrIHRvIFNsb3RWaXNpdG9yLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om51bWJlck9mUmVzaXplT2JzZXJ2ZXJzIGNvbnN0KToKKyAg
ICAgICAgKiBwYWdlL1Jlc2l6ZU9ic2VydmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNpemVP
YnNlcnZlcjo6Y2FsbGJhY2spOgorICAgICAgICAqIHBhZ2UvUmVzaXplT2JzZXJ2ZXIuaWRsOiBB
ZGQgSlNDdXN0b21NYXJrRnVuY3Rpb24gdG8gdGhlIGludGVyZmFjZS4KKyAgICAgICAgKiBwYWdl
L1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaDoKKyAgICAgICAgKiBwYWdlL1Jlc2l6ZU9ic2VydmVy
Q2FsbGJhY2suaWRsOiBBZGQgSXNXZWFrQ2FsbGJhY2sgdG8gdGhlIGludGVyZmFjZS4KKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6IEFkZCBudW1iZXJPZlJlc2l6ZU9ic2VydmVycy4K
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bnVtYmVyT2ZSZXNpemVPYnNlcnZlcnMgY29u
c3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaWRsOgorCiAyMDIwLTEwLTE0ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0xGQ10gVXNlIHRoZSB0ZXJtIG92ZXJyaWRkZW4gaW5zdGVhZCBvZiBv
dmVycmlkZSB0byBpbmRpY2F0ZSBwcmlvcml0eSB2YWx1ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOTY1
YWRjMTMwZjFkZjQzNjViMDgyOTlkMjY2ZDY4ZjlmY2Y4MWIxZC4uZWEzOWQxNzFlYjU5NDZmNWYy
NGFjMzNkOTg2YTUwM2I1NzgxMDk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTU1OSw2ICs1NTksNyBA
QCBiaW5kaW5ncy9qcy9KU1Byb21pc2VSZWplY3Rpb25FdmVudEN1c3RvbS5jcHAKIGJpbmRpbmdz
L2pzL0pTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1JlbW90
ZURPTVdpbmRvd0Jhc2UuY3BwCiBiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0N1c3RvbS5j
cHAKK2JpbmRpbmdzL2pzL0pTUmVzaXplT2JzZXJ2ZXJDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9K
U1Jlc2l6ZU9ic2VydmVyRW50cnlDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1NWR1BhdGhTZWdD
dXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1NWR1ZpZXdTcGVjQ3VzdG9tLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ5MWU3
NTdlM2Q4NjFiOTZhNDA2MWJmNTYwODg5ZTJmZjk0YTViYWYuLjIzNGNhN2M2NmYwYmQzZWUzMWY5
NTc1ZGE0NWE2Y2Q3NzM1YTQwYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkxOTgsNiArOTE5OCw3IEBACiAJCTU4MjRBQkE1
MUFFODEzODQwMDkwNzRCNyAvKiBSdWJ5VGV4dEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUnVieVRleHRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU4MkRFMzIyMUMzMEM4NTQwMEJFMDJBOCAvKiBUZXh0RGVjb3JhdGlvblBhaW50ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dERlY29yYXRpb25Q
YWludGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTgyREUzMjMxQzMwQzg1
NDAwQkUwMkE4IC8qIFRleHREZWNvcmF0aW9uUGFpbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUZXh0RGVjb3JhdGlvblBhaW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTg2OEM3QzQyNTM5REEzMzAwQkY5REYzIC8qIEpTUmVzaXplT2JzZXJ2ZXJD
dXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXNpemVP
YnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4ODRGRTU2
MjI4MTNFMkQwMDQwQUZGNiAvKiBKU1Jlc2l6ZU9ic2VydmVyRW50cnlDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXNpemVPYnNlcnZlckVudHJ5Q3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTg5NTU2RUMxOEQ0QTQ0MDAw
NzY0QjAzIC8qIEJvcmRlckVkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Qm9yZGVyRWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OEFFRTJGMzE4RDRC
Q0NGMDAyMkU3RkUgLyogQm9yZGVyRWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBCb3JkZXJFZGdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIyMjcyLDYgKzIyMjczLDcgQEAKIAkJCQlDQjM4RkQ1NTFDRDIxRDVCMDA1OTJBM0YgLyogSlNQ
ZXJmb3JtYW5jZUVudHJ5Q3VzdG9tLmNwcCAqLywKIAkJCQk4MzNDRjcwRjIwREIzRjVGMDAxNDFC
Q0MgLyogSlNQZXJmb3JtYW5jZU9ic2VydmVyQ3VzdG9tLmNwcCAqLywKIAkJCQlBNEE2OUI4QkI5
MUI0OUQwQTgwNEMzMUQgLyogSlNQcm9taXNlUmVqZWN0aW9uRXZlbnRDdXN0b20uY3BwICovLAor
CQkJCTU4NjhDN0M0MjUzOURBMzMwMEJGOURGMyAvKiBKU1Jlc2l6ZU9ic2VydmVyQ3VzdG9tLmNw
cCAqLywKIAkJCQk1ODg0RkU1NjIyODEzRTJEMDA0MEFGRjYgLyogSlNSZXNpemVPYnNlcnZlckVu
dHJ5Q3VzdG9tLmNwcCAqLywKIAkJCQk4M0Y1NzI5NDFGQTEwNjZGMDAzODM3QkUgLyogSlNTZXJ2
aWNlV29ya2VyQ2xpZW50Q3VzdG9tLmNwcCAqLywKIAkJCQk0NjBEMTk0NDFGQ0UyMUREMDBDM0RC
ODUgLyogSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZXNpemVPYnNlcnZlckN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Jlc2l6ZU9ic2VydmVyQ3VzdG9tLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MzM0NTFiNzIzODdmZTcyYjdiNjMyOWUzNmEzZjRmYjM0ODIwZDBjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZXNpemVPYnNlcnZl
ckN1c3RvbS5jcHAKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNS
ZXNpemVPYnNlcnZlci5oIgorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNSZXNpemVPYnNlcnZlcjo6dmlzaXRB
ZGRpdGlvbmFsQ2hpbGRyZW4oSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBpZiAo
d3JhcHBlZCgpLmNhbGxiYWNrKCkpCisgICAgICAgIHdyYXBwZWQoKS5jYWxsYmFjaygpLT52aXNp
dEpTRnVuY3Rpb24odmlzaXRvcik7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZGQ4
ODNiMmEwN2M1NjIzNmVjY2ZkNTA0NWFhZTYwNmIzOTZlODc0Zi4uMjYzYWFlNDU0ODkyNTM0YjU3
OGY0NmJjOWMxMzNlNWQ5Y2QyMTRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE0MTIsNiAr
MTQxMiw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoUkVTSVpFX09CU0VSVkVSKQogICAgIHZvaWQg
YWRkUmVzaXplT2JzZXJ2ZXIoUmVzaXplT2JzZXJ2ZXImKTsKICAgICB2b2lkIHJlbW92ZVJlc2l6
ZU9ic2VydmVyKFJlc2l6ZU9ic2VydmVyJik7CisgICAgdW5zaWduZWQgbnVtYmVyT2ZSZXNpemVP
YnNlcnZlcnMoKSBjb25zdCB7IHJldHVybiBtX3Jlc2l6ZU9ic2VydmVycy5zaXplKCk7IH0KICAg
ICBib29sIGhhc1Jlc2l6ZU9ic2VydmVycygpOwogICAgIC8vIFJldHVybiB0aGUgbWluRGVwdGgg
b2YgdGhlIGFjdGl2ZSBvYnNlcnZhdGlvbnMuCiAgICAgc2l6ZV90IGdhdGhlclJlc2l6ZU9ic2Vy
dmF0aW9ucyhzaXplX3QgZGVlcGVyVGhhbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Jlc2l6ZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmVy
LmgKaW5kZXggNjA5ZTcwYzAxNDZjNTUwZGI1MWY4ZTNlYWJkN2U0YTc3NWVhNGQwZS4uMWVkNGQz
NmI1NTUzMDRmZjFmODYxMGM2OWQwZGE0ZTBmMTRjZmQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9SZXNpemVPYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVz
aXplT2JzZXJ2ZXIuaApAQCAtNjQsNiArNjQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNTa2lw
cGVkT2JzZXJ2YXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9oYXNTa2lwcGVkT2JzZXJ2YXRpb25z
OyB9CiAgICAgdm9pZCBzZXRIYXNTa2lwcGVkT2JzZXJ2YXRpb25zKGJvb2wgc2tpcHBlZCkgeyBt
X2hhc1NraXBwZWRPYnNlcnZhdGlvbnMgPSBza2lwcGVkOyB9CiAKKyAgICBSZXNpemVPYnNlcnZl
ckNhbGxiYWNrKiBjYWxsYmFjaygpIHsgcmV0dXJuIG1fY2FsbGJhY2suZ2V0KCk7IH0KKwogcHJp
dmF0ZToKICAgICBSZXNpemVPYnNlcnZlcihEb2N1bWVudCYsIFJlZjxSZXNpemVPYnNlcnZlckNh
bGxiYWNrPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNl
cnZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmVyLmlkbAppbmRleCAz
Yzg3YTIxNzE0MTVkM2UwMmNhMzFlYWExNjAwNDM0NWMwNzQwYzk1Li4wNWU4NDdkOTAwODMxNjY2
NzVhNWE3N2U5NWU1YzhlZTlmODJmNmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1Jlc2l6ZU9ic2VydmVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2Vy
dmVyLmlkbApAQCAtMjksNyArMjksOCBAQAogICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25k
aXRpb25hbD1SRVNJWkVfT0JTRVJWRVIsCiAgICAgRW5hYmxlZEJ5U2V0dGluZz1SZXNpemVPYnNl
cnZlciwKLSAgICBFeHBvc2VkPVdpbmRvdworICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEpTQ3Vz
dG9tTWFya0Z1bmN0aW9uLAogXSBpbnRlcmZhY2UgUmVzaXplT2JzZXJ2ZXIgewogICAgIFtDYWxs
V2l0aD1Eb2N1bWVudF0gY29uc3RydWN0b3IoUmVzaXplT2JzZXJ2ZXJDYWxsYmFjayBjYWxsYmFj
ayk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXJDYWxs
YmFjay5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNrLmgKaW5k
ZXggYjM5YjhiMTkxZDc5MDE0MGRmZmM0Y2FmOGY0NzJlNjRlNWE5ZjgzMi4uODNjMTI4NDE0YzVk
YmY5ZjAyNzBkZGJiMWY3ODY4ZmJmMzdlNDA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9S
ZXNpemVPYnNlcnZlckNhbGxiYWNrLmgKQEAgLTM5LDYgKzM5LDkgQEAgY2xhc3MgUmVzaXplT2Jz
ZXJ2ZXJFbnRyeTsKIGNsYXNzIFJlc2l6ZU9ic2VydmVyQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291
bnRlZDxSZXNpemVPYnNlcnZlckNhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsK
IHB1YmxpYzoKICAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2FsbGJhY2s7
CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQ2FsbGJhY2soKSBjb25zdCA9IDA7CisKICAgICB2aXJ0
dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KFJlc2l6ZU9ic2VydmVyJiwgY29u
c3QgVmVjdG9yPFJlZjxSZXNpemVPYnNlcnZlckVudHJ5Pj4mLCBSZXNpemVPYnNlcnZlciYpID0g
MDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXJD
YWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2su
aWRsCmluZGV4IDhjNzk0MGFmOGIxMTUxZjIzNWNmZDdhYmJkOWIwMzQ0NzQyNzUyZGIuLjI4YWE5
ZjM5N2RkZGU4YjJmODc0OWIxYzVkOTMzZjc4NjFmMjUwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXJDYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNrLmlkbApAQCAtMjgsNCArMjgsNSBAQAogWwog
ICAgIENvbmRpdGlvbmFsPVJFU0laRV9PQlNFUlZFUiwKICAgICBDYWxsYmFja1RoaXNPYmplY3Q9
UmVzaXplT2JzZXJ2ZXIsCisgICAgSXNXZWFrQ2FsbGJhY2ssCiBdIGNhbGxiYWNrIFJlc2l6ZU9i
c2VydmVyQ2FsbGJhY2sgPSB1bmRlZmluZWQgKHNlcXVlbmNlPFJlc2l6ZU9ic2VydmVyRW50cnk+
IGVudHJpZXMsIFJlc2l6ZU9ic2VydmVyIG9ic2VydmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAppbmRleCBhMDkzMDVmMjg0Y2VjYTY1ZDY4NDYxODllOTdkZGFiNzc1NTEwNmQ2
Li5lYWJjNWIzMDM2NWJjNTI3NWUxNTE1MTRkMDJiZTlkOTI3YmFlYmVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yNjIyLDYgKzI2MjIsMTMgQEAgdW5zaWduZWQgSW50
ZXJuYWxzOjpudW1iZXJPZkludGVyc2VjdGlvbk9ic2VydmVycyhjb25zdCBEb2N1bWVudCYgZG9j
dW1lbnQpIGNvbnMKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFJFU0laRV9PQlNFUlZFUikKK3Vu
c2lnbmVkIEludGVybmFsczo6bnVtYmVyT2ZSZXNpemVPYnNlcnZlcnMoY29uc3QgRG9jdW1lbnQm
IGRvY3VtZW50KSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVudC5udW1iZXJPZlJlc2l6ZU9i
c2VydmVycygpOworfQorI2VuZGlmCisKIHVpbnQ2NF90IEludGVybmFsczo6ZG9jdW1lbnRJZGVu
dGlmaWVyKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gZG9j
dW1lbnQuaWRlbnRpZmllcigpLnRvVUludDY0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAppbmRleCBhMTZmOTUyZjE1NTAwMWJkNjM1MmFlNTA5N2FkNjg2NmY0ODdhMjQ1Li40MmVlODBl
MDg5MzMwZTBhZTUzNTRkOWRmOTQ2NTgxYjNjYjU2ZjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTQ0Myw2ICs0NDMsMTAgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG51bWJl
ck9mSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzKGNvbnN0IERvY3VtZW50JikgY29uc3Q7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShSRVNJWkVfT0JTRVJWRVIpCisgICAgdW5zaWduZWQgbnVtYmVyT2ZSZXNp
emVPYnNlcnZlcnMoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKKyNlbmRpZgorCiAgICAgdWludDY0
X3QgZG9jdW1lbnRJZGVudGlmaWVyKGNvbnN0IERvY3VtZW50JikgY29uc3Q7CiAgICAgYm9vbCBp
c0RvY3VtZW50QWxpdmUodWludDY0X3QgZG9jdW1lbnRJZGVudGlmaWVyKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGEzZjQ1NmUwODlmN2JmYTFmZjFhNzNh
ZTM1ZDQ3YTRjYjljMTk0MTEuLmZiNTFkZmU5MDYxZTEyYjI3ZmMzNGMwOWFlZTgzNDM3NzBmOWFi
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTUxNCw2ICs1MTQsNyBA
QCBlbnVtIENvbnRlbnRTaXplQ2F0ZWdvcnkgewogICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZM
aXZlRG9jdW1lbnRzKCk7CiAgICAgdW5zaWduZWQgbG9uZyByZWZlcmVuY2luZ05vZGVDb3VudChE
b2N1bWVudCBkb2N1bWVudCk7CiAgICAgW0NvbmRpdGlvbmFsPUlOVEVSU0VDVElPTl9PQlNFUlZF
Ul0gdW5zaWduZWQgbG9uZyBudW1iZXJPZkludGVyc2VjdGlvbk9ic2VydmVycyhEb2N1bWVudCBk
b2N1bWVudCk7CisgICAgW0NvbmRpdGlvbmFsID0gUkVTSVpFX09CU0VSVkVSXSB1bnNpZ25lZCBs
b25nIG51bWJlck9mUmVzaXplT2JzZXJ2ZXJzKERvY3VtZW50IGRvY3VtZW50KTsKICAgICBXaW5k
b3dQcm94eT8gb3BlbkR1bW15SW5zcGVjdG9yRnJvbnRlbmQoRE9NU3RyaW5nIHVybCk7CiAgICAg
dW5kZWZpbmVkIGNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpOwogICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gdW5kZWZpbmVkIHNldEluc3BlY3RvcklzVW5kZXJUZXN0KGJvb2xlYW4gaXNVbmRl
clRlc3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDhiMTVmZTA0MDBjYjMxMDU5MGJiZDY2ZjZjZjBkNzc4NTJlZjI4NTIu
LmNlNWVmZjM3MWI1ZWYzMzA0YjRlMjY3ZjM4ZDY5ZmFhYmExODgzMTMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAyMC0xMC0yMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+
CisKKyAgICAgICAgUmVzaXplT2JzZXJ2ZXIgaXMgbm90IHByb3Blcmx5IGdhcmJhZ2UgY29sbGVj
dGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUx
NTgKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgKiBy
ZXNpemUtb2JzZXJ2ZXIvcmVzaXplLW9ic2VydmVyLWNhbGxiYWNrLWxlYWstZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiByZXNpemUtb2JzZXJ2ZXIvcmVzaXplLW9ic2VydmVyLWNhbGxi
YWNrLWxlYWsuaHRtbDogQWRkZWQuCisKIDIwMjAtMTAtMTQgIEFuZHJlcyBHb256YWxleiAgPGFu
ZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIFsgbWFjT1MgXSBhY2Nlc3NpYmlsaXR5L21h
Yy9zZWxlY3QtZWxlbWVudC1zZWxlY3Rpb24td2l0aC1vcHRncm91cHMuaHRtbCBpcyBhIGZsYWt5
IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc2l6ZS1vYnNlcnZlci9yZXNpemUt
b2JzZXJ2ZXItY2FsbGJhY2stbGVhay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9yZXNpemUt
b2JzZXJ2ZXIvcmVzaXplLW9ic2VydmVyLWNhbGxiYWNrLWxlYWstZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVhOTk0OWI1N2E3NDkzMDY5Yzc3ZDhhZmRjYzcwMzg4YWU0MDlkZGMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9yZXNpemUtb2JzZXJ2ZXIvcmVzaXplLW9ic2VydmVyLWNh
bGxiYWNrLWxlYWstZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIFJlc2l6ZU9i
c2VydmVyIGltcGxlbWVudGVkCitQQVNTIHRlc3Q6IFJlc2l6ZSBvYnNlcnZlciBpbnNpZGUgY2Fs
bGJhY2sgc2hvdWxkIGJlIGdhcmJhZ2UgY29sbGVjdGVkIGlmIG5vIG9uZSByZWZlcnMgdG8gaXQK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzaXplLW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZl
ci1jYWxsYmFjay1sZWFrLmh0bWwgYi9MYXlvdXRUZXN0cy9yZXNpemUtb2JzZXJ2ZXIvcmVzaXpl
LW9ic2VydmVyLWNhbGxiYWNrLWxlYWsuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMWQwMjgwMzg5NDUzOTg5
OGIxZjI5NmRmODIzOTU1NTJlNmU3ZGY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cmVzaXplLW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZlci1jYWxsYmFjay1sZWFrLmh0bWwKQEAgLTAs
MCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBl
cmltZW50YWw6UmVzaXplT2JzZXJ2ZXJFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9nYy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gYWNjZXNz
VG9PYnNlcnZlckluQ2FsbGJhY2soKSB7CisgICAgbGV0IHRlc3QgPSBhc3luY190ZXN0KCJ0ZXN0
OiBSZXNpemUgb2JzZXJ2ZXIgaW5zaWRlIGNhbGxiYWNrIHNob3VsZCBiZSBnYXJiYWdlIGNvbGxl
Y3RlZCBpZiBubyBvbmUgcmVmZXJzIHRvIGl0Iik7CisgICAgY29uc3QgaXRlcmF0aW9uQ291bnQg
PSA1MDsKKyAgICBsZXQgY2FsbGJhY2tDb3VudCA9IDA7CisgICAgZm9yIChsZXQgaiA9IDA7IGog
PCBpdGVyYXRpb25Db3VudDsgKytqKSB7CisgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGl2KTsK
KyAgICAgICAgbGV0IG9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHsKKyAgICAg
ICAgICAgIGNhbGxiYWNrQ291bnQrKzsKKyAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3Qo
KTsKKyAgICAgICAgICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChkaXYpOworICAgICAgICAgICAg
aWYgKGNhbGxiYWNrQ291bnQgPT0gaXRlcmF0aW9uQ291bnQpIHsKKyAgICAgICAgICAgICAgICBz
dGVwX3RpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgICAgICBnYygpOworICAgICAgICAg
ICAgICAgICAgICB0ZXN0LnN0ZXAoKCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IG9ic2VydmVyQ291bnQgPSBpbnRlcm5hbHMubnVtYmVyT2ZSZXNpemVPYnNlcnZlcnMoZG9jdW1l
bnQpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUob2JzZXJ2ZXJDb3VudCA8
IGl0ZXJhdGlvbkNvdW50LCAnUmVzaXplIG9ic2VydmVycyBzaG91bGQgYmUgY29sbGVjdGVkLicp
OworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIH0sIDEwMDApOworICAgICAgICAgICAgfQorICAgICAg
ICB9KTsKKyAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShkaXYpOworICAgIH0KKworfQorCit0ZXN0
KF8gPT4geworICAgIGFzc2VydF9vd25fcHJvcGVydHkod2luZG93LCAiUmVzaXplT2JzZXJ2ZXIi
KTsKK30sICJSZXNpemVPYnNlcnZlciBpbXBsZW1lbnRlZCIpOworCit3aW5kb3cub25sb2FkID0g
YWNjZXNzVG9PYnNlcnZlckluQ2FsbGJhY2soKTsKKzwvc2NyaXB0PgorCis8L2JvZHk+CisKKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412066</attachid>
            <date>2020-10-21 22:46:37 -0700</date>
            <delta_ts>2020-10-22 01:38:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215158-20201022134634.patch</filename>
            <type>text/plain</type>
            <size>15185</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQzZGZkYmMxODg5Mjlk
NGI1OTliNjY5MzRkYzdkZDQ0YTk4MzFhMS4uOWQ2ZjJkMDI0N2VkYTVjOTQzOGI1MGEwM2Q0Njg3
ODMzMjQ0ZDJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTEwLTIwICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBSZXNpemVPYnNlcnZl
ciBpcyBub3QgcHJvcGVybHkgZ2FyYmFnZSBjb2xsZWN0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTE1OAorCisgICAgICAgIFJldmlld2VkIGJ5
IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBJZiBSZXNpemVPYnNlcnZlcnMgYXJlIHJlZmVy
ZW5jZWQgaW5zaWRlIFJlc2l6ZU9ic2VydmVyQ2FsbGJhY2tzLCB0aGV5IGFyZSBub3QgZ2FyYmFn
ZSBjb2xsZWN0ZWQgcHJvcGVybHkuIFRvIGZpeCB0aGlzLAorICAgICAgICBhZGQgSXNXZWFrQ2Fs
bGJhY2sgdG8gUmVzaXplT2JzZXJ2ZXJDYWxsYmFjayBpbnRlcmZhY2Ugc28gdGhhdCBpdCB1c2Vz
IEpTQzo6V2VhayB0byBzdG9yZSB0aGUgY2FsbGJhY2suIEFuZCBhZGQgdGhlIGNhbGxiYWNrCisg
ICAgICAgIHRvIHZpc2l0b3IgaW4gSlNSZXNpemVPYnNlcnZlcjo6dmlzaXRBZGRpdGlvbmFsQ2hp
bGRyZW4oKSB0byBrZWVwIGl0IGFsaXZlLiBJbiBvcmRlciB0byB0ZXN0IFJlc2l6ZU9ic2VydmVy
IGxlYWssIGFkZCB0ZXN0IGludGVyZmFjZQorICAgICAgICBudW1iZXJPZlJlc2l6ZU9ic2VydmVy
cygpIHRvIEludGVybmFscy5pZGwuCisKKyAgICAgICAgVGVzdDogcmVzaXplLW9ic2VydmVyL3Jl
c2l6ZS1vYnNlcnZlci1jYWxsYmFjay1sZWFrLmh0bWwKKworICAgICAgICAqIFNvdXJjZXMudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1Jlc2l6ZU9ic2VydmVyQ3VzdG9tLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNrLmlkbC4KKyAgICAgICAgKFdl
YkNvcmU6OkpTUmVzaXplT2JzZXJ2ZXI6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKTogQWRkIGNh
bGxiYWNrIHRvIFNsb3RWaXNpdG9yLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om51bWJlck9mUmVzaXplT2JzZXJ2ZXJzIGNvbnN0KToKKyAg
ICAgICAgKiBwYWdlL1Jlc2l6ZU9ic2VydmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNpemVP
YnNlcnZlcjo6Y2FsbGJhY2spOgorICAgICAgICAqIHBhZ2UvUmVzaXplT2JzZXJ2ZXIuaWRsOiBB
ZGQgSlNDdXN0b21NYXJrRnVuY3Rpb24gdG8gdGhlIGludGVyZmFjZS4KKyAgICAgICAgKiBwYWdl
L1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaDoKKyAgICAgICAgKiBwYWdlL1Jlc2l6ZU9ic2VydmVy
Q2FsbGJhY2suaWRsOiBBZGQgSXNXZWFrQ2FsbGJhY2sgdG8gdGhlIGludGVyZmFjZS4KKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6IEFkZCBudW1iZXJPZlJlc2l6ZU9ic2VydmVycy4K
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bnVtYmVyT2ZSZXNpemVPYnNlcnZlcnMgY29u
c3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaWRsOgorCiAyMDIwLTEwLTE0ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0xGQ10gVXNlIHRoZSB0ZXJtIG92ZXJyaWRkZW4gaW5zdGVhZCBvZiBv
dmVycmlkZSB0byBpbmRpY2F0ZSBwcmlvcml0eSB2YWx1ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOTY1
YWRjMTMwZjFkZjQzNjViMDgyOTlkMjY2ZDY4ZjlmY2Y4MWIxZC4uZWEzOWQxNzFlYjU5NDZmNWYy
NGFjMzNkOTg2YTUwM2I1NzgxMDk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTU1OSw2ICs1NTksNyBA
QCBiaW5kaW5ncy9qcy9KU1Byb21pc2VSZWplY3Rpb25FdmVudEN1c3RvbS5jcHAKIGJpbmRpbmdz
L2pzL0pTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1JlbW90
ZURPTVdpbmRvd0Jhc2UuY3BwCiBiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0N1c3RvbS5j
cHAKK2JpbmRpbmdzL2pzL0pTUmVzaXplT2JzZXJ2ZXJDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9K
U1Jlc2l6ZU9ic2VydmVyRW50cnlDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1NWR1BhdGhTZWdD
dXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1NWR1ZpZXdTcGVjQ3VzdG9tLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ5MWU3
NTdlM2Q4NjFiOTZhNDA2MWJmNTYwODg5ZTJmZjk0YTViYWYuLjIzNGNhN2M2NmYwYmQzZWUzMWY5
NTc1ZGE0NWE2Y2Q3NzM1YTQwYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkxOTgsNiArOTE5OCw3IEBACiAJCTU4MjRBQkE1
MUFFODEzODQwMDkwNzRCNyAvKiBSdWJ5VGV4dEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUnVieVRleHRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU4MkRFMzIyMUMzMEM4NTQwMEJFMDJBOCAvKiBUZXh0RGVjb3JhdGlvblBhaW50ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dERlY29yYXRpb25Q
YWludGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTgyREUzMjMxQzMwQzg1
NDAwQkUwMkE4IC8qIFRleHREZWNvcmF0aW9uUGFpbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUZXh0RGVjb3JhdGlvblBhaW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTg2OEM3QzQyNTM5REEzMzAwQkY5REYzIC8qIEpTUmVzaXplT2JzZXJ2ZXJD
dXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXNpemVP
YnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4ODRGRTU2
MjI4MTNFMkQwMDQwQUZGNiAvKiBKU1Jlc2l6ZU9ic2VydmVyRW50cnlDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXNpemVPYnNlcnZlckVudHJ5Q3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTg5NTU2RUMxOEQ0QTQ0MDAw
NzY0QjAzIC8qIEJvcmRlckVkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Qm9yZGVyRWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OEFFRTJGMzE4RDRC
Q0NGMDAyMkU3RkUgLyogQm9yZGVyRWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBCb3JkZXJFZGdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIyMjcyLDYgKzIyMjczLDcgQEAKIAkJCQlDQjM4RkQ1NTFDRDIxRDVCMDA1OTJBM0YgLyogSlNQ
ZXJmb3JtYW5jZUVudHJ5Q3VzdG9tLmNwcCAqLywKIAkJCQk4MzNDRjcwRjIwREIzRjVGMDAxNDFC
Q0MgLyogSlNQZXJmb3JtYW5jZU9ic2VydmVyQ3VzdG9tLmNwcCAqLywKIAkJCQlBNEE2OUI4QkI5
MUI0OUQwQTgwNEMzMUQgLyogSlNQcm9taXNlUmVqZWN0aW9uRXZlbnRDdXN0b20uY3BwICovLAor
CQkJCTU4NjhDN0M0MjUzOURBMzMwMEJGOURGMyAvKiBKU1Jlc2l6ZU9ic2VydmVyQ3VzdG9tLmNw
cCAqLywKIAkJCQk1ODg0RkU1NjIyODEzRTJEMDA0MEFGRjYgLyogSlNSZXNpemVPYnNlcnZlckVu
dHJ5Q3VzdG9tLmNwcCAqLywKIAkJCQk4M0Y1NzI5NDFGQTEwNjZGMDAzODM3QkUgLyogSlNTZXJ2
aWNlV29ya2VyQ2xpZW50Q3VzdG9tLmNwcCAqLywKIAkJCQk0NjBEMTk0NDFGQ0UyMUREMDBDM0RC
ODUgLyogSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZXNpemVPYnNlcnZlckN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Jlc2l6ZU9ic2VydmVyQ3VzdG9tLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42YzY0ODYyZTE2NDkyMjUxNjE3ZTNkNWZiYjAzNWQ3OTIwNGJlMjA5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZXNpemVPYnNlcnZl
ckN1c3RvbS5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNS
ZXNpemVPYnNlcnZlci5oIgorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNSZXNpemVPYnNlcnZlcjo6dmlzaXRB
ZGRpdGlvbmFsQ2hpbGRyZW4oSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBSZXNp
emVPYnNlcnZlckNhbGxiYWNrKiBjYWxsYmFjayA9IHdyYXBwZWQoKS5jYWxsYmFja0NvbmN1cnJl
bnRseSgpOworICAgIGlmIChjYWxsYmFjaykKKyAgICAgICAgY2FsbGJhY2stPnZpc2l0SlNGdW5j
dGlvbih2aXNpdG9yKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkZDg4M2IyYTA3
YzU2MjM2ZWNjZmQ1MDQ1YWFlNjA2YjM5NmU4NzRmLi4yNjNhYWU0NTQ4OTI1MzRiNTc4ZjQ2YmM5
YzEzM2U1ZDljZDIxNGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTQxMiw2ICsxNDEyLDcg
QEAgcHVibGljOgogI2lmIEVOQUJMRShSRVNJWkVfT0JTRVJWRVIpCiAgICAgdm9pZCBhZGRSZXNp
emVPYnNlcnZlcihSZXNpemVPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlUmVzaXplT2JzZXJ2
ZXIoUmVzaXplT2JzZXJ2ZXImKTsKKyAgICB1bnNpZ25lZCBudW1iZXJPZlJlc2l6ZU9ic2VydmVy
cygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzaXplT2JzZXJ2ZXJzLnNpemUoKTsgfQogICAgIGJvb2wg
aGFzUmVzaXplT2JzZXJ2ZXJzKCk7CiAgICAgLy8gUmV0dXJuIHRoZSBtaW5EZXB0aCBvZiB0aGUg
YWN0aXZlIG9ic2VydmF0aW9ucy4KICAgICBzaXplX3QgZ2F0aGVyUmVzaXplT2JzZXJ2YXRpb25z
KHNpemVfdCBkZWVwZXJUaGFuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVz
aXplT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXIuaAppbmRl
eCA2MDllNzBjMDE0NmM1NTBkYjUxZjhlM2VhYmQ3ZTRhNzc1ZWE0ZDBlLi5lNDE1NmYzMWUzMGUy
NjUxNDk1NDAxOTI0NGU3N2I5MzgwYjAzMTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Jlc2l6ZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNl
cnZlci5oCkBAIC02NCw2ICs2NCw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1NraXBwZWRPYnNl
cnZhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX2hhc1NraXBwZWRPYnNlcnZhdGlvbnM7IH0KICAg
ICB2b2lkIHNldEhhc1NraXBwZWRPYnNlcnZhdGlvbnMoYm9vbCBza2lwcGVkKSB7IG1faGFzU2tp
cHBlZE9ic2VydmF0aW9ucyA9IHNraXBwZWQ7IH0KIAorICAgIFJlc2l6ZU9ic2VydmVyQ2FsbGJh
Y2sqIGNhbGxiYWNrQ29uY3VycmVudGx5KCkgeyByZXR1cm4gbV9jYWxsYmFjay5nZXQoKTsgfQor
CiBwcml2YXRlOgogICAgIFJlc2l6ZU9ic2VydmVyKERvY3VtZW50JiwgUmVmPFJlc2l6ZU9ic2Vy
dmVyQ2FsbGJhY2s+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6
ZU9ic2VydmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXIuaWRsCmlu
ZGV4IDNjODdhMjE3MTQxNWQzZTAyY2EzMWVhYTE2MDA0MzQ1YzA3NDBjOTUuLjA1ZTg0N2Q5MDA4
MzE2NjY3NWE1YTc3ZTk1ZTVjOGVlOWY4MmY2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUmVzaXplT2JzZXJ2ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXpl
T2JzZXJ2ZXIuaWRsCkBAIC0yOSw3ICsyOSw4IEBACiAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAg
IENvbmRpdGlvbmFsPVJFU0laRV9PQlNFUlZFUiwKICAgICBFbmFibGVkQnlTZXR0aW5nPVJlc2l6
ZU9ic2VydmVyLAotICAgIEV4cG9zZWQ9V2luZG93CisgICAgRXhwb3NlZD1XaW5kb3csCisgICAg
SlNDdXN0b21NYXJrRnVuY3Rpb24sCiBdIGludGVyZmFjZSBSZXNpemVPYnNlcnZlciB7CiAgICAg
W0NhbGxXaXRoPURvY3VtZW50XSBjb25zdHJ1Y3RvcihSZXNpemVPYnNlcnZlckNhbGxiYWNrIGNh
bGxiYWNrKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZl
ckNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2su
aAppbmRleCBiMzliOGIxOTFkNzkwMTQwZGZmYzRjYWY4ZjQ3MmU2NGU1YTlmODMyLi44M2MxMjg0
MTRjNWRiZjlmMDI3MGRkYmIxZjc4NjhmYmYzN2U0MDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaApAQCAtMzksNiArMzksOSBAQCBjbGFzcyBSZXNp
emVPYnNlcnZlckVudHJ5OwogY2xhc3MgUmVzaXplT2JzZXJ2ZXJDYWxsYmFjayA6IHB1YmxpYyBS
ZWZDb3VudGVkPFJlc2l6ZU9ic2VydmVyQ2FsbGJhY2s+LCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJh
Y2sgewogcHVibGljOgogICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3RpdmVET01DYWxs
YmFjazsKKworICAgIHZpcnR1YWwgYm9vbCBoYXNDYWxsYmFjaygpIGNvbnN0ID0gMDsKKwogICAg
IHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoUmVzaXplT2JzZXJ2ZXIm
LCBjb25zdCBWZWN0b3I8UmVmPFJlc2l6ZU9ic2VydmVyRW50cnk+PiYsIFJlc2l6ZU9ic2VydmVy
JikgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNl
cnZlckNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXJDYWxs
YmFjay5pZGwKaW5kZXggOGM3OTQwYWY4YjExNTFmMjM1Y2ZkN2FiYmQ5YjAzNDQ3NDI3NTJkYi4u
MjhhYTlmMzk3ZGRkZThiMmY4NzQ5YjFjNWQ5MzNmNzg2MWYyNTA2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaWRsCkBAIC0yOCw0ICsyOCw1IEBA
CiBbCiAgICAgQ29uZGl0aW9uYWw9UkVTSVpFX09CU0VSVkVSLAogICAgIENhbGxiYWNrVGhpc09i
amVjdD1SZXNpemVPYnNlcnZlciwKKyAgICBJc1dlYWtDYWxsYmFjaywKIF0gY2FsbGJhY2sgUmVz
aXplT2JzZXJ2ZXJDYWxsYmFjayA9IHVuZGVmaW5lZCAoc2VxdWVuY2U8UmVzaXplT2JzZXJ2ZXJF
bnRyeT4gZW50cmllcywgUmVzaXplT2JzZXJ2ZXIgb2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCmluZGV4IGEwOTMwNWYyODRjZWNhNjVkNjg0NjE4OWU5N2RkYWI3NzU1
MTA2ZDYuLmVhYmM1YjMwMzY1YmM1Mjc1ZTE1MTUxNGQwMmJlOWQ5MjdiYWViZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI2MjIsNiArMjYyMiwxMyBAQCB1bnNpZ25l
ZCBJbnRlcm5hbHM6Om51bWJlck9mSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzKGNvbnN0IERvY3VtZW50
JiBkb2N1bWVudCkgY29ucwogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUkVTSVpFX09CU0VSVkVS
KQordW5zaWduZWQgSW50ZXJuYWxzOjpudW1iZXJPZlJlc2l6ZU9ic2VydmVycyhjb25zdCBEb2N1
bWVudCYgZG9jdW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50Lm51bWJlck9mUmVz
aXplT2JzZXJ2ZXJzKCk7Cit9CisjZW5kaWYKKwogdWludDY0X3QgSW50ZXJuYWxzOjpkb2N1bWVu
dElkZW50aWZpZXIoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogewogICAgIHJldHVy
biBkb2N1bWVudC5pZGVudGlmaWVyKCkudG9VSW50NjQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCmluZGV4IGExNmY5NTJmMTU1MDAxYmQ2MzUyYWU1MDk3YWQ2ODY2ZjQ4N2EyNDUuLjQy
ZWU4MGUwODkzMzBlMGFlNTM1NGQ5ZGY5NDY1ODFiM2NiNTZmMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaApAQCAtNDQzLDYgKzQ0MywxMCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQg
bnVtYmVyT2ZJbnRlcnNlY3Rpb25PYnNlcnZlcnMoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKICNl
bmRpZgogCisjaWYgRU5BQkxFKFJFU0laRV9PQlNFUlZFUikKKyAgICB1bnNpZ25lZCBudW1iZXJP
ZlJlc2l6ZU9ic2VydmVycyhjb25zdCBEb2N1bWVudCYpIGNvbnN0OworI2VuZGlmCisKICAgICB1
aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKICAgICBi
b29sIGlzRG9jdW1lbnRBbGl2ZSh1aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggYTNmNDU2ZTA4OWY3YmZhMWZm
MWE3M2FlMzVkNDdhNGNiOWMxOTQxMS4uZmI1MWRmZTkwNjFlMTJiMjdmYzM0YzA5YWVlODM0Mzc3
MGY5YWJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNTE0LDYgKzUx
NCw3IEBAIGVudW0gQ29udGVudFNpemVDYXRlZ29yeSB7CiAgICAgdW5zaWduZWQgbG9uZyBudW1i
ZXJPZkxpdmVEb2N1bWVudHMoKTsKICAgICB1bnNpZ25lZCBsb25nIHJlZmVyZW5jaW5nTm9kZUNv
dW50KERvY3VtZW50IGRvY3VtZW50KTsKICAgICBbQ29uZGl0aW9uYWw9SU5URVJTRUNUSU9OX09C
U0VSVkVSXSB1bnNpZ25lZCBsb25nIG51bWJlck9mSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzKERvY3Vt
ZW50IGRvY3VtZW50KTsKKyAgICBbQ29uZGl0aW9uYWwgPSBSRVNJWkVfT0JTRVJWRVJdIHVuc2ln
bmVkIGxvbmcgbnVtYmVyT2ZSZXNpemVPYnNlcnZlcnMoRG9jdW1lbnQgZG9jdW1lbnQpOwogICAg
IFdpbmRvd1Byb3h5PyBvcGVuRHVtbXlJbnNwZWN0b3JGcm9udGVuZChET01TdHJpbmcgdXJsKTsK
ICAgICB1bmRlZmluZWQgY2xvc2VEdW1teUluc3BlY3RvckZyb250ZW5kKCk7CiAgICAgW01heVRo
cm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0SW5zcGVjdG9ySXNVbmRlclRlc3QoYm9vbGVhbiBp
c1VuZGVyVGVzdCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGIxNWZlMDQwMGNiMzEwNTkwYmJkNjZmNmNmMGQ3Nzg1MmVm
Mjg1Mi4uY2U1ZWZmMzcxYjVlZjMzMDRiNGUyNjdmMzhkNjlmYWFiYTE4ODMxMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDIwLTEwLTIwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlh
LmNvbT4KKworICAgICAgICBSZXNpemVPYnNlcnZlciBpcyBub3QgcHJvcGVybHkgZ2FyYmFnZSBj
b2xsZWN0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNTE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAg
ICAqIHJlc2l6ZS1vYnNlcnZlci9yZXNpemUtb2JzZXJ2ZXItY2FsbGJhY2stbGVhay1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHJlc2l6ZS1vYnNlcnZlci9yZXNpemUtb2JzZXJ2ZXIt
Y2FsbGJhY2stbGVhay5odG1sOiBBZGRlZC4KKwogMjAyMC0xMC0xNCAgQW5kcmVzIEdvbnphbGV6
ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgWyBtYWNPUyBdIGFjY2Vzc2liaWxp
dHkvbWFjL3NlbGVjdC1lbGVtZW50LXNlbGVjdGlvbi13aXRoLW9wdGdyb3Vwcy5odG1sIGlzIGEg
Zmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzaXplLW9ic2VydmVyL3Jl
c2l6ZS1vYnNlcnZlci1jYWxsYmFjay1sZWFrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Jl
c2l6ZS1vYnNlcnZlci9yZXNpemUtb2JzZXJ2ZXItY2FsbGJhY2stbGVhay1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWE5OTQ5YjU3YTc0OTMwNjljNzdkOGFmZGNjNzAzODhhZTQwOWRkYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Jlc2l6ZS1vYnNlcnZlci9yZXNpemUtb2JzZXJ2
ZXItY2FsbGJhY2stbGVhay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgUmVz
aXplT2JzZXJ2ZXIgaW1wbGVtZW50ZWQKK1BBU1MgdGVzdDogUmVzaXplIG9ic2VydmVyIGluc2lk
ZSBjYWxsYmFjayBzaG91bGQgYmUgZ2FyYmFnZSBjb2xsZWN0ZWQgaWYgbm8gb25lIHJlZmVycyB0
byBpdAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNpemUtb2JzZXJ2ZXIvcmVzaXplLW9i
c2VydmVyLWNhbGxiYWNrLWxlYWsuaHRtbCBiL0xheW91dFRlc3RzL3Jlc2l6ZS1vYnNlcnZlci9y
ZXNpemUtb2JzZXJ2ZXItY2FsbGJhY2stbGVhay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiMDhiZDhlNmRh
NDUxMmYyZmVlZTI5N2I4MjdmMzQ4NjQ3ODcwZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9yZXNpemUtb2JzZXJ2ZXIvcmVzaXplLW9ic2VydmVyLWNhbGxiYWNrLWxlYWsuaHRtbApA
QCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGV4cGVyaW1lbnRhbDpSZXNpemVPYnNlcnZlckVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2djLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBh
Y2Nlc3NUb09ic2VydmVySW5DYWxsYmFjaygpIHsKKyAgICBsZXQgdGVzdCA9IGFzeW5jX3Rlc3Qo
InRlc3Q6IFJlc2l6ZSBvYnNlcnZlciBpbnNpZGUgY2FsbGJhY2sgc2hvdWxkIGJlIGdhcmJhZ2Ug
Y29sbGVjdGVkIGlmIG5vIG9uZSByZWZlcnMgdG8gaXQiKTsKKyAgICBsZXQgaW5pdGlhbE9ic2Vy
dmVyQ291bnQgPSBpbnRlcm5hbHMubnVtYmVyT2ZSZXNpemVPYnNlcnZlcnMoZG9jdW1lbnQpOwor
ICAgIGNvbnN0IGl0ZXJhdGlvbkNvdW50ID0gNTA7CisgICAgbGV0IGNhbGxiYWNrQ291bnQgPSAw
OworICAgIGZvciAobGV0IGogPSAwOyBqIDwgaXRlcmF0aW9uQ291bnQ7ICsraikgeworICAgICAg
ICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgY29u
dGFpbmVyLmFwcGVuZENoaWxkKGRpdik7CisgICAgICAgIGxldCBvYnNlcnZlciA9IG5ldyBSZXNp
emVPYnNlcnZlcigoKSA9PiB7CisgICAgICAgICAgICBjYWxsYmFja0NvdW50Kys7CisgICAgICAg
ICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CisgICAgICAgICAgICBjb250YWluZXIucmVtb3Zl
Q2hpbGQoZGl2KTsKKyAgICAgICAgICAgIGlmIChjYWxsYmFja0NvdW50ID09IGl0ZXJhdGlvbkNv
dW50KSB7CisgICAgICAgICAgICAgICAgc3RlcF90aW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZ2MoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdC5zdGVwKCgpID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBvYnNlcnZlckNvdW50ID0gaW50ZXJuYWxzLm51bWJl
ck9mUmVzaXplT2JzZXJ2ZXJzKGRvY3VtZW50KSAtIGluaXRpYWxPYnNlcnZlckNvdW50OworICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUob2JzZXJ2ZXJDb3VudCA8IGl0ZXJhdGlv
bkNvdW50LCAnUmVzaXplIG9ic2VydmVycyBzaG91bGQgYmUgY29sbGVjdGVkLicpOworICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIH0sIDEwMDApOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAg
ICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShkaXYpOworICAgIH0KK30KKwordGVzdChfID0+IHsKKyAg
ICBhc3NlcnRfb3duX3Byb3BlcnR5KHdpbmRvdywgIlJlc2l6ZU9ic2VydmVyIik7Cit9LCAiUmVz
aXplT2JzZXJ2ZXIgaW1wbGVtZW50ZWQiKTsKKword2luZG93Lm9ubG9hZCA9IGFjY2Vzc1RvT2Jz
ZXJ2ZXJJbkNhbGxiYWNrKCk7Cis8L3NjcmlwdD4KKworPC9ib2R5PgorCis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412072</attachid>
            <date>2020-10-22 01:38:45 -0700</date>
            <delta_ts>2020-10-22 05:41:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215158-20201022163843.patch</filename>
            <type>text/plain</type>
            <size>15195</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQzZGZkYmMxODg5Mjlk
NGI1OTliNjY5MzRkYzdkZDQ0YTk4MzFhMS4uOWQ2ZjJkMDI0N2VkYTVjOTQzOGI1MGEwM2Q0Njg3
ODMzMjQ0ZDJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTEwLTIwICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBSZXNpemVPYnNlcnZl
ciBpcyBub3QgcHJvcGVybHkgZ2FyYmFnZSBjb2xsZWN0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTE1OAorCisgICAgICAgIFJldmlld2VkIGJ5
IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBJZiBSZXNpemVPYnNlcnZlcnMgYXJlIHJlZmVy
ZW5jZWQgaW5zaWRlIFJlc2l6ZU9ic2VydmVyQ2FsbGJhY2tzLCB0aGV5IGFyZSBub3QgZ2FyYmFn
ZSBjb2xsZWN0ZWQgcHJvcGVybHkuIFRvIGZpeCB0aGlzLAorICAgICAgICBhZGQgSXNXZWFrQ2Fs
bGJhY2sgdG8gUmVzaXplT2JzZXJ2ZXJDYWxsYmFjayBpbnRlcmZhY2Ugc28gdGhhdCBpdCB1c2Vz
IEpTQzo6V2VhayB0byBzdG9yZSB0aGUgY2FsbGJhY2suIEFuZCBhZGQgdGhlIGNhbGxiYWNrCisg
ICAgICAgIHRvIHZpc2l0b3IgaW4gSlNSZXNpemVPYnNlcnZlcjo6dmlzaXRBZGRpdGlvbmFsQ2hp
bGRyZW4oKSB0byBrZWVwIGl0IGFsaXZlLiBJbiBvcmRlciB0byB0ZXN0IFJlc2l6ZU9ic2VydmVy
IGxlYWssIGFkZCB0ZXN0IGludGVyZmFjZQorICAgICAgICBudW1iZXJPZlJlc2l6ZU9ic2VydmVy
cygpIHRvIEludGVybmFscy5pZGwuCisKKyAgICAgICAgVGVzdDogcmVzaXplLW9ic2VydmVyL3Jl
c2l6ZS1vYnNlcnZlci1jYWxsYmFjay1sZWFrLmh0bWwKKworICAgICAgICAqIFNvdXJjZXMudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1Jlc2l6ZU9ic2VydmVyQ3VzdG9tLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNrLmlkbC4KKyAgICAgICAgKFdl
YkNvcmU6OkpTUmVzaXplT2JzZXJ2ZXI6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKTogQWRkIGNh
bGxiYWNrIHRvIFNsb3RWaXNpdG9yLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om51bWJlck9mUmVzaXplT2JzZXJ2ZXJzIGNvbnN0KToKKyAg
ICAgICAgKiBwYWdlL1Jlc2l6ZU9ic2VydmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNpemVP
YnNlcnZlcjo6Y2FsbGJhY2spOgorICAgICAgICAqIHBhZ2UvUmVzaXplT2JzZXJ2ZXIuaWRsOiBB
ZGQgSlNDdXN0b21NYXJrRnVuY3Rpb24gdG8gdGhlIGludGVyZmFjZS4KKyAgICAgICAgKiBwYWdl
L1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaDoKKyAgICAgICAgKiBwYWdlL1Jlc2l6ZU9ic2VydmVy
Q2FsbGJhY2suaWRsOiBBZGQgSXNXZWFrQ2FsbGJhY2sgdG8gdGhlIGludGVyZmFjZS4KKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6IEFkZCBudW1iZXJPZlJlc2l6ZU9ic2VydmVycy4K
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bnVtYmVyT2ZSZXNpemVPYnNlcnZlcnMgY29u
c3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaWRsOgorCiAyMDIwLTEwLTE0ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0xGQ10gVXNlIHRoZSB0ZXJtIG92ZXJyaWRkZW4gaW5zdGVhZCBvZiBv
dmVycmlkZSB0byBpbmRpY2F0ZSBwcmlvcml0eSB2YWx1ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOTY1
YWRjMTMwZjFkZjQzNjViMDgyOTlkMjY2ZDY4ZjlmY2Y4MWIxZC4uZWEzOWQxNzFlYjU5NDZmNWYy
NGFjMzNkOTg2YTUwM2I1NzgxMDk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTU1OSw2ICs1NTksNyBA
QCBiaW5kaW5ncy9qcy9KU1Byb21pc2VSZWplY3Rpb25FdmVudEN1c3RvbS5jcHAKIGJpbmRpbmdz
L2pzL0pTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1JlbW90
ZURPTVdpbmRvd0Jhc2UuY3BwCiBiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0N1c3RvbS5j
cHAKK2JpbmRpbmdzL2pzL0pTUmVzaXplT2JzZXJ2ZXJDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9K
U1Jlc2l6ZU9ic2VydmVyRW50cnlDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1NWR1BhdGhTZWdD
dXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1NWR1ZpZXdTcGVjQ3VzdG9tLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ5MWU3
NTdlM2Q4NjFiOTZhNDA2MWJmNTYwODg5ZTJmZjk0YTViYWYuLjIzNGNhN2M2NmYwYmQzZWUzMWY5
NTc1ZGE0NWE2Y2Q3NzM1YTQwYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkxOTgsNiArOTE5OCw3IEBACiAJCTU4MjRBQkE1
MUFFODEzODQwMDkwNzRCNyAvKiBSdWJ5VGV4dEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUnVieVRleHRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU4MkRFMzIyMUMzMEM4NTQwMEJFMDJBOCAvKiBUZXh0RGVjb3JhdGlvblBhaW50ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dERlY29yYXRpb25Q
YWludGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTgyREUzMjMxQzMwQzg1
NDAwQkUwMkE4IC8qIFRleHREZWNvcmF0aW9uUGFpbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUZXh0RGVjb3JhdGlvblBhaW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTg2OEM3QzQyNTM5REEzMzAwQkY5REYzIC8qIEpTUmVzaXplT2JzZXJ2ZXJD
dXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXNpemVP
YnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4ODRGRTU2
MjI4MTNFMkQwMDQwQUZGNiAvKiBKU1Jlc2l6ZU9ic2VydmVyRW50cnlDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXNpemVPYnNlcnZlckVudHJ5Q3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTg5NTU2RUMxOEQ0QTQ0MDAw
NzY0QjAzIC8qIEJvcmRlckVkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Qm9yZGVyRWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OEFFRTJGMzE4RDRC
Q0NGMDAyMkU3RkUgLyogQm9yZGVyRWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBCb3JkZXJFZGdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIyMjcyLDYgKzIyMjczLDcgQEAKIAkJCQlDQjM4RkQ1NTFDRDIxRDVCMDA1OTJBM0YgLyogSlNQ
ZXJmb3JtYW5jZUVudHJ5Q3VzdG9tLmNwcCAqLywKIAkJCQk4MzNDRjcwRjIwREIzRjVGMDAxNDFC
Q0MgLyogSlNQZXJmb3JtYW5jZU9ic2VydmVyQ3VzdG9tLmNwcCAqLywKIAkJCQlBNEE2OUI4QkI5
MUI0OUQwQTgwNEMzMUQgLyogSlNQcm9taXNlUmVqZWN0aW9uRXZlbnRDdXN0b20uY3BwICovLAor
CQkJCTU4NjhDN0M0MjUzOURBMzMwMEJGOURGMyAvKiBKU1Jlc2l6ZU9ic2VydmVyQ3VzdG9tLmNw
cCAqLywKIAkJCQk1ODg0RkU1NjIyODEzRTJEMDA0MEFGRjYgLyogSlNSZXNpemVPYnNlcnZlckVu
dHJ5Q3VzdG9tLmNwcCAqLywKIAkJCQk4M0Y1NzI5NDFGQTEwNjZGMDAzODM3QkUgLyogSlNTZXJ2
aWNlV29ya2VyQ2xpZW50Q3VzdG9tLmNwcCAqLywKIAkJCQk0NjBEMTk0NDFGQ0UyMUREMDBDM0RC
ODUgLyogSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZXNpemVPYnNlcnZlckN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Jlc2l6ZU9ic2VydmVyQ3VzdG9tLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42YzY0ODYyZTE2NDkyMjUxNjE3ZTNkNWZiYjAzNWQ3OTIwNGJlMjA5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZXNpemVPYnNlcnZl
ckN1c3RvbS5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNS
ZXNpemVPYnNlcnZlci5oIgorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNSZXNpemVPYnNlcnZlcjo6dmlzaXRB
ZGRpdGlvbmFsQ2hpbGRyZW4oSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBSZXNp
emVPYnNlcnZlckNhbGxiYWNrKiBjYWxsYmFjayA9IHdyYXBwZWQoKS5jYWxsYmFja0NvbmN1cnJl
bnRseSgpOworICAgIGlmIChjYWxsYmFjaykKKyAgICAgICAgY2FsbGJhY2stPnZpc2l0SlNGdW5j
dGlvbih2aXNpdG9yKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkZDg4M2IyYTA3
YzU2MjM2ZWNjZmQ1MDQ1YWFlNjA2YjM5NmU4NzRmLi4yNjNhYWU0NTQ4OTI1MzRiNTc4ZjQ2YmM5
YzEzM2U1ZDljZDIxNGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTQxMiw2ICsxNDEyLDcg
QEAgcHVibGljOgogI2lmIEVOQUJMRShSRVNJWkVfT0JTRVJWRVIpCiAgICAgdm9pZCBhZGRSZXNp
emVPYnNlcnZlcihSZXNpemVPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlUmVzaXplT2JzZXJ2
ZXIoUmVzaXplT2JzZXJ2ZXImKTsKKyAgICB1bnNpZ25lZCBudW1iZXJPZlJlc2l6ZU9ic2VydmVy
cygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzaXplT2JzZXJ2ZXJzLnNpemUoKTsgfQogICAgIGJvb2wg
aGFzUmVzaXplT2JzZXJ2ZXJzKCk7CiAgICAgLy8gUmV0dXJuIHRoZSBtaW5EZXB0aCBvZiB0aGUg
YWN0aXZlIG9ic2VydmF0aW9ucy4KICAgICBzaXplX3QgZ2F0aGVyUmVzaXplT2JzZXJ2YXRpb25z
KHNpemVfdCBkZWVwZXJUaGFuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVz
aXplT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXIuaAppbmRl
eCA2MDllNzBjMDE0NmM1NTBkYjUxZjhlM2VhYmQ3ZTRhNzc1ZWE0ZDBlLi5lNDE1NmYzMWUzMGUy
NjUxNDk1NDAxOTI0NGU3N2I5MzgwYjAzMTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Jlc2l6ZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNl
cnZlci5oCkBAIC02NCw2ICs2NCw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1NraXBwZWRPYnNl
cnZhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX2hhc1NraXBwZWRPYnNlcnZhdGlvbnM7IH0KICAg
ICB2b2lkIHNldEhhc1NraXBwZWRPYnNlcnZhdGlvbnMoYm9vbCBza2lwcGVkKSB7IG1faGFzU2tp
cHBlZE9ic2VydmF0aW9ucyA9IHNraXBwZWQ7IH0KIAorICAgIFJlc2l6ZU9ic2VydmVyQ2FsbGJh
Y2sqIGNhbGxiYWNrQ29uY3VycmVudGx5KCkgeyByZXR1cm4gbV9jYWxsYmFjay5nZXQoKTsgfQor
CiBwcml2YXRlOgogICAgIFJlc2l6ZU9ic2VydmVyKERvY3VtZW50JiwgUmVmPFJlc2l6ZU9ic2Vy
dmVyQ2FsbGJhY2s+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6
ZU9ic2VydmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXIuaWRsCmlu
ZGV4IDNjODdhMjE3MTQxNWQzZTAyY2EzMWVhYTE2MDA0MzQ1YzA3NDBjOTUuLjA1ZTg0N2Q5MDA4
MzE2NjY3NWE1YTc3ZTk1ZTVjOGVlOWY4MmY2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUmVzaXplT2JzZXJ2ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXpl
T2JzZXJ2ZXIuaWRsCkBAIC0yOSw3ICsyOSw4IEBACiAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAg
IENvbmRpdGlvbmFsPVJFU0laRV9PQlNFUlZFUiwKICAgICBFbmFibGVkQnlTZXR0aW5nPVJlc2l6
ZU9ic2VydmVyLAotICAgIEV4cG9zZWQ9V2luZG93CisgICAgRXhwb3NlZD1XaW5kb3csCisgICAg
SlNDdXN0b21NYXJrRnVuY3Rpb24sCiBdIGludGVyZmFjZSBSZXNpemVPYnNlcnZlciB7CiAgICAg
W0NhbGxXaXRoPURvY3VtZW50XSBjb25zdHJ1Y3RvcihSZXNpemVPYnNlcnZlckNhbGxiYWNrIGNh
bGxiYWNrKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZl
ckNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2su
aAppbmRleCBiMzliOGIxOTFkNzkwMTQwZGZmYzRjYWY4ZjQ3MmU2NGU1YTlmODMyLi44M2MxMjg0
MTRjNWRiZjlmMDI3MGRkYmIxZjc4NjhmYmYzN2U0MDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaApAQCAtMzksNiArMzksOSBAQCBjbGFzcyBSZXNp
emVPYnNlcnZlckVudHJ5OwogY2xhc3MgUmVzaXplT2JzZXJ2ZXJDYWxsYmFjayA6IHB1YmxpYyBS
ZWZDb3VudGVkPFJlc2l6ZU9ic2VydmVyQ2FsbGJhY2s+LCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJh
Y2sgewogcHVibGljOgogICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3RpdmVET01DYWxs
YmFjazsKKworICAgIHZpcnR1YWwgYm9vbCBoYXNDYWxsYmFjaygpIGNvbnN0ID0gMDsKKwogICAg
IHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoUmVzaXplT2JzZXJ2ZXIm
LCBjb25zdCBWZWN0b3I8UmVmPFJlc2l6ZU9ic2VydmVyRW50cnk+PiYsIFJlc2l6ZU9ic2VydmVy
JikgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNl
cnZlckNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2ZXJDYWxs
YmFjay5pZGwKaW5kZXggOGM3OTQwYWY4YjExNTFmMjM1Y2ZkN2FiYmQ5YjAzNDQ3NDI3NTJkYi4u
MjhhYTlmMzk3ZGRkZThiMmY4NzQ5YjFjNWQ5MzNmNzg2MWYyNTA2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaWRsCkBAIC0yOCw0ICsyOCw1IEBA
CiBbCiAgICAgQ29uZGl0aW9uYWw9UkVTSVpFX09CU0VSVkVSLAogICAgIENhbGxiYWNrVGhpc09i
amVjdD1SZXNpemVPYnNlcnZlciwKKyAgICBJc1dlYWtDYWxsYmFjaywKIF0gY2FsbGJhY2sgUmVz
aXplT2JzZXJ2ZXJDYWxsYmFjayA9IHVuZGVmaW5lZCAoc2VxdWVuY2U8UmVzaXplT2JzZXJ2ZXJF
bnRyeT4gZW50cmllcywgUmVzaXplT2JzZXJ2ZXIgb2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCmluZGV4IGEwOTMwNWYyODRjZWNhNjVkNjg0NjE4OWU5N2RkYWI3NzU1
MTA2ZDYuLmVhYmM1YjMwMzY1YmM1Mjc1ZTE1MTUxNGQwMmJlOWQ5MjdiYWViZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI2MjIsNiArMjYyMiwxMyBAQCB1bnNpZ25l
ZCBJbnRlcm5hbHM6Om51bWJlck9mSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzKGNvbnN0IERvY3VtZW50
JiBkb2N1bWVudCkgY29ucwogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUkVTSVpFX09CU0VSVkVS
KQordW5zaWduZWQgSW50ZXJuYWxzOjpudW1iZXJPZlJlc2l6ZU9ic2VydmVycyhjb25zdCBEb2N1
bWVudCYgZG9jdW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50Lm51bWJlck9mUmVz
aXplT2JzZXJ2ZXJzKCk7Cit9CisjZW5kaWYKKwogdWludDY0X3QgSW50ZXJuYWxzOjpkb2N1bWVu
dElkZW50aWZpZXIoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogewogICAgIHJldHVy
biBkb2N1bWVudC5pZGVudGlmaWVyKCkudG9VSW50NjQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCmluZGV4IGExNmY5NTJmMTU1MDAxYmQ2MzUyYWU1MDk3YWQ2ODY2ZjQ4N2EyNDUuLjQy
ZWU4MGUwODkzMzBlMGFlNTM1NGQ5ZGY5NDY1ODFiM2NiNTZmMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaApAQCAtNDQzLDYgKzQ0MywxMCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQg
bnVtYmVyT2ZJbnRlcnNlY3Rpb25PYnNlcnZlcnMoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKICNl
bmRpZgogCisjaWYgRU5BQkxFKFJFU0laRV9PQlNFUlZFUikKKyAgICB1bnNpZ25lZCBudW1iZXJP
ZlJlc2l6ZU9ic2VydmVycyhjb25zdCBEb2N1bWVudCYpIGNvbnN0OworI2VuZGlmCisKICAgICB1
aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKICAgICBi
b29sIGlzRG9jdW1lbnRBbGl2ZSh1aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggYTNmNDU2ZTA4OWY3YmZhMWZm
MWE3M2FlMzVkNDdhNGNiOWMxOTQxMS4uZmI1MWRmZTkwNjFlMTJiMjdmYzM0YzA5YWVlODM0Mzc3
MGY5YWJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNTE0LDYgKzUx
NCw3IEBAIGVudW0gQ29udGVudFNpemVDYXRlZ29yeSB7CiAgICAgdW5zaWduZWQgbG9uZyBudW1i
ZXJPZkxpdmVEb2N1bWVudHMoKTsKICAgICB1bnNpZ25lZCBsb25nIHJlZmVyZW5jaW5nTm9kZUNv
dW50KERvY3VtZW50IGRvY3VtZW50KTsKICAgICBbQ29uZGl0aW9uYWw9SU5URVJTRUNUSU9OX09C
U0VSVkVSXSB1bnNpZ25lZCBsb25nIG51bWJlck9mSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzKERvY3Vt
ZW50IGRvY3VtZW50KTsKKyAgICBbQ29uZGl0aW9uYWwgPSBSRVNJWkVfT0JTRVJWRVJdIHVuc2ln
bmVkIGxvbmcgbnVtYmVyT2ZSZXNpemVPYnNlcnZlcnMoRG9jdW1lbnQgZG9jdW1lbnQpOwogICAg
IFdpbmRvd1Byb3h5PyBvcGVuRHVtbXlJbnNwZWN0b3JGcm9udGVuZChET01TdHJpbmcgdXJsKTsK
ICAgICB1bmRlZmluZWQgY2xvc2VEdW1teUluc3BlY3RvckZyb250ZW5kKCk7CiAgICAgW01heVRo
cm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0SW5zcGVjdG9ySXNVbmRlclRlc3QoYm9vbGVhbiBp
c1VuZGVyVGVzdCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGIxNWZlMDQwMGNiMzEwNTkwYmJkNjZmNmNmMGQ3Nzg1MmVm
Mjg1Mi4uY2U1ZWZmMzcxYjVlZjMzMDRiNGUyNjdmMzhkNjlmYWFiYTE4ODMxMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDIwLTEwLTIwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlh
LmNvbT4KKworICAgICAgICBSZXNpemVPYnNlcnZlciBpcyBub3QgcHJvcGVybHkgZ2FyYmFnZSBj
b2xsZWN0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNTE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAg
ICAqIHJlc2l6ZS1vYnNlcnZlci9yZXNpemUtb2JzZXJ2ZXItY2FsbGJhY2stbGVhay1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHJlc2l6ZS1vYnNlcnZlci9yZXNpemUtb2JzZXJ2ZXIt
Y2FsbGJhY2stbGVhay5odG1sOiBBZGRlZC4KKwogMjAyMC0xMC0xNCAgQW5kcmVzIEdvbnphbGV6
ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgWyBtYWNPUyBdIGFjY2Vzc2liaWxp
dHkvbWFjL3NlbGVjdC1lbGVtZW50LXNlbGVjdGlvbi13aXRoLW9wdGdyb3Vwcy5odG1sIGlzIGEg
Zmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzaXplLW9ic2VydmVyL3Jl
c2l6ZS1vYnNlcnZlci1jYWxsYmFjay1sZWFrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Jl
c2l6ZS1vYnNlcnZlci9yZXNpemUtb2JzZXJ2ZXItY2FsbGJhY2stbGVhay1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWE5OTQ5YjU3YTc0OTMwNjljNzdkOGFmZGNjNzAzODhhZTQwOWRkYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Jlc2l6ZS1vYnNlcnZlci9yZXNpemUtb2JzZXJ2
ZXItY2FsbGJhY2stbGVhay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgUmVz
aXplT2JzZXJ2ZXIgaW1wbGVtZW50ZWQKK1BBU1MgdGVzdDogUmVzaXplIG9ic2VydmVyIGluc2lk
ZSBjYWxsYmFjayBzaG91bGQgYmUgZ2FyYmFnZSBjb2xsZWN0ZWQgaWYgbm8gb25lIHJlZmVycyB0
byBpdAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNpemUtb2JzZXJ2ZXIvcmVzaXplLW9i
c2VydmVyLWNhbGxiYWNrLWxlYWsuaHRtbCBiL0xheW91dFRlc3RzL3Jlc2l6ZS1vYnNlcnZlci9y
ZXNpemUtb2JzZXJ2ZXItY2FsbGJhY2stbGVhay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxMGMzMjUyZTY3
MzcxMTViYzRmODdhNDQxMzk1Njg2MDRiNDVjZmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9yZXNpemUtb2JzZXJ2ZXIvcmVzaXplLW9ic2VydmVyLWNhbGxiYWNrLWxlYWsuaHRtbApA
QCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGV4cGVyaW1lbnRhbDpSZXNpemVPYnNlcnZlckVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2djLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBh
Y2Nlc3NUb09ic2VydmVySW5DYWxsYmFjaygpIHsKKyAgICBsZXQgdGVzdCA9IGFzeW5jX3Rlc3Qo
InRlc3Q6IFJlc2l6ZSBvYnNlcnZlciBpbnNpZGUgY2FsbGJhY2sgc2hvdWxkIGJlIGdhcmJhZ2Ug
Y29sbGVjdGVkIGlmIG5vIG9uZSByZWZlcnMgdG8gaXQiKTsKKyAgICBsZXQgaW5pdGlhbE9ic2Vy
dmVyQ291bnQgPSBpbnRlcm5hbHMubnVtYmVyT2ZSZXNpemVPYnNlcnZlcnMoZG9jdW1lbnQpOwor
ICAgIGNvbnN0IGl0ZXJhdGlvbkNvdW50ID0gNTA7CisgICAgbGV0IGNhbGxiYWNrQ291bnQgPSAw
OworICAgIGZvciAobGV0IGogPSAwOyBqIDwgaXRlcmF0aW9uQ291bnQ7ICsraikgeworICAgICAg
ICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgY29u
dGFpbmVyLmFwcGVuZENoaWxkKGRpdik7CisgICAgICAgIGxldCBvYnNlcnZlciA9IG5ldyBSZXNp
emVPYnNlcnZlcigoKSA9PiB7CisgICAgICAgICAgICBjYWxsYmFja0NvdW50Kys7CisgICAgICAg
ICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CisgICAgICAgICAgICBjb250YWluZXIucmVtb3Zl
Q2hpbGQoZGl2KTsKKyAgICAgICAgICAgIGlmIChjYWxsYmFja0NvdW50ID09IGl0ZXJhdGlvbkNv
dW50KSB7CisgICAgICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGdjKCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3Qu
c3RlcCgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb2JzZXJ2ZXJDb3VudCA9
IGludGVybmFscy5udW1iZXJPZlJlc2l6ZU9ic2VydmVycyhkb2N1bWVudCkgLSBpbml0aWFsT2Jz
ZXJ2ZXJDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKG9ic2VydmVy
Q291bnQgPCBpdGVyYXRpb25Db3VudCwgJ1Jlc2l6ZSBvYnNlcnZlcnMgc2hvdWxkIGJlIGNvbGxl
Y3RlZC4nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSk7CisgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZGl2KTsKKyAgICB9Cit9CisKK3Rlc3Qo
XyA9PiB7CisgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3csICJSZXNpemVPYnNlcnZlciIp
OworfSwgIlJlc2l6ZU9ic2VydmVyIGltcGxlbWVudGVkIik7CisKK3dpbmRvdy5vbmxvYWQgPSBh
Y2Nlc3NUb09ic2VydmVySW5DYWxsYmFjaygpOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKworPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>