<?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>236233</bug_id>
          
          <creation_ts>2022-02-07 06:54:16 -0800</creation_ts>
          <short_desc>[model] improve sizing on macOS</short_desc>
          <delta_ts>2022-02-09 12:21:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=236388</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>236234</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1838116</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-02-07 06:54:16 -0800</bug_when>
    <thetext>[model] improve sizing on macOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838117</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-07 06:55:07 -0800</bug_when>
    <thetext>&lt;rdar://problem/88569881&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838120</commentid>
    <comment_count>2</comment_count>
      <attachid>451092</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-02-07 07:06:07 -0800</bug_when>
    <thetext>Created attachment 451092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838121</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-02-07 07:06:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/88569881&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838143</commentid>
    <comment_count>4</comment_count>
      <attachid>451092</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2022-02-07 07:47:54 -0800</bug_when>
    <thetext>Comment on attachment 451092
Patch

Can you make a test? Otherwise it looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838144</commentid>
    <comment_count>5</comment_count>
      <attachid>451092</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2022-02-07 07:47:55 -0800</bug_when>
    <thetext>Comment on attachment 451092
Patch

Can you make a test? Otherwise it looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838156</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-02-07 08:04:39 -0800</bug_when>
    <thetext>This sets the size in ways that are internal to ARQL, I don&apos;t think we can test this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838194</commentid>
    <comment_count>7</comment_count>
      <attachid>451092</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-02-07 09:00:28 -0800</bug_when>
    <thetext>Comment on attachment 451092
Patch

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

&gt; Source/WebKit/ChangeLog:13
&gt; +        In that new method, we call -[ASVInlinePreview updateFrame:completionHandler:] which provies us with a

`provies`

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1520
&gt; +    else if (is&lt;RenderModel&gt;(renderer())) {
&gt; +        auto* element = downcast&lt;HTMLModelElement&gt;(renderer().element());
&gt; +        if (element-&gt;usesPlatformLayer())
&gt; +            element-&gt;parentLayerSizeMayHaveChanged(m_graphicsLayer-&gt;size());
&gt; +    }

This one-off model-only communication about layer size (and in an `else if` about something entirely different?) seems unfortunate. Maybe see if Simon has a better way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838207</commentid>
    <comment_count>8</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-02-07 09:28:45 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #7)
&gt; Comment on attachment 451092 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=451092&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1520
&gt; &gt; +    else if (is&lt;RenderModel&gt;(renderer())) {
&gt; &gt; +        auto* element = downcast&lt;HTMLModelElement&gt;(renderer().element());
&gt; &gt; +        if (element-&gt;usesPlatformLayer())
&gt; &gt; +            element-&gt;parentLayerSizeMayHaveChanged(m_graphicsLayer-&gt;size());
&gt; &gt; +    }
&gt; 
&gt; This one-off model-only communication about layer size (and in an `else if`
&gt; about something entirely different?) seems unfortunate. Maybe see if Simon
&gt; has a better way.

Sadly, we already do something similar in RenderLayerBacking::updateConfiguration().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838218</commentid>
    <comment_count>9</comment_count>
      <attachid>451092</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-07 09:45:06 -0800</bug_when>
    <thetext>Comment on attachment 451092
Patch

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

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1516
&gt; +    else if (is&lt;RenderModel&gt;(renderer())) {

Do you really want this to be the `else` clause of `subpixelOffsetFromRendererChanged()`? Doesn&apos;t make much sense.

&gt;&gt;&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1520
&gt;&gt;&gt; +    }
&gt;&gt; 
&gt;&gt; This one-off model-only communication about layer size (and in an `else if` about something entirely different?) seems unfortunate. Maybe see if Simon has a better way.
&gt; 
&gt; Sadly, we already do something similar in RenderLayerBacking::updateConfiguration().

It&apos;s weird to read m_graphicsLayer-&gt;size() here. RenderLayerBacking controls the size fo the GraphicsLayer, so it makes more sense to get it from RenderBox here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839085</commentid>
    <comment_count>10</comment_count>
      <attachid>451356</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-02-09 04:18:04 -0800</bug_when>
    <thetext>Created attachment 451356
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839214</commentid>
    <comment_count>11</comment_count>
      <attachid>451356</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-09 09:20:17 -0800</bug_when>
    <thetext>Comment on attachment 451356
Patch

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

&gt; Source/WebCore/Modules/model-element/HTMLModelElement.h:161
&gt; +    FloatSize m_platformLayerSize;

Very weird to store this presentation-related thing on a DOM element class. Also weird that it refers to platform layers; sizing is controlled by CSS, so this should just talk about &quot;contentBoxSize&quot; or something.

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1539
&gt; +            element-&gt;parentLayerSizeMayHaveChanged(primaryGraphicsLayerRect.size());

The primary graphics layer for the model element has a size that&apos;s affected by borders, padding, box-shadow etc. It doesn&apos;t seem right to use this size. Make a test with a big box-shadow to test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839241</commentid>
    <comment_count>12</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-02-09 09:59:09 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #11)
&gt; Comment on attachment 451356 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=451356&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/model-element/HTMLModelElement.h:161
&gt; &gt; +    FloatSize m_platformLayerSize;
&gt; 
&gt; Very weird to store this presentation-related thing on a DOM element class.
&gt; Also weird that it refers to platform layers; sizing is controlled by CSS,
&gt; so this should just talk about &quot;contentBoxSize&quot; or something.

I think we can store this on ARKitInlinePreviewModelPlayerMac.

&gt; &gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1539
&gt; &gt; +            element-&gt;parentLayerSizeMayHaveChanged(primaryGraphicsLayerRect.size());
&gt; 
&gt; The primary graphics layer for the model element has a size that&apos;s affected
&gt; by borders, padding, box-shadow etc. It doesn&apos;t seem right to use this size.
&gt; Make a test with a big box-shadow to test.

OK. How would I go about getting the size for the content to be presented?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839270</commentid>
    <comment_count>13</comment_count>
      <attachid>451402</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-02-09 10:39:42 -0800</bug_when>
    <thetext>Created attachment 451402
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839286</commentid>
    <comment_count>14</comment_count>
      <attachid>451402</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-09 10:55:26 -0800</bug_when>
    <thetext>Comment on attachment 451402
Patch

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

&gt; Source/WebCore/Modules/model-element/HTMLModelElement.cpp:647
&gt; +LayoutSize HTMLModelElement::platformLayerSize() const

Don&apos;t use the term &quot;platform layer&quot; here. Maybe contentsSize.

&gt; Source/WebCore/Modules/model-element/HTMLModelElement.h:108
&gt; +    void parentLayerSizeMayHaveChanged();

Why does DOM code care about &quot;parent layer&quot; stuff?

&gt; Source/WebCore/Modules/model-element/HTMLModelElement.h:151
&gt; +    LayoutSize platformLayerSize() const;

Rename

&gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:273
&gt; +            auto fenceSendRight = MachSendRight::adopt([strongFenceHandle copyPort]);
&gt; +            [strongFenceHandle invalidate];

This looks weird but I don&apos;t understand how CAFenceHandle and MachSendRights interact

&gt; Source/WebKit/UIProcess/ModelElementController.h:74
&gt; +    void modelElementSizeDidChange(const String&amp; uuid, WebCore::FloatSize, CompletionHandler&lt;void(Expected&lt;MachSendRight, WebCore::ResourceError&gt;)&gt;&amp;&amp;);

You should name the MachSendRight so reading the code I know it&apos;s about fencing.

&gt; Source/WebKit/WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:180
&gt; +void ARKitInlinePreviewModelPlayerMac::sizeDidChange(WebCore::LayoutSize size)

I feel like size should be a FloatSize, and we should have pixel-snapped it somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839312</commentid>
    <comment_count>15</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-02-09 11:31:28 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #14)
&gt; Comment on attachment 451402 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=451402&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/model-element/HTMLModelElement.cpp:647
&gt; &gt; +LayoutSize HTMLModelElement::platformLayerSize() const
&gt; 
&gt; Don&apos;t use the term &quot;platform layer&quot; here. Maybe contentsSize.

Will rename to contentSize.

&gt; &gt; Source/WebCore/Modules/model-element/HTMLModelElement.h:108
&gt; &gt; +    void parentLayerSizeMayHaveChanged();
&gt; 
&gt; Why does DOM code care about &quot;parent layer&quot; stuff?

Doesn&apos;t, I&apos;ll rename to &quot;sizeMayHaveChanged()&quot;.

&gt; &gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:273
&gt; &gt; +            auto fenceSendRight = MachSendRight::adopt([strongFenceHandle copyPort]);
&gt; &gt; +            [strongFenceHandle invalidate];
&gt; 
&gt; This looks weird but I don&apos;t understand how CAFenceHandle and MachSendRights
&gt; interact

Tim Horton helped me with this, so I trust that it&apos;s correct.

&gt; &gt; Source/WebKit/UIProcess/ModelElementController.h:74
&gt; &gt; +    void modelElementSizeDidChange(const String&amp; uuid, WebCore::FloatSize, CompletionHandler&lt;void(Expected&lt;MachSendRight, WebCore::ResourceError&gt;)&gt;&amp;&amp;);
&gt; 
&gt; You should name the MachSendRight so reading the code I know it&apos;s about
&gt; fencing.

I tried and failed: &quot;error: type-id cannot have a name&quot;.

&gt; &gt; Source/WebKit/WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:180
&gt; &gt; +void ARKitInlinePreviewModelPlayerMac::sizeDidChange(WebCore::LayoutSize size)
&gt; 
&gt; I feel like size should be a FloatSize, and we should have pixel-snapped it
&gt; somewhere.

This is something I&apos;d like to look at as a follow-up, filed bug 236388.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839321</commentid>
    <comment_count>16</comment_count>
      <attachid>451419</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-02-09 11:41:08 -0800</bug_when>
    <thetext>Created attachment 451419
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839346</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-09 12:21:17 -0800</bug_when>
    <thetext>Committed r289495 (247033@main): &lt;https://commits.webkit.org/247033@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 451419.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451092</attachid>
            <date>2022-02-07 07:06:07 -0800</date>
            <delta_ts>2022-02-09 04:17:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236233-20220207160605.patch</filename>
            <type>text/plain</type>
            <size>24956</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY3Yjc2MjRhZWVjMmFh
MDUxYTM4YWJmYTYyYjM2Y2I0ZDhkYTY1Zi4uNDFmNmU3MzJhMWIzZjRlY2Y0ZmQyOTkzNTVjMjU0
MDgwYTMwYTNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTA3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFttb2RlbF0gaW1wcm92
ZSBzaXppbmcgb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNjIzMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODg1Njk4ODE+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgZGV0ZWN0IHdo
ZW4gdGhlIDxtb2RlbD4gbGF5ZXIgc2l6ZSBjaGFuZ2VzIHVuZGVyIFJlbmRlckxheWVyQmFja2lu
Zzo6dXBkYXRlR2VvbWV0cnkoKQorICAgICAgICBhbmQgaW5mb3JtIHRoZSBhc3NvY2lhdGVkIEhU
TUxNb2RlbEVsZW1lbnQgdGhyb3VnaCB0aGUgbmV3IHBhcmVudExheWVyU2l6ZU1heUhhdmVDaGFu
Z2VkKCkKKyAgICAgICAgbWV0aG9kIHRoYXQgdGhlIHNpemUgaGFzIGNoYW5nZWQuIElmIGl0IGlz
IGluZGVlZCBkaWZmZXJlbnQgdGhhbiB0aGUgbGFzdCBzaXplIHNlZW4gYnkgdGhlCisgICAgICAg
IEhUTUxNb2RlbEVsZW1lbnQsIHdlIGluZm9ybSB0aGUgYmFja2luZyBwbGF5ZXIgdGhhdCBzaXpl
RGlkQ2hhbmdlKCkuCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVs
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpjcmVhdGVN
b2RlbFBsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpwYXJlbnRM
YXllclNpemVNYXlIYXZlQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50
L0hUTUxNb2RlbEVsZW1lbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9k
ZWxQbGF5ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlN
b2RlbFBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyOjpzaXpl
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlN
b2RlbFBsYXllci5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9T
Y2VuZUtpdE1vZGVsUGxheWVyLmg6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3Nj
ZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTY2VuZUtp
dE1vZGVsUGxheWVyOjpzaXplRGlkQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6
dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tp
bmc6OnVwZGF0ZUdlb21ldHJ5KToKKwogMjAyMi0wMi0wNiAgTGF1cm8gTW91cmEgIDxsbW91cmFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBub24tdW5pZmllZCBidWlsZCBmaXhl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggM2VlMmVjOTYyMmFmOTg1Yzg5ODI3YTQ3NGJlZGM0NDNi
YzU1N2U3NC4uZDU0MDI0MjQ3NDA0ZjQ0MGVmZDI1NzAxZDlhYzgxZmY3ZTEwMWE2OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDItMDcgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW21vZGVsXSBpbXByb3ZlIHNpemluZyBv
biBtYWNPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM2MjMzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84ODU2OTg4MT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3bHktdXNlZCBDQUZlbmNl
SGFuZGxlIGFuZCBBU1ZJbmxpbmVQcmV2aWV3IFNQSXMuCisKKyAgICAgICAgKiBwYWwvc3BpL2Nv
Y29hL1F1YXJ0ekNvcmVTUEkuaDoKKyAgICAgICAgKiBwYWwvc3BpL21hYy9TeXN0ZW1QcmV2aWV3
U1BJLmg6CisKIDIwMjItMDItMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVc2UgcHJpdmF0ZSByZWxheSBmb3IgYWxsIHN1YnJlc291cmNl
cyBpZiB0aGUgbWFpbiBkb2N1bWVudCBtYWluIHJlc291cmNlIHdhcyBsb2FkZWQgdXNpbmcgcHJp
dmF0ZSByZWxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMGRmOGY0NDQyMDEzMmM4OWZhZDViYTY0Y2Y3ZTQ4ODQw
YmVjNjE2Li45YTEyN2IxZDU3OTg5NDAwMDQ0ZWYzOGY1Y2ZkYTUxNTdhMDRiNWY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM1IEBACisyMDIyLTAyLTA3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3
ZWJraXQub3JnPgorCisgICAgICAgIFttb2RlbF0gaW1wcm92ZSBzaXppbmcgb24gbWFjT1MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjIzMworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vODg1Njk4ODE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugb3ZlcnJpZGUgdGhlIG5ldyBNb2RlbFBsYXllcjo6
c2l6ZURpZENoYW5nZSgpIHZpcnR1YWwgbWV0aG9kIG9uIEFSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyTWFjCisgICAgICAgIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIDxtb2RlbD4gbGF5ZXIn
cyBoYXMgY2hhbmdlZCBzaXplLiBXZSB0aGVuIHNlbmQgdGhlIG5ldyBNb2RlbEVsZW1lbnRTaXpl
RGlkQ2hhbmdlCisgICAgICAgIG1lc3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3Mgd2hpY2ggd2lsbCB5
aWVsZCBhIGNhbGwgdG8gTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6bW9kZWxFbGVtZW50U2l6ZURp
ZENoYW5nZSgpLgorCisgICAgICAgIEluIHRoYXQgbmV3IG1ldGhvZCwgd2UgY2FsbCAtW0FTVklu
bGluZVByZXZpZXcgdXBkYXRlRnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6XSB3aGljaCBwcm92aWVz
IHVzIHdpdGggYQorICAgICAgICBDQUZlbmNlSGFuZGxlIHdoaWNoIHdlIGNvcHkgdG8gY3JlYXRl
IGEgTWFjaFNlbmRSaWdodCB0byBzZW5kIGJhY2sgdG8gdGhlIFdlYiBwcm9jZXNzIGluIHRoZSBJ
UEMgY2FsbGJhY2suCisKKyAgICAgICAgQmFjayBpbiB0aGUgV2ViIHByb2Nlc3MsIHdlIGluc3Rh
bGwgdGhpcyBmZW5jZSBvbiB0aGUgZHJhd2luZyBhcmVhIGFuZCBmaW5hbGx5IGNhbGwgLVtBU1ZJ
bmxpbmVQcmV2aWV3CisgICAgICAgIHNldEZyYW1lV2l0aGluRmVuY2VkVHJhbnNhY3Rpb246XSB0
byBjb21wbGV0ZSB0aGUgc2l6aW5nIHVwZGF0ZSBvbiBib3RoIHRoZSBBU1ZJbmxpbmVQcmV2aWV3
IGluc3RhbmNlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250
cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok1vZGVsRWxlbWVudENvbnRyb2xsZXI6
Om1vZGVsRWxlbWVudFNpemVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Nb2RlbEVs
ZW1lbnRDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bW9kZWxFbGVtZW50U2l6ZURpZENoYW5n
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2Rl
bC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW06CisgICAgICAgIChXZWJLaXQ6
OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpzaXplRGlkQ2hhbmdlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllck1hYzo6c2l6ZURpZENoYW5nZSk6CisKIDIwMjItMDItMDYgIFNpaHVpIExpdSAgPHNpaHVp
X2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjg2OTM2KTogQ3Jhc2ggaW4g
V2ViS2l0OjpPcmlnaW5TdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUJ1Y2tldDo6ZGVsZXRlTG9jYWxT
dG9yYWdlRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCmluZGV4IDg0ZDdhYmIyNGNmMjhjMjIwMjI1ZmRl
YzVjOTcyNzFhNTE1NDI1ZjcuLmZiYTFhMTk3Mjc0ZmFmNjA4MDY2ZDI0MzMyZDU4NTVmYmMxZDI3
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1M
TW9kZWxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKQEAgLTI2NCw2ICsyNjQsNyBAQCB2b2lkIEhUTUxNb2Rl
bEVsZW1lbnQ6OmNyZWF0ZU1vZGVsUGxheWVyKCkKICAgICBBU1NFUlQocmVuZGVyZXIoKSk7CiAg
ICAgYXV0byBzaXplID0gcmVuZGVyZXIoKS0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoZmFsc2Up
LnNpemUoKTsKICAgICBtX21vZGVsUGxheWVyLT5sb2FkKCptX21vZGVsLCBzaXplKTsKKyAgICBt
X3BsYXRmb3JtTGF5ZXJTaXplID0gc2l6ZTsKIH0KIAogYm9vbCBIVE1MTW9kZWxFbGVtZW50Ojp1
c2VzUGxhdGZvcm1MYXllcigpIGNvbnN0CkBAIC0yNzYsNiArMjc3LDE2IEBAIFBsYXRmb3JtTGF5
ZXIqIEhUTUxNb2RlbEVsZW1lbnQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogICAgIHJldHVybiBt
X21vZGVsUGxheWVyLT5sYXllcigpOwogfQogCit2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OnBhcmVu
dExheWVyU2l6ZU1heUhhdmVDaGFuZ2VkKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKK3sKKyAgICBp
ZiAobV9wbGF0Zm9ybUxheWVyU2l6ZSA9PSBzaXplKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3BsYXRmb3JtTGF5ZXJTaXplID0gc2l6ZTsKKworICAgIG1fbW9kZWxQbGF5ZXItPnNpemVEaWRD
aGFuZ2UobV9wbGF0Zm9ybUxheWVyU2l6ZSk7Cit9CisKIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6
ZGlkRmluaXNoTG9hZGluZyhNb2RlbFBsYXllciYgbW9kZWxQbGF5ZXIpCiB7CiAgICAgQVNTRVJU
X1VOVVNFRChtb2RlbFBsYXllciwgJm1vZGVsUGxheWVyID09IG1fbW9kZWxQbGF5ZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxF
bGVtZW50LmgKaW5kZXggZWI3MWQ2NTliNDkyZjVjMzAxNDQ1N2FjNjVmMmNmMmNlMjUwYTc1Zi4u
MzUxZTQzYTIzNDU5ZjgzMzQ2ODE4YmFhMTcwNmFlNmU5MmY4ZDQxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5o
CkBAIC0xMDMsNyArMTAzLDkgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFZl
Y3RvcjxSZXRhaW5QdHI8aWQ+PiBhY2Nlc3NpYmlsaXR5Q2hpbGRyZW4oKTsKICNlbmRpZgotICAg
IAorCisgICAgdm9pZCBwYXJlbnRMYXllclNpemVNYXlIYXZlQ2hhbmdlZChjb25zdCBGbG9hdFNp
emUmKTsKKwogcHJpdmF0ZToKICAgICBIVE1MTW9kZWxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogCkBAIC0xNTUsNiArMTU3LDggQEAgcHJpdmF0ZToKICAgICBib29s
IG1fc2hvdWxkQ3JlYXRlTW9kZWxQbGF5ZXJVcG9uUmVuZGVyZXJBdHRhY2htZW50IHsgZmFsc2Ug
fTsKIAogICAgIFJlZlB0cjxNb2RlbFBsYXllcj4gbV9tb2RlbFBsYXllcjsKKworICAgIEZsb2F0
U2l6ZSBtX3BsYXRmb3JtTGF5ZXJTaXplOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxh
eWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIu
aAppbmRleCBlNjc0NjcyNjhmZjhhMjc1YzgxMDA2OTM5NDM2YjU3MjE5OWUzYThhLi4wMTNiMzZm
NGQ2MDM0ZTcxY2M1MGNjMzBhM2QzMTA3M2M2N2EzZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaApAQCAtNDQsNiArNDQsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+TW9kZWxQbGF5ZXIoKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBsb2FkKE1vZGVsJiwgTGF5b3V0U2l6ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaXplRGlk
Q2hhbmdlKGNvbnN0IEZsb2F0U2l6ZSYpID0gMDsKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIq
IGxheWVyKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSA9IDA7CiAg
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzTW91c2VJbnRlcmFjdGlvbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15
TW9kZWxQbGF5ZXIuY3BwCmluZGV4IGI5NzFhMGQ3NTliNDkxMmVmYzhiOTUwMGY1MTA0ZDQ4MDkx
MWE2NTkuLmE3YzY1MjhiMTUwNWRiYjEzYWU0OTBhYjQxMTUwOWIyMzA5M2ZjNzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVs
UGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVt
bXkvRHVtbXlNb2RlbFBsYXllci5jcHAKQEAgLTU0LDYgKzU0LDEwIEBAIFBsYXRmb3JtTGF5ZXIq
IER1bW15TW9kZWxQbGF5ZXI6OmxheWVyKCkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAordm9p
ZCBEdW1teU1vZGVsUGxheWVyOjpzaXplRGlkQ2hhbmdlKGNvbnN0IEZsb2F0U2l6ZSYpCit7Cit9
CisKIHZvaWQgRHVtbXlNb2RlbFBsYXllcjo6ZW50ZXJGdWxsc2NyZWVuKCkKIHsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1v
ZGVsUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkv
RHVtbXlNb2RlbFBsYXllci5oCmluZGV4IGQxNTM2NDIxYzEwM2VjOGIwNjZlOWMyNWMyYjVmMjE0
ZjVmMDI5Y2IuLjliZjJmNDU4MTdjNjJkMDU4OTdmMDRkMTYzZmRiOGI1YmJiM2EzMGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1v
ZGVsUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1
bW15L0R1bW15TW9kZWxQbGF5ZXIuaApAQCAtNDIsNiArNDIsNyBAQCBwcml2YXRlOgogCiAgICAg
Ly8gTW9kZWxQbGF5ZXIgb3ZlcnJpZGVzLgogICAgIHZvaWQgbG9hZChNb2RlbCYsIExheW91dFNp
emUpIG92ZXJyaWRlOworICAgIHZvaWQgc2l6ZURpZENoYW5nZShjb25zdCBGbG9hdFNpemUmKSBv
dmVycmlkZTsKICAgICBQbGF0Zm9ybUxheWVyKiBsYXllcigpIG92ZXJyaWRlOwogICAgIHZvaWQg
ZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVNb3VzZURvd24oY29u
c3QgTGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVs
UGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQv
U2NlbmVLaXRNb2RlbFBsYXllci5oCmluZGV4IDhmOWFmMDBkMGE5M2YyZTViZjE0MzYwZmJlMTNl
YTgwZWMwMTQ0M2EuLmMyMDk0MjUzZThmM2E3ZGUwYzU2N2YxODViZjVkMGJlZTI2YmJhZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9T
Y2VuZUtpdE1vZGVsUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIuaApAQCAtNTYsNiArNTYsNyBAQCBw
cml2YXRlOgogCiAgICAgLy8gTW9kZWxQbGF5ZXIgb3ZlcnJpZGVzLgogICAgIHZvaWQgbG9hZChN
b2RlbCYsIExheW91dFNpemUpIG92ZXJyaWRlOworICAgIHZvaWQgc2l6ZURpZENoYW5nZShjb25z
dCBGbG9hdFNpemUmKSBvdmVycmlkZTsKICAgICBDQUxheWVyICpsYXllcigpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVNb3Vz
ZURvd24oY29uc3QgTGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2Vu
ZUtpdE1vZGVsUGxheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50
L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0KaW5kZXggNzZkNDhlM2ViNTMzOTg1MTA4
MTYzZjdhYmM2NTYyMDE5YTBiMWQ5Ny4uN2NiNWZiMWY0NDhkNzM4ODY3NjQ2ZTM1NDYwYjQ5ZjI0
MGNiZmRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50
L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0KQEAgLTcz
LDYgKzczLDEwIEBAIHZvaWQgU2NlbmVLaXRNb2RlbFBsYXllcjo6bG9hZChNb2RlbCYgbW9kZWxT
b3VyY2UsIExheW91dFNpemUpCiAgICAgbV9sb2FkZXIgPSBsb2FkU2NlbmVLaXRNb2RlbChtb2Rl
bFNvdXJjZSwgKnRoaXMpOwogfQogCit2b2lkIFNjZW5lS2l0TW9kZWxQbGF5ZXI6OnNpemVEaWRD
aGFuZ2UoY29uc3QgRmxvYXRTaXplJikKK3sKK30KKwogUGxhdGZvcm1MYXllciogU2NlbmVLaXRN
b2RlbFBsYXllcjo6bGF5ZXIoKQogewogICAgIHJldHVybiBtX2xheWVyLmdldCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCmluZGV4IDdi
NjcyYWU2ZWZhMjk1ZDM3OTkwNmM4OWNmNjdlZWNkZGI1MGEyMjAuLmI0NTkwZjhiNjhjYWE5NDY1
OTA1YmNjN2U1YzliYzY0YTE2NTM0ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTUyLDYgKzUyLDEwIEBACiAjaW1wb3J0IDxR
dWFydHpDb3JlL0NBRGlzcGxheUxpbmtQcml2YXRlLmg+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShB
UktJVF9JTkxJTkVfUFJFVklFVykKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FGZW5jZUhhbmRsZS5o
PgorI2VuZGlmCisKICNlbmRpZiAvLyBfX09CSkNfXwogCiAjZWxzZQpAQCAtNjUsOCArNjksMTQg
QEAgdHlwZWRlZiBzdHJ1Y3QgX0NBUmVuZGVyQ29udGV4dCBDQVJlbmRlckNvbnRleHQ7CiBAZW5k
CiAjZW5kaWYKIAotI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19JT1MpCi1AY2xhc3Mg
Q0FGZW5jZUhhbmRsZTsKKyNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVcpCitAaW50ZXJm
YWNlIENBRmVuY2VIYW5kbGUgOiBOU09iamVjdAorQGVuZAorCitAaW50ZXJmYWNlIENBRmVuY2VI
YW5kbGUgKCkKKy0gKG1hY2hfcG9ydF90KWNvcHlQb3J0OworLSAodm9pZClpbnZhbGlkYXRlOwor
QGVuZAogI2VuZGlmCiAKIEBpbnRlcmZhY2UgQ0FDb250ZXh0IDogTlNPYmplY3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TeXN0ZW1QcmV2aWV3U1BJLmggYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQSS5oCmluZGV4IDNm
MDJlOGNjYjA4ZTVmYmY2ZjMxYWU5YWEyZjgyMTc5OTFhNjczNmUuLjkyMWU2MGVmNGExODIxNzA1
ZjA2MWY4OTcxZWY1NDkyMGIxNTBlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL21hYy9TeXN0ZW1QcmV2aWV3U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaApAQCAtNTAsNiArNTAsOSBAQCBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogLSAodm9pZClwcmVwYXJlUHJldmlld09mRmlsZUF0VVJMOihOU1VSTCAq
KXVybCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJv
cikpaGFuZGxlcjsKIC0gKHZvaWQpc2V0UmVtb3RlQ29udGV4dDoodWludDMyX3QpY29udGV4dElk
OwogCistICh2b2lkKXVwZGF0ZUZyYW1lOihDR1JlY3QpbmV3RnJhbWUgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKENBRmVuY2VIYW5kbGUgKiBfTnVsbGFibGUgZmVuY2VIYW5kbGUsIE5TRXJy
b3IgKiBfTnVsbGFibGUgZXJyb3IpKWhhbmRsZXI7CistICh2b2lkKXNldEZyYW1lV2l0aGluRmVu
Y2VkVHJhbnNhY3Rpb246KENHUmVjdClmcmFtZTsKKwogLSAodm9pZCltb3VzZURvd25BdExvY2F0
aW9uOihDR1BvaW50KWxvY2F0aW9uIHRpbWVzdGFtcDooTlNUaW1lSW50ZXJ2YWwpdGltZXN0YW1w
OwogLSAodm9pZCltb3VzZURyYWdnZWRBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIHRpbWVz
dGFtcDooTlNUaW1lSW50ZXJ2YWwpdGltZXN0YW1wOwogLSAodm9pZCltb3VzZVVwQXRMb2NhdGlv
bjooQ0dQb2ludClsb2NhdGlvbiB0aW1lc3RhbXA6KE5TVGltZUludGVydmFsKXRpbWVzdGFtcDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5k
ZXggNGVmY2ZhYjU1NTdiNTUzM2JlZTk1Yzk0MjgyNjEyYTE3NWY2NTMzOC4uMmYyOTkwZDE5Nzg5
ZTJlNTgyOWNmMmQxZDNmZWI1MzUxNGM1NjNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTEwOTksOSArMTA5OSw5IEBAIGJvb2wg
UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9uKGNvbnN0IFJlbmRlckxheWVy
KiBjb21wb3NpdGluZ0FuY2VzCiAKICAgICAgICAgLy8gU29tZSBNb2RlbFBsYXllcnMgdXNlIGEg
cGxhdGZvcm1MYXllcigpIGFuZCBzb21lIHBhc3MgdGhlIE1vZGVsIHRvIHRoZSBsYXllciBhcyBj
b250ZW50cywKICAgICAgICAgLy8gYnV0IHRoaXMgaXMgYSBydW50aW1lIGRlY2lzaW9uLgotICAg
ICAgICBpZiAoZWxlbWVudC0+dXNlc1BsYXRmb3JtTGF5ZXIoKSkgeworICAgICAgICBpZiAoZWxl
bWVudC0+dXNlc1BsYXRmb3JtTGF5ZXIoKSkKICAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+
c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoZWxlbWVudC0+cGxhdGZvcm1MYXllcigpLCBHcmFw
aGljc0xheWVyOjpDb250ZW50c0xheWVyUHVycG9zZTo6TW9kZWwpOwotICAgICAgICB9IGVsc2Ug
aWYgKGF1dG8gbW9kZWwgPSBlbGVtZW50LT5tb2RlbCgpKQorICAgICAgICBlbHNlIGlmIChhdXRv
IG1vZGVsID0gZWxlbWVudC0+bW9kZWwoKSkKICAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+
c2V0Q29udGVudHNUb01vZGVsKFdURk1vdmUobW9kZWwpKTsKIAogICAgICAgICBsYXllckNvbmZp
Z0NoYW5nZWQgPSB0cnVlOwpAQCAtMTUxMSw2ICsxNTExLDE0IEBAIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjp1cGRhdGVHZW9tZXRyeShjb25zdCBSZW5kZXJMYXllciogY29tcG9zaXRlZEFuY2Vz
dG9yKQogCiAgICAgaWYgKHN1YnBpeGVsT2Zmc2V0RnJvbVJlbmRlcmVyQ2hhbmdlZChvbGRTdWJw
aXhlbE9mZnNldEZyb21SZW5kZXJlciwgbV9zdWJwaXhlbE9mZnNldEZyb21SZW5kZXJlciwgZGV2
aWNlU2NhbGVGYWN0b3IpICYmIGNhbklzc3VlU2V0TmVlZHNEaXNwbGF5KCkpCiAgICAgICAgIHNl
dENvbnRlbnRzTmVlZERpc3BsYXkoKTsKKworI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQorICAg
IGVsc2UgaWYgKGlzPFJlbmRlck1vZGVsPihyZW5kZXJlcigpKSkgeworICAgICAgICBhdXRvKiBl
bGVtZW50ID0gZG93bmNhc3Q8SFRNTE1vZGVsRWxlbWVudD4ocmVuZGVyZXIoKS5lbGVtZW50KCkp
OworICAgICAgICBpZiAoZWxlbWVudC0+dXNlc1BsYXRmb3JtTGF5ZXIoKSkKKyAgICAgICAgICAg
IGVsZW1lbnQtPnBhcmVudExheWVyU2l6ZU1heUhhdmVDaGFuZ2VkKG1fZ3JhcGhpY3NMYXllci0+
c2l6ZSgpKTsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmFk
anVzdE92ZXJmbG93Q29udHJvbHNQb3NpdGlvblJlbGF0aXZlVG9BbmNlc3Rvcihjb25zdCBSZW5k
ZXJMYXllciYgYW5jZXN0b3JMYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRyb2xsZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCBmNWQz
YzdjZWU2ZjI0Zjc2OTBhNjhjY2MzN2MxZjQ2MGRmNzc1MDVjLi5mNzk5ZWIzMTRlZTdlZDBhNjAz
MTBmOWQ4MjY3ZjgyNmYzZTAyNzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tCkBAIC0zMyw3
ICszMyw5IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xheW91dFBvaW50Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0xheW91dFVuaXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDxzaW1kL3NpbWQu
aD4KKyNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVh
ZC5oPgogI2ltcG9ydCA8d3RmL01vbm90b25pY1RpbWUuaD4KIApAQCAtNDMsNyArNDUsNiBAQAog
I2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVl
Vmlld3MuaCIKICNpbXBvcnQgIldLTW9kZWxWaWV3LmgiCi0jaW1wb3J0IDxwYWwvc3BpL2NvY29h
L1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvaW9zL1N5c3RlbVByZXZpZXdTUEku
aD4KICNlbmRpZgogCkBAIC0yMzksNiArMjQwLDQyIEBAIHZvaWQgTW9kZWxFbGVtZW50Q29udHJv
bGxlcjo6aGFuZGxlTW91c2VVcEZvck1vZGVsRWxlbWVudChjb25zdCBTdHJpbmcmIHV1aWQsIGNv
CiAgICAgICAgIFtwcmV2aWV3IG1vdXNlVXBBdExvY2F0aW9uOkNHUG9pbnRNYWtlKGZsaXBwZWRM
b2NhdGlvbkluRWxlbWVudC54KCkudG9GbG9hdCgpLCBmbGlwcGVkTG9jYXRpb25JbkVsZW1lbnQu
eSgpLnRvRmxvYXQoKSkgdGltZXN0YW1wOnRpbWVzdGFtcC5zZWNvbmRzU2luY2VFcG9jaCgpLnZh
bHVlKCldOwogfQogCit2b2lkIE1vZGVsRWxlbWVudENvbnRyb2xsZXI6Om1vZGVsRWxlbWVudFNp
emVEaWRDaGFuZ2UoY29uc3QgU3RyaW5nJiB1dWlkLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8TWFjaFNlbmRSaWdodCwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8g
cHJldmlldyA9IHByZXZpZXdGb3JVVUlEKHV1aWQpOworICAgIGlmICghcHJldmlldykgeworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIHsgV2ViQ29yZTo6ZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgeyB9LCAiQ291bGQg
bm90IGZpbmQgbW9kZWwiX3MgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0
byBoYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXJXaXRoRmluYWxpemVyPHZvaWQoRXhwZWN0ZWQ8
TWFjaFNlbmRSaWdodCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPihXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgW10gKEZ1bmN0aW9uPHZvaWQoRXhwZWN0ZWQ8TWFjaFNlbmRSaWdodCwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvcj4pPiYgY29tcGxldGlvbkhhbmRsZXIpIHsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciB7IFdl
YkNvcmU6OlJlc291cmNlRXJyb3I6OlR5cGU6OkdlbmVyYWwgfSkpOworICAgIH0pOworCisgICAg
W3ByZXZpZXcgdXBkYXRlRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCBzaXplLndpZHRoKCksIHNpemUu
aGVpZ2h0KCkpIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgaGFuZGxlciA9IFdURk1vdmUoaGFuZGxlciksIHV1aWRdIChDQUZlbmNl
SGFuZGxlICpmZW5jZUhhbmRsZSwgTlNFcnJvciAqZXJyb3IpIG11dGFibGUgeworICAgICAgICBp
ZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIExPRyhNb2RlbEVsZW1lbnQsICJVbmFibGUgdG8gdXBk
YXRlIGZyYW1lOiAlQC4iLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbik7CisgICAgICAgICAg
ICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgaGFuZGxl
ciA9IFdURk1vdmUoaGFuZGxlciksIGVycm9yID0gV2ViQ29yZTo6UmVzb3VyY2VFcnJvciB7IGVy
cm9yIH1dICgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBoYW5kbGVyKG1ha2VVbmV4
cGVjdGVkKGVycm9yKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIFtmZW5jZUhhbmRs
ZSBpbnZhbGlkYXRlXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IFJldGFpblB0ciBzdHJvbmdGZW5jZUhhbmRsZSA9IGZlbmNlSGFuZGxlOworICAgICAgICBjYWxs
T25NYWluUnVuTG9vcChbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgaGFuZGxlciA9IFdU
Rk1vdmUoaGFuZGxlciksIHV1aWQsIHN0cm9uZ0ZlbmNlSGFuZGxlID0gV1RGTW92ZShzdHJvbmdG
ZW5jZUhhbmRsZSldICgpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGF1dG8gZmVuY2VTZW5kUmlnaHQg
PSBNYWNoU2VuZFJpZ2h0OjphZG9wdChbc3Ryb25nRmVuY2VIYW5kbGUgY29weVBvcnRdKTsKKyAg
ICAgICAgICAgIFtzdHJvbmdGZW5jZUhhbmRsZSBpbnZhbGlkYXRlXTsKKyAgICAgICAgICAgIGhh
bmRsZXIoZmVuY2VTZW5kUmlnaHQpOworICAgICAgICB9KTsKKyAgICB9KS5nZXQoKV07Cit9CisK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5oCmluZGV4IDljNDM2ZDJl
NWRkZjFiMjg1YTk1ZDQ5Y2FkZGI1OWQxMzc0NDUzNDguLmYxMGM1NGFhOTBjZDYwYjc5OWM4NDJi
ZWVlOTY1YmRmODk3OGRkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01v
ZGVsRWxlbWVudENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Nb2Rl
bEVsZW1lbnRDb250cm9sbGVyLmgKQEAgLTcxLDYgKzcxLDcgQEAgcHVibGljOgogI2VuZGlmCiAj
aWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKICAgICB2b2lkIG1vZGVsRWxlbWVu
dERpZENyZWF0ZVByZXZpZXcoVVJMLCBTdHJpbmcsIFdlYkNvcmU6OkZsb2F0U2l6ZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxzdGQ6OnBhaXI8U3RyaW5nLCB1aW50MzJfdD4sIFdl
YkNvcmU6OlJlc291cmNlRXJyb3I+KT4mJik7CisgICAgdm9pZCBtb2RlbEVsZW1lbnRTaXplRGlk
Q2hhbmdlKGNvbnN0IFN0cmluZyYgdXVpZCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxNYWNoU2VuZFJpZ2h0LCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yPik+JiYpOwogICAgIHZvaWQgaGFuZGxlTW91c2VEb3duRm9yTW9kZWxFbGVtZW50
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgTW9ub3RvbmljVGlt
ZSk7CiAgICAgdm9pZCBoYW5kbGVNb3VzZU1vdmVGb3JNb2RlbEVsZW1lbnQoY29uc3QgU3RyaW5n
JiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKTsKICAgICB2b2lk
IGhhbmRsZU1vdXNlVXBGb3JNb2RlbEVsZW1lbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29y
ZTo6TGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDYxYTg5MjAwYmIwOWQwMDZlYWE0NjlkMmU0ZDlkZjYwMDNh
NzcxMzcuLjQ5YzZjNDQzYzM4NTliNTJjOTk1YTJkNWM4NDk5MTg2YTI4MTIxMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTEwOTksNiArMTEwOTksMTEg
QEAgdm9pZCBXZWJQYWdlUHJveHk6Om1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXUKICAgICBtb2RlbEVsZW1lbnRDb250cm9sbGVyKCkt
Pm1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcodXJsLCB1dWlkLCBzaXplLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojptb2RlbEVsZW1lbnRT
aXplRGlkQ2hhbmdlKGNvbnN0IFN0cmluZyYgdXVpZCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPE1hY2hTZW5kUmlnaHQsIFdl
YkNvcmU6OlJlc291cmNlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtb2Rl
bEVsZW1lbnRDb250cm9sbGVyKCktPm1vZGVsRWxlbWVudFNpemVEaWRDaGFuZ2UodXVpZCwgc2l6
ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6
aGFuZGxlTW91c2VEb3duRm9yTW9kZWxFbGVtZW50KGNvbnN0IFN0cmluZyYgdXVpZCwgY29uc3Qg
V2ViQ29yZTo6TGF5b3V0UG9pbnQmIGZsaXBwZWRMb2NhdGlvbkluRWxlbWVudCwgTW9ub3Rvbmlj
VGltZSB0aW1lc3RhbXApCiB7CiAgICAgbW9kZWxFbGVtZW50Q29udHJvbGxlcigpLT5oYW5kbGVN
b3VzZURvd25Gb3JNb2RlbEVsZW1lbnQodXVpZCwgZmxpcHBlZExvY2F0aW9uSW5FbGVtZW50LCB0
aW1lc3RhbXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhNDQ3
YzcwYzA4NDA2MTQ5MGMxYjQ5NWVmYjE4N2YxNjVhMWVjY2IyLi4wZTliMDAwMWEwN2M2MDU2YTMw
NjVhZDgzZTllMmUyYjUwMmQ0MGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtNjEyLDYgKzYxMiw3IEBAIHB1YmxpYzoKICNlbmRpZgogI2lmIEVOQUJMRShBUktJ
VF9JTkxJTkVfUFJFVklFV19NQUMpCiAgICAgdm9pZCBtb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2
aWV3KGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpwYWlyPFN0cmluZywgdWludDMy
X3Q+LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYpOworICAgIHZvaWQgbW9kZWxFbGVtZW50
U2l6ZURpZENoYW5nZShjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPE1hY2hTZW5kUmlnaHQsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBoYW5kbGVNb3VzZURvd25Gb3JNb2RlbEVsZW1l
bnQoY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBNb25vdG9uaWNU
aW1lKTsKICAgICB2b2lkIGhhbmRsZU1vdXNlTW92ZUZvck1vZGVsRWxlbWVudChjb25zdCBTdHJp
bmcmLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYsIE1vbm90b25pY1RpbWUpOwogICAgIHZv
aWQgaGFuZGxlTW91c2VVcEZvck1vZGVsRWxlbWVudChjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJD
b3JlOjpMYXlvdXRQb2ludCYsIE1vbm90b25pY1RpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE1Y2QwZTNkNTk2OGJjNjYx
N2VhNWM0YTI4ZjAxN2ExMTRkYWI5NWIuLmUzOTFjYWFjN2QwNTFlNzdhODI1ZDZkYzQ5Y2UyZmZk
OTQ3YjdmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KQEAgLTU4OSw2ICs1ODksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogI2VuZGlmCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKICAgICBNb2Rl
bEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KFVSTCB1cmwsIFN0cmluZyB1dWlkLCBXZWJDb3JlOjpG
bG9hdFNpemUgc2l6ZSkgLT4gKEV4cGVjdGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90Piwg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIE1vZGVsRWxlbWVudFNp
emVEaWRDaGFuZ2UoU3RyaW5nIHV1aWQsIFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKSAtPiAoRXhw
ZWN0ZWQ8TWFjaFNlbmRSaWdodCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwogICAgIEhhbmRsZU1vdXNlRG93bkZvck1vZGVsRWxlbWVudChTdHJpbmcgdXVpZCwgV2ViQ29y
ZTo6TGF5b3V0UG9pbnQgZmxpcHBlZExvY2F0aW9uSW5FbGVtZW50LCBNb25vdG9uaWNUaW1lIHRp
bWVzdGFtcCkKICAgICBIYW5kbGVNb3VzZU1vdmVGb3JNb2RlbEVsZW1lbnQoU3RyaW5nIHV1aWQs
IFdlYkNvcmU6OkxheW91dFBvaW50IGZsaXBwZWRMb2NhdGlvbkluRWxlbWVudCwgTW9ub3Rvbmlj
VGltZSB0aW1lc3RhbXApCiAgICAgSGFuZGxlTW91c2VVcEZvck1vZGVsRWxlbWVudChTdHJpbmcg
dXVpZCwgV2ViQ29yZTo6TGF5b3V0UG9pbnQgZmxpcHBlZExvY2F0aW9uSW5FbGVtZW50LCBNb25v
dG9uaWNUaW1lIHRpbWVzdGFtcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgKaW5kZXggNGM1
ZjMxODNhMmI4NzUwMzBhYmNlYmRmNDBlMzk4ODgyYmQ2M2VlYy4uYTI2ODdhYjBiZDJmZWQ5Nzg1
YjE0YjcwMTZlOWRkZjk1YTk4NWFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgKQEAg
LTUxLDYgKzUxLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpNb2Rl
bFBsYXllciBvdmVycmlkZXMuCiAgICAgdm9pZCBsb2FkKFdlYkNvcmU6Ok1vZGVsJiwgV2ViQ29y
ZTo6TGF5b3V0U2l6ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaXplRGlkQ2hhbmdlKGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYpIG92ZXJyaWRlOwogICAgIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICAgICB2b2lk
IGdldENhbWVyYShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
SFRNTE1vZGVsRWxlbWVudENhbWVyYT4mJik+JiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVy
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyLm1tCmluZGV4IDYwMDUwODg1ZDZhMzk0ZjE5NGJlNTU3ZDc1YTJjZjMyODY4MTc1
YTAuLjI4NzFjZmY5M2Q4NzU3ZWI5NDRhMzA5NmUxZGU2YzcyMDc5MjQ5NmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXIubW0KQEAgLTQ2LDYgKzQ2LDEwIEBAIHZvaWQgQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXI6OmxvYWQoV2ViQ29yZTo6TW9kZWwmLCBXZWJDb3JlOjpMYXlvdXRT
aXplKQogewogfQogCit2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpzaXplRGlk
Q2hhbmdlKGNvbnN0IEZsb2F0U2l6ZSYpCit7Cit9CisKIFBsYXRmb3JtTGF5ZXIqIEFSS2l0SW5s
aW5lUHJldmlld01vZGVsUGxheWVyOjpsYXllcigpCiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwv
bWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmgKaW5kZXggNmM4NWY0MjBlYTA5
MjBkZjUzMmYwZWQ3ZmVkOTExMmZiYzI3OWQ2Yi4uNWFmMmRlNWI5ODcxMzUzN2FhZjlhODZjZjMw
Y2IwZmQzNDk2MTY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVs
L21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMu
aApAQCAtNTEsNiArNTEsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gV2ViQ29yZTo6TW9kZWxQbGF5
ZXIgb3ZlcnJpZGVzLgogICAgIHZvaWQgbG9hZChXZWJDb3JlOjpNb2RlbCYsIFdlYkNvcmU6Okxh
eW91dFNpemUpIG92ZXJyaWRlOworICAgIHZvaWQgc2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmKSBvdmVycmlkZTsKICAgICBQbGF0Zm9ybUxheWVyKiBsYXllcigpIG92ZXJy
aWRlOwogICAgIGJvb2wgc3VwcG9ydHNNb3VzZUludGVyYWN0aW9uKCkgb3ZlcnJpZGU7CiAgICAg
Ym9vbCBzdXBwb3J0c0RyYWdnaW5nKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFj
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllck1hYy5tbQppbmRleCBkMjZiM2RhMzM3NTE4YTAwYzEwNjg3YzRjYWU2MGIy
OTYxNWJlMTI3Li43ZmZjZmY5MTFhYmY0NmFkNDY3MjBlZTk1ZjEzNTdiYmFkNjQzOTE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2Rl
bC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMubW0KQEAgLTI4LDEwICsyOCwx
MyBAQAogCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKIAorI2ltcG9ydCAi
RHJhd2luZ0FyZWEuaCIKICNpbXBvcnQgIldlYlBhZ2UuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94
eU1lc3NhZ2VzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL01vZGVsLmg+CisjaW1wb3J0IDxwYWwvc3Bp
L2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL1N5c3RlbVByZXZp
ZXdTUEkuaD4KKyNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAjaW1wb3J0IDx3dGYvU29m
dExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9VVUlELmg+CiAKQEAgLTE3Miw2ICsxNzUsMzQgQEAg
dm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6bG9hZChXZWJDb3JlOjpNb2Rl
bCYgbW9kZWxTb3VyY2UsIFdlYkNvcmUKICAgICBzdHJvbmdQYWdlLT5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhV
Ukw6OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgobV9maWxlUGF0aCksIFttX2lubGluZVByZXZp
ZXcgdXVpZF0uVVVJRFN0cmluZywgc2l6ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
IH0KIAordm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6c2l6ZURpZENoYW5n
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCit7CisgICAgUmVmUHRyIHN0cm9uZ1Bh
Z2UgPSBwYWdlKCk7CisgICAgaWYgKCFzdHJvbmdQYWdlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBTdHJpbmcgdXVpZCA9IFttX2lubGluZVByZXZpZXcgdXVpZF0uVVVJRFN0cmluZzsKKyAgICBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPE1hY2hTZW5kUmlnaHQsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3I+KT4gY29tcGxldGlvbkhhbmRsZXIgPSBbd2Vha1NlbGYgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgc3Ryb25nUGFnZSwgc2l6ZV0gKEV4cGVjdGVkPE1hY2hTZW5kUmlnaHQsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFJlZlB0ciBzdHJvbmdTZWxmID0gd2Vh
a1NlbGYuZ2V0KCk7CisgICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBhdXRvKiBkcmF3aW5nQXJlYSA9IHN0cm9uZ1BhZ2UtPmRyYXdpbmdBcmVh
KCk7CisgICAgICAgIGlmICghZHJhd2luZ0FyZWEpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgYXV0byBmZW5jZVNlbmRSaWdodCA9ICpyZXN1bHQ7CisgICAgICAgIGRyYXdpbmdBcmVh
LT5hZGRGZW5jZShmZW5jZVNlbmRSaWdodCk7CisKKyAgICAgICAgW3N0cm9uZ1NlbGYtPm1faW5s
aW5lUHJldmlldyBzZXRGcmFtZVdpdGhpbkZlbmNlZFRyYW5zYWN0aW9uOkNHUmVjdE1ha2UoMCwg
MCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKV07CisgICAgfTsKKworICAgIHN0cm9uZ1Bh
Z2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpNb2RlbEVsZW1l
bnRTaXplRGlkQ2hhbmdlKHV1aWQsIHNpemUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
Cit9CisKIFBsYXRmb3JtTGF5ZXIqIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjps
YXllcigpCiB7CiAgICAgcmV0dXJuIFttX2lubGluZVByZXZpZXcgbGF5ZXJdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451356</attachid>
            <date>2022-02-09 04:18:04 -0800</date>
            <delta_ts>2022-02-09 10:39:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236233-20220209131802.patch</filename>
            <type>text/plain</type>
            <size>24805</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJlYTU4MmI0ZDZlYjUx
ZGE5NTY0YzYyYTU1NGViNjRiMjExYmEyMC4uMzkwODM5YmU1ZTQyZGRhNmVkZGNlOWU2MGE4OTI0
NDg4YTIwZDNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTA3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFttb2RlbF0gaW1wcm92
ZSBzaXppbmcgb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNjIzMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODg1Njk4ODE+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgZGV0ZWN0IHdo
ZW4gdGhlIDxtb2RlbD4gbGF5ZXIgc2l6ZSBjaGFuZ2VzIHVuZGVyIFJlbmRlckxheWVyQmFja2lu
Zzo6dXBkYXRlR2VvbWV0cnkoKQorICAgICAgICBhbmQgaW5mb3JtIHRoZSBhc3NvY2lhdGVkIEhU
TUxNb2RlbEVsZW1lbnQgdGhyb3VnaCB0aGUgbmV3IHBhcmVudExheWVyU2l6ZU1heUhhdmVDaGFu
Z2VkKCkKKyAgICAgICAgbWV0aG9kIHRoYXQgdGhlIHNpemUgaGFzIGNoYW5nZWQuIElmIGl0IGlz
IGluZGVlZCBkaWZmZXJlbnQgdGhhbiB0aGUgbGFzdCBzaXplIHNlZW4gYnkgdGhlCisgICAgICAg
IEhUTUxNb2RlbEVsZW1lbnQsIHdlIGluZm9ybSB0aGUgYmFja2luZyBwbGF5ZXIgdGhhdCBzaXpl
RGlkQ2hhbmdlKCkuCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVs
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpjcmVhdGVN
b2RlbFBsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpwYXJlbnRM
YXllclNpemVNYXlIYXZlQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50
L0hUTUxNb2RlbEVsZW1lbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9k
ZWxQbGF5ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlN
b2RlbFBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyOjpzaXpl
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlN
b2RlbFBsYXllci5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9T
Y2VuZUtpdE1vZGVsUGxheWVyLmg6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3Nj
ZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTY2VuZUtp
dE1vZGVsUGxheWVyOjpzaXplRGlkQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6
dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tp
bmc6OnVwZGF0ZUdlb21ldHJ5KToKKwogMjAyMi0wMi0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NTUyBDb250YWluZXIgUXVlcmllc10gVHJhY2sgcXVl
cnkgY29udGFpbmVycyBzbyB0aGV5IGNhbiBiZSBpbnZhbGlkYXRlZCBvbiBzaXplIGNoYW5nZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKaW5kZXggMDUxMjIwMDA1MzliYmQwNzcwMmY5Y2NhODRlNmNkY2NlNzEx
MTYzZi4uY2RkNThjYzUxMGU4MTcwOTIzNjI0NDkxNjRhZTJhNTVlNzhmYTZmZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDItMDcgIEFudG9pbmUgUXVpbnQgIDxn
cmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW21vZGVsXSBpbXByb3ZlIHNpemluZyBvbiBt
YWNPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2
MjMzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84ODU2OTg4MT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3bHktdXNlZCBDQUZlbmNlSGFu
ZGxlIGFuZCBBU1ZJbmxpbmVQcmV2aWV3IFNQSXMuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29h
L1F1YXJ0ekNvcmVTUEkuaDoKKyAgICAgICAgKiBwYWwvc3BpL21hYy9TeXN0ZW1QcmV2aWV3U1BJ
Lmg6CisKIDIwMjItMDItMDcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgW21vZGVsXSBpbXByb3ZlIHNpemluZyBvbiBpT1MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTQ0MWJm
NzU0MGZhOWVjMDBkYjBkMmQ0MjYwN2QxOThjN2NkNWFlZi4uMDc2MDFkZmI3NmEwMzVjMzMyMzlk
ZjNiODBlMTg5ZmYzNjhmZTljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMi0wMi0w
NyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBbbW9kZWxd
IGltcHJvdmUgc2l6aW5nIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzYyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg4NTY5ODgx
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIG92
ZXJyaWRlIHRoZSBuZXcgTW9kZWxQbGF5ZXI6OnNpemVEaWRDaGFuZ2UoKSB2aXJ0dWFsIG1ldGhv
ZCBvbiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYworICAgICAgICB0byBiZSBub3Rp
ZmllZCB3aGVuIHRoZSA8bW9kZWw+IGxheWVyJ3MgaGFzIGNoYW5nZWQgc2l6ZS4gV2UgdGhlbiBz
ZW5kIHRoZSBuZXcgTW9kZWxFbGVtZW50U2l6ZURpZENoYW5nZQorICAgICAgICBtZXNzYWdlIHRv
IHRoZSBVSSBwcm9jZXNzIHdoaWNoIHdpbGwgeWllbGQgYSBjYWxsIHRvIE1vZGVsRWxlbWVudENv
bnRyb2xsZXI6Om1vZGVsRWxlbWVudFNpemVEaWRDaGFuZ2UoKS4KKworICAgICAgICBJbiB0aGF0
IG5ldyBtZXRob2QsIHdlIGNhbGwgLVtBU1ZJbmxpbmVQcmV2aWV3IHVwZGF0ZUZyYW1lOmNvbXBs
ZXRpb25IYW5kbGVyOl0gd2hpY2ggcHJvdmlkZXMgdXMgd2l0aCBhCisgICAgICAgIENBRmVuY2VI
YW5kbGUgd2hpY2ggd2UgY29weSB0byBjcmVhdGUgYSBNYWNoU2VuZFJpZ2h0IHRvIHNlbmQgYmFj
ayB0byB0aGUgV2ViIHByb2Nlc3MgaW4gdGhlIElQQyBjYWxsYmFjay4KKworICAgICAgICBCYWNr
IGluIHRoZSBXZWIgcHJvY2Vzcywgd2UgaW5zdGFsbCB0aGlzIGZlbmNlIG9uIHRoZSBkcmF3aW5n
IGFyZWEgYW5kIGZpbmFsbHkgY2FsbCAtW0FTVklubGluZVByZXZpZXcKKyAgICAgICAgc2V0RnJh
bWVXaXRoaW5GZW5jZWRUcmFuc2FjdGlvbjpdIHRvIGNvbXBsZXRlIHRoZSBzaXppbmcgdXBkYXRl
IG9uIGJvdGggdGhlIEFTVklubGluZVByZXZpZXcgaW5zdGFuY2VzLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6TW9kZWxFbGVtZW50Q29udHJvbGxlcjo6bW9kZWxFbGVtZW50U2l6ZURpZENoYW5nZSk6
CisgICAgICAgICogVUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5Ojptb2RlbEVsZW1lbnRTaXplRGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllci5tbToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXI6OnNpemVEaWRDaGFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2Rl
bC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMubW06CisgICAgICAgIChXZWJL
aXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpzaXplRGlkQ2hhbmdlKToKKwog
MjAyMi0wMi0wOCAgSmlnZW4gWmhvdSAgPGppZ2VuLnpob3VAc29ueS5jb20+CiAKICAgICAgICAg
W1BsYXlzdGF0aW9uXSBGaXggYnVpbGQgYnJlYWsgYWZ0ZXIgcjI4OTI0NyBpZiBFTkFCTEVfU0VS
VklDRV9XT1JLRVIgaXMgb2ZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKaW5kZXggODRkN2FiYjI0Y2YyOGMy
MjAyMjVmZGVjNWM5NzI3MWE1MTU0MjVmNy4uYmZiMjU4ZDY1NTE5MTJjZjRjMzhjMjU3Nzg5MmFi
MGExNzk4ZDBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcApAQCAtMjY0LDYgKzI2NCw3IEBAIHZvaWQg
SFRNTE1vZGVsRWxlbWVudDo6Y3JlYXRlTW9kZWxQbGF5ZXIoKQogICAgIEFTU0VSVChyZW5kZXJl
cigpKTsKICAgICBhdXRvIHNpemUgPSByZW5kZXJlcigpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVj
dChmYWxzZSkuc2l6ZSgpOwogICAgIG1fbW9kZWxQbGF5ZXItPmxvYWQoKm1fbW9kZWwsIHNpemUp
OworICAgIG1fcGxhdGZvcm1MYXllclNpemUgPSBzaXplOwogfQogCiBib29sIEhUTUxNb2RlbEVs
ZW1lbnQ6OnVzZXNQbGF0Zm9ybUxheWVyKCkgY29uc3QKQEAgLTI3Niw2ICsyNzcsMTYgQEAgUGxh
dGZvcm1MYXllciogSFRNTE1vZGVsRWxlbWVudDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiAgICAg
cmV0dXJuIG1fbW9kZWxQbGF5ZXItPmxheWVyKCk7CiB9CiAKK3ZvaWQgSFRNTE1vZGVsRWxlbWVu
dDo6cGFyZW50TGF5ZXJTaXplTWF5SGF2ZUNoYW5nZWQoRmxvYXRTaXplIHNpemUpCit7CisgICAg
aWYgKG1fcGxhdGZvcm1MYXllclNpemUgPT0gc2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9wbGF0Zm9ybUxheWVyU2l6ZSA9IHNpemU7CisKKyAgICBtX21vZGVsUGxheWVyLT5zaXplRGlk
Q2hhbmdlKG1fcGxhdGZvcm1MYXllclNpemUpOworfQorCiB2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6
OmRpZEZpbmlzaExvYWRpbmcoTW9kZWxQbGF5ZXImIG1vZGVsUGxheWVyKQogewogICAgIEFTU0VS
VF9VTlVTRUQobW9kZWxQbGF5ZXIsICZtb2RlbFBsYXllciA9PSBtX21vZGVsUGxheWVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVs
RWxlbWVudC5oCmluZGV4IGViNzFkNjU5YjQ5MmY1YzMwMTQ0NTdhYzY1ZjJjZjJjZTI1MGE3NWYu
LmI1ZmI3ZjNhYTEwYmRhYTczYjY2MjY5MjU2ZWNlODAxMTQwM2NjMzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQu
aApAQCAtMTAzLDcgKzEwMyw5IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBW
ZWN0b3I8UmV0YWluUHRyPGlkPj4gYWNjZXNzaWJpbGl0eUNoaWxkcmVuKCk7CiAjZW5kaWYKLSAg
ICAKKworICAgIHZvaWQgcGFyZW50TGF5ZXJTaXplTWF5SGF2ZUNoYW5nZWQoRmxvYXRTaXplKTsK
KwogcHJpdmF0ZToKICAgICBIVE1MTW9kZWxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCkBAIC0xNTUsNiArMTU3LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hv
dWxkQ3JlYXRlTW9kZWxQbGF5ZXJVcG9uUmVuZGVyZXJBdHRhY2htZW50IHsgZmFsc2UgfTsKIAog
ICAgIFJlZlB0cjxNb2RlbFBsYXllcj4gbV9tb2RlbFBsYXllcjsKKworICAgIEZsb2F0U2l6ZSBt
X3BsYXRmb3JtTGF5ZXJTaXplOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaAppbmRl
eCBlNjc0NjcyNjhmZjhhMjc1YzgxMDA2OTM5NDM2YjU3MjE5OWUzYThhLi4zYzk5MmRiYzMxMGMx
YTJkMTQ4NzdkMTM2MTRlMTZhZjQ5MmUyMDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaApAQCAtNDQsNiArNDQsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+TW9kZWxQbGF5ZXIoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBsb2Fk
KE1vZGVsJiwgTGF5b3V0U2l6ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdl
KEZsb2F0U2l6ZSkgPSAwOwogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogbGF5ZXIoKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNNb3VzZUludGVyYWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5j
cHAKaW5kZXggYjk3MWEwZDc1OWI0OTEyZWZjOGI5NTAwZjUxMDRkNDgwOTExYTY1OS4uYzgyYTkw
MjVmODJjZDE4MDQ5OTBiZTQ4Nzc0ZDk4MGI1MGY0N2M4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVs
UGxheWVyLmNwcApAQCAtNTQsNiArNTQsMTAgQEAgUGxhdGZvcm1MYXllciogRHVtbXlNb2RlbFBs
YXllcjo6bGF5ZXIoKQogICAgIHJldHVybiBudWxscHRyOwogfQogCit2b2lkIER1bW15TW9kZWxQ
bGF5ZXI6OnNpemVEaWRDaGFuZ2UoRmxvYXRTaXplKQoreworfQorCiB2b2lkIER1bW15TW9kZWxQ
bGF5ZXI6OmVudGVyRnVsbHNjcmVlbigpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaApp
bmRleCBkMTUzNjQyMWMxMDNlYzhiMDY2ZTljMjVjMmI1ZjIxNGY1ZjAyOWNiLi5jMzk5MTZlNTM5
NmQxYTMxOWJkOTg2MzIzOGYzNzVkNWFmMGNlYzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVy
LmgKQEAgLTQyLDYgKzQyLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1vZGVsUGxheWVyIG92ZXJy
aWRlcy4KICAgICB2b2lkIGxvYWQoTW9kZWwmLCBMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNpemVEaWRDaGFuZ2UoRmxvYXRTaXplKSBvdmVycmlkZTsKICAgICBQbGF0Zm9ybUxheWVy
KiBsYXllcigpIG92ZXJyaWRlOwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBoYW5kbGVNb3VzZURvd24oY29uc3QgTGF5b3V0UG9pbnQmLCBNb25vdG9uaWNU
aW1lKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwt
ZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5oCmluZGV4
IDhmOWFmMDBkMGE5M2YyZTViZjE0MzYwZmJlMTNlYTgwZWMwMTQ0M2EuLjIwMWE3YWY1YjkxMTQx
ZWUyMzIzZTE3NmFiMTcxMmI5MDQ3NDE3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9k
ZWxQbGF5ZXIuaApAQCAtNTYsNiArNTYsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gTW9kZWxQbGF5
ZXIgb3ZlcnJpZGVzLgogICAgIHZvaWQgbG9hZChNb2RlbCYsIExheW91dFNpemUpIG92ZXJyaWRl
OworICAgIHZvaWQgc2l6ZURpZENoYW5nZShGbG9hdFNpemUpIG92ZXJyaWRlOwogICAgIENBTGF5
ZXIgKmxheWVyKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlk
ZTsKICAgICB2b2lkIGhhbmRsZU1vdXNlRG93bihjb25zdCBMYXlvdXRQb2ludCYsIE1vbm90b25p
Y1RpbWUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5tbQpp
bmRleCA3NmQ0OGUzZWI1MzM5ODUxMDgxNjNmN2FiYzY1NjIwMTlhMGIxZDk3Li5kOWJjNTk1YjRm
MGI2ZmYxZDVkMTNmNDliMWEwNzc1MmVjNzRlZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVL
aXRNb2RlbFBsYXllci5tbQpAQCAtNzMsNiArNzMsMTAgQEAgdm9pZCBTY2VuZUtpdE1vZGVsUGxh
eWVyOjpsb2FkKE1vZGVsJiBtb2RlbFNvdXJjZSwgTGF5b3V0U2l6ZSkKICAgICBtX2xvYWRlciA9
IGxvYWRTY2VuZUtpdE1vZGVsKG1vZGVsU291cmNlLCAqdGhpcyk7CiB9CiAKK3ZvaWQgU2NlbmVL
aXRNb2RlbFBsYXllcjo6c2l6ZURpZENoYW5nZShGbG9hdFNpemUpCit7Cit9CisKIFBsYXRmb3Jt
TGF5ZXIqIFNjZW5lS2l0TW9kZWxQbGF5ZXI6OmxheWVyKCkKIHsKICAgICByZXR1cm4gbV9sYXll
ci5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1
YXJ0ekNvcmVTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNv
cmVTUEkuaAppbmRleCA3YjY3MmFlNmVmYTI5NWQzNzk5MDZjODljZjY3ZWVjZGRiNTBhMjIwLi5i
NDU5MGY4YjY4Y2FhOTQ2NTkwNWJjYzdlNWM5YmM2NGExNjUzNGZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCkBAIC01Miw2ICs1Miwx
MCBAQAogI2ltcG9ydCA8UXVhcnR6Q29yZS9DQURpc3BsYXlMaW5rUHJpdmF0ZS5oPgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVcpCisjaW1wb3J0IDxRdWFydHpDb3Jl
L0NBRmVuY2VIYW5kbGUuaD4KKyNlbmRpZgorCiAjZW5kaWYgLy8gX19PQkpDX18KIAogI2Vsc2UK
QEAgLTY1LDggKzY5LDE0IEBAIHR5cGVkZWYgc3RydWN0IF9DQVJlbmRlckNvbnRleHQgQ0FSZW5k
ZXJDb250ZXh0OwogQGVuZAogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJ
RVdfSU9TKQotQGNsYXNzIENBRmVuY2VIYW5kbGU7CisjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9Q
UkVWSUVXKQorQGludGVyZmFjZSBDQUZlbmNlSGFuZGxlIDogTlNPYmplY3QKK0BlbmQKKworQGlu
dGVyZmFjZSBDQUZlbmNlSGFuZGxlICgpCistIChtYWNoX3BvcnRfdCljb3B5UG9ydDsKKy0gKHZv
aWQpaW52YWxpZGF0ZTsKK0BlbmQKICNlbmRpZgogCiBAaW50ZXJmYWNlIENBQ29udGV4dCA6IE5T
T2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3lzdGVt
UHJldmlld1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL1N5c3RlbVByZXZp
ZXdTUEkuaAppbmRleCAzZjAyZThjY2IwOGU1ZmJmNmYzMWFlOWFhMmY4MjE3OTkxYTY3MzZlLi45
MjFlNjBlZjRhMTgyMTcwNWYwNjFmODk3MWVmNTQ5MjBiMTUwZWRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQSS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TeXN0ZW1QcmV2aWV3U1BJLmgKQEAgLTUwLDYgKzUw
LDkgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIC0gKHZvaWQpcHJlcGFyZVByZXZpZXdPZkZp
bGVBdFVSTDooTlNVUkwgKil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRXJyb3Ig
KiBfTnVsbGFibGUgZXJyb3IpKWhhbmRsZXI7CiAtICh2b2lkKXNldFJlbW90ZUNvbnRleHQ6KHVp
bnQzMl90KWNvbnRleHRJZDsKIAorLSAodm9pZCl1cGRhdGVGcmFtZTooQ0dSZWN0KW5ld0ZyYW1l
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShDQUZlbmNlSGFuZGxlICogX051bGxhYmxlIGZl
bmNlSGFuZGxlLCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSloYW5kbGVyOworLSAodm9pZClz
ZXRGcmFtZVdpdGhpbkZlbmNlZFRyYW5zYWN0aW9uOihDR1JlY3QpZnJhbWU7CisKIC0gKHZvaWQp
bW91c2VEb3duQXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbiB0aW1lc3RhbXA6KE5TVGltZUlu
dGVydmFsKXRpbWVzdGFtcDsKIC0gKHZvaWQpbW91c2VEcmFnZ2VkQXRMb2NhdGlvbjooQ0dQb2lu
dClsb2NhdGlvbiB0aW1lc3RhbXA6KE5TVGltZUludGVydmFsKXRpbWVzdGFtcDsKIC0gKHZvaWQp
bW91c2VVcEF0TG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24gdGltZXN0YW1wOihOU1RpbWVJbnRl
cnZhbCl0aW1lc3RhbXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCmluZGV4IDlhZjVmYjA1ZDEzNjFiYmUzMDFiZmE4MjZjMjIzOWZjNTFjNzgx
MWIuLmM0ZGFkNDFkNDcxNzFlOTcxMzBkZWI5MDUwOGZkMTQ2ZjhlMjRlMGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xMTIwLDkg
KzExMjAsOSBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ29uZmlndXJhdGlvbihj
b25zdCBSZW5kZXJMYXllciogY29tcG9zaXRpbmdBbmNlcwogCiAgICAgICAgIC8vIFNvbWUgTW9k
ZWxQbGF5ZXJzIHVzZSBhIHBsYXRmb3JtTGF5ZXIoKSBhbmQgc29tZSBwYXNzIHRoZSBNb2RlbCB0
byB0aGUgbGF5ZXIgYXMgY29udGVudHMsCiAgICAgICAgIC8vIGJ1dCB0aGlzIGlzIGEgcnVudGlt
ZSBkZWNpc2lvbi4KLSAgICAgICAgaWYgKGVsZW1lbnQtPnVzZXNQbGF0Zm9ybUxheWVyKCkpIHsK
KyAgICAgICAgaWYgKGVsZW1lbnQtPnVzZXNQbGF0Zm9ybUxheWVyKCkpCiAgICAgICAgICAgICBt
X2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKGVsZW1lbnQtPnBsYXRm
b3JtTGF5ZXIoKSwgR3JhcGhpY3NMYXllcjo6Q29udGVudHNMYXllclB1cnBvc2U6Ok1vZGVsKTsK
LSAgICAgICAgfSBlbHNlIGlmIChhdXRvIG1vZGVsID0gZWxlbWVudC0+bW9kZWwoKSkKKyAgICAg
ICAgZWxzZSBpZiAoYXV0byBtb2RlbCA9IGVsZW1lbnQtPm1vZGVsKCkpCiAgICAgICAgICAgICBt
X2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9Nb2RlbChXVEZNb3ZlKG1vZGVsKSk7CiAKICAg
ICAgICAgbGF5ZXJDb25maWdDaGFuZ2VkID0gdHJ1ZTsKQEAgLTE1MzEsNiArMTUzMSwxNCBAQCB2
b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR2VvbWV0cnkoY29uc3QgUmVuZGVyTGF5ZXIq
IGNvbXBvc2l0ZWRBbmNlc3RvcikKIAogICAgIGlmIChzdWJwaXhlbE9mZnNldEZyb21SZW5kZXJl
ckNoYW5nZWQob2xkU3VicGl4ZWxPZmZzZXRGcm9tUmVuZGVyZXIsIG1fc3VicGl4ZWxPZmZzZXRG
cm9tUmVuZGVyZXIsIGRldmljZVNjYWxlRmFjdG9yKSAmJiBjYW5Jc3N1ZVNldE5lZWRzRGlzcGxh
eSgpKQogICAgICAgICBzZXRDb250ZW50c05lZWREaXNwbGF5KCk7CisKKyNpZiBFTkFCTEUoTU9E
RUxfRUxFTUVOVCkKKyAgICBpZiAoaXM8UmVuZGVyTW9kZWw+KHJlbmRlcmVyKCkpKSB7CisgICAg
ICAgIGF1dG8qIGVsZW1lbnQgPSBkb3duY2FzdDxIVE1MTW9kZWxFbGVtZW50PihyZW5kZXJlcigp
LmVsZW1lbnQoKSk7CisgICAgICAgIGlmIChlbGVtZW50LT51c2VzUGxhdGZvcm1MYXllcigpKQor
ICAgICAgICAgICAgZWxlbWVudC0+cGFyZW50TGF5ZXJTaXplTWF5SGF2ZUNoYW5nZWQocHJpbWFy
eUdyYXBoaWNzTGF5ZXJSZWN0LnNpemUoKSk7CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjphZGp1c3RPdmVyZmxvd0NvbnRyb2xzUG9zaXRpb25SZWxhdGl2ZVRv
QW5jZXN0b3IoY29uc3QgUmVuZGVyTGF5ZXImIGFuY2VzdG9yTGF5ZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVy
Q29jb2EubW0KaW5kZXggZjVkM2M3Y2VlNmYyNGY3NjkwYTY4Y2NjMzdjMWY0NjBkZjc3NTA1Yy4u
NzI2MjkyOTRlZmU4YjEwNzFlYjNjNjQwMTNiNDBjMWM3MWVhMDZlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRyb2xs
ZXJDb2NvYS5tbQpAQCAtMzMsNyArMzMsOSBAQAogI2ltcG9ydCA8V2ViQ29yZS9MYXlvdXRQb2lu
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9MYXlvdXRVbml0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jl
c291cmNlRXJyb3IuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgog
I2ltcG9ydCA8c2ltZC9zaW1kLmg+CisjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAK
QEAgLTQzLDcgKzQ1LDYgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZUhvc3QuaCIKICNpbXBv
cnQgIlJlbW90ZUxheWVyVHJlZVZpZXdzLmgiCiAjaW1wb3J0ICJXS01vZGVsVmlldy5oIgotI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lv
cy9TeXN0ZW1QcmV2aWV3U1BJLmg+CiAjZW5kaWYKIApAQCAtMjM5LDYgKzI0MCw0MiBAQCB2b2lk
IE1vZGVsRWxlbWVudENvbnRyb2xsZXI6OmhhbmRsZU1vdXNlVXBGb3JNb2RlbEVsZW1lbnQoY29u
c3QgU3RyaW5nJiB1dWlkLCBjbwogICAgICAgICBbcHJldmlldyBtb3VzZVVwQXRMb2NhdGlvbjpD
R1BvaW50TWFrZShmbGlwcGVkTG9jYXRpb25JbkVsZW1lbnQueCgpLnRvRmxvYXQoKSwgZmxpcHBl
ZExvY2F0aW9uSW5FbGVtZW50LnkoKS50b0Zsb2F0KCkpIHRpbWVzdGFtcDp0aW1lc3RhbXAuc2Vj
b25kc1NpbmNlRXBvY2goKS52YWx1ZSgpXTsKIH0KIAordm9pZCBNb2RlbEVsZW1lbnRDb250cm9s
bGVyOjptb2RlbEVsZW1lbnRTaXplRGlkQ2hhbmdlKGNvbnN0IFN0cmluZyYgdXVpZCwgV2ViQ29y
ZTo6RmxvYXRTaXplIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8TWFjaFNl
bmRSaWdodCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIGF1dG8gcHJldmlldyA9IHByZXZpZXdGb3JVVUlEKHV1aWQpOworICAgIGlmICghcHJl
dmlldykgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIHsgV2ViQ29yZTo6ZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwg
eyB9LCAiQ291bGQgbm90IGZpbmQgbW9kZWwiX3MgfSkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgYXV0byBoYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXJXaXRoRmluYWxpemVyPHZv
aWQoRXhwZWN0ZWQ8TWFjaFNlbmRSaWdodCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPihXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgW10gKEZ1bmN0aW9uPHZvaWQoRXhwZWN0ZWQ8TWFjaFNl
bmRSaWdodCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiYgY29tcGxldGlvbkhhbmRsZXIpIHsK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciB7IFdlYkNvcmU6OlJlc291cmNlRXJyb3I6OlR5cGU6OkdlbmVyYWwgfSkpOworICAg
IH0pOworCisgICAgW3ByZXZpZXcgdXBkYXRlRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCBzaXplLndp
ZHRoKCksIHNpemUuaGVpZ2h0KCkpIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgaGFuZGxlciA9IFdURk1vdmUoaGFuZGxlciksIHV1
aWRdIChDQUZlbmNlSGFuZGxlICpmZW5jZUhhbmRsZSwgTlNFcnJvciAqZXJyb3IpIG11dGFibGUg
eworICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIExPRyhNb2RlbEVsZW1lbnQsICJV
bmFibGUgdG8gdXBkYXRlIGZyYW1lOiAlQC4iLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbik7
CisgICAgICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtU
aGlzKSwgaGFuZGxlciA9IFdURk1vdmUoaGFuZGxlciksIGVycm9yID0gV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciB7IGVycm9yIH1dICgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmICghd2Vh
a1RoaXMpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBoYW5k
bGVyKG1ha2VVbmV4cGVjdGVkKGVycm9yKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IFtmZW5jZUhhbmRsZSBpbnZhbGlkYXRlXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIFJldGFpblB0ciBzdHJvbmdGZW5jZUhhbmRsZSA9IGZlbmNlSGFuZGxlOwor
ICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwg
aGFuZGxlciA9IFdURk1vdmUoaGFuZGxlciksIHV1aWQsIHN0cm9uZ0ZlbmNlSGFuZGxlID0gV1RG
TW92ZShzdHJvbmdGZW5jZUhhbmRsZSldICgpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKCF3
ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGF1dG8gZmVu
Y2VTZW5kUmlnaHQgPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChbc3Ryb25nRmVuY2VIYW5kbGUgY29w
eVBvcnRdKTsKKyAgICAgICAgICAgIFtzdHJvbmdGZW5jZUhhbmRsZSBpbnZhbGlkYXRlXTsKKyAg
ICAgICAgICAgIGhhbmRsZXIoZmVuY2VTZW5kUmlnaHQpOworICAgICAgICB9KTsKKyAgICB9KS5n
ZXQoKV07Cit9CisKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxl
ci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5oCmlu
ZGV4IDljNDM2ZDJlNWRkZjFiMjg1YTk1ZDQ5Y2FkZGI1OWQxMzc0NDUzNDguLjdkZDllMDJkOGQy
MDIxMDNiZDY4MWMzZThkMDFhZjQ3ZmUzMzVjNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Nb2RlbEVsZW1lbnRDb250cm9sbGVyLmgKQEAgLTcxLDYgKzcxLDcgQEAgcHVibGlj
OgogI2VuZGlmCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKICAgICB2b2lk
IG1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoVVJMLCBTdHJpbmcsIFdlYkNvcmU6OkZsb2F0
U2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxzdGQ6OnBhaXI8U3RyaW5nLCB1
aW50MzJfdD4sIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+KT4mJik7CisgICAgdm9pZCBtb2RlbEVs
ZW1lbnRTaXplRGlkQ2hhbmdlKGNvbnN0IFN0cmluZyYgdXVpZCwgV2ViQ29yZTo6RmxvYXRTaXpl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPE1hY2hTZW5kUmlnaHQsIFdlYkNvcmU6
OlJlc291cmNlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBoYW5kbGVNb3VzZURvd25Gb3JNb2RlbEVs
ZW1lbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBNb25vdG9u
aWNUaW1lKTsKICAgICB2b2lkIGhhbmRsZU1vdXNlTW92ZUZvck1vZGVsRWxlbWVudChjb25zdCBT
dHJpbmcmLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYsIE1vbm90b25pY1RpbWUpOwogICAg
IHZvaWQgaGFuZGxlTW91c2VVcEZvck1vZGVsRWxlbWVudChjb25zdCBTdHJpbmcmLCBjb25zdCBX
ZWJDb3JlOjpMYXlvdXRQb2ludCYsIE1vbm90b25pY1RpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjgyNDhmNWMzNTRkNzg3YjAxM2NmYzdmMGI2NjUy
OTk0YTJlNDg3My4uNjkzOWQ0YjNhNDZkNTVmM2Y3MzdiYzRkMTQxYjAyZmMxZjAyYzIyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMTA5Nyw2ICsxMTA5
NywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhj
b25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1dQogICAgIG1vZGVsRWxlbWVudENvbnRyb2xs
ZXIoKS0+bW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyh1cmwsIHV1aWQsIHNpemUsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6Om1vZGVsRWxl
bWVudFNpemVEaWRDaGFuZ2UoY29uc3QgU3RyaW5nJiB1dWlkLCBXZWJDb3JlOjpGbG9hdFNpemUg
c2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxNYWNoU2VuZFJpZ2h0LCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbW9kZWxF
bGVtZW50Q29udHJvbGxlcigpLT5tb2RlbEVsZW1lbnRTaXplRGlkQ2hhbmdlKHV1aWQsIHNpemUs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6Omhh
bmRsZU1vdXNlRG93bkZvck1vZGVsRWxlbWVudChjb25zdCBTdHJpbmcmIHV1aWQsIGNvbnN0IFdl
YkNvcmU6OkxheW91dFBvaW50JiBmbGlwcGVkTG9jYXRpb25JbkVsZW1lbnQsIE1vbm90b25pY1Rp
bWUgdGltZXN0YW1wKQogewogICAgIG1vZGVsRWxlbWVudENvbnRyb2xsZXIoKS0+aGFuZGxlTW91
c2VEb3duRm9yTW9kZWxFbGVtZW50KHV1aWQsIGZsaXBwZWRMb2NhdGlvbkluRWxlbWVudCwgdGlt
ZXN0YW1wKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYTQ0N2M3
MGMwODQwNjE0OTBjMWI0OTVlZmIxODdmMTY1YTFlY2NiMi4uMzZjNjFjYTRiODYyODQzZmNjYmUw
YWZjNjMzYzM2ZmFkN2U1YWYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTYxMiw2ICs2MTIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICNpZiBFTkFCTEUoQVJLSVRf
SU5MSU5FX1BSRVZJRVdfTUFDKQogICAgIHZvaWQgbW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmll
dyhjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90
PiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIG1vZGVsRWxlbWVudFNp
emVEaWRDaGFuZ2UoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RmxvYXRTaXplLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPE1hY2hTZW5kUmlnaHQsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3I+KT4mJik7CiAgICAgdm9pZCBoYW5kbGVNb3VzZURvd25Gb3JNb2RlbEVsZW1lbnQoY29uc3Qg
U3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKTsKICAg
ICB2b2lkIGhhbmRsZU1vdXNlTW92ZUZvck1vZGVsRWxlbWVudChjb25zdCBTdHJpbmcmLCBjb25z
dCBXZWJDb3JlOjpMYXlvdXRQb2ludCYsIE1vbm90b25pY1RpbWUpOwogICAgIHZvaWQgaGFuZGxl
TW91c2VVcEZvck1vZGVsRWxlbWVudChjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpMYXlv
dXRQb2ludCYsIE1vbm90b25pY1RpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE1Y2QwZTNkNTk2OGJjNjYxN2VhNWM0YTI4
ZjAxN2ExMTRkYWI5NWIuLmUzOTFjYWFjN2QwNTFlNzdhODI1ZDZkYzQ5Y2UyZmZkOTQ3YjdmMTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KQEAgLTU4OSw2ICs1ODksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlm
CiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKICAgICBNb2RlbEVsZW1lbnRE
aWRDcmVhdGVQcmV2aWV3KFVSTCB1cmwsIFN0cmluZyB1dWlkLCBXZWJDb3JlOjpGbG9hdFNpemUg
c2l6ZSkgLT4gKEV4cGVjdGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIE1vZGVsRWxlbWVudFNpemVEaWRDaGFu
Z2UoU3RyaW5nIHV1aWQsIFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKSAtPiAoRXhwZWN0ZWQ8TWFj
aFNlbmRSaWdodCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIEhh
bmRsZU1vdXNlRG93bkZvck1vZGVsRWxlbWVudChTdHJpbmcgdXVpZCwgV2ViQ29yZTo6TGF5b3V0
UG9pbnQgZmxpcHBlZExvY2F0aW9uSW5FbGVtZW50LCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkK
ICAgICBIYW5kbGVNb3VzZU1vdmVGb3JNb2RlbEVsZW1lbnQoU3RyaW5nIHV1aWQsIFdlYkNvcmU6
OkxheW91dFBvaW50IGZsaXBwZWRMb2NhdGlvbkluRWxlbWVudCwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXApCiAgICAgSGFuZGxlTW91c2VVcEZvck1vZGVsRWxlbWVudChTdHJpbmcgdXVpZCwgV2Vi
Q29yZTo6TGF5b3V0UG9pbnQgZmxpcHBlZExvY2F0aW9uSW5FbGVtZW50LCBNb25vdG9uaWNUaW1l
IHRpbWVzdGFtcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9B
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgKaW5kZXggNGM1ZjMxODNhMmI4
NzUwMzBhYmNlYmRmNDBlMzk4ODgyYmQ2M2VlYy4uYjU2YzkwNzU2ZmY4NjBmZWI0ZjZiZmUxYzFi
ZDk5ZTczYzlkNjAwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVs
L0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgKQEAgLTUxLDYgKzUx
LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpNb2RlbFBsYXllciBv
dmVycmlkZXMuCiAgICAgdm9pZCBsb2FkKFdlYkNvcmU6Ok1vZGVsJiwgV2ViQ29yZTo6TGF5b3V0
U2l6ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaXplRGlkQ2hhbmdlKFdlYkNvcmU6OkZsb2F0U2l6
ZSkgb3ZlcnJpZGU7CiAgICAgUGxhdGZvcm1MYXllciogbGF5ZXIoKSBvdmVycmlkZTsKICAgICB2
b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogICAgIHZvaWQgZ2V0Q2FtZXJhKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50
Q2FtZXJhPiYmKT4mJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0KaW5k
ZXggNjAwNTA4ODVkNmEzOTRmMTk0YmU1NTdkNzVhMmNmMzI4NjgxNzVhMC4uMzk1MmM2NzBjYWYy
M2NiYWZjZGYyZDg4YTRjOGIzMDBlYThkZDkwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ci5tbQpAQCAtNDYsNiArNDYsMTAgQEAgdm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
cjo6bG9hZChXZWJDb3JlOjpNb2RlbCYsIFdlYkNvcmU6OkxheW91dFNpemUpCiB7CiB9CiAKK3Zv
aWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OnNpemVEaWRDaGFuZ2UoRmxvYXRTaXpl
KQoreworfQorCiBQbGF0Zm9ybUxheWVyKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6
bGF5ZXIoKQogewogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllck1hYy5oCmluZGV4IDZjODVmNDIwZWEwOTIwZGY1MzJmMGVkN2ZlZDkxMTJmYmMy
NzlkNmIuLjY0MDlkZjI4NDcxNTc0NWM5NDhlN2MwNWE0ZmEzN2IwMjZkZmM0MzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFj
L0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHJp
dmF0ZToKIAogICAgIC8vIFdlYkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KICAgICB2b2lk
IGxvYWQoV2ViQ29yZTo6TW9kZWwmLCBXZWJDb3JlOjpMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNpemVEaWRDaGFuZ2UoV2ViQ29yZTo6RmxvYXRTaXplKSBvdmVycmlkZTsKICAgICBQ
bGF0Zm9ybUxheWVyKiBsYXllcigpIG92ZXJyaWRlOwogICAgIGJvb2wgc3VwcG9ydHNNb3VzZUlu
dGVyYWN0aW9uKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBzdXBwb3J0c0RyYWdnaW5nKCkgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbQppbmRleCBkMjZi
M2RhMzM3NTE4YTAwYzEwNjg3YzRjYWU2MGIyOTYxNWJlMTI3Li42NWE5NzFlMGZmZmUyMGJhNWM5
Nzc3NjZkODllOTUwY2Q3MmJjM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXJNYWMubW0KQEAgLTI4LDEwICsyOCwxMyBAQAogCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElO
RV9QUkVWSUVXX01BQykKIAorI2ltcG9ydCAiRHJhd2luZ0FyZWEuaCIKICNpbXBvcnQgIldlYlBh
Z2UuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0IDxXZWJDb3Jl
L01vZGVsLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBv
cnQgPHBhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaD4KKyNpbXBvcnQgPHd0Zi9NYWNoU2Vu
ZFJpZ2h0Lmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9VVUlE
Lmg+CiAKQEAgLTE3Miw2ICsxNzUsMzQgQEAgdm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllck1hYzo6bG9hZChXZWJDb3JlOjpNb2RlbCYgbW9kZWxTb3VyY2UsIFdlYkNvcmUKICAgICBz
dHJvbmdQYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TW9k
ZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgo
bV9maWxlUGF0aCksIFttX2lubGluZVByZXZpZXcgdXVpZF0uVVVJRFN0cmluZywgc2l6ZSksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBBUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllck1hYzo6c2l6ZURpZENoYW5nZShXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkKK3sK
KyAgICBSZWZQdHIgc3Ryb25nUGFnZSA9IHBhZ2UoKTsKKyAgICBpZiAoIXN0cm9uZ1BhZ2UpCisg
ICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyB1dWlkID0gW21faW5saW5lUHJldmlldyB1dWlk
XS5VVUlEU3RyaW5nOworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8TWFjaFNl
bmRSaWdodCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiBjb21wbGV0aW9uSGFuZGxlciA9IFt3
ZWFrU2VsZiA9IFdlYWtQdHIgeyAqdGhpcyB9LCBzdHJvbmdQYWdlLCBzaXplXSAoRXhwZWN0ZWQ8
TWFjaFNlbmRSaWdodCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBtdXRhYmxlIHsK
KyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgUmVm
UHRyIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgaWYgKCFzdHJvbmdTZWxm
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8qIGRyYXdpbmdBcmVhID0gc3Ry
b25nUGFnZS0+ZHJhd2luZ0FyZWEoKTsKKyAgICAgICAgaWYgKCFkcmF3aW5nQXJlYSkKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIGZlbmNlU2VuZFJpZ2h0ID0gKnJlc3VsdDsK
KyAgICAgICAgZHJhd2luZ0FyZWEtPmFkZEZlbmNlKGZlbmNlU2VuZFJpZ2h0KTsKKworICAgICAg
ICBbc3Ryb25nU2VsZi0+bV9pbmxpbmVQcmV2aWV3IHNldEZyYW1lV2l0aGluRmVuY2VkVHJhbnNh
Y3Rpb246Q0dSZWN0TWFrZSgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpXTsKKyAg
ICB9OworCisgICAgc3Ryb25nUGFnZS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6Ok1vZGVsRWxlbWVudFNpemVEaWRDaGFuZ2UodXVpZCwgc2l6ZSksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogUGxhdGZvcm1MYXllciogQVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXJNYWM6OmxheWVyKCkKIHsKICAgICByZXR1cm4gW21faW5saW5lUHJldmll
dyBsYXllcl07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451402</attachid>
            <date>2022-02-09 10:39:42 -0800</date>
            <delta_ts>2022-02-09 11:41:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236233-20220209193940.patch</filename>
            <type>text/plain</type>
            <size>26337</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJlYTU4MmI0ZDZlYjUx
ZGE5NTY0YzYyYTU1NGViNjRiMjExYmEyMC4uM2ZlOTgxMTI4NTU5ZmJjNTJiZGZlMjVlYTlkNjVh
MzdmOTVmOGRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTA5ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFttb2RlbF0gaW1wcm92
ZSBzaXppbmcgb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNjIzMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODg1Njk4ODE+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgZGV0ZWN0IHdo
ZW4gdGhlIDxtb2RlbD4gbGF5ZXIgc2l6ZSBjaGFuZ2VzIHVuZGVyIFJlbmRlckxheWVyQmFja2lu
Zzo6dXBkYXRlR2VvbWV0cnkoKQorICAgICAgICBhbmQgaW5mb3JtIHRoZSBhc3NvY2lhdGVkIEhU
TUxNb2RlbEVsZW1lbnQgdGhyb3VnaCB0aGUgbmV3IHBhcmVudExheWVyU2l6ZU1heUhhdmVDaGFu
Z2VkKCkKKyAgICAgICAgbWV0aG9kIHRoYXQgdGhlIHNpemUgaGFzIGNoYW5nZWQuIFdlIHRoZW4g
aW5mb3JtIHRoZSBiYWNraW5nIHBsYXllciB0aGF0IHNpemVEaWRDaGFuZ2UoKS4KKworICAgICAg
ICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmNyZWF0ZU1vZGVsUGxheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OnBhcmVudExheWVyU2l6ZU1heUhhdmVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OnBsYXRmb3JtTGF5ZXJTaXpl
IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVu
dC5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oOgorICAg
ICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkR1bW15TW9kZWxQbGF5ZXI6OnNpemVEaWRDaGFuZ2UpOgorICAg
ICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmg6Cisg
ICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5
ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRN
b2RlbFBsYXllci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjZW5lS2l0TW9kZWxQbGF5ZXI6OnNp
emVEaWRDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR2VvbWV0
cnkpOgorCiAyMDIyLTAyLTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbQ1NTIENvbnRhaW5lciBRdWVyaWVzXSBUcmFjayBxdWVyeSBjb250YWluZXJzIHNv
IHRoZXkgY2FuIGJlIGludmFsaWRhdGVkIG9uIHNpemUgY2hhbmdlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpp
bmRleCAwNTEyMjAwMDUzOWJiZDA3NzAyZjljY2E4NGU2Y2RjY2U3MTExNjNmLi4yZTdlNGQyNmQx
ZjRjYmE0ZTYxMTNkOTc4MjM0YmY0MjA1MGJjYzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMi0wMi0wOSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9y
Zz4KKworICAgICAgICBbbW9kZWxdIGltcHJvdmUgc2l6aW5nIG9uIG1hY09TCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyMzMKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzg4NTY5ODgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBuZXdseS11c2VkIENBRmVuY2VIYW5kbGUgYW5kIEFTVklubGlu
ZVByZXZpZXcgU1BJcy4KKworICAgICAgICAqIHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5o
OgorICAgICAgICAqIHBhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaDoKKwogMjAyMi0wMi0w
NyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbbW9kZWxd
IGltcHJvdmUgc2l6aW5nIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNDQxYmY3NTQwZmE5ZWMwMGRiMGQy
ZDQyNjA3ZDE5OGM3Y2Q1YWVmLi44NTRlNGQ5MTA1MGZhYzBlNjdjNjg5NzNlMzExOTc1MDY4MTMx
YTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIyLTAyLTA5ICBBbnRvaW5lIFF1aW50
ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFttb2RlbF0gaW1wcm92ZSBzaXppbmcg
b24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjIzMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODg1Njk4ODE+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugb3ZlcnJpZGUgdGhlIG5ldyBN
b2RlbFBsYXllcjo6c2l6ZURpZENoYW5nZSgpIHZpcnR1YWwgbWV0aG9kIG9uIEFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyTWFjCisgICAgICAgIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIDxt
b2RlbD4gbGF5ZXIncyBoYXMgY2hhbmdlZCBzaXplLiBXZSB0aGVuIHNlbmQgdGhlIG5ldyBNb2Rl
bEVsZW1lbnRTaXplRGlkQ2hhbmdlCisgICAgICAgIG1lc3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3Mg
d2hpY2ggd2lsbCB5aWVsZCBhIGNhbGwgdG8gTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6bW9kZWxF
bGVtZW50U2l6ZURpZENoYW5nZSgpLgorCisgICAgICAgIEluIHRoYXQgbmV3IG1ldGhvZCwgd2Ug
Y2FsbCAtW0FTVklubGluZVByZXZpZXcgdXBkYXRlRnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6XSB3
aGljaCBwcm92aWRlcyB1cyB3aXRoIGEKKyAgICAgICAgQ0FGZW5jZUhhbmRsZSB3aGljaCB3ZSBj
b3B5IHRvIGNyZWF0ZSBhIE1hY2hTZW5kUmlnaHQgdG8gc2VuZCBiYWNrIHRvIHRoZSBXZWIgcHJv
Y2VzcyBpbiB0aGUgSVBDIGNhbGxiYWNrLgorCisgICAgICAgIEJhY2sgaW4gdGhlIFdlYiBwcm9j
ZXNzLCB3ZSBpbnN0YWxsIHRoaXMgZmVuY2Ugb24gdGhlIGRyYXdpbmcgYXJlYSBhbmQgZmluYWxs
eSBjYWxsIC1bQVNWSW5saW5lUHJldmlldworICAgICAgICBzZXRGcmFtZVdpdGhpbkZlbmNlZFRy
YW5zYWN0aW9uOl0gdG8gY29tcGxldGUgdGhlIHNpemluZyB1cGRhdGUgb24gYm90aCB0aGUgQVNW
SW5saW5lUHJldmlldyBpbnN0YW5jZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTW9k
ZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpNb2RlbEVsZW1l
bnRDb250cm9sbGVyOjptb2RlbEVsZW1lbnRTaXplRGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om1vZGVsRWxlbWVu
dFNpemVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tOgorICAg
ICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6c2l6ZURpZENoYW5n
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXJNYWMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllck1hYzo6c2l6ZURpZENoYW5nZSk6CisKIDIwMjItMDItMDggIEpp
Z2VuIFpob3UgIDxqaWdlbi56aG91QHNvbnkuY29tPgogCiAgICAgICAgIFtQbGF5c3RhdGlvbl0g
Rml4IGJ1aWxkIGJyZWFrIGFmdGVyIHIyODkyNDcgaWYgRU5BQkxFX1NFUlZJQ0VfV09SS0VSIGlz
IG9mZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hU
TUxNb2RlbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50
L0hUTUxNb2RlbEVsZW1lbnQuY3BwCmluZGV4IDg0ZDdhYmIyNGNmMjhjMjIwMjI1ZmRlYzVjOTcy
NzFhNTE1NDI1ZjcuLjA5NTI2ZjZjOGRkZTBhOWEzNWE5ZDZhOGZhYjk1ZGVlZTk1MmRjMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRN
TE1vZGVsRWxlbWVudC5jcHAKQEAgLTQ1LDYgKzQ1LDggQEAKICNpbmNsdWRlICJKU0V2ZW50VGFy
Z2V0LmgiCiAjaW5jbHVkZSAiSlNIVE1MTW9kZWxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1M
TW9kZWxFbGVtZW50Q2FtZXJhLmgiCisjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgorI2luY2x1ZGUg
IkxheW91dFNpemUuaCIKICNpbmNsdWRlICJNb2RlbC5oIgogI2luY2x1ZGUgIk1vZGVsUGxheWVy
LmgiCiAjaW5jbHVkZSAiTW9kZWxQbGF5ZXJQcm92aWRlci5oIgpAQCAtNTUsNiArNTcsNyBAQAog
I2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyTW9k
ZWxPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJNb2RlbC5oIgorI2luY2x1ZGUgIlJlbmRlclJl
cGxhY2VkLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3
dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTI2MSw5ICsyNjQsNyBAQCB2
b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OmNyZWF0ZU1vZGVsUGxheWVyKCkKIAogICAgIC8vIEZJWE1F
OiBXZSBuZWVkIHRvIHRlbGwgdGhlIHBsYXllciBpZiB0aGUgc2l6ZSBjaGFuZ2VzIGFzIHdlbGws
IHNvIHBhc3NpbmcgdGhpcwogICAgIC8vIGluIHdpdGggbG9hZCBwcm9iYWJseSBkb2Vzbid0IG1h
a2Ugc2Vuc2UuCi0gICAgQVNTRVJUKHJlbmRlcmVyKCkpOwotICAgIGF1dG8gc2l6ZSA9IHJlbmRl
cmVyKCktPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KGZhbHNlKS5zaXplKCk7Ci0gICAgbV9tb2Rl
bFBsYXllci0+bG9hZCgqbV9tb2RlbCwgc2l6ZSk7CisgICAgbV9tb2RlbFBsYXllci0+bG9hZCgq
bV9tb2RlbCwgcGxhdGZvcm1MYXllclNpemUoKSk7CiB9CiAKIGJvb2wgSFRNTE1vZGVsRWxlbWVu
dDo6dXNlc1BsYXRmb3JtTGF5ZXIoKSBjb25zdApAQCAtMjc2LDYgKzI3NywxMSBAQCBQbGF0Zm9y
bUxheWVyKiBIVE1MTW9kZWxFbGVtZW50OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKICAgICByZXR1
cm4gbV9tb2RlbFBsYXllci0+bGF5ZXIoKTsKIH0KIAordm9pZCBIVE1MTW9kZWxFbGVtZW50Ojpw
YXJlbnRMYXllclNpemVNYXlIYXZlQ2hhbmdlZCgpCit7CisgICAgbV9tb2RlbFBsYXllci0+c2l6
ZURpZENoYW5nZShwbGF0Zm9ybUxheWVyU2l6ZSgpKTsKK30KKwogdm9pZCBIVE1MTW9kZWxFbGVt
ZW50OjpkaWRGaW5pc2hMb2FkaW5nKE1vZGVsUGxheWVyJiBtb2RlbFBsYXllcikKIHsKICAgICBB
U1NFUlRfVU5VU0VEKG1vZGVsUGxheWVyLCAmbW9kZWxQbGF5ZXIgPT0gbV9tb2RlbFBsYXllcik7
CkBAIC02MzgsNiArNjQ0LDEyIEBAIFZlY3RvcjxSZXRhaW5QdHI8aWQ+PiBIVE1MTW9kZWxFbGVt
ZW50OjphY2Nlc3NpYmlsaXR5Q2hpbGRyZW4oKQogfQogI2VuZGlmCiAKK0xheW91dFNpemUgSFRN
TE1vZGVsRWxlbWVudDo6cGxhdGZvcm1MYXllclNpemUoKSBjb25zdAoreworICAgIEFTU0VSVChy
ZW5kZXJlcigpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+KCpyZW5kZXJl
cigpKS5yZXBsYWNlZENvbnRlbnRSZWN0KCkuc2l6ZSgpOworfQorCiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoTU9ERUxfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCmluZGV4IGViNzFkNjU5YjQ5MmY1YzMw
MTQ0NTdhYzY1ZjJjZjJjZTI1MGE3NWYuLjI3N2I0MTc4ODgwYWRiZDQxZjg2NTE3ZjkwNTY1YzA2
NGZlYThlN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9IVE1MTW9kZWxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaApAQCAtNDMsNiArNDMsNyBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBFdmVudDsKK2NsYXNzIExheW91dFNpemU7CiBjbGFzcyBNb2RlbDsK
IGNsYXNzIE1vZGVsUGxheWVyOwogY2xhc3MgTW91c2VFdmVudDsKQEAgLTEwMyw3ICsxMDQsOSBA
QCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgVmVjdG9yPFJldGFpblB0cjxpZD4+
IGFjY2Vzc2liaWxpdHlDaGlsZHJlbigpOwogI2VuZGlmCi0gICAgCisKKyAgICB2b2lkIHBhcmVu
dExheWVyU2l6ZU1heUhhdmVDaGFuZ2VkKCk7CisKIHByaXZhdGU6CiAgICAgSFRNTE1vZGVsRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIApAQCAtMTQ1LDYgKzE0OCw4
IEBAIHByaXZhdGU6CiAKICAgICBib29sIGlzSW50ZXJhY3RpdmUoKSBjb25zdDsKIAorICAgIExh
eW91dFNpemUgcGxhdGZvcm1MYXllclNpemUoKSBjb25zdDsKKwogICAgIFVSTCBtX3NvdXJjZVVS
TDsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gbV9yZXNvdXJj
ZTsKICAgICBTaGFyZWRCdWZmZXJCdWlsZGVyIG1fZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmgKaW5kZXggZTY3NDY3MjY4ZmY4
YTI3NWM4MTAwNjkzOTQzNmI1NzIxOTllM2E4YS4uNTgzNGUwNDM1YWM4OTA3MzdmMDkwMDkzMzI5
MGY3ZjNlMWVmNDFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L01vZGVsUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L01vZGVsUGxheWVyLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgfk1vZGVsUGxheWVyKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChNb2RlbCYsIExheW91
dFNpemUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2l6ZURpZENoYW5nZShMYXlvdXRTaXplKSA9
IDA7CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBsYXllcigpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01v
dXNlSW50ZXJhY3Rpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmNwcAppbmRleCBiOTcx
YTBkNzU5YjQ5MTJlZmM4Yjk1MDBmNTEwNGQ0ODA5MTFhNjU5Li5hZTNlMGY3MjYzNDQ3NDE1MDUz
YjFmODA2NTZmZDdkNDE2ZmZmZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwCkBA
IC01NCw2ICs1NCwxMCBAQCBQbGF0Zm9ybUxheWVyKiBEdW1teU1vZGVsUGxheWVyOjpsYXllcigp
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK3ZvaWQgRHVtbXlNb2RlbFBsYXllcjo6c2l6ZURp
ZENoYW5nZShMYXlvdXRTaXplKQoreworfQorCiB2b2lkIER1bW15TW9kZWxQbGF5ZXI6OmVudGVy
RnVsbHNjcmVlbigpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaAppbmRleCBkMTUzNjQy
MWMxMDNlYzhiMDY2ZTljMjVjMmI1ZjIxNGY1ZjAyOWNiLi5mNTkwNzA2YjczYjZmMzhlMTUxYjg5
MzQ2ZjI0MTU0ZTk3MWM4OTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmgKQEAgLTQyLDYg
KzQyLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1vZGVsUGxheWVyIG92ZXJyaWRlcy4KICAgICB2
b2lkIGxvYWQoTW9kZWwmLCBMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAgICB2b2lkIHNpemVEaWRD
aGFuZ2UoTGF5b3V0U2l6ZSkgb3ZlcnJpZGU7CiAgICAgUGxhdGZvcm1MYXllciogbGF5ZXIoKSBv
dmVycmlkZTsKICAgICB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogICAgIHZvaWQg
aGFuZGxlTW91c2VEb3duKGNvbnN0IExheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSkgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2Nl
bmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIuaAppbmRleCA4ZjlhZjAwZDBh
OTNmMmU1YmYxNDM2MGZiZTEzZWE4MGVjMDE0NDNhLi5lOThjZmI0Y2Y4MjE1NmFkZmVjMzBjNjNj
ODlmZTJhYzc0MmNmZjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVs
LWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmgK
QEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1vZGVsUGxheWVyIG92ZXJyaWRl
cy4KICAgICB2b2lkIGxvYWQoTW9kZWwmLCBMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNpemVEaWRDaGFuZ2UoTGF5b3V0U2l6ZSkgb3ZlcnJpZGU7CiAgICAgQ0FMYXllciAqbGF5ZXIo
KSBvdmVycmlkZTsKICAgICB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogICAgIHZv
aWQgaGFuZGxlTW91c2VEb3duKGNvbnN0IExheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQv
c2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1tCmluZGV4IDc2ZDQ4
ZTNlYjUzMzk4NTEwODE2M2Y3YWJjNjU2MjAxOWEwYjFkOTcuLmNkY2RlZDE3OWU5N2VkYmZhMjQx
MWJiNTUzMWY3YjFjZjAwMWM0ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxh
eWVyLm1tCkBAIC03Myw2ICs3MywxMCBAQCB2b2lkIFNjZW5lS2l0TW9kZWxQbGF5ZXI6OmxvYWQo
TW9kZWwmIG1vZGVsU291cmNlLCBMYXlvdXRTaXplKQogICAgIG1fbG9hZGVyID0gbG9hZFNjZW5l
S2l0TW9kZWwobW9kZWxTb3VyY2UsICp0aGlzKTsKIH0KIAordm9pZCBTY2VuZUtpdE1vZGVsUGxh
eWVyOjpzaXplRGlkQ2hhbmdlKExheW91dFNpemUpCit7Cit9CisKIFBsYXRmb3JtTGF5ZXIqIFNj
ZW5lS2l0TW9kZWxQbGF5ZXI6OmxheWVyKCkKIHsKICAgICByZXR1cm4gbV9sYXllci5nZXQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVT
UEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaApp
bmRleCA3YjY3MmFlNmVmYTI5NWQzNzk5MDZjODljZjY3ZWVjZGRiNTBhMjIwLi5iNDU5MGY4YjY4
Y2FhOTQ2NTkwNWJjYzdlNWM5YmM2NGExNjUzNGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCkBAIC01Miw2ICs1MiwxMCBAQAogI2lt
cG9ydCA8UXVhcnR6Q29yZS9DQURpc3BsYXlMaW5rUHJpdmF0ZS5oPgogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVcpCisjaW1wb3J0IDxRdWFydHpDb3JlL0NBRmVuY2VI
YW5kbGUuaD4KKyNlbmRpZgorCiAjZW5kaWYgLy8gX19PQkpDX18KIAogI2Vsc2UKQEAgLTY1LDgg
KzY5LDE0IEBAIHR5cGVkZWYgc3RydWN0IF9DQVJlbmRlckNvbnRleHQgQ0FSZW5kZXJDb250ZXh0
OwogQGVuZAogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TKQot
QGNsYXNzIENBRmVuY2VIYW5kbGU7CisjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXKQor
QGludGVyZmFjZSBDQUZlbmNlSGFuZGxlIDogTlNPYmplY3QKK0BlbmQKKworQGludGVyZmFjZSBD
QUZlbmNlSGFuZGxlICgpCistIChtYWNoX3BvcnRfdCljb3B5UG9ydDsKKy0gKHZvaWQpaW52YWxp
ZGF0ZTsKK0BlbmQKICNlbmRpZgogCiBAaW50ZXJmYWNlIENBQ29udGV4dCA6IE5TT2JqZWN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQ
SS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaApp
bmRleCAzZjAyZThjY2IwOGU1ZmJmNmYzMWFlOWFhMmY4MjE3OTkxYTY3MzZlLi45MjFlNjBlZjRh
MTgyMTcwNWYwNjFmODk3MWVmNTQ5MjBiMTUwZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL21hYy9TeXN0ZW1QcmV2aWV3U1BJLmgKQEAgLTUwLDYgKzUwLDkgQEAgTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KIC0gKHZvaWQpcHJlcGFyZVByZXZpZXdPZkZpbGVBdFVSTDoo
TlNVUkwgKil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRXJyb3IgKiBfTnVsbGFi
bGUgZXJyb3IpKWhhbmRsZXI7CiAtICh2b2lkKXNldFJlbW90ZUNvbnRleHQ6KHVpbnQzMl90KWNv
bnRleHRJZDsKIAorLSAodm9pZCl1cGRhdGVGcmFtZTooQ0dSZWN0KW5ld0ZyYW1lIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShDQUZlbmNlSGFuZGxlICogX051bGxhYmxlIGZlbmNlSGFuZGxl
LCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSloYW5kbGVyOworLSAodm9pZClzZXRGcmFtZVdp
dGhpbkZlbmNlZFRyYW5zYWN0aW9uOihDR1JlY3QpZnJhbWU7CisKIC0gKHZvaWQpbW91c2VEb3du
QXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbiB0aW1lc3RhbXA6KE5TVGltZUludGVydmFsKXRp
bWVzdGFtcDsKIC0gKHZvaWQpbW91c2VEcmFnZ2VkQXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlv
biB0aW1lc3RhbXA6KE5TVGltZUludGVydmFsKXRpbWVzdGFtcDsKIC0gKHZvaWQpbW91c2VVcEF0
TG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24gdGltZXN0YW1wOihOU1RpbWVJbnRlcnZhbCl0aW1l
c3RhbXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCmluZGV4IDlhZjVmYjA1ZDEzNjFiYmUzMDFiZmE4MjZjMjIzOWZjNTFjNzgxMWIuLjA0Y2Mz
YzRmNGVkYjY3ODBiNjU0NzgxZGJlNTUxMzUyZWI2M2U5N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xMTIwLDkgKzExMjAsOSBA
QCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ29uZmlndXJhdGlvbihjb25zdCBSZW5k
ZXJMYXllciogY29tcG9zaXRpbmdBbmNlcwogCiAgICAgICAgIC8vIFNvbWUgTW9kZWxQbGF5ZXJz
IHVzZSBhIHBsYXRmb3JtTGF5ZXIoKSBhbmQgc29tZSBwYXNzIHRoZSBNb2RlbCB0byB0aGUgbGF5
ZXIgYXMgY29udGVudHMsCiAgICAgICAgIC8vIGJ1dCB0aGlzIGlzIGEgcnVudGltZSBkZWNpc2lv
bi4KLSAgICAgICAgaWYgKGVsZW1lbnQtPnVzZXNQbGF0Zm9ybUxheWVyKCkpIHsKKyAgICAgICAg
aWYgKGVsZW1lbnQtPnVzZXNQbGF0Zm9ybUxheWVyKCkpCiAgICAgICAgICAgICBtX2dyYXBoaWNz
TGF5ZXItPnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKGVsZW1lbnQtPnBsYXRmb3JtTGF5ZXIo
KSwgR3JhcGhpY3NMYXllcjo6Q29udGVudHNMYXllclB1cnBvc2U6Ok1vZGVsKTsKLSAgICAgICAg
fSBlbHNlIGlmIChhdXRvIG1vZGVsID0gZWxlbWVudC0+bW9kZWwoKSkKKyAgICAgICAgZWxzZSBp
ZiAoYXV0byBtb2RlbCA9IGVsZW1lbnQtPm1vZGVsKCkpCiAgICAgICAgICAgICBtX2dyYXBoaWNz
TGF5ZXItPnNldENvbnRlbnRzVG9Nb2RlbChXVEZNb3ZlKG1vZGVsKSk7CiAKICAgICAgICAgbGF5
ZXJDb25maWdDaGFuZ2VkID0gdHJ1ZTsKQEAgLTE1MzEsNiArMTUzMSwxNCBAQCB2b2lkIFJlbmRl
ckxheWVyQmFja2luZzo6dXBkYXRlR2VvbWV0cnkoY29uc3QgUmVuZGVyTGF5ZXIqIGNvbXBvc2l0
ZWRBbmNlc3RvcikKIAogICAgIGlmIChzdWJwaXhlbE9mZnNldEZyb21SZW5kZXJlckNoYW5nZWQo
b2xkU3VicGl4ZWxPZmZzZXRGcm9tUmVuZGVyZXIsIG1fc3VicGl4ZWxPZmZzZXRGcm9tUmVuZGVy
ZXIsIGRldmljZVNjYWxlRmFjdG9yKSAmJiBjYW5Jc3N1ZVNldE5lZWRzRGlzcGxheSgpKQogICAg
ICAgICBzZXRDb250ZW50c05lZWREaXNwbGF5KCk7CisKKyNpZiBFTkFCTEUoTU9ERUxfRUxFTUVO
VCkKKyAgICBpZiAoaXM8UmVuZGVyTW9kZWw+KHJlbmRlcmVyKCkpKSB7CisgICAgICAgIGF1dG8q
IGVsZW1lbnQgPSBkb3duY2FzdDxIVE1MTW9kZWxFbGVtZW50PihyZW5kZXJlcigpLmVsZW1lbnQo
KSk7CisgICAgICAgIGlmIChlbGVtZW50LT51c2VzUGxhdGZvcm1MYXllcigpKQorICAgICAgICAg
ICAgZWxlbWVudC0+cGFyZW50TGF5ZXJTaXplTWF5SGF2ZUNoYW5nZWQoKTsKKyAgICB9CisjZW5k
aWYKIH0KIAogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmFkanVzdE92ZXJmbG93Q29udHJvbHNQ
b3NpdGlvblJlbGF0aXZlVG9BbmNlc3Rvcihjb25zdCBSZW5kZXJMYXllciYgYW5jZXN0b3JMYXll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVu
dENvbnRyb2xsZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGVs
RWxlbWVudENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCBmNWQzYzdjZWU2ZjI0Zjc2OTBhNjhjY2Mz
N2MxZjQ2MGRmNzc1MDVjLi43MjYyOTI5NGVmZThiMTA3MWViM2M2NDAxM2I0MGMxYzcxZWEwNmU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRD
b250cm9sbGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9k
ZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tCkBAIC0zMyw3ICszMyw5IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0xheW91dFBvaW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xheW91dFVuaXQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9R
dWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDxzaW1kL3NpbWQuaD4KKyNpbXBvcnQgPHd0Zi9NYWNo
U2VuZFJpZ2h0Lmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL01v
bm90b25pY1RpbWUuaD4KIApAQCAtNDMsNyArNDUsNiBAQAogI2ltcG9ydCAiUmVtb3RlTGF5ZXJU
cmVlSG9zdC5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlVmlld3MuaCIKICNpbXBvcnQgIldL
TW9kZWxWaWV3LmgiCi0jaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KICNp
bXBvcnQgPHBhbC9zcGkvaW9zL1N5c3RlbVByZXZpZXdTUEkuaD4KICNlbmRpZgogCkBAIC0yMzks
NiArMjQwLDQyIEBAIHZvaWQgTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6aGFuZGxlTW91c2VVcEZv
ck1vZGVsRWxlbWVudChjb25zdCBTdHJpbmcmIHV1aWQsIGNvCiAgICAgICAgIFtwcmV2aWV3IG1v
dXNlVXBBdExvY2F0aW9uOkNHUG9pbnRNYWtlKGZsaXBwZWRMb2NhdGlvbkluRWxlbWVudC54KCku
dG9GbG9hdCgpLCBmbGlwcGVkTG9jYXRpb25JbkVsZW1lbnQueSgpLnRvRmxvYXQoKSkgdGltZXN0
YW1wOnRpbWVzdGFtcC5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCldOwogfQogCit2b2lkIE1v
ZGVsRWxlbWVudENvbnRyb2xsZXI6Om1vZGVsRWxlbWVudFNpemVEaWRDaGFuZ2UoY29uc3QgU3Ry
aW5nJiB1dWlkLCBXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeHBlY3RlZDxNYWNoU2VuZFJpZ2h0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBwcmV2aWV3ID0gcHJldmlld0ZvclVVSUQodXVp
ZCk7CisgICAgaWYgKCFwcmV2aWV3KSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VV
bmV4cGVjdGVkKFdlYkNvcmU6OlJlc291cmNlRXJyb3IgeyBXZWJDb3JlOjplcnJvckRvbWFpbldl
YktpdEludGVybmFsLCAwLCB7IH0sICJDb3VsZCBub3QgZmluZCBtb2RlbCJfcyB9KSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxl
cldpdGhGaW5hbGl6ZXI8dm9pZChFeHBlY3RlZDxNYWNoU2VuZFJpZ2h0LCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yPik+KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBbXSAoRnVuY3Rpb248dm9p
ZChFeHBlY3RlZDxNYWNoU2VuZFJpZ2h0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiBjb21w
bGV0aW9uSGFuZGxlcikgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3Rl
ZChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHsgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcjo6VHlwZTo6
R2VuZXJhbCB9KSk7CisgICAgfSk7CisKKyAgICBbcHJldmlldyB1cGRhdGVGcmFtZTpDR1JlY3RN
YWtlKDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkgY29tcGxldGlvbkhhbmRsZXI6
bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBoYW5kbGVyID0gV1RG
TW92ZShoYW5kbGVyKSwgdXVpZF0gKENBRmVuY2VIYW5kbGUgKmZlbmNlSGFuZGxlLCBOU0Vycm9y
ICplcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgTE9H
KE1vZGVsRWxlbWVudCwgIlVuYWJsZSB0byB1cGRhdGUgZnJhbWU6ICVALiIsIGVycm9yLmxvY2Fs
aXplZERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhp
cyA9IFdURk1vdmUod2Vha1RoaXMpLCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgZXJyb3Ig
PSBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHsgZXJyb3IgfV0gKCkgbXV0YWJsZSB7CisgICAgICAg
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgIGhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoZXJyb3IpKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgW2ZlbmNlSGFuZGxlIGludmFsaWRhdGVdOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgUmV0YWluUHRyIHN0cm9uZ0ZlbmNlSGFuZGxl
ID0gZmVuY2VIYW5kbGU7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdU
Rk1vdmUod2Vha1RoaXMpLCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgdXVpZCwgc3Ryb25n
RmVuY2VIYW5kbGUgPSBXVEZNb3ZlKHN0cm9uZ0ZlbmNlSGFuZGxlKV0gKCkgbXV0YWJsZSB7Cisg
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICAgICAgYXV0byBmZW5jZVNlbmRSaWdodCA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KFtzdHJv
bmdGZW5jZUhhbmRsZSBjb3B5UG9ydF0pOworICAgICAgICAgICAgW3N0cm9uZ0ZlbmNlSGFuZGxl
IGludmFsaWRhdGVdOworICAgICAgICAgICAgaGFuZGxlcihmZW5jZVNlbmRSaWdodCk7CisgICAg
ICAgIH0pOworICAgIH0pLmdldCgpXTsKK30KKwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVJLSVRf
SU5MSU5FX1BSRVZJRVcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Nb2Rl
bEVsZW1lbnRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Nb2RlbEVsZW1l
bnRDb250cm9sbGVyLmgKaW5kZXggOWM0MzZkMmU1ZGRmMWIyODVhOTVkNDljYWRkYjU5ZDEzNzQ0
NTM0OC4uN2RkOWUwMmQ4ZDIwMjEwM2JkNjgxYzNlOGQwMWFmNDdmZTMzNWM2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaApAQCAtNzEs
NiArNzEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJ
RVdfTUFDKQogICAgIHZvaWQgbW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhVUkwsIFN0cmlu
ZywgV2ViQ29yZTo6RmxvYXRTaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHN0
ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmKTsK
KyAgICB2b2lkIG1vZGVsRWxlbWVudFNpemVEaWRDaGFuZ2UoY29uc3QgU3RyaW5nJiB1dWlkLCBX
ZWJDb3JlOjpGbG9hdFNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8TWFjaFNl
bmRSaWdodCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGhhbmRsZU1v
dXNlRG93bkZvck1vZGVsRWxlbWVudChjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpMYXlv
dXRQb2ludCYsIE1vbm90b25pY1RpbWUpOwogICAgIHZvaWQgaGFuZGxlTW91c2VNb3ZlRm9yTW9k
ZWxFbGVtZW50KGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgTW9u
b3RvbmljVGltZSk7CiAgICAgdm9pZCBoYW5kbGVNb3VzZVVwRm9yTW9kZWxFbGVtZW50KGNvbnN0
IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBmODI0OGY1YzM1NGQ3
ODdiMDEzY2ZjN2YwYjY2NTI5OTRhMmU0ODczLi42OTM5ZDRiM2E0NmQ1NWYzZjczN2JjNGQxNDFi
MDJmYzFmMDJjMjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTExMDk3LDYgKzExMDk3LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojptb2RlbEVsZW1lbnRE
aWRDcmVhdGVQcmV2aWV3KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHV1CiAgICAgbW9k
ZWxFbGVtZW50Q29udHJvbGxlcigpLT5tb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KHVybCwg
dXVpZCwgc2l6ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIFdlYlBh
Z2VQcm94eTo6bW9kZWxFbGVtZW50U2l6ZURpZENoYW5nZShjb25zdCBTdHJpbmcmIHV1aWQsIFdl
YkNvcmU6OkZsb2F0U2l6ZSBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPE1h
Y2hTZW5kUmlnaHQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBtb2RlbEVsZW1lbnRDb250cm9sbGVyKCktPm1vZGVsRWxlbWVudFNpemVEaWRD
aGFuZ2UodXVpZCwgc2l6ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB2b2lk
IFdlYlBhZ2VQcm94eTo6aGFuZGxlTW91c2VEb3duRm9yTW9kZWxFbGVtZW50KGNvbnN0IFN0cmlu
ZyYgdXVpZCwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmIGZsaXBwZWRMb2NhdGlvbkluRWxl
bWVudCwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCiB7CiAgICAgbW9kZWxFbGVtZW50Q29udHJv
bGxlcigpLT5oYW5kbGVNb3VzZURvd25Gb3JNb2RlbEVsZW1lbnQodXVpZCwgZmxpcHBlZExvY2F0
aW9uSW5FbGVtZW50LCB0aW1lc3RhbXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCBhNDQ3YzcwYzA4NDA2MTQ5MGMxYjQ5NWVmYjE4N2YxNjVhMWVjY2IyLi4zNmM2
MWNhNGI4NjI4NDNmY2NiZTBhZmM2MzNjMzZmYWQ3ZTVhZjNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjEyLDYgKzYxMiw3IEBAIHB1YmxpYzoKICNlbmRpZgog
I2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19NQUMpCiAgICAgdm9pZCBtb2RlbEVsZW1l
bnREaWRDcmVhdGVQcmV2aWV3KGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpwYWly
PFN0cmluZywgdWludDMyX3Q+LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYpOworICAgIHZv
aWQgbW9kZWxFbGVtZW50U2l6ZURpZENoYW5nZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGbG9h
dFNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8TWFjaFNlbmRSaWdodCwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGhhbmRsZU1vdXNlRG93bkZvck1v
ZGVsRWxlbWVudChjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYsIE1v
bm90b25pY1RpbWUpOwogICAgIHZvaWQgaGFuZGxlTW91c2VNb3ZlRm9yTW9kZWxFbGVtZW50KGNv
bnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSk7
CiAgICAgdm9pZCBoYW5kbGVNb3VzZVVwRm9yTW9kZWxFbGVtZW50KGNvbnN0IFN0cmluZyYsIGNv
bnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMTVjZDBlM2Q1
OTY4YmM2NjE3ZWE1YzRhMjhmMDE3YTExNGRhYjk1Yi4uZTM5MWNhYWM3ZDA1MWU3N2E4MjVkNmRj
NDljZTJmZmQ5NDdiN2YxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTg5LDYgKzU4OSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2VQcm94eSB7CiAjZW5kaWYKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFDKQog
ICAgIE1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoVVJMIHVybCwgU3RyaW5nIHV1aWQsIFdl
YkNvcmU6OkZsb2F0U2l6ZSBzaXplKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFN0cmluZywgdWlu
dDMyX3Q+LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgTW9kZWxF
bGVtZW50U2l6ZURpZENoYW5nZShTdHJpbmcgdXVpZCwgV2ViQ29yZTo6RmxvYXRTaXplIHNpemUp
IC0+IChFeHBlY3RlZDxNYWNoU2VuZFJpZ2h0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1
bHQpIEFzeW5jCiAgICAgSGFuZGxlTW91c2VEb3duRm9yTW9kZWxFbGVtZW50KFN0cmluZyB1dWlk
LCBXZWJDb3JlOjpMYXlvdXRQb2ludCBmbGlwcGVkTG9jYXRpb25JbkVsZW1lbnQsIE1vbm90b25p
Y1RpbWUgdGltZXN0YW1wKQogICAgIEhhbmRsZU1vdXNlTW92ZUZvck1vZGVsRWxlbWVudChTdHJp
bmcgdXVpZCwgV2ViQ29yZTo6TGF5b3V0UG9pbnQgZmxpcHBlZExvY2F0aW9uSW5FbGVtZW50LCBN
b25vdG9uaWNUaW1lIHRpbWVzdGFtcCkKICAgICBIYW5kbGVNb3VzZVVwRm9yTW9kZWxFbGVtZW50
KFN0cmluZyB1dWlkLCBXZWJDb3JlOjpMYXlvdXRQb2ludCBmbGlwcGVkTG9jYXRpb25JbkVsZW1l
bnQsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaApp
bmRleCA0YzVmMzE4M2EyYjg3NTAzMGFiY2ViZGY0MGUzOTg4ODJiZDYzZWVjLi4zOTZhNmJlNGQ3
OTFmMzZhZDE0YWYxNWJjODUzZmZhYjRkNmQyZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXIuaApAQCAtNTEsNiArNTEsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIC8vIFdlYkNv
cmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KICAgICB2b2lkIGxvYWQoV2ViQ29yZTo6TW9kZWwm
LCBXZWJDb3JlOjpMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAgICB2b2lkIHNpemVEaWRDaGFuZ2Uo
V2ViQ29yZTo6TGF5b3V0U2l6ZSkgb3ZlcnJpZGU7CiAgICAgUGxhdGZvcm1MYXllciogbGF5ZXIo
KSBvdmVycmlkZTsKICAgICB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogICAgIHZv
aWQgZ2V0Q2FtZXJhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpIVE1MTW9kZWxFbGVtZW50Q2FtZXJhPiYmKT4mJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXIubW0KaW5kZXggNjAwNTA4ODVkNmEzOTRmMTk0YmU1NTdkNzVhMmNmMzI4Njgx
NzVhMC4uM2M5Y2EyM2UzZjk5ODk1NDY2NWNlYzBiN2VjNTUxMzFhODdjNTE3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllci5tbQpAQCAtNDYsNiArNDYsMTAgQEAgdm9pZCBBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcjo6bG9hZChXZWJDb3JlOjpNb2RlbCYsIFdlYkNvcmU6OkxheW91
dFNpemUpCiB7CiB9CiAKK3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OnNpemVE
aWRDaGFuZ2UoTGF5b3V0U2l6ZSkKK3sKK30KKwogUGxhdGZvcm1MYXllciogQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXI6OmxheWVyKCkKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXJNYWMuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMv
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaAppbmRleCA2Yzg1ZjQyMGVhMDkyMGRm
NTMyZjBlZDdmZWQ5MTEyZmJjMjc5ZDZiLi5hMmU0Mzg0YjBjZmIyOTdmZjgxMGNmYjM4N2RhNTNm
NTY4MzA5MTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFj
L0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5oCkBA
IC01MSw2ICs1MSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBXZWJDb3JlOjpNb2RlbFBsYXllciBv
dmVycmlkZXMuCiAgICAgdm9pZCBsb2FkKFdlYkNvcmU6Ok1vZGVsJiwgV2ViQ29yZTo6TGF5b3V0
U2l6ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaXplRGlkQ2hhbmdlKFdlYkNvcmU6OkxheW91dFNp
emUpIG92ZXJyaWRlOwogICAgIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJpZGU7CiAgICAg
Ym9vbCBzdXBwb3J0c01vdXNlSW50ZXJhY3Rpb24oKSBvdmVycmlkZTsKICAgICBib29sIHN1cHBv
cnRzRHJhZ2dpbmcoKSBvdmVycmlkZTsKQEAgLTYxLDYgKzYyLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGNyZWF0ZUZpbGUoV2ViQ29yZTo6TW9kZWwmKTsKICAgICB2b2lkIGNsZWFyRmlsZSgpOwog
CisgICAgV2ViQ29yZTo6TGF5b3V0U2l6ZSBtX3NpemU7CiAgICAgU3RyaW5nIG1fZmlsZVBhdGg7
CiAgICAgUmV0YWluUHRyPEFTVklubGluZVByZXZpZXc+IG1faW5saW5lUHJldmlldzsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVs
L21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbQppbmRleCBkMjZiM2RhMzM3
NTE4YTAwYzEwNjg3YzRjYWU2MGIyOTYxNWJlMTI3Li40YjdiMzRjZjQzYmE1ZTVkZjliYWYyZTE0
OGI0YjgxNGRmZThmMmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9k
ZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJN
YWMubW0KQEAgLTI4LDEwICsyOCwxMyBAQAogCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVW
SUVXX01BQykKIAorI2ltcG9ydCAiRHJhd2luZ0FyZWEuaCIKICNpbXBvcnQgIldlYlBhZ2UuaCIK
ICNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL01vZGVs
Lmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPHBh
bC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaD4KKyNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0
Lmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9VVUlELmg+CiAK
QEAgLTEyNCw2ICsxMjcsOCBAQCB2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFj
OjpjbGVhckZpbGUoKQogCiB2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjps
b2FkKFdlYkNvcmU6Ok1vZGVsJiBtb2RlbFNvdXJjZSwgV2ViQ29yZTo6TGF5b3V0U2l6ZSBzaXpl
KQogeworICAgIG1fc2l6ZSA9IHNpemU7CisKICAgICBhdXRvIHN0cm9uZ0NsaWVudCA9IGNsaWVu
dCgpOwogICAgIGlmICghc3Ryb25nQ2xpZW50KQogICAgICAgICByZXR1cm47CkBAIC0xNzIsNiAr
MTc3LDM5IEBAIHZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmxvYWQoV2Vi
Q29yZTo6TW9kZWwmIG1vZGVsU291cmNlLCBXZWJDb3JlCiAgICAgc3Ryb25nUGFnZS0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok1vZGVsRWxlbWVudERpZENyZWF0
ZVByZXZpZXcoVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKG1fZmlsZVBhdGgpLCBbbV9p
bmxpbmVQcmV2aWV3IHV1aWRdLlVVSURTdHJpbmcsIHNpemUpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKK3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OnNp
emVEaWRDaGFuZ2UoV2ViQ29yZTo6TGF5b3V0U2l6ZSBzaXplKQoreworICAgIGlmIChtX3NpemUg
PT0gc2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zaXplID0gc2l6ZTsKKworICAgIFJl
ZlB0ciBzdHJvbmdQYWdlID0gcGFnZSgpOworICAgIGlmICghc3Ryb25nUGFnZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgU3RyaW5nIHV1aWQgPSBbbV9pbmxpbmVQcmV2aWV3IHV1aWRdLlVVSURT
dHJpbmc7CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxNYWNoU2VuZFJpZ2h0
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+IGNvbXBsZXRpb25IYW5kbGVyID0gW3dlYWtTZWxm
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIHN0cm9uZ1BhZ2UsIHNpemVdIChFeHBlY3RlZDxNYWNoU2Vu
ZFJpZ2h0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIG11dGFibGUgeworICAgICAg
ICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBSZWZQdHIgc3Ry
b25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byogZHJhd2luZ0FyZWEgPSBzdHJvbmdQYWdl
LT5kcmF3aW5nQXJlYSgpOworICAgICAgICBpZiAoIWRyYXdpbmdBcmVhKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIGF1dG8gZmVuY2VTZW5kUmlnaHQgPSAqcmVzdWx0OworICAgICAg
ICBkcmF3aW5nQXJlYS0+YWRkRmVuY2UoZmVuY2VTZW5kUmlnaHQpOworCisgICAgICAgIFtzdHJv
bmdTZWxmLT5tX2lubGluZVByZXZpZXcgc2V0RnJhbWVXaXRoaW5GZW5jZWRUcmFuc2FjdGlvbjpD
R1JlY3RNYWtlKDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSldOworICAgIH07CisK
KyAgICBzdHJvbmdQYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6TW9kZWxFbGVtZW50U2l6ZURpZENoYW5nZSh1dWlkLCBzaXplKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworfQorCiBQbGF0Zm9ybUxheWVyKiBBUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllck1hYzo6bGF5ZXIoKQogewogICAgIHJldHVybiBbbV9pbmxpbmVQcmV2aWV3IGxheWVy
XTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451419</attachid>
            <date>2022-02-09 11:41:08 -0800</date>
            <delta_ts>2022-02-09 12:21:21 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236233-20220209204107.patch</filename>
            <type>text/plain</type>
            <size>26274</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJlYTU4MmI0ZDZlYjUx
ZGE5NTY0YzYyYTU1NGViNjRiMjExYmEyMC4uNTIxMTEyZTI5MDY3YTQyN2I2NzJhYTRkZDBjZjAz
OTBjODA2NDE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTA5ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFttb2RlbF0gaW1wcm92
ZSBzaXppbmcgb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNjIzMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODg1Njk4ODE+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFdlIGRldGVjdCB3aGVu
IHRoZSA8bW9kZWw+IGxheWVyIHNpemUgY2hhbmdlcyB1bmRlciBSZW5kZXJMYXllckJhY2tpbmc6
OnVwZGF0ZUdlb21ldHJ5KCkKKyAgICAgICAgYW5kIGluZm9ybSB0aGUgYXNzb2NpYXRlZCBIVE1M
TW9kZWxFbGVtZW50IHRocm91Z2ggdGhlIG5ldyBwYXJlbnRMYXllclNpemVNYXlIYXZlQ2hhbmdl
ZCgpCisgICAgICAgIG1ldGhvZCB0aGF0IHRoZSBzaXplIGhhcyBjaGFuZ2VkLiBXZSB0aGVuIGlu
Zm9ybSB0aGUgYmFja2luZyBwbGF5ZXIgdGhhdCBzaXplRGlkQ2hhbmdlKCkuCisKKyAgICAgICAg
KiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpjcmVhdGVNb2RlbFBsYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpwYXJlbnRMYXllclNpemVNYXlIYXZlQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpwbGF0Zm9ybUxheWVyU2l6ZSBj
b25zdCk6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQu
aDoKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyOjpzaXplRGlkQ2hhbmdlKToKKyAgICAg
ICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oOgorICAg
ICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVy
Lmg6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9k
ZWxQbGF5ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTY2VuZUtpdE1vZGVsUGxheWVyOjpzaXpl
RGlkQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ29uZmlndXJhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5
KToKKwogMjAyMi0wMi0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0NTUyBDb250YWluZXIgUXVlcmllc10gVHJhY2sgcXVlcnkgY29udGFpbmVycyBzbyB0
aGV5IGNhbiBiZSBpbnZhbGlkYXRlZCBvbiBzaXplIGNoYW5nZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggMDUxMjIwMDA1MzliYmQwNzcwMmY5Y2NhODRlNmNkY2NlNzExMTYzZi4uZmE0OTk2M2U3ZDM4
NzFlNDM0YmYxYTM2MzEwM2VmZjdhMGZkMThiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMjItMDItMDkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgW21vZGVsXSBpbXByb3ZlIHNpemluZyBvbiBtYWNPUworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MjMzCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84ODU2OTg4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIu
CisKKyAgICAgICAgQWRkIG5ld2x5LXVzZWQgQ0FGZW5jZUhhbmRsZSBhbmQgQVNWSW5saW5lUHJl
dmlldyBTUElzLgorCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg6Cisg
ICAgICAgICogcGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQSS5oOgorCiAyMDIyLTAyLTA3ICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFttb2RlbF0gaW1w
cm92ZSBzaXppbmcgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE0NDFiZjc1NDBmYTllYzAwZGIwZDJkNDI2
MDdkMTk4YzdjZDVhZWYuLmNlNWI2MTA4NzBkYzY0YjgyNDU2N2FkNTJkYTBjZTM1M2QxOWRjZWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjItMDItMDkgIEFudG9pbmUgUXVpbnQgIDxn
cmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW21vZGVsXSBpbXByb3ZlIHNpemluZyBvbiBt
YWNPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2
MjMzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84ODU2OTg4MT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgV2Ugb3ZlcnJpZGUgdGhlIG5ldyBNb2RlbFBs
YXllcjo6c2l6ZURpZENoYW5nZSgpIHZpcnR1YWwgbWV0aG9kIG9uIEFSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyTWFjCisgICAgICAgIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIDxtb2RlbD4g
bGF5ZXIncyBoYXMgY2hhbmdlZCBzaXplLiBXZSB0aGVuIHNlbmQgdGhlIG5ldyBNb2RlbEVsZW1l
bnRTaXplRGlkQ2hhbmdlCisgICAgICAgIG1lc3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3Mgd2hpY2gg
d2lsbCB5aWVsZCBhIGNhbGwgdG8gTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6bW9kZWxFbGVtZW50
U2l6ZURpZENoYW5nZSgpLgorCisgICAgICAgIEluIHRoYXQgbmV3IG1ldGhvZCwgd2UgY2FsbCAt
W0FTVklubGluZVByZXZpZXcgdXBkYXRlRnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6XSB3aGljaCBw
cm92aWRlcyB1cyB3aXRoIGEKKyAgICAgICAgQ0FGZW5jZUhhbmRsZSB3aGljaCB3ZSBjb3B5IHRv
IGNyZWF0ZSBhIE1hY2hTZW5kUmlnaHQgdG8gc2VuZCBiYWNrIHRvIHRoZSBXZWIgcHJvY2VzcyBp
biB0aGUgSVBDIGNhbGxiYWNrLgorCisgICAgICAgIEJhY2sgaW4gdGhlIFdlYiBwcm9jZXNzLCB3
ZSBpbnN0YWxsIHRoaXMgZmVuY2Ugb24gdGhlIGRyYXdpbmcgYXJlYSBhbmQgZmluYWxseSBjYWxs
IC1bQVNWSW5saW5lUHJldmlldworICAgICAgICBzZXRGcmFtZVdpdGhpbkZlbmNlZFRyYW5zYWN0
aW9uOl0gdG8gY29tcGxldGUgdGhlIHNpemluZyB1cGRhdGUgb24gYm90aCB0aGUgQVNWSW5saW5l
UHJldmlldyBpbnN0YW5jZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVt
ZW50Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpNb2RlbEVsZW1lbnRDb250
cm9sbGVyOjptb2RlbEVsZW1lbnRTaXplRGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TW9kZWxFbGVtZW50Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om1vZGVsRWxlbWVudFNpemVE
aWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nl
c3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tOgorICAgICAgICAo
V2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6c2l6ZURpZENoYW5nZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXJNYWMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXJNYWM6OmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllck1hYzo6c2l6ZURpZENoYW5nZSk6CisKIDIwMjItMDItMDggIEppZ2VuIFpo
b3UgIDxqaWdlbi56aG91QHNvbnkuY29tPgogCiAgICAgICAgIFtQbGF5c3RhdGlvbl0gRml4IGJ1
aWxkIGJyZWFrIGFmdGVyIHIyODkyNDcgaWYgRU5BQkxFX1NFUlZJQ0VfV09SS0VSIGlzIG9mZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2Rl
bEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxN
b2RlbEVsZW1lbnQuY3BwCmluZGV4IDg0ZDdhYmIyNGNmMjhjMjIwMjI1ZmRlYzVjOTcyNzFhNTE1
NDI1ZjcuLmE1ODgxYmYyOGRiMzhjMjJiODEwZGM2MzNlZjA1MGYxZDNmNDUwY2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVs
RWxlbWVudC5jcHAKQEAgLTQ1LDYgKzQ1LDggQEAKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0Lmgi
CiAjaW5jbHVkZSAiSlNIVE1MTW9kZWxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MTW9kZWxF
bGVtZW50Q2FtZXJhLmgiCisjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgorI2luY2x1ZGUgIkxheW91
dFNpemUuaCIKICNpbmNsdWRlICJNb2RlbC5oIgogI2luY2x1ZGUgIk1vZGVsUGxheWVyLmgiCiAj
aW5jbHVkZSAiTW9kZWxQbGF5ZXJQcm92aWRlci5oIgpAQCAtNTUsNiArNTcsNyBAQAogI2luY2x1
ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyTW9kZWxPYmpl
Y3QuaCIKICNpbmNsdWRlICJSZW5kZXJNb2RlbC5oIgorI2luY2x1ZGUgIlJlbmRlclJlcGxhY2Vk
LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvU2Vj
b25kcy5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTI2MSw5ICsyNjQsNyBAQCB2b2lkIEhU
TUxNb2RlbEVsZW1lbnQ6OmNyZWF0ZU1vZGVsUGxheWVyKCkKIAogICAgIC8vIEZJWE1FOiBXZSBu
ZWVkIHRvIHRlbGwgdGhlIHBsYXllciBpZiB0aGUgc2l6ZSBjaGFuZ2VzIGFzIHdlbGwsIHNvIHBh
c3NpbmcgdGhpcwogICAgIC8vIGluIHdpdGggbG9hZCBwcm9iYWJseSBkb2Vzbid0IG1ha2Ugc2Vu
c2UuCi0gICAgQVNTRVJUKHJlbmRlcmVyKCkpOwotICAgIGF1dG8gc2l6ZSA9IHJlbmRlcmVyKCkt
PmFic29sdXRlQm91bmRpbmdCb3hSZWN0KGZhbHNlKS5zaXplKCk7Ci0gICAgbV9tb2RlbFBsYXll
ci0+bG9hZCgqbV9tb2RlbCwgc2l6ZSk7CisgICAgbV9tb2RlbFBsYXllci0+bG9hZCgqbV9tb2Rl
bCwgY29udGVudFNpemUoKSk7CiB9CiAKIGJvb2wgSFRNTE1vZGVsRWxlbWVudDo6dXNlc1BsYXRm
b3JtTGF5ZXIoKSBjb25zdApAQCAtMjc2LDYgKzI3NywxMSBAQCBQbGF0Zm9ybUxheWVyKiBIVE1M
TW9kZWxFbGVtZW50OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKICAgICByZXR1cm4gbV9tb2RlbFBs
YXllci0+bGF5ZXIoKTsKIH0KIAordm9pZCBIVE1MTW9kZWxFbGVtZW50OjpzaXplTWF5SGF2ZUNo
YW5nZWQoKQoreworICAgIG1fbW9kZWxQbGF5ZXItPnNpemVEaWRDaGFuZ2UoY29udGVudFNpemUo
KSk7Cit9CisKIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6ZGlkRmluaXNoTG9hZGluZyhNb2RlbFBs
YXllciYgbW9kZWxQbGF5ZXIpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChtb2RlbFBsYXllciwgJm1v
ZGVsUGxheWVyID09IG1fbW9kZWxQbGF5ZXIpOwpAQCAtNjM4LDYgKzY0NCwxMiBAQCBWZWN0b3I8
UmV0YWluUHRyPGlkPj4gSFRNTE1vZGVsRWxlbWVudDo6YWNjZXNzaWJpbGl0eUNoaWxkcmVuKCkK
IH0KICNlbmRpZgogCitMYXlvdXRTaXplIEhUTUxNb2RlbEVsZW1lbnQ6OmNvbnRlbnRTaXplKCkg
Y29uc3QKK3sKKyAgICBBU1NFUlQocmVuZGVyZXIoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PFJl
bmRlclJlcGxhY2VkPigqcmVuZGVyZXIoKSkucmVwbGFjZWRDb250ZW50UmVjdCgpLnNpemUoKTsK
K30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1PREVMX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaApp
bmRleCBlYjcxZDY1OWI0OTJmNWMzMDE0NDU3YWM2NWYyY2YyY2UyNTBhNzVmLi4xN2ZkODcwNWU0
YWQwYzgwZDRiNDE1ZGRlNjY5NzUzNTE4NmVjNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTQzLDYg
KzQzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXZlbnQ7CitjbGFzcyBMYXlv
dXRTaXplOwogY2xhc3MgTW9kZWw7CiBjbGFzcyBNb2RlbFBsYXllcjsKIGNsYXNzIE1vdXNlRXZl
bnQ7CkBAIC0xMDMsNyArMTA0LDkgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IFZlY3RvcjxSZXRhaW5QdHI8aWQ+PiBhY2Nlc3NpYmlsaXR5Q2hpbGRyZW4oKTsKICNlbmRpZgot
ICAgIAorCisgICAgdm9pZCBzaXplTWF5SGF2ZUNoYW5nZWQoKTsKKwogcHJpdmF0ZToKICAgICBI
VE1MTW9kZWxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCkBAIC0x
NDUsNiArMTQ4LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNJbnRlcmFjdGl2ZSgpIGNvbnN0
OwogCisgICAgTGF5b3V0U2l6ZSBjb250ZW50U2l6ZSgpIGNvbnN0OworCiAgICAgVVJMIG1fc291
cmNlVVJMOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBtX3Jl
c291cmNlOwogICAgIFNoYXJlZEJ1ZmZlckJ1aWxkZXIgbV9kYXRhOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaAppbmRleCBlNjc0Njcy
NjhmZjhhMjc1YzgxMDA2OTM5NDM2YjU3MjE5OWUzYThhLi41ODM0ZTA0MzVhYzg5MDczN2YwOTAw
OTMzMjkwZjdmM2UxZWY0MWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaApAQCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB+TW9kZWxQbGF5ZXIoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBsb2FkKE1vZGVsJiwg
TGF5b3V0U2l6ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdlKExheW91dFNp
emUpID0gMDsKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzTW91c2VJbnRlcmFjdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwCmluZGV4
IGI5NzFhMGQ3NTliNDkxMmVmYzhiOTUwMGY1MTA0ZDQ4MDkxMWE2NTkuLmFlM2UwZjcyNjM0NDc0
MTUwNTNiMWY4MDY1NmZkN2Q0MTZmZmZkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5j
cHAKQEAgLTU0LDYgKzU0LDEwIEBAIFBsYXRmb3JtTGF5ZXIqIER1bW15TW9kZWxQbGF5ZXI6Omxh
eWVyKCkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAordm9pZCBEdW1teU1vZGVsUGxheWVyOjpz
aXplRGlkQ2hhbmdlKExheW91dFNpemUpCit7Cit9CisKIHZvaWQgRHVtbXlNb2RlbFBsYXllcjo6
ZW50ZXJGdWxsc2NyZWVuKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oCmluZGV4IGQx
NTM2NDIxYzEwM2VjOGIwNjZlOWMyNWMyYjVmMjE0ZjVmMDI5Y2IuLmY1OTA3MDZiNzNiNmYzOGUx
NTFiODkzNDZmMjQxNTRlOTcxYzg5M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaApAQCAt
NDIsNiArNDIsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gTW9kZWxQbGF5ZXIgb3ZlcnJpZGVzLgog
ICAgIHZvaWQgbG9hZChNb2RlbCYsIExheW91dFNpemUpIG92ZXJyaWRlOworICAgIHZvaWQgc2l6
ZURpZENoYW5nZShMYXlvdXRTaXplKSBvdmVycmlkZTsKICAgICBQbGF0Zm9ybUxheWVyKiBsYXll
cigpIG92ZXJyaWRlOwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBoYW5kbGVNb3VzZURvd24oY29uc3QgTGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5oCmluZGV4IDhmOWFm
MDBkMGE5M2YyZTViZjE0MzYwZmJlMTNlYTgwZWMwMTQ0M2EuLmU5OGNmYjRjZjgyMTU2YWRmZWMz
MGM2M2M4OWZlMmFjNzQyY2ZmMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5
ZXIuaApAQCAtNTYsNiArNTYsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gTW9kZWxQbGF5ZXIgb3Zl
cnJpZGVzLgogICAgIHZvaWQgbG9hZChNb2RlbCYsIExheW91dFNpemUpIG92ZXJyaWRlOworICAg
IHZvaWQgc2l6ZURpZENoYW5nZShMYXlvdXRTaXplKSBvdmVycmlkZTsKICAgICBDQUxheWVyICps
YXllcigpIG92ZXJyaWRlOwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBoYW5kbGVNb3VzZURvd24oY29uc3QgTGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1l
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxl
bWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0KaW5kZXgg
NzZkNDhlM2ViNTMzOTg1MTA4MTYzZjdhYmM2NTYyMDE5YTBiMWQ5Ny4uY2RjZGVkMTc5ZTk3ZWRi
ZmEyNDExYmI1NTMxZjdiMWNmMDAxYzRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9k
ZWxQbGF5ZXIubW0KQEAgLTczLDYgKzczLDEwIEBAIHZvaWQgU2NlbmVLaXRNb2RlbFBsYXllcjo6
bG9hZChNb2RlbCYgbW9kZWxTb3VyY2UsIExheW91dFNpemUpCiAgICAgbV9sb2FkZXIgPSBsb2Fk
U2NlbmVLaXRNb2RlbChtb2RlbFNvdXJjZSwgKnRoaXMpOwogfQogCit2b2lkIFNjZW5lS2l0TW9k
ZWxQbGF5ZXI6OnNpemVEaWRDaGFuZ2UoTGF5b3V0U2l6ZSkKK3sKK30KKwogUGxhdGZvcm1MYXll
ciogU2NlbmVLaXRNb2RlbFBsYXllcjo6bGF5ZXIoKQogewogICAgIHJldHVybiBtX2xheWVyLmdl
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQ
SS5oCmluZGV4IDdiNjcyYWU2ZWZhMjk1ZDM3OTkwNmM4OWNmNjdlZWNkZGI1MGEyMjAuLmI0NTkw
ZjhiNjhjYWE5NDY1OTA1YmNjN2U1YzliYzY0YTE2NTM0ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTUyLDYgKzUyLDEwIEBA
CiAjaW1wb3J0IDxRdWFydHpDb3JlL0NBRGlzcGxheUxpbmtQcml2YXRlLmg+CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFVykKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FG
ZW5jZUhhbmRsZS5oPgorI2VuZGlmCisKICNlbmRpZiAvLyBfX09CSkNfXwogCiAjZWxzZQpAQCAt
NjUsOCArNjksMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgX0NBUmVuZGVyQ29udGV4dCBDQVJlbmRlckNv
bnRleHQ7CiBAZW5kCiAjZW5kaWYKIAotI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19J
T1MpCi1AY2xhc3MgQ0FGZW5jZUhhbmRsZTsKKyNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJ
RVcpCitAaW50ZXJmYWNlIENBRmVuY2VIYW5kbGUgOiBOU09iamVjdAorQGVuZAorCitAaW50ZXJm
YWNlIENBRmVuY2VIYW5kbGUgKCkKKy0gKG1hY2hfcG9ydF90KWNvcHlQb3J0OworLSAodm9pZClp
bnZhbGlkYXRlOworQGVuZAogI2VuZGlmCiAKIEBpbnRlcmZhY2UgQ0FDb250ZXh0IDogTlNPYmpl
Y3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TeXN0ZW1QcmV2
aWV3U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQ
SS5oCmluZGV4IDNmMDJlOGNjYjA4ZTVmYmY2ZjMxYWU5YWEyZjgyMTc5OTFhNjczNmUuLjkyMWU2
MGVmNGExODIxNzA1ZjA2MWY4OTcxZWY1NDkyMGIxNTBlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TeXN0ZW1QcmV2aWV3U1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaApAQCAtNTAsNiArNTAsOSBA
QCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogLSAodm9pZClwcmVwYXJlUHJldmlld09mRmlsZUF0
VVJMOihOU1VSTCAqKXVybCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNFcnJvciAqIF9O
dWxsYWJsZSBlcnJvcikpaGFuZGxlcjsKIC0gKHZvaWQpc2V0UmVtb3RlQ29udGV4dDoodWludDMy
X3QpY29udGV4dElkOwogCistICh2b2lkKXVwZGF0ZUZyYW1lOihDR1JlY3QpbmV3RnJhbWUgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKENBRmVuY2VIYW5kbGUgKiBfTnVsbGFibGUgZmVuY2VI
YW5kbGUsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpKWhhbmRsZXI7CistICh2b2lkKXNldEZy
YW1lV2l0aGluRmVuY2VkVHJhbnNhY3Rpb246KENHUmVjdClmcmFtZTsKKwogLSAodm9pZCltb3Vz
ZURvd25BdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIHRpbWVzdGFtcDooTlNUaW1lSW50ZXJ2
YWwpdGltZXN0YW1wOwogLSAodm9pZCltb3VzZURyYWdnZWRBdExvY2F0aW9uOihDR1BvaW50KWxv
Y2F0aW9uIHRpbWVzdGFtcDooTlNUaW1lSW50ZXJ2YWwpdGltZXN0YW1wOwogLSAodm9pZCltb3Vz
ZVVwQXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbiB0aW1lc3RhbXA6KE5TVGltZUludGVydmFs
KXRpbWVzdGFtcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKaW5kZXggOWFmNWZiMDVkMTM2MWJiZTMwMWJmYTgyNmMyMjM5ZmM1MWM3ODExYi4u
ZjBlYTNlYTU4ODU5OTJmMTJlYzI1Y2Q4ZjRjNGZhNDNkZmVlOGZlYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTExMjAsOSArMTEy
MCw5IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9uKGNvbnN0
IFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0FuY2VzCiAKICAgICAgICAgLy8gU29tZSBNb2RlbFBs
YXllcnMgdXNlIGEgcGxhdGZvcm1MYXllcigpIGFuZCBzb21lIHBhc3MgdGhlIE1vZGVsIHRvIHRo
ZSBsYXllciBhcyBjb250ZW50cywKICAgICAgICAgLy8gYnV0IHRoaXMgaXMgYSBydW50aW1lIGRl
Y2lzaW9uLgotICAgICAgICBpZiAoZWxlbWVudC0+dXNlc1BsYXRmb3JtTGF5ZXIoKSkgeworICAg
ICAgICBpZiAoZWxlbWVudC0+dXNlc1BsYXRmb3JtTGF5ZXIoKSkKICAgICAgICAgICAgIG1fZ3Jh
cGhpY3NMYXllci0+c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoZWxlbWVudC0+cGxhdGZvcm1M
YXllcigpLCBHcmFwaGljc0xheWVyOjpDb250ZW50c0xheWVyUHVycG9zZTo6TW9kZWwpOwotICAg
ICAgICB9IGVsc2UgaWYgKGF1dG8gbW9kZWwgPSBlbGVtZW50LT5tb2RlbCgpKQorICAgICAgICBl
bHNlIGlmIChhdXRvIG1vZGVsID0gZWxlbWVudC0+bW9kZWwoKSkKICAgICAgICAgICAgIG1fZ3Jh
cGhpY3NMYXllci0+c2V0Q29udGVudHNUb01vZGVsKFdURk1vdmUobW9kZWwpKTsKIAogICAgICAg
ICBsYXllckNvbmZpZ0NoYW5nZWQgPSB0cnVlOwpAQCAtMTUzMSw2ICsxNTMxLDE0IEBAIHZvaWQg
UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHZW9tZXRyeShjb25zdCBSZW5kZXJMYXllciogY29t
cG9zaXRlZEFuY2VzdG9yKQogCiAgICAgaWYgKHN1YnBpeGVsT2Zmc2V0RnJvbVJlbmRlcmVyQ2hh
bmdlZChvbGRTdWJwaXhlbE9mZnNldEZyb21SZW5kZXJlciwgbV9zdWJwaXhlbE9mZnNldEZyb21S
ZW5kZXJlciwgZGV2aWNlU2NhbGVGYWN0b3IpICYmIGNhbklzc3VlU2V0TmVlZHNEaXNwbGF5KCkp
CiAgICAgICAgIHNldENvbnRlbnRzTmVlZERpc3BsYXkoKTsKKworI2lmIEVOQUJMRShNT0RFTF9F
TEVNRU5UKQorICAgIGlmIChpczxSZW5kZXJNb2RlbD4ocmVuZGVyZXIoKSkpIHsKKyAgICAgICAg
YXV0byogZWxlbWVudCA9IGRvd25jYXN0PEhUTUxNb2RlbEVsZW1lbnQ+KHJlbmRlcmVyKCkuZWxl
bWVudCgpKTsKKyAgICAgICAgaWYgKGVsZW1lbnQtPnVzZXNQbGF0Zm9ybUxheWVyKCkpCisgICAg
ICAgICAgICBlbGVtZW50LT5zaXplTWF5SGF2ZUNoYW5nZWQoKTsKKyAgICB9CisjZW5kaWYKIH0K
IAogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmFkanVzdE92ZXJmbG93Q29udHJvbHNQb3NpdGlv
blJlbGF0aXZlVG9BbmNlc3Rvcihjb25zdCBSZW5kZXJMYXllciYgYW5jZXN0b3JMYXllcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRy
b2xsZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVu
dENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCBmNWQzYzdjZWU2ZjI0Zjc2OTBhNjhjY2MzN2MxZjQ2
MGRmNzc1MDVjLi43MjYyOTI5NGVmZThiMTA3MWViM2M2NDAxM2I0MGMxYzcxZWEwNmU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9s
bGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVt
ZW50Q29udHJvbGxlckNvY29hLm1tCkBAIC0zMyw3ICszMyw5IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L0xheW91dFBvaW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xheW91dFVuaXQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpD
b3JlU1BJLmg+CiAjaW1wb3J0IDxzaW1kL3NpbWQuaD4KKyNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJp
Z2h0Lmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL01vbm90b25p
Y1RpbWUuaD4KIApAQCAtNDMsNyArNDUsNiBAQAogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlSG9z
dC5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlVmlld3MuaCIKICNpbXBvcnQgIldLTW9kZWxW
aWV3LmgiCi0jaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQg
PHBhbC9zcGkvaW9zL1N5c3RlbVByZXZpZXdTUEkuaD4KICNlbmRpZgogCkBAIC0yMzksNiArMjQw
LDQyIEBAIHZvaWQgTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6aGFuZGxlTW91c2VVcEZvck1vZGVs
RWxlbWVudChjb25zdCBTdHJpbmcmIHV1aWQsIGNvCiAgICAgICAgIFtwcmV2aWV3IG1vdXNlVXBB
dExvY2F0aW9uOkNHUG9pbnRNYWtlKGZsaXBwZWRMb2NhdGlvbkluRWxlbWVudC54KCkudG9GbG9h
dCgpLCBmbGlwcGVkTG9jYXRpb25JbkVsZW1lbnQueSgpLnRvRmxvYXQoKSkgdGltZXN0YW1wOnRp
bWVzdGFtcC5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCldOwogfQogCit2b2lkIE1vZGVsRWxl
bWVudENvbnRyb2xsZXI6Om1vZGVsRWxlbWVudFNpemVEaWRDaGFuZ2UoY29uc3QgU3RyaW5nJiB1
dWlkLCBXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBl
Y3RlZDxNYWNoU2VuZFJpZ2h0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgYXV0byBwcmV2aWV3ID0gcHJldmlld0ZvclVVSUQodXVpZCk7Cisg
ICAgaWYgKCFwcmV2aWV3KSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVj
dGVkKFdlYkNvcmU6OlJlc291cmNlRXJyb3IgeyBXZWJDb3JlOjplcnJvckRvbWFpbldlYktpdElu
dGVybmFsLCAwLCB7IH0sICJDb3VsZCBub3QgZmluZCBtb2RlbCJfcyB9KSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBhdXRvIGhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcldpdGhG
aW5hbGl6ZXI8dm9pZChFeHBlY3RlZDxNYWNoU2VuZFJpZ2h0LCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yPik+KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBbXSAoRnVuY3Rpb248dm9pZChFeHBl
Y3RlZDxNYWNoU2VuZFJpZ2h0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiBjb21wbGV0aW9u
SGFuZGxlcikgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIHsgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcjo6VHlwZTo6R2VuZXJh
bCB9KSk7CisgICAgfSk7CisKKyAgICBbcHJldmlldyB1cGRhdGVGcmFtZTpDR1JlY3RNYWtlKDAs
IDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJs
b2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBoYW5kbGVyID0gV1RGTW92ZSho
YW5kbGVyKSwgdXVpZF0gKENBRmVuY2VIYW5kbGUgKmZlbmNlSGFuZGxlLCBOU0Vycm9yICplcnJv
cikgbXV0YWJsZSB7CisgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgTE9HKE1vZGVs
RWxlbWVudCwgIlVuYWJsZSB0byB1cGRhdGUgZnJhbWU6ICVALiIsIGVycm9yLmxvY2FsaXplZERl
c2NyaXB0aW9uKTsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdU
Rk1vdmUod2Vha1RoaXMpLCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgZXJyb3IgPSBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIHsgZXJyb3IgfV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgIGhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoZXJyb3IpKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgW2ZlbmNlSGFuZGxlIGludmFsaWRhdGVdOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgUmV0YWluUHRyIHN0cm9uZ0ZlbmNlSGFuZGxlID0gZmVu
Y2VIYW5kbGU7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdURk1vdmUo
d2Vha1RoaXMpLCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgdXVpZCwgc3Ryb25nRmVuY2VI
YW5kbGUgPSBXVEZNb3ZlKHN0cm9uZ0ZlbmNlSGFuZGxlKV0gKCkgbXV0YWJsZSB7CisgICAgICAg
ICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgYXV0byBmZW5jZVNlbmRSaWdodCA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KFtzdHJvbmdGZW5j
ZUhhbmRsZSBjb3B5UG9ydF0pOworICAgICAgICAgICAgW3N0cm9uZ0ZlbmNlSGFuZGxlIGludmFs
aWRhdGVdOworICAgICAgICAgICAgaGFuZGxlcihmZW5jZVNlbmRSaWdodCk7CisgICAgICAgIH0p
OworICAgIH0pLmdldCgpXTsKK30KKwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5F
X1BSRVZJRVcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Nb2RlbEVsZW1l
bnRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Nb2RlbEVsZW1lbnRDb250
cm9sbGVyLmgKaW5kZXggOWM0MzZkMmU1ZGRmMWIyODVhOTVkNDljYWRkYjU5ZDEzNzQ0NTM0OC4u
N2RkOWUwMmQ4ZDIwMjEwM2JkNjgxYzNlOGQwMWFmNDdmZTMzNWM2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaApAQCAtNzEsNiArNzEs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFD
KQogICAgIHZvaWQgbW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhVUkwsIFN0cmluZywgV2Vi
Q29yZTo6RmxvYXRTaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHN0ZDo6cGFp
cjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmKTsKKyAgICB2
b2lkIG1vZGVsRWxlbWVudFNpemVEaWRDaGFuZ2UoY29uc3QgU3RyaW5nJiB1dWlkLCBXZWJDb3Jl
OjpGbG9hdFNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8TWFjaFNlbmRSaWdo
dCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGhhbmRsZU1vdXNlRG93
bkZvck1vZGVsRWxlbWVudChjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2lu
dCYsIE1vbm90b25pY1RpbWUpOwogICAgIHZvaWQgaGFuZGxlTW91c2VNb3ZlRm9yTW9kZWxFbGVt
ZW50KGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgTW9ub3Rvbmlj
VGltZSk7CiAgICAgdm9pZCBoYW5kbGVNb3VzZVVwRm9yTW9kZWxFbGVtZW50KGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBmODI0OGY1YzM1NGQ3ODdiMDEz
Y2ZjN2YwYjY2NTI5OTRhMmU0ODczLi42OTM5ZDRiM2E0NmQ1NWYzZjczN2JjNGQxNDFiMDJmYzFm
MDJjMjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEx
MDk3LDYgKzExMDk3LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojptb2RlbEVsZW1lbnREaWRDcmVh
dGVQcmV2aWV3KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHV1CiAgICAgbW9kZWxFbGVt
ZW50Q29udHJvbGxlcigpLT5tb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KHVybCwgdXVpZCwg
c2l6ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94
eTo6bW9kZWxFbGVtZW50U2l6ZURpZENoYW5nZShjb25zdCBTdHJpbmcmIHV1aWQsIFdlYkNvcmU6
OkZsb2F0U2l6ZSBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPE1hY2hTZW5k
UmlnaHQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBtb2RlbEVsZW1lbnRDb250cm9sbGVyKCktPm1vZGVsRWxlbWVudFNpemVEaWRDaGFuZ2Uo
dXVpZCwgc2l6ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB2b2lkIFdlYlBh
Z2VQcm94eTo6aGFuZGxlTW91c2VEb3duRm9yTW9kZWxFbGVtZW50KGNvbnN0IFN0cmluZyYgdXVp
ZCwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmIGZsaXBwZWRMb2NhdGlvbkluRWxlbWVudCwg
TW9ub3RvbmljVGltZSB0aW1lc3RhbXApCiB7CiAgICAgbW9kZWxFbGVtZW50Q29udHJvbGxlcigp
LT5oYW5kbGVNb3VzZURvd25Gb3JNb2RlbEVsZW1lbnQodXVpZCwgZmxpcHBlZExvY2F0aW9uSW5F
bGVtZW50LCB0aW1lc3RhbXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCBhNDQ3YzcwYzA4NDA2MTQ5MGMxYjQ5NWVmYjE4N2YxNjVhMWVjY2IyLi4zNmM2MWNhNGI4
NjI4NDNmY2NiZTBhZmM2MzNjMzZmYWQ3ZTVhZjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtNjEyLDYgKzYxMiw3IEBAIHB1YmxpYzoKICNlbmRpZgogI2lmIEVO
QUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19NQUMpCiAgICAgdm9pZCBtb2RlbEVsZW1lbnREaWRD
cmVhdGVQcmV2aWV3KGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpwYWlyPFN0cmlu
ZywgdWludDMyX3Q+LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYpOworICAgIHZvaWQgbW9k
ZWxFbGVtZW50U2l6ZURpZENoYW5nZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGbG9hdFNpemUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8TWFjaFNlbmRSaWdodCwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGhhbmRsZU1vdXNlRG93bkZvck1vZGVsRWxl
bWVudChjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYsIE1vbm90b25p
Y1RpbWUpOwogICAgIHZvaWQgaGFuZGxlTW91c2VNb3ZlRm9yTW9kZWxFbGVtZW50KGNvbnN0IFN0
cmluZyYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSk7CiAgICAg
dm9pZCBoYW5kbGVNb3VzZVVwRm9yTW9kZWxFbGVtZW50KGNvbnN0IFN0cmluZyYsIGNvbnN0IFdl
YkNvcmU6OkxheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMTVjZDBlM2Q1OTY4YmM2
NjE3ZWE1YzRhMjhmMDE3YTExNGRhYjk1Yi4uZTM5MWNhYWM3ZDA1MWU3N2E4MjVkNmRjNDljZTJm
ZmQ5NDdiN2YxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgpAQCAtNTg5LDYgKzU4OSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94
eSB7CiAjZW5kaWYKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFDKQogICAgIE1v
ZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoVVJMIHVybCwgU3RyaW5nIHV1aWQsIFdlYkNvcmU6
OkZsb2F0U2l6ZSBzaXplKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFN0cmluZywgdWludDMyX3Q+
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgTW9kZWxFbGVtZW50
U2l6ZURpZENoYW5nZShTdHJpbmcgdXVpZCwgV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpIC0+IChF
eHBlY3RlZDxNYWNoU2VuZFJpZ2h0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIEFz
eW5jCiAgICAgSGFuZGxlTW91c2VEb3duRm9yTW9kZWxFbGVtZW50KFN0cmluZyB1dWlkLCBXZWJD
b3JlOjpMYXlvdXRQb2ludCBmbGlwcGVkTG9jYXRpb25JbkVsZW1lbnQsIE1vbm90b25pY1RpbWUg
dGltZXN0YW1wKQogICAgIEhhbmRsZU1vdXNlTW92ZUZvck1vZGVsRWxlbWVudChTdHJpbmcgdXVp
ZCwgV2ViQ29yZTo6TGF5b3V0UG9pbnQgZmxpcHBlZExvY2F0aW9uSW5FbGVtZW50LCBNb25vdG9u
aWNUaW1lIHRpbWVzdGFtcCkKICAgICBIYW5kbGVNb3VzZVVwRm9yTW9kZWxFbGVtZW50KFN0cmlu
ZyB1dWlkLCBXZWJDb3JlOjpMYXlvdXRQb2ludCBmbGlwcGVkTG9jYXRpb25JbkVsZW1lbnQsIE1v
bm90b25pY1RpbWUgdGltZXN0YW1wKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaAppbmRleCA0
YzVmMzE4M2EyYjg3NTAzMGFiY2ViZGY0MGUzOTg4ODJiZDYzZWVjLi4zOTZhNmJlNGQ3OTFmMzZh
ZDE0YWYxNWJjODUzZmZhYjRkNmQyZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaApA
QCAtNTEsNiArNTEsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6Ok1v
ZGVsUGxheWVyIG92ZXJyaWRlcy4KICAgICB2b2lkIGxvYWQoV2ViQ29yZTo6TW9kZWwmLCBXZWJD
b3JlOjpMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAgICB2b2lkIHNpemVEaWRDaGFuZ2UoV2ViQ29y
ZTo6TGF5b3V0U2l6ZSkgb3ZlcnJpZGU7CiAgICAgUGxhdGZvcm1MYXllciogbGF5ZXIoKSBvdmVy
cmlkZTsKICAgICB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogICAgIHZvaWQgZ2V0
Q2FtZXJhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpIVE1M
TW9kZWxFbGVtZW50Q2FtZXJhPiYmKT4mJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXIubW0KaW5kZXggNjAwNTA4ODVkNmEzOTRmMTk0YmU1NTdkNzVhMmNmMzI4NjgxNzVhMC4u
M2M5Y2EyM2UzZjk5ODk1NDY2NWNlYzBiN2VjNTUxMzFhODdjNTE3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllci5tbQpAQCAtNDYsNiArNDYsMTAgQEAgdm9pZCBBUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllcjo6bG9hZChXZWJDb3JlOjpNb2RlbCYsIFdlYkNvcmU6OkxheW91dFNpemUp
CiB7CiB9CiAKK3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OnNpemVEaWRDaGFu
Z2UoTGF5b3V0U2l6ZSkKK3sKK30KKwogUGxhdGZvcm1MYXllciogQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXI6OmxheWVyKCkKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXJNYWMuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaAppbmRleCA2Yzg1ZjQyMGVhMDkyMGRmNTMyZjBl
ZDdmZWQ5MTEyZmJjMjc5ZDZiLi5hMmU0Mzg0YjBjZmIyOTdmZjgxMGNmYjM4N2RhNTNmNTY4MzA5
MTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5oCkBAIC01MSw2
ICs1MSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBXZWJDb3JlOjpNb2RlbFBsYXllciBvdmVycmlk
ZXMuCiAgICAgdm9pZCBsb2FkKFdlYkNvcmU6Ok1vZGVsJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSkg
b3ZlcnJpZGU7CisgICAgdm9pZCBzaXplRGlkQ2hhbmdlKFdlYkNvcmU6OkxheW91dFNpemUpIG92
ZXJyaWRlOwogICAgIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBz
dXBwb3J0c01vdXNlSW50ZXJhY3Rpb24oKSBvdmVycmlkZTsKICAgICBib29sIHN1cHBvcnRzRHJh
Z2dpbmcoKSBvdmVycmlkZTsKQEAgLTYxLDYgKzYyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNy
ZWF0ZUZpbGUoV2ViQ29yZTo6TW9kZWwmKTsKICAgICB2b2lkIGNsZWFyRmlsZSgpOwogCisgICAg
V2ViQ29yZTo6TGF5b3V0U2l6ZSBtX3NpemU7CiAgICAgU3RyaW5nIG1fZmlsZVBhdGg7CiAgICAg
UmV0YWluUHRyPEFTVklubGluZVByZXZpZXc+IG1faW5saW5lUHJldmlldzsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9B
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbQppbmRleCBkMjZiM2RhMzM3NTE4YTAw
YzEwNjg3YzRjYWU2MGIyOTYxNWJlMTI3Li40YjdiMzRjZjQzYmE1ZTVkZjliYWYyZTE0OGI0Yjgx
NGRmZThmMmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFj
L0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMubW0K
QEAgLTI4LDEwICsyOCwxMyBAQAogCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01B
QykKIAorI2ltcG9ydCAiRHJhd2luZ0FyZWEuaCIKICNpbXBvcnQgIldlYlBhZ2UuaCIKICNpbXBv
cnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL01vZGVsLmg+Cisj
aW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkv
bWFjL1N5c3RlbVByZXZpZXdTUEkuaD4KKyNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAj
aW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9VVUlELmg+CiAKQEAgLTEy
NCw2ICsxMjcsOCBAQCB2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpjbGVh
ckZpbGUoKQogCiB2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpsb2FkKFdl
YkNvcmU6Ok1vZGVsJiBtb2RlbFNvdXJjZSwgV2ViQ29yZTo6TGF5b3V0U2l6ZSBzaXplKQogewor
ICAgIG1fc2l6ZSA9IHNpemU7CisKICAgICBhdXRvIHN0cm9uZ0NsaWVudCA9IGNsaWVudCgpOwog
ICAgIGlmICghc3Ryb25nQ2xpZW50KQogICAgICAgICByZXR1cm47CkBAIC0xNzIsNiArMTc3LDM5
IEBAIHZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmxvYWQoV2ViQ29yZTo6
TW9kZWwmIG1vZGVsU291cmNlLCBXZWJDb3JlCiAgICAgc3Ryb25nUGFnZS0+c2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZp
ZXcoVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKG1fZmlsZVBhdGgpLCBbbV9pbmxpbmVQ
cmV2aWV3IHV1aWRdLlVVSURTdHJpbmcsIHNpemUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAKK3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OnNpemVEaWRD
aGFuZ2UoV2ViQ29yZTo6TGF5b3V0U2l6ZSBzaXplKQoreworICAgIGlmIChtX3NpemUgPT0gc2l6
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zaXplID0gc2l6ZTsKKworICAgIFJlZlB0ciBz
dHJvbmdQYWdlID0gcGFnZSgpOworICAgIGlmICghc3Ryb25nUGFnZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgU3RyaW5nIHV1aWQgPSBbbV9pbmxpbmVQcmV2aWV3IHV1aWRdLlVVSURTdHJpbmc7
CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxNYWNoU2VuZFJpZ2h0LCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yPik+IGNvbXBsZXRpb25IYW5kbGVyID0gW3dlYWtTZWxmID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIHN0cm9uZ1BhZ2UsIHNpemVdIChFeHBlY3RlZDxNYWNoU2VuZFJpZ2h0
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAo
IXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBSZWZQdHIgc3Ryb25nU2Vs
ZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgYXV0byogZHJhd2luZ0FyZWEgPSBzdHJvbmdQYWdlLT5kcmF3
aW5nQXJlYSgpOworICAgICAgICBpZiAoIWRyYXdpbmdBcmVhKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGF1dG8gZmVuY2VTZW5kUmlnaHQgPSAqcmVzdWx0OworICAgICAgICBkcmF3
aW5nQXJlYS0+YWRkRmVuY2UoZmVuY2VTZW5kUmlnaHQpOworCisgICAgICAgIFtzdHJvbmdTZWxm
LT5tX2lubGluZVByZXZpZXcgc2V0RnJhbWVXaXRoaW5GZW5jZWRUcmFuc2FjdGlvbjpDR1JlY3RN
YWtlKDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSldOworICAgIH07CisKKyAgICBz
dHJvbmdQYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TW9k
ZWxFbGVtZW50U2l6ZURpZENoYW5nZSh1dWlkLCBzaXplKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworfQorCiBQbGF0Zm9ybUxheWVyKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ck1hYzo6bGF5ZXIoKQogewogICAgIHJldHVybiBbbV9pbmxpbmVQcmV2aWV3IGxheWVyXTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>