<?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>211540</bug_id>
          
          <creation_ts>2020-05-06 17:37:10 -0700</creation_ts>
          <short_desc>GetArrayLength should be &quot;blessed&quot; during Fixup phase in the DFG</short_desc>
          <delta_ts>2020-05-14 15:01:55 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1649909</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-06 17:37:10 -0700</bug_when>
    <thetext>GetArrayLength should be &quot;blessed&quot; during Fixup phase in the DFG</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649911</commentid>
    <comment_count>1</comment_count>
      <attachid>398688</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-06 17:39:34 -0700</bug_when>
    <thetext>Created attachment 398688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649912</commentid>
    <comment_count>2</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-06 17:39:55 -0700</bug_when>
    <thetext>rdar://problem/62839448</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649913</commentid>
    <comment_count>3</comment_count>
      <attachid>398688</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-05-06 17:47:07 -0700</bug_when>
    <thetext>Comment on attachment 398688
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        If we got an ArrayMode that expects to be configured during Fixup

Please add a comma after &quot;Fixup&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650441</commentid>
    <comment_count>4</comment_count>
      <attachid>398822</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-07 18:13:24 -0700</bug_when>
    <thetext>Created attachment 398822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650448</commentid>
    <comment_count>5</comment_count>
      <attachid>398822</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-07 18:31:42 -0700</bug_when>
    <thetext>Comment on attachment 398822
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:3
&gt; +        GetArrayLength should be &quot;blessed&quot; during Fixup phase in the DFG

in your changelog, can you say what this fixes? You say some mechanical things, but not the original bug.

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        If we got an ArrayMode that expects to be configured during Fixup,
&gt; +        then right now we will fail. This fixes GetArrayLength to properly

Can you be a bit more specific on this first sentence. What you wrote is clearly not true.

&gt; Source/JavaScriptCore/ChangeLog:22
&gt; +        previously pass it&apos;s own speculation for the speculation of the index, which logically

it&apos;s =&gt; its

&gt; Source/JavaScriptCore/dfg/DFGArrayMode.cpp:430
&gt; +    if (isSomeTypedArrayView())
&gt; +        return value.isType(SpecTypedArrayView);

how is this enough? e.g, how does this handle Float32Array vs Float64Array?

&gt; Source/JavaScriptCore/dfg/DFGArrayMode.h:240
&gt; +    static constexpr SpeculatedType unusedIndexSpeculatedType = SpecInt32Only;

alternatively:  just use Optional for the argument param</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650449</commentid>
    <comment_count>6</comment_count>
      <attachid>398822</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-07 18:34:07 -0700</bug_when>
    <thetext>Comment on attachment 398822
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGArrayMode.cpp:430
&gt;&gt; +        return value.isType(SpecTypedArrayView);
&gt; 
&gt; how is this enough? e.g, how does this handle Float32Array vs Float64Array?

I think this is correct if we&apos;re AnyTypedArray

But for specific typed arrays, we need a lot more than this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650452</commentid>
    <comment_count>7</comment_count>
      <attachid>398822</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-07 18:36:45 -0700</bug_when>
    <thetext>Comment on attachment 398822
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGArrayMode.cpp:247
&gt; +        // As long as we have a JSArray getting its length shouldn&apos;t require any sane chainness.
&gt; +        if (canBecomeGetArrayLength(graph, node) &amp;&amp; isJSArray())
&gt; +            return *this;

&quot;Undecided&quot; feels like the wrong name for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650453</commentid>
    <comment_count>8</comment_count>
      <attachid>398822</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-07 18:42:15 -0700</bug_when>
    <thetext>Comment on attachment 398822
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:901
&gt; +            speculationCheck(BadType, JSValueSource::unboxedCell(baseReg), 0, m_jit.branchIfNotType(baseReg, JSType(FirstTypedArrayType), JSType(LastTypedArrayTypeExcludingDataView)));

nullptr, not zero. But why not provide the node?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650455</commentid>
    <comment_count>9</comment_count>
      <attachid>398822</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-07 18:48:58 -0700</bug_when>
    <thetext>Comment on attachment 398822
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:2031
&gt; +                arrayMode = arrayMode.withType(Array::ForceExit);

can you also add an assert we can exit here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650456</commentid>
    <comment_count>10</comment_count>
      <attachid>398822</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-07 18:49:37 -0700</bug_when>
    <thetext>Comment on attachment 398822
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:2033
&gt; +            blessArrayOperation(node-&gt;child1(), Edge(), node-&gt;child2());

Maybe we need to assert we&apos;re always ok to exit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650668</commentid>
    <comment_count>11</comment_count>
      <attachid>398872</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-08 10:21:45 -0700</bug_when>
    <thetext>Created attachment 398872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650694</commentid>
    <comment_count>12</comment_count>
      <attachid>398872</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-08 11:44:21 -0700</bug_when>
    <thetext>Comment on attachment 398872
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        to be configured during Fixup, then right now we will fail for

still not obvious here what you mean by &quot;fail&quot;

&gt; Source/JavaScriptCore/ChangeLog:26
&gt; +        previously pass it&apos;s own speculation for the speculation of the index, which logically

it&apos;s =&gt; its

&gt; Source/JavaScriptCore/dfg/DFGArrayMode.cpp:433
&gt; +    if (isSomeTypedArrayView()) {
&gt; +        if (type() == Array::AnyTypedArray)
&gt; +            return value.isType(SpecTypedArrayView);
&gt; +        return value.isType(speculationFromTypedArrayType(typedArrayType()));
&gt; +    }

can you construct a test where your old code would&apos;ve been broken?

&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:2031
&gt; +                arrayMode = arrayMode.withType(Array::ForceExit);

assert we can exit here.

&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:2032
&gt; +            node-&gt;setArrayMode(arrayMode);

assert &quot;isSpecific() here?

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:901
&gt; +            speculationCheck(BadType, JSValueSource::unboxedCell(baseReg), 0, m_jit.branchIfNotType(baseReg, JSType(FirstTypedArrayType), JSType(LastTypedArrayTypeExcludingDataView)));

nullptr, not zero

&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:991
&gt; +        if (last &amp;&amp; *last != first) {
&gt; +            ASSERT(*last &gt; first);
&gt; +            GPRReg scratch = scratchRegister();
&gt; +            load8(Address(cellGPR, JSCell::typeInfoTypeOffset()), scratch);
&gt; +            sub32(TrustedImm32(first), scratch);
&gt; +            return branch32(Below, scratch, TrustedImm32(*last - first));
&gt; +        }

this is unused. I&apos;d revert your change here

&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:996
&gt; +    Jump branchIfNotType(GPRReg cellGPR, JSType first, Optional&lt;JSType&gt; last = WTF::nullopt)

You should comment that first/last is inclusive

&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:1003
&gt; +            return branch32(AboveOrEqual, scratch, TrustedImm32(*last - first));

this is wrong, since &quot;last&quot; here is inclusive, you&apos;re going to say you&apos;re not the &apos;last&apos; value AFAICT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650695</commentid>
    <comment_count>13</comment_count>
      <attachid>398872</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-08 11:45:59 -0700</bug_when>
    <thetext>Comment on attachment 398872
Patch

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

&gt; Source/JavaScriptCore/runtime/JSType.h:134
&gt;  static constexpr uint32_t LastTypedArrayType = DataViewType;

not your patch, but I feel like maybe we could name this better, and your new variable can subsume this name. &quot;last&quot; here reads to me like it should be inclusive, especially since &quot;first&quot; is</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651367</commentid>
    <comment_count>14</comment_count>
      <attachid>398872</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-11 12:02:41 -0700</bug_when>
    <thetext>Comment on attachment 398872
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:2031
&gt;&gt; +                arrayMode = arrayMode.withType(Array::ForceExit);
&gt; 
&gt; assert we can exit here.

That must be true because GetArrayLength clobbers exit state before Fixup as it&apos;s a ArrayMode node.

&gt;&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:2032
&gt;&gt; +            node-&gt;setArrayMode(arrayMode);
&gt; 
&gt; assert &quot;isSpecific() here?

That&apos;s not true because it can be ForceExit. :P But I can add ASSERT(isSpecific() || ForceExit).

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:901
&gt;&gt; +            speculationCheck(BadType, JSValueSource::unboxedCell(baseReg), 0, m_jit.branchIfNotType(baseReg, JSType(FirstTypedArrayType), JSType(LastTypedArrayTypeExcludingDataView)));
&gt; 
&gt; nullptr, not zero

Done.

&gt;&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:991
&gt;&gt; +        }
&gt; 
&gt; this is unused. I&apos;d revert your change here

I added it for symmetry.

&gt;&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:996
&gt;&gt; +    Jump branchIfNotType(GPRReg cellGPR, JSType first, Optional&lt;JSType&gt; last = WTF::nullopt)
&gt; 
&gt; You should comment that first/last is inclusive

Done.

&gt;&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:1003
&gt;&gt; +            return branch32(AboveOrEqual, scratch, TrustedImm32(*last - first));
&gt; 
&gt; this is wrong, since &quot;last&quot; here is inclusive, you&apos;re going to say you&apos;re not the &apos;last&apos; value AFAICT

Yeah, you&apos;re right. I&apos;ll add at testmasm test for this.

&gt;&gt; Source/JavaScriptCore/runtime/JSType.h:134
&gt;&gt;  static constexpr uint32_t LastTypedArrayType = DataViewType;
&gt; 
&gt; not your patch, but I feel like maybe we could name this better, and your new variable can subsume this name. &quot;last&quot; here reads to me like it should be inclusive, especially since &quot;first&quot; is

Last is inclusive here. DataViews are JSArrayBufferViews so we include them in the list. We should probably make this more consistent throughout though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651369</commentid>
    <comment_count>15</comment_count>
      <attachid>399041</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-11 12:05:34 -0700</bug_when>
    <thetext>Created attachment 399041
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651375</commentid>
    <comment_count>16</comment_count>
      <attachid>399043</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-11 12:15:11 -0700</bug_when>
    <thetext>Created attachment 399043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651523</commentid>
    <comment_count>17</comment_count>
      <attachid>399043</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-11 16:46:33 -0700</bug_when>
    <thetext>Comment on attachment 399043
Patch

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

r=me. Seems like you need to rebase

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        to be configured during Fixup, then right now we will fail for

Fail how?

&gt; Source/JavaScriptCore/assembler/testmasm.cpp:2198
&gt; +static void testBranchIfNotType()

You could also have a microbenchmark too

&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:2032
&gt; +            node-&gt;setArrayMode(arrayMode);

It’s nice to have that assert you proposed. Maybe even in the DFG spec JIT / FTL lower. But here works too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651849</commentid>
    <comment_count>18</comment_count>
      <attachid>399152</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-12 12:19:45 -0700</bug_when>
    <thetext>Created attachment 399152
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651850</commentid>
    <comment_count>19</comment_count>
      <attachid>399043</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-12 12:19:49 -0700</bug_when>
    <thetext>Comment on attachment 399043
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:9
&gt;&gt; +        to be configured during Fixup, then right now we will fail for
&gt; 
&gt; Fail how?

Crash. Edited.

&gt;&gt; Source/JavaScriptCore/assembler/testmasm.cpp:2198
&gt;&gt; +static void testBranchIfNotType()
&gt; 
&gt; You could also have a microbenchmark too

This seems more consistent because if you &quot;break&quot; a microbenchmark we may or may not notice.

&gt;&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:2032
&gt;&gt; +            node-&gt;setArrayMode(arrayMode);
&gt; 
&gt; It’s nice to have that assert you proposed. Maybe even in the DFG spec JIT / FTL lower. But here works too

Ok, I&apos;ll add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651867</commentid>
    <comment_count>20</comment_count>
      <attachid>399043</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-12 12:39:27 -0700</bug_when>
    <thetext>Comment on attachment 399043
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/assembler/testmasm.cpp:2198
&gt;&gt;&gt; +static void testBranchIfNotType()
&gt;&gt; 
&gt;&gt; You could also have a microbenchmark too
&gt; 
&gt; This seems more consistent because if you &quot;break&quot; a microbenchmark we may or may not notice.

&quot;also&quot;, not &quot;instead of&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651949</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-12 14:28:00 -0700</bug_when>
    <thetext>Found 17 new test failures: imported/w3c/web-platform-tests/IndexedDB/idlharness.any.html, imported/w3c/web-platform-tests/html/dom/idlharness.https.html, imported/w3c/web-platform-tests/notifications/interfaces.html, imported/w3c/web-platform-tests/resize-observer/idlharness.window.html, imported/w3c/web-platform-tests/media-source/interfaces.html, imported/w3c/web-platform-tests/requestidlecallback/idlharness.window.html, imported/w3c/web-platform-tests/dom/idlharness.any.worker.html, imported/w3c/web-platform-tests/dom/idlharness.window.html, imported/w3c/web-platform-tests/css/cssom-view/idlharness.html, imported/w3c/web-platform-tests/xhr/idlharness.any.html, imported/w3c/web-platform-tests/xhr/idlharness.any.worker.html, imported/w3c/web-platform-tests/css/geometry/interfaces.worker.html, imported/w3c/web-platform-tests/fetch/api/idl.any.html, imported/w3c/web-platform-tests/resource-timing/idlharness.any.worker.html, js/dom/typed-array-set-different-types.html, fast/canvas/webgl/typed-arrays-in-workers.html, imported/w3c/web-platform-tests/fetch/api/idl.any.worker.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651970</commentid>
    <comment_count>22</comment_count>
      <attachid>399184</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-12 15:06:28 -0700</bug_when>
    <thetext>Created attachment 399184
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651971</commentid>
    <comment_count>23</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-12 15:07:03 -0700</bug_when>
    <thetext>(In reply to EWS from comment #21)
&gt; Found 17 new test failures:
&gt; imported/w3c/web-platform-tests/IndexedDB/idlharness.any.html,
&gt; imported/w3c/web-platform-tests/html/dom/idlharness.https.html,
&gt; imported/w3c/web-platform-tests/notifications/interfaces.html,
&gt; imported/w3c/web-platform-tests/resize-observer/idlharness.window.html,
&gt; imported/w3c/web-platform-tests/media-source/interfaces.html,
&gt; imported/w3c/web-platform-tests/requestidlecallback/idlharness.window.html,
&gt; imported/w3c/web-platform-tests/dom/idlharness.any.worker.html,
&gt; imported/w3c/web-platform-tests/dom/idlharness.window.html,
&gt; imported/w3c/web-platform-tests/css/cssom-view/idlharness.html,
&gt; imported/w3c/web-platform-tests/xhr/idlharness.any.html,
&gt; imported/w3c/web-platform-tests/xhr/idlharness.any.worker.html,
&gt; imported/w3c/web-platform-tests/css/geometry/interfaces.worker.html,
&gt; imported/w3c/web-platform-tests/fetch/api/idl.any.html,
&gt; imported/w3c/web-platform-tests/resource-timing/idlharness.any.worker.html,
&gt; js/dom/typed-array-set-different-types.html,
&gt; fast/canvas/webgl/typed-arrays-in-workers.html,
&gt; imported/w3c/web-platform-tests/fetch/api/idl.any.worker.html

Whoops, forgot to add the callback that says we don&apos;t want storage for TypedArray lengths.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652040</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-12 17:16:19 -0700</bug_when>
    <thetext>Found 10 new test failures: imported/w3c/web-platform-tests/media-source/interfaces.html, imported/w3c/web-platform-tests/requestidlecallback/idlharness.window.html, imported/w3c/web-platform-tests/dom/idlharness.any.worker.html, imported/w3c/web-platform-tests/remote-playback/idlharness.window.html, imported/w3c/web-platform-tests/css/cssom-view/idlharness.html, imported/w3c/web-platform-tests/xhr/idlharness.any.html, imported/w3c/web-platform-tests/xhr/idlharness.any.worker.html, imported/w3c/web-platform-tests/WebCryptoAPI/idlharness.https.html, imported/w3c/web-platform-tests/fetch/api/idl.any.html, imported/w3c/web-platform-tests/css/geometry/interfaces.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652763</commentid>
    <comment_count>25</comment_count>
      <attachid>399395</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-14 13:07:35 -0700</bug_when>
    <thetext>Created attachment 399395
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652808</commentid>
    <comment_count>26</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-14 15:01:55 -0700</bug_when>
    <thetext>Committed r261712: &lt;https://trac.webkit.org/changeset/261712&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399395.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398688</attachid>
            <date>2020-05-06 17:39:34 -0700</date>
            <delta_ts>2020-05-07 18:13:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211540-20200506173934.patch</filename>
            <type>text/plain</type>
            <size>3660</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ODEwYWU4NmMzYTFlYTYwNjQxZDQ5YjNkZTE4ODUxZDI5MGQ2MmVlLi41ZGE5MTg2MjVlNzYwOWY0
NTliMjY1OTdhZGNlYjY4OTdlMGNiZTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAyMC0wNS0wNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBHZXRBcnJheUxlbmd0aCBzaG91bGQgYmUgImJsZXNzZWQiIGR1cmlu
ZyBGaXh1cCBwaGFzZSBpbiB0aGUgREZHCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTE1NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJZiB3ZSBnb3QgYW4gQXJyYXlNb2RlIHRoYXQgZXhwZWN0cyB0byBi
ZSBjb25maWd1cmVkIGR1cmluZyBGaXh1cAorICAgICAgICB0aGVuIHJpZ2h0IG5vdyB3ZSB3aWxs
IGZhaWwuIFRoaXMgZml4ZXMgR2V0QXJyYXlMZW5ndGggdG8gcHJvcGVybHkKKyAgICAgICAgY2Fs
bCBibGVzc0FycmF5T3BlcmF0aW9uIGFuZCBmaXhlcyBjbG9iYmVyaXplIHRvIGtub3cgdGhhdAor
ICAgICAgICBHZXRBcnJheUxlbmd0aCBjb3VsZCBoYXZlIGEgRm9yY2VFeGl0IEFycmF5TW9kZSBi
cmllZmx5IGJlZm9yZQorICAgICAgICBiZWluZyBjbGVhbmVkIHVwLgorCisgICAgICAgICogZGZn
L0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAg
ICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFz
ZTo6Zml4dXBOb2RlKToKKwogMjAyMC0wNS0wNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgQnlWYWwgbm9kZXMgd2l0aCBBcnJheU1vZGVzIHNo
b3VsZCBjbG9iYmVyVG9wIHVudGlsIEZpeHVwIHBoYXNlIHJ1bnMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IGVkZDQzMWQxOWVlMWJhYjY5MWY2Mzk0ODc4
YjRkMWQ3MzE0NzFmYzYuLjQwMDliNGZkMGU5YjA3ZDU1YjE0ODZiNjA5N2Q0ZTFiZjU0Y2ZiNTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0xMzMwLDYg
KzEzMzAsMTEgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29u
c3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgICAgIGRlZihIZWFw
TG9jYXRpb24oQXJyYXlMZW5ndGhMb2MsIE1pc2NGaWVsZHMsIG5vZGUtPmNoaWxkMSgpKSwgTGF6
eU5vZGUobm9kZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGNhc2UgQXJyYXk6
OkZvcmNlRXhpdDogeworICAgICAgICAgICAgd3JpdGUoU2lkZVN0YXRlKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NF
UlQobW9kZS5pc1NvbWVUeXBlZEFycmF5VmlldygpKTsKICAgICAgICAgICAgIHJlYWQoTWlzY0Zp
ZWxkcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRl
eCA4NGQzOWUyOTBlZjVhN2YzNjZkODllNzA0YjU4MWYwMTY0NDI1MmI5Li43YzVhOTRlOTQyNWJh
ZGNiZDUyNmIxZjM3NWUxMzRmYzA2NmY1NGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTIwMjUsNiArMjAyNSw5IEBAIHByaXZhdGU6CiAgICAg
ICAgIH0KIAogICAgICAgICBjYXNlIEdldEFycmF5TGVuZ3RoOiB7CisgICAgICAgICAgICBub2Rl
LT5zZXRBcnJheU1vZGUobm9kZS0+YXJyYXlNb2RlKCkucmVmaW5lKG1fZ3JhcGgsIG5vZGUsIG5v
ZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCksIG5vZGUtPnByZWRpY3Rpb24oKSkpOworICAgICAg
ICAgICAgYmxlc3NBcnJheU9wZXJhdGlvbihub2RlLT5jaGlsZDEoKSwgRWRnZSgpLCBub2RlLT5j
aGlsZDIoKSk7CisKICAgICAgICAgICAgIGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2RlLT5jaGls
ZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBjMDdlMzg2Y2ZmNDE4MWI0ZDhh
YzViZTIwYzM3NjM2ZGM4ZGE4MGE1Li5jMTY1OTIzYzc5MDRkNDVjNDYzZmFkNGJjMjdiMWIwMWM5
NDliNjkzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA1LTA2ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9t
aWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIEdldEFycmF5TGVuZ3RoIHNob3VsZCBiZSAiYmxl
c3NlZCIgZHVyaW5nIEZpeHVwIHBoYXNlIGluIHRoZSBERkcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTU0MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2dldC1hcnJheS1sZW5ndGgtbm9k
ZS1zaG91bGQtYmUtYmxlc3NlZC1pbi1maXh1cC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgor
CiAyMDIwLTA1LTA2ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIERGRyBCeVZhbCBub2RlcyB3aXRoIEFycmF5TW9kZXMgc2hvdWxkIGNsb2JiZXJUb3Ag
dW50aWwgRml4dXAgcGhhc2UgcnVucy4KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dldC1h
cnJheS1sZW5ndGgtbm9kZS1zaG91bGQtYmUtYmxlc3NlZC1pbi1maXh1cC5qcyBiL0pTVGVzdHMv
c3RyZXNzL2dldC1hcnJheS1sZW5ndGgtbm9kZS1zaG91bGQtYmUtYmxlc3NlZC1pbi1maXh1cC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iYzk4ZDVhOGI1NDc1ZjQxNTczMGYwYzRlOTgzMjBiODY2NjdiZGU2Ci0t
LSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2V0LWFycmF5LWxlbmd0aC1ub2RlLXNo
b3VsZC1iZS1ibGVzc2VkLWluLWZpeHVwLmpzCkBAIC0wLDAgKzEsOCBAQAorZnVuY3Rpb24gZm9v
KCkgeworICBmb3IgKGxldCBpPTA7IGk8MTAwMDA7IGkrKykge30KKyAgZm9yIChjb25zdCBxIG9m
IEFycmF5LnByb3RvdHlwZSkge30KK30KKworZm9yIChsZXQgaT0wOyBpPDEwMDA7IGkrKykgewor
ICBmb28oKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398822</attachid>
            <date>2020-05-07 18:13:24 -0700</date>
            <delta_ts>2020-05-08 10:21:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211540-20200507181323.patch</filename>
            <type>text/plain</type>
            <size>16314</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MTExODM2MmE0YWIwMzdhYmJiZjI1YTgzZTJhNTAzZDc4ZDA2MWQ5Li5mMjYzNWU2NTI5YTk1YWU5
NTk0YzU1NmNhNWVmMTU5YmU1ZTEzMWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAyMC0wNS0wNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBHZXRBcnJheUxlbmd0aCBzaG91bGQgYmUgImJsZXNzZWQiIGR1cmlu
ZyBGaXh1cCBwaGFzZSBpbiB0aGUgREZHCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTE1NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJZiB3ZSBnb3QgYW4gQXJyYXlNb2RlIHRoYXQgZXhwZWN0cyB0byBi
ZSBjb25maWd1cmVkIGR1cmluZyBGaXh1cCwKKyAgICAgICAgdGhlbiByaWdodCBub3cgd2Ugd2ls
bCBmYWlsLiBUaGlzIGZpeGVzIEdldEFycmF5TGVuZ3RoIHRvIHByb3Blcmx5CisgICAgICAgIGNh
bGwgYmxlc3NBcnJheU9wZXJhdGlvbiBhbmQgZml4ZXMgY2xvYmJlcml6ZSB0byBrbm93IHRoYXQK
KyAgICAgICAgR2V0QXJyYXlMZW5ndGggY291bGQgaGF2ZSBhIEZvcmNlRXhpdCBBcnJheU1vZGUg
YnJpZWZseSBiZWZvcmUKKyAgICAgICAgYmVpbmcgY2xlYW5lZCB1cC4KKworICAgICAgICBXaGVu
IGJsZXNzaW5nIEdldEFycmF5TGVuZ3RoIHdlIGNhbiBub3cgcHJvZHVjZSBDaGVja0FycmF5cyB0
aGF0IGhhdmUgYW4KKyAgICAgICAgQW55VHlwZWRBcnJheSBBcnJheU1vZGU6OlR5cGUuIFNvIHRo
aXMgcGF0Y2ggZXhwYW5kcyBDaGVja0FycmF5IHRvIHByb3Blcmx5CisgICAgICAgIGhhbmRsZSB0
aGF0LiBUbyBoZWxwIHdpdGggdGhpcyB3ZSBleHBhbmQgYnJhbmNoSWZUeXBlIHRvIGhhdmUgYSBz
dGFydGluZyBKU1R5cGUKKyAgICAgICAgYW5kIGFuIG9wdGlvbmFsIGVuZGluZyBKU1R5cGUuCisK
KyAgICAgICAgTGFzdGx5LCBpbXByb3ZlIHRoZSBxdWFsaXR5IG9mIHJlZmluZW1lbnQgZm9yIEdl
dEFycmF5TGVuZ3RoLWxpa2Ugbm9kZXMuCisgICAgICAgIEZpcnN0bHksIGJ5IG5vdGluZyB0aGF0
IEdldEFycmF5TGVuZ3RoLWxpa2Ugbm9kZXMgZG9uJ3QgY2FyZSBhYm91dCBVbmRlY2lkZWRuZXNz
CisgICAgICAgIHdlIGNhbiBwcmV2ZW50IGNvbnZlcnRpbmcgdG8gYSBHZW5lcmljIEFycmF5TW9k
ZTo6VHlwZS4gQWxzbywgR2V0QXJyYXlMZW5ndGggd291bGQKKyAgICAgICAgcHJldmlvdXNseSBw
YXNzIGl0J3Mgb3duIHNwZWN1bGF0aW9uIGZvciB0aGUgc3BlY3VsYXRpb24gb2YgdGhlIGluZGV4
LCB3aGljaCBsb2dpY2FsbHkKKyAgICAgICAgZG9lc24ndCBtYWtlIHNlbnNlLiBTbyB0aGlzIHBh
dGNoIGFkZHMgYSBuZXcgY29uc3RhbnQsIHdoaWNoIGlzIFNwZWNJbnQzMk9ubHksIHRoYXQKKyAg
ICAgICAgY2FuIGJlIHBhc3NlZCBpZiBhIERGRyBub2RlIGRvZXNuJ3QgaGF2ZSBhbiBpbmRleC4K
KworICAgICAgICAqIGRmZy9ERkdBcnJheU1vZGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNh
bkJlY29tZUdldEFycmF5TGVuZ3RoKToKKyAgICAgICAgKEpTQzo6REZHOjpBcnJheU1vZGU6OnJl
ZmluZSBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6QXJyYXlNb2RlOjphbHJlYWR5Q2hlY2tl
ZCBjb25zdCk6CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5oOgorICAgICAgICAqIGRmZy9E
RkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAg
ICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6
OmZpeHVwTm9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6YXR0ZW1wdFRvTWFr
ZUdldEFycmF5TGVuZ3RoKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjaGVja0FycmF5KToKKyAgICAgICAg
KiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6aXNBcnJheVR5cGVGb3JDaGVja0FycmF5KToKKyAgICAgICAgKiBqaXQvQXNzZW1i
bHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZUeXBl
KToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZk5vdFR5cGUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNUeXBlLmg6CisKIDIwMjAtMDUtMDcgIEtlaXRoIE1pbGxlciAgPGtl
aXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IEFycmF5TW9kZSBub2RlcyBhZnRl
ciByMjYxMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5
TW9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKaW5k
ZXggZjMyMjQ1ZmY3ZTExYTUwZTE1MTJkNDE0MTg2MDk5MjIzMzU4ZGEwMy4uNGY5MTUwZTk4MGI0
NWE3MGVlNWRjNjk4ODUzZWEzOWVmOGUzMzI4MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQXJyYXlNb2RlLmNwcApAQCAtMTg1LDYgKzE4NSw4IEBAIEFycmF5TW9kZSBBcnJheU1v
ZGU6OmZyb21PYnNlcnZlZChjb25zdCBDb25jdXJyZW50SlNMb2NrZXImIGxvY2tlciwgQXJyYXlQ
cm9maWxlCiAKIHN0YXRpYyBib29sIGNhbkJlY29tZUdldEFycmF5TGVuZ3RoKEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZSkKIHsKKyAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRBcnJheUxlbmd0aCkK
KyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKG5vZGUtPm9wKCkgIT0gR2V0QnlJZCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8gdWlkID0gbm9kZS0+Y2FjaGVhYmxlSWRlbnRp
ZmllcigpLnVpZCgpOwpAQCAtMjQwLDEyICsyNDIsMTYgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6
cmVmaW5lKAogICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlQW5kQ29udmVyc2lvbihBcnJheTo6
RG91YmxlLCBBcnJheTo6Q29udmVydCk7CiAgICAgICAgIHJldHVybiB3aXRoVHlwZUFuZENvbnZl
cnNpb24oQXJyYXk6OkNvbnRpZ3VvdXMsIEFycmF5OjpDb252ZXJ0KTsKICAgICBjYXNlIEFycmF5
OjpVbmRlY2lkZWQ6IHsKKyAgICAgICAgLy8gQXMgbG9uZyBhcyB3ZSBoYXZlIGEgSlNBcnJheSBn
ZXR0aW5nIGl0cyBsZW5ndGggc2hvdWxkbid0IHJlcXVpcmUgYW55IHNhbmUgY2hhaW5uZXNzLgor
ICAgICAgICBpZiAoY2FuQmVjb21lR2V0QXJyYXlMZW5ndGgoZ3JhcGgsIG5vZGUpICYmIGlzSlNB
cnJheSgpKQorICAgICAgICAgICAgcmV0dXJuICp0aGlzOworCiAgICAgICAgIC8vIElmIHdlIGhh
dmUgYW4gT3JpZ2luYWxBcnJheSBhbmQgdGhlIEpTQXJyYXkgcHJvdG90eXBlIGNoYWluIGlzIHNh
bmUsCiAgICAgICAgIC8vIGFueSBpbmRleGVkIGFjY2VzcyBhbHdheXMgcmV0dXJuIHVuZGVmaW5l
ZC4gV2UgaGF2ZSBhIGZhc3QgcGF0aCBmb3IgdGhhdC4KICAgICAgICAgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IGdyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50
aWMpOwogICAgICAgICBTdHJ1Y3R1cmUqIGFycmF5UHJvdG90eXBlU3RydWN0dXJlID0gZ2xvYmFs
T2JqZWN0LT5hcnJheVByb3RvdHlwZSgpLT5zdHJ1Y3R1cmUoZ3JhcGgubV92bSk7CiAgICAgICAg
IFN0cnVjdHVyZSogb2JqZWN0UHJvdG90eXBlU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5vYmpl
Y3RQcm90b3R5cGUoKS0+c3RydWN0dXJlKGdyYXBoLm1fdm0pOwotICAgICAgICBpZiAoKG5vZGUt
Pm9wKCkgPT0gR2V0QnlWYWwgfHwgY2FuQmVjb21lR2V0QXJyYXlMZW5ndGgoZ3JhcGgsIG5vZGUp
KQorICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRCeVZhbAogICAgICAgICAgICAgJiYgaXNK
U0FycmF5V2l0aE9yaWdpbmFsU3RydWN0dXJlKCkKICAgICAgICAgICAgICYmICFncmFwaC5oYXNF
eGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50aWMsIE91dE9mQm91bmRzKQogICAgICAgICAgICAg
JiYgYXJyYXlQcm90b3R5cGVTdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SXNTdGls
bFZhbGlkKCkKQEAgLTI5Nyw3ICszMDMsNyBAQCBBcnJheU1vZGUgQXJyYXlNb2RlOjpyZWZpbmUo
CiAgICAgICAgIGlmIChpc0RpcmVjdEFyZ3VtZW50c1NwZWN1bGF0aW9uKGJhc2UpIHx8IGlzU2Nv
cGVkQXJndW1lbnRzU3BlY3VsYXRpb24oYmFzZSkpIHsKICAgICAgICAgICAgIC8vIEhhbmRsZSBv
dXQtb2YtYm91bmRzIGFjY2Vzc2VzIGFzIGdlbmVyaWMgYWNjZXNzZXMuCiAgICAgICAgICAgICBB
cnJheTo6VHlwZSB0eXBlID0gaXNEaXJlY3RBcmd1bWVudHNTcGVjdWxhdGlvbihiYXNlKSA/IEFy
cmF5OjpEaXJlY3RBcmd1bWVudHMgOiBBcnJheTo6U2NvcGVkQXJndW1lbnRzOwotICAgICAgICAg
ICAgaWYgKGdyYXBoLmhhc0V4aXRTaXRlKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgT3V0T2ZCb3Vu
ZHMpIHx8ICFpc0luQm91bmRzKCkpIHsKKyAgICAgICAgICAgIGlmICgoZ3JhcGguaGFzRXhpdFNp
dGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBPdXRPZkJvdW5kcykgfHwgIWlzSW5Cb3VuZHMoKSkg
JiYgIWNhbkJlY29tZUdldEFycmF5TGVuZ3RoKGdyYXBoLCBub2RlKSkgewogICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBTdXBwb3J0IE9PQiBhY2Nlc3MgZm9yIFNjb3BlZEFyZ3VtZW50cy4KICAg
ICAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc5NTk2CiAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gQXJyYXk6OkRpcmVjdEFyZ3VtZW50
cykKQEAgLTQyMCw2ICs0MjYsOSBAQCBib29sIEFycmF5TW9kZTo6YWxyZWFkeUNoZWNrZWQoR3Jh
cGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBBYnN0cmFjdFZhbHVlJiB2YQogewogICAgIEFT
U0VSVChpc1NwZWNpZmljKCkpOwogCisgICAgaWYgKGlzU29tZVR5cGVkQXJyYXlWaWV3KCkpCisg
ICAgICAgIHJldHVybiB2YWx1ZS5pc1R5cGUoU3BlY1R5cGVkQXJyYXlWaWV3KTsKKwogICAgIElu
ZGV4aW5nVHlwZSBpbmRleGluZ01vZGVNYXNrID0gSXNBcnJheSB8IEluZGV4aW5nU2hhcGVNYXNr
OwogICAgIGlmIChhY3Rpb24oKSA9PSBBcnJheTo6V3JpdGUpCiAgICAgICAgIGluZGV4aW5nTW9k
ZU1hc2sgfD0gQ29weU9uV3JpdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0FycmF5TW9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1v
ZGUuaAppbmRleCBmZGI3MWU3NjRkMDU2MDI2MTMxMmUzYjZhOWYxZTM5NWY1YjkyMmViLi5jMzA0
NjU1NGJiY2IxMTk2ZTAxNTc4MDYwNTIwZDYwY2YxMjgwM2I4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQXJyYXlNb2RlLmgKQEAgLTIzNyw2ICsyMzcsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBBcnJheU1vZGUodHlwZSwgYXJyYXlDbGFzcygpLCBzcGVjdWxhdGlvbigpLCBj
b252ZXJzaW9uLCBhY3Rpb24oKSk7CiAgICAgfQogICAgIAorICAgIHN0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgdW51c2VkSW5kZXhTcGVjdWxhdGVkVHlwZSA9IFNwZWNJbnQzMk9ubHk7
CiAgICAgQXJyYXlNb2RlIHJlZmluZShHcmFwaCYsIE5vZGUqLCBTcGVjdWxhdGVkVHlwZSBiYXNl
LCBTcGVjdWxhdGVkVHlwZSBpbmRleCwgU3BlY3VsYXRlZFR5cGUgdmFsdWUgPSBTcGVjTm9uZSkg
Y29uc3Q7CiAgICAgCiAgICAgYm9vbCBhbHJlYWR5Q2hlY2tlZChHcmFwaCYsIE5vZGUqLCBjb25z
dCBBYnN0cmFjdFZhbHVlJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xv
YmJlcml6ZS5oCmluZGV4IDU0NTcyMDUxYWFiODY3ZGFmMDdkMmE4OWNjN2Q2MjAzYWZkYWJiZWUu
LjZjMTRhMjVjZDc1NDM4OWQwZWFkM2JlMGU2NzAyOGIxOWRiYTYxYjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0xMzY1LDYgKzEzNjUsMTEgQEAgdm9p
ZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3Im
IHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oQXJyYXlM
ZW5ndGhMb2MsIE1pc2NGaWVsZHMsIG5vZGUtPmNoaWxkMSgpKSwgTGF6eU5vZGUobm9kZSkpOwog
ICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGNhc2UgQXJyYXk6OkZvcmNlRXhpdDogewor
ICAgICAgICAgICAgd3JpdGUoU2lkZVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlQobW9kZS5pc1NvbWVU
eXBlZEFycmF5VmlldygpKTsKICAgICAgICAgICAgIHJlYWQoTWlzY0ZpZWxkcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCA4NGQzOWUyOTBlZjVh
N2YzNjZkODllNzA0YjU4MWYwMTY0NDI1MmI5Li4zMTQ2NTk0NTJhODgyZjI3NTJjNTFiODkwNWE4
NGYzNzg3Y2MyNmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFz
ZS5jcHAKQEAgLTIwMjUsNiArMjAyNSwxMyBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAg
ICAgY2FzZSBHZXRBcnJheUxlbmd0aDogeworICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9k
ZSA9IG5vZGUtPmFycmF5TW9kZSgpLnJlZmluZShtX2dyYXBoLCBub2RlLCBub2RlLT5jaGlsZDEo
KS0+cHJlZGljdGlvbigpLCBBcnJheU1vZGU6OnVudXNlZEluZGV4U3BlY3VsYXRlZFR5cGUpOwor
ICAgICAgICAgICAgLy8gV2UgZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIGdlbmVyaWMgYW5kIHdl
IG9ubHkgZW1pdCB0aGlzIGluIHRoZSBQYXJzZXIgd2hlbiB3ZSBoYXZlIGNoZWNrZWQgdGhlIHZh
bHVlIGlzIGFuIEFycmF5L1R5cGVkQXJyYXkuCisgICAgICAgICAgICBpZiAoYXJyYXlNb2RlLnR5
cGUoKSA9PSBBcnJheTo6R2VuZXJpYykKKyAgICAgICAgICAgICAgICBhcnJheU1vZGUgPSBhcnJh
eU1vZGUud2l0aFR5cGUoQXJyYXk6OkZvcmNlRXhpdCk7CisgICAgICAgICAgICBub2RlLT5zZXRB
cnJheU1vZGUoYXJyYXlNb2RlKTsKKyAgICAgICAgICAgIGJsZXNzQXJyYXlPcGVyYXRpb24obm9k
ZS0+Y2hpbGQxKCksIEVkZ2UoKSwgbm9kZS0+Y2hpbGQyKCkpOworCiAgICAgICAgICAgICBmaXhF
ZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KQEAgLTM4MzEsNyArMzgzOCw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICAg
ICAgICAgIAogICAgICAgICBhcnJheU1vZGUgPSBhcnJheU1vZGUucmVmaW5lKAotICAgICAgICAg
ICAgbV9ncmFwaCwgbm9kZSwgbm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKSwgbm9kZS0+cHJl
ZGljdGlvbigpKTsKKyAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUsIG5vZGUtPmNoaWxkMSgpLT5w
cmVkaWN0aW9uKCksIEFycmF5TW9kZTo6dW51c2VkSW5kZXhTcGVjdWxhdGVkVHlwZSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgaWYgKGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkdlbmVyaWMp
IHsKICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBpbnB1dCBpcyBzb21ldGhpbmcgdGhhdCB3
ZSBjYW4ndCBnZXQgYXJyYXkgbGVuZ3RoIGZvciwgYnV0IGZvciB3aGljaCB3ZQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBmYTI4ZjM5
MzBkNGQ4MmVlNjhjZDAyODcwZmMxNjg3ZDAyYzI1OTJjLi5iMTQyNmNkY2E2MWU1MzY4Y2NlZjE2
YmNmNjU1NzA1OWY3ZjkxOWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcApAQCAtODMyLDEzICs4MzIsMTQgQEAgSklUQ29tcGlsZXI6Okp1
bXBMaXN0IFNwZWN1bGF0aXZlSklUOjpqdW1wU2xvd0ZvclVud2FudGVkQXJyYXlNb2RlKEdQUlJl
ZyB0ZW1wR1AKIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tBcnJheShOb2RlKiBub2RlKQog
ewotICAgIEFTU0VSVChub2RlLT5hcnJheU1vZGUoKS5pc1NwZWNpZmljKCkpOwotICAgIEFTU0VS
VCghbm9kZS0+YXJyYXlNb2RlKCkuZG9lc0NvbnZlcnNpb24oKSk7CisgICAgQXJyYXlNb2RlIGFy
cmF5TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpOworICAgIEFTU0VSVChhcnJheU1vZGUuaXNTcGVj
aWZpYygpKTsKKyAgICBBU1NFUlQoIWFycmF5TW9kZS5kb2VzQ29udmVyc2lvbigpKTsKICAgICAK
ICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAg
ICBHUFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7CiAgICAgCi0gICAgaWYgKG5vZGUtPmFycmF5
TW9kZSgpLmFscmVhZHlDaGVja2VkKG1faml0LmdyYXBoKCksIG5vZGUsIG1fc3RhdGUuZm9yTm9k
ZShub2RlLT5jaGlsZDEoKSkpKSB7CisgICAgaWYgKGFycmF5TW9kZS5hbHJlYWR5Q2hlY2tlZCht
X2ppdC5ncmFwaCgpLCBub2RlLCBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpKSkgewog
ICAgICAgICAvLyBXZSBjYW4gcHVyZ2UgRW1wdHkgY2hlY2sgY29tcGxldGVseSBpbiB0aGlzIGNh
c2Ugb2YgQ2hlY2tBcnJheU9yRW1wdHkgc2luY2UgQ2VsbFVzZSBvbmx5IGFjY2VwdHMgU3BlY0Nl
bGwgfCBTcGVjRW1wdHkuCiAgICAgICAgIEFTU0VSVCh0eXBlRmlsdGVyRm9yKG5vZGUtPmNoaWxk
MSgpLnVzZUtpbmQoKSkgJiBTcGVjRW1wdHkpOwogICAgICAgICBub1Jlc3VsdChtX2N1cnJlbnRO
b2RlKTsKQEAgLTg0Nyw3ICs4NDgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FycmF5
KE5vZGUqIG5vZGUpCiAKICAgICBPcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHRlbXA7CiAgICAgT3B0
aW9uYWw8R1BSUmVnPiB0ZW1wR1BSOwotICAgIHN3aXRjaCAobm9kZS0+YXJyYXlNb2RlKCkudHlw
ZSgpKSB7CisgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7CiAgICAgY2FzZSBBcnJheTo6
SW50MzI6CiAgICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3Vv
dXM6CkBAIC04NzEsOCArODcyLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tBcnJheShO
b2RlKiBub2RlKQogICAgIH0KICNlbmRpZgogCi0gICAgc3dpdGNoIChub2RlLT5hcnJheU1vZGUo
KS50eXBlKCkpIHsKLSAgICBjYXNlIEFycmF5OjpBbnlUeXBlZEFycmF5OgorICAgIHN3aXRjaCAo
YXJyYXlNb2RlLnR5cGUoKSkgewogICAgIGNhc2UgQXJyYXk6OlN0cmluZzoKICAgICAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gU2hvdWxkIGhhdmUgYmVlbiBhIFBoYW50b20o
U3RyaW5nOikKICAgICAgICAgcmV0dXJuOwpAQCAtODg1LDcgKzg4NSw3IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNoZWNrQXJyYXkoTm9kZSogbm9kZSkKICAgICAgICAgbV9qaXQubG9hZDgoTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgSlNDZWxsOjppbmRleGluZ1R5cGVBbmRNaXNj
T2Zmc2V0KCkpLCB0ZW1wR1BSLnZhbHVlKCkpOwogICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAog
ICAgICAgICAgICAgQmFkSW5kZXhpbmdUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChi
YXNlUmVnKSwgMCwKLSAgICAgICAgICAgIGp1bXBTbG93Rm9yVW53YW50ZWRBcnJheU1vZGUodGVt
cEdQUi52YWx1ZSgpLCBub2RlLT5hcnJheU1vZGUoKSkpOworICAgICAgICAgICAganVtcFNsb3dG
b3JVbndhbnRlZEFycmF5TW9kZSh0ZW1wR1BSLnZhbHVlKCksIGFycmF5TW9kZSkpOwogICAgICAg
ICBicmVhazsKICAgICB9CiAgICAgY2FzZSBBcnJheTo6RGlyZWN0QXJndW1lbnRzOgpAQCAtODk0
LDEyICs4OTQsMTYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tBcnJheShOb2RlKiBub2Rl
KQogICAgIGNhc2UgQXJyYXk6OlNjb3BlZEFyZ3VtZW50czoKICAgICAgICAgc3BlY3VsYXRlQ2Vs
bFR5cGVXaXRob3V0VHlwZUZpbHRlcmluZyhub2RlLT5jaGlsZDEoKSwgYmFzZVJlZywgU2NvcGVk
QXJndW1lbnRzVHlwZSk7CiAgICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHNw
ZWN1bGF0ZUNlbGxUeXBlV2l0aG91dFR5cGVGaWx0ZXJpbmcoCi0gICAgICAgICAgICBub2RlLT5j
aGlsZDEoKSwgYmFzZVJlZywKLSAgICAgICAgICAgIHR5cGVGb3JUeXBlZEFycmF5VHlwZShub2Rl
LT5hcnJheU1vZGUoKS50eXBlZEFycmF5VHlwZSgpKSk7CisgICAgZGVmYXVsdDogeworICAgICAg
ICBERkdfQVNTRVJUKG1fZ3JhcGgsIG5vZGUsIGFycmF5TW9kZS5pc1NvbWVUeXBlZEFycmF5Vmll
dygpKTsKKworICAgICAgICBpZiAoYXJyYXlNb2RlLnR5cGUoKSA9PSBBcnJheTo6QW55VHlwZWRB
cnJheSkKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVNvdXJj
ZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIDAsIG1faml0LmJyYW5jaElmTm90VHlwZShiYXNlUmVn
LCBKU1R5cGUoRmlyc3RUeXBlZEFycmF5VHlwZSksIEpTVHlwZShMYXN0VHlwZWRBcnJheVR5cGVF
eGNsdWRpbmdEYXRhVmlldykpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3BlY3VsYXRl
Q2VsbFR5cGVXaXRob3V0VHlwZUZpbHRlcmluZyhub2RlLT5jaGlsZDEoKSwgYmFzZVJlZywgdHlw
ZUZvclR5cGVkQXJyYXlUeXBlKGFycmF5TW9kZS50eXBlZEFycmF5VHlwZSgpKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KKyAgICB9CiAKICAgICBpZiAoaXNFbXB0eS5pc1NldCgpKQogICAgICAg
ICBpc0VtcHR5LmxpbmsoJm1faml0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAppbmRleCA1MmE2OTlmZmM5Y2U2YjgzYWIwNGZjYmQzMDc0M2YwNDY0
Y2E0MjM0Li42YWExOTE4NWY0MGZhMjZjNDY1MjQwODNmYzQ4NTVjNDliYmYyNzFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xNzk0OSwx
MSArMTc5NDksMTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBtX291dC5sb2FkOFplcm9F
eHQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLAogICAgICAgICAgICAgICAg
IG1fb3V0LmNvbnN0SW50MzIoU2NvcGVkQXJndW1lbnRzVHlwZSkpOwogICAgICAgICAgICAgCi0g
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAgIERGR19BU1NF
UlQobV9ncmFwaCwgbV9ub2RlLCBhcnJheU1vZGUuaXNTb21lVHlwZWRBcnJheVZpZXcoKSk7Cisg
ICAgICAgICAgICBpZiAoYXJyYXlNb2RlLnR5cGUoKSA9PSBBcnJheTo6QW55VHlwZWRBcnJheSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gaXNUeXBlZEFycmF5VmlldyhjZWxsKTsKICAgICAgICAg
ICAgIHJldHVybiBtX291dC5lcXVhbCgKICAgICAgICAgICAgICAgICBtX291dC5sb2FkOFplcm9F
eHQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLAogICAgICAgICAgICAgICAg
IG1fb3V0LmNvbnN0SW50MzIodHlwZUZvclR5cGVkQXJyYXlUeXBlKGFycmF5TW9kZS50eXBlZEFy
cmF5VHlwZSgpKSkpOwogICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgTFZh
bHVlIGlzRnVuY3Rpb24oTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVs
bFRvcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxw
ZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4
IDkyY2ExNGU5ZTMzYWUwMjI5MjRjZDQyZDQ2MzFjMjVhYTkwMTc4NzEuLjgwNWFiNjE2YWEwYWM1
ODBlNDZhMzZlNDEyOTBmNzM5MTJjZTkyODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtOTgwLDE0ICs5ODAsMzAgQEAgcHVibGljOgogICAgICAg
ICAgICAgQmVsb3csIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQo
KSksIFRydXN0ZWRJbW0zMihPYmplY3RUeXBlKSk7CiAgICAgfQogICAgIAotICAgIEp1bXAgYnJh
bmNoSWZUeXBlKEdQUlJlZyBjZWxsR1BSLCBKU1R5cGUgdHlwZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBicmFuY2g4KEVxdWFsLCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBl
T2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIodHlwZSkpOworICAgIEp1bXAgYnJhbmNoSWZUeXBlKEdQ
UlJlZyBjZWxsR1BSLCBKU1R5cGUgZmlyc3QsIE9wdGlvbmFsPEpTVHlwZT4gbGFzdCA9IFdURjo6
bnVsbG9wdCkKKyAgICB7CisgICAgICAgIGlmIChsYXN0ICYmICpsYXN0ICE9IGZpcnN0KSB7Cisg
ICAgICAgICAgICBBU1NFUlQoKmxhc3QgPiBmaXJzdCk7CisgICAgICAgICAgICBHUFJSZWcgc2Ny
YXRjaCA9IHNjcmF0Y2hSZWdpc3RlcigpOworICAgICAgICAgICAgbG9hZDgoQWRkcmVzcyhjZWxs
R1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgc2NyYXRjaCk7CisgICAgICAgICAg
ICBzdWIzMihUcnVzdGVkSW1tMzIoZmlyc3QpLCBzY3JhdGNoKTsKKyAgICAgICAgICAgIHJldHVy
biBicmFuY2gzMihCZWxvdywgc2NyYXRjaCwgVHJ1c3RlZEltbTMyKCpsYXN0IC0gZmlyc3QpKTsK
KyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBicmFuY2g4KEVxdWFsLCBBZGRyZXNzKGNlbGxH
UFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoZmlyc3QpKTsK
ICAgICB9Ci0gICAgCi0gICAgSnVtcCBicmFuY2hJZk5vdFR5cGUoR1BSUmVnIGNlbGxHUFIsIEpT
VHlwZSB0eXBlKQorCisgICAgSnVtcCBicmFuY2hJZk5vdFR5cGUoR1BSUmVnIGNlbGxHUFIsIEpT
VHlwZSBmaXJzdCwgT3B0aW9uYWw8SlNUeXBlPiBsYXN0ID0gV1RGOjpudWxsb3B0KQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGJyYW5jaDgoTm90RXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxs
Ojp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMih0eXBlKSk7CisgICAgICAgIGlm
IChsYXN0ICYmICpsYXN0ICE9IGZpcnN0KSB7CisgICAgICAgICAgICBBU1NFUlQoKmxhc3QgPiBm
aXJzdCk7CisgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IHNjcmF0Y2hSZWdpc3RlcigpOwor
ICAgICAgICAgICAgbG9hZDgoQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9m
ZnNldCgpKSwgc2NyYXRjaCk7CisgICAgICAgICAgICBzdWIzMihUcnVzdGVkSW1tMzIoZmlyc3Qp
LCBzY3JhdGNoKTsKKyAgICAgICAgICAgIHJldHVybiBicmFuY2gzMihBYm92ZU9yRXF1YWwsIHNj
cmF0Y2gsIFRydXN0ZWRJbW0zMigqbGFzdCAtIGZpcnN0KSk7CisgICAgICAgIH0KKworICAgICAg
ICByZXR1cm4gYnJhbmNoOChOb3RFcXVhbCwgQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJ
bmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKGZpcnN0KSk7CiAgICAgfQogCiAgICAgLy8g
RklYTUU6IHJlbmFtZSB0aGVzZSB0byBtYWtlIGl0IGNsZWFyIHRoYXQgdGhleSByZXF1aXJlIHRo
ZWlyIGlucHV0IHRvIGJlIGEgY2VsbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
LmgKaW5kZXggYjJlMTYyOWRlYTk5ZjAzMTE3NjhjYmJhZGUxZDI4NDQ3YzhiMjU2OC4uNDU1YjYw
NTQwOWFiZTNlYmZiNDFjM2IyZDZiZWEyNGYzNTZmNTA4NiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNUeXBlLmgKQEAgLTEzMiw2ICsxMzIsNyBAQCBlbnVtIEpTVHlwZSA6IHVpbnQ4
X3QgewogCiBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IEZpcnN0VHlwZWRBcnJheVR5cGUgPSBJ
bnQ4QXJyYXlUeXBlOwogc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBMYXN0VHlwZWRBcnJheVR5
cGUgPSBEYXRhVmlld1R5cGU7CitzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IExhc3RUeXBlZEFy
cmF5VHlwZUV4Y2x1ZGluZ0RhdGFWaWV3ID0gTGFzdFR5cGVkQXJyYXlUeXBlIC0gMTsKIAogLy8g
TGFzdE9iamVjdFR5cGUgc2hvdWxkIGJlIE1heEpTVHlwZSAobm90IExhc3RKU0NPYmplY3RUeXBl
KSBzaW5jZSBlbWJlZGRlcnMgY2FuIGFkZCB0aGVpciBleHRlbmRlZCBvYmplY3QgdHlwZXMgYWZ0
ZXIgdGhlIGVudW1zIGxpc3RlZCBpbiBKU1R5cGUuCiBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90
IEZpcnN0T2JqZWN0VHlwZSA9IE9iamVjdFR5cGU7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5n
ZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRlZTQxNDM3ZTM4Yjg0MTIzY2IzODEyOGVj
ZTc5NDkwZTYyNGI3MzcuLjI5MjkzMWQ1ZDI1ZjQxMGY3MTNiMjVlZDUzMzFjYzNkMDEzMDRkMzAg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMjAtMDUtMDcgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBh
cHBsZS5jb20+CisKKyAgICAgICAgR2V0QXJyYXlMZW5ndGggc2hvdWxkIGJlICJibGVzc2VkIiBk
dXJpbmcgRml4dXAgcGhhc2UgaW4gdGhlIERGRworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNTQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvZ2V0LWFycmF5LWxlbmd0aC1ub2RlLXNob3Vs
ZC1iZS1ibGVzc2VkLWluLWZpeHVwLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMjAt
MDUtMDcgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBicm9r
ZW4gZXhjZXB0aW9uRnV6eiB0ZXN0cy4KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dldC1h
cnJheS1sZW5ndGgtbm9kZS1zaG91bGQtYmUtYmxlc3NlZC1pbi1maXh1cC5qcyBiL0pTVGVzdHMv
c3RyZXNzL2dldC1hcnJheS1sZW5ndGgtbm9kZS1zaG91bGQtYmUtYmxlc3NlZC1pbi1maXh1cC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iYzk4ZDVhOGI1NDc1ZjQxNTczMGYwYzRlOTgzMjBiODY2NjdiZGU2Ci0t
LSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2V0LWFycmF5LWxlbmd0aC1ub2RlLXNo
b3VsZC1iZS1ibGVzc2VkLWluLWZpeHVwLmpzCkBAIC0wLDAgKzEsOCBAQAorZnVuY3Rpb24gZm9v
KCkgeworICBmb3IgKGxldCBpPTA7IGk8MTAwMDA7IGkrKykge30KKyAgZm9yIChjb25zdCBxIG9m
IEFycmF5LnByb3RvdHlwZSkge30KK30KKworZm9yIChsZXQgaT0wOyBpPDEwMDA7IGkrKykgewor
ICBmb28oKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398872</attachid>
            <date>2020-05-08 10:21:45 -0700</date>
            <delta_ts>2020-05-11 12:05:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211540-20200508102144.patch</filename>
            <type>text/plain</type>
            <size>16672</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MTExODM2MmE0YWIwMzdhYmJiZjI1YTgzZTJhNTAzZDc4ZDA2MWQ5Li45MDNhYTEzY2IwYmE1Zjhh
M2JiYWVhMmM3OTViYzdhYjBmZTJjNWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAyMC0wNS0wNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBHZXRBcnJheUxlbmd0aCBzaG91bGQgYmUgImJsZXNzZWQiIGR1cmlu
ZyBGaXh1cCBwaGFzZSBpbiB0aGUgREZHCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTE1NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJZiB3ZSBnb3QgYW4gQXJyYXlNb2RlIGR1cmluZyBieXRlY29kZSBw
YXJzaW5nIGZvci1vZiB0aGF0IGV4cGVjdHMKKyAgICAgICAgdG8gYmUgY29uZmlndXJlZCBkdXJp
bmcgRml4dXAsIHRoZW4gcmlnaHQgbm93IHdlIHdpbGwgZmFpbCBmb3IKKyAgICAgICAgR2V0QXJy
YXlMZW5ndGguIFRoaXMgZml4ZXMgR2V0QXJyYXlMZW5ndGggdG8gcHJvcGVybHkgY2FsbAorICAg
ICAgICBibGVzc0FycmF5T3BlcmF0aW9uIGFuZCBmaXhlcyBjbG9iYmVyaXplIHRvIGtub3cgdGhh
dAorICAgICAgICBHZXRBcnJheUxlbmd0aCBjb3VsZCBoYXZlIGEgRm9yY2VFeGl0IEFycmF5TW9k
ZSBicmllZmx5IGJlZm9yZQorICAgICAgICBiZWluZyBjbGVhbmVkIHVwLgorCisgICAgICAgIFdo
ZW4gYmxlc3NpbmcgR2V0QXJyYXlMZW5ndGggd2UgY2FuIG5vdyBwcm9kdWNlIENoZWNrQXJyYXlz
IHRoYXQKKyAgICAgICAgaGF2ZSBhbiBBbnlUeXBlZEFycmF5IEFycmF5TW9kZTo6VHlwZS4gU28g
dGhpcyBwYXRjaCBleHBhbmRzCisgICAgICAgIENoZWNrQXJyYXkgdG8gcHJvcGVybHkgaGFuZGxl
IHRoYXQuIFRvIGhlbHAgd2l0aCB0aGlzIHdlIGV4cGFuZAorICAgICAgICBicmFuY2hJZlR5cGUg
dG8gaGF2ZSBhIHN0YXJ0aW5nIEpTVHlwZSBhbmQgYW4gb3B0aW9uYWwgZW5kaW5nCisgICAgICAg
IEpTVHlwZS4gQWRkaXRpb25hbGx5LCB0byBwcmV2ZW50IGV4dHJhIGNoZWNrcyBBSSBoYXMgYmVl
biB0YXVnaHQKKyAgICAgICAgdG8gZm9sZCBtb3JlIEFycmF5TW9kZXMgc28gd2Ugc2hvdWxkIGFs
bW9zdCBhbHdheXMgYXZvaWQgbmV3CisgICAgICAgIHJ1bnRpbWUgY2hlY2tzLgorCisgICAgICAg
IExhc3RseSwgaW1wcm92ZSB0aGUgcXVhbGl0eSBvZiByZWZpbmVtZW50IGZvciBHZXRBcnJheUxl
bmd0aC1saWtlIG5vZGVzLgorICAgICAgICBGaXJzdGx5LCBieSBub3RpbmcgdGhhdCBHZXRBcnJh
eUxlbmd0aC1saWtlIG5vZGVzIGRvbid0IGNhcmUgYWJvdXQgVW5kZWNpZGVkbmVzcworICAgICAg
ICB3ZSBjYW4gcHJldmVudCBjb252ZXJ0aW5nIHRvIGEgR2VuZXJpYyBBcnJheU1vZGU6OlR5cGUu
IEFsc28sIEdldEFycmF5TGVuZ3RoIHdvdWxkCisgICAgICAgIHByZXZpb3VzbHkgcGFzcyBpdCdz
IG93biBzcGVjdWxhdGlvbiBmb3IgdGhlIHNwZWN1bGF0aW9uIG9mIHRoZSBpbmRleCwgd2hpY2gg
bG9naWNhbGx5CisgICAgICAgIGRvZXNuJ3QgbWFrZSBzZW5zZS4gU28gdGhpcyBwYXRjaCBhZGRz
IGEgbmV3IGNvbnN0YW50LCB3aGljaCBpcyBTcGVjSW50MzJPbmx5LCB0aGF0CisgICAgICAgIGNh
biBiZSBwYXNzZWQgaWYgYSBERkcgbm9kZSBkb2Vzbid0IGhhdmUgYW4gaW5kZXguCisKKyAgICAg
ICAgKiBkZmcvREZHQXJyYXlNb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpjYW5CZWNvbWVH
ZXRBcnJheUxlbmd0aCk6CisgICAgICAgIChKU0M6OkRGRzo6QXJyYXlNb2RlOjpyZWZpbmUgY29u
c3QpOgorICAgICAgICAoSlNDOjpERkc6OkFycmF5TW9kZTo6YWxyZWFkeUNoZWNrZWQgY29uc3Qp
OgorICAgICAgICAqIGRmZy9ERkdBcnJheU1vZGUuaDoKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJl
cml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRmZy9E
RkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5v
ZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmF0dGVtcHRUb01ha2VHZXRBcnJh
eUxlbmd0aCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tBcnJheSk6CisgICAgICAgICogZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmlzQXJyYXlUeXBlRm9yQ2hlY2tBcnJheSk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVy
cy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmVHlwZSk6CisgICAg
ICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3RUeXBlKToKKyAgICAgICAgKiBy
dW50aW1lL0pTVHlwZS5oOgorCiAyMDIwLTA1LTA3ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxs
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBBcnJheU1vZGUgbm9kZXMgYWZ0ZXIgcjI2MTI2
MApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCmluZGV4IGYzMjI0
NWZmN2UxMWE1MGUxNTEyZDQxNDE4NjA5OTIyMzM1OGRhMDMuLjNmNDgwZmNiZjRlMGVhZjlmM2Q0
NGQzMDU0MGFmYzQyNjE3Y2IxYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQXJyYXlNb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fy
cmF5TW9kZS5jcHAKQEAgLTE4NSw2ICsxODUsOCBAQCBBcnJheU1vZGUgQXJyYXlNb2RlOjpmcm9t
T2JzZXJ2ZWQoY29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiBsb2NrZXIsIEFycmF5UHJvZmlsZQog
CiBzdGF0aWMgYm9vbCBjYW5CZWNvbWVHZXRBcnJheUxlbmd0aChHcmFwaCYgZ3JhcGgsIE5vZGUq
IG5vZGUpCiB7CisgICAgaWYgKG5vZGUtPm9wKCkgPT0gR2V0QXJyYXlMZW5ndGgpCisgICAgICAg
IHJldHVybiB0cnVlOwogICAgIGlmIChub2RlLT5vcCgpICE9IEdldEJ5SWQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBhdXRvIHVpZCA9IG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKS51
aWQoKTsKQEAgLTI0MCwxMiArMjQyLDE2IEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZSgK
ICAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZUFuZENvbnZlcnNpb24oQXJyYXk6OkRvdWJsZSwg
QXJyYXk6OkNvbnZlcnQpOwogICAgICAgICByZXR1cm4gd2l0aFR5cGVBbmRDb252ZXJzaW9uKEFy
cmF5OjpDb250aWd1b3VzLCBBcnJheTo6Q29udmVydCk7CiAgICAgY2FzZSBBcnJheTo6VW5kZWNp
ZGVkOiB7CisgICAgICAgIC8vIEFzIGxvbmcgYXMgd2UgaGF2ZSBhIEpTQXJyYXkgZ2V0dGluZyBp
dHMgbGVuZ3RoIHNob3VsZG4ndCByZXF1aXJlIGFueSBzYW5lIGNoYWlubmVzcy4KKyAgICAgICAg
aWYgKGNhbkJlY29tZUdldEFycmF5TGVuZ3RoKGdyYXBoLCBub2RlKSAmJiBpc0pTQXJyYXkoKSkK
KyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKwogICAgICAgICAvLyBJZiB3ZSBoYXZlIGFuIE9y
aWdpbmFsQXJyYXkgYW5kIHRoZSBKU0FycmF5IHByb3RvdHlwZSBjaGFpbiBpcyBzYW5lLAogICAg
ICAgICAvLyBhbnkgaW5kZXhlZCBhY2Nlc3MgYWx3YXlzIHJldHVybiB1bmRlZmluZWQuIFdlIGhh
dmUgYSBmYXN0IHBhdGggZm9yIHRoYXQuCiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKTsKICAg
ICAgICAgU3RydWN0dXJlKiBhcnJheVByb3RvdHlwZVN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+
YXJyYXlQcm90b3R5cGUoKS0+c3RydWN0dXJlKGdyYXBoLm1fdm0pOwogICAgICAgICBTdHJ1Y3R1
cmUqIG9iamVjdFByb3RvdHlwZVN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90
eXBlKCktPnN0cnVjdHVyZShncmFwaC5tX3ZtKTsKLSAgICAgICAgaWYgKChub2RlLT5vcCgpID09
IEdldEJ5VmFsIHx8IGNhbkJlY29tZUdldEFycmF5TGVuZ3RoKGdyYXBoLCBub2RlKSkKKyAgICAg
ICAgaWYgKG5vZGUtPm9wKCkgPT0gR2V0QnlWYWwKICAgICAgICAgICAgICYmIGlzSlNBcnJheVdp
dGhPcmlnaW5hbFN0cnVjdHVyZSgpCiAgICAgICAgICAgICAmJiAhZ3JhcGguaGFzRXhpdFNpdGUo
bm9kZS0+b3JpZ2luLnNlbWFudGljLCBPdXRPZkJvdW5kcykKICAgICAgICAgICAgICYmIGFycmF5
UHJvdG90eXBlU3RydWN0dXJlLT50cmFuc2l0aW9uV2F0Y2hwb2ludFNldElzU3RpbGxWYWxpZCgp
CkBAIC0yOTcsNyArMzAzLDcgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6cmVmaW5lKAogICAgICAg
ICBpZiAoaXNEaXJlY3RBcmd1bWVudHNTcGVjdWxhdGlvbihiYXNlKSB8fCBpc1Njb3BlZEFyZ3Vt
ZW50c1NwZWN1bGF0aW9uKGJhc2UpKSB7CiAgICAgICAgICAgICAvLyBIYW5kbGUgb3V0LW9mLWJv
dW5kcyBhY2Nlc3NlcyBhcyBnZW5lcmljIGFjY2Vzc2VzLgogICAgICAgICAgICAgQXJyYXk6OlR5
cGUgdHlwZSA9IGlzRGlyZWN0QXJndW1lbnRzU3BlY3VsYXRpb24oYmFzZSkgPyBBcnJheTo6RGly
ZWN0QXJndW1lbnRzIDogQXJyYXk6OlNjb3BlZEFyZ3VtZW50czsKLSAgICAgICAgICAgIGlmIChn
cmFwaC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50aWMsIE91dE9mQm91bmRzKSB8fCAh
aXNJbkJvdW5kcygpKSB7CisgICAgICAgICAgICBpZiAoKGdyYXBoLmhhc0V4aXRTaXRlKG5vZGUt
Pm9yaWdpbi5zZW1hbnRpYywgT3V0T2ZCb3VuZHMpIHx8ICFpc0luQm91bmRzKCkpICYmICFjYW5C
ZWNvbWVHZXRBcnJheUxlbmd0aChncmFwaCwgbm9kZSkpIHsKICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogU3VwcG9ydCBPT0IgYWNjZXNzIGZvciBTY29wZWRBcmd1bWVudHMuCiAgICAgICAgICAg
ICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTU5Ngog
ICAgICAgICAgICAgICAgIGlmICh0eXBlID09IEFycmF5OjpEaXJlY3RBcmd1bWVudHMpCkBAIC00
MjAsNiArNDI2LDEyIEBAIGJvb2wgQXJyYXlNb2RlOjphbHJlYWR5Q2hlY2tlZChHcmFwaCYgZ3Jh
cGgsIE5vZGUqIG5vZGUsIGNvbnN0IEFic3RyYWN0VmFsdWUmIHZhCiB7CiAgICAgQVNTRVJUKGlz
U3BlY2lmaWMoKSk7CiAKKyAgICBpZiAoaXNTb21lVHlwZWRBcnJheVZpZXcoKSkgeworICAgICAg
ICBpZiAodHlwZSgpID09IEFycmF5OjpBbnlUeXBlZEFycmF5KQorICAgICAgICAgICAgcmV0dXJu
IHZhbHVlLmlzVHlwZShTcGVjVHlwZWRBcnJheVZpZXcpOworICAgICAgICByZXR1cm4gdmFsdWUu
aXNUeXBlKHNwZWN1bGF0aW9uRnJvbVR5cGVkQXJyYXlUeXBlKHR5cGVkQXJyYXlUeXBlKCkpKTsK
KyAgICB9CisKICAgICBJbmRleGluZ1R5cGUgaW5kZXhpbmdNb2RlTWFzayA9IElzQXJyYXkgfCBJ
bmRleGluZ1NoYXBlTWFzazsKICAgICBpZiAoYWN0aW9uKCkgPT0gQXJyYXk6OldyaXRlKQogICAg
ICAgICBpbmRleGluZ01vZGVNYXNrIHw9IENvcHlPbldyaXRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQXJyYXlNb2RlLmgKaW5kZXggZmRiNzFlNzY0ZDA1NjAyNjEzMTJlM2I2YTlmMWUz
OTVmNWI5MjJlYi4uYzMwNDY1NTRiYmNiMTE5NmUwMTU3ODA2MDUyMGQ2MGNmMTI4MDNiOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5oCkBAIC0yMzcsNiArMjM3LDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gQXJyYXlNb2RlKHR5cGUsIGFycmF5Q2xhc3MoKSwg
c3BlY3VsYXRpb24oKSwgY29udmVyc2lvbiwgYWN0aW9uKCkpOwogICAgIH0KICAgICAKKyAgICBz
dGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIHVudXNlZEluZGV4U3BlY3VsYXRlZFR5cGUg
PSBTcGVjSW50MzJPbmx5OwogICAgIEFycmF5TW9kZSByZWZpbmUoR3JhcGgmLCBOb2RlKiwgU3Bl
Y3VsYXRlZFR5cGUgYmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZh
bHVlID0gU3BlY05vbmUpIGNvbnN0OwogICAgIAogICAgIGJvb2wgYWxyZWFkeUNoZWNrZWQoR3Jh
cGgmLCBOb2RlKiwgY29uc3QgQWJzdHJhY3RWYWx1ZSYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCA1NDU3MjA1MWFhYjg2N2RhZjA3ZDJhODlj
YzdkNjIwM2FmZGFiYmVlLi42YzE0YTI1Y2Q3NTQzODlkMGVhZDNiZTBlNjcwMjhiMTlkYmE2MWI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMTM2NSw2
ICsxMzY1LDExIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNv
bnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgICAgICBkZWYoSGVh
cExvY2F0aW9uKEFycmF5TGVuZ3RoTG9jLCBNaXNjRmllbGRzLCBub2RlLT5jaGlsZDEoKSksIExh
enlOb2RlKG5vZGUpKTsKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBjYXNlIEFycmF5
OjpGb3JjZUV4aXQ6IHsKKyAgICAgICAgICAgIHdyaXRlKFNpZGVTdGF0ZSk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNT
RVJUKG1vZGUuaXNTb21lVHlwZWRBcnJheVZpZXcoKSk7CiAgICAgICAgICAgICByZWFkKE1pc2NG
aWVsZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBo
YXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5k
ZXggODRkMzllMjkwZWY1YTdmMzY2ZDg5ZTcwNGI1ODFmMDE2NDQyNTJiOS4uMzE0NjU5NDUyYTg4
MmYyNzUyYzUxYjg5MDVhODRmMzc4N2NjMjZmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0yMDI1LDYgKzIwMjUsMTMgQEAgcHJpdmF0ZToKICAg
ICAgICAgfQogCiAgICAgICAgIGNhc2UgR2V0QXJyYXlMZW5ndGg6IHsKKyAgICAgICAgICAgIEFy
cmF5TW9kZSBhcnJheU1vZGUgPSBub2RlLT5hcnJheU1vZGUoKS5yZWZpbmUobV9ncmFwaCwgbm9k
ZSwgbm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKSwgQXJyYXlNb2RlOjp1bnVzZWRJbmRleFNw
ZWN1bGF0ZWRUeXBlKTsKKyAgICAgICAgICAgIC8vIFdlIGRvbid0IGtub3cgaG93IHRvIGhhbmRs
ZSBnZW5lcmljIGFuZCB3ZSBvbmx5IGVtaXQgdGhpcyBpbiB0aGUgUGFyc2VyIHdoZW4gd2UgaGF2
ZSBjaGVja2VkIHRoZSB2YWx1ZSBpcyBhbiBBcnJheS9UeXBlZEFycmF5LgorICAgICAgICAgICAg
aWYgKGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkdlbmVyaWMpCisgICAgICAgICAgICAgICAg
YXJyYXlNb2RlID0gYXJyYXlNb2RlLndpdGhUeXBlKEFycmF5OjpGb3JjZUV4aXQpOworICAgICAg
ICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKGFycmF5TW9kZSk7CisgICAgICAgICAgICBibGVzc0Fy
cmF5T3BlcmF0aW9uKG5vZGUtPmNoaWxkMSgpLCBFZGdlKCksIG5vZGUtPmNoaWxkMigpKTsKKwog
ICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zODMxLDcgKzM4MzgsNyBAQCBwcml2YXRlOgog
ICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgYXJyYXlNb2RlID0gYXJyYXlNb2RlLnJl
ZmluZSgKLSAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUsIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0
aW9uKCksIG5vZGUtPnByZWRpY3Rpb24oKSk7CisgICAgICAgICAgICBtX2dyYXBoLCBub2RlLCBu
b2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpLCBBcnJheU1vZGU6OnVudXNlZEluZGV4U3BlY3Vs
YXRlZFR5cGUpOwogICAgICAgICAgICAgCiAgICAgICAgIGlmIChhcnJheU1vZGUudHlwZSgpID09
IEFycmF5OjpHZW5lcmljKSB7CiAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgaW5wdXQgaXMg
c29tZXRoaW5nIHRoYXQgd2UgY2FuJ3QgZ2V0IGFycmF5IGxlbmd0aCBmb3IsIGJ1dCBmb3Igd2hp
Y2ggd2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKaW5kZXggZmEyOGYzOTMwZDRkODJlZTY4Y2QwMjg3MGZjMTY4N2QwMmMyNTkyYy4uYjE0MjZj
ZGNhNjFlNTM2OGNjZWYxNmJjZjY1NTcwNTlmN2Y5MTllYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTgzMiwxMyArODMyLDE0IEBA
IEpJVENvbXBpbGVyOjpKdW1wTGlzdCBTcGVjdWxhdGl2ZUpJVDo6anVtcFNsb3dGb3JVbndhbnRl
ZEFycmF5TW9kZShHUFJSZWcgdGVtcEdQCiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJy
YXkoTm9kZSogbm9kZSkKIHsKLSAgICBBU1NFUlQobm9kZS0+YXJyYXlNb2RlKCkuaXNTcGVjaWZp
YygpKTsKLSAgICBBU1NFUlQoIW5vZGUtPmFycmF5TW9kZSgpLmRvZXNDb252ZXJzaW9uKCkpOwor
ICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBub2RlLT5hcnJheU1vZGUoKTsKKyAgICBBU1NFUlQo
YXJyYXlNb2RlLmlzU3BlY2lmaWMoKSk7CisgICAgQVNTRVJUKCFhcnJheU1vZGUuZG9lc0NvbnZl
cnNpb24oKSk7CiAgICAgCiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2Rl
LT5jaGlsZDEoKSk7CiAgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOwogICAgIAotICAg
IGlmIChub2RlLT5hcnJheU1vZGUoKS5hbHJlYWR5Q2hlY2tlZChtX2ppdC5ncmFwaCgpLCBub2Rl
LCBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpKSkgeworICAgIGlmIChhcnJheU1vZGUu
YWxyZWFkeUNoZWNrZWQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbV9zdGF0ZS5mb3JOb2RlKG5vZGUt
PmNoaWxkMSgpKSkpIHsKICAgICAgICAgLy8gV2UgY2FuIHB1cmdlIEVtcHR5IGNoZWNrIGNvbXBs
ZXRlbHkgaW4gdGhpcyBjYXNlIG9mIENoZWNrQXJyYXlPckVtcHR5IHNpbmNlIENlbGxVc2Ugb25s
eSBhY2NlcHRzIFNwZWNDZWxsIHwgU3BlY0VtcHR5LgogICAgICAgICBBU1NFUlQodHlwZUZpbHRl
ckZvcihub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpICYgU3BlY0VtcHR5KTsKICAgICAgICAgbm9S
ZXN1bHQobV9jdXJyZW50Tm9kZSk7CkBAIC04NDcsNyArODQ4LDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y2hlY2tBcnJheShOb2RlKiBub2RlKQogCiAgICAgT3B0aW9uYWw8R1BSVGVtcG9yYXJ5
PiB0ZW1wOwogICAgIE9wdGlvbmFsPEdQUlJlZz4gdGVtcEdQUjsKLSAgICBzd2l0Y2ggKG5vZGUt
PmFycmF5TW9kZSgpLnR5cGUoKSkgeworICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgewog
ICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKICAgICBjYXNl
IEFycmF5OjpDb250aWd1b3VzOgpAQCAtODcxLDggKzg3Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNoZWNrQXJyYXkoTm9kZSogbm9kZSkKICAgICB9CiAjZW5kaWYKIAotICAgIHN3aXRjaCAo
bm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7Ci0gICAgY2FzZSBBcnJheTo6QW55VHlwZWRBcnJh
eToKKyAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsKICAgICBjYXNlIEFycmF5OjpTdHJp
bmc6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIFNob3VsZCBoYXZl
IGJlZW4gYSBQaGFudG9tKFN0cmluZzopCiAgICAgICAgIHJldHVybjsKQEAgLTg4NSw3ICs4ODUs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FycmF5KE5vZGUqIG5vZGUpCiAgICAgICAg
IG1faml0LmxvYWQ4KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEpTQ2VsbDo6aW5k
ZXhpbmdUeXBlQW5kTWlzY09mZnNldCgpKSwgdGVtcEdQUi52YWx1ZSgpKTsKICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjaygKICAgICAgICAgICAgIEJhZEluZGV4aW5nVHlwZSwgSlNWYWx1ZVNvdXJj
ZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIDAsCi0gICAgICAgICAgICBqdW1wU2xvd0ZvclVud2Fu
dGVkQXJyYXlNb2RlKHRlbXBHUFIudmFsdWUoKSwgbm9kZS0+YXJyYXlNb2RlKCkpKTsKKyAgICAg
ICAgICAgIGp1bXBTbG93Rm9yVW53YW50ZWRBcnJheU1vZGUodGVtcEdQUi52YWx1ZSgpLCBhcnJh
eU1vZGUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQXJyYXk6OkRpcmVjdEFy
Z3VtZW50czoKQEAgLTg5NCwxMiArODk0LDE2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNr
QXJyYXkoTm9kZSogbm9kZSkKICAgICBjYXNlIEFycmF5OjpTY29wZWRBcmd1bWVudHM6CiAgICAg
ICAgIHNwZWN1bGF0ZUNlbGxUeXBlV2l0aG91dFR5cGVGaWx0ZXJpbmcobm9kZS0+Y2hpbGQxKCks
IGJhc2VSZWcsIFNjb3BlZEFyZ3VtZW50c1R5cGUpOwogICAgICAgICBicmVhazsKLSAgICBkZWZh
dWx0OgotICAgICAgICBzcGVjdWxhdGVDZWxsVHlwZVdpdGhvdXRUeXBlRmlsdGVyaW5nKAotICAg
ICAgICAgICAgbm9kZS0+Y2hpbGQxKCksIGJhc2VSZWcsCi0gICAgICAgICAgICB0eXBlRm9yVHlw
ZWRBcnJheVR5cGUobm9kZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5cGUoKSkpOworICAgIGRl
ZmF1bHQ6IHsKKyAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBub2RlLCBhcnJheU1vZGUuaXNT
b21lVHlwZWRBcnJheVZpZXcoKSk7CisKKyAgICAgICAgaWYgKGFycmF5TW9kZS50eXBlKCkgPT0g
QXJyYXk6OkFueVR5cGVkQXJyYXkpCisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5
cGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJhc2VSZWcpLCAwLCBtX2ppdC5icmFuY2hJ
Zk5vdFR5cGUoYmFzZVJlZywgSlNUeXBlKEZpcnN0VHlwZWRBcnJheVR5cGUpLCBKU1R5cGUoTGFz
dFR5cGVkQXJyYXlUeXBlRXhjbHVkaW5nRGF0YVZpZXcpKSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHNwZWN1bGF0ZUNlbGxUeXBlV2l0aG91dFR5cGVGaWx0ZXJpbmcobm9kZS0+Y2hpbGQx
KCksIGJhc2VSZWcsIHR5cGVGb3JUeXBlZEFycmF5VHlwZShhcnJheU1vZGUudHlwZWRBcnJheVR5
cGUoKSkpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgfQogCiAgICAgaWYgKGlzRW1wdHku
aXNTZXQoKSkKICAgICAgICAgaXNFbXB0eS5saW5rKCZtX2ppdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggNTJhNjk5ZmZjOWNlNmI4M2Fi
MDRmY2JkMzA3NDNmMDQ2NGNhNDIzNC4uNmFhMTkxODVmNDBmYTI2YzQ2NTI0MDgzZmM0ODU1YzQ5
YmJmMjcxZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcApAQCAtMTc5NDksMTEgKzE3OTQ5LDE1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAg
bV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwK
ICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKFNjb3BlZEFyZ3VtZW50c1R5cGUpKTsK
ICAgICAgICAgICAgIAotICAgICAgICBkZWZhdWx0OgorICAgICAgICBkZWZhdWx0OiB7CisgICAg
ICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwgYXJyYXlNb2RlLmlzU29tZVR5cGVk
QXJyYXlWaWV3KCkpOworICAgICAgICAgICAgaWYgKGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6
OkFueVR5cGVkQXJyYXkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGlzVHlwZWRBcnJheVZpZXco
Y2VsbCk7CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwoCiAgICAgICAgICAgICAgICAg
bV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwK
ICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKHR5cGVGb3JUeXBlZEFycmF5VHlwZShh
cnJheU1vZGUudHlwZWRBcnJheVR5cGUoKSkpKTsKICAgICAgICAgfQorICAgICAgICB9CiAgICAg
fQogICAgIAogICAgIExWYWx1ZSBpc0Z1bmN0aW9uKExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlw
ZSB0eXBlID0gU3BlY0Z1bGxUb3ApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJs
eUhlbHBlcnMuaAppbmRleCA5MmNhMTRlOWUzM2FlMDIyOTI0Y2Q0MmQ0NjMxYzI1YWE5MDE3ODcx
Li44MDVhYjYxNmFhMGFjNTgwZTQ2YTM2ZTQxMjkwZjczOTEyY2U5Mjg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTk4MCwxNCArOTgwLDMwIEBA
IHB1YmxpYzoKICAgICAgICAgICAgIEJlbG93LCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlw
ZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoT2JqZWN0VHlwZSkpOwogICAgIH0KICAg
ICAKLSAgICBKdW1wIGJyYW5jaElmVHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIHR5cGUpCi0g
ICAgewotICAgICAgICByZXR1cm4gYnJhbmNoOChFcXVhbCwgQWRkcmVzcyhjZWxsR1BSLCBKU0Nl
bGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKHR5cGUpKTsKKyAgICBKdW1w
IGJyYW5jaElmVHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIGZpcnN0LCBPcHRpb25hbDxKU1R5
cGU+IGxhc3QgPSBXVEY6Om51bGxvcHQpCisgICAgeworICAgICAgICBpZiAobGFzdCAmJiAqbGFz
dCAhPSBmaXJzdCkgeworICAgICAgICAgICAgQVNTRVJUKCpsYXN0ID4gZmlyc3QpOworICAgICAg
ICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBzY3JhdGNoUmVnaXN0ZXIoKTsKKyAgICAgICAgICAgIGxv
YWQ4KEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIHNjcmF0
Y2gpOworICAgICAgICAgICAgc3ViMzIoVHJ1c3RlZEltbTMyKGZpcnN0KSwgc2NyYXRjaCk7Cisg
ICAgICAgICAgICByZXR1cm4gYnJhbmNoMzIoQmVsb3csIHNjcmF0Y2gsIFRydXN0ZWRJbW0zMigq
bGFzdCAtIGZpcnN0KSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYnJhbmNoOChFcXVh
bCwgQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3Rl
ZEltbTMyKGZpcnN0KSk7CiAgICAgfQotICAgIAotICAgIEp1bXAgYnJhbmNoSWZOb3RUeXBlKEdQ
UlJlZyBjZWxsR1BSLCBKU1R5cGUgdHlwZSkKKworICAgIEp1bXAgYnJhbmNoSWZOb3RUeXBlKEdQ
UlJlZyBjZWxsR1BSLCBKU1R5cGUgZmlyc3QsIE9wdGlvbmFsPEpTVHlwZT4gbGFzdCA9IFdURjo6
bnVsbG9wdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBicmFuY2g4KE5vdEVxdWFsLCBBZGRyZXNz
KGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIodHlw
ZSkpOworICAgICAgICBpZiAobGFzdCAmJiAqbGFzdCAhPSBmaXJzdCkgeworICAgICAgICAgICAg
QVNTRVJUKCpsYXN0ID4gZmlyc3QpOworICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBzY3Jh
dGNoUmVnaXN0ZXIoKTsKKyAgICAgICAgICAgIGxvYWQ4KEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxs
Ojp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIHNjcmF0Y2gpOworICAgICAgICAgICAgc3ViMzIoVHJ1
c3RlZEltbTMyKGZpcnN0KSwgc2NyYXRjaCk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoMzIo
QWJvdmVPckVxdWFsLCBzY3JhdGNoLCBUcnVzdGVkSW1tMzIoKmxhc3QgLSBmaXJzdCkpOworICAg
ICAgICB9CisKKyAgICAgICAgcmV0dXJuIGJyYW5jaDgoTm90RXF1YWwsIEFkZHJlc3MoY2VsbEdQ
UiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihmaXJzdCkpOwog
ICAgIH0KIAogICAgIC8vIEZJWE1FOiByZW5hbWUgdGhlc2UgdG8gbWFrZSBpdCBjbGVhciB0aGF0
IHRoZXkgcmVxdWlyZSB0aGVpciBpbnB1dCB0byBiZSBhIGNlbGwuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVHlwZS5oCmluZGV4IGIyZTE2MjlkZWE5OWYwMzExNzY4Y2JiYWRlMWQyODQ0
N2M4YjI1NjguLjQ1NWI2MDU0MDlhYmUzZWJmYjQxYzNiMmQ2YmVhMjRmMzU2ZjUwODYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCkBAIC0xMzIsNiArMTMyLDcgQEAgZW51
bSBKU1R5cGUgOiB1aW50OF90IHsKIAogc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBGaXJzdFR5
cGVkQXJyYXlUeXBlID0gSW50OEFycmF5VHlwZTsKIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3Qg
TGFzdFR5cGVkQXJyYXlUeXBlID0gRGF0YVZpZXdUeXBlOworc3RhdGljIGNvbnN0ZXhwciB1aW50
MzJfdCBMYXN0VHlwZWRBcnJheVR5cGVFeGNsdWRpbmdEYXRhVmlldyA9IExhc3RUeXBlZEFycmF5
VHlwZSAtIDE7CiAKIC8vIExhc3RPYmplY3RUeXBlIHNob3VsZCBiZSBNYXhKU1R5cGUgKG5vdCBM
YXN0SlNDT2JqZWN0VHlwZSkgc2luY2UgZW1iZWRkZXJzIGNhbiBhZGQgdGhlaXIgZXh0ZW5kZWQg
b2JqZWN0IHR5cGVzIGFmdGVyIHRoZSBlbnVtcyBsaXN0ZWQgaW4gSlNUeXBlLgogc3RhdGljIGNv
bnN0ZXhwciB1aW50MzJfdCBGaXJzdE9iamVjdFR5cGUgPSBPYmplY3RUeXBlOwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA0ZWU0MTQzN2Uz
OGI4NDEyM2NiMzgxMjhlY2U3OTQ5MGU2MjRiNzM3Li4yOTI5MzFkNWQyNWY0MTBmNzEzYjI1ZWQ1
MzMxY2MzZDAxMzA0ZDMwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA1LTA3ICBLZWl0aCBNaWxsZXIg
IDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIEdldEFycmF5TGVuZ3RoIHNob3Vs
ZCBiZSAiYmxlc3NlZCIgZHVyaW5nIEZpeHVwIHBoYXNlIGluIHRoZSBERkcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTU0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2dldC1hcnJheS1s
ZW5ndGgtbm9kZS1zaG91bGQtYmUtYmxlc3NlZC1pbi1maXh1cC5qczogQWRkZWQuCisgICAgICAg
IChmb28pOgorCiAyMDIwLTA1LTA3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaXggYnJva2VuIGV4Y2VwdGlvbkZ1enogdGVzdHMuCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9nZXQtYXJyYXktbGVuZ3RoLW5vZGUtc2hvdWxkLWJlLWJsZXNzZWQtaW4tZml4
dXAuanMgYi9KU1Rlc3RzL3N0cmVzcy9nZXQtYXJyYXktbGVuZ3RoLW5vZGUtc2hvdWxkLWJlLWJs
ZXNzZWQtaW4tZml4dXAuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM5OGQ1YThiNTQ3NWY0MTU3MzBmMGM0ZTk4
MzIwYjg2NjY3YmRlNgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2dldC1hcnJh
eS1sZW5ndGgtbm9kZS1zaG91bGQtYmUtYmxlc3NlZC1pbi1maXh1cC5qcwpAQCAtMCwwICsxLDgg
QEAKK2Z1bmN0aW9uIGZvbygpIHsKKyAgZm9yIChsZXQgaT0wOyBpPDEwMDAwOyBpKyspIHt9Cisg
IGZvciAoY29uc3QgcSBvZiBBcnJheS5wcm90b3R5cGUpIHt9Cit9CisKK2ZvciAobGV0IGk9MDsg
aTwxMDAwOyBpKyspIHsKKyAgZm9vKCk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399041</attachid>
            <date>2020-05-11 12:05:34 -0700</date>
            <delta_ts>2020-05-11 12:15:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211540-20200511120533.patch</filename>
            <type>text/plain</type>
            <size>20047</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MTExODM2MmE0YWIwMzdhYmJiZjI1YTgzZTJhNTAzZDc4ZDA2MWQ5Li5jZWEzZDIyZGIzMThiMjg3
OWU1NWZlMGQ0ODYzODM5ZWNkYmZhNDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NSBAQAorMjAyMC0wNS0xMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBHZXRBcnJheUxlbmd0aCBzaG91bGQgYmUgImJsZXNzZWQiIGR1cmlu
ZyBGaXh1cCBwaGFzZSBpbiB0aGUgREZHCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTE1NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJZiB3ZSBnb3QgYW4gQXJyYXlNb2RlIGR1cmluZyBieXRlY29kZSBw
YXJzaW5nIGZvci1vZiB0aGF0IGV4cGVjdHMKKyAgICAgICAgdG8gYmUgY29uZmlndXJlZCBkdXJp
bmcgRml4dXAsIHRoZW4gcmlnaHQgbm93IHdlIHdpbGwgZmFpbCBmb3IKKyAgICAgICAgR2V0QXJy
YXlMZW5ndGguIFRoaXMgZml4ZXMgR2V0QXJyYXlMZW5ndGggdG8gcHJvcGVybHkgY2FsbAorICAg
ICAgICBibGVzc0FycmF5T3BlcmF0aW9uIGFuZCBmaXhlcyBjbG9iYmVyaXplIHRvIGtub3cgdGhh
dAorICAgICAgICBHZXRBcnJheUxlbmd0aCBjb3VsZCBoYXZlIGEgRm9yY2VFeGl0IEFycmF5TW9k
ZSBicmllZmx5IGJlZm9yZQorICAgICAgICBiZWluZyBjbGVhbmVkIHVwLgorCisgICAgICAgIFdo
ZW4gYmxlc3NpbmcgR2V0QXJyYXlMZW5ndGggd2UgY2FuIG5vdyBwcm9kdWNlIENoZWNrQXJyYXlz
IHRoYXQKKyAgICAgICAgaGF2ZSBhbiBBbnlUeXBlZEFycmF5IEFycmF5TW9kZTo6VHlwZS4gU28g
dGhpcyBwYXRjaCBleHBhbmRzCisgICAgICAgIENoZWNrQXJyYXkgdG8gcHJvcGVybHkgaGFuZGxl
IHRoYXQuIFRvIGhlbHAgd2l0aCB0aGlzIHdlIGV4cGFuZAorICAgICAgICBicmFuY2hJZlR5cGUg
dG8gaGF2ZSBhIHN0YXJ0aW5nIEpTVHlwZSBhbmQgYW4gb3B0aW9uYWwgZW5kaW5nCisgICAgICAg
IEpTVHlwZS4gQWRkaXRpb25hbGx5LCB0byBwcmV2ZW50IGV4dHJhIGNoZWNrcyBBSSBoYXMgYmVl
biB0YXVnaHQKKyAgICAgICAgdG8gZm9sZCBtb3JlIEFycmF5TW9kZXMgc28gd2Ugc2hvdWxkIGFs
bW9zdCBhbHdheXMgYXZvaWQgbmV3CisgICAgICAgIHJ1bnRpbWUgY2hlY2tzLgorCisgICAgICAg
IExhc3RseSwgaW1wcm92ZSB0aGUgcXVhbGl0eSBvZiByZWZpbmVtZW50IGZvciBHZXRBcnJheUxl
bmd0aC1saWtlIG5vZGVzLgorICAgICAgICBGaXJzdGx5LCBieSBub3RpbmcgdGhhdCBHZXRBcnJh
eUxlbmd0aC1saWtlIG5vZGVzIGRvbid0IGNhcmUgYWJvdXQgVW5kZWNpZGVkbmVzcworICAgICAg
ICB3ZSBjYW4gcHJldmVudCBjb252ZXJ0aW5nIHRvIGEgR2VuZXJpYyBBcnJheU1vZGU6OlR5cGUu
IEFsc28sIEdldEFycmF5TGVuZ3RoIHdvdWxkCisgICAgICAgIHByZXZpb3VzbHkgcGFzcyBpdCdz
IG93biBzcGVjdWxhdGlvbiBmb3IgdGhlIHNwZWN1bGF0aW9uIG9mIHRoZSBpbmRleCwgd2hpY2gg
bG9naWNhbGx5CisgICAgICAgIGRvZXNuJ3QgbWFrZSBzZW5zZS4gU28gdGhpcyBwYXRjaCBhZGRz
IGEgbmV3IGNvbnN0YW50LCB3aGljaCBpcyBTcGVjSW50MzJPbmx5LCB0aGF0CisgICAgICAgIGNh
biBiZSBwYXNzZWQgaWYgYSBERkcgbm9kZSBkb2Vzbid0IGhhdmUgYW4gaW5kZXguCisKKyAgICAg
ICAgKiBhc3NlbWJsZXIvdGVzdG1hc20uY3BwOgorICAgICAgICAoSlNDOjp0ZXN0QnJhbmNoSWZU
eXBlKToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5jaElmTm90VHlwZSk6CisgICAgICAgIChKU0M6
OnJ1bik6CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6Y2FuQmVjb21lR2V0QXJyYXlMZW5ndGgpOgorICAgICAgICAoSlNDOjpERkc6OkFycmF5TW9k
ZTo6cmVmaW5lIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpBcnJheU1vZGU6OmFscmVhZHlD
aGVja2VkIGNvbnN0KToKKyAgICAgICAgKiBkZmcvREZHQXJyYXlNb2RlLmg6CisgICAgICAgICog
ZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAg
ICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQ
aGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjphdHRlbXB0
VG9NYWtlR2V0QXJyYXlMZW5ndGgpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJyYXkpOgorICAg
ICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjppc0FycmF5VHlwZUZvckNoZWNrQXJyYXkpOgorICAgICAgICAqIGppdC9B
c3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJ
ZlR5cGUpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90VHlwZSk6
CisgICAgICAgICogcnVudGltZS9KU1R5cGUuaDoKKwogMjAyMC0wNS0wNyAgS2VpdGggTWlsbGVy
ICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggQXJyYXlNb2RlIG5vZGVz
IGFmdGVyIHIyNjEyNjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFz
bS5jcHAKaW5kZXggNGM5ZjFkZTgxOTM3OTNiNzA5OGJmMGI5YTk5ZDEwMzcxY2I5MTY3My4uMGYy
NjNlYWJkMmFhMWZiNmEwOGRiZTZlOTRmZTA1ZjUwMGQxZjFhZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKQEAgLTIxNjEsNiArMjE2MSw3NCBAQCBz
dGF0aWMgdm9pZCB0ZXN0Q2FnZVByZXNlcnZlc1BBQ0ZhaWx1cmVCaXQoKQogI2VuZGlmCiB9CiAK
K3N0YXRpYyB2b2lkIHRlc3RCcmFuY2hJZlR5cGUoKQoreworICAgIHVzaW5nIEpTQzo6SlNUeXBl
OworICAgIHN0cnVjdCBDZWxsTGlrZSB7CisgICAgICAgIHVpbnQzMl90IHN0cnVjdHVyZUlEOwor
ICAgICAgICB1aW50OF90IGluZGV4aW5nVHlwZTsKKyAgICAgICAgSlNUeXBlIHR5cGU7CisgICAg
fTsKKyAgICBDSEVDS19FUShKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpLCBPQkpFQ1RfT0ZG
U0VUT0YoQ2VsbExpa2UsIHR5cGUpKTsKKworICAgIGF1dG8gaXNUeXBlID0gY29tcGlsZShbXSAo
Q0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsK
KyAgICAgICAgYXV0byBpc1R5cGUgPSBqaXQuYnJhbmNoSWZUeXBlKEdQUkluZm86OmFyZ3VtZW50
R1BSMCwgSlNUeXBlKEZpcnN0VHlwZWRBcnJheVR5cGUpLCBKU1R5cGUoTGFzdFR5cGVkQXJyYXlU
eXBlRXhjbHVkaW5nRGF0YVZpZXcpKTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoZmFsc2UpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgIGF1
dG8gZG9uZSA9IGppdC5qdW1wKCk7CisgICAgICAgIGlzVHlwZS5saW5rKCZqaXQpOworICAgICAg
ICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMih0cnVlKSwgR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIpOworICAgICAgICBkb25lLmxpbmsoJmppdCk7CisgICAgICAgIGVtaXRGdW5j
dGlvbkVwaWxvZ3VlKGppdCk7CisgICAgICAgIGppdC5yZXQoKTsKKyAgICB9KTsKKworICAgIENl
bGxMaWtlIGNlbGw7CisgICAgZm9yICh1bnNpZ25lZCBpID0gSlNDOjpGaXJzdFR5cGVkQXJyYXlU
eXBlOyBpIDw9IEpTQzo6TGFzdFR5cGVkQXJyYXlUeXBlRXhjbHVkaW5nRGF0YVZpZXc7ICsraSkg
eworICAgICAgICBjZWxsLnR5cGUgPSBKU1R5cGUoaSk7CisgICAgICAgIENIRUNLX0VRKGludm9r
ZTxib29sPihpc1R5cGUsICZjZWxsKSwgdHJ1ZSk7CisgICAgfQorCisgICAgY2VsbC50eXBlID0g
SlNUeXBlKExhc3RUeXBlZEFycmF5VHlwZSk7CisgICAgQ0hFQ0tfRVEoaW52b2tlPGJvb2w+KGlz
VHlwZSwgJmNlbGwpLCBmYWxzZSk7CisgICAgY2VsbC50eXBlID0gSlNUeXBlKEZpcnN0VHlwZWRB
cnJheVR5cGUgLSAxKTsKKyAgICBDSEVDS19FUShpbnZva2U8Ym9vbD4oaXNUeXBlLCAmY2VsbCks
IGZhbHNlKTsKK30KKworc3RhdGljIHZvaWQgdGVzdEJyYW5jaElmTm90VHlwZSgpCit7CisgICAg
dXNpbmcgSlNDOjpKU1R5cGU7CisgICAgc3RydWN0IENlbGxMaWtlIHsKKyAgICAgICAgdWludDMy
X3Qgc3RydWN0dXJlSUQ7CisgICAgICAgIHVpbnQ4X3QgaW5kZXhpbmdUeXBlOworICAgICAgICBK
U1R5cGUgdHlwZTsKKyAgICB9OworICAgIENIRUNLX0VRKEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zm
c2V0KCksIE9CSkVDVF9PRkZTRVRPRihDZWxsTGlrZSwgdHlwZSkpOworCisgICAgYXV0byBpc05v
dFR5cGUgPSBjb21waWxlKFtdIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICBlbWl0RnVu
Y3Rpb25Qcm9sb2d1ZShqaXQpOworICAgICAgICBhdXRvIGlzTm90VHlwZSA9IGppdC5icmFuY2hJ
Zk5vdFR5cGUoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBKU1R5cGUoRmlyc3RUeXBlZEFycmF5VHlw
ZSksIEpTVHlwZShMYXN0VHlwZWRBcnJheVR5cGVFeGNsdWRpbmdEYXRhVmlldykpOworICAgICAg
ICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihmYWxzZSksIEdQUkluZm86OnJl
dHVyblZhbHVlR1BSKTsKKyAgICAgICAgYXV0byBkb25lID0gaml0Lmp1bXAoKTsKKyAgICAgICAg
aXNOb3RUeXBlLmxpbmsoJmppdCk7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKHRydWUpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgIGRvbmUu
bGluaygmaml0KTsKKyAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAg
aml0LnJldCgpOworICAgIH0pOworCisgICAgQ2VsbExpa2UgY2VsbDsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSBKU0M6OkZpcnN0VHlwZWRBcnJheVR5cGU7IGkgPD0gSlNDOjpMYXN0VHlwZWRBcnJh
eVR5cGVFeGNsdWRpbmdEYXRhVmlldzsgKytpKSB7CisgICAgICAgIGNlbGwudHlwZSA9IEpTVHlw
ZShpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGJvb2w+KGlzTm90VHlwZSwgJmNlbGwpLCBm
YWxzZSk7CisgICAgfQorCisgICAgY2VsbC50eXBlID0gSlNUeXBlKExhc3RUeXBlZEFycmF5VHlw
ZSk7CisgICAgQ0hFQ0tfRVEoaW52b2tlPGJvb2w+KGlzTm90VHlwZSwgJmNlbGwpLCB0cnVlKTsK
KyAgICBjZWxsLnR5cGUgPSBKU1R5cGUoRmlyc3RUeXBlZEFycmF5VHlwZSAtIDEpOworICAgIENI
RUNLX0VRKGludm9rZTxib29sPihpc05vdFR5cGUsICZjZWxsKSwgdHJ1ZSk7Cit9CisKICNkZWZp
bmUgUlVOKHRlc3QpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgaWYg
KCFzaG91bGRSdW4oI3Rlc3QpKSAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIGJyZWFr
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTIyODMsNiArMjM1MSw5IEBAIHZv
aWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKIAogICAgIFJVTih0ZXN0Q2FnZVByZXNlcnZlc1BB
Q0ZhaWx1cmVCaXQoKSk7CiAKKyAgICBSVU4odGVzdEJyYW5jaElmVHlwZSgpKTsKKyAgICBSVU4o
dGVzdEJyYW5jaElmTm90VHlwZSgpKTsKKwogICAgIFJVTih0ZXN0T3JJbW1NZW0oKSk7CiAKICAg
ICBpZiAodGFza3MuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcnJheU1vZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJh
eU1vZGUuY3BwCmluZGV4IGYzMjI0NWZmN2UxMWE1MGUxNTEyZDQxNDE4NjA5OTIyMzM1OGRhMDMu
LjNmNDgwZmNiZjRlMGVhZjlmM2Q0NGQzMDU0MGFmYzQyNjE3Y2IxYTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKQEAgLTE4NSw2ICsxODUsOCBAQCBBcnJh
eU1vZGUgQXJyYXlNb2RlOjpmcm9tT2JzZXJ2ZWQoY29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiBs
b2NrZXIsIEFycmF5UHJvZmlsZQogCiBzdGF0aWMgYm9vbCBjYW5CZWNvbWVHZXRBcnJheUxlbmd0
aChHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiB7CisgICAgaWYgKG5vZGUtPm9wKCkgPT0gR2V0
QXJyYXlMZW5ndGgpCisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChub2RlLT5vcCgpICE9
IEdldEJ5SWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBhdXRvIHVpZCA9IG5vZGUtPmNh
Y2hlYWJsZUlkZW50aWZpZXIoKS51aWQoKTsKQEAgLTI0MCwxMiArMjQyLDE2IEBAIEFycmF5TW9k
ZSBBcnJheU1vZGU6OnJlZmluZSgKICAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZUFuZENvbnZl
cnNpb24oQXJyYXk6OkRvdWJsZSwgQXJyYXk6OkNvbnZlcnQpOwogICAgICAgICByZXR1cm4gd2l0
aFR5cGVBbmRDb252ZXJzaW9uKEFycmF5OjpDb250aWd1b3VzLCBBcnJheTo6Q29udmVydCk7CiAg
ICAgY2FzZSBBcnJheTo6VW5kZWNpZGVkOiB7CisgICAgICAgIC8vIEFzIGxvbmcgYXMgd2UgaGF2
ZSBhIEpTQXJyYXkgZ2V0dGluZyBpdHMgbGVuZ3RoIHNob3VsZG4ndCByZXF1aXJlIGFueSBzYW5l
IGNoYWlubmVzcy4KKyAgICAgICAgaWYgKGNhbkJlY29tZUdldEFycmF5TGVuZ3RoKGdyYXBoLCBu
b2RlKSAmJiBpc0pTQXJyYXkoKSkKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKwogICAgICAg
ICAvLyBJZiB3ZSBoYXZlIGFuIE9yaWdpbmFsQXJyYXkgYW5kIHRoZSBKU0FycmF5IHByb3RvdHlw
ZSBjaGFpbiBpcyBzYW5lLAogICAgICAgICAvLyBhbnkgaW5kZXhlZCBhY2Nlc3MgYWx3YXlzIHJl
dHVybiB1bmRlZmluZWQuIFdlIGhhdmUgYSBmYXN0IHBhdGggZm9yIHRoYXQuCiAgICAgICAgIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+
b3JpZ2luLnNlbWFudGljKTsKICAgICAgICAgU3RydWN0dXJlKiBhcnJheVByb3RvdHlwZVN0cnVj
dHVyZSA9IGdsb2JhbE9iamVjdC0+YXJyYXlQcm90b3R5cGUoKS0+c3RydWN0dXJlKGdyYXBoLm1f
dm0pOwogICAgICAgICBTdHJ1Y3R1cmUqIG9iamVjdFByb3RvdHlwZVN0cnVjdHVyZSA9IGdsb2Jh
bE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCktPnN0cnVjdHVyZShncmFwaC5tX3ZtKTsKLSAgICAg
ICAgaWYgKChub2RlLT5vcCgpID09IEdldEJ5VmFsIHx8IGNhbkJlY29tZUdldEFycmF5TGVuZ3Ro
KGdyYXBoLCBub2RlKSkKKyAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gR2V0QnlWYWwKICAgICAg
ICAgICAgICYmIGlzSlNBcnJheVdpdGhPcmlnaW5hbFN0cnVjdHVyZSgpCiAgICAgICAgICAgICAm
JiAhZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBPdXRPZkJvdW5kcykK
ICAgICAgICAgICAgICYmIGFycmF5UHJvdG90eXBlU3RydWN0dXJlLT50cmFuc2l0aW9uV2F0Y2hw
b2ludFNldElzU3RpbGxWYWxpZCgpCkBAIC0yOTcsNyArMzAzLDcgQEAgQXJyYXlNb2RlIEFycmF5
TW9kZTo6cmVmaW5lKAogICAgICAgICBpZiAoaXNEaXJlY3RBcmd1bWVudHNTcGVjdWxhdGlvbihi
YXNlKSB8fCBpc1Njb3BlZEFyZ3VtZW50c1NwZWN1bGF0aW9uKGJhc2UpKSB7CiAgICAgICAgICAg
ICAvLyBIYW5kbGUgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBhcyBnZW5lcmljIGFjY2Vzc2VzLgog
ICAgICAgICAgICAgQXJyYXk6OlR5cGUgdHlwZSA9IGlzRGlyZWN0QXJndW1lbnRzU3BlY3VsYXRp
b24oYmFzZSkgPyBBcnJheTo6RGlyZWN0QXJndW1lbnRzIDogQXJyYXk6OlNjb3BlZEFyZ3VtZW50
czsKLSAgICAgICAgICAgIGlmIChncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50
aWMsIE91dE9mQm91bmRzKSB8fCAhaXNJbkJvdW5kcygpKSB7CisgICAgICAgICAgICBpZiAoKGdy
YXBoLmhhc0V4aXRTaXRlKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgT3V0T2ZCb3VuZHMpIHx8ICFp
c0luQm91bmRzKCkpICYmICFjYW5CZWNvbWVHZXRBcnJheUxlbmd0aChncmFwaCwgbm9kZSkpIHsK
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBPT0IgYWNjZXNzIGZvciBTY29wZWRB
cmd1bWVudHMuCiAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3OTU5NgogICAgICAgICAgICAgICAgIGlmICh0eXBlID09IEFycmF5OjpE
aXJlY3RBcmd1bWVudHMpCkBAIC00MjAsNiArNDI2LDEyIEBAIGJvb2wgQXJyYXlNb2RlOjphbHJl
YWR5Q2hlY2tlZChHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IEFic3RyYWN0VmFsdWUm
IHZhCiB7CiAgICAgQVNTRVJUKGlzU3BlY2lmaWMoKSk7CiAKKyAgICBpZiAoaXNTb21lVHlwZWRB
cnJheVZpZXcoKSkgeworICAgICAgICBpZiAodHlwZSgpID09IEFycmF5OjpBbnlUeXBlZEFycmF5
KQorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmlzVHlwZShTcGVjVHlwZWRBcnJheVZpZXcpOwor
ICAgICAgICByZXR1cm4gdmFsdWUuaXNUeXBlKHNwZWN1bGF0aW9uRnJvbVR5cGVkQXJyYXlUeXBl
KHR5cGVkQXJyYXlUeXBlKCkpKTsKKyAgICB9CisKICAgICBJbmRleGluZ1R5cGUgaW5kZXhpbmdN
b2RlTWFzayA9IElzQXJyYXkgfCBJbmRleGluZ1NoYXBlTWFzazsKICAgICBpZiAoYWN0aW9uKCkg
PT0gQXJyYXk6OldyaXRlKQogICAgICAgICBpbmRleGluZ01vZGVNYXNrIHw9IENvcHlPbldyaXRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmgKaW5kZXggZmRiNzFlNzY0
ZDA1NjAyNjEzMTJlM2I2YTlmMWUzOTVmNWI5MjJlYi4uYzMwNDY1NTRiYmNiMTE5NmUwMTU3ODA2
MDUyMGQ2MGNmMTI4MDNiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBcnJheU1vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9k
ZS5oCkBAIC0yMzcsNiArMjM3LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gQXJyYXlNb2Rl
KHR5cGUsIGFycmF5Q2xhc3MoKSwgc3BlY3VsYXRpb24oKSwgY29udmVyc2lvbiwgYWN0aW9uKCkp
OwogICAgIH0KICAgICAKKyAgICBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIHVudXNl
ZEluZGV4U3BlY3VsYXRlZFR5cGUgPSBTcGVjSW50MzJPbmx5OwogICAgIEFycmF5TW9kZSByZWZp
bmUoR3JhcGgmLCBOb2RlKiwgU3BlY3VsYXRlZFR5cGUgYmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5k
ZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlID0gU3BlY05vbmUpIGNvbnN0OwogICAgIAogICAgIGJv
b2wgYWxyZWFkeUNoZWNrZWQoR3JhcGgmLCBOb2RlKiwgY29uc3QgQWJzdHJhY3RWYWx1ZSYpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXpl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCA1NDU3
MjA1MWFhYjg2N2RhZjA3ZDJhODljYzdkNjIwM2FmZGFiYmVlLi42YzE0YTI1Y2Q3NTQzODlkMGVh
ZDNiZTBlNjcwMjhiMTlkYmE2MWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ns
b2JiZXJpemUuaApAQCAtMTM2NSw2ICsxMzY1LDExIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYg
Z3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1
CiAgICAgICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEFycmF5TGVuZ3RoTG9jLCBNaXNjRmllbGRz
LCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgICAgIHJldHVybjsK
IAorICAgICAgICBjYXNlIEFycmF5OjpGb3JjZUV4aXQ6IHsKKyAgICAgICAgICAgIHdyaXRlKFNp
ZGVTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgQVNTRVJUKG1vZGUuaXNTb21lVHlwZWRBcnJheVZpZXcoKSk7CiAg
ICAgICAgICAgICByZWFkKE1pc2NGaWVsZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKaW5kZXggODRkMzllMjkwZWY1YTdmMzY2ZDg5ZTcwNGI1ODFmMDE2
NDQyNTJiOS4uMzE0NjU5NDUyYTg4MmYyNzUyYzUxYjg5MDVhODRmMzc4N2NjMjZmOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0yMDI1LDYgKzIw
MjUsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgR2V0QXJyYXlMZW5n
dGg6IHsKKyAgICAgICAgICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBub2RlLT5hcnJheU1vZGUo
KS5yZWZpbmUobV9ncmFwaCwgbm9kZSwgbm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKSwgQXJy
YXlNb2RlOjp1bnVzZWRJbmRleFNwZWN1bGF0ZWRUeXBlKTsKKyAgICAgICAgICAgIC8vIFdlIGRv
bid0IGtub3cgaG93IHRvIGhhbmRsZSBnZW5lcmljIGFuZCB3ZSBvbmx5IGVtaXQgdGhpcyBpbiB0
aGUgUGFyc2VyIHdoZW4gd2UgaGF2ZSBjaGVja2VkIHRoZSB2YWx1ZSBpcyBhbiBBcnJheS9UeXBl
ZEFycmF5LgorICAgICAgICAgICAgaWYgKGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkdlbmVy
aWMpCisgICAgICAgICAgICAgICAgYXJyYXlNb2RlID0gYXJyYXlNb2RlLndpdGhUeXBlKEFycmF5
OjpGb3JjZUV4aXQpOworICAgICAgICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKGFycmF5TW9kZSk7
CisgICAgICAgICAgICBibGVzc0FycmF5T3BlcmF0aW9uKG5vZGUtPmNoaWxkMSgpLCBFZGdlKCks
IG5vZGUtPmNoaWxkMigpKTsKKwogICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5v
ZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zODMxLDcg
KzM4MzgsNyBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgYXJy
YXlNb2RlID0gYXJyYXlNb2RlLnJlZmluZSgKLSAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUsIG5v
ZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCksIG5vZGUtPnByZWRpY3Rpb24oKSk7CisgICAgICAg
ICAgICBtX2dyYXBoLCBub2RlLCBub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpLCBBcnJheU1v
ZGU6OnVudXNlZEluZGV4U3BlY3VsYXRlZFR5cGUpOwogICAgICAgICAgICAgCiAgICAgICAgIGlm
IChhcnJheU1vZGUudHlwZSgpID09IEFycmF5OjpHZW5lcmljKSB7CiAgICAgICAgICAgICAvLyBD
aGVjayBpZiB0aGUgaW5wdXQgaXMgc29tZXRoaW5nIHRoYXQgd2UgY2FuJ3QgZ2V0IGFycmF5IGxl
bmd0aCBmb3IsIGJ1dCBmb3Igd2hpY2ggd2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggZmEyOGYzOTMwZDRkODJlZTY4Y2QwMjg3MGZj
MTY4N2QwMmMyNTkyYy4uYjE0MjZjZGNhNjFlNTM2OGNjZWYxNmJjZjY1NTcwNTlmN2Y5MTllYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAK
QEAgLTgzMiwxMyArODMyLDE0IEBAIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBTcGVjdWxhdGl2ZUpJ
VDo6anVtcFNsb3dGb3JVbndhbnRlZEFycmF5TW9kZShHUFJSZWcgdGVtcEdQCiAKIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNoZWNrQXJyYXkoTm9kZSogbm9kZSkKIHsKLSAgICBBU1NFUlQobm9kZS0+
YXJyYXlNb2RlKCkuaXNTcGVjaWZpYygpKTsKLSAgICBBU1NFUlQoIW5vZGUtPmFycmF5TW9kZSgp
LmRvZXNDb252ZXJzaW9uKCkpOworICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBub2RlLT5hcnJh
eU1vZGUoKTsKKyAgICBBU1NFUlQoYXJyYXlNb2RlLmlzU3BlY2lmaWMoKSk7CisgICAgQVNTRVJU
KCFhcnJheU1vZGUuZG9lc0NvbnZlcnNpb24oKSk7CiAgICAgCiAgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgR1BSUmVnIGJhc2VSZWcgPSBi
YXNlLmdwcigpOwogICAgIAotICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5hbHJlYWR5Q2hlY2tl
ZChtX2ppdC5ncmFwaCgpLCBub2RlLCBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpKSkg
eworICAgIGlmIChhcnJheU1vZGUuYWxyZWFkeUNoZWNrZWQobV9qaXQuZ3JhcGgoKSwgbm9kZSwg
bV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKSkpIHsKICAgICAgICAgLy8gV2UgY2FuIHB1
cmdlIEVtcHR5IGNoZWNrIGNvbXBsZXRlbHkgaW4gdGhpcyBjYXNlIG9mIENoZWNrQXJyYXlPckVt
cHR5IHNpbmNlIENlbGxVc2Ugb25seSBhY2NlcHRzIFNwZWNDZWxsIHwgU3BlY0VtcHR5LgogICAg
ICAgICBBU1NFUlQodHlwZUZpbHRlckZvcihub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpICYgU3Bl
Y0VtcHR5KTsKICAgICAgICAgbm9SZXN1bHQobV9jdXJyZW50Tm9kZSk7CkBAIC04NDcsNyArODQ4
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tBcnJheShOb2RlKiBub2RlKQogCiAgICAg
T3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiB0ZW1wOwogICAgIE9wdGlvbmFsPEdQUlJlZz4gdGVtcEdQ
UjsKLSAgICBzd2l0Y2ggKG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgeworICAgIHN3aXRjaCAo
YXJyYXlNb2RlLnR5cGUoKSkgewogICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAgIGNhc2UgQXJy
YXk6OkRvdWJsZToKICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgpAQCAtODcxLDggKzg3Miw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJyYXkoTm9kZSogbm9kZSkKICAgICB9CiAj
ZW5kaWYKIAotICAgIHN3aXRjaCAobm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7Ci0gICAgY2Fz
ZSBBcnJheTo6QW55VHlwZWRBcnJheToKKyAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsK
ICAgICBjYXNlIEFycmF5OjpTdHJpbmc6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7IC8vIFNob3VsZCBoYXZlIGJlZW4gYSBQaGFudG9tKFN0cmluZzopCiAgICAgICAgIHJl
dHVybjsKQEAgLTg4NSw3ICs4ODUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FycmF5
KE5vZGUqIG5vZGUpCiAgICAgICAgIG1faml0LmxvYWQ4KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KGJhc2VSZWcsIEpTQ2VsbDo6aW5kZXhpbmdUeXBlQW5kTWlzY09mZnNldCgpKSwgdGVtcEdQUi52
YWx1ZSgpKTsKICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKICAgICAgICAgICAgIEJhZEluZGV4
aW5nVHlwZSwgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIDAsCi0gICAgICAg
ICAgICBqdW1wU2xvd0ZvclVud2FudGVkQXJyYXlNb2RlKHRlbXBHUFIudmFsdWUoKSwgbm9kZS0+
YXJyYXlNb2RlKCkpKTsKKyAgICAgICAgICAgIGp1bXBTbG93Rm9yVW53YW50ZWRBcnJheU1vZGUo
dGVtcEdQUi52YWx1ZSgpLCBhcnJheU1vZGUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IGNhc2UgQXJyYXk6OkRpcmVjdEFyZ3VtZW50czoKQEAgLTg5NCwxMiArODk0LDE2IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJyYXkoTm9kZSogbm9kZSkKICAgICBjYXNlIEFycmF5OjpT
Y29wZWRBcmd1bWVudHM6CiAgICAgICAgIHNwZWN1bGF0ZUNlbGxUeXBlV2l0aG91dFR5cGVGaWx0
ZXJpbmcobm9kZS0+Y2hpbGQxKCksIGJhc2VSZWcsIFNjb3BlZEFyZ3VtZW50c1R5cGUpOwogICAg
ICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBzcGVjdWxhdGVDZWxsVHlwZVdpdGhv
dXRUeXBlRmlsdGVyaW5nKAotICAgICAgICAgICAgbm9kZS0+Y2hpbGQxKCksIGJhc2VSZWcsCi0g
ICAgICAgICAgICB0eXBlRm9yVHlwZWRBcnJheVR5cGUobm9kZS0+YXJyYXlNb2RlKCkudHlwZWRB
cnJheVR5cGUoKSkpOworICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgREZHX0FTU0VSVChtX2dyYXBo
LCBub2RlLCBhcnJheU1vZGUuaXNTb21lVHlwZWRBcnJheVZpZXcoKSk7CisKKyAgICAgICAgaWYg
KGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkFueVR5cGVkQXJyYXkpCisgICAgICAgICAgICBz
cGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJhc2VS
ZWcpLCAwLCBtX2ppdC5icmFuY2hJZk5vdFR5cGUoYmFzZVJlZywgSlNUeXBlKEZpcnN0VHlwZWRB
cnJheVR5cGUpLCBKU1R5cGUoTGFzdFR5cGVkQXJyYXlUeXBlRXhjbHVkaW5nRGF0YVZpZXcpKSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNwZWN1bGF0ZUNlbGxUeXBlV2l0aG91dFR5cGVG
aWx0ZXJpbmcobm9kZS0+Y2hpbGQxKCksIGJhc2VSZWcsIHR5cGVGb3JUeXBlZEFycmF5VHlwZShh
cnJheU1vZGUudHlwZWRBcnJheVR5cGUoKSkpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAg
fQogCiAgICAgaWYgKGlzRW1wdHkuaXNTZXQoKSkKICAgICAgICAgaXNFbXB0eS5saW5rKCZtX2pp
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9C
My5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5k
ZXggNTJhNjk5ZmZjOWNlNmI4M2FiMDRmY2JkMzA3NDNmMDQ2NGNhNDIzNC4uNmFhMTkxODVmNDBm
YTI2YzQ2NTI0MDgzZmM0ODU1YzQ5YmJmMjcxZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTc5NDksMTEgKzE3OTQ5LDE1IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5K
U0NlbGxfdHlwZUluZm9UeXBlKSwKICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKFNj
b3BlZEFyZ3VtZW50c1R5cGUpKTsKICAgICAgICAgICAgIAotICAgICAgICBkZWZhdWx0OgorICAg
ICAgICBkZWZhdWx0OiB7CisgICAgICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwg
YXJyYXlNb2RlLmlzU29tZVR5cGVkQXJyYXlWaWV3KCkpOworICAgICAgICAgICAgaWYgKGFycmF5
TW9kZS50eXBlKCkgPT0gQXJyYXk6OkFueVR5cGVkQXJyYXkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGlzVHlwZWRBcnJheVZpZXcoY2VsbCk7CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQuZXF1
YWwoCiAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5K
U0NlbGxfdHlwZUluZm9UeXBlKSwKICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKHR5
cGVGb3JUeXBlZEFycmF5VHlwZShhcnJheU1vZGUudHlwZWRBcnJheVR5cGUoKSkpKTsKICAgICAg
ICAgfQorICAgICAgICB9CiAgICAgfQogICAgIAogICAgIExWYWx1ZSBpc0Z1bmN0aW9uKExWYWx1
ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCA5MmNhMTRlOWUzM2FlMDIyOTI0
Y2Q0MmQ0NjMxYzI1YWE5MDE3ODcxLi4yYWMzMzZjYzVjNzUyYjNlYjhkMzkzZTU0NjI2NmZjOGVm
YTYwOWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgK
QEAgLTk4MCwxNCArOTgwLDMxIEBAIHB1YmxpYzoKICAgICAgICAgICAgIEJlbG93LCBBZGRyZXNz
KGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoT2Jq
ZWN0VHlwZSkpOwogICAgIH0KICAgICAKLSAgICBKdW1wIGJyYW5jaElmVHlwZShHUFJSZWcgY2Vs
bEdQUiwgSlNUeXBlIHR5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gYnJhbmNoOChFcXVhbCwg
QWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZElt
bTMyKHR5cGUpKTsKKyAgICAvLyBOb3RlIHRoYXQgZmlyc3QgYW5kIGxhc3QgYXJlIGluY2x1c2l2
ZS4KKyAgICBKdW1wIGJyYW5jaElmVHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIGZpcnN0LCBP
cHRpb25hbDxKU1R5cGU+IGxhc3QgPSBXVEY6Om51bGxvcHQpCisgICAgeworICAgICAgICBpZiAo
bGFzdCAmJiAqbGFzdCAhPSBmaXJzdCkgeworICAgICAgICAgICAgQVNTRVJUKCpsYXN0ID4gZmly
c3QpOworICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBzY3JhdGNoUmVnaXN0ZXIoKTsKKyAg
ICAgICAgICAgIGxvYWQ4KEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZz
ZXQoKSksIHNjcmF0Y2gpOworICAgICAgICAgICAgc3ViMzIoVHJ1c3RlZEltbTMyKGZpcnN0KSwg
c2NyYXRjaCk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoMzIoQmVsb3dPckVxdWFsLCBzY3Jh
dGNoLCBUcnVzdGVkSW1tMzIoKmxhc3QgLSBmaXJzdCkpOworICAgICAgICB9CisKKyAgICAgICAg
cmV0dXJuIGJyYW5jaDgoRXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5
cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihmaXJzdCkpOwogICAgIH0KLSAgICAKLSAgICBKdW1w
IGJyYW5jaElmTm90VHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIHR5cGUpCisKKyAgICBKdW1w
IGJyYW5jaElmTm90VHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIGZpcnN0LCBPcHRpb25hbDxK
U1R5cGU+IGxhc3QgPSBXVEY6Om51bGxvcHQpCiAgICAgewotICAgICAgICByZXR1cm4gYnJhbmNo
OChOb3RFcXVhbCwgQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgp
KSwgVHJ1c3RlZEltbTMyKHR5cGUpKTsKKyAgICAgICAgaWYgKGxhc3QgJiYgKmxhc3QgIT0gZmly
c3QpIHsKKyAgICAgICAgICAgIEFTU0VSVCgqbGFzdCA+IGZpcnN0KTsKKyAgICAgICAgICAgIEdQ
UlJlZyBzY3JhdGNoID0gc2NyYXRjaFJlZ2lzdGVyKCk7CisgICAgICAgICAgICBsb2FkOChBZGRy
ZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBzY3JhdGNoKTsKKyAg
ICAgICAgICAgIHN1YjMyKFRydXN0ZWRJbW0zMihmaXJzdCksIHNjcmF0Y2gpOworICAgICAgICAg
ICAgcmV0dXJuIGJyYW5jaDMyKEFib3ZlLCBzY3JhdGNoLCBUcnVzdGVkSW1tMzIoKmxhc3QgLSBm
aXJzdCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGJyYW5jaDgoTm90RXF1YWwsIEFk
ZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0z
MihmaXJzdCkpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiByZW5hbWUgdGhlc2UgdG8gbWFrZSBp
dCBjbGVhciB0aGF0IHRoZXkgcmVxdWlyZSB0aGVpciBpbnB1dCB0byBiZSBhIGNlbGwuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCmluZGV4IGIyZTE2MjlkZWE5OWYwMzExNzY4
Y2JiYWRlMWQyODQ0N2M4YjI1NjguLjQ1NWI2MDU0MDlhYmUzZWJmYjQxYzNiMmQ2YmVhMjRmMzU2
ZjUwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCkBAIC0xMzIsNiAr
MTMyLDcgQEAgZW51bSBKU1R5cGUgOiB1aW50OF90IHsKIAogc3RhdGljIGNvbnN0ZXhwciB1aW50
MzJfdCBGaXJzdFR5cGVkQXJyYXlUeXBlID0gSW50OEFycmF5VHlwZTsKIHN0YXRpYyBjb25zdGV4
cHIgdWludDMyX3QgTGFzdFR5cGVkQXJyYXlUeXBlID0gRGF0YVZpZXdUeXBlOworc3RhdGljIGNv
bnN0ZXhwciB1aW50MzJfdCBMYXN0VHlwZWRBcnJheVR5cGVFeGNsdWRpbmdEYXRhVmlldyA9IExh
c3RUeXBlZEFycmF5VHlwZSAtIDE7CiAKIC8vIExhc3RPYmplY3RUeXBlIHNob3VsZCBiZSBNYXhK
U1R5cGUgKG5vdCBMYXN0SlNDT2JqZWN0VHlwZSkgc2luY2UgZW1iZWRkZXJzIGNhbiBhZGQgdGhl
aXIgZXh0ZW5kZWQgb2JqZWN0IHR5cGVzIGFmdGVyIHRoZSBlbnVtcyBsaXN0ZWQgaW4gSlNUeXBl
Lgogc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBGaXJzdE9iamVjdFR5cGUgPSBPYmplY3RUeXBl
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRl
eCA0ZWU0MTQzN2UzOGI4NDEyM2NiMzgxMjhlY2U3OTQ5MGU2MjRiNzM3Li5jYzU2NGIzZDllNGMw
ODdhMzE1ZTZlMzQ0MGJiYWRjOWQyNjM3ZTkwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxv
ZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA1LTExICBL
ZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIEdldEFycmF5
TGVuZ3RoIHNob3VsZCBiZSAiYmxlc3NlZCIgZHVyaW5nIEZpeHVwIHBoYXNlIGluIHRoZSBERkcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTU0MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNz
L2dldC1hcnJheS1sZW5ndGgtbm9kZS1zaG91bGQtYmUtYmxlc3NlZC1pbi1maXh1cC5qczogQWRk
ZWQuCisgICAgICAgIChmb28pOgorCiAyMDIwLTA1LTA3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXggYnJva2VuIGV4Y2VwdGlvbkZ1enogdGVzdHMuCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nZXQtYXJyYXktbGVuZ3RoLW5vZGUtc2hvdWxkLWJlLWJs
ZXNzZWQtaW4tZml4dXAuanMgYi9KU1Rlc3RzL3N0cmVzcy9nZXQtYXJyYXktbGVuZ3RoLW5vZGUt
c2hvdWxkLWJlLWJsZXNzZWQtaW4tZml4dXAuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM5OGQ1YThiNTQ3NWY0
MTU3MzBmMGM0ZTk4MzIwYjg2NjY3YmRlNgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL2dldC1hcnJheS1sZW5ndGgtbm9kZS1zaG91bGQtYmUtYmxlc3NlZC1pbi1maXh1cC5qcwpA
QCAtMCwwICsxLDggQEAKK2Z1bmN0aW9uIGZvbygpIHsKKyAgZm9yIChsZXQgaT0wOyBpPDEwMDAw
OyBpKyspIHt9CisgIGZvciAoY29uc3QgcSBvZiBBcnJheS5wcm90b3R5cGUpIHt9Cit9CisKK2Zv
ciAobGV0IGk9MDsgaTwxMDAwOyBpKyspIHsKKyAgZm9vKCk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399043</attachid>
            <date>2020-05-11 12:15:11 -0700</date>
            <delta_ts>2020-05-12 12:20:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211540-20200511121511.patch</filename>
            <type>text/plain</type>
            <size>20188</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MTExODM2MmE0YWIwMzdhYmJiZjI1YTgzZTJhNTAzZDc4ZDA2MWQ5Li4xNDE0OTk5YjIyN2FmY2Zm
MzJjMjdlMmQ0MmVlMjY2NjA2ZWQzMDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAyMC0wNS0xMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBHZXRBcnJheUxlbmd0aCBzaG91bGQgYmUgImJsZXNzZWQiIGR1cmlu
ZyBGaXh1cCBwaGFzZSBpbiB0aGUgREZHCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTE1NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJZiB3ZSBnb3QgYW4gQXJyYXlNb2RlIGR1cmluZyBieXRlY29kZSBw
YXJzaW5nIGZvci1vZiB0aGF0IGV4cGVjdHMKKyAgICAgICAgdG8gYmUgY29uZmlndXJlZCBkdXJp
bmcgRml4dXAsIHRoZW4gcmlnaHQgbm93IHdlIHdpbGwgZmFpbCBmb3IKKyAgICAgICAgR2V0QXJy
YXlMZW5ndGguIFRoaXMgZml4ZXMgR2V0QXJyYXlMZW5ndGggdG8gcHJvcGVybHkgY2FsbAorICAg
ICAgICBibGVzc0FycmF5T3BlcmF0aW9uIGFuZCBmaXhlcyBjbG9iYmVyaXplIHRvIGtub3cgdGhh
dAorICAgICAgICBHZXRBcnJheUxlbmd0aCBjb3VsZCBoYXZlIGEgRm9yY2VFeGl0IEFycmF5TW9k
ZSBicmllZmx5IGJlZm9yZQorICAgICAgICBiZWluZyBjbGVhbmVkIHVwLgorCisgICAgICAgIFdo
ZW4gYmxlc3NpbmcgR2V0QXJyYXlMZW5ndGggd2UgY2FuIG5vdyBwcm9kdWNlIENoZWNrQXJyYXlz
IHRoYXQKKyAgICAgICAgaGF2ZSBhbiBBbnlUeXBlZEFycmF5IEFycmF5TW9kZTo6VHlwZS4gU28g
dGhpcyBwYXRjaCBleHBhbmRzCisgICAgICAgIENoZWNrQXJyYXkgdG8gcHJvcGVybHkgaGFuZGxl
IHRoYXQuIFRvIGhlbHAgd2l0aCB0aGlzIHdlIGV4cGFuZAorICAgICAgICBicmFuY2hJZlR5cGUg
dG8gaGF2ZSBhIHN0YXJ0aW5nIEpTVHlwZSBhbmQgYW4gb3B0aW9uYWwgZW5kaW5nCisgICAgICAg
IEpTVHlwZS4gQWRkaXRpb25hbGx5LCB0byBwcmV2ZW50IGV4dHJhIGNoZWNrcyBBSSBoYXMgYmVl
biB0YXVnaHQKKyAgICAgICAgdG8gZm9sZCBtb3JlIEFycmF5TW9kZXMgc28gd2Ugc2hvdWxkIGFs
bW9zdCBhbHdheXMgYXZvaWQgbmV3CisgICAgICAgIHJ1bnRpbWUgY2hlY2tzLgorCisgICAgICAg
IExhc3RseSwgaW1wcm92ZSB0aGUgcXVhbGl0eSBvZiByZWZpbmVtZW50IGZvciBHZXRBcnJheUxl
bmd0aC1saWtlCisgICAgICAgIG5vZGVzLiAgRmlyc3RseSwgYnkgbm90aW5nIHRoYXQgR2V0QXJy
YXlMZW5ndGgtbGlrZSBub2RlcyBkb24ndAorICAgICAgICBjYXJlIGFib3V0IFVuZGVjaWRlZG5l
c3Mgd2UgY2FuIHByZXZlbnQgY29udmVydGluZyB0byBhIEdlbmVyaWMKKyAgICAgICAgQXJyYXlN
b2RlOjpUeXBlLiBBbHNvLCBHZXRBcnJheUxlbmd0aCB3b3VsZCBwcmV2aW91c2x5IHBhc3MgaXQn
cworICAgICAgICBvd24gc3BlY3VsYXRpb24gZm9yIHRoZSBzcGVjdWxhdGlvbiBvZiB0aGUgaW5k
ZXgsIHdoaWNoIGxvZ2ljYWxseQorICAgICAgICBkb2Vzbid0IG1ha2Ugc2Vuc2UuIFNvIHRoaXMg
cGF0Y2ggYWRkcyBhIG5ldyBjb25zdGFudCwgd2hpY2ggaXMKKyAgICAgICAgU3BlY0ludDMyT25s
eSwgdGhhdCBjYW4gYmUgcGFzc2VkIGlmIGEgREZHIG5vZGUgZG9lc24ndCBoYXZlIGFuCisgICAg
ICAgIGluZGV4LgorCisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAg
KEpTQzo6dGVzdEJyYW5jaElmVHlwZSk6CisgICAgICAgIChKU0M6OnRlc3RCcmFuY2hJZk5vdFR5
cGUpOgorICAgICAgICAoSlNDOjpydW4pOgorICAgICAgICAqIGRmZy9ERkdBcnJheU1vZGUuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OmNhbkJlY29tZUdldEFycmF5TGVuZ3RoKToKKyAgICAgICAg
KEpTQzo6REZHOjpBcnJheU1vZGU6OnJlZmluZSBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6
QXJyYXlNb2RlOjphbHJlYWR5Q2hlY2tlZCBjb25zdCk6CisgICAgICAgICogZGZnL0RGR0FycmF5
TW9kZS5oOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6
Rml4dXBQaGFzZTo6YXR0ZW1wdFRvTWFrZUdldEFycmF5TGVuZ3RoKToKKyAgICAgICAgKiBkZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjpjaGVja0FycmF5KToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNBcnJheVR5cGVGb3JDaGVja0FycmF5
KToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2Vt
Ymx5SGVscGVyczo6YnJhbmNoSWZUeXBlKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJz
OjpicmFuY2hJZk5vdFR5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlLmg6CisKIDIwMjAt
MDUtMDcgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IEFycmF5TW9kZSBub2RlcyBhZnRlciByMjYxMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCmluZGV4IDRjOWYxZGU4MTkzNzkzYjcwOThiZjBiOWE5
OWQxMDM3MWNiOTE2NzMuLjBmMjYzZWFiZDJhYTFmYjZhMDhkYmU2ZTk0ZmUwNWY1MDBkMWYxYWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCkBAIC0y
MTYxLDYgKzIxNjEsNzQgQEAgc3RhdGljIHZvaWQgdGVzdENhZ2VQcmVzZXJ2ZXNQQUNGYWlsdXJl
Qml0KCkKICNlbmRpZgogfQogCitzdGF0aWMgdm9pZCB0ZXN0QnJhbmNoSWZUeXBlKCkKK3sKKyAg
ICB1c2luZyBKU0M6OkpTVHlwZTsKKyAgICBzdHJ1Y3QgQ2VsbExpa2UgeworICAgICAgICB1aW50
MzJfdCBzdHJ1Y3R1cmVJRDsKKyAgICAgICAgdWludDhfdCBpbmRleGluZ1R5cGU7CisgICAgICAg
IEpTVHlwZSB0eXBlOworICAgIH07CisgICAgQ0hFQ0tfRVEoSlNDZWxsOjp0eXBlSW5mb1R5cGVP
ZmZzZXQoKSwgT0JKRUNUX09GRlNFVE9GKENlbGxMaWtlLCB0eXBlKSk7CisKKyAgICBhdXRvIGlz
VHlwZSA9IGNvbXBpbGUoW10gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgIGVtaXRGdW5j
dGlvblByb2xvZ3VlKGppdCk7CisgICAgICAgIGF1dG8gaXNUeXBlID0gaml0LmJyYW5jaElmVHlw
ZShHUFJJbmZvOjphcmd1bWVudEdQUjAsIEpTVHlwZShGaXJzdFR5cGVkQXJyYXlUeXBlKSwgSlNU
eXBlKExhc3RUeXBlZEFycmF5VHlwZUV4Y2x1ZGluZ0RhdGFWaWV3KSk7CisgICAgICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGZhbHNlKSwgR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIpOworICAgICAgICBhdXRvIGRvbmUgPSBqaXQuanVtcCgpOworICAgICAgICBpc1R5cGUu
bGluaygmaml0KTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
dHJ1ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgZG9uZS5saW5rKCZqaXQp
OworICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAgICAgICBqaXQucmV0KCk7
CisgICAgfSk7CisKKyAgICBDZWxsTGlrZSBjZWxsOworICAgIGZvciAodW5zaWduZWQgaSA9IEpT
Qzo6Rmlyc3RUeXBlZEFycmF5VHlwZTsgaSA8PSBKU0M6Okxhc3RUeXBlZEFycmF5VHlwZUV4Y2x1
ZGluZ0RhdGFWaWV3OyArK2kpIHsKKyAgICAgICAgY2VsbC50eXBlID0gSlNUeXBlKGkpOworICAg
ICAgICBDSEVDS19FUShpbnZva2U8Ym9vbD4oaXNUeXBlLCAmY2VsbCksIHRydWUpOworICAgIH0K
KworICAgIGNlbGwudHlwZSA9IEpTVHlwZShMYXN0VHlwZWRBcnJheVR5cGUpOworICAgIENIRUNL
X0VRKGludm9rZTxib29sPihpc1R5cGUsICZjZWxsKSwgZmFsc2UpOworICAgIGNlbGwudHlwZSA9
IEpTVHlwZShGaXJzdFR5cGVkQXJyYXlUeXBlIC0gMSk7CisgICAgQ0hFQ0tfRVEoaW52b2tlPGJv
b2w+KGlzVHlwZSwgJmNlbGwpLCBmYWxzZSk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RCcmFuY2hJ
Zk5vdFR5cGUoKQoreworICAgIHVzaW5nIEpTQzo6SlNUeXBlOworICAgIHN0cnVjdCBDZWxsTGlr
ZSB7CisgICAgICAgIHVpbnQzMl90IHN0cnVjdHVyZUlEOworICAgICAgICB1aW50OF90IGluZGV4
aW5nVHlwZTsKKyAgICAgICAgSlNUeXBlIHR5cGU7CisgICAgfTsKKyAgICBDSEVDS19FUShKU0Nl
bGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpLCBPQkpFQ1RfT0ZGU0VUT0YoQ2VsbExpa2UsIHR5cGUp
KTsKKworICAgIGF1dG8gaXNOb3RUeXBlID0gY29tcGlsZShbXSAoQ0NhbGxIZWxwZXJzJiBqaXQp
IHsKKyAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKKyAgICAgICAgYXV0byBpc05v
dFR5cGUgPSBqaXQuYnJhbmNoSWZOb3RUeXBlKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgSlNUeXBl
KEZpcnN0VHlwZWRBcnJheVR5cGUpLCBKU1R5cGUoTGFzdFR5cGVkQXJyYXlUeXBlRXhjbHVkaW5n
RGF0YVZpZXcpKTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
ZmFsc2UpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgIGF1dG8gZG9uZSA9IGpp
dC5qdW1wKCk7CisgICAgICAgIGlzTm90VHlwZS5saW5rKCZqaXQpOworICAgICAgICBqaXQubW92
ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMih0cnVlKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIpOworICAgICAgICBkb25lLmxpbmsoJmppdCk7CisgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxv
Z3VlKGppdCk7CisgICAgICAgIGppdC5yZXQoKTsKKyAgICB9KTsKKworICAgIENlbGxMaWtlIGNl
bGw7CisgICAgZm9yICh1bnNpZ25lZCBpID0gSlNDOjpGaXJzdFR5cGVkQXJyYXlUeXBlOyBpIDw9
IEpTQzo6TGFzdFR5cGVkQXJyYXlUeXBlRXhjbHVkaW5nRGF0YVZpZXc7ICsraSkgeworICAgICAg
ICBjZWxsLnR5cGUgPSBKU1R5cGUoaSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxib29sPihp
c05vdFR5cGUsICZjZWxsKSwgZmFsc2UpOworICAgIH0KKworICAgIGNlbGwudHlwZSA9IEpTVHlw
ZShMYXN0VHlwZWRBcnJheVR5cGUpOworICAgIENIRUNLX0VRKGludm9rZTxib29sPihpc05vdFR5
cGUsICZjZWxsKSwgdHJ1ZSk7CisgICAgY2VsbC50eXBlID0gSlNUeXBlKEZpcnN0VHlwZWRBcnJh
eVR5cGUgLSAxKTsKKyAgICBDSEVDS19FUShpbnZva2U8Ym9vbD4oaXNOb3RUeXBlLCAmY2VsbCks
IHRydWUpOworfQorCiAjZGVmaW5lIFJVTih0ZXN0KSBkbyB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgICAgIGlmICghc2hvdWxkUnVuKCN0ZXN0KSkgICAgICAgICAgICAgICAgICBc
CiAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0y
MjgzLDYgKzIzNTEsOSBAQCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAKICAgICBSVU4o
dGVzdENhZ2VQcmVzZXJ2ZXNQQUNGYWlsdXJlQml0KCkpOwogCisgICAgUlVOKHRlc3RCcmFuY2hJ
ZlR5cGUoKSk7CisgICAgUlVOKHRlc3RCcmFuY2hJZk5vdFR5cGUoKSk7CisKICAgICBSVU4odGVz
dE9ySW1tTWVtKCkpOwogCiAgICAgaWYgKHRhc2tzLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAppbmRleCBmMzIyNDVmZjdlMTFhNTBlMTUxMmQ0
MTQxODYwOTkyMjMzNThkYTAzLi4zZjQ4MGZjYmY0ZTBlYWY5ZjNkNDRkMzA1NDBhZmM0MjYxN2Ni
MWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCkBAIC0x
ODUsNiArMTg1LDggQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6ZnJvbU9ic2VydmVkKGNvbnN0IENv
bmN1cnJlbnRKU0xvY2tlciYgbG9ja2VyLCBBcnJheVByb2ZpbGUKIAogc3RhdGljIGJvb2wgY2Fu
QmVjb21lR2V0QXJyYXlMZW5ndGgoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogeworICAgIGlm
IChub2RlLT5vcCgpID09IEdldEFycmF5TGVuZ3RoKQorICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICBpZiAobm9kZS0+b3AoKSAhPSBHZXRCeUlkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
YXV0byB1aWQgPSBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCkudWlkKCk7CkBAIC0yNDAsMTIg
KzI0MiwxNiBAQCBBcnJheU1vZGUgQXJyYXlNb2RlOjpyZWZpbmUoCiAgICAgICAgICAgICByZXR1
cm4gd2l0aFR5cGVBbmRDb252ZXJzaW9uKEFycmF5OjpEb3VibGUsIEFycmF5OjpDb252ZXJ0KTsK
ICAgICAgICAgcmV0dXJuIHdpdGhUeXBlQW5kQ29udmVyc2lvbihBcnJheTo6Q29udGlndW91cywg
QXJyYXk6OkNvbnZlcnQpOwogICAgIGNhc2UgQXJyYXk6OlVuZGVjaWRlZDogeworICAgICAgICAv
LyBBcyBsb25nIGFzIHdlIGhhdmUgYSBKU0FycmF5IGdldHRpbmcgaXRzIGxlbmd0aCBzaG91bGRu
J3QgcmVxdWlyZSBhbnkgc2FuZSBjaGFpbm5lc3MuCisgICAgICAgIGlmIChjYW5CZWNvbWVHZXRB
cnJheUxlbmd0aChncmFwaCwgbm9kZSkgJiYgaXNKU0FycmF5KCkpCisgICAgICAgICAgICByZXR1
cm4gKnRoaXM7CisKICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhbiBPcmlnaW5hbEFycmF5IGFuZCB0
aGUgSlNBcnJheSBwcm90b3R5cGUgY2hhaW4gaXMgc2FuZSwKICAgICAgICAgLy8gYW55IGluZGV4
ZWQgYWNjZXNzIGFsd2F5cyByZXR1cm4gdW5kZWZpbmVkLiBXZSBoYXZlIGEgZmFzdCBwYXRoIGZv
ciB0aGF0LgogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZ3JhcGguZ2xv
YmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CiAgICAgICAgIFN0cnVjdHVyZSog
YXJyYXlQcm90b3R5cGVTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmFycmF5UHJvdG90eXBlKCkt
PnN0cnVjdHVyZShncmFwaC5tX3ZtKTsKICAgICAgICAgU3RydWN0dXJlKiBvYmplY3RQcm90b3R5
cGVTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpLT5zdHJ1Y3R1cmUo
Z3JhcGgubV92bSk7Ci0gICAgICAgIGlmICgobm9kZS0+b3AoKSA9PSBHZXRCeVZhbCB8fCBjYW5C
ZWNvbWVHZXRBcnJheUxlbmd0aChncmFwaCwgbm9kZSkpCisgICAgICAgIGlmIChub2RlLT5vcCgp
ID09IEdldEJ5VmFsCiAgICAgICAgICAgICAmJiBpc0pTQXJyYXlXaXRoT3JpZ2luYWxTdHJ1Y3R1
cmUoKQogICAgICAgICAgICAgJiYgIWdyYXBoLmhhc0V4aXRTaXRlKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYywgT3V0T2ZCb3VuZHMpCiAgICAgICAgICAgICAmJiBhcnJheVByb3RvdHlwZVN0cnVjdHVy
ZS0+dHJhbnNpdGlvbldhdGNocG9pbnRTZXRJc1N0aWxsVmFsaWQoKQpAQCAtMjk3LDcgKzMwMyw3
IEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZSgKICAgICAgICAgaWYgKGlzRGlyZWN0QXJn
dW1lbnRzU3BlY3VsYXRpb24oYmFzZSkgfHwgaXNTY29wZWRBcmd1bWVudHNTcGVjdWxhdGlvbihi
YXNlKSkgewogICAgICAgICAgICAgLy8gSGFuZGxlIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMgYXMg
Z2VuZXJpYyBhY2Nlc3Nlcy4KICAgICAgICAgICAgIEFycmF5OjpUeXBlIHR5cGUgPSBpc0RpcmVj
dEFyZ3VtZW50c1NwZWN1bGF0aW9uKGJhc2UpID8gQXJyYXk6OkRpcmVjdEFyZ3VtZW50cyA6IEFy
cmF5OjpTY29wZWRBcmd1bWVudHM7Ci0gICAgICAgICAgICBpZiAoZ3JhcGguaGFzRXhpdFNpdGUo
bm9kZS0+b3JpZ2luLnNlbWFudGljLCBPdXRPZkJvdW5kcykgfHwgIWlzSW5Cb3VuZHMoKSkgewor
ICAgICAgICAgICAgaWYgKChncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50aWMs
IE91dE9mQm91bmRzKSB8fCAhaXNJbkJvdW5kcygpKSAmJiAhY2FuQmVjb21lR2V0QXJyYXlMZW5n
dGgoZ3JhcGgsIG5vZGUpKSB7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgT09C
IGFjY2VzcyBmb3IgU2NvcGVkQXJndW1lbnRzLgogICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk1OTYKICAgICAgICAgICAgICAgICBp
ZiAodHlwZSA9PSBBcnJheTo6RGlyZWN0QXJndW1lbnRzKQpAQCAtNDIwLDYgKzQyNiwxMiBAQCBi
b29sIEFycmF5TW9kZTo6YWxyZWFkeUNoZWNrZWQoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBj
b25zdCBBYnN0cmFjdFZhbHVlJiB2YQogewogICAgIEFTU0VSVChpc1NwZWNpZmljKCkpOwogCisg
ICAgaWYgKGlzU29tZVR5cGVkQXJyYXlWaWV3KCkpIHsKKyAgICAgICAgaWYgKHR5cGUoKSA9PSBB
cnJheTo6QW55VHlwZWRBcnJheSkKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5pc1R5cGUoU3Bl
Y1R5cGVkQXJyYXlWaWV3KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlLmlzVHlwZShzcGVjdWxhdGlv
bkZyb21UeXBlZEFycmF5VHlwZSh0eXBlZEFycmF5VHlwZSgpKSk7CisgICAgfQorCiAgICAgSW5k
ZXhpbmdUeXBlIGluZGV4aW5nTW9kZU1hc2sgPSBJc0FycmF5IHwgSW5kZXhpbmdTaGFwZU1hc2s7
CiAgICAgaWYgKGFjdGlvbigpID09IEFycmF5OjpXcml0ZSkKICAgICAgICAgaW5kZXhpbmdNb2Rl
TWFzayB8PSBDb3B5T25Xcml0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQXJyYXlNb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9k
ZS5oCmluZGV4IGZkYjcxZTc2NGQwNTYwMjYxMzEyZTNiNmE5ZjFlMzk1ZjViOTIyZWIuLmMzMDQ2
NTU0YmJjYjExOTZlMDE1NzgwNjA1MjBkNjBjZjEyODAzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBcnJheU1vZGUuaApAQCAtMjM3LDYgKzIzNyw3IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIEFycmF5TW9kZSh0eXBlLCBhcnJheUNsYXNzKCksIHNwZWN1bGF0aW9uKCksIGNv
bnZlcnNpb24sIGFjdGlvbigpKTsKICAgICB9CiAgICAgCisgICAgc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSB1bnVzZWRJbmRleFNwZWN1bGF0ZWRUeXBlID0gU3BlY0ludDMyT25seTsK
ICAgICBBcnJheU1vZGUgcmVmaW5lKEdyYXBoJiwgTm9kZSosIFNwZWN1bGF0ZWRUeXBlIGJhc2Us
IFNwZWN1bGF0ZWRUeXBlIGluZGV4LCBTcGVjdWxhdGVkVHlwZSB2YWx1ZSA9IFNwZWNOb25lKSBj
b25zdDsKICAgICAKICAgICBib29sIGFscmVhZHlDaGVja2VkKEdyYXBoJiwgTm9kZSosIGNvbnN0
IEFic3RyYWN0VmFsdWUmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9i
YmVyaXplLmgKaW5kZXggNTQ1NzIwNTFhYWI4NjdkYWYwN2QyYTg5Y2M3ZDYyMDNhZmRhYmJlZS4u
NmMxNGEyNWNkNzU0Mzg5ZDBlYWQzYmUwZTY3MDI4YjE5ZGJhNjFiNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTEzNjUsNiArMTM2NSwxMSBAQCB2b2lk
IGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYg
cmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihBcnJheUxl
bmd0aExvYywgTWlzY0ZpZWxkcywgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlKSk7CiAg
ICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgY2FzZSBBcnJheTo6Rm9yY2VFeGl0OiB7Cisg
ICAgICAgICAgICB3cml0ZShTaWRlU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVChtb2RlLmlzU29tZVR5
cGVkQXJyYXlWaWV3KCkpOwogICAgICAgICAgICAgcmVhZChNaXNjRmllbGRzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IDg0ZDM5ZTI5MGVmNWE3
ZjM2NmQ4OWU3MDRiNTgxZjAxNjQ0MjUyYjkuLjMxNDY1OTQ1MmE4ODJmMjc1MmM1MWI4OTA1YTg0
ZjM3ODdjYzI2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4
dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNl
LmNwcApAQCAtMjAyNSw2ICsyMDI1LDEzIEBAIHByaXZhdGU6CiAgICAgICAgIH0KIAogICAgICAg
ICBjYXNlIEdldEFycmF5TGVuZ3RoOiB7CisgICAgICAgICAgICBBcnJheU1vZGUgYXJyYXlNb2Rl
ID0gbm9kZS0+YXJyYXlNb2RlKCkucmVmaW5lKG1fZ3JhcGgsIG5vZGUsIG5vZGUtPmNoaWxkMSgp
LT5wcmVkaWN0aW9uKCksIEFycmF5TW9kZTo6dW51c2VkSW5kZXhTcGVjdWxhdGVkVHlwZSk7Cisg
ICAgICAgICAgICAvLyBXZSBkb24ndCBrbm93IGhvdyB0byBoYW5kbGUgZ2VuZXJpYyBhbmQgd2Ug
b25seSBlbWl0IHRoaXMgaW4gdGhlIFBhcnNlciB3aGVuIHdlIGhhdmUgY2hlY2tlZCB0aGUgdmFs
dWUgaXMgYW4gQXJyYXkvVHlwZWRBcnJheS4KKyAgICAgICAgICAgIGlmIChhcnJheU1vZGUudHlw
ZSgpID09IEFycmF5OjpHZW5lcmljKQorICAgICAgICAgICAgICAgIGFycmF5TW9kZSA9IGFycmF5
TW9kZS53aXRoVHlwZShBcnJheTo6Rm9yY2VFeGl0KTsKKyAgICAgICAgICAgIG5vZGUtPnNldEFy
cmF5TW9kZShhcnJheU1vZGUpOworICAgICAgICAgICAgYmxlc3NBcnJheU9wZXJhdGlvbihub2Rl
LT5jaGlsZDEoKSwgRWRnZSgpLCBub2RlLT5jaGlsZDIoKSk7CisKICAgICAgICAgICAgIGZpeEVk
Z2U8S25vd25DZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQpAQCAtMzgzMSw3ICszODM4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgICAg
ICAgICAgCiAgICAgICAgIGFycmF5TW9kZSA9IGFycmF5TW9kZS5yZWZpbmUoCi0gICAgICAgICAg
ICBtX2dyYXBoLCBub2RlLCBub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpLCBub2RlLT5wcmVk
aWN0aW9uKCkpOworICAgICAgICAgICAgbV9ncmFwaCwgbm9kZSwgbm9kZS0+Y2hpbGQxKCktPnBy
ZWRpY3Rpb24oKSwgQXJyYXlNb2RlOjp1bnVzZWRJbmRleFNwZWN1bGF0ZWRUeXBlKTsKICAgICAg
ICAgICAgIAogICAgICAgICBpZiAoYXJyYXlNb2RlLnR5cGUoKSA9PSBBcnJheTo6R2VuZXJpYykg
ewogICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGlucHV0IGlzIHNvbWV0aGluZyB0aGF0IHdl
IGNhbid0IGdldCBhcnJheSBsZW5ndGggZm9yLCBidXQgZm9yIHdoaWNoIHdlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGZhMjhmMzkz
MGQ0ZDgyZWU2OGNkMDI4NzBmYzE2ODdkMDJjMjU5MmMuLmRmNjQzNGZhNTNlZmEzOGFlNGUwYTdi
N2Q1MDU2MDUwNDYyYmE2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCkBAIC04MzIsMTMgKzgzMiwxNCBAQCBKSVRDb21waWxlcjo6SnVt
cExpc3QgU3BlY3VsYXRpdmVKSVQ6Omp1bXBTbG93Rm9yVW53YW50ZWRBcnJheU1vZGUoR1BSUmVn
IHRlbXBHUAogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FycmF5KE5vZGUqIG5vZGUpCiB7
Ci0gICAgQVNTRVJUKG5vZGUtPmFycmF5TW9kZSgpLmlzU3BlY2lmaWMoKSk7Ci0gICAgQVNTRVJU
KCFub2RlLT5hcnJheU1vZGUoKS5kb2VzQ29udmVyc2lvbigpKTsKKyAgICBBcnJheU1vZGUgYXJy
YXlNb2RlID0gbm9kZS0+YXJyYXlNb2RlKCk7CisgICAgQVNTRVJUKGFycmF5TW9kZS5pc1NwZWNp
ZmljKCkpOworICAgIEFTU0VSVCghYXJyYXlNb2RlLmRvZXNDb252ZXJzaW9uKCkpOwogICAgIAog
ICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAg
IEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKICAgICAKLSAgICBpZiAobm9kZS0+YXJyYXlN
b2RlKCkuYWxyZWFkeUNoZWNrZWQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbV9zdGF0ZS5mb3JOb2Rl
KG5vZGUtPmNoaWxkMSgpKSkpIHsKKyAgICBpZiAoYXJyYXlNb2RlLmFscmVhZHlDaGVja2VkKG1f
aml0LmdyYXBoKCksIG5vZGUsIG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkpKSB7CiAg
ICAgICAgIC8vIFdlIGNhbiBwdXJnZSBFbXB0eSBjaGVjayBjb21wbGV0ZWx5IGluIHRoaXMgY2Fz
ZSBvZiBDaGVja0FycmF5T3JFbXB0eSBzaW5jZSBDZWxsVXNlIG9ubHkgYWNjZXB0cyBTcGVjQ2Vs
bCB8IFNwZWNFbXB0eS4KICAgICAgICAgQVNTRVJUKHR5cGVGaWx0ZXJGb3Iobm9kZS0+Y2hpbGQx
KCkudXNlS2luZCgpKSAmIFNwZWNFbXB0eSk7CiAgICAgICAgIG5vUmVzdWx0KG1fY3VycmVudE5v
ZGUpOwpAQCAtODQ3LDcgKzg0OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJyYXko
Tm9kZSogbm9kZSkKIAogICAgIE9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gdGVtcDsKICAgICBPcHRp
b25hbDxHUFJSZWc+IHRlbXBHUFI7Ci0gICAgc3dpdGNoIChub2RlLT5hcnJheU1vZGUoKS50eXBl
KCkpIHsKKyAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsKICAgICBjYXNlIEFycmF5OjpJ
bnQzMjoKICAgICBjYXNlIEFycmF5OjpEb3VibGU6CiAgICAgY2FzZSBBcnJheTo6Q29udGlndW91
czoKQEAgLTg3MSw4ICs4NzIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FycmF5KE5v
ZGUqIG5vZGUpCiAgICAgfQogI2VuZGlmCiAKLSAgICBzd2l0Y2ggKG5vZGUtPmFycmF5TW9kZSgp
LnR5cGUoKSkgewotICAgIGNhc2UgQXJyYXk6OkFueVR5cGVkQXJyYXk6CisgICAgc3dpdGNoIChh
cnJheU1vZGUudHlwZSgpKSB7CiAgICAgY2FzZSBBcnJheTo6U3RyaW5nOgogICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBTaG91bGQgaGF2ZSBiZWVuIGEgUGhhbnRvbShT
dHJpbmc6KQogICAgICAgICByZXR1cm47CkBAIC04ODQsOCArODg0LDggQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y2hlY2tBcnJheShOb2RlKiBub2RlKQogICAgIGNhc2UgQXJyYXk6OlNsb3dQdXRB
cnJheVN0b3JhZ2U6IHsKICAgICAgICAgbV9qaXQubG9hZDgoTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoYmFzZVJlZywgSlNDZWxsOjppbmRleGluZ1R5cGVBbmRNaXNjT2Zmc2V0KCkpLCB0ZW1wR1BS
LnZhbHVlKCkpOwogICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAgICAgICAgICAgQmFkSW5k
ZXhpbmdUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChiYXNlUmVnKSwgMCwKLSAgICAg
ICAgICAgIGp1bXBTbG93Rm9yVW53YW50ZWRBcnJheU1vZGUodGVtcEdQUi52YWx1ZSgpLCBub2Rl
LT5hcnJheU1vZGUoKSkpOworICAgICAgICAgICAgQmFkSW5kZXhpbmdUeXBlLCBKU1ZhbHVlU291
cmNlOjp1bmJveGVkQ2VsbChiYXNlUmVnKSwgbnVsbHB0ciwKKyAgICAgICAgICAgIGp1bXBTbG93
Rm9yVW53YW50ZWRBcnJheU1vZGUodGVtcEdQUi52YWx1ZSgpLCBhcnJheU1vZGUpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQXJyYXk6OkRpcmVjdEFyZ3VtZW50czoKQEAgLTg5
NCwxMiArODk0LDE2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJyYXkoTm9kZSogbm9k
ZSkKICAgICBjYXNlIEFycmF5OjpTY29wZWRBcmd1bWVudHM6CiAgICAgICAgIHNwZWN1bGF0ZUNl
bGxUeXBlV2l0aG91dFR5cGVGaWx0ZXJpbmcobm9kZS0+Y2hpbGQxKCksIGJhc2VSZWcsIFNjb3Bl
ZEFyZ3VtZW50c1R5cGUpOwogICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBz
cGVjdWxhdGVDZWxsVHlwZVdpdGhvdXRUeXBlRmlsdGVyaW5nKAotICAgICAgICAgICAgbm9kZS0+
Y2hpbGQxKCksIGJhc2VSZWcsCi0gICAgICAgICAgICB0eXBlRm9yVHlwZWRBcnJheVR5cGUobm9k
ZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5cGUoKSkpOworICAgIGRlZmF1bHQ6IHsKKyAgICAg
ICAgREZHX0FTU0VSVChtX2dyYXBoLCBub2RlLCBhcnJheU1vZGUuaXNTb21lVHlwZWRBcnJheVZp
ZXcoKSk7CisKKyAgICAgICAgaWYgKGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkFueVR5cGVk
QXJyYXkpCisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVTb3Vy
Y2U6OnVuYm94ZWRDZWxsKGJhc2VSZWcpLCBudWxscHRyLCBtX2ppdC5icmFuY2hJZk5vdFR5cGUo
YmFzZVJlZywgSlNUeXBlKEZpcnN0VHlwZWRBcnJheVR5cGUpLCBKU1R5cGUoTGFzdFR5cGVkQXJy
YXlUeXBlRXhjbHVkaW5nRGF0YVZpZXcpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNw
ZWN1bGF0ZUNlbGxUeXBlV2l0aG91dFR5cGVGaWx0ZXJpbmcobm9kZS0+Y2hpbGQxKCksIGJhc2VS
ZWcsIHR5cGVGb3JUeXBlZEFycmF5VHlwZShhcnJheU1vZGUudHlwZWRBcnJheVR5cGUoKSkpOwog
ICAgICAgICBicmVhazsKICAgICB9CisgICAgfQogCiAgICAgaWYgKGlzRW1wdHkuaXNTZXQoKSkK
ICAgICAgICAgaXNFbXB0eS5saW5rKCZtX2ppdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggNTJhNjk5ZmZjOWNlNmI4M2FiMDRmY2JkMzA3
NDNmMDQ2NGNhNDIzNC4uNmFhMTkxODVmNDBmYTI2YzQ2NTI0MDgzZmM0ODU1YzQ5YmJmMjcxZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAt
MTc5NDksMTEgKzE3OTQ5LDE1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgbV9vdXQubG9h
ZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKICAgICAgICAg
ICAgICAgICBtX291dC5jb25zdEludDMyKFNjb3BlZEFyZ3VtZW50c1R5cGUpKTsKICAgICAgICAg
ICAgIAotICAgICAgICBkZWZhdWx0OgorICAgICAgICBkZWZhdWx0OiB7CisgICAgICAgICAgICBE
RkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwgYXJyYXlNb2RlLmlzU29tZVR5cGVkQXJyYXlWaWV3
KCkpOworICAgICAgICAgICAgaWYgKGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkFueVR5cGVk
QXJyYXkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGlzVHlwZWRBcnJheVZpZXcoY2VsbCk7CiAg
ICAgICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwoCiAgICAgICAgICAgICAgICAgbV9vdXQubG9h
ZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKICAgICAgICAg
ICAgICAgICBtX291dC5jb25zdEludDMyKHR5cGVGb3JUeXBlZEFycmF5VHlwZShhcnJheU1vZGUu
dHlwZWRBcnJheVR5cGUoKSkpKTsKICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogICAgIAog
ICAgIExWYWx1ZSBpc0Z1bmN0aW9uKExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0g
U3BlY0Z1bGxUb3ApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2Vt
Ymx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMu
aAppbmRleCA5MmNhMTRlOWUzM2FlMDIyOTI0Y2Q0MmQ0NjMxYzI1YWE5MDE3ODcxLi4yYWMzMzZj
YzVjNzUyYjNlYjhkMzkzZTU0NjI2NmZjOGVmYTYwOWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTk4MCwxNCArOTgwLDMxIEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIEJlbG93LCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBl
T2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoT2JqZWN0VHlwZSkpOwogICAgIH0KICAgICAKLSAgICBK
dW1wIGJyYW5jaElmVHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIHR5cGUpCi0gICAgewotICAg
ICAgICByZXR1cm4gYnJhbmNoOChFcXVhbCwgQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJ
bmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKHR5cGUpKTsKKyAgICAvLyBOb3RlIHRoYXQg
Zmlyc3QgYW5kIGxhc3QgYXJlIGluY2x1c2l2ZS4KKyAgICBKdW1wIGJyYW5jaElmVHlwZShHUFJS
ZWcgY2VsbEdQUiwgSlNUeXBlIGZpcnN0LCBPcHRpb25hbDxKU1R5cGU+IGxhc3QgPSBXVEY6Om51
bGxvcHQpCisgICAgeworICAgICAgICBpZiAobGFzdCAmJiAqbGFzdCAhPSBmaXJzdCkgeworICAg
ICAgICAgICAgQVNTRVJUKCpsYXN0ID4gZmlyc3QpOworICAgICAgICAgICAgR1BSUmVnIHNjcmF0
Y2ggPSBzY3JhdGNoUmVnaXN0ZXIoKTsKKyAgICAgICAgICAgIGxvYWQ4KEFkZHJlc3MoY2VsbEdQ
UiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIHNjcmF0Y2gpOworICAgICAgICAgICAg
c3ViMzIoVHJ1c3RlZEltbTMyKGZpcnN0KSwgc2NyYXRjaCk7CisgICAgICAgICAgICByZXR1cm4g
YnJhbmNoMzIoQmVsb3dPckVxdWFsLCBzY3JhdGNoLCBUcnVzdGVkSW1tMzIoKmxhc3QgLSBmaXJz
dCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGJyYW5jaDgoRXF1YWwsIEFkZHJlc3Mo
Y2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihmaXJz
dCkpOwogICAgIH0KLSAgICAKLSAgICBKdW1wIGJyYW5jaElmTm90VHlwZShHUFJSZWcgY2VsbEdQ
UiwgSlNUeXBlIHR5cGUpCisKKyAgICBKdW1wIGJyYW5jaElmTm90VHlwZShHUFJSZWcgY2VsbEdQ
UiwgSlNUeXBlIGZpcnN0LCBPcHRpb25hbDxKU1R5cGU+IGxhc3QgPSBXVEY6Om51bGxvcHQpCiAg
ICAgewotICAgICAgICByZXR1cm4gYnJhbmNoOChOb3RFcXVhbCwgQWRkcmVzcyhjZWxsR1BSLCBK
U0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKHR5cGUpKTsKKyAgICAg
ICAgaWYgKGxhc3QgJiYgKmxhc3QgIT0gZmlyc3QpIHsKKyAgICAgICAgICAgIEFTU0VSVCgqbGFz
dCA+IGZpcnN0KTsKKyAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gc2NyYXRjaFJlZ2lzdGVy
KCk7CisgICAgICAgICAgICBsb2FkOChBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9U
eXBlT2Zmc2V0KCkpLCBzY3JhdGNoKTsKKyAgICAgICAgICAgIHN1YjMyKFRydXN0ZWRJbW0zMihm
aXJzdCksIHNjcmF0Y2gpOworICAgICAgICAgICAgcmV0dXJuIGJyYW5jaDMyKEFib3ZlLCBzY3Jh
dGNoLCBUcnVzdGVkSW1tMzIoKmxhc3QgLSBmaXJzdCkpOworICAgICAgICB9CisKKyAgICAgICAg
cmV0dXJuIGJyYW5jaDgoTm90RXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5m
b1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihmaXJzdCkpOwogICAgIH0KIAogICAgIC8vIEZJ
WE1FOiByZW5hbWUgdGhlc2UgdG8gbWFrZSBpdCBjbGVhciB0aGF0IHRoZXkgcmVxdWlyZSB0aGVp
ciBpbnB1dCB0byBiZSBhIGNlbGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5o
CmluZGV4IGIyZTE2MjlkZWE5OWYwMzExNzY4Y2JiYWRlMWQyODQ0N2M4YjI1NjguLjQ1NWI2MDU0
MDlhYmUzZWJmYjQxYzNiMmQ2YmVhMjRmMzU2ZjUwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVHlwZS5oCkBAIC0xMzIsNiArMTMyLDcgQEAgZW51bSBKU1R5cGUgOiB1aW50OF90
IHsKIAogc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBGaXJzdFR5cGVkQXJyYXlUeXBlID0gSW50
OEFycmF5VHlwZTsKIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTGFzdFR5cGVkQXJyYXlUeXBl
ID0gRGF0YVZpZXdUeXBlOworc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBMYXN0VHlwZWRBcnJh
eVR5cGVFeGNsdWRpbmdEYXRhVmlldyA9IExhc3RUeXBlZEFycmF5VHlwZSAtIDE7CiAKIC8vIExh
c3RPYmplY3RUeXBlIHNob3VsZCBiZSBNYXhKU1R5cGUgKG5vdCBMYXN0SlNDT2JqZWN0VHlwZSkg
c2luY2UgZW1iZWRkZXJzIGNhbiBhZGQgdGhlaXIgZXh0ZW5kZWQgb2JqZWN0IHR5cGVzIGFmdGVy
IHRoZSBlbnVtcyBsaXN0ZWQgaW4gSlNUeXBlLgogc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBG
aXJzdE9iamVjdFR5cGUgPSBPYmplY3RUeXBlOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VM
b2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA0ZWU0MTQzN2UzOGI4NDEyM2NiMzgxMjhlY2U3
OTQ5MGU2MjRiNzM3Li5jYzU2NGIzZDllNGMwODdhMzE1ZTZlMzQ0MGJiYWRjOWQyNjM3ZTkwIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDIwLTA1LTExICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBw
bGUuY29tPgorCisgICAgICAgIEdldEFycmF5TGVuZ3RoIHNob3VsZCBiZSAiYmxlc3NlZCIgZHVy
aW5nIEZpeHVwIHBoYXNlIGluIHRoZSBERkcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMTU0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2dldC1hcnJheS1sZW5ndGgtbm9kZS1zaG91bGQt
YmUtYmxlc3NlZC1pbi1maXh1cC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorCiAyMDIwLTA1
LTA3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYnJva2Vu
IGV4Y2VwdGlvbkZ1enogdGVzdHMuCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nZXQtYXJy
YXktbGVuZ3RoLW5vZGUtc2hvdWxkLWJlLWJsZXNzZWQtaW4tZml4dXAuanMgYi9KU1Rlc3RzL3N0
cmVzcy9nZXQtYXJyYXktbGVuZ3RoLW5vZGUtc2hvdWxkLWJlLWJsZXNzZWQtaW4tZml4dXAuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmM5OGQ1YThiNTQ3NWY0MTU3MzBmMGM0ZTk4MzIwYjg2NjY3YmRlNgotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2dldC1hcnJheS1sZW5ndGgtbm9kZS1zaG91
bGQtYmUtYmxlc3NlZC1pbi1maXh1cC5qcwpAQCAtMCwwICsxLDggQEAKK2Z1bmN0aW9uIGZvbygp
IHsKKyAgZm9yIChsZXQgaT0wOyBpPDEwMDAwOyBpKyspIHt9CisgIGZvciAoY29uc3QgcSBvZiBB
cnJheS5wcm90b3R5cGUpIHt9Cit9CisKK2ZvciAobGV0IGk9MDsgaTwxMDAwOyBpKyspIHsKKyAg
Zm9vKCk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399152</attachid>
            <date>2020-05-12 12:19:45 -0700</date>
            <delta_ts>2020-05-12 15:06:26 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211540-20200512121944.patch</filename>
            <type>text/plain</type>
            <size>20278</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
ZmVlNTlhZjA3MDQ5OTU4ZjJhODMyMjMwMjdlNDUxNzZiYjY4YzdhLi5lYzA2ZTg4MDQzMjgwOTQw
NzNjMmE1OTdhMTc1NjM2MWNmOWQ2MzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAyMC0wNS0xMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBHZXRBcnJheUxlbmd0aCBzaG91bGQgYmUgImJsZXNzZWQiIGR1cmlu
ZyBGaXh1cCBwaGFzZSBpbiB0aGUgREZHCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTE1NDAKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0
aS4KKworICAgICAgICBJZiB3ZSBnb3QgYW4gQXJyYXlNb2RlIGR1cmluZyBieXRlY29kZSBwYXJz
aW5nIGZvci1vZiB0aGF0IGV4cGVjdHMKKyAgICAgICAgdG8gYmUgY29uZmlndXJlZCBkdXJpbmcg
Rml4dXAsIHRoZW4gcmlnaHQgbm93IHdlIHdpbGwgY3Jhc2ggb24KKyAgICAgICAgR2V0QXJyYXlM
ZW5ndGguIFRoaXMgZml4ZXMgR2V0QXJyYXlMZW5ndGggdG8gcHJvcGVybHkgY2FsbAorICAgICAg
ICBibGVzc0FycmF5T3BlcmF0aW9uIGFuZCBmaXhlcyBjbG9iYmVyaXplIHRvIGtub3cgdGhhdAor
ICAgICAgICBHZXRBcnJheUxlbmd0aCBjb3VsZCBoYXZlIGEgRm9yY2VFeGl0IEFycmF5TW9kZSBi
cmllZmx5IGJlZm9yZQorICAgICAgICBiZWluZyBjbGVhbmVkIHVwLgorCisgICAgICAgIFdoZW4g
Ymxlc3NpbmcgR2V0QXJyYXlMZW5ndGggd2UgY2FuIG5vdyBwcm9kdWNlIENoZWNrQXJyYXlzIHRo
YXQKKyAgICAgICAgaGF2ZSBhbiBBbnlUeXBlZEFycmF5IEFycmF5TW9kZTo6VHlwZS4gU28gdGhp
cyBwYXRjaCBleHBhbmRzCisgICAgICAgIENoZWNrQXJyYXkgdG8gcHJvcGVybHkgaGFuZGxlIHRo
YXQuIFRvIGhlbHAgd2l0aCB0aGlzIHdlIGV4cGFuZAorICAgICAgICBicmFuY2hJZlR5cGUgdG8g
aGF2ZSBhIHN0YXJ0aW5nIEpTVHlwZSBhbmQgYW4gb3B0aW9uYWwgZW5kaW5nCisgICAgICAgIEpT
VHlwZS4gQWRkaXRpb25hbGx5LCB0byBwcmV2ZW50IGV4dHJhIGNoZWNrcyBBSSBoYXMgYmVlbiB0
YXVnaHQKKyAgICAgICAgdG8gZm9sZCBtb3JlIEFycmF5TW9kZXMgc28gd2Ugc2hvdWxkIGFsbW9z
dCBhbHdheXMgYXZvaWQgbmV3CisgICAgICAgIHJ1bnRpbWUgY2hlY2tzLgorCisgICAgICAgIExh
c3RseSwgaW1wcm92ZSB0aGUgcXVhbGl0eSBvZiByZWZpbmVtZW50IGZvciBHZXRBcnJheUxlbmd0
aC1saWtlCisgICAgICAgIG5vZGVzLiAgRmlyc3RseSwgYnkgbm90aW5nIHRoYXQgR2V0QXJyYXlM
ZW5ndGgtbGlrZSBub2RlcyBkb24ndAorICAgICAgICBjYXJlIGFib3V0IFVuZGVjaWRlZG5lc3Mg
d2UgY2FuIHByZXZlbnQgY29udmVydGluZyB0byBhIEdlbmVyaWMKKyAgICAgICAgQXJyYXlNb2Rl
OjpUeXBlLiBBbHNvLCBHZXRBcnJheUxlbmd0aCB3b3VsZCBwcmV2aW91c2x5IHBhc3MgaXQncwor
ICAgICAgICBvd24gc3BlY3VsYXRpb24gZm9yIHRoZSBzcGVjdWxhdGlvbiBvZiB0aGUgaW5kZXgs
IHdoaWNoIGxvZ2ljYWxseQorICAgICAgICBkb2Vzbid0IG1ha2Ugc2Vuc2UuIFNvIHRoaXMgcGF0
Y2ggYWRkcyBhIG5ldyBjb25zdGFudCwgd2hpY2ggaXMKKyAgICAgICAgU3BlY0ludDMyT25seSwg
dGhhdCBjYW4gYmUgcGFzc2VkIGlmIGEgREZHIG5vZGUgZG9lc24ndCBoYXZlIGFuCisgICAgICAg
IGluZGV4LgorCisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKEpT
Qzo6dGVzdEJyYW5jaElmVHlwZSk6CisgICAgICAgIChKU0M6OnRlc3RCcmFuY2hJZk5vdFR5cGUp
OgorICAgICAgICAoSlNDOjpydW4pOgorICAgICAgICAqIGRmZy9ERkdBcnJheU1vZGUuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OmNhbkJlY29tZUdldEFycmF5TGVuZ3RoKToKKyAgICAgICAgKEpT
Qzo6REZHOjpBcnJheU1vZGU6OnJlZmluZSBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6QXJy
YXlNb2RlOjphbHJlYWR5Q2hlY2tlZCBjb25zdCk6CisgICAgICAgICogZGZnL0RGR0FycmF5TW9k
ZS5oOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6
Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4
dXBQaGFzZTo6YXR0ZW1wdFRvTWFrZUdldEFycmF5TGVuZ3RoKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
aGVja0FycmF5KToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNBcnJheVR5cGVGb3JDaGVja0FycmF5KToK
KyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5
SGVscGVyczo6YnJhbmNoSWZUeXBlKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpi
cmFuY2hJZk5vdFR5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlLmg6CisKIDIwMjAtMDUt
MTIgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtj
bGFuZy10aWR5XSBSdW4gbW9kZXJuaXplLXVzZS1vdmVycmlkZSBvdmVyIEpTQywgdGhlbiBlbnN1
cmUgYXMgbXVjaCBhcyBwb3NzaWJsZSBpcyBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAppbmRleCA0YzlmMWRlODE5Mzc5M2I3MDk4YmYwYjlhOTlk
MTAzNzFjYjkxNjczLi4wZjI2M2VhYmQyYWExZmI2YTA4ZGJlNmU5NGZlMDVmNTAwZDFmMWFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcApAQCAtMjE2
MSw2ICsyMTYxLDc0IEBAIHN0YXRpYyB2b2lkIHRlc3RDYWdlUHJlc2VydmVzUEFDRmFpbHVyZUJp
dCgpCiAjZW5kaWYKIH0KIAorc3RhdGljIHZvaWQgdGVzdEJyYW5jaElmVHlwZSgpCit7CisgICAg
dXNpbmcgSlNDOjpKU1R5cGU7CisgICAgc3RydWN0IENlbGxMaWtlIHsKKyAgICAgICAgdWludDMy
X3Qgc3RydWN0dXJlSUQ7CisgICAgICAgIHVpbnQ4X3QgaW5kZXhpbmdUeXBlOworICAgICAgICBK
U1R5cGUgdHlwZTsKKyAgICB9OworICAgIENIRUNLX0VRKEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zm
c2V0KCksIE9CSkVDVF9PRkZTRVRPRihDZWxsTGlrZSwgdHlwZSkpOworCisgICAgYXV0byBpc1R5
cGUgPSBjb21waWxlKFtdIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICBlbWl0RnVuY3Rp
b25Qcm9sb2d1ZShqaXQpOworICAgICAgICBhdXRvIGlzVHlwZSA9IGppdC5icmFuY2hJZlR5cGUo
R1BSSW5mbzo6YXJndW1lbnRHUFIwLCBKU1R5cGUoRmlyc3RUeXBlZEFycmF5VHlwZSksIEpTVHlw
ZShMYXN0VHlwZWRBcnJheVR5cGVFeGNsdWRpbmdEYXRhVmlldykpOworICAgICAgICBqaXQubW92
ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihmYWxzZSksIEdQUkluZm86OnJldHVyblZhbHVl
R1BSKTsKKyAgICAgICAgYXV0byBkb25lID0gaml0Lmp1bXAoKTsKKyAgICAgICAgaXNUeXBlLmxp
bmsoJmppdCk7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHRy
dWUpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgIGRvbmUubGluaygmaml0KTsK
KyAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgaml0LnJldCgpOwor
ICAgIH0pOworCisgICAgQ2VsbExpa2UgY2VsbDsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBKU0M6
OkZpcnN0VHlwZWRBcnJheVR5cGU7IGkgPD0gSlNDOjpMYXN0VHlwZWRBcnJheVR5cGVFeGNsdWRp
bmdEYXRhVmlldzsgKytpKSB7CisgICAgICAgIGNlbGwudHlwZSA9IEpTVHlwZShpKTsKKyAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPGJvb2w+KGlzVHlwZSwgJmNlbGwpLCB0cnVlKTsKKyAgICB9CisK
KyAgICBjZWxsLnR5cGUgPSBKU1R5cGUoTGFzdFR5cGVkQXJyYXlUeXBlKTsKKyAgICBDSEVDS19F
UShpbnZva2U8Ym9vbD4oaXNUeXBlLCAmY2VsbCksIGZhbHNlKTsKKyAgICBjZWxsLnR5cGUgPSBK
U1R5cGUoRmlyc3RUeXBlZEFycmF5VHlwZSAtIDEpOworICAgIENIRUNLX0VRKGludm9rZTxib29s
Pihpc1R5cGUsICZjZWxsKSwgZmFsc2UpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0QnJhbmNoSWZO
b3RUeXBlKCkKK3sKKyAgICB1c2luZyBKU0M6OkpTVHlwZTsKKyAgICBzdHJ1Y3QgQ2VsbExpa2Ug
eworICAgICAgICB1aW50MzJfdCBzdHJ1Y3R1cmVJRDsKKyAgICAgICAgdWludDhfdCBpbmRleGlu
Z1R5cGU7CisgICAgICAgIEpTVHlwZSB0eXBlOworICAgIH07CisgICAgQ0hFQ0tfRVEoSlNDZWxs
Ojp0eXBlSW5mb1R5cGVPZmZzZXQoKSwgT0JKRUNUX09GRlNFVE9GKENlbGxMaWtlLCB0eXBlKSk7
CisKKyAgICBhdXRvIGlzTm90VHlwZSA9IGNvbXBpbGUoW10gKENDYWxsSGVscGVycyYgaml0KSB7
CisgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CisgICAgICAgIGF1dG8gaXNOb3RU
eXBlID0gaml0LmJyYW5jaElmTm90VHlwZShHUFJJbmZvOjphcmd1bWVudEdQUjAsIEpTVHlwZShG
aXJzdFR5cGVkQXJyYXlUeXBlKSwgSlNUeXBlKExhc3RUeXBlZEFycmF5VHlwZUV4Y2x1ZGluZ0Rh
dGFWaWV3KSk7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGZh
bHNlKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICBhdXRvIGRvbmUgPSBqaXQu
anVtcCgpOworICAgICAgICBpc05vdFR5cGUubGluaygmaml0KTsKKyAgICAgICAgaml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIodHJ1ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BS
KTsKKyAgICAgICAgZG9uZS5saW5rKCZqaXQpOworICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1
ZShqaXQpOworICAgICAgICBqaXQucmV0KCk7CisgICAgfSk7CisKKyAgICBDZWxsTGlrZSBjZWxs
OworICAgIGZvciAodW5zaWduZWQgaSA9IEpTQzo6Rmlyc3RUeXBlZEFycmF5VHlwZTsgaSA8PSBK
U0M6Okxhc3RUeXBlZEFycmF5VHlwZUV4Y2x1ZGluZ0RhdGFWaWV3OyArK2kpIHsKKyAgICAgICAg
Y2VsbC50eXBlID0gSlNUeXBlKGkpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Ym9vbD4oaXNO
b3RUeXBlLCAmY2VsbCksIGZhbHNlKTsKKyAgICB9CisKKyAgICBjZWxsLnR5cGUgPSBKU1R5cGUo
TGFzdFR5cGVkQXJyYXlUeXBlKTsKKyAgICBDSEVDS19FUShpbnZva2U8Ym9vbD4oaXNOb3RUeXBl
LCAmY2VsbCksIHRydWUpOworICAgIGNlbGwudHlwZSA9IEpTVHlwZShGaXJzdFR5cGVkQXJyYXlU
eXBlIC0gMSk7CisgICAgQ0hFQ0tfRVEoaW52b2tlPGJvb2w+KGlzTm90VHlwZSwgJmNlbGwpLCB0
cnVlKTsKK30KKwogI2RlZmluZSBSVU4odGVzdCkgZG8geyAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAogICAgICAgICBpZiAoIXNob3VsZFJ1bigjdGVzdCkpICAgICAgICAgICAgICAgICAgXAog
ICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMjI4
Myw2ICsyMzUxLDkgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogCiAgICAgUlVOKHRl
c3RDYWdlUHJlc2VydmVzUEFDRmFpbHVyZUJpdCgpKTsKIAorICAgIFJVTih0ZXN0QnJhbmNoSWZU
eXBlKCkpOworICAgIFJVTih0ZXN0QnJhbmNoSWZOb3RUeXBlKCkpOworCiAgICAgUlVOKHRlc3RP
ckltbU1lbSgpKTsKIAogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKaW5kZXggZjMyMjQ1ZmY3ZTExYTUwZTE1MTJkNDE0
MTg2MDk5MjIzMzU4ZGEwMy4uM2Y0ODBmY2JmNGUwZWFmOWYzZDQ0ZDMwNTQwYWZjNDI2MTdjYjFh
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcApAQCAtMTg1
LDYgKzE4NSw4IEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OmZyb21PYnNlcnZlZChjb25zdCBDb25j
dXJyZW50SlNMb2NrZXImIGxvY2tlciwgQXJyYXlQcm9maWxlCiAKIHN0YXRpYyBib29sIGNhbkJl
Y29tZUdldEFycmF5TGVuZ3RoKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKIHsKKyAgICBpZiAo
bm9kZS0+b3AoKSA9PSBHZXRBcnJheUxlbmd0aCkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
aWYgKG5vZGUtPm9wKCkgIT0gR2V0QnlJZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1
dG8gdWlkID0gbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLnVpZCgpOwpAQCAtMjQwLDEyICsy
NDIsMTYgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6cmVmaW5lKAogICAgICAgICAgICAgcmV0dXJu
IHdpdGhUeXBlQW5kQ29udmVyc2lvbihBcnJheTo6RG91YmxlLCBBcnJheTo6Q29udmVydCk7CiAg
ICAgICAgIHJldHVybiB3aXRoVHlwZUFuZENvbnZlcnNpb24oQXJyYXk6OkNvbnRpZ3VvdXMsIEFy
cmF5OjpDb252ZXJ0KTsKICAgICBjYXNlIEFycmF5OjpVbmRlY2lkZWQ6IHsKKyAgICAgICAgLy8g
QXMgbG9uZyBhcyB3ZSBoYXZlIGEgSlNBcnJheSBnZXR0aW5nIGl0cyBsZW5ndGggc2hvdWxkbid0
IHJlcXVpcmUgYW55IHNhbmUgY2hhaW5uZXNzLgorICAgICAgICBpZiAoY2FuQmVjb21lR2V0QXJy
YXlMZW5ndGgoZ3JhcGgsIG5vZGUpICYmIGlzSlNBcnJheSgpKQorICAgICAgICAgICAgcmV0dXJu
ICp0aGlzOworCiAgICAgICAgIC8vIElmIHdlIGhhdmUgYW4gT3JpZ2luYWxBcnJheSBhbmQgdGhl
IEpTQXJyYXkgcHJvdG90eXBlIGNoYWluIGlzIHNhbmUsCiAgICAgICAgIC8vIGFueSBpbmRleGVk
IGFjY2VzcyBhbHdheXMgcmV0dXJuIHVuZGVmaW5lZC4gV2UgaGF2ZSBhIGZhc3QgcGF0aCBmb3Ig
dGhhdC4KICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGdyYXBoLmdsb2Jh
bE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpOwogICAgICAgICBTdHJ1Y3R1cmUqIGFy
cmF5UHJvdG90eXBlU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5hcnJheVByb3RvdHlwZSgpLT5z
dHJ1Y3R1cmUoZ3JhcGgubV92bSk7CiAgICAgICAgIFN0cnVjdHVyZSogb2JqZWN0UHJvdG90eXBl
U3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKS0+c3RydWN0dXJlKGdy
YXBoLm1fdm0pOwotICAgICAgICBpZiAoKG5vZGUtPm9wKCkgPT0gR2V0QnlWYWwgfHwgY2FuQmVj
b21lR2V0QXJyYXlMZW5ndGgoZ3JhcGgsIG5vZGUpKQorICAgICAgICBpZiAobm9kZS0+b3AoKSA9
PSBHZXRCeVZhbAogICAgICAgICAgICAgJiYgaXNKU0FycmF5V2l0aE9yaWdpbmFsU3RydWN0dXJl
KCkKICAgICAgICAgICAgICYmICFncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50
aWMsIE91dE9mQm91bmRzKQogICAgICAgICAgICAgJiYgYXJyYXlQcm90b3R5cGVTdHJ1Y3R1cmUt
PnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SXNTdGlsbFZhbGlkKCkKQEAgLTI5Nyw3ICszMDMsNyBA
QCBBcnJheU1vZGUgQXJyYXlNb2RlOjpyZWZpbmUoCiAgICAgICAgIGlmIChpc0RpcmVjdEFyZ3Vt
ZW50c1NwZWN1bGF0aW9uKGJhc2UpIHx8IGlzU2NvcGVkQXJndW1lbnRzU3BlY3VsYXRpb24oYmFz
ZSkpIHsKICAgICAgICAgICAgIC8vIEhhbmRsZSBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIGFzIGdl
bmVyaWMgYWNjZXNzZXMuCiAgICAgICAgICAgICBBcnJheTo6VHlwZSB0eXBlID0gaXNEaXJlY3RB
cmd1bWVudHNTcGVjdWxhdGlvbihiYXNlKSA/IEFycmF5OjpEaXJlY3RBcmd1bWVudHMgOiBBcnJh
eTo6U2NvcGVkQXJndW1lbnRzOwotICAgICAgICAgICAgaWYgKGdyYXBoLmhhc0V4aXRTaXRlKG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYywgT3V0T2ZCb3VuZHMpIHx8ICFpc0luQm91bmRzKCkpIHsKKyAg
ICAgICAgICAgIGlmICgoZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBP
dXRPZkJvdW5kcykgfHwgIWlzSW5Cb3VuZHMoKSkgJiYgIWNhbkJlY29tZUdldEFycmF5TGVuZ3Ro
KGdyYXBoLCBub2RlKSkgewogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IE9PQiBh
Y2Nlc3MgZm9yIFNjb3BlZEFyZ3VtZW50cy4KICAgICAgICAgICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NTk2CiAgICAgICAgICAgICAgICAgaWYg
KHR5cGUgPT0gQXJyYXk6OkRpcmVjdEFyZ3VtZW50cykKQEAgLTQyMCw2ICs0MjYsMTIgQEAgYm9v
bCBBcnJheU1vZGU6OmFscmVhZHlDaGVja2VkKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29u
c3QgQWJzdHJhY3RWYWx1ZSYgdmEKIHsKICAgICBBU1NFUlQoaXNTcGVjaWZpYygpKTsKIAorICAg
IGlmIChpc1NvbWVUeXBlZEFycmF5VmlldygpKSB7CisgICAgICAgIGlmICh0eXBlKCkgPT0gQXJy
YXk6OkFueVR5cGVkQXJyYXkpCisgICAgICAgICAgICByZXR1cm4gdmFsdWUuaXNUeXBlKFNwZWNU
eXBlZEFycmF5Vmlldyk7CisgICAgICAgIHJldHVybiB2YWx1ZS5pc1R5cGUoc3BlY3VsYXRpb25G
cm9tVHlwZWRBcnJheVR5cGUodHlwZWRBcnJheVR5cGUoKSkpOworICAgIH0KKwogICAgIEluZGV4
aW5nVHlwZSBpbmRleGluZ01vZGVNYXNrID0gSXNBcnJheSB8IEluZGV4aW5nU2hhcGVNYXNrOwog
ICAgIGlmIChhY3Rpb24oKSA9PSBBcnJheTo6V3JpdGUpCiAgICAgICAgIGluZGV4aW5nTW9kZU1h
c2sgfD0gQ29weU9uV3JpdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0FycmF5TW9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUu
aAppbmRleCBmZGI3MWU3NjRkMDU2MDI2MTMxMmUzYjZhOWYxZTM5NWY1YjkyMmViLi5jMzA0NjU1
NGJiY2IxMTk2ZTAxNTc4MDYwNTIwZDYwY2YxMjgwM2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQXJyYXlNb2RlLmgKQEAgLTIzNyw2ICsyMzcsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBBcnJheU1vZGUodHlwZSwgYXJyYXlDbGFzcygpLCBzcGVjdWxhdGlvbigpLCBjb252
ZXJzaW9uLCBhY3Rpb24oKSk7CiAgICAgfQogICAgIAorICAgIHN0YXRpYyBjb25zdGV4cHIgU3Bl
Y3VsYXRlZFR5cGUgdW51c2VkSW5kZXhTcGVjdWxhdGVkVHlwZSA9IFNwZWNJbnQzMk9ubHk7CiAg
ICAgQXJyYXlNb2RlIHJlZmluZShHcmFwaCYsIE5vZGUqLCBTcGVjdWxhdGVkVHlwZSBiYXNlLCBT
cGVjdWxhdGVkVHlwZSBpbmRleCwgU3BlY3VsYXRlZFR5cGUgdmFsdWUgPSBTcGVjTm9uZSkgY29u
c3Q7CiAgICAgCiAgICAgYm9vbCBhbHJlYWR5Q2hlY2tlZChHcmFwaCYsIE5vZGUqLCBjb25zdCBB
YnN0cmFjdFZhbHVlJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJl
cml6ZS5oCmluZGV4IGE3Zjc5NmQ3MTc4NDlkZDYwYzMxOGViZDU4ZjlmMTUyZDBmZDYxY2EuLmMy
NWI5OTJhOGM3YmQ4ZjIxZjZjNWE1NWZmMTc3YmU2ODQ5Y2NmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0xMzQ4LDYgKzEzNDgsMTEgQEAgdm9pZCBj
bG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJl
YWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oQXJyYXlMZW5n
dGhMb2MsIE1pc2NGaWVsZHMsIG5vZGUtPmNoaWxkMSgpKSwgTGF6eU5vZGUobm9kZSkpOwogICAg
ICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGNhc2UgQXJyYXk6OkZvcmNlRXhpdDogeworICAg
ICAgICAgICAgd3JpdGUoU2lkZVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlQobW9kZS5pc1NvbWVUeXBl
ZEFycmF5VmlldygpKTsKICAgICAgICAgICAgIHJlYWQoTWlzY0ZpZWxkcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCAwZjBhYTQ0ZDZkNDk5ZDhm
NGIzZDA3NDI1NDdmYTg2NGQ2ZGU0YzQwLi43OGMyZGQ5OTBjMWY5NzFlZTkwNDBhYzRhYjU4OTQ4
YzZiMjc2NWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKQEAgLTIwMjUsNiArMjAyNSwxNCBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAg
Y2FzZSBHZXRBcnJheUxlbmd0aDogeworICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9
IG5vZGUtPmFycmF5TW9kZSgpLnJlZmluZShtX2dyYXBoLCBub2RlLCBub2RlLT5jaGlsZDEoKS0+
cHJlZGljdGlvbigpLCBBcnJheU1vZGU6OnVudXNlZEluZGV4U3BlY3VsYXRlZFR5cGUpOworICAg
ICAgICAgICAgLy8gV2UgZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIGdlbmVyaWMgYW5kIHdlIG9u
bHkgZW1pdCB0aGlzIGluIHRoZSBQYXJzZXIgd2hlbiB3ZSBoYXZlIGNoZWNrZWQgdGhlIHZhbHVl
IGlzIGFuIEFycmF5L1R5cGVkQXJyYXkuCisgICAgICAgICAgICBpZiAoYXJyYXlNb2RlLnR5cGUo
KSA9PSBBcnJheTo6R2VuZXJpYykKKyAgICAgICAgICAgICAgICBhcnJheU1vZGUgPSBhcnJheU1v
ZGUud2l0aFR5cGUoQXJyYXk6OkZvcmNlRXhpdCk7CisgICAgICAgICAgICBBU1NFUlQoYXJyYXlN
b2RlLmlzU3BlY2lmaWMoKSB8fCBhcnJheU1vZGUudHlwZSgpID09IEFycmF5OjpGb3JjZUV4aXQp
OworICAgICAgICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKGFycmF5TW9kZSk7CisgICAgICAgICAg
ICBibGVzc0FycmF5T3BlcmF0aW9uKG5vZGUtPmNoaWxkMSgpLCBFZGdlKCksIG5vZGUtPmNoaWxk
MigpKTsKKwogICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zODMxLDcgKzM4MzksNyBAQCBw
cml2YXRlOgogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgYXJyYXlNb2RlID0gYXJy
YXlNb2RlLnJlZmluZSgKLSAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUsIG5vZGUtPmNoaWxkMSgp
LT5wcmVkaWN0aW9uKCksIG5vZGUtPnByZWRpY3Rpb24oKSk7CisgICAgICAgICAgICBtX2dyYXBo
LCBub2RlLCBub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpLCBBcnJheU1vZGU6OnVudXNlZElu
ZGV4U3BlY3VsYXRlZFR5cGUpOwogICAgICAgICAgICAgCiAgICAgICAgIGlmIChhcnJheU1vZGUu
dHlwZSgpID09IEFycmF5OjpHZW5lcmljKSB7CiAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUg
aW5wdXQgaXMgc29tZXRoaW5nIHRoYXQgd2UgY2FuJ3QgZ2V0IGFycmF5IGxlbmd0aCBmb3IsIGJ1
dCBmb3Igd2hpY2ggd2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKaW5kZXggNjM2ODdmZWYwMDhkODliN2VlOGVmZjBjYjE4YWE0NzU5ZTBiZmRj
Ny4uMDE5OTliOTAyN2JlNWVjMGU1M2FiNWYyMWU1ODZmODg4NTkyMzI2MyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTgzMiwxMyAr
ODMyLDE0IEBAIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBTcGVjdWxhdGl2ZUpJVDo6anVtcFNsb3dG
b3JVbndhbnRlZEFycmF5TW9kZShHUFJSZWcgdGVtcEdQCiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNoZWNrQXJyYXkoTm9kZSogbm9kZSkKIHsKLSAgICBBU1NFUlQobm9kZS0+YXJyYXlNb2RlKCku
aXNTcGVjaWZpYygpKTsKLSAgICBBU1NFUlQoIW5vZGUtPmFycmF5TW9kZSgpLmRvZXNDb252ZXJz
aW9uKCkpOworICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBub2RlLT5hcnJheU1vZGUoKTsKKyAg
ICBBU1NFUlQoYXJyYXlNb2RlLmlzU3BlY2lmaWMoKSk7CisgICAgQVNTRVJUKCFhcnJheU1vZGUu
ZG9lc0NvbnZlcnNpb24oKSk7CiAgICAgCiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOwog
ICAgIAotICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5hbHJlYWR5Q2hlY2tlZChtX2ppdC5ncmFw
aCgpLCBub2RlLCBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpKSkgeworICAgIGlmIChh
cnJheU1vZGUuYWxyZWFkeUNoZWNrZWQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbV9zdGF0ZS5mb3JO
b2RlKG5vZGUtPmNoaWxkMSgpKSkpIHsKICAgICAgICAgLy8gV2UgY2FuIHB1cmdlIEVtcHR5IGNo
ZWNrIGNvbXBsZXRlbHkgaW4gdGhpcyBjYXNlIG9mIENoZWNrQXJyYXlPckVtcHR5IHNpbmNlIENl
bGxVc2Ugb25seSBhY2NlcHRzIFNwZWNDZWxsIHwgU3BlY0VtcHR5LgogICAgICAgICBBU1NFUlQo
dHlwZUZpbHRlckZvcihub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpICYgU3BlY0VtcHR5KTsKICAg
ICAgICAgbm9SZXN1bHQobV9jdXJyZW50Tm9kZSk7CkBAIC04NDcsNyArODQ4LDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y2hlY2tBcnJheShOb2RlKiBub2RlKQogCiAgICAgT3B0aW9uYWw8R1BS
VGVtcG9yYXJ5PiB0ZW1wOwogICAgIE9wdGlvbmFsPEdQUlJlZz4gdGVtcEdQUjsKLSAgICBzd2l0
Y2ggKG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgeworICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5
cGUoKSkgewogICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAgIGNhc2UgQXJyYXk6OkRvdWJsZToK
ICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgpAQCAtODcxLDggKzg3Miw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNoZWNrQXJyYXkoTm9kZSogbm9kZSkKICAgICB9CiAjZW5kaWYKIAotICAg
IHN3aXRjaCAobm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7Ci0gICAgY2FzZSBBcnJheTo6QW55
VHlwZWRBcnJheToKKyAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsKICAgICBjYXNlIEFy
cmF5OjpTdHJpbmc6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIFNo
b3VsZCBoYXZlIGJlZW4gYSBQaGFudG9tKFN0cmluZzopCiAgICAgICAgIHJldHVybjsKQEAgLTg4
NSw3ICs4ODUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FycmF5KE5vZGUqIG5vZGUp
CiAgICAgICAgIG1faml0LmxvYWQ4KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEpT
Q2VsbDo6aW5kZXhpbmdUeXBlQW5kTWlzY09mZnNldCgpKSwgdGVtcEdQUi52YWx1ZSgpKTsKICAg
ICAgICAgc3BlY3VsYXRpb25DaGVjaygKICAgICAgICAgICAgIEJhZEluZGV4aW5nVHlwZSwgSlNW
YWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIG51bGxwdHIsCi0gICAgICAgICAgICBq
dW1wU2xvd0ZvclVud2FudGVkQXJyYXlNb2RlKHRlbXBHUFIudmFsdWUoKSwgbm9kZS0+YXJyYXlN
b2RlKCkpKTsKKyAgICAgICAgICAgIGp1bXBTbG93Rm9yVW53YW50ZWRBcnJheU1vZGUodGVtcEdQ
Ui52YWx1ZSgpLCBhcnJheU1vZGUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2Ug
QXJyYXk6OkRpcmVjdEFyZ3VtZW50czoKQEAgLTg5NCwxMiArODk0LDE2IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNoZWNrQXJyYXkoTm9kZSogbm9kZSkKICAgICBjYXNlIEFycmF5OjpTY29wZWRB
cmd1bWVudHM6CiAgICAgICAgIHNwZWN1bGF0ZUNlbGxUeXBlV2l0aG91dFR5cGVGaWx0ZXJpbmco
bm9kZS0+Y2hpbGQxKCksIGJhc2VSZWcsIFNjb3BlZEFyZ3VtZW50c1R5cGUpOwogICAgICAgICBi
cmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBzcGVjdWxhdGVDZWxsVHlwZVdpdGhvdXRUeXBl
RmlsdGVyaW5nKAotICAgICAgICAgICAgbm9kZS0+Y2hpbGQxKCksIGJhc2VSZWcsCi0gICAgICAg
ICAgICB0eXBlRm9yVHlwZWRBcnJheVR5cGUobm9kZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5
cGUoKSkpOworICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBub2Rl
LCBhcnJheU1vZGUuaXNTb21lVHlwZWRBcnJheVZpZXcoKSk7CisKKyAgICAgICAgaWYgKGFycmF5
TW9kZS50eXBlKCkgPT0gQXJyYXk6OkFueVR5cGVkQXJyYXkpCisgICAgICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJhc2VSZWcpLCBu
dWxscHRyLCBtX2ppdC5icmFuY2hJZk5vdFR5cGUoYmFzZVJlZywgSlNUeXBlKEZpcnN0VHlwZWRB
cnJheVR5cGUpLCBKU1R5cGUoTGFzdFR5cGVkQXJyYXlUeXBlRXhjbHVkaW5nRGF0YVZpZXcpKSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNwZWN1bGF0ZUNlbGxUeXBlV2l0aG91dFR5cGVG
aWx0ZXJpbmcobm9kZS0+Y2hpbGQxKCksIGJhc2VSZWcsIHR5cGVGb3JUeXBlZEFycmF5VHlwZShh
cnJheU1vZGUudHlwZWRBcnJheVR5cGUoKSkpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAg
fQogCiAgICAgaWYgKGlzRW1wdHkuaXNTZXQoKSkKICAgICAgICAgaXNFbXB0eS5saW5rKCZtX2pp
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9C
My5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5k
ZXggOTY3MDE5NGVlZDkxZjgxNWE2OWNjNWU3YTZkOTIyY2E4YjljMDQ4ZC4uODAzZDcyNWY1MzAw
YTdlNTJiNWM1MWI5ZTE4ODg3OTNhNTBmYTA0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTc5NDksMTEgKzE3OTQ5LDE1IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5K
U0NlbGxfdHlwZUluZm9UeXBlKSwKICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKFNj
b3BlZEFyZ3VtZW50c1R5cGUpKTsKICAgICAgICAgICAgIAotICAgICAgICBkZWZhdWx0OgorICAg
ICAgICBkZWZhdWx0OiB7CisgICAgICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwg
YXJyYXlNb2RlLmlzU29tZVR5cGVkQXJyYXlWaWV3KCkpOworICAgICAgICAgICAgaWYgKGFycmF5
TW9kZS50eXBlKCkgPT0gQXJyYXk6OkFueVR5cGVkQXJyYXkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGlzVHlwZWRBcnJheVZpZXcoY2VsbCk7CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQuZXF1
YWwoCiAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5K
U0NlbGxfdHlwZUluZm9UeXBlKSwKICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKHR5
cGVGb3JUeXBlZEFycmF5VHlwZShhcnJheU1vZGUudHlwZWRBcnJheVR5cGUoKSkpKTsKICAgICAg
ICAgfQorICAgICAgICB9CiAgICAgfQogICAgIAogICAgIExWYWx1ZSBpc0Z1bmN0aW9uKExWYWx1
ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCBmOWQ1Nzc0NGU3NzMyOTk2MGI3
NjQ1MGQxMjc5OTU0ZWZlY2VkMDZmLi4xMDY0MTRjYmJkNGIzMWUyOTE3YmY5N2M2MTUyZmNiYzU2
MGE1N2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgK
QEAgLTk4MCwxNCArOTgwLDMxIEBAIHB1YmxpYzoKICAgICAgICAgICAgIEJlbG93LCBBZGRyZXNz
KGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoT2Jq
ZWN0VHlwZSkpOwogICAgIH0KICAgICAKLSAgICBKdW1wIGJyYW5jaElmVHlwZShHUFJSZWcgY2Vs
bEdQUiwgSlNUeXBlIHR5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gYnJhbmNoOChFcXVhbCwg
QWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZElt
bTMyKHR5cGUpKTsKKyAgICAvLyBOb3RlIHRoYXQgZmlyc3QgYW5kIGxhc3QgYXJlIGluY2x1c2l2
ZS4KKyAgICBKdW1wIGJyYW5jaElmVHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIGZpcnN0LCBP
cHRpb25hbDxKU1R5cGU+IGxhc3QgPSBXVEY6Om51bGxvcHQpCisgICAgeworICAgICAgICBpZiAo
bGFzdCAmJiAqbGFzdCAhPSBmaXJzdCkgeworICAgICAgICAgICAgQVNTRVJUKCpsYXN0ID4gZmly
c3QpOworICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBzY3JhdGNoUmVnaXN0ZXIoKTsKKyAg
ICAgICAgICAgIGxvYWQ4KEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZz
ZXQoKSksIHNjcmF0Y2gpOworICAgICAgICAgICAgc3ViMzIoVHJ1c3RlZEltbTMyKGZpcnN0KSwg
c2NyYXRjaCk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoMzIoQmVsb3dPckVxdWFsLCBzY3Jh
dGNoLCBUcnVzdGVkSW1tMzIoKmxhc3QgLSBmaXJzdCkpOworICAgICAgICB9CisKKyAgICAgICAg
cmV0dXJuIGJyYW5jaDgoRXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5
cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihmaXJzdCkpOwogICAgIH0KLSAgICAKLSAgICBKdW1w
IGJyYW5jaElmTm90VHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIHR5cGUpCisKKyAgICBKdW1w
IGJyYW5jaElmTm90VHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIGZpcnN0LCBPcHRpb25hbDxK
U1R5cGU+IGxhc3QgPSBXVEY6Om51bGxvcHQpCiAgICAgewotICAgICAgICByZXR1cm4gYnJhbmNo
OChOb3RFcXVhbCwgQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgp
KSwgVHJ1c3RlZEltbTMyKHR5cGUpKTsKKyAgICAgICAgaWYgKGxhc3QgJiYgKmxhc3QgIT0gZmly
c3QpIHsKKyAgICAgICAgICAgIEFTU0VSVCgqbGFzdCA+IGZpcnN0KTsKKyAgICAgICAgICAgIEdQ
UlJlZyBzY3JhdGNoID0gc2NyYXRjaFJlZ2lzdGVyKCk7CisgICAgICAgICAgICBsb2FkOChBZGRy
ZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBzY3JhdGNoKTsKKyAg
ICAgICAgICAgIHN1YjMyKFRydXN0ZWRJbW0zMihmaXJzdCksIHNjcmF0Y2gpOworICAgICAgICAg
ICAgcmV0dXJuIGJyYW5jaDMyKEFib3ZlLCBzY3JhdGNoLCBUcnVzdGVkSW1tMzIoKmxhc3QgLSBm
aXJzdCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGJyYW5jaDgoTm90RXF1YWwsIEFk
ZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0z
MihmaXJzdCkpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiByZW5hbWUgdGhlc2UgdG8gbWFrZSBp
dCBjbGVhciB0aGF0IHRoZXkgcmVxdWlyZSB0aGVpciBpbnB1dCB0byBiZSBhIGNlbGwuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCmluZGV4IGIyZTE2MjlkZWE5OWYwMzExNzY4
Y2JiYWRlMWQyODQ0N2M4YjI1NjguLjQ1NWI2MDU0MDlhYmUzZWJmYjQxYzNiMmQ2YmVhMjRmMzU2
ZjUwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCkBAIC0xMzIsNiAr
MTMyLDcgQEAgZW51bSBKU1R5cGUgOiB1aW50OF90IHsKIAogc3RhdGljIGNvbnN0ZXhwciB1aW50
MzJfdCBGaXJzdFR5cGVkQXJyYXlUeXBlID0gSW50OEFycmF5VHlwZTsKIHN0YXRpYyBjb25zdGV4
cHIgdWludDMyX3QgTGFzdFR5cGVkQXJyYXlUeXBlID0gRGF0YVZpZXdUeXBlOworc3RhdGljIGNv
bnN0ZXhwciB1aW50MzJfdCBMYXN0VHlwZWRBcnJheVR5cGVFeGNsdWRpbmdEYXRhVmlldyA9IExh
c3RUeXBlZEFycmF5VHlwZSAtIDE7CiAKIC8vIExhc3RPYmplY3RUeXBlIHNob3VsZCBiZSBNYXhK
U1R5cGUgKG5vdCBMYXN0SlNDT2JqZWN0VHlwZSkgc2luY2UgZW1iZWRkZXJzIGNhbiBhZGQgdGhl
aXIgZXh0ZW5kZWQgb2JqZWN0IHR5cGVzIGFmdGVyIHRoZSBlbnVtcyBsaXN0ZWQgaW4gSlNUeXBl
Lgogc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBGaXJzdE9iamVjdFR5cGUgPSBPYmplY3RUeXBl
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRl
eCAwOWQyZDIxNTIyN2Y0MmZmZDExNDFmNTgwMTY3NzczZTYzODY5Nzc4Li4yYzdjZmM3ZjBlYjQ1
N2Q1ODU2YzIwYjRkMGNiODU2ZThmNDYzY2ZiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxv
ZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA1LTExICBL
ZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIEdldEFycmF5
TGVuZ3RoIHNob3VsZCBiZSAiYmxlc3NlZCIgZHVyaW5nIEZpeHVwIHBoYXNlIGluIHRoZSBERkcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTU0MAor
CisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgICogc3RyZXNzL2dl
dC1hcnJheS1sZW5ndGgtbm9kZS1zaG91bGQtYmUtYmxlc3NlZC1pbi1maXh1cC5qczogQWRkZWQu
CisgICAgICAgIChmb28pOgorCiAyMDIwLTA1LTExICBQYXVsbyBNYXRvcyAgPHBtYXRvc0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFNraXAgb24gYXJtdjcvbGludXggc3RyZXNzL2FycmF5LWJ1ZmZl
ci12aWV3LXdhdGNocG9pbnQtY2FuLWJlLWZpcmVkLWluLXJlYWxseS1hZGQtaW4tZGZnLmpzCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nZXQtYXJyYXktbGVuZ3RoLW5vZGUtc2hvdWxkLWJl
LWJsZXNzZWQtaW4tZml4dXAuanMgYi9KU1Rlc3RzL3N0cmVzcy9nZXQtYXJyYXktbGVuZ3RoLW5v
ZGUtc2hvdWxkLWJlLWJsZXNzZWQtaW4tZml4dXAuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM5OGQ1YThiNTQ3
NWY0MTU3MzBmMGM0ZTk4MzIwYjg2NjY3YmRlNgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
c3RyZXNzL2dldC1hcnJheS1sZW5ndGgtbm9kZS1zaG91bGQtYmUtYmxlc3NlZC1pbi1maXh1cC5q
cwpAQCAtMCwwICsxLDggQEAKK2Z1bmN0aW9uIGZvbygpIHsKKyAgZm9yIChsZXQgaT0wOyBpPDEw
MDAwOyBpKyspIHt9CisgIGZvciAoY29uc3QgcSBvZiBBcnJheS5wcm90b3R5cGUpIHt9Cit9CisK
K2ZvciAobGV0IGk9MDsgaTwxMDAwOyBpKyspIHsKKyAgZm9vKCk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399184</attachid>
            <date>2020-05-12 15:06:28 -0700</date>
            <delta_ts>2020-05-14 13:07:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211540-20200512150627.patch</filename>
            <type>text/plain</type>
            <size>20977</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
ZmVlNTlhZjA3MDQ5OTU4ZjJhODMyMjMwMjdlNDUxNzZiYjY4YzdhLi5lYzA2ZTg4MDQzMjgwOTQw
NzNjMmE1OTdhMTc1NjM2MWNmOWQ2MzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAyMC0wNS0xMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBHZXRBcnJheUxlbmd0aCBzaG91bGQgYmUgImJsZXNzZWQiIGR1cmlu
ZyBGaXh1cCBwaGFzZSBpbiB0aGUgREZHCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTE1NDAKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0
aS4KKworICAgICAgICBJZiB3ZSBnb3QgYW4gQXJyYXlNb2RlIGR1cmluZyBieXRlY29kZSBwYXJz
aW5nIGZvci1vZiB0aGF0IGV4cGVjdHMKKyAgICAgICAgdG8gYmUgY29uZmlndXJlZCBkdXJpbmcg
Rml4dXAsIHRoZW4gcmlnaHQgbm93IHdlIHdpbGwgY3Jhc2ggb24KKyAgICAgICAgR2V0QXJyYXlM
ZW5ndGguIFRoaXMgZml4ZXMgR2V0QXJyYXlMZW5ndGggdG8gcHJvcGVybHkgY2FsbAorICAgICAg
ICBibGVzc0FycmF5T3BlcmF0aW9uIGFuZCBmaXhlcyBjbG9iYmVyaXplIHRvIGtub3cgdGhhdAor
ICAgICAgICBHZXRBcnJheUxlbmd0aCBjb3VsZCBoYXZlIGEgRm9yY2VFeGl0IEFycmF5TW9kZSBi
cmllZmx5IGJlZm9yZQorICAgICAgICBiZWluZyBjbGVhbmVkIHVwLgorCisgICAgICAgIFdoZW4g
Ymxlc3NpbmcgR2V0QXJyYXlMZW5ndGggd2UgY2FuIG5vdyBwcm9kdWNlIENoZWNrQXJyYXlzIHRo
YXQKKyAgICAgICAgaGF2ZSBhbiBBbnlUeXBlZEFycmF5IEFycmF5TW9kZTo6VHlwZS4gU28gdGhp
cyBwYXRjaCBleHBhbmRzCisgICAgICAgIENoZWNrQXJyYXkgdG8gcHJvcGVybHkgaGFuZGxlIHRo
YXQuIFRvIGhlbHAgd2l0aCB0aGlzIHdlIGV4cGFuZAorICAgICAgICBicmFuY2hJZlR5cGUgdG8g
aGF2ZSBhIHN0YXJ0aW5nIEpTVHlwZSBhbmQgYW4gb3B0aW9uYWwgZW5kaW5nCisgICAgICAgIEpT
VHlwZS4gQWRkaXRpb25hbGx5LCB0byBwcmV2ZW50IGV4dHJhIGNoZWNrcyBBSSBoYXMgYmVlbiB0
YXVnaHQKKyAgICAgICAgdG8gZm9sZCBtb3JlIEFycmF5TW9kZXMgc28gd2Ugc2hvdWxkIGFsbW9z
dCBhbHdheXMgYXZvaWQgbmV3CisgICAgICAgIHJ1bnRpbWUgY2hlY2tzLgorCisgICAgICAgIExh
c3RseSwgaW1wcm92ZSB0aGUgcXVhbGl0eSBvZiByZWZpbmVtZW50IGZvciBHZXRBcnJheUxlbmd0
aC1saWtlCisgICAgICAgIG5vZGVzLiAgRmlyc3RseSwgYnkgbm90aW5nIHRoYXQgR2V0QXJyYXlM
ZW5ndGgtbGlrZSBub2RlcyBkb24ndAorICAgICAgICBjYXJlIGFib3V0IFVuZGVjaWRlZG5lc3Mg
d2UgY2FuIHByZXZlbnQgY29udmVydGluZyB0byBhIEdlbmVyaWMKKyAgICAgICAgQXJyYXlNb2Rl
OjpUeXBlLiBBbHNvLCBHZXRBcnJheUxlbmd0aCB3b3VsZCBwcmV2aW91c2x5IHBhc3MgaXQncwor
ICAgICAgICBvd24gc3BlY3VsYXRpb24gZm9yIHRoZSBzcGVjdWxhdGlvbiBvZiB0aGUgaW5kZXgs
IHdoaWNoIGxvZ2ljYWxseQorICAgICAgICBkb2Vzbid0IG1ha2Ugc2Vuc2UuIFNvIHRoaXMgcGF0
Y2ggYWRkcyBhIG5ldyBjb25zdGFudCwgd2hpY2ggaXMKKyAgICAgICAgU3BlY0ludDMyT25seSwg
dGhhdCBjYW4gYmUgcGFzc2VkIGlmIGEgREZHIG5vZGUgZG9lc24ndCBoYXZlIGFuCisgICAgICAg
IGluZGV4LgorCisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKEpT
Qzo6dGVzdEJyYW5jaElmVHlwZSk6CisgICAgICAgIChKU0M6OnRlc3RCcmFuY2hJZk5vdFR5cGUp
OgorICAgICAgICAoSlNDOjpydW4pOgorICAgICAgICAqIGRmZy9ERkdBcnJheU1vZGUuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OmNhbkJlY29tZUdldEFycmF5TGVuZ3RoKToKKyAgICAgICAgKEpT
Qzo6REZHOjpBcnJheU1vZGU6OnJlZmluZSBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6QXJy
YXlNb2RlOjphbHJlYWR5Q2hlY2tlZCBjb25zdCk6CisgICAgICAgICogZGZnL0RGR0FycmF5TW9k
ZS5oOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6
Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4
dXBQaGFzZTo6YXR0ZW1wdFRvTWFrZUdldEFycmF5TGVuZ3RoKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
aGVja0FycmF5KToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNBcnJheVR5cGVGb3JDaGVja0FycmF5KToK
KyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5
SGVscGVyczo6YnJhbmNoSWZUeXBlKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpi
cmFuY2hJZk5vdFR5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlLmg6CisKIDIwMjAtMDUt
MTIgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtj
bGFuZy10aWR5XSBSdW4gbW9kZXJuaXplLXVzZS1vdmVycmlkZSBvdmVyIEpTQywgdGhlbiBlbnN1
cmUgYXMgbXVjaCBhcyBwb3NzaWJsZSBpcyBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAppbmRleCA0YzlmMWRlODE5Mzc5M2I3MDk4YmYwYjlhOTlk
MTAzNzFjYjkxNjczLi4wZjI2M2VhYmQyYWExZmI2YTA4ZGJlNmU5NGZlMDVmNTAwZDFmMWFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcApAQCAtMjE2
MSw2ICsyMTYxLDc0IEBAIHN0YXRpYyB2b2lkIHRlc3RDYWdlUHJlc2VydmVzUEFDRmFpbHVyZUJp
dCgpCiAjZW5kaWYKIH0KIAorc3RhdGljIHZvaWQgdGVzdEJyYW5jaElmVHlwZSgpCit7CisgICAg
dXNpbmcgSlNDOjpKU1R5cGU7CisgICAgc3RydWN0IENlbGxMaWtlIHsKKyAgICAgICAgdWludDMy
X3Qgc3RydWN0dXJlSUQ7CisgICAgICAgIHVpbnQ4X3QgaW5kZXhpbmdUeXBlOworICAgICAgICBK
U1R5cGUgdHlwZTsKKyAgICB9OworICAgIENIRUNLX0VRKEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zm
c2V0KCksIE9CSkVDVF9PRkZTRVRPRihDZWxsTGlrZSwgdHlwZSkpOworCisgICAgYXV0byBpc1R5
cGUgPSBjb21waWxlKFtdIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICBlbWl0RnVuY3Rp
b25Qcm9sb2d1ZShqaXQpOworICAgICAgICBhdXRvIGlzVHlwZSA9IGppdC5icmFuY2hJZlR5cGUo
R1BSSW5mbzo6YXJndW1lbnRHUFIwLCBKU1R5cGUoRmlyc3RUeXBlZEFycmF5VHlwZSksIEpTVHlw
ZShMYXN0VHlwZWRBcnJheVR5cGVFeGNsdWRpbmdEYXRhVmlldykpOworICAgICAgICBqaXQubW92
ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihmYWxzZSksIEdQUkluZm86OnJldHVyblZhbHVl
R1BSKTsKKyAgICAgICAgYXV0byBkb25lID0gaml0Lmp1bXAoKTsKKyAgICAgICAgaXNUeXBlLmxp
bmsoJmppdCk7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHRy
dWUpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgIGRvbmUubGluaygmaml0KTsK
KyAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgaml0LnJldCgpOwor
ICAgIH0pOworCisgICAgQ2VsbExpa2UgY2VsbDsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBKU0M6
OkZpcnN0VHlwZWRBcnJheVR5cGU7IGkgPD0gSlNDOjpMYXN0VHlwZWRBcnJheVR5cGVFeGNsdWRp
bmdEYXRhVmlldzsgKytpKSB7CisgICAgICAgIGNlbGwudHlwZSA9IEpTVHlwZShpKTsKKyAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPGJvb2w+KGlzVHlwZSwgJmNlbGwpLCB0cnVlKTsKKyAgICB9CisK
KyAgICBjZWxsLnR5cGUgPSBKU1R5cGUoTGFzdFR5cGVkQXJyYXlUeXBlKTsKKyAgICBDSEVDS19F
UShpbnZva2U8Ym9vbD4oaXNUeXBlLCAmY2VsbCksIGZhbHNlKTsKKyAgICBjZWxsLnR5cGUgPSBK
U1R5cGUoRmlyc3RUeXBlZEFycmF5VHlwZSAtIDEpOworICAgIENIRUNLX0VRKGludm9rZTxib29s
Pihpc1R5cGUsICZjZWxsKSwgZmFsc2UpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0QnJhbmNoSWZO
b3RUeXBlKCkKK3sKKyAgICB1c2luZyBKU0M6OkpTVHlwZTsKKyAgICBzdHJ1Y3QgQ2VsbExpa2Ug
eworICAgICAgICB1aW50MzJfdCBzdHJ1Y3R1cmVJRDsKKyAgICAgICAgdWludDhfdCBpbmRleGlu
Z1R5cGU7CisgICAgICAgIEpTVHlwZSB0eXBlOworICAgIH07CisgICAgQ0hFQ0tfRVEoSlNDZWxs
Ojp0eXBlSW5mb1R5cGVPZmZzZXQoKSwgT0JKRUNUX09GRlNFVE9GKENlbGxMaWtlLCB0eXBlKSk7
CisKKyAgICBhdXRvIGlzTm90VHlwZSA9IGNvbXBpbGUoW10gKENDYWxsSGVscGVycyYgaml0KSB7
CisgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CisgICAgICAgIGF1dG8gaXNOb3RU
eXBlID0gaml0LmJyYW5jaElmTm90VHlwZShHUFJJbmZvOjphcmd1bWVudEdQUjAsIEpTVHlwZShG
aXJzdFR5cGVkQXJyYXlUeXBlKSwgSlNUeXBlKExhc3RUeXBlZEFycmF5VHlwZUV4Y2x1ZGluZ0Rh
dGFWaWV3KSk7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGZh
bHNlKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICBhdXRvIGRvbmUgPSBqaXQu
anVtcCgpOworICAgICAgICBpc05vdFR5cGUubGluaygmaml0KTsKKyAgICAgICAgaml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIodHJ1ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BS
KTsKKyAgICAgICAgZG9uZS5saW5rKCZqaXQpOworICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1
ZShqaXQpOworICAgICAgICBqaXQucmV0KCk7CisgICAgfSk7CisKKyAgICBDZWxsTGlrZSBjZWxs
OworICAgIGZvciAodW5zaWduZWQgaSA9IEpTQzo6Rmlyc3RUeXBlZEFycmF5VHlwZTsgaSA8PSBK
U0M6Okxhc3RUeXBlZEFycmF5VHlwZUV4Y2x1ZGluZ0RhdGFWaWV3OyArK2kpIHsKKyAgICAgICAg
Y2VsbC50eXBlID0gSlNUeXBlKGkpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Ym9vbD4oaXNO
b3RUeXBlLCAmY2VsbCksIGZhbHNlKTsKKyAgICB9CisKKyAgICBjZWxsLnR5cGUgPSBKU1R5cGUo
TGFzdFR5cGVkQXJyYXlUeXBlKTsKKyAgICBDSEVDS19FUShpbnZva2U8Ym9vbD4oaXNOb3RUeXBl
LCAmY2VsbCksIHRydWUpOworICAgIGNlbGwudHlwZSA9IEpTVHlwZShGaXJzdFR5cGVkQXJyYXlU
eXBlIC0gMSk7CisgICAgQ0hFQ0tfRVEoaW52b2tlPGJvb2w+KGlzTm90VHlwZSwgJmNlbGwpLCB0
cnVlKTsKK30KKwogI2RlZmluZSBSVU4odGVzdCkgZG8geyAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAogICAgICAgICBpZiAoIXNob3VsZFJ1bigjdGVzdCkpICAgICAgICAgICAgICAgICAgXAog
ICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMjI4
Myw2ICsyMzUxLDkgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogCiAgICAgUlVOKHRl
c3RDYWdlUHJlc2VydmVzUEFDRmFpbHVyZUJpdCgpKTsKIAorICAgIFJVTih0ZXN0QnJhbmNoSWZU
eXBlKCkpOworICAgIFJVTih0ZXN0QnJhbmNoSWZOb3RUeXBlKCkpOworCiAgICAgUlVOKHRlc3RP
ckltbU1lbSgpKTsKIAogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKaW5kZXggZjMyMjQ1ZmY3ZTExYTUwZTE1MTJkNDE0
MTg2MDk5MjIzMzU4ZGEwMy4uM2Y0ODBmY2JmNGUwZWFmOWYzZDQ0ZDMwNTQwYWZjNDI2MTdjYjFh
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcApAQCAtMTg1
LDYgKzE4NSw4IEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OmZyb21PYnNlcnZlZChjb25zdCBDb25j
dXJyZW50SlNMb2NrZXImIGxvY2tlciwgQXJyYXlQcm9maWxlCiAKIHN0YXRpYyBib29sIGNhbkJl
Y29tZUdldEFycmF5TGVuZ3RoKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKIHsKKyAgICBpZiAo
bm9kZS0+b3AoKSA9PSBHZXRBcnJheUxlbmd0aCkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
aWYgKG5vZGUtPm9wKCkgIT0gR2V0QnlJZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1
dG8gdWlkID0gbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLnVpZCgpOwpAQCAtMjQwLDEyICsy
NDIsMTYgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6cmVmaW5lKAogICAgICAgICAgICAgcmV0dXJu
IHdpdGhUeXBlQW5kQ29udmVyc2lvbihBcnJheTo6RG91YmxlLCBBcnJheTo6Q29udmVydCk7CiAg
ICAgICAgIHJldHVybiB3aXRoVHlwZUFuZENvbnZlcnNpb24oQXJyYXk6OkNvbnRpZ3VvdXMsIEFy
cmF5OjpDb252ZXJ0KTsKICAgICBjYXNlIEFycmF5OjpVbmRlY2lkZWQ6IHsKKyAgICAgICAgLy8g
QXMgbG9uZyBhcyB3ZSBoYXZlIGEgSlNBcnJheSBnZXR0aW5nIGl0cyBsZW5ndGggc2hvdWxkbid0
IHJlcXVpcmUgYW55IHNhbmUgY2hhaW5uZXNzLgorICAgICAgICBpZiAoY2FuQmVjb21lR2V0QXJy
YXlMZW5ndGgoZ3JhcGgsIG5vZGUpICYmIGlzSlNBcnJheSgpKQorICAgICAgICAgICAgcmV0dXJu
ICp0aGlzOworCiAgICAgICAgIC8vIElmIHdlIGhhdmUgYW4gT3JpZ2luYWxBcnJheSBhbmQgdGhl
IEpTQXJyYXkgcHJvdG90eXBlIGNoYWluIGlzIHNhbmUsCiAgICAgICAgIC8vIGFueSBpbmRleGVk
IGFjY2VzcyBhbHdheXMgcmV0dXJuIHVuZGVmaW5lZC4gV2UgaGF2ZSBhIGZhc3QgcGF0aCBmb3Ig
dGhhdC4KICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGdyYXBoLmdsb2Jh
bE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpOwogICAgICAgICBTdHJ1Y3R1cmUqIGFy
cmF5UHJvdG90eXBlU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5hcnJheVByb3RvdHlwZSgpLT5z
dHJ1Y3R1cmUoZ3JhcGgubV92bSk7CiAgICAgICAgIFN0cnVjdHVyZSogb2JqZWN0UHJvdG90eXBl
U3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKS0+c3RydWN0dXJlKGdy
YXBoLm1fdm0pOwotICAgICAgICBpZiAoKG5vZGUtPm9wKCkgPT0gR2V0QnlWYWwgfHwgY2FuQmVj
b21lR2V0QXJyYXlMZW5ndGgoZ3JhcGgsIG5vZGUpKQorICAgICAgICBpZiAobm9kZS0+b3AoKSA9
PSBHZXRCeVZhbAogICAgICAgICAgICAgJiYgaXNKU0FycmF5V2l0aE9yaWdpbmFsU3RydWN0dXJl
KCkKICAgICAgICAgICAgICYmICFncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50
aWMsIE91dE9mQm91bmRzKQogICAgICAgICAgICAgJiYgYXJyYXlQcm90b3R5cGVTdHJ1Y3R1cmUt
PnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SXNTdGlsbFZhbGlkKCkKQEAgLTI5Nyw3ICszMDMsNyBA
QCBBcnJheU1vZGUgQXJyYXlNb2RlOjpyZWZpbmUoCiAgICAgICAgIGlmIChpc0RpcmVjdEFyZ3Vt
ZW50c1NwZWN1bGF0aW9uKGJhc2UpIHx8IGlzU2NvcGVkQXJndW1lbnRzU3BlY3VsYXRpb24oYmFz
ZSkpIHsKICAgICAgICAgICAgIC8vIEhhbmRsZSBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIGFzIGdl
bmVyaWMgYWNjZXNzZXMuCiAgICAgICAgICAgICBBcnJheTo6VHlwZSB0eXBlID0gaXNEaXJlY3RB
cmd1bWVudHNTcGVjdWxhdGlvbihiYXNlKSA/IEFycmF5OjpEaXJlY3RBcmd1bWVudHMgOiBBcnJh
eTo6U2NvcGVkQXJndW1lbnRzOwotICAgICAgICAgICAgaWYgKGdyYXBoLmhhc0V4aXRTaXRlKG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYywgT3V0T2ZCb3VuZHMpIHx8ICFpc0luQm91bmRzKCkpIHsKKyAg
ICAgICAgICAgIGlmICgoZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBP
dXRPZkJvdW5kcykgfHwgIWlzSW5Cb3VuZHMoKSkgJiYgIWNhbkJlY29tZUdldEFycmF5TGVuZ3Ro
KGdyYXBoLCBub2RlKSkgewogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IE9PQiBh
Y2Nlc3MgZm9yIFNjb3BlZEFyZ3VtZW50cy4KICAgICAgICAgICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NTk2CiAgICAgICAgICAgICAgICAgaWYg
KHR5cGUgPT0gQXJyYXk6OkRpcmVjdEFyZ3VtZW50cykKQEAgLTQyMCw2ICs0MjYsMTIgQEAgYm9v
bCBBcnJheU1vZGU6OmFscmVhZHlDaGVja2VkKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29u
c3QgQWJzdHJhY3RWYWx1ZSYgdmEKIHsKICAgICBBU1NFUlQoaXNTcGVjaWZpYygpKTsKIAorICAg
IGlmIChpc1NvbWVUeXBlZEFycmF5VmlldygpKSB7CisgICAgICAgIGlmICh0eXBlKCkgPT0gQXJy
YXk6OkFueVR5cGVkQXJyYXkpCisgICAgICAgICAgICByZXR1cm4gdmFsdWUuaXNUeXBlKFNwZWNU
eXBlZEFycmF5Vmlldyk7CisgICAgICAgIHJldHVybiB2YWx1ZS5pc1R5cGUoc3BlY3VsYXRpb25G
cm9tVHlwZWRBcnJheVR5cGUodHlwZWRBcnJheVR5cGUoKSkpOworICAgIH0KKwogICAgIEluZGV4
aW5nVHlwZSBpbmRleGluZ01vZGVNYXNrID0gSXNBcnJheSB8IEluZGV4aW5nU2hhcGVNYXNrOwog
ICAgIGlmIChhY3Rpb24oKSA9PSBBcnJheTo6V3JpdGUpCiAgICAgICAgIGluZGV4aW5nTW9kZU1h
c2sgfD0gQ29weU9uV3JpdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0FycmF5TW9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUu
aAppbmRleCBmZGI3MWU3NjRkMDU2MDI2MTMxMmUzYjZhOWYxZTM5NWY1YjkyMmViLi5jMzA0NjU1
NGJiY2IxMTk2ZTAxNTc4MDYwNTIwZDYwY2YxMjgwM2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQXJyYXlNb2RlLmgKQEAgLTIzNyw2ICsyMzcsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBBcnJheU1vZGUodHlwZSwgYXJyYXlDbGFzcygpLCBzcGVjdWxhdGlvbigpLCBjb252
ZXJzaW9uLCBhY3Rpb24oKSk7CiAgICAgfQogICAgIAorICAgIHN0YXRpYyBjb25zdGV4cHIgU3Bl
Y3VsYXRlZFR5cGUgdW51c2VkSW5kZXhTcGVjdWxhdGVkVHlwZSA9IFNwZWNJbnQzMk9ubHk7CiAg
ICAgQXJyYXlNb2RlIHJlZmluZShHcmFwaCYsIE5vZGUqLCBTcGVjdWxhdGVkVHlwZSBiYXNlLCBT
cGVjdWxhdGVkVHlwZSBpbmRleCwgU3BlY3VsYXRlZFR5cGUgdmFsdWUgPSBTcGVjTm9uZSkgY29u
c3Q7CiAgICAgCiAgICAgYm9vbCBhbHJlYWR5Q2hlY2tlZChHcmFwaCYsIE5vZGUqLCBjb25zdCBB
YnN0cmFjdFZhbHVlJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJl
cml6ZS5oCmluZGV4IGE3Zjc5NmQ3MTc4NDlkZDYwYzMxOGViZDU4ZjlmMTUyZDBmZDYxY2EuLmMy
NWI5OTJhOGM3YmQ4ZjIxZjZjNWE1NWZmMTc3YmU2ODQ5Y2NmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0xMzQ4LDYgKzEzNDgsMTEgQEAgdm9pZCBj
bG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJl
YWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oQXJyYXlMZW5n
dGhMb2MsIE1pc2NGaWVsZHMsIG5vZGUtPmNoaWxkMSgpKSwgTGF6eU5vZGUobm9kZSkpOwogICAg
ICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGNhc2UgQXJyYXk6OkZvcmNlRXhpdDogeworICAg
ICAgICAgICAgd3JpdGUoU2lkZVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlQobW9kZS5pc1NvbWVUeXBl
ZEFycmF5VmlldygpKTsKICAgICAgICAgICAgIHJlYWQoTWlzY0ZpZWxkcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCAwZjBhYTQ0ZDZkNDk5ZDhm
NGIzZDA3NDI1NDdmYTg2NGQ2ZGU0YzQwLi45ZjM4YWEwOGI3NDZmY2Y4Y2EzNGNhYWUzYmYyM2Q1
MzlkMWU5MDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKQEAgLTIwMjUsNiArMjAyNSwxNCBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAg
Y2FzZSBHZXRBcnJheUxlbmd0aDogeworICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9
IG5vZGUtPmFycmF5TW9kZSgpLnJlZmluZShtX2dyYXBoLCBub2RlLCBub2RlLT5jaGlsZDEoKS0+
cHJlZGljdGlvbigpLCBBcnJheU1vZGU6OnVudXNlZEluZGV4U3BlY3VsYXRlZFR5cGUpOworICAg
ICAgICAgICAgLy8gV2UgZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIGdlbmVyaWMgYW5kIHdlIG9u
bHkgZW1pdCB0aGlzIGluIHRoZSBQYXJzZXIgd2hlbiB3ZSBoYXZlIGNoZWNrZWQgdGhlIHZhbHVl
IGlzIGFuIEFycmF5L1R5cGVkQXJyYXkuCisgICAgICAgICAgICBpZiAoYXJyYXlNb2RlLnR5cGUo
KSA9PSBBcnJheTo6R2VuZXJpYykKKyAgICAgICAgICAgICAgICBhcnJheU1vZGUgPSBhcnJheU1v
ZGUud2l0aFR5cGUoQXJyYXk6OkZvcmNlRXhpdCk7CisgICAgICAgICAgICBBU1NFUlQoYXJyYXlN
b2RlLmlzU3BlY2lmaWMoKSB8fCBhcnJheU1vZGUudHlwZSgpID09IEFycmF5OjpGb3JjZUV4aXQp
OworICAgICAgICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKGFycmF5TW9kZSk7CisgICAgICAgICAg
ICBibGVzc0FycmF5T3BlcmF0aW9uKG5vZGUtPmNoaWxkMSgpLCBFZGdlKCksIG5vZGUtPmNoaWxk
MigpLCBsZW5ndGhOZWVkc1N0b3JhZ2UpOworCiAgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2Vs
bFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAg
LTM1MjIsNyArMzUzMCw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAg
dm9pZCBibGVzc0FycmF5T3BlcmF0aW9uKEVkZ2UgYmFzZSwgRWRnZSBpbmRleCwgRWRnZSYgc3Rv
cmFnZUNoaWxkKQorICAgIHZvaWQgYmxlc3NBcnJheU9wZXJhdGlvbihFZGdlIGJhc2UsIEVkZ2Ug
aW5kZXgsIEVkZ2UmIHN0b3JhZ2VDaGlsZCwgYm9vbCAoKnN0b3JhZ2VDaGVjaykoY29uc3QgQXJy
YXlNb2RlJikgPSBjYW5DU0VTdG9yYWdlKQogICAgIHsKICAgICAgICAgTm9kZSogbm9kZSA9IG1f
Y3VycmVudE5vZGU7CiAgICAgICAgIApAQCAtMzU0Miw3ICszNTUwLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OiB7Ci0gICAg
ICAgICAgICBOb2RlKiBzdG9yYWdlID0gY2hlY2tBcnJheShub2RlLT5hcnJheU1vZGUoKSwgbm9k
ZS0+b3JpZ2luLCBiYXNlLm5vZGUoKSwgaW5kZXgubm9kZSgpKTsKKyAgICAgICAgICAgIE5vZGUq
IHN0b3JhZ2UgPSBjaGVja0FycmF5KG5vZGUtPmFycmF5TW9kZSgpLCBub2RlLT5vcmlnaW4sIGJh
c2Uubm9kZSgpLCBpbmRleC5ub2RlKCksIHN0b3JhZ2VDaGVjayk7CiAgICAgICAgICAgICBpZiAo
IXN0b3JhZ2UpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgCkBAIC0zODMx
LDcgKzM4MzksNyBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAg
YXJyYXlNb2RlID0gYXJyYXlNb2RlLnJlZmluZSgKLSAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUs
IG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCksIG5vZGUtPnByZWRpY3Rpb24oKSk7CisgICAg
ICAgICAgICBtX2dyYXBoLCBub2RlLCBub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpLCBBcnJh
eU1vZGU6OnVudXNlZEluZGV4U3BlY3VsYXRlZFR5cGUpOwogICAgICAgICAgICAgCiAgICAgICAg
IGlmIChhcnJheU1vZGUudHlwZSgpID09IEFycmF5OjpHZW5lcmljKSB7CiAgICAgICAgICAgICAv
LyBDaGVjayBpZiB0aGUgaW5wdXQgaXMgc29tZXRoaW5nIHRoYXQgd2UgY2FuJ3QgZ2V0IGFycmF5
IGxlbmd0aCBmb3IsIGJ1dCBmb3Igd2hpY2ggd2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggNjM2ODdmZWYwMDhkODliN2VlOGVmZjBj
YjE4YWE0NzU5ZTBiZmRjNy4uMDE5OTliOTAyN2JlNWVjMGU1M2FiNWYyMWU1ODZmODg4NTkyMzI2
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKQEAgLTgzMiwxMyArODMyLDE0IEBAIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBTcGVjdWxhdGl2
ZUpJVDo6anVtcFNsb3dGb3JVbndhbnRlZEFycmF5TW9kZShHUFJSZWcgdGVtcEdQCiAKIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJyYXkoTm9kZSogbm9kZSkKIHsKLSAgICBBU1NFUlQobm9k
ZS0+YXJyYXlNb2RlKCkuaXNTcGVjaWZpYygpKTsKLSAgICBBU1NFUlQoIW5vZGUtPmFycmF5TW9k
ZSgpLmRvZXNDb252ZXJzaW9uKCkpOworICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBub2RlLT5h
cnJheU1vZGUoKTsKKyAgICBBU1NFUlQoYXJyYXlNb2RlLmlzU3BlY2lmaWMoKSk7CisgICAgQVNT
RVJUKCFhcnJheU1vZGUuZG9lc0NvbnZlcnNpb24oKSk7CiAgICAgCiAgICAgU3BlY3VsYXRlQ2Vs
bE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgR1BSUmVnIGJhc2VSZWcg
PSBiYXNlLmdwcigpOwogICAgIAotICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5hbHJlYWR5Q2hl
Y2tlZChtX2ppdC5ncmFwaCgpLCBub2RlLCBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkp
KSkgeworICAgIGlmIChhcnJheU1vZGUuYWxyZWFkeUNoZWNrZWQobV9qaXQuZ3JhcGgoKSwgbm9k
ZSwgbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKSkpIHsKICAgICAgICAgLy8gV2UgY2Fu
IHB1cmdlIEVtcHR5IGNoZWNrIGNvbXBsZXRlbHkgaW4gdGhpcyBjYXNlIG9mIENoZWNrQXJyYXlP
ckVtcHR5IHNpbmNlIENlbGxVc2Ugb25seSBhY2NlcHRzIFNwZWNDZWxsIHwgU3BlY0VtcHR5Lgog
ICAgICAgICBBU1NFUlQodHlwZUZpbHRlckZvcihub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpICYg
U3BlY0VtcHR5KTsKICAgICAgICAgbm9SZXN1bHQobV9jdXJyZW50Tm9kZSk7CkBAIC04NDcsNyAr
ODQ4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tBcnJheShOb2RlKiBub2RlKQogCiAg
ICAgT3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiB0ZW1wOwogICAgIE9wdGlvbmFsPEdQUlJlZz4gdGVt
cEdQUjsKLSAgICBzd2l0Y2ggKG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgeworICAgIHN3aXRj
aCAoYXJyYXlNb2RlLnR5cGUoKSkgewogICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAgIGNhc2Ug
QXJyYXk6OkRvdWJsZToKICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgpAQCAtODcxLDggKzg3
Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJyYXkoTm9kZSogbm9kZSkKICAgICB9
CiAjZW5kaWYKIAotICAgIHN3aXRjaCAobm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7Ci0gICAg
Y2FzZSBBcnJheTo6QW55VHlwZWRBcnJheToKKyAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkp
IHsKICAgICBjYXNlIEFycmF5OjpTdHJpbmc6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7IC8vIFNob3VsZCBoYXZlIGJlZW4gYSBQaGFudG9tKFN0cmluZzopCiAgICAgICAg
IHJldHVybjsKQEAgLTg4NSw3ICs4ODUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0Fy
cmF5KE5vZGUqIG5vZGUpCiAgICAgICAgIG1faml0LmxvYWQ4KE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKGJhc2VSZWcsIEpTQ2VsbDo6aW5kZXhpbmdUeXBlQW5kTWlzY09mZnNldCgpKSwgdGVtcEdQ
Ui52YWx1ZSgpKTsKICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKICAgICAgICAgICAgIEJhZElu
ZGV4aW5nVHlwZSwgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIG51bGxwdHIs
Ci0gICAgICAgICAgICBqdW1wU2xvd0ZvclVud2FudGVkQXJyYXlNb2RlKHRlbXBHUFIudmFsdWUo
KSwgbm9kZS0+YXJyYXlNb2RlKCkpKTsKKyAgICAgICAgICAgIGp1bXBTbG93Rm9yVW53YW50ZWRB
cnJheU1vZGUodGVtcEdQUi52YWx1ZSgpLCBhcnJheU1vZGUpKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIGNhc2UgQXJyYXk6OkRpcmVjdEFyZ3VtZW50czoKQEAgLTg5NCwxMiArODk0LDE2
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJyYXkoTm9kZSogbm9kZSkKICAgICBjYXNl
IEFycmF5OjpTY29wZWRBcmd1bWVudHM6CiAgICAgICAgIHNwZWN1bGF0ZUNlbGxUeXBlV2l0aG91
dFR5cGVGaWx0ZXJpbmcobm9kZS0+Y2hpbGQxKCksIGJhc2VSZWcsIFNjb3BlZEFyZ3VtZW50c1R5
cGUpOwogICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBzcGVjdWxhdGVDZWxs
VHlwZVdpdGhvdXRUeXBlRmlsdGVyaW5nKAotICAgICAgICAgICAgbm9kZS0+Y2hpbGQxKCksIGJh
c2VSZWcsCi0gICAgICAgICAgICB0eXBlRm9yVHlwZWRBcnJheVR5cGUobm9kZS0+YXJyYXlNb2Rl
KCkudHlwZWRBcnJheVR5cGUoKSkpOworICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgREZHX0FTU0VS
VChtX2dyYXBoLCBub2RlLCBhcnJheU1vZGUuaXNTb21lVHlwZWRBcnJheVZpZXcoKSk7CisKKyAg
ICAgICAgaWYgKGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkFueVR5cGVkQXJyYXkpCisgICAg
ICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRD
ZWxsKGJhc2VSZWcpLCBudWxscHRyLCBtX2ppdC5icmFuY2hJZk5vdFR5cGUoYmFzZVJlZywgSlNU
eXBlKEZpcnN0VHlwZWRBcnJheVR5cGUpLCBKU1R5cGUoTGFzdFR5cGVkQXJyYXlUeXBlRXhjbHVk
aW5nRGF0YVZpZXcpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNwZWN1bGF0ZUNlbGxU
eXBlV2l0aG91dFR5cGVGaWx0ZXJpbmcobm9kZS0+Y2hpbGQxKCksIGJhc2VSZWcsIHR5cGVGb3JU
eXBlZEFycmF5VHlwZShhcnJheU1vZGUudHlwZWRBcnJheVR5cGUoKSkpOwogICAgICAgICBicmVh
azsKICAgICB9CisgICAgfQogCiAgICAgaWYgKGlzRW1wdHkuaXNTZXQoKSkKICAgICAgICAgaXNF
bXB0eS5saW5rKCZtX2ppdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAKaW5kZXggOTY3MDE5NGVlZDkxZjgxNWE2OWNjNWU3YTZkOTIyY2E4YjljMDQ4
ZC4uODAzZDcyNWY1MzAwYTdlNTJiNWM1MWI5ZTE4ODg3OTNhNTBmYTA0MiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTc5NDksMTEgKzE3
OTQ5LDE1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIo
Y2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKICAgICAgICAgICAgICAgICBtX291
dC5jb25zdEludDMyKFNjb3BlZEFyZ3VtZW50c1R5cGUpKTsKICAgICAgICAgICAgIAotICAgICAg
ICBkZWZhdWx0OgorICAgICAgICBkZWZhdWx0OiB7CisgICAgICAgICAgICBERkdfQVNTRVJUKG1f
Z3JhcGgsIG1fbm9kZSwgYXJyYXlNb2RlLmlzU29tZVR5cGVkQXJyYXlWaWV3KCkpOworICAgICAg
ICAgICAgaWYgKGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkFueVR5cGVkQXJyYXkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGlzVHlwZWRBcnJheVZpZXcoY2VsbCk7CiAgICAgICAgICAgICBy
ZXR1cm4gbV9vdXQuZXF1YWwoCiAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIo
Y2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKICAgICAgICAgICAgICAgICBtX291
dC5jb25zdEludDMyKHR5cGVGb3JUeXBlZEFycmF5VHlwZShhcnJheU1vZGUudHlwZWRBcnJheVR5
cGUoKSkpKTsKICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogICAgIAogICAgIExWYWx1ZSBp
c0Z1bmN0aW9uKExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3Ap
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCBmOWQ1
Nzc0NGU3NzMyOTk2MGI3NjQ1MGQxMjc5OTU0ZWZlY2VkMDZmLi4xMDY0MTRjYmJkNGIzMWUyOTE3
YmY5N2M2MTUyZmNiYzU2MGE1N2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNz
ZW1ibHlIZWxwZXJzLmgKQEAgLTk4MCwxNCArOTgwLDMxIEBAIHB1YmxpYzoKICAgICAgICAgICAg
IEJlbG93LCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBU
cnVzdGVkSW1tMzIoT2JqZWN0VHlwZSkpOwogICAgIH0KICAgICAKLSAgICBKdW1wIGJyYW5jaElm
VHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIHR5cGUpCi0gICAgewotICAgICAgICByZXR1cm4g
YnJhbmNoOChFcXVhbCwgQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNl
dCgpKSwgVHJ1c3RlZEltbTMyKHR5cGUpKTsKKyAgICAvLyBOb3RlIHRoYXQgZmlyc3QgYW5kIGxh
c3QgYXJlIGluY2x1c2l2ZS4KKyAgICBKdW1wIGJyYW5jaElmVHlwZShHUFJSZWcgY2VsbEdQUiwg
SlNUeXBlIGZpcnN0LCBPcHRpb25hbDxKU1R5cGU+IGxhc3QgPSBXVEY6Om51bGxvcHQpCisgICAg
eworICAgICAgICBpZiAobGFzdCAmJiAqbGFzdCAhPSBmaXJzdCkgeworICAgICAgICAgICAgQVNT
RVJUKCpsYXN0ID4gZmlyc3QpOworICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBzY3JhdGNo
UmVnaXN0ZXIoKTsKKyAgICAgICAgICAgIGxvYWQ4KEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0
eXBlSW5mb1R5cGVPZmZzZXQoKSksIHNjcmF0Y2gpOworICAgICAgICAgICAgc3ViMzIoVHJ1c3Rl
ZEltbTMyKGZpcnN0KSwgc2NyYXRjaCk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoMzIoQmVs
b3dPckVxdWFsLCBzY3JhdGNoLCBUcnVzdGVkSW1tMzIoKmxhc3QgLSBmaXJzdCkpOworICAgICAg
ICB9CisKKyAgICAgICAgcmV0dXJuIGJyYW5jaDgoRXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwgSlND
ZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihmaXJzdCkpOwogICAgIH0K
LSAgICAKLSAgICBKdW1wIGJyYW5jaElmTm90VHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIHR5
cGUpCisKKyAgICBKdW1wIGJyYW5jaElmTm90VHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIGZp
cnN0LCBPcHRpb25hbDxKU1R5cGU+IGxhc3QgPSBXVEY6Om51bGxvcHQpCiAgICAgewotICAgICAg
ICByZXR1cm4gYnJhbmNoOChOb3RFcXVhbCwgQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJ
bmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKHR5cGUpKTsKKyAgICAgICAgaWYgKGxhc3Qg
JiYgKmxhc3QgIT0gZmlyc3QpIHsKKyAgICAgICAgICAgIEFTU0VSVCgqbGFzdCA+IGZpcnN0KTsK
KyAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gc2NyYXRjaFJlZ2lzdGVyKCk7CisgICAgICAg
ICAgICBsb2FkOChBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkp
LCBzY3JhdGNoKTsKKyAgICAgICAgICAgIHN1YjMyKFRydXN0ZWRJbW0zMihmaXJzdCksIHNjcmF0
Y2gpOworICAgICAgICAgICAgcmV0dXJuIGJyYW5jaDMyKEFib3ZlLCBzY3JhdGNoLCBUcnVzdGVk
SW1tMzIoKmxhc3QgLSBmaXJzdCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGJyYW5j
aDgoTm90RXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQo
KSksIFRydXN0ZWRJbW0zMihmaXJzdCkpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiByZW5hbWUg
dGhlc2UgdG8gbWFrZSBpdCBjbGVhciB0aGF0IHRoZXkgcmVxdWlyZSB0aGVpciBpbnB1dCB0byBi
ZSBhIGNlbGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5
cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCmluZGV4IGIyZTE2
MjlkZWE5OWYwMzExNzY4Y2JiYWRlMWQyODQ0N2M4YjI1NjguLjQ1NWI2MDU0MDlhYmUzZWJmYjQx
YzNiMmQ2YmVhMjRmMzU2ZjUwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlw
ZS5oCkBAIC0xMzIsNiArMTMyLDcgQEAgZW51bSBKU1R5cGUgOiB1aW50OF90IHsKIAogc3RhdGlj
IGNvbnN0ZXhwciB1aW50MzJfdCBGaXJzdFR5cGVkQXJyYXlUeXBlID0gSW50OEFycmF5VHlwZTsK
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTGFzdFR5cGVkQXJyYXlUeXBlID0gRGF0YVZpZXdU
eXBlOworc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBMYXN0VHlwZWRBcnJheVR5cGVFeGNsdWRp
bmdEYXRhVmlldyA9IExhc3RUeXBlZEFycmF5VHlwZSAtIDE7CiAKIC8vIExhc3RPYmplY3RUeXBl
IHNob3VsZCBiZSBNYXhKU1R5cGUgKG5vdCBMYXN0SlNDT2JqZWN0VHlwZSkgc2luY2UgZW1iZWRk
ZXJzIGNhbiBhZGQgdGhlaXIgZXh0ZW5kZWQgb2JqZWN0IHR5cGVzIGFmdGVyIHRoZSBlbnVtcyBs
aXN0ZWQgaW4gSlNUeXBlLgogc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBGaXJzdE9iamVjdFR5
cGUgPSBPYmplY3RUeXBlOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwppbmRleCAwOWQyZDIxNTIyN2Y0MmZmZDExNDFmNTgwMTY3NzczZTYzODY5Nzc4
Li4yYzdjZmM3ZjBlYjQ1N2Q1ODU2YzIwYjRkMGNiODU2ZThmNDYzY2ZiIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDIwLTA1LTExICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIEdldEFycmF5TGVuZ3RoIHNob3VsZCBiZSAiYmxlc3NlZCIgZHVyaW5nIEZpeHVwIHBo
YXNlIGluIHRoZSBERkcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMTU0MAorCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAg
ICAgICogc3RyZXNzL2dldC1hcnJheS1sZW5ndGgtbm9kZS1zaG91bGQtYmUtYmxlc3NlZC1pbi1m
aXh1cC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorCiAyMDIwLTA1LTExICBQYXVsbyBNYXRv
cyAgPHBtYXRvc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFNraXAgb24gYXJtdjcvbGludXggc3Ry
ZXNzL2FycmF5LWJ1ZmZlci12aWV3LXdhdGNocG9pbnQtY2FuLWJlLWZpcmVkLWluLXJlYWxseS1h
ZGQtaW4tZGZnLmpzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nZXQtYXJyYXktbGVuZ3Ro
LW5vZGUtc2hvdWxkLWJlLWJsZXNzZWQtaW4tZml4dXAuanMgYi9KU1Rlc3RzL3N0cmVzcy9nZXQt
YXJyYXktbGVuZ3RoLW5vZGUtc2hvdWxkLWJlLWJsZXNzZWQtaW4tZml4dXAuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYmM5OGQ1YThiNTQ3NWY0MTU3MzBmMGM0ZTk4MzIwYjg2NjY3YmRlNgotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvc3RyZXNzL2dldC1hcnJheS1sZW5ndGgtbm9kZS1zaG91bGQtYmUtYmxl
c3NlZC1pbi1maXh1cC5qcwpAQCAtMCwwICsxLDggQEAKK2Z1bmN0aW9uIGZvbygpIHsKKyAgZm9y
IChsZXQgaT0wOyBpPDEwMDAwOyBpKyspIHt9CisgIGZvciAoY29uc3QgcSBvZiBBcnJheS5wcm90
b3R5cGUpIHt9Cit9CisKK2ZvciAobGV0IGk9MDsgaTwxMDAwOyBpKyspIHsKKyAgZm9vKCk7Cit9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399395</attachid>
            <date>2020-05-14 13:07:35 -0700</date>
            <delta_ts>2020-05-14 15:01:55 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211540-20200514130734.patch</filename>
            <type>text/plain</type>
            <size>18422</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
OGY0MjNlN2ExOTFmNDI2NThiM2Y1OWQyNzFlNjdiMDljNDExMjk2Li40MzZjZmFkMzM0NzQxNTk1
ZGFhZDk5ZDFjMWFiNTBkNTVkZTg0MWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NSBAQAorMjAyMC0wNS0xNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBHZXRBcnJheUxlbmd0aCBzaG91bGQgYmUgImJsZXNzZWQiIGR1cmlu
ZyBGaXh1cCBwaGFzZSBpbiB0aGUgREZHCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTE1NDAKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0
aS4KKworICAgICAgICBJZiB3ZSBnb3QgYW4gQXJyYXlNb2RlIGR1cmluZyBieXRlY29kZSBwYXJz
aW5nIGZvci1vZiB0aGF0IGV4cGVjdHMKKyAgICAgICAgdG8gYmUgY29uZmlndXJlZCBkdXJpbmcg
Rml4dXAsIHRoZW4gcmlnaHQgbm93IHdlIHdpbGwgY3Jhc2ggb24KKyAgICAgICAgR2V0QXJyYXlM
ZW5ndGguIFRoaXMgZml4ZXMgR2V0QXJyYXlMZW5ndGggdG8gcHJvcGVybHkgY2FsbAorICAgICAg
ICBibGVzc0FycmF5T3BlcmF0aW9uIGFuZCBmaXhlcyBjbG9iYmVyaXplIHRvIGtub3cgdGhhdAor
ICAgICAgICBHZXRBcnJheUxlbmd0aCBjb3VsZCBoYXZlIGEgRm9yY2VFeGl0IEFycmF5TW9kZSBi
cmllZmx5IGJlZm9yZQorICAgICAgICBiZWluZyBjbGVhbmVkIHVwLgorCisgICAgICAgIFdoZW4g
Ymxlc3NpbmcgR2V0QXJyYXlMZW5ndGggd2UgY2FuIG5vdyBwcm9kdWNlIENoZWNrQXJyYXlzIHRo
YXQKKyAgICAgICAgaGF2ZSBhbiBBbnlUeXBlZEFycmF5IEFycmF5TW9kZTo6VHlwZS4gU28gdGhp
cyBwYXRjaCBleHBhbmRzCisgICAgICAgIENoZWNrQXJyYXkgdG8gcHJvcGVybHkgaGFuZGxlIHRo
YXQuIFRvIGhlbHAgd2l0aCB0aGlzIHdlIGV4cGFuZAorICAgICAgICBicmFuY2hJZlR5cGUgdG8g
aGF2ZSBhIHN0YXJ0aW5nIEpTVHlwZSBhbmQgYW4gb3B0aW9uYWwgZW5kaW5nCisgICAgICAgIEpT
VHlwZS4gQWRkaXRpb25hbGx5LCB0byBwcmV2ZW50IGV4dHJhIGNoZWNrcyBBSSBoYXMgYmVlbiB0
YXVnaHQKKyAgICAgICAgdG8gZm9sZCBtb3JlIEFycmF5TW9kZXMgc28gd2Ugc2hvdWxkIGFsbW9z
dCBhbHdheXMgYXZvaWQgbmV3CisgICAgICAgIHJ1bnRpbWUgY2hlY2tzLgorCisgICAgICAgIExh
c3RseSwgbWFrZSBzdXJlIHRoYXQgVW5kZWNpZGVkIEFycmF5cyBkb24ndCBmYWxsIGJhY2sgdG8g
Z2VuZXJpYworICAgICAgICBiZWNhdXNlIEdldEFycmF5TGVuZ3RoIGNhbid0IGJlIGNvbnZlcnRl
ZCB0by4uLgorICAgICAgICBHZXRBcnJheUxlbnRoLiBBbHNvLCBHZXRBcnJheUxlbmd0aCB3b3Vs
ZCBwcmV2aW91c2x5IHBhc3MgaXQncyBvd24KKyAgICAgICAgc3BlY3VsYXRpb24gZm9yIHRoZSBz
cGVjdWxhdGlvbiBvZiB0aGUgaW5kZXgsIHdoaWNoIGxvZ2ljYWxseQorICAgICAgICBkb2Vzbid0
IG1ha2Ugc2Vuc2UuIFNvIHRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBjb25zdGFudCwgd2hpY2ggaXMK
KyAgICAgICAgU3BlY0ludDMyT25seSwgdGhhdCBjYW4gYmUgcGFzc2VkIGlmIGEgREZHIG5vZGUg
ZG9lc24ndCBoYXZlIGFuCisgICAgICAgIGluZGV4LgorCisgICAgICAgICogYXNzZW1ibGVyL3Rl
c3RtYXNtLmNwcDoKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5jaElmVHlwZSk6CisgICAgICAgIChK
U0M6OnRlc3RCcmFuY2hJZk5vdFR5cGUpOgorICAgICAgICAoSlNDOjpydW4pOgorICAgICAgICAq
IGRmZy9ERkdBcnJheU1vZGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhbkJlY29tZUdldEFy
cmF5TGVuZ3RoKToKKyAgICAgICAgKiBkZmcvREZHQXJyYXlNb2RlLmg6CisgICAgICAgICogZGZn
L0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAg
ICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFz
ZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpibGVzc0FycmF5
T3BlcmF0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjphdHRlbXB0VG9NYWtl
R2V0QXJyYXlMZW5ndGgpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJyYXkpOgorICAgICAgICAq
IGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0IzOjppc0FycmF5VHlwZUZvckNoZWNrQXJyYXkpOgorICAgICAgICAqIGppdC9Bc3NlbWJs
eUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZlR5cGUp
OgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90VHlwZSk6CisgICAg
ICAgICogcnVudGltZS9KU1R5cGUuaDoKKwogMjAyMC0wNS0xMiAgS2VpdGggTWlsbGVyICA8a2Vp
dGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgYm90dG9tIHZhbHVlIHNldCBmb3Ig
bV92YWx1ZSBpbiBpdGVyYXRvcl9uZXh0IHNob3VsZCBiZSBtYXRlcmlhbGl6ZWQgYWZ0ZXIgYSBk
b25lIGdldHRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90
ZXN0bWFzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNw
cAppbmRleCA0YzlmMWRlODE5Mzc5M2I3MDk4YmYwYjlhOTlkMTAzNzFjYjkxNjczLi4wZjI2M2Vh
YmQyYWExZmI2YTA4ZGJlNmU5NGZlMDVmNTAwZDFmMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcApAQCAtMjE2MSw2ICsyMTYxLDc0IEBAIHN0YXRp
YyB2b2lkIHRlc3RDYWdlUHJlc2VydmVzUEFDRmFpbHVyZUJpdCgpCiAjZW5kaWYKIH0KIAorc3Rh
dGljIHZvaWQgdGVzdEJyYW5jaElmVHlwZSgpCit7CisgICAgdXNpbmcgSlNDOjpKU1R5cGU7Cisg
ICAgc3RydWN0IENlbGxMaWtlIHsKKyAgICAgICAgdWludDMyX3Qgc3RydWN0dXJlSUQ7CisgICAg
ICAgIHVpbnQ4X3QgaW5kZXhpbmdUeXBlOworICAgICAgICBKU1R5cGUgdHlwZTsKKyAgICB9Owor
ICAgIENIRUNLX0VRKEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCksIE9CSkVDVF9PRkZTRVRP
RihDZWxsTGlrZSwgdHlwZSkpOworCisgICAgYXV0byBpc1R5cGUgPSBjb21waWxlKFtdIChDQ2Fs
bEhlbHBlcnMmIGppdCkgeworICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQpOworICAg
ICAgICBhdXRvIGlzVHlwZSA9IGppdC5icmFuY2hJZlR5cGUoR1BSSW5mbzo6YXJndW1lbnRHUFIw
LCBKU1R5cGUoRmlyc3RUeXBlZEFycmF5VHlwZSksIEpTVHlwZShMYXN0VHlwZWRBcnJheVR5cGVF
eGNsdWRpbmdEYXRhVmlldykpOworICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW0zMihmYWxzZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgYXV0byBk
b25lID0gaml0Lmp1bXAoKTsKKyAgICAgICAgaXNUeXBlLmxpbmsoJmppdCk7CisgICAgICAgIGpp
dC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHRydWUpLCBHUFJJbmZvOjpyZXR1cm5W
YWx1ZUdQUik7CisgICAgICAgIGRvbmUubGluaygmaml0KTsKKyAgICAgICAgZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoaml0KTsKKyAgICAgICAgaml0LnJldCgpOworICAgIH0pOworCisgICAgQ2VsbExp
a2UgY2VsbDsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBKU0M6OkZpcnN0VHlwZWRBcnJheVR5cGU7
IGkgPD0gSlNDOjpMYXN0VHlwZWRBcnJheVR5cGVFeGNsdWRpbmdEYXRhVmlldzsgKytpKSB7Cisg
ICAgICAgIGNlbGwudHlwZSA9IEpTVHlwZShpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGJv
b2w+KGlzVHlwZSwgJmNlbGwpLCB0cnVlKTsKKyAgICB9CisKKyAgICBjZWxsLnR5cGUgPSBKU1R5
cGUoTGFzdFR5cGVkQXJyYXlUeXBlKTsKKyAgICBDSEVDS19FUShpbnZva2U8Ym9vbD4oaXNUeXBl
LCAmY2VsbCksIGZhbHNlKTsKKyAgICBjZWxsLnR5cGUgPSBKU1R5cGUoRmlyc3RUeXBlZEFycmF5
VHlwZSAtIDEpOworICAgIENIRUNLX0VRKGludm9rZTxib29sPihpc1R5cGUsICZjZWxsKSwgZmFs
c2UpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0QnJhbmNoSWZOb3RUeXBlKCkKK3sKKyAgICB1c2lu
ZyBKU0M6OkpTVHlwZTsKKyAgICBzdHJ1Y3QgQ2VsbExpa2UgeworICAgICAgICB1aW50MzJfdCBz
dHJ1Y3R1cmVJRDsKKyAgICAgICAgdWludDhfdCBpbmRleGluZ1R5cGU7CisgICAgICAgIEpTVHlw
ZSB0eXBlOworICAgIH07CisgICAgQ0hFQ0tfRVEoSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQo
KSwgT0JKRUNUX09GRlNFVE9GKENlbGxMaWtlLCB0eXBlKSk7CisKKyAgICBhdXRvIGlzTm90VHlw
ZSA9IGNvbXBpbGUoW10gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgIGVtaXRGdW5jdGlv
blByb2xvZ3VlKGppdCk7CisgICAgICAgIGF1dG8gaXNOb3RUeXBlID0gaml0LmJyYW5jaElmTm90
VHlwZShHUFJJbmZvOjphcmd1bWVudEdQUjAsIEpTVHlwZShGaXJzdFR5cGVkQXJyYXlUeXBlKSwg
SlNUeXBlKExhc3RUeXBlZEFycmF5VHlwZUV4Y2x1ZGluZ0RhdGFWaWV3KSk7CisgICAgICAgIGpp
dC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGZhbHNlKSwgR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIpOworICAgICAgICBhdXRvIGRvbmUgPSBqaXQuanVtcCgpOworICAgICAgICBpc05v
dFR5cGUubGluaygmaml0KTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIodHJ1ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgZG9uZS5saW5r
KCZqaXQpOworICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAgICAgICBqaXQu
cmV0KCk7CisgICAgfSk7CisKKyAgICBDZWxsTGlrZSBjZWxsOworICAgIGZvciAodW5zaWduZWQg
aSA9IEpTQzo6Rmlyc3RUeXBlZEFycmF5VHlwZTsgaSA8PSBKU0M6Okxhc3RUeXBlZEFycmF5VHlw
ZUV4Y2x1ZGluZ0RhdGFWaWV3OyArK2kpIHsKKyAgICAgICAgY2VsbC50eXBlID0gSlNUeXBlKGkp
OworICAgICAgICBDSEVDS19FUShpbnZva2U8Ym9vbD4oaXNOb3RUeXBlLCAmY2VsbCksIGZhbHNl
KTsKKyAgICB9CisKKyAgICBjZWxsLnR5cGUgPSBKU1R5cGUoTGFzdFR5cGVkQXJyYXlUeXBlKTsK
KyAgICBDSEVDS19FUShpbnZva2U8Ym9vbD4oaXNOb3RUeXBlLCAmY2VsbCksIHRydWUpOworICAg
IGNlbGwudHlwZSA9IEpTVHlwZShGaXJzdFR5cGVkQXJyYXlUeXBlIC0gMSk7CisgICAgQ0hFQ0tf
RVEoaW52b2tlPGJvb2w+KGlzTm90VHlwZSwgJmNlbGwpLCB0cnVlKTsKK30KKwogI2RlZmluZSBS
VU4odGVzdCkgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBpZiAoIXNo
b3VsZFJ1bigjdGVzdCkpICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgYnJlYWs7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMjI4Myw2ICsyMzUxLDkgQEAgdm9pZCBy
dW4oY29uc3QgY2hhciogZmlsdGVyKQogCiAgICAgUlVOKHRlc3RDYWdlUHJlc2VydmVzUEFDRmFp
bHVyZUJpdCgpKTsKIAorICAgIFJVTih0ZXN0QnJhbmNoSWZUeXBlKCkpOworICAgIFJVTih0ZXN0
QnJhbmNoSWZOb3RUeXBlKCkpOworCiAgICAgUlVOKHRlc3RPckltbU1lbSgpKTsKIAogICAgIGlm
ICh0YXNrcy5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0FycmF5TW9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9k
ZS5jcHAKaW5kZXggZjMyMjQ1ZmY3ZTExYTUwZTE1MTJkNDE0MTg2MDk5MjIzMzU4ZGEwMy4uYzcw
MTk4OTVkN2VmMWQ4OTE4MjdkZDk0YThmMGM0NjA5NWUyZjZmNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcApAQCAtMTg1LDYgKzE4NSw4IEBAIEFycmF5TW9k
ZSBBcnJheU1vZGU6OmZyb21PYnNlcnZlZChjb25zdCBDb25jdXJyZW50SlNMb2NrZXImIGxvY2tl
ciwgQXJyYXlQcm9maWxlCiAKIHN0YXRpYyBib29sIGNhbkJlY29tZUdldEFycmF5TGVuZ3RoKEdy
YXBoJiBncmFwaCwgTm9kZSogbm9kZSkKIHsKKyAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRBcnJh
eUxlbmd0aCkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKG5vZGUtPm9wKCkgIT0gR2V0
QnlJZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8gdWlkID0gbm9kZS0+Y2FjaGVh
YmxlSWRlbnRpZmllcigpLnVpZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcnJheU1vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlN
b2RlLmgKaW5kZXggZmRiNzFlNzY0ZDA1NjAyNjEzMTJlM2I2YTlmMWUzOTVmNWI5MjJlYi4uYzMw
NDY1NTRiYmNiMTE5NmUwMTU3ODA2MDUyMGQ2MGNmMTI4MDNiOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0FycmF5TW9kZS5oCkBAIC0yMzcsNiArMjM3LDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gQXJyYXlNb2RlKHR5cGUsIGFycmF5Q2xhc3MoKSwgc3BlY3VsYXRpb24oKSwg
Y29udmVyc2lvbiwgYWN0aW9uKCkpOwogICAgIH0KICAgICAKKyAgICBzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIHVudXNlZEluZGV4U3BlY3VsYXRlZFR5cGUgPSBTcGVjSW50MzJPbmx5
OwogICAgIEFycmF5TW9kZSByZWZpbmUoR3JhcGgmLCBOb2RlKiwgU3BlY3VsYXRlZFR5cGUgYmFz
ZSwgU3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlID0gU3BlY05vbmUp
IGNvbnN0OwogICAgIAogICAgIGJvb2wgYWxyZWFkeUNoZWNrZWQoR3JhcGgmLCBOb2RlKiwgY29u
c3QgQWJzdHJhY3RWYWx1ZSYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ns
b2JiZXJpemUuaAppbmRleCBhN2Y3OTZkNzE3ODQ5ZGQ2MGMzMThlYmQ1OGY5ZjE1MmQwZmQ2MWNh
Li5jMjViOTkyYThjN2JkOGYyMWY2YzVhNTVmZjE3N2JlNjg0OWNjZmUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMTM0OCw2ICsxMzQ4LDExIEBAIHZv
aWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9y
JiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEFycmF5
TGVuZ3RoTG9jLCBNaXNjRmllbGRzLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsK
ICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBjYXNlIEFycmF5OjpGb3JjZUV4aXQ6IHsK
KyAgICAgICAgICAgIHdyaXRlKFNpZGVTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUKG1vZGUuaXNTb21l
VHlwZWRBcnJheVZpZXcoKSk7CiAgICAgICAgICAgICByZWFkKE1pc2NGaWVsZHMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggMGYwYWE0NGQ2ZDQ5
OWQ4ZjRiM2QwNzQyNTQ3ZmE4NjRkNmRlNGM0MC4uOWYzOGFhMDhiNzQ2ZmNmOGNhMzRjYWFlM2Jm
MjNkNTM5ZDFlOTAyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCkBAIC0yMDI1LDYgKzIwMjUsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgfQogCiAgICAg
ICAgIGNhc2UgR2V0QXJyYXlMZW5ndGg6IHsKKyAgICAgICAgICAgIEFycmF5TW9kZSBhcnJheU1v
ZGUgPSBub2RlLT5hcnJheU1vZGUoKS5yZWZpbmUobV9ncmFwaCwgbm9kZSwgbm9kZS0+Y2hpbGQx
KCktPnByZWRpY3Rpb24oKSwgQXJyYXlNb2RlOjp1bnVzZWRJbmRleFNwZWN1bGF0ZWRUeXBlKTsK
KyAgICAgICAgICAgIC8vIFdlIGRvbid0IGtub3cgaG93IHRvIGhhbmRsZSBnZW5lcmljIGFuZCB3
ZSBvbmx5IGVtaXQgdGhpcyBpbiB0aGUgUGFyc2VyIHdoZW4gd2UgaGF2ZSBjaGVja2VkIHRoZSB2
YWx1ZSBpcyBhbiBBcnJheS9UeXBlZEFycmF5LgorICAgICAgICAgICAgaWYgKGFycmF5TW9kZS50
eXBlKCkgPT0gQXJyYXk6OkdlbmVyaWMpCisgICAgICAgICAgICAgICAgYXJyYXlNb2RlID0gYXJy
YXlNb2RlLndpdGhUeXBlKEFycmF5OjpGb3JjZUV4aXQpOworICAgICAgICAgICAgQVNTRVJUKGFy
cmF5TW9kZS5pc1NwZWNpZmljKCkgfHwgYXJyYXlNb2RlLnR5cGUoKSA9PSBBcnJheTo6Rm9yY2VF
eGl0KTsKKyAgICAgICAgICAgIG5vZGUtPnNldEFycmF5TW9kZShhcnJheU1vZGUpOworICAgICAg
ICAgICAgYmxlc3NBcnJheU9wZXJhdGlvbihub2RlLT5jaGlsZDEoKSwgRWRnZSgpLCBub2RlLT5j
aGlsZDIoKSwgbGVuZ3RoTmVlZHNTdG9yYWdlKTsKKwogICAgICAgICAgICAgZml4RWRnZTxLbm93
bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CkBAIC0zNTIyLDcgKzM1MzAsNyBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogICAgIAot
ICAgIHZvaWQgYmxlc3NBcnJheU9wZXJhdGlvbihFZGdlIGJhc2UsIEVkZ2UgaW5kZXgsIEVkZ2Um
IHN0b3JhZ2VDaGlsZCkKKyAgICB2b2lkIGJsZXNzQXJyYXlPcGVyYXRpb24oRWRnZSBiYXNlLCBF
ZGdlIGluZGV4LCBFZGdlJiBzdG9yYWdlQ2hpbGQsIGJvb2wgKCpzdG9yYWdlQ2hlY2spKGNvbnN0
IEFycmF5TW9kZSYpID0gY2FuQ1NFU3RvcmFnZSkKICAgICB7CiAgICAgICAgIE5vZGUqIG5vZGUg
PSBtX2N1cnJlbnROb2RlOwogICAgICAgICAKQEAgLTM1NDIsNyArMzU1MCw3IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDogewot
ICAgICAgICAgICAgTm9kZSogc3RvcmFnZSA9IGNoZWNrQXJyYXkobm9kZS0+YXJyYXlNb2RlKCks
IG5vZGUtPm9yaWdpbiwgYmFzZS5ub2RlKCksIGluZGV4Lm5vZGUoKSk7CisgICAgICAgICAgICBO
b2RlKiBzdG9yYWdlID0gY2hlY2tBcnJheShub2RlLT5hcnJheU1vZGUoKSwgbm9kZS0+b3JpZ2lu
LCBiYXNlLm5vZGUoKSwgaW5kZXgubm9kZSgpLCBzdG9yYWdlQ2hlY2spOwogICAgICAgICAgICAg
aWYgKCFzdG9yYWdlKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIApAQCAt
MzgzMSw3ICszODM5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAg
ICAgIGFycmF5TW9kZSA9IGFycmF5TW9kZS5yZWZpbmUoCi0gICAgICAgICAgICBtX2dyYXBoLCBu
b2RlLCBub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpLCBub2RlLT5wcmVkaWN0aW9uKCkpOwor
ICAgICAgICAgICAgbV9ncmFwaCwgbm9kZSwgbm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKSwg
QXJyYXlNb2RlOjp1bnVzZWRJbmRleFNwZWN1bGF0ZWRUeXBlKTsKICAgICAgICAgICAgIAogICAg
ICAgICBpZiAoYXJyYXlNb2RlLnR5cGUoKSA9PSBBcnJheTo6R2VuZXJpYykgewogICAgICAgICAg
ICAgLy8gQ2hlY2sgaWYgdGhlIGlucHV0IGlzIHNvbWV0aGluZyB0aGF0IHdlIGNhbid0IGdldCBh
cnJheSBsZW5ndGggZm9yLCBidXQgZm9yIHdoaWNoIHdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDYzNjg3ZmVmMDA4ZDg5YjdlZThl
ZmYwY2IxOGFhNDc1OWUwYmZkYzcuLjAxOTk5YjkwMjdiZTVlYzBlNTNhYjVmMjFlNTg2Zjg4ODU5
MjMyNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCkBAIC04MzIsMTMgKzgzMiwxNCBAQCBKSVRDb21waWxlcjo6SnVtcExpc3QgU3BlY3Vs
YXRpdmVKSVQ6Omp1bXBTbG93Rm9yVW53YW50ZWRBcnJheU1vZGUoR1BSUmVnIHRlbXBHUAogCiB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FycmF5KE5vZGUqIG5vZGUpCiB7Ci0gICAgQVNTRVJU
KG5vZGUtPmFycmF5TW9kZSgpLmlzU3BlY2lmaWMoKSk7Ci0gICAgQVNTRVJUKCFub2RlLT5hcnJh
eU1vZGUoKS5kb2VzQ29udmVyc2lvbigpKTsKKyAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbm9k
ZS0+YXJyYXlNb2RlKCk7CisgICAgQVNTRVJUKGFycmF5TW9kZS5pc1NwZWNpZmljKCkpOworICAg
IEFTU0VSVCghYXJyYXlNb2RlLmRvZXNDb252ZXJzaW9uKCkpOwogICAgIAogICAgIFNwZWN1bGF0
ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgIEdQUlJlZyBiYXNl
UmVnID0gYmFzZS5ncHIoKTsKICAgICAKLSAgICBpZiAobm9kZS0+YXJyYXlNb2RlKCkuYWxyZWFk
eUNoZWNrZWQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxk
MSgpKSkpIHsKKyAgICBpZiAoYXJyYXlNb2RlLmFscmVhZHlDaGVja2VkKG1faml0LmdyYXBoKCks
IG5vZGUsIG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkpKSB7CiAgICAgICAgIC8vIFdl
IGNhbiBwdXJnZSBFbXB0eSBjaGVjayBjb21wbGV0ZWx5IGluIHRoaXMgY2FzZSBvZiBDaGVja0Fy
cmF5T3JFbXB0eSBzaW5jZSBDZWxsVXNlIG9ubHkgYWNjZXB0cyBTcGVjQ2VsbCB8IFNwZWNFbXB0
eS4KICAgICAgICAgQVNTRVJUKHR5cGVGaWx0ZXJGb3Iobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgp
KSAmIFNwZWNFbXB0eSk7CiAgICAgICAgIG5vUmVzdWx0KG1fY3VycmVudE5vZGUpOwpAQCAtODQ3
LDcgKzg0OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJyYXkoTm9kZSogbm9kZSkK
IAogICAgIE9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gdGVtcDsKICAgICBPcHRpb25hbDxHUFJSZWc+
IHRlbXBHUFI7Ci0gICAgc3dpdGNoIChub2RlLT5hcnJheU1vZGUoKS50eXBlKCkpIHsKKyAgICBz
d2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsKICAgICBjYXNlIEFycmF5OjpJbnQzMjoKICAgICBj
YXNlIEFycmF5OjpEb3VibGU6CiAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czoKQEAgLTg3MSw4
ICs4NzIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FycmF5KE5vZGUqIG5vZGUpCiAg
ICAgfQogI2VuZGlmCiAKLSAgICBzd2l0Y2ggKG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewot
ICAgIGNhc2UgQXJyYXk6OkFueVR5cGVkQXJyYXk6CisgICAgc3dpdGNoIChhcnJheU1vZGUudHlw
ZSgpKSB7CiAgICAgY2FzZSBBcnJheTo6U3RyaW5nOgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyAvLyBTaG91bGQgaGF2ZSBiZWVuIGEgUGhhbnRvbShTdHJpbmc6KQogICAg
ICAgICByZXR1cm47CkBAIC04ODUsNyArODg1LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2hl
Y2tBcnJheShOb2RlKiBub2RlKQogICAgICAgICBtX2ppdC5sb2FkOChNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhiYXNlUmVnLCBKU0NlbGw6OmluZGV4aW5nVHlwZUFuZE1pc2NPZmZzZXQoKSksIHRl
bXBHUFIudmFsdWUoKSk7CiAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCiAgICAgICAgICAgICBC
YWRJbmRleGluZ1R5cGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJhc2VSZWcpLCBudWxs
cHRyLAotICAgICAgICAgICAganVtcFNsb3dGb3JVbndhbnRlZEFycmF5TW9kZSh0ZW1wR1BSLnZh
bHVlKCksIG5vZGUtPmFycmF5TW9kZSgpKSk7CisgICAgICAgICAgICBqdW1wU2xvd0ZvclVud2Fu
dGVkQXJyYXlNb2RlKHRlbXBHUFIudmFsdWUoKSwgYXJyYXlNb2RlKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICBjYXNlIEFycmF5OjpEaXJlY3RBcmd1bWVudHM6CkBAIC04OTQsMTIgKzg5
NCwxNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FycmF5KE5vZGUqIG5vZGUpCiAgICAg
Y2FzZSBBcnJheTo6U2NvcGVkQXJndW1lbnRzOgogICAgICAgICBzcGVjdWxhdGVDZWxsVHlwZVdp
dGhvdXRUeXBlRmlsdGVyaW5nKG5vZGUtPmNoaWxkMSgpLCBiYXNlUmVnLCBTY29wZWRBcmd1bWVu
dHNUeXBlKTsKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgc3BlY3VsYXRl
Q2VsbFR5cGVXaXRob3V0VHlwZUZpbHRlcmluZygKLSAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgp
LCBiYXNlUmVnLAotICAgICAgICAgICAgdHlwZUZvclR5cGVkQXJyYXlUeXBlKG5vZGUtPmFycmF5
TW9kZSgpLnR5cGVkQXJyYXlUeXBlKCkpKTsKKyAgICBkZWZhdWx0OiB7CisgICAgICAgIERGR19B
U1NFUlQobV9ncmFwaCwgbm9kZSwgYXJyYXlNb2RlLmlzU29tZVR5cGVkQXJyYXlWaWV3KCkpOwor
CisgICAgICAgIGlmIChhcnJheU1vZGUudHlwZSgpID09IEFycmF5OjpBbnlUeXBlZEFycmF5KQor
ICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJv
eGVkQ2VsbChiYXNlUmVnKSwgbnVsbHB0ciwgbV9qaXQuYnJhbmNoSWZOb3RUeXBlKGJhc2VSZWcs
IEpTVHlwZShGaXJzdFR5cGVkQXJyYXlUeXBlKSwgSlNUeXBlKExhc3RUeXBlZEFycmF5VHlwZUV4
Y2x1ZGluZ0RhdGFWaWV3KSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzcGVjdWxhdGVD
ZWxsVHlwZVdpdGhvdXRUeXBlRmlsdGVyaW5nKG5vZGUtPmNoaWxkMSgpLCBiYXNlUmVnLCB0eXBl
Rm9yVHlwZWRBcnJheVR5cGUoYXJyYXlNb2RlLnR5cGVkQXJyYXlUeXBlKCkpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQorICAgIH0KIAogICAgIGlmIChpc0VtcHR5LmlzU2V0KCkpCiAgICAgICAg
IGlzRW1wdHkubGluaygmbV9qaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwCmluZGV4IDk2NzAxOTRlZWQ5MWY4MTVhNjljYzVlN2E2ZDkyMmNhOGI5
YzA0OGQuLjgwM2Q3MjVmNTMwMGE3ZTUyYjVjNTFiOWUxODg4NzkzYTUwZmEwNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTE3OTQ5LDEx
ICsxNzk0OSwxNSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4
dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSksCiAgICAgICAgICAgICAgICAg
bV9vdXQuY29uc3RJbnQzMihTY29wZWRBcmd1bWVudHNUeXBlKSk7CiAgICAgICAgICAgICAKLSAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgZGVmYXVsdDogeworICAgICAgICAgICAgREZHX0FTU0VS
VChtX2dyYXBoLCBtX25vZGUsIGFycmF5TW9kZS5pc1NvbWVUeXBlZEFycmF5VmlldygpKTsKKyAg
ICAgICAgICAgIGlmIChhcnJheU1vZGUudHlwZSgpID09IEFycmF5OjpBbnlUeXBlZEFycmF5KQor
ICAgICAgICAgICAgICAgIHJldHVybiBpc1R5cGVkQXJyYXlWaWV3KGNlbGwpOwogICAgICAgICAg
ICAgcmV0dXJuIG1fb3V0LmVxdWFsKAogICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4
dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSksCiAgICAgICAgICAgICAgICAg
bV9vdXQuY29uc3RJbnQzMih0eXBlRm9yVHlwZWRBcnJheVR5cGUoYXJyYXlNb2RlLnR5cGVkQXJy
YXlUeXBlKCkpKSk7CiAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KICAgICAKICAgICBMVmFs
dWUgaXNGdW5jdGlvbihMVmFsdWUgY2VsbCwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxs
VG9wKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBl
cnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXgg
ZjlkNTc3NDRlNzczMjk5NjBiNzY0NTBkMTI3OTk1NGVmZWNlZDA2Zi4uMTA2NDE0Y2JiZDRiMzFl
MjkxN2JmOTdjNjE1MmZjYmM1NjBhNTdkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0Fzc2VtYmx5SGVscGVycy5oCkBAIC05ODAsMTQgKzk4MCwzMSBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBCZWxvdywgQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgp
KSwgVHJ1c3RlZEltbTMyKE9iamVjdFR5cGUpKTsKICAgICB9CiAgICAgCi0gICAgSnVtcCBicmFu
Y2hJZlR5cGUoR1BSUmVnIGNlbGxHUFIsIEpTVHlwZSB0eXBlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGJyYW5jaDgoRXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVP
ZmZzZXQoKSksIFRydXN0ZWRJbW0zMih0eXBlKSk7CisgICAgLy8gTm90ZSB0aGF0IGZpcnN0IGFu
ZCBsYXN0IGFyZSBpbmNsdXNpdmUuCisgICAgSnVtcCBicmFuY2hJZlR5cGUoR1BSUmVnIGNlbGxH
UFIsIEpTVHlwZSBmaXJzdCwgT3B0aW9uYWw8SlNUeXBlPiBsYXN0ID0gV1RGOjpudWxsb3B0KQor
ICAgIHsKKyAgICAgICAgaWYgKGxhc3QgJiYgKmxhc3QgIT0gZmlyc3QpIHsKKyAgICAgICAgICAg
IEFTU0VSVCgqbGFzdCA+IGZpcnN0KTsKKyAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gc2Ny
YXRjaFJlZ2lzdGVyKCk7CisgICAgICAgICAgICBsb2FkOChBZGRyZXNzKGNlbGxHUFIsIEpTQ2Vs
bDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBzY3JhdGNoKTsKKyAgICAgICAgICAgIHN1YjMyKFRy
dXN0ZWRJbW0zMihmaXJzdCksIHNjcmF0Y2gpOworICAgICAgICAgICAgcmV0dXJuIGJyYW5jaDMy
KEJlbG93T3JFcXVhbCwgc2NyYXRjaCwgVHJ1c3RlZEltbTMyKCpsYXN0IC0gZmlyc3QpKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHJldHVybiBicmFuY2g4KEVxdWFsLCBBZGRyZXNzKGNlbGxHUFIs
IEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoZmlyc3QpKTsKICAg
ICB9Ci0gICAgCi0gICAgSnVtcCBicmFuY2hJZk5vdFR5cGUoR1BSUmVnIGNlbGxHUFIsIEpTVHlw
ZSB0eXBlKQorCisgICAgSnVtcCBicmFuY2hJZk5vdFR5cGUoR1BSUmVnIGNlbGxHUFIsIEpTVHlw
ZSBmaXJzdCwgT3B0aW9uYWw8SlNUeXBlPiBsYXN0ID0gV1RGOjpudWxsb3B0KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGJyYW5jaDgoTm90RXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0
eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMih0eXBlKSk7CisgICAgICAgIGlmIChs
YXN0ICYmICpsYXN0ICE9IGZpcnN0KSB7CisgICAgICAgICAgICBBU1NFUlQoKmxhc3QgPiBmaXJz
dCk7CisgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IHNjcmF0Y2hSZWdpc3RlcigpOworICAg
ICAgICAgICAgbG9hZDgoQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNl
dCgpKSwgc2NyYXRjaCk7CisgICAgICAgICAgICBzdWIzMihUcnVzdGVkSW1tMzIoZmlyc3QpLCBz
Y3JhdGNoKTsKKyAgICAgICAgICAgIHJldHVybiBicmFuY2gzMihBYm92ZSwgc2NyYXRjaCwgVHJ1
c3RlZEltbTMyKCpsYXN0IC0gZmlyc3QpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBi
cmFuY2g4KE5vdEVxdWFsLCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zm
c2V0KCkpLCBUcnVzdGVkSW1tMzIoZmlyc3QpKTsKICAgICB9CiAKICAgICAvLyBGSVhNRTogcmVu
YW1lIHRoZXNlIHRvIG1ha2UgaXQgY2xlYXIgdGhhdCB0aGV5IHJlcXVpcmUgdGhlaXIgaW5wdXQg
dG8gYmUgYSBjZWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAppbmRleCBi
MmUxNjI5ZGVhOTlmMDMxMTc2OGNiYmFkZTFkMjg0NDdjOGIyNTY4Li40NTViNjA1NDA5YWJlM2Vi
ZmI0MWMzYjJkNmJlYTI0ZjM1NmY1MDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1R5cGUuaApAQCAtMTMyLDYgKzEzMiw3IEBAIGVudW0gSlNUeXBlIDogdWludDhfdCB7CiAKIHN0
YXRpYyBjb25zdGV4cHIgdWludDMyX3QgRmlyc3RUeXBlZEFycmF5VHlwZSA9IEludDhBcnJheVR5
cGU7CiBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IExhc3RUeXBlZEFycmF5VHlwZSA9IERhdGFW
aWV3VHlwZTsKK3N0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTGFzdFR5cGVkQXJyYXlUeXBlRXhj
bHVkaW5nRGF0YVZpZXcgPSBMYXN0VHlwZWRBcnJheVR5cGUgLSAxOwogCiAvLyBMYXN0T2JqZWN0
VHlwZSBzaG91bGQgYmUgTWF4SlNUeXBlIChub3QgTGFzdEpTQ09iamVjdFR5cGUpIHNpbmNlIGVt
YmVkZGVycyBjYW4gYWRkIHRoZWlyIGV4dGVuZGVkIG9iamVjdCB0eXBlcyBhZnRlciB0aGUgZW51
bXMgbGlzdGVkIGluIEpTVHlwZS4KIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgRmlyc3RPYmpl
Y3RUeXBlID0gT2JqZWN0VHlwZTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzJmNWMyNjgxYmE3OWU1YjliZDAzZTcwYjBjZmMxN2U5OWRl
ZTJkOS4uMjY1YTBlNzU1N2VlMTYyMzRjYzUzYWZhNjM2ZDE2NGEwMDViMzVjZCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMC0wNS0xNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4K
KworICAgICAgICBHZXRBcnJheUxlbmd0aCBzaG91bGQgYmUgImJsZXNzZWQiIGR1cmluZyBGaXh1
cCBwaGFzZSBpbiB0aGUgREZHCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTE1NDAKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4KKwor
ICAgICAgICAqIHN0cmVzcy9nZXQtYXJyYXktbGVuZ3RoLW5vZGUtc2hvdWxkLWJlLWJsZXNzZWQt
aW4tZml4dXAuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAyMC0wNS0xMiAgS2VpdGgg
TWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgYm90dG9tIHZh
bHVlIHNldCBmb3IgbV92YWx1ZSBpbiBpdGVyYXRvcl9uZXh0IHNob3VsZCBiZSBtYXRlcmlhbGl6
ZWQgYWZ0ZXIgYSBkb25lIGdldHRlcgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZ2V0LWFy
cmF5LWxlbmd0aC1ub2RlLXNob3VsZC1iZS1ibGVzc2VkLWluLWZpeHVwLmpzIGIvSlNUZXN0cy9z
dHJlc3MvZ2V0LWFycmF5LWxlbmd0aC1ub2RlLXNob3VsZC1iZS1ibGVzc2VkLWluLWZpeHVwLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJjOThkNWE4YjU0NzVmNDE1NzMwZjBjNGU5ODMyMGI4NjY2N2JkZTYKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9nZXQtYXJyYXktbGVuZ3RoLW5vZGUtc2hv
dWxkLWJlLWJsZXNzZWQtaW4tZml4dXAuanMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlvbiBmb28o
KSB7CisgIGZvciAobGV0IGk9MDsgaTwxMDAwMDsgaSsrKSB7fQorICBmb3IgKGNvbnN0IHEgb2Yg
QXJyYXkucHJvdG90eXBlKSB7fQorfQorCitmb3IgKGxldCBpPTA7IGk8MTAwMDsgaSsrKSB7Cisg
IGZvbygpOworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>