<?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>231358</bug_id>
          
          <creation_ts>2021-10-07 06:11:04 -0700</creation_ts>
          <short_desc>REGRESSION(r272201): Safari showed red distortion on webview after using Web Inspector, returning from another app</short_desc>
          <delta_ts>2022-03-18 06:26:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</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=238067</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>pangle</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801574</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-10-07 06:11:04 -0700</bug_when>
    <thetext>Safari showed red distortion on webview after using Web Inspector, returning from another app</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801575</commentid>
    <comment_count>1</comment_count>
      <attachid>440496</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-10-07 06:17:23 -0700</bug_when>
    <thetext>Created attachment 440496
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801576</commentid>
    <comment_count>2</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-10-07 06:17:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/81505208&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801578</commentid>
    <comment_count>3</comment_count>
      <attachid>440498</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-10-07 06:21:35 -0700</bug_when>
    <thetext>Created attachment 440498
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801584</commentid>
    <comment_count>4</comment_count>
      <attachid>440499</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-10-07 06:53:49 -0700</bug_when>
    <thetext>Created attachment 440499
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801794</commentid>
    <comment_count>5</comment_count>
      <attachid>440538</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-10-07 14:41:47 -0700</bug_when>
    <thetext>Created attachment 440538
Layout Test and Plumbing v1.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801804</commentid>
    <comment_count>7</comment_count>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-10-07 14:51:53 -0700</bug_when>
    <thetext>Right now the test still fails, even with the patch applied – If I add a breakpoint inside RepaintIndicatorLayerClient::notifyAnimationEnded in WebInspectorClient.cpp, I don’t hit the breakpoint until I do something like open a new tab, which hides the page (which solves the user facing issue since at that point we will clean everything up) - I’d expect to get the notifications 0.25s after the animation starts, though. My test checks if there are currently repaint rects, but I’m expecting the repaint rects to have been cleared out once their animation finishes. I think once notifyAnimationEnded fires when the animation actually ends, it should work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811460</commentid>
    <comment_count>8</comment_count>
      <attachid>443198</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-03 07:28:39 -0700</bug_when>
    <thetext>Created attachment 443198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811555</commentid>
    <comment_count>9</comment_count>
      <attachid>443198</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-03 11:34:12 -0700</bug_when>
    <thetext>Comment on attachment 443198
Patch

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

r=me

&gt; Source/WebCore/inspector/InspectorOverlay.h:209
&gt; +    unsigned paintRectCount() const { return m_paintRects.size(); }

NIT: please move this next to `setShowPaintRects` and `showPaintRect since it&apos;s more related to those than grid overlays :)

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:3090
&gt; +        animation.m_beginTime = *animation.m_beginTime + animationGroupBeginTime;

Would `*animation.m_beginTime += animationGroupBeginTime;` also work?

&gt; LayoutTests/inspector/page/setShowPaintRects.html:14
&gt; +        let hasPaintRects = !!await InspectorTest.evaluateInPage(`window.internals.inspectorPaintRectCount()`);
&gt; +        InspectorTest.expectEqual(hasPaintRects, expected, `Should ${expected ? &quot;&quot; : &quot;not &quot;}have paint rects displayed.`);

NIT: I personally try to avoid using operators in conjunction with `await` as I find it not super easy to read.  I think renaming this to `paintRectsCount` and then using it as `!!paintRectsCount` would be clearer.

&gt; LayoutTests/inspector/page/setShowPaintRects.html:23
&gt; +            PageAgent.setShowPaintRects(true);

NIT: you could/should also `await` this just in case there&apos;s an error

&gt; LayoutTests/inspector/page/setShowPaintRects.html:26
&gt; +            InspectorTest.evaluateInPage(`document.getElementById(&quot;test&quot;).style.backgroundColor = &quot;papayawhip&quot;`);

ditto (:23)

&gt; LayoutTests/inspector/page/setShowPaintRects.html:28
&gt; +                setTimeout(() =&gt; {

Is there no better way to do this than just having a `setTimeout`?  Perhaps we could/should have a `setInterval` loop in the page that constantly checks and `TestPage.dispatchEventToFrontend` when it notices a change so that we&apos;re at least way less likely to miss anything?

&gt; LayoutTests/inspector/page/setShowPaintRects.html:45
&gt; +            PageAgent.setShowPaintRects(false);

ditto :(23)

&gt; LayoutTests/inspector/page/setShowPaintRects.html:48
&gt; +            InspectorTest.evaluateInPage(`document.getElementById(&quot;test&quot;).style.width = &quot;rebeccapurple&quot;`);

ditto (:23)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811802</commentid>
    <comment_count>10</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-04 02:31:24 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #9)
&gt; Comment on attachment 443198 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=443198&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:3090
&gt; &gt; +        animation.m_beginTime = *animation.m_beginTime + animationGroupBeginTime;
&gt; 
&gt; Would `*animation.m_beginTime += animationGroupBeginTime;` also work?

I wasn&apos;t sure that it would and didn&apos;t bother trying… but it does work! I&apos;m uploading a new patch with this change just to make sure there&apos;s no funny stuff.

I&apos;ll let Patrick Angle answer your other comments as this is the part he wrote.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811804</commentid>
    <comment_count>11</comment_count>
      <attachid>443288</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-04 02:34:33 -0700</bug_when>
    <thetext>Created attachment 443288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811805</commentid>
    <comment_count>12</comment_count>
      <attachid>443289</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-04 02:37:16 -0700</bug_when>
    <thetext>Created attachment 443289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811945</commentid>
    <comment_count>13</comment_count>
      <attachid>443289</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2021-11-04 13:16:18 -0700</bug_when>
    <thetext>Comment on attachment 443289
Patch

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

&gt; LayoutTests/inspector/page/setShowPaintRects.html:6
&gt; +&lt;script src=&quot;resources/search-script.js&quot;&gt;&lt;/script&gt;

Needed? (Maybe it is!)

&gt; LayoutTests/inspector/page/setShowPaintRects.html:48
&gt; +            InspectorTest.evaluateInPage(`document.getElementById(&quot;test&quot;).style.width = &quot;rebeccapurple&quot;`);

Err, should this attempt to change the backgroundColor and not width to `rebeccapurple`?

&gt; LayoutTests/inspector/page/setShowPaintRects.html:69
&gt; +    width:  100px;
&gt; +    height:  100px;

Odd spacing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812907</commentid>
    <comment_count>14</comment_count>
      <attachid>443626</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-11-08 16:10:38 -0800</bug_when>
    <thetext>Created attachment 443626
Address test-related feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813255</commentid>
    <comment_count>15</comment_count>
      <attachid>443713</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-09 11:55:11 -0800</bug_when>
    <thetext>Created attachment 443713
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813286</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-09 13:25:37 -0800</bug_when>
    <thetext>Committed r285529 (244046@main): &lt;https://commits.webkit.org/244046@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443713.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440496</attachid>
            <date>2021-10-07 06:17:23 -0700</date>
            <delta_ts>2021-10-07 06:34:25 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-231358-20211007151722.patch</filename>
            <type>text/plain</type>
            <size>13335</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAwMTVhYjEzYjkwZjY1
MWQ5ZmI5Y2YxNGEyMzhiZTYzZWExNTU0OC4uMjk3MzUzYWZjYzFmNmY4ZTNiYjg4OWM4NDJiNGIz
YjMzMTE0YmI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEwLTA3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI3
MjIwMSk6IFNhZmFyaSBzaG93ZWQgcmVkIGRpc3RvcnRpb24gb24gd2VidmlldyBhZnRlciB1c2lu
ZyBXZWIgSW5zcGVjdG9yLCByZXR1cm5pbmcgZnJvbSBhbm90aGVyIGFwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMzU4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MTUwNTIwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbiByMjcyMjAxIHdlIHN0YXJ0ZWQgd3JhcHBpbmcgQ0EgYW5pbWF0aW9u
cyBpbiBDQUFuaW1hdGlvbkdyb3VwIG9iamVjdHMuIFRoaXMgYnJva2UgdGhlIGxvb2t1cCBiYXNl
ZCBvbiBhbmltYXRpb24KKyAgICAgICAga2V5cyBwZXJmb3JtZWQgaW4gdGhlIGFuaW1hdGlvbkRp
ZFN0b3A6ZmluaXNoZWQ6IGRlbGVnYXRlIHNpbmNlIHRoZSBhbmltYXRpb25zIHdvdWxkIG5vdCBu
ZWNlc3NhcmlseSBiZSBmb3VuZCB3aGVuCisgICAgICAgIGNhbGxpbmcgLVtDQUxheWVyIGFuaW1h
dGlvbktleXNdIGFzIHRoZXkgd2VyZSBub3cgbmVzdGVkIGluIGEgQ0FBbmltYXRpb25Hcm91cC4K
KyAgICAgICAgCisgICAgICAgIFRvIGFkZHJlc3MgdGhpcywgd2Ugc2V0IHRoZSBkZWxlZ2F0ZSBv
biBhbGwgYW5pbWF0aW9ucyBncm91cGVkIGluIGEgQ0FBbmltYXRpb25Hcm91cCB3aGVuIGNhbGxp
bmcKKyAgICAgICAgUGxhdGZvcm1DQUxheWVyQ29jb2E6OmFkZEFuaW1hdGlvbkZvcktleSgpIGFu
ZCBzZXQgYSBuYW1lIG9uIGFsbCBnZW5lcmF0ZWQgQ0FBbmltYXRpb24gb2JqZWN0cyB3aGVuCisg
ICAgICAgIGNyZWF0aW5nIGEgTGF5ZXJQcm9wZXJ0eUFuaW1hdGlvbiB1c2luZyBzZXRWYWx1ZTpm
b3JLZXk6IG9uIHRoZSBhbmltYXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6
TGF5ZXJQcm9wZXJ0eUFuaW1hdGlvbjo6TGF5ZXJQcm9wZXJ0eUFuaW1hdGlvbik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FBbmltYXRpb25D
b2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmFuaW1hdGlvbk5hbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hOjpzZXRBbmltYXRpb25OYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6YW5pbWF0aW9uTmFtZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2Eu
bW06CisgICAgICAgICgtW1dlYkFuaW1hdGlvbkRlbGVnYXRlIGFuaW1hdGlvbkRpZFN0b3A6Zmlu
aXNoZWQ6XSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6YWRkQW5p
bWF0aW9uRm9yS2V5KToKKwogMjAyMS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkIGRlY2xhcmUgSlMgVHlw
ZWRBcnJheXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZjNjNjcwZjJmOWUxMWNkNWI0YjE2ZjUyZDU0MjdhM2M1NTQw
NTBmOS4uZmY1YTBhZGEwODRjMDJlYWQzMTczZDFjM2E0NzI0YzY3NTgxNDliMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAyMS0xMC0wNyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIyNzIyMDEpOiBTYWZhcmkgc2hvd2VkIHJl
ZCBkaXN0b3J0aW9uIG9uIHdlYnZpZXcgYWZ0ZXIgdXNpbmcgV2ViIEluc3BlY3RvciwgcmV0dXJu
aW5nIGZyb20gYW5vdGhlciBhcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMTM1OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODE1MDUyMDg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGUubW06CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGU6OlByb3BlcnRpZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGU6OlByb3BlcnRpZXM6OmRlY29kZSk6CisgICAgICAgIChXZWJL
aXQ6OlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHkgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRBbmltYXRpb25OYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6YW5pbWF0aW9uTmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6Om9wZXJhdG9yPDwpOgorCiAyMDIxLTEwLTA2ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQg
ZGVjbGFyZSBKUyBUeXBlZEFycmF5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRleCA5ZDQ0ZjZhYjM4MGM4ODY2NjM0
ZjNiZjc0MDllZWM3ZjM5YjQ4ZDg3Li4yYmNjNjBmZDcwNTY4ZTcxNmZlMWQzMjAxOTdmN2I1YmU2
NTNmNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuaApAQCAtNDg3LDcgKzQ4Nyw5IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAsIG1faW5kZXgoaW5kZXgpCiAgICAgICAgICAgICAsIG1fc3ViSW5kZXgoc3ViSW5kZXgp
CiAgICAgICAgICAgICAsIG1fdGltZU9mZnNldCh0aW1lT2Zmc2V0KQotICAgICAgICB7IH0KKyAg
ICAgICAgeworICAgICAgICAgICAgbV9hbmltYXRpb24tPnNldEFuaW1hdGlvbk5hbWUobV9uYW1l
KTsKKyAgICAgICAgfQogCiAgICAgICAgIFN0cmluZyBhbmltYXRpb25JZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbWFrZVN0cmluZyhtX25hbWUsICdfJywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KG1fcHJvcGVydHkpLCAnXycsIG1faW5kZXgsICdfJywgbV9zdWJJbmRleCk7IH0KICAgICAgICAg
c3RkOjpvcHRpb25hbDxTZWNvbmRzPiBjb21wdXRlZEJlZ2luVGltZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5p
bWF0aW9uLmgKaW5kZXggYjU2ODBmOTlmM2M0M2IzZDI3ZTliMDdlMGQ5Y2YxMTVkZDEwNjlhOC4u
ZDhmZmE2MmFhZmI0NWJhYzEyNDM3NmRhODUwMjViZDhkMmU4NjdkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRp
b24uaApAQCAtMTE5LDYgKzExOSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGlt
aW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiwgYm9vbCBy
ZXZlcnNlID0gZmFsc2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29weVRpbWluZ0Z1bmN0aW9u
c0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiYpID0gMDsKIAorICAgIHZpcnR1YWwgdm9p
ZCBzZXRBbmltYXRpb25OYW1lKGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBhbmltYXRpb25OYW1lKCkgPSAwOworCiAgICAgLy8gQW5pbWF0aW9uIGdyb3VwIHByb3BlcnRp
ZXMuCiAgICAgdmlydHVhbCB2b2lkIHNldEFuaW1hdGlvbnMoY29uc3QgVmVjdG9yPFJlZlB0cjxQ
bGF0Zm9ybUNBQW5pbWF0aW9uPj4mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvcHlBbmltYXRp
b25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUFuaW1hdGlv
bkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0
Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaAppbmRleCA2N2Y4YTYxMGM0Y2E1MmQyMTBiYjQzYzRlMWRj
NWE3NDgwOWMyZjY2Li4wNmQ5MTgwMjA1MmQ5NjQ2NTM0NjA0M2ZkNmRjNDViYTM5ODliMWQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0
Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaApAQCAtNDYsNiArNDYsOCBA
QCBXRUJDT1JFX0VYUE9SVCBDQU1lZGlhVGltaW5nRnVuY3Rpb24qIHRvQ0FNZWRpYVRpbWluZ0Z1
bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aQogYm9vbCBoYXNFeHBsaWNpdEJlZ2luVGltZShDQUFu
aW1hdGlvbiAqKTsKIHZvaWQgc2V0SGFzRXhwbGljaXRCZWdpblRpbWUoQ0FBbmltYXRpb24gKiwg
Ym9vbCk7CiAKK1N0cmluZyBhbmltYXRpb25OYW1lKENBQW5pbWF0aW9uICopOworCiBjbGFzcyBQ
bGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EgZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1DQUFuaW1hdGlv
biB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGUo
QW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKQEAgLTEyMyw2ICsxMjUsOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0
IFRpbWluZ0Z1bmN0aW9uKj4mLCBib29sIHJldmVyc2UgPSBmYWxzZSkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uJikg
b3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldEFuaW1hdGlvbk5hbWUoY29uc3QgU3RyaW5nJikgZmlu
YWw7CisgICAgU3RyaW5nIGFuaW1hdGlvbk5hbWUoKSBmaW5hbDsKKwogICAgIC8vIEFuaW1hdGlv
biBncm91cCBwcm9wZXJ0aWVzLgogICAgIHZvaWQgc2V0QW5pbWF0aW9ucyhjb25zdCBWZWN0b3I8
UmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+PiYpIGZpbmFsOwogICAgIHZvaWQgY29weUFuaW1h
dGlvbnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24mKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FBbmlt
YXRpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29h
L1BsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5tbQppbmRleCA5NjY3NzJmOTQxYjI2OTZjYjc2MjE2
MTAxZTEwM2JhMzExMTFhNGFjLi42YjVkMTU4MDAxMDY2MGI3YjlhMDA0YjI3ZDU5NzhhMjc4OWY5
M2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2Nv
YS9QbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hLm1tCkBAIC0zNyw2
ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNv
bnN0IFdLRXhwbGljaXRCZWdpblRpbWVGbGFnID0gQCJXS1BsYXRmb3JtQ0FBbmltYXRpb25FeHBs
aWNpdEJlZ2luVGltZUZsYWciOworY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgV0tBbmltYXRp
b25OYW1lS2V5ID0gQCJXS1BsYXRmb3JtQ0FBbmltYXRpb25BbmltYXRpb25OYW1lIjsKIAogYm9v
bCBoYXNFeHBsaWNpdEJlZ2luVGltZShDQUFuaW1hdGlvbiAqYW5pbWF0aW9uKQogewpAQCAtNDcs
NyArNDgsMTIgQEAgdm9pZCBzZXRIYXNFeHBsaWNpdEJlZ2luVGltZShDQUFuaW1hdGlvbiAqYW5p
bWF0aW9uLCBib29sIHZhbHVlKQogewogICAgIFthbmltYXRpb24gc2V0VmFsdWU6W05TTnVtYmVy
IG51bWJlcldpdGhCb29sOnZhbHVlXSBmb3JLZXk6V0tFeHBsaWNpdEJlZ2luVGltZUZsYWddOwog
fQotICAgIAorCitTdHJpbmcgYW5pbWF0aW9uTmFtZShDQUFuaW1hdGlvbiAqYW5pbWF0aW9uKQor
eworICAgIHJldHVybiBbYW5pbWF0aW9uIHZhbHVlRm9yS2V5OldLQW5pbWF0aW9uTmFtZUtleV07
Cit9CisKIE5TU3RyaW5nKiB0b0NBRmlsbE1vZGVUeXBlKFBsYXRmb3JtQ0FBbmltYXRpb246OkZp
bGxNb2RlVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewpAQCAtNTc0LDYgKzU4MCwx
NiBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6Y29weVRpbWluZ0Z1bmN0aW9uc0Zy
b20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbgogICAgIFtzdGF0aWNfY2FzdDxDQUtleWZyYW1l
QW5pbWF0aW9uICo+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRUaW1pbmdGdW5jdGlvbnM6W290aGVy
IHRpbWluZ0Z1bmN0aW9uc11dOwogfQogCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6
c2V0QW5pbWF0aW9uTmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgW21fYW5pbWF0aW9u
IHNldFZhbHVlOm5hbWUgZm9yS2V5OldLQW5pbWF0aW9uTmFtZUtleV07Cit9CisKK1N0cmluZyBQ
bGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OmFuaW1hdGlvbk5hbWUoKQoreworICAgIHJldHVybiBX
ZWJDb3JlOjphbmltYXRpb25OYW1lKG1fYW5pbWF0aW9uLmdldCgpKTsKK30KKwogdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OnNldEFuaW1hdGlvbnMoY29uc3QgVmVjdG9yPFJlZlB0cjxQ
bGF0Zm9ybUNBQW5pbWF0aW9uPj4mIHZhbHVlKQogewogICAgIEFTU0VSVChhbmltYXRpb25UeXBl
KCkgPT0gR3JvdXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbQppbmRleCBjMDhi
YjA3NDk0NjEyNmRmNTY5YTg0MWQwYjU2MWZhOTY3NTdhMzY0Li41OGNiMTRlNWIxNjNiNDIwMmY3
ZDMwNGRlOThhMDAwYTNiZWU1NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5t
bQpAQCAtMTU5LDE5ICsxNTksMTAgQEAgLSAodm9pZClhbmltYXRpb25EaWRTdG9wOihDQUFuaW1h
dGlvbiAqKWFuaW1hdGlvbiBmaW5pc2hlZDooQk9PTClmaW5pc2hlZAogCiAgICAgaWYgKCFtX293
bmVyKQogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgQ0FMYXllciAqbGF5ZXIgPSBtX293bmVy
LT5wbGF0Zm9ybUxheWVyKCk7CiAKLSAgICBTdHJpbmcgYW5pbWF0aW9uS2V5OwotICAgIGZvciAo
TlNTdHJpbmcgKmtleSBpbiBbbGF5ZXIgYW5pbWF0aW9uS2V5c10pIHsKLSAgICAgICAgaWYgKFts
YXllciBhbmltYXRpb25Gb3JLZXk6a2V5XSA9PSBhbmltYXRpb24pIHsKLSAgICAgICAgICAgIGFu
aW1hdGlvbktleSA9IGtleTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgaWYgKCFhbmltYXRpb25LZXkuaXNFbXB0eSgpKQotICAgICAgICBtX293bmVyLT5hbmlt
YXRpb25FbmRlZChhbmltYXRpb25LZXkpOworICAgIFN0cmluZyBuYW1lID0gYW5pbWF0aW9uTmFt
ZShhbmltYXRpb24pOworICAgIGlmICghbmFtZS5pc0VtcHR5KCkpCisgICAgICAgIG1fb3duZXIt
PmFuaW1hdGlvbkVuZGVkKG5hbWUpOwogfQogCiAtICh2b2lkKXNldE93bmVyOihXZWJDb3JlOjpQ
bGF0Zm9ybUNBTGF5ZXIqKW93bmVyCkBAIC01MzAsMTMgKzUyMSwyMSBAQCB2b2lkIFBsYXRmb3Jt
Q0FMYXllckNvY29hOjphZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIFBsYXRm
b3JtQ0FBbmltYQogICAgICAgICBbd2ViQW5pbWF0aW9uRGVsZWdhdGUgc2V0T3duZXI6dGhpc107
CiAgICAgICAgIG1fZGVsZWdhdGUgPSBXVEZNb3ZlKHdlYkFuaW1hdGlvbkRlbGVnYXRlKTsKICAg
ICB9Ci0gICAgCi0gICAgQ0FBbmltYXRpb24gKnByb3BlcnR5QW5pbWF0aW9uID0gc3RhdGljX2Nh
c3Q8Q0FBbmltYXRpb24gKj4oZG93bmNhc3Q8UGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hPihhbmlt
YXRpb24pLnBsYXRmb3JtQW5pbWF0aW9uKCkpOwotICAgIGlmICghW3Byb3BlcnR5QW5pbWF0aW9u
IGRlbGVnYXRlXSkKLSAgICAgICAgW3Byb3BlcnR5QW5pbWF0aW9uIHNldERlbGVnYXRlOnN0YXRp
Y19jYXN0PGlkPihtX2RlbGVnYXRlLmdldCgpKV07CisKKyAgICBDQUFuaW1hdGlvbiAqY2FBbmlt
YXRpb24gPSBzdGF0aWNfY2FzdDxDQUFuaW1hdGlvbiAqPihkb3duY2FzdDxQbGF0Zm9ybUNBQW5p
bWF0aW9uQ29jb2E+KGFuaW1hdGlvbikucGxhdGZvcm1BbmltYXRpb24oKSk7CisKKyAgICBpZiAo
IVtjYUFuaW1hdGlvbiBkZWxlZ2F0ZV0pCisgICAgICAgIFtjYUFuaW1hdGlvbiBzZXREZWxlZ2F0
ZTpzdGF0aWNfY2FzdDxpZD4obV9kZWxlZ2F0ZS5nZXQoKSldOworCisgICAgaWYgKFtjYUFuaW1h
dGlvbiBpc0tpbmRPZkNsYXNzOltDQUFuaW1hdGlvbkdyb3VwIGNsYXNzXV0pIHsKKyAgICAgICAg
Zm9yIChDQUFuaW1hdGlvbiAqZ3JvdXBlZEFuaW1hdGlvbiBpbiAoKENBQW5pbWF0aW9uR3JvdXAg
KiljYUFuaW1hdGlvbikuYW5pbWF0aW9ucykgeworICAgICAgICAgICAgaWYgKCFbZ3JvdXBlZEFu
aW1hdGlvbiBkZWxlZ2F0ZV0pCisgICAgICAgICAgICAgICAgW2dyb3VwZWRBbmltYXRpb24gc2V0
RGVsZWdhdGU6c3RhdGljX2Nhc3Q8aWQ+KG1fZGVsZWdhdGUuZ2V0KCkpXTsKKyAgICAgICAgfQor
ICAgIH0KIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyIGFk
ZEFuaW1hdGlvbjpwcm9wZXJ0eUFuaW1hdGlvbiBmb3JLZXk6a2V5XTsKKyAgICBbbV9sYXllciBh
ZGRBbmltYXRpb246Y2FBbmltYXRpb24gZm9yS2V5OmtleV07CiAgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGUuaAppbmRleCA2YTI4YWU5N2Y4NjFmNGY1YmNiMWM5MzRhYmYwMjg5ZmIwYTAw
YjQ4Li4xODU5MDk0ZjE5ZGFkZDk2YWQyN2IzZGY5MmNkMDBiMDI4M2JlZjhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgKQEAgLTExOSw2
ICsxMTksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVj
dG9yPGNvbnN0IFdlYkNvcmU6OlRpbWluZ0Z1bmN0aW9uKj4mLCBib29sIHJldmVyc2UgPSBmYWxz
ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBXZWJD
b3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uJikgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldEFuaW1h
dGlvbk5hbWUoY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgU3RyaW5nIGFuaW1hdGlvbk5hbWUo
KSBmaW5hbDsKKwogICAgIC8vIEFuaW1hdGlvbiBncm91cCBwcm9wZXJ0aWVzLgogICAgIHZvaWQg
c2V0QW5pbWF0aW9ucyhjb25zdCBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+PiYp
IGZpbmFsOwogICAgIHZvaWQgY29weUFuaW1hdGlvbnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmlt
YXRpb24mKSBmaW5hbDsKQEAgLTE1NCw2ICsxNTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFByb3BlcnRpZXM+IGRlY29kZShJUEM6OkRlY29kZXImKTsKIAogICAg
ICAgICBTdHJpbmcga2V5UGF0aDsKKyAgICAgICAgU3RyaW5nIG5hbWU7CiAgICAgICAgIFBsYXRm
b3JtQ0FBbmltYXRpb246OkFuaW1hdGlvblR5cGUgYW5pbWF0aW9uVHlwZTsKIAogICAgICAgICBD
RlRpbWVJbnRlcnZhbCBiZWdpblRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCmluZGV4IDZkODY2MTdlMWExN2Q4M2QwNDdiMTM5MjMx
NWVmOTk1MTUxYjlkYTAuLjNiN2YwOWVkNzE3MjVhYTBlNTVkZTFjNDczZTZhNjRiYmUxZWE4MmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
Lm1tCkBAIC0xNTgsNiArMTU4LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFRpbWlu
Z0Z1bmN0aW9uPj4gZGVjb2RlVGltaW5nRnVuY3Rpb24oSVBDOjpEZWNvZGVyJgogdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwga2V5UGF0aDsKKyAgICBlbmNvZGVyIDw8
IG5hbWU7CiAgICAgZW5jb2RlciA8PCBhbmltYXRpb25UeXBlOwogCiAgICAgZW5jb2RlciA8PCBi
ZWdpblRpbWU7CkBAIC0xOTYsNiArMTk3LDkgQEAgc3RkOjpvcHRpb25hbDxQbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzPiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjoKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMua2V5UGF0aCkpCiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMubmFt
ZSkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHByb3BlcnRpZXMuYW5pbWF0aW9uVHlwZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAKQEAgLTI4Miw2ICsyODYsNyBAQCBSZWY8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weSgpIGNvbnN0CiB7CiAgICAgYXV0byBhbmltYXRpb24g
PSBjcmVhdGUoYW5pbWF0aW9uVHlwZSgpLCBrZXlQYXRoKCkpOwogICAgIAorICAgIGFuaW1hdGlv
bi0+c2V0TmFtZShuYW1lKCkpOwogICAgIGFuaW1hdGlvbi0+c2V0QmVnaW5UaW1lKGJlZ2luVGlt
ZSgpKTsKICAgICBhbmltYXRpb24tPnNldER1cmF0aW9uKGR1cmF0aW9uKCkpOwogICAgIGFuaW1h
dGlvbi0+c2V0U3BlZWQoc3BlZWQoKSk7CkBAIC02NjMsNiArNjY4LDE2IEBAIHZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZv
cm1DQUFuaW1hdGlvCiAgICAgbV9wcm9wZXJ0aWVzLnJldmVyc2VUaW1pbmdGdW5jdGlvbnMgPSBv
dGhlci5tX3Byb3BlcnRpZXMucmV2ZXJzZVRpbWluZ0Z1bmN0aW9uczsKIH0KIAordm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRBbmltYXRpb25OYW1lKGNvbnN0IFN0cmluZyYgbmFt
ZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMubmFtZSA9IG5hbWU7Cit9CisKK1N0cmluZyBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlOjphbmltYXRpb25OYW1lKCkKK3sKKyAgICByZXR1cm4gbV9wcm9w
ZXJ0aWVzLm5hbWU7Cit9CisKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0QW5p
bWF0aW9ucyhjb25zdCBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+PiYgdmFsdWVz
KQogewogICAgIG1fcHJvcGVydGllcy5hbmltYXRpb25zID0gdmFsdWVzLm1hcChbXShhdXRvJiB2
YWx1ZSkgewpAQCAtODMzLDYgKzg0OCw4IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYgdHMsIGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OlByb3BlcnRpCiAgICAg
dHMgPDwgYW5pbWF0aW9uLmFuaW1hdGlvblR5cGU7CiAgICAgdHMgPDwgIiBrZXlQYXRoPSI7CiAg
ICAgdHMgPDwgYW5pbWF0aW9uLmtleVBhdGg7CisgICAgdHMgPDwgIiBuYW1lPSI7CisgICAgdHMg
PDwgYW5pbWF0aW9uLm5hbWU7CiAKICAgICBpZiAoYW5pbWF0aW9uLmJlZ2luVGltZSkKICAgICAg
ICAgdHMuZHVtcFByb3BlcnR5KCJiZWdpblRpbWUiLCBhbmltYXRpb24uYmVnaW5UaW1lKTsK
</data>
<flag name="commit-queue"
          id="464447"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440498</attachid>
            <date>2021-10-07 06:21:35 -0700</date>
            <delta_ts>2021-10-07 06:55:29 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-231358-20211007152133.patch</filename>
            <type>text/plain</type>
            <size>13353</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAwMTVhYjEzYjkwZjY1
MWQ5ZmI5Y2YxNGEyMzhiZTYzZWExNTU0OC4uMjk3MzUzYWZjYzFmNmY4ZTNiYjg4OWM4NDJiNGIz
YjMzMTE0YmI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEwLTA3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI3
MjIwMSk6IFNhZmFyaSBzaG93ZWQgcmVkIGRpc3RvcnRpb24gb24gd2VidmlldyBhZnRlciB1c2lu
ZyBXZWIgSW5zcGVjdG9yLCByZXR1cm5pbmcgZnJvbSBhbm90aGVyIGFwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMzU4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MTUwNTIwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbiByMjcyMjAxIHdlIHN0YXJ0ZWQgd3JhcHBpbmcgQ0EgYW5pbWF0aW9u
cyBpbiBDQUFuaW1hdGlvbkdyb3VwIG9iamVjdHMuIFRoaXMgYnJva2UgdGhlIGxvb2t1cCBiYXNl
ZCBvbiBhbmltYXRpb24KKyAgICAgICAga2V5cyBwZXJmb3JtZWQgaW4gdGhlIGFuaW1hdGlvbkRp
ZFN0b3A6ZmluaXNoZWQ6IGRlbGVnYXRlIHNpbmNlIHRoZSBhbmltYXRpb25zIHdvdWxkIG5vdCBu
ZWNlc3NhcmlseSBiZSBmb3VuZCB3aGVuCisgICAgICAgIGNhbGxpbmcgLVtDQUxheWVyIGFuaW1h
dGlvbktleXNdIGFzIHRoZXkgd2VyZSBub3cgbmVzdGVkIGluIGEgQ0FBbmltYXRpb25Hcm91cC4K
KyAgICAgICAgCisgICAgICAgIFRvIGFkZHJlc3MgdGhpcywgd2Ugc2V0IHRoZSBkZWxlZ2F0ZSBv
biBhbGwgYW5pbWF0aW9ucyBncm91cGVkIGluIGEgQ0FBbmltYXRpb25Hcm91cCB3aGVuIGNhbGxp
bmcKKyAgICAgICAgUGxhdGZvcm1DQUxheWVyQ29jb2E6OmFkZEFuaW1hdGlvbkZvcktleSgpIGFu
ZCBzZXQgYSBuYW1lIG9uIGFsbCBnZW5lcmF0ZWQgQ0FBbmltYXRpb24gb2JqZWN0cyB3aGVuCisg
ICAgICAgIGNyZWF0aW5nIGEgTGF5ZXJQcm9wZXJ0eUFuaW1hdGlvbiB1c2luZyBzZXRWYWx1ZTpm
b3JLZXk6IG9uIHRoZSBhbmltYXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6
TGF5ZXJQcm9wZXJ0eUFuaW1hdGlvbjo6TGF5ZXJQcm9wZXJ0eUFuaW1hdGlvbik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FBbmltYXRpb25D
b2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmFuaW1hdGlvbk5hbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hOjpzZXRBbmltYXRpb25OYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6YW5pbWF0aW9uTmFtZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2Eu
bW06CisgICAgICAgICgtW1dlYkFuaW1hdGlvbkRlbGVnYXRlIGFuaW1hdGlvbkRpZFN0b3A6Zmlu
aXNoZWQ6XSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6YWRkQW5p
bWF0aW9uRm9yS2V5KToKKwogMjAyMS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkIGRlY2xhcmUgSlMgVHlw
ZWRBcnJheXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZjNjNjcwZjJmOWUxMWNkNWI0YjE2ZjUyZDU0MjdhM2M1NTQw
NTBmOS4uZmY1YTBhZGEwODRjMDJlYWQzMTczZDFjM2E0NzI0YzY3NTgxNDliMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAyMS0xMC0wNyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIyNzIyMDEpOiBTYWZhcmkgc2hvd2VkIHJl
ZCBkaXN0b3J0aW9uIG9uIHdlYnZpZXcgYWZ0ZXIgdXNpbmcgV2ViIEluc3BlY3RvciwgcmV0dXJu
aW5nIGZyb20gYW5vdGhlciBhcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMTM1OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODE1MDUyMDg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGUubW06CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGU6OlByb3BlcnRpZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGU6OlByb3BlcnRpZXM6OmRlY29kZSk6CisgICAgICAgIChXZWJL
aXQ6OlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHkgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRBbmltYXRpb25OYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6YW5pbWF0aW9uTmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6Om9wZXJhdG9yPDwpOgorCiAyMDIxLTEwLTA2ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQg
ZGVjbGFyZSBKUyBUeXBlZEFycmF5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRleCA5ZDQ0ZjZhYjM4MGM4ODY2NjM0
ZjNiZjc0MDllZWM3ZjM5YjQ4ZDg3Li4yYmNjNjBmZDcwNTY4ZTcxNmZlMWQzMjAxOTdmN2I1YmU2
NTNmNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuaApAQCAtNDg3LDcgKzQ4Nyw5IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAsIG1faW5kZXgoaW5kZXgpCiAgICAgICAgICAgICAsIG1fc3ViSW5kZXgoc3ViSW5kZXgp
CiAgICAgICAgICAgICAsIG1fdGltZU9mZnNldCh0aW1lT2Zmc2V0KQotICAgICAgICB7IH0KKyAg
ICAgICAgeworICAgICAgICAgICAgbV9hbmltYXRpb24tPnNldEFuaW1hdGlvbk5hbWUobV9uYW1l
KTsKKyAgICAgICAgfQogCiAgICAgICAgIFN0cmluZyBhbmltYXRpb25JZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbWFrZVN0cmluZyhtX25hbWUsICdfJywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KG1fcHJvcGVydHkpLCAnXycsIG1faW5kZXgsICdfJywgbV9zdWJJbmRleCk7IH0KICAgICAgICAg
c3RkOjpvcHRpb25hbDxTZWNvbmRzPiBjb21wdXRlZEJlZ2luVGltZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5p
bWF0aW9uLmgKaW5kZXggYjU2ODBmOTlmM2M0M2IzZDI3ZTliMDdlMGQ5Y2YxMTVkZDEwNjlhOC4u
ZDhmZmE2MmFhZmI0NWJhYzEyNDM3NmRhODUwMjViZDhkMmU4NjdkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRp
b24uaApAQCAtMTE5LDYgKzExOSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGlt
aW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiwgYm9vbCBy
ZXZlcnNlID0gZmFsc2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29weVRpbWluZ0Z1bmN0aW9u
c0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiYpID0gMDsKIAorICAgIHZpcnR1YWwgdm9p
ZCBzZXRBbmltYXRpb25OYW1lKGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBhbmltYXRpb25OYW1lKCkgPSAwOworCiAgICAgLy8gQW5pbWF0aW9uIGdyb3VwIHByb3BlcnRp
ZXMuCiAgICAgdmlydHVhbCB2b2lkIHNldEFuaW1hdGlvbnMoY29uc3QgVmVjdG9yPFJlZlB0cjxQ
bGF0Zm9ybUNBQW5pbWF0aW9uPj4mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvcHlBbmltYXRp
b25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUFuaW1hdGlv
bkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0
Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaAppbmRleCA2N2Y4YTYxMGM0Y2E1MmQyMTBiYjQzYzRlMWRj
NWE3NDgwOWMyZjY2Li4wNmQ5MTgwMjA1MmQ5NjQ2NTM0NjA0M2ZkNmRjNDViYTM5ODliMWQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0
Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaApAQCAtNDYsNiArNDYsOCBA
QCBXRUJDT1JFX0VYUE9SVCBDQU1lZGlhVGltaW5nRnVuY3Rpb24qIHRvQ0FNZWRpYVRpbWluZ0Z1
bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aQogYm9vbCBoYXNFeHBsaWNpdEJlZ2luVGltZShDQUFu
aW1hdGlvbiAqKTsKIHZvaWQgc2V0SGFzRXhwbGljaXRCZWdpblRpbWUoQ0FBbmltYXRpb24gKiwg
Ym9vbCk7CiAKK1N0cmluZyBhbmltYXRpb25OYW1lKENBQW5pbWF0aW9uICopOworCiBjbGFzcyBQ
bGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EgZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1DQUFuaW1hdGlv
biB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGUo
QW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKQEAgLTEyMyw2ICsxMjUsOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0
IFRpbWluZ0Z1bmN0aW9uKj4mLCBib29sIHJldmVyc2UgPSBmYWxzZSkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uJikg
b3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldEFuaW1hdGlvbk5hbWUoY29uc3QgU3RyaW5nJikgZmlu
YWw7CisgICAgU3RyaW5nIGFuaW1hdGlvbk5hbWUoKSBmaW5hbDsKKwogICAgIC8vIEFuaW1hdGlv
biBncm91cCBwcm9wZXJ0aWVzLgogICAgIHZvaWQgc2V0QW5pbWF0aW9ucyhjb25zdCBWZWN0b3I8
UmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+PiYpIGZpbmFsOwogICAgIHZvaWQgY29weUFuaW1h
dGlvbnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24mKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FBbmlt
YXRpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29h
L1BsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5tbQppbmRleCA5NjY3NzJmOTQxYjI2OTZjYjc2MjE2
MTAxZTEwM2JhMzExMTFhNGFjLi42YjVkMTU4MDAxMDY2MGI3YjlhMDA0YjI3ZDU5NzhhMjc4OWY5
M2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2Nv
YS9QbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hLm1tCkBAIC0zNyw2
ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0ZXhwciBOU1N0cmluZyAqIGNv
bnN0IFdLRXhwbGljaXRCZWdpblRpbWVGbGFnID0gQCJXS1BsYXRmb3JtQ0FBbmltYXRpb25FeHBs
aWNpdEJlZ2luVGltZUZsYWciOworY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgV0tBbmltYXRp
b25OYW1lS2V5ID0gQCJXS1BsYXRmb3JtQ0FBbmltYXRpb25BbmltYXRpb25OYW1lIjsKIAogYm9v
bCBoYXNFeHBsaWNpdEJlZ2luVGltZShDQUFuaW1hdGlvbiAqYW5pbWF0aW9uKQogewpAQCAtNDcs
NyArNDgsMTIgQEAgdm9pZCBzZXRIYXNFeHBsaWNpdEJlZ2luVGltZShDQUFuaW1hdGlvbiAqYW5p
bWF0aW9uLCBib29sIHZhbHVlKQogewogICAgIFthbmltYXRpb24gc2V0VmFsdWU6W05TTnVtYmVy
IG51bWJlcldpdGhCb29sOnZhbHVlXSBmb3JLZXk6V0tFeHBsaWNpdEJlZ2luVGltZUZsYWddOwog
fQotICAgIAorCitTdHJpbmcgYW5pbWF0aW9uTmFtZShDQUFuaW1hdGlvbiAqYW5pbWF0aW9uKQor
eworICAgIHJldHVybiBbYW5pbWF0aW9uIHZhbHVlRm9yS2V5OldLQW5pbWF0aW9uTmFtZUtleV07
Cit9CisKIE5TU3RyaW5nKiB0b0NBRmlsbE1vZGVUeXBlKFBsYXRmb3JtQ0FBbmltYXRpb246OkZp
bGxNb2RlVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewpAQCAtNTc0LDYgKzU4MCwx
NiBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6Y29weVRpbWluZ0Z1bmN0aW9uc0Zy
b20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbgogICAgIFtzdGF0aWNfY2FzdDxDQUtleWZyYW1l
QW5pbWF0aW9uICo+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRUaW1pbmdGdW5jdGlvbnM6W290aGVy
IHRpbWluZ0Z1bmN0aW9uc11dOwogfQogCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6
c2V0QW5pbWF0aW9uTmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgW21fYW5pbWF0aW9u
IHNldFZhbHVlOm5hbWUgZm9yS2V5OldLQW5pbWF0aW9uTmFtZUtleV07Cit9CisKK1N0cmluZyBQ
bGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OmFuaW1hdGlvbk5hbWUoKQoreworICAgIHJldHVybiBX
ZWJDb3JlOjphbmltYXRpb25OYW1lKG1fYW5pbWF0aW9uLmdldCgpKTsKK30KKwogdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OnNldEFuaW1hdGlvbnMoY29uc3QgVmVjdG9yPFJlZlB0cjxQ
bGF0Zm9ybUNBQW5pbWF0aW9uPj4mIHZhbHVlKQogewogICAgIEFTU0VSVChhbmltYXRpb25UeXBl
KCkgPT0gR3JvdXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbQppbmRleCBjMDhi
YjA3NDk0NjEyNmRmNTY5YTg0MWQwYjU2MWZhOTY3NTdhMzY0Li41OGNiMTRlNWIxNjNiNDIwMmY3
ZDMwNGRlOThhMDAwYTNiZWU1NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5t
bQpAQCAtMTU5LDE5ICsxNTksMTAgQEAgLSAodm9pZClhbmltYXRpb25EaWRTdG9wOihDQUFuaW1h
dGlvbiAqKWFuaW1hdGlvbiBmaW5pc2hlZDooQk9PTClmaW5pc2hlZAogCiAgICAgaWYgKCFtX293
bmVyKQogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgQ0FMYXllciAqbGF5ZXIgPSBtX293bmVy
LT5wbGF0Zm9ybUxheWVyKCk7CiAKLSAgICBTdHJpbmcgYW5pbWF0aW9uS2V5OwotICAgIGZvciAo
TlNTdHJpbmcgKmtleSBpbiBbbGF5ZXIgYW5pbWF0aW9uS2V5c10pIHsKLSAgICAgICAgaWYgKFts
YXllciBhbmltYXRpb25Gb3JLZXk6a2V5XSA9PSBhbmltYXRpb24pIHsKLSAgICAgICAgICAgIGFu
aW1hdGlvbktleSA9IGtleTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgaWYgKCFhbmltYXRpb25LZXkuaXNFbXB0eSgpKQotICAgICAgICBtX293bmVyLT5hbmlt
YXRpb25FbmRlZChhbmltYXRpb25LZXkpOworICAgIFN0cmluZyBuYW1lID0gYW5pbWF0aW9uTmFt
ZShhbmltYXRpb24pOworICAgIGlmICghbmFtZS5pc0VtcHR5KCkpCisgICAgICAgIG1fb3duZXIt
PmFuaW1hdGlvbkVuZGVkKG5hbWUpOwogfQogCiAtICh2b2lkKXNldE93bmVyOihXZWJDb3JlOjpQ
bGF0Zm9ybUNBTGF5ZXIqKW93bmVyCkBAIC01MzAsMTMgKzUyMSwyMSBAQCB2b2lkIFBsYXRmb3Jt
Q0FMYXllckNvY29hOjphZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIFBsYXRm
b3JtQ0FBbmltYQogICAgICAgICBbd2ViQW5pbWF0aW9uRGVsZWdhdGUgc2V0T3duZXI6dGhpc107
CiAgICAgICAgIG1fZGVsZWdhdGUgPSBXVEZNb3ZlKHdlYkFuaW1hdGlvbkRlbGVnYXRlKTsKICAg
ICB9Ci0gICAgCi0gICAgQ0FBbmltYXRpb24gKnByb3BlcnR5QW5pbWF0aW9uID0gc3RhdGljX2Nh
c3Q8Q0FBbmltYXRpb24gKj4oZG93bmNhc3Q8UGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hPihhbmlt
YXRpb24pLnBsYXRmb3JtQW5pbWF0aW9uKCkpOwotICAgIGlmICghW3Byb3BlcnR5QW5pbWF0aW9u
IGRlbGVnYXRlXSkKLSAgICAgICAgW3Byb3BlcnR5QW5pbWF0aW9uIHNldERlbGVnYXRlOnN0YXRp
Y19jYXN0PGlkPihtX2RlbGVnYXRlLmdldCgpKV07CisKKyAgICBDQUFuaW1hdGlvbiAqY2FBbmlt
YXRpb24gPSBzdGF0aWNfY2FzdDxDQUFuaW1hdGlvbiAqPihkb3duY2FzdDxQbGF0Zm9ybUNBQW5p
bWF0aW9uQ29jb2E+KGFuaW1hdGlvbikucGxhdGZvcm1BbmltYXRpb24oKSk7CisKKyAgICBpZiAo
IVtjYUFuaW1hdGlvbiBkZWxlZ2F0ZV0pCisgICAgICAgIFtjYUFuaW1hdGlvbiBzZXREZWxlZ2F0
ZTpzdGF0aWNfY2FzdDxpZD4obV9kZWxlZ2F0ZS5nZXQoKSldOworCisgICAgaWYgKFtjYUFuaW1h
dGlvbiBpc0tpbmRPZkNsYXNzOltDQUFuaW1hdGlvbkdyb3VwIGNsYXNzXV0pIHsKKyAgICAgICAg
Zm9yIChDQUFuaW1hdGlvbiAqZ3JvdXBlZEFuaW1hdGlvbiBpbiAoKENBQW5pbWF0aW9uR3JvdXAg
KiljYUFuaW1hdGlvbikuYW5pbWF0aW9ucykgeworICAgICAgICAgICAgaWYgKCFbZ3JvdXBlZEFu
aW1hdGlvbiBkZWxlZ2F0ZV0pCisgICAgICAgICAgICAgICAgW2dyb3VwZWRBbmltYXRpb24gc2V0
RGVsZWdhdGU6c3RhdGljX2Nhc3Q8aWQ+KG1fZGVsZWdhdGUuZ2V0KCkpXTsKKyAgICAgICAgfQor
ICAgIH0KIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyIGFk
ZEFuaW1hdGlvbjpwcm9wZXJ0eUFuaW1hdGlvbiBmb3JLZXk6a2V5XTsKKyAgICBbbV9sYXllciBh
ZGRBbmltYXRpb246Y2FBbmltYXRpb24gZm9yS2V5OmtleV07CiAgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGUuaAppbmRleCA2YTI4YWU5N2Y4NjFmNGY1YmNiMWM5MzRhYmYwMjg5ZmIwYTAw
YjQ4Li4xODU5MDk0ZjE5ZGFkZDk2YWQyN2IzZGY5MmNkMDBiMDI4M2JlZjhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgKQEAgLTExOSw2
ICsxMTksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVj
dG9yPGNvbnN0IFdlYkNvcmU6OlRpbWluZ0Z1bmN0aW9uKj4mLCBib29sIHJldmVyc2UgPSBmYWxz
ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBXZWJD
b3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uJikgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldEFuaW1h
dGlvbk5hbWUoY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgU3RyaW5nIGFuaW1hdGlvbk5hbWUo
KSBmaW5hbDsKKwogICAgIC8vIEFuaW1hdGlvbiBncm91cCBwcm9wZXJ0aWVzLgogICAgIHZvaWQg
c2V0QW5pbWF0aW9ucyhjb25zdCBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+PiYp
IGZpbmFsOwogICAgIHZvaWQgY29weUFuaW1hdGlvbnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmlt
YXRpb24mKSBmaW5hbDsKQEAgLTE1NCw2ICsxNTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFByb3BlcnRpZXM+IGRlY29kZShJUEM6OkRlY29kZXImKTsKIAogICAg
ICAgICBTdHJpbmcga2V5UGF0aDsKKyAgICAgICAgU3RyaW5nIG5hbWU7CiAgICAgICAgIFBsYXRm
b3JtQ0FBbmltYXRpb246OkFuaW1hdGlvblR5cGUgYW5pbWF0aW9uVHlwZTsKIAogICAgICAgICBD
RlRpbWVJbnRlcnZhbCBiZWdpblRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCmluZGV4IDZkODY2MTdlMWExN2Q4M2QwNDdiMTM5MjMx
NWVmOTk1MTUxYjlkYTAuLmRkODQwNDQ0MjkyOTg0MmZjY2RmOWM3MTY2MTg0NzcyODZmMzcwYmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
Lm1tCkBAIC0xNTgsNiArMTU4LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFRpbWlu
Z0Z1bmN0aW9uPj4gZGVjb2RlVGltaW5nRnVuY3Rpb24oSVBDOjpEZWNvZGVyJgogdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwga2V5UGF0aDsKKyAgICBlbmNvZGVyIDw8
IG5hbWU7CiAgICAgZW5jb2RlciA8PCBhbmltYXRpb25UeXBlOwogCiAgICAgZW5jb2RlciA8PCBi
ZWdpblRpbWU7CkBAIC0xOTYsNiArMTk3LDkgQEAgc3RkOjpvcHRpb25hbDxQbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzPiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjoKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMua2V5UGF0aCkpCiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMubmFt
ZSkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHByb3BlcnRpZXMuYW5pbWF0aW9uVHlwZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAKQEAgLTI4Miw2ICsyODYsNyBAQCBSZWY8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weSgpIGNvbnN0CiB7CiAgICAgYXV0byBhbmltYXRpb24g
PSBjcmVhdGUoYW5pbWF0aW9uVHlwZSgpLCBrZXlQYXRoKCkpOwogICAgIAorICAgIGFuaW1hdGlv
bi0+c2V0QW5pbWF0aW9uTmFtZShhbmltYXRpb25OYW1lKCkpOwogICAgIGFuaW1hdGlvbi0+c2V0
QmVnaW5UaW1lKGJlZ2luVGltZSgpKTsKICAgICBhbmltYXRpb24tPnNldER1cmF0aW9uKGR1cmF0
aW9uKCkpOwogICAgIGFuaW1hdGlvbi0+c2V0U3BlZWQoc3BlZWQoKSk7CkBAIC02NjMsNiArNjY4
LDE2IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weVRpbWluZ0Z1bmN0aW9u
c0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvCiAgICAgbV9wcm9wZXJ0aWVzLnJldmVyc2VU
aW1pbmdGdW5jdGlvbnMgPSBvdGhlci5tX3Byb3BlcnRpZXMucmV2ZXJzZVRpbWluZ0Z1bmN0aW9u
czsKIH0KIAordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRBbmltYXRpb25OYW1l
KGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMubmFtZSA9IG5hbWU7Cit9
CisKK1N0cmluZyBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjphbmltYXRpb25OYW1lKCkKK3sK
KyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLm5hbWU7Cit9CisKIHZvaWQgUGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZTo6c2V0QW5pbWF0aW9ucyhjb25zdCBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtQ0FB
bmltYXRpb24+PiYgdmFsdWVzKQogewogICAgIG1fcHJvcGVydGllcy5hbmltYXRpb25zID0gdmFs
dWVzLm1hcChbXShhdXRvJiB2YWx1ZSkgewpAQCAtODMzLDYgKzg0OCw4IEBAIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1v
dGU6OlByb3BlcnRpCiAgICAgdHMgPDwgYW5pbWF0aW9uLmFuaW1hdGlvblR5cGU7CiAgICAgdHMg
PDwgIiBrZXlQYXRoPSI7CiAgICAgdHMgPDwgYW5pbWF0aW9uLmtleVBhdGg7CisgICAgdHMgPDwg
IiBuYW1lPSI7CisgICAgdHMgPDwgYW5pbWF0aW9uLm5hbWU7CiAKICAgICBpZiAoYW5pbWF0aW9u
LmJlZ2luVGltZSkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJiZWdpblRpbWUiLCBhbmltYXRp
b24uYmVnaW5UaW1lKTsK
</data>
<flag name="commit-queue"
          id="464451"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440499</attachid>
            <date>2021-10-07 06:53:49 -0700</date>
            <delta_ts>2021-11-03 07:28:31 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-231358-20211007155347.patch</filename>
            <type>text/plain</type>
            <size>13383</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAwMTVhYjEzYjkwZjY1
MWQ5ZmI5Y2YxNGEyMzhiZTYzZWExNTU0OC4uMjk3MzUzYWZjYzFmNmY4ZTNiYjg4OWM4NDJiNGIz
YjMzMTE0YmI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEwLTA3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI3
MjIwMSk6IFNhZmFyaSBzaG93ZWQgcmVkIGRpc3RvcnRpb24gb24gd2VidmlldyBhZnRlciB1c2lu
ZyBXZWIgSW5zcGVjdG9yLCByZXR1cm5pbmcgZnJvbSBhbm90aGVyIGFwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMzU4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MTUwNTIwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbiByMjcyMjAxIHdlIHN0YXJ0ZWQgd3JhcHBpbmcgQ0EgYW5pbWF0aW9u
cyBpbiBDQUFuaW1hdGlvbkdyb3VwIG9iamVjdHMuIFRoaXMgYnJva2UgdGhlIGxvb2t1cCBiYXNl
ZCBvbiBhbmltYXRpb24KKyAgICAgICAga2V5cyBwZXJmb3JtZWQgaW4gdGhlIGFuaW1hdGlvbkRp
ZFN0b3A6ZmluaXNoZWQ6IGRlbGVnYXRlIHNpbmNlIHRoZSBhbmltYXRpb25zIHdvdWxkIG5vdCBu
ZWNlc3NhcmlseSBiZSBmb3VuZCB3aGVuCisgICAgICAgIGNhbGxpbmcgLVtDQUxheWVyIGFuaW1h
dGlvbktleXNdIGFzIHRoZXkgd2VyZSBub3cgbmVzdGVkIGluIGEgQ0FBbmltYXRpb25Hcm91cC4K
KyAgICAgICAgCisgICAgICAgIFRvIGFkZHJlc3MgdGhpcywgd2Ugc2V0IHRoZSBkZWxlZ2F0ZSBv
biBhbGwgYW5pbWF0aW9ucyBncm91cGVkIGluIGEgQ0FBbmltYXRpb25Hcm91cCB3aGVuIGNhbGxp
bmcKKyAgICAgICAgUGxhdGZvcm1DQUxheWVyQ29jb2E6OmFkZEFuaW1hdGlvbkZvcktleSgpIGFu
ZCBzZXQgYSBuYW1lIG9uIGFsbCBnZW5lcmF0ZWQgQ0FBbmltYXRpb24gb2JqZWN0cyB3aGVuCisg
ICAgICAgIGNyZWF0aW5nIGEgTGF5ZXJQcm9wZXJ0eUFuaW1hdGlvbiB1c2luZyBzZXRWYWx1ZTpm
b3JLZXk6IG9uIHRoZSBhbmltYXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6
TGF5ZXJQcm9wZXJ0eUFuaW1hdGlvbjo6TGF5ZXJQcm9wZXJ0eUFuaW1hdGlvbik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FBbmltYXRpb25D
b2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmFuaW1hdGlvbk5hbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hOjpzZXRBbmltYXRpb25OYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6YW5pbWF0aW9uTmFtZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2Eu
bW06CisgICAgICAgICgtW1dlYkFuaW1hdGlvbkRlbGVnYXRlIGFuaW1hdGlvbkRpZFN0b3A6Zmlu
aXNoZWQ6XSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6YWRkQW5p
bWF0aW9uRm9yS2V5KToKKwogMjAyMS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkIGRlY2xhcmUgSlMgVHlw
ZWRBcnJheXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZjNjNjcwZjJmOWUxMWNkNWI0YjE2ZjUyZDU0MjdhM2M1NTQw
NTBmOS4uZmY1YTBhZGEwODRjMDJlYWQzMTczZDFjM2E0NzI0YzY3NTgxNDliMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAyMS0xMC0wNyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIyNzIyMDEpOiBTYWZhcmkgc2hvd2VkIHJl
ZCBkaXN0b3J0aW9uIG9uIHdlYnZpZXcgYWZ0ZXIgdXNpbmcgV2ViIEluc3BlY3RvciwgcmV0dXJu
aW5nIGZyb20gYW5vdGhlciBhcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMTM1OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODE1MDUyMDg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGUubW06CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGU6OlByb3BlcnRpZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGU6OlByb3BlcnRpZXM6OmRlY29kZSk6CisgICAgICAgIChXZWJL
aXQ6OlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHkgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRBbmltYXRpb25OYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6YW5pbWF0aW9uTmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6Om9wZXJhdG9yPDwpOgorCiAyMDIxLTEwLTA2ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQg
ZGVjbGFyZSBKUyBUeXBlZEFycmF5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRleCA5ZDQ0ZjZhYjM4MGM4ODY2NjM0
ZjNiZjc0MDllZWM3ZjM5YjQ4ZDg3Li4yYmNjNjBmZDcwNTY4ZTcxNmZlMWQzMjAxOTdmN2I1YmU2
NTNmNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuaApAQCAtNDg3LDcgKzQ4Nyw5IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAsIG1faW5kZXgoaW5kZXgpCiAgICAgICAgICAgICAsIG1fc3ViSW5kZXgoc3ViSW5kZXgp
CiAgICAgICAgICAgICAsIG1fdGltZU9mZnNldCh0aW1lT2Zmc2V0KQotICAgICAgICB7IH0KKyAg
ICAgICAgeworICAgICAgICAgICAgbV9hbmltYXRpb24tPnNldEFuaW1hdGlvbk5hbWUobV9uYW1l
KTsKKyAgICAgICAgfQogCiAgICAgICAgIFN0cmluZyBhbmltYXRpb25JZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbWFrZVN0cmluZyhtX25hbWUsICdfJywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KG1fcHJvcGVydHkpLCAnXycsIG1faW5kZXgsICdfJywgbV9zdWJJbmRleCk7IH0KICAgICAgICAg
c3RkOjpvcHRpb25hbDxTZWNvbmRzPiBjb21wdXRlZEJlZ2luVGltZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5p
bWF0aW9uLmgKaW5kZXggYjU2ODBmOTlmM2M0M2IzZDI3ZTliMDdlMGQ5Y2YxMTVkZDEwNjlhOC4u
NmYyZWJjNWU5NDg1MmE2OTE1NzE3ZmM0NDgyMmU3NWYzZDUxYWJiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRp
b24uaApAQCAtMTE5LDYgKzExOSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGlt
aW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiwgYm9vbCBy
ZXZlcnNlID0gZmFsc2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29weVRpbWluZ0Z1bmN0aW9u
c0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiYpID0gMDsKIAorICAgIHZpcnR1YWwgdm9p
ZCBzZXRBbmltYXRpb25OYW1lKGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBhbmltYXRpb25OYW1lKCkgY29uc3QgPSAwOworCiAgICAgLy8gQW5pbWF0aW9uIGdyb3VwIHBy
b3BlcnRpZXMuCiAgICAgdmlydHVhbCB2b2lkIHNldEFuaW1hdGlvbnMoY29uc3QgVmVjdG9yPFJl
ZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPj4mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvcHlB
bmltYXRpb25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uJikgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUFu
aW1hdGlvbkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2Nv
YS9QbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaAppbmRleCA2N2Y4YTYxMGM0Y2E1MmQyMTBiYjQz
YzRlMWRjNWE3NDgwOWMyZjY2Li42ODljOGJkNTVlZWVhNzc2Y2IxNjE3N2JjNDY1ZDIzOTY0ZjM5
ZGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2Nv
YS9QbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaApAQCAtNDYsNiAr
NDYsOCBAQCBXRUJDT1JFX0VYUE9SVCBDQU1lZGlhVGltaW5nRnVuY3Rpb24qIHRvQ0FNZWRpYVRp
bWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aQogYm9vbCBoYXNFeHBsaWNpdEJlZ2luVGlt
ZShDQUFuaW1hdGlvbiAqKTsKIHZvaWQgc2V0SGFzRXhwbGljaXRCZWdpblRpbWUoQ0FBbmltYXRp
b24gKiwgYm9vbCk7CiAKK1N0cmluZyBhbmltYXRpb25OYW1lKENBQW5pbWF0aW9uICopOworCiBj
bGFzcyBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EgZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1DQUFu
aW1hdGlvbiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBj
cmVhdGUoQW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKQEAgLTEyMyw2ICsx
MjUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9y
PGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mLCBib29sIHJldmVyc2UgPSBmYWxzZSkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uJikgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldEFuaW1hdGlvbk5hbWUoY29uc3QgU3RyaW5n
JikgZmluYWw7CisgICAgU3RyaW5nIGFuaW1hdGlvbk5hbWUoKSBjb25zdCBmaW5hbDsKKwogICAg
IC8vIEFuaW1hdGlvbiBncm91cCBwcm9wZXJ0aWVzLgogICAgIHZvaWQgc2V0QW5pbWF0aW9ucyhj
b25zdCBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+PiYpIGZpbmFsOwogICAgIHZv
aWQgY29weUFuaW1hdGlvbnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24mKSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1Bs
YXRmb3JtQ0FBbmltYXRpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5tbQppbmRleCA5NjY3NzJmOTQx
YjI2OTZjYjc2MjE2MTAxZTEwM2JhMzExMTFhNGFjLi5lY2UwMTk4YTQ5NDg4OWRmNzViODZhNzU5
Y2JiZmQxNjAzNDk2ZjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29h
Lm1tCkBAIC0zNyw2ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0ZXhwciBO
U1N0cmluZyAqIGNvbnN0IFdLRXhwbGljaXRCZWdpblRpbWVGbGFnID0gQCJXS1BsYXRmb3JtQ0FB
bmltYXRpb25FeHBsaWNpdEJlZ2luVGltZUZsYWciOworY29uc3RleHByIE5TU3RyaW5nICogY29u
c3QgV0tBbmltYXRpb25OYW1lS2V5ID0gQCJXS1BsYXRmb3JtQ0FBbmltYXRpb25BbmltYXRpb25O
YW1lIjsKIAogYm9vbCBoYXNFeHBsaWNpdEJlZ2luVGltZShDQUFuaW1hdGlvbiAqYW5pbWF0aW9u
KQogewpAQCAtNDcsNyArNDgsMTIgQEAgdm9pZCBzZXRIYXNFeHBsaWNpdEJlZ2luVGltZShDQUFu
aW1hdGlvbiAqYW5pbWF0aW9uLCBib29sIHZhbHVlKQogewogICAgIFthbmltYXRpb24gc2V0VmFs
dWU6W05TTnVtYmVyIG51bWJlcldpdGhCb29sOnZhbHVlXSBmb3JLZXk6V0tFeHBsaWNpdEJlZ2lu
VGltZUZsYWddOwogfQotICAgIAorCitTdHJpbmcgYW5pbWF0aW9uTmFtZShDQUFuaW1hdGlvbiAq
YW5pbWF0aW9uKQoreworICAgIHJldHVybiBbYW5pbWF0aW9uIHZhbHVlRm9yS2V5OldLQW5pbWF0
aW9uTmFtZUtleV07Cit9CisKIE5TU3RyaW5nKiB0b0NBRmlsbE1vZGVUeXBlKFBsYXRmb3JtQ0FB
bmltYXRpb246OkZpbGxNb2RlVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewpAQCAt
NTc0LDYgKzU4MCwxNiBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6Y29weVRpbWlu
Z0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbgogICAgIFtzdGF0aWNfY2Fz
dDxDQUtleWZyYW1lQW5pbWF0aW9uICo+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRUaW1pbmdGdW5j
dGlvbnM6W290aGVyIHRpbWluZ0Z1bmN0aW9uc11dOwogfQogCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25Db2NvYTo6c2V0QW5pbWF0aW9uTmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAg
W21fYW5pbWF0aW9uIHNldFZhbHVlOm5hbWUgZm9yS2V5OldLQW5pbWF0aW9uTmFtZUtleV07Cit9
CisKK1N0cmluZyBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OmFuaW1hdGlvbk5hbWUoKSBjb25z
dAoreworICAgIHJldHVybiBXZWJDb3JlOjphbmltYXRpb25OYW1lKG1fYW5pbWF0aW9uLmdldCgp
KTsKK30KKwogdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OnNldEFuaW1hdGlvbnMoY29u
c3QgVmVjdG9yPFJlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPj4mIHZhbHVlKQogewogICAgIEFT
U0VSVChhbmltYXRpb25UeXBlKCkgPT0gR3JvdXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJD
b2NvYS5tbQppbmRleCBjMDhiYjA3NDk0NjEyNmRmNTY5YTg0MWQwYjU2MWZhOTY3NTdhMzY0Li41
OGNiMTRlNWIxNjNiNDIwMmY3ZDMwNGRlOThhMDAwYTNiZWU1NzgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0
Zm9ybUNBTGF5ZXJDb2NvYS5tbQpAQCAtMTU5LDE5ICsxNTksMTAgQEAgLSAodm9pZClhbmltYXRp
b25EaWRTdG9wOihDQUFuaW1hdGlvbiAqKWFuaW1hdGlvbiBmaW5pc2hlZDooQk9PTClmaW5pc2hl
ZAogCiAgICAgaWYgKCFtX293bmVyKQogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgQ0FMYXll
ciAqbGF5ZXIgPSBtX293bmVyLT5wbGF0Zm9ybUxheWVyKCk7CiAKLSAgICBTdHJpbmcgYW5pbWF0
aW9uS2V5OwotICAgIGZvciAoTlNTdHJpbmcgKmtleSBpbiBbbGF5ZXIgYW5pbWF0aW9uS2V5c10p
IHsKLSAgICAgICAgaWYgKFtsYXllciBhbmltYXRpb25Gb3JLZXk6a2V5XSA9PSBhbmltYXRpb24p
IHsKLSAgICAgICAgICAgIGFuaW1hdGlvbktleSA9IGtleTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCFhbmltYXRpb25LZXkuaXNFbXB0eSgpKQotICAg
ICAgICBtX293bmVyLT5hbmltYXRpb25FbmRlZChhbmltYXRpb25LZXkpOworICAgIFN0cmluZyBu
YW1lID0gYW5pbWF0aW9uTmFtZShhbmltYXRpb24pOworICAgIGlmICghbmFtZS5pc0VtcHR5KCkp
CisgICAgICAgIG1fb3duZXItPmFuaW1hdGlvbkVuZGVkKG5hbWUpOwogfQogCiAtICh2b2lkKXNl
dE93bmVyOihXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqKW93bmVyCkBAIC01MzAsMTMgKzUyMSwy
MSBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllckNvY29hOjphZGRBbmltYXRpb25Gb3JLZXkoY29uc3Qg
U3RyaW5nJiBrZXksIFBsYXRmb3JtQ0FBbmltYQogICAgICAgICBbd2ViQW5pbWF0aW9uRGVsZWdh
dGUgc2V0T3duZXI6dGhpc107CiAgICAgICAgIG1fZGVsZWdhdGUgPSBXVEZNb3ZlKHdlYkFuaW1h
dGlvbkRlbGVnYXRlKTsKICAgICB9Ci0gICAgCi0gICAgQ0FBbmltYXRpb24gKnByb3BlcnR5QW5p
bWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FBbmltYXRpb24gKj4oZG93bmNhc3Q8UGxhdGZvcm1DQUFu
aW1hdGlvbkNvY29hPihhbmltYXRpb24pLnBsYXRmb3JtQW5pbWF0aW9uKCkpOwotICAgIGlmICgh
W3Byb3BlcnR5QW5pbWF0aW9uIGRlbGVnYXRlXSkKLSAgICAgICAgW3Byb3BlcnR5QW5pbWF0aW9u
IHNldERlbGVnYXRlOnN0YXRpY19jYXN0PGlkPihtX2RlbGVnYXRlLmdldCgpKV07CisKKyAgICBD
QUFuaW1hdGlvbiAqY2FBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQUFuaW1hdGlvbiAqPihkb3du
Y2FzdDxQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E+KGFuaW1hdGlvbikucGxhdGZvcm1BbmltYXRp
b24oKSk7CisKKyAgICBpZiAoIVtjYUFuaW1hdGlvbiBkZWxlZ2F0ZV0pCisgICAgICAgIFtjYUFu
aW1hdGlvbiBzZXREZWxlZ2F0ZTpzdGF0aWNfY2FzdDxpZD4obV9kZWxlZ2F0ZS5nZXQoKSldOwor
CisgICAgaWYgKFtjYUFuaW1hdGlvbiBpc0tpbmRPZkNsYXNzOltDQUFuaW1hdGlvbkdyb3VwIGNs
YXNzXV0pIHsKKyAgICAgICAgZm9yIChDQUFuaW1hdGlvbiAqZ3JvdXBlZEFuaW1hdGlvbiBpbiAo
KENBQW5pbWF0aW9uR3JvdXAgKiljYUFuaW1hdGlvbikuYW5pbWF0aW9ucykgeworICAgICAgICAg
ICAgaWYgKCFbZ3JvdXBlZEFuaW1hdGlvbiBkZWxlZ2F0ZV0pCisgICAgICAgICAgICAgICAgW2dy
b3VwZWRBbmltYXRpb24gc2V0RGVsZWdhdGU6c3RhdGljX2Nhc3Q8aWQ+KG1fZGVsZWdhdGUuZ2V0
KCkpXTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwotICAgIFttX2xheWVyIGFkZEFuaW1hdGlvbjpwcm9wZXJ0eUFuaW1hdGlvbiBmb3JLZXk6a2V5
XTsKKyAgICBbbV9sYXllciBhZGRBbmltYXRpb246Y2FBbmltYXRpb24gZm9yS2V5OmtleV07CiAg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaAppbmRleCA2YTI4YWU5N2Y4NjFmNGY1YmNi
MWM5MzRhYmYwMjg5ZmIwYTAwYjQ4Li5mYzI4NzM0OTg4MjA1NGQwNmY0MDAzNzEyNjIxYWYzODJm
MjBlNGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlLmgKQEAgLTExOSw2ICsxMTksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUaW1pbmdG
dW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFdlYkNvcmU6OlRpbWluZ0Z1bmN0aW9uKj4mLCBi
b29sIHJldmVyc2UgPSBmYWxzZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb3B5VGltaW5nRnVuY3Rp
b25zRnJvbShjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uJikgb3ZlcnJpZGU7CiAK
KyAgICB2b2lkIHNldEFuaW1hdGlvbk5hbWUoY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgU3Ry
aW5nIGFuaW1hdGlvbk5hbWUoKSBjb25zdCBmaW5hbDsKKwogICAgIC8vIEFuaW1hdGlvbiBncm91
cCBwcm9wZXJ0aWVzLgogICAgIHZvaWQgc2V0QW5pbWF0aW9ucyhjb25zdCBWZWN0b3I8UmVmUHRy
PFBsYXRmb3JtQ0FBbmltYXRpb24+PiYpIGZpbmFsOwogICAgIHZvaWQgY29weUFuaW1hdGlvbnNG
cm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24mKSBmaW5hbDsKQEAgLTE1NCw2ICsxNTcsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFByb3BlcnRpZXM+IGRlY29k
ZShJUEM6OkRlY29kZXImKTsKIAogICAgICAgICBTdHJpbmcga2V5UGF0aDsKKyAgICAgICAgU3Ry
aW5nIG5hbWU7CiAgICAgICAgIFBsYXRmb3JtQ0FBbmltYXRpb246OkFuaW1hdGlvblR5cGUgYW5p
bWF0aW9uVHlwZTsKIAogICAgICAgICBDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCmluZGV4IDZk
ODY2MTdlMWExN2Q4M2QwNDdiMTM5MjMxNWVmOTk1MTUxYjlkYTAuLjBlMDhkM2Y4ZjJlNmY1YTBk
MmM1YzhhNWVhMTVjOTJlNmZkZDY2ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9Q
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCkBAIC0xNTgsNiArMTU4LDcgQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UmVmUHRyPFRpbWluZ0Z1bmN0aW9uPj4gZGVjb2RlVGltaW5nRnVuY3Rpb24o
SVBDOjpEZWNvZGVyJgogdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVz
OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwg
a2V5UGF0aDsKKyAgICBlbmNvZGVyIDw8IG5hbWU7CiAgICAgZW5jb2RlciA8PCBhbmltYXRpb25U
eXBlOwogCiAgICAgZW5jb2RlciA8PCBiZWdpblRpbWU7CkBAIC0xOTYsNiArMTk3LDkgQEAgc3Rk
OjpvcHRpb25hbDxQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzPiBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlOjoKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMu
a2V5UGF0aCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHByb3BlcnRpZXMubmFtZSkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMuYW5pbWF0aW9uVHlwZSkpCiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKQEAgLTI4Miw2ICsyODYsNyBAQCBSZWY8UGxh
dGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weSgpIGNvbnN0
CiB7CiAgICAgYXV0byBhbmltYXRpb24gPSBjcmVhdGUoYW5pbWF0aW9uVHlwZSgpLCBrZXlQYXRo
KCkpOwogICAgIAorICAgIGFuaW1hdGlvbi0+c2V0QW5pbWF0aW9uTmFtZShhbmltYXRpb25OYW1l
KCkpOwogICAgIGFuaW1hdGlvbi0+c2V0QmVnaW5UaW1lKGJlZ2luVGltZSgpKTsKICAgICBhbmlt
YXRpb24tPnNldER1cmF0aW9uKGR1cmF0aW9uKCkpOwogICAgIGFuaW1hdGlvbi0+c2V0U3BlZWQo
c3BlZWQoKSk7CkBAIC02NjMsNiArNjY4LDE2IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJl
bW90ZTo6Y29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvCiAg
ICAgbV9wcm9wZXJ0aWVzLnJldmVyc2VUaW1pbmdGdW5jdGlvbnMgPSBvdGhlci5tX3Byb3BlcnRp
ZXMucmV2ZXJzZVRpbWluZ0Z1bmN0aW9uczsKIH0KIAordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlOjpzZXRBbmltYXRpb25OYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBtX3By
b3BlcnRpZXMubmFtZSA9IG5hbWU7Cit9CisKK1N0cmluZyBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlOjphbmltYXRpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLm5h
bWU7Cit9CisKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0QW5pbWF0aW9ucyhj
b25zdCBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+PiYgdmFsdWVzKQogewogICAg
IG1fcHJvcGVydGllcy5hbmltYXRpb25zID0gdmFsdWVzLm1hcChbXShhdXRvJiB2YWx1ZSkgewpA
QCAtODMzLDYgKzg0OCw4IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OlByb3BlcnRpCiAgICAgdHMgPDwgYW5p
bWF0aW9uLmFuaW1hdGlvblR5cGU7CiAgICAgdHMgPDwgIiBrZXlQYXRoPSI7CiAgICAgdHMgPDwg
YW5pbWF0aW9uLmtleVBhdGg7CisgICAgdHMgPDwgIiBuYW1lPSI7CisgICAgdHMgPDwgYW5pbWF0
aW9uLm5hbWU7CiAKICAgICBpZiAoYW5pbWF0aW9uLmJlZ2luVGltZSkKICAgICAgICAgdHMuZHVt
cFByb3BlcnR5KCJiZWdpblRpbWUiLCBhbmltYXRpb24uYmVnaW5UaW1lKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440538</attachid>
            <date>2021-10-07 14:41:47 -0700</date>
            <delta_ts>2021-11-03 07:28:35 -0700</delta_ts>
            <desc>Layout Test and Plumbing v1.0</desc>
            <filename>bug-231358-20211007144146.patch</filename>
            <type>text/plain</type>
            <size>11998</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU0OGY2Zjc3ODc2MDJm
ZDk3ZjU0M2MzZGY3ODliZTFhODJmYmMyZi4uZjZlMmNmNGY2ZjdkZjcxZGNhNmQ3YmJlMjRiYmM1
ZTkwYzQ3NjRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTEwLTA3ICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyNzIy
MDEpOiBTYWZhcmkgc2hvd2VkIHJlZCBkaXN0b3J0aW9uIG9uIHdlYnZpZXcgYWZ0ZXIgdXNpbmcg
V2ViIEluc3BlY3RvciwgcmV0dXJuaW5nIGZyb20gYW5vdGhlciBhcHAKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTM1OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9wYWdlL3Nl
dFNob3dQYWludFJlY3RzLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6cGFpbnRSZWN0Q291bnQg
Y29uc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnBhaW50UmVjdENvdW50IGNvbnN0
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JPdmVybGF5OjpwYWludFJlY3RDb3VudCBjb25zdCk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjppbnNwZWN0b3JQYWludFJl
Y3RDb3VudCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjEtMTAtMDYgIENocmlzIExvcmQgIDxjbG9yZEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gQ1NTIHNjcm9sbCBzbmFwcGluZyBpbnRlcmFj
dHMgYmFkbHkgd2l0aCBzbW9vdGggc2Nyb2xsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQyNTljYWNlYTdkNDQx
NzU4MjYzNmUyYTFhYzE4MGIwOTRkOWFlMmUuLjM5OTI1NjE5YTQ1NjYxYWU2YjFiYTU0NDA5ODcx
MWI2NmNlNmJkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTAtMDcgIFBhdHJp
Y2sgQW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI3MjIw
MSk6IFNhZmFyaSBzaG93ZWQgcmVkIGRpc3RvcnRpb24gb24gd2VidmlldyBhZnRlciB1c2luZyBX
ZWIgSW5zcGVjdG9yLCByZXR1cm5pbmcgZnJvbSBhbm90aGVyIGFwcAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMzU4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JDbGllbnQuaDoKKwogMjAyMS0xMC0wNiAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IHRleHQgc2VsZWN0aW9uIHRvIGZs
aXAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggNjZk
MWI1OWMyOTQ3ODY5MDk3YWYyNGIyMTdlY2ZiZTg4YWFkNTgwZS4uNDY4YjY3NGM4YWZiZDY0YmJj
MTc3YTRlZTBhNTgwMzZlZWJjZmEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDbGllbnQuaApAQCAtNjAsNiArNjAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IG92ZXJyaWRlc1Nob3dQYWludFJlY3RzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0U2hvd1BhaW50UmVjdHMoYm9vbCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IHNob3dQYWludFJlY3QoY29uc3QgRmxvYXRSZWN0JikgeyB9CisgICAgdmlydHVhbCB1bnNpZ25l
ZCBwYWludFJlY3RDb3VudCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkU2V0U2VhcmNoaW5nRm9yTm9kZShib29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVu
dFNlbGVjdGlvbkNoYW5nZWQoYm9vbCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHRpbWVsaW5lUmVj
b3JkaW5nQ2hhbmdlZChib29sKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBjMzNiYzk4OWQ5NWEyMTQyNWQ0MzY0Mzc5NTE5
MGNmNDBmN2U5Njg0Li44MzNjMGJhODQ0Zjg3YmNlZDliMjQzMDEzOGVjNzY3NmM4ODNiZmZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CkBAIC0zNjQsNiArMzY0LDE0IEBAIHVuc2lnbmVkIEluc3BlY3RvckNvbnRyb2xsZXI6OmdyaWRP
dmVybGF5Q291bnQoKSBjb25zdAogICAgIHJldHVybiBtX292ZXJsYXktPmdyaWRPdmVybGF5Q291
bnQoKTsKIH0KIAordW5zaWduZWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cGFpbnRSZWN0Q291bnQo
KSBjb25zdAoreworICAgIGlmIChtX2luc3BlY3RvckNsaWVudC0+b3ZlcnJpZGVzU2hvd1BhaW50
UmVjdHMoKSkKKyAgICAgICAgcmV0dXJuIG1faW5zcGVjdG9yQ2xpZW50LT5wYWludFJlY3RDb3Vu
dCgpOworCisgICAgcmV0dXJuIG1fb3ZlcmxheS0+cGFpbnRSZWN0Q291bnQoKTsKK30KKwogYm9v
bCBJbnNwZWN0b3JDb250cm9sbGVyOjpzaG91bGRTaG93T3ZlcmxheSgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fb3ZlcmxheS0+c2hvdWxkU2hvd092ZXJsYXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDc4NGJmNDgyZmQ2OGRhNjhl
MWYzOGZkNWNkNmJjZWRjODk3MWRmZGEuLmNjNTVjNDczOGQ3ZTE2YmZhMGRjNTg5MjBkNTM2Y2Q4
ZTdkMzc5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuaApAQCAtMTA2LDYgKzEwNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzVW5kZXJU
ZXN0KGJvb2wgaXNVbmRlclRlc3QpIHsgbV9pc1VuZGVyVGVzdCA9IGlzVW5kZXJUZXN0OyB9CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKGNvbnN0IFN0
cmluZyYgc2NyaXB0KTsKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBncmlkT3ZlcmxheUNv
dW50KCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgcGFpbnRSZWN0Q291bnQo
KSBjb25zdDsKIAogICAgIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9pbnNwZWN0b3JDbGllbnQ7IH0KICAgICBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dCogaW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvckZy
b250ZW5kQ2xpZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJs
YXkuaAppbmRleCBlMDNkMjczODRkMzNlMzVkNzMyZjEzOTNjNzVkZGU0YjdmYWViZWIxLi4xMzNk
MGNhZjEyM2YwY2UyZWViZmM4NzZiOTcyZWVmNGZiZWUyZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmgKQEAgLTIwNiw2ICsyMDYsNyBAQCBwdWJsaWM6
CiAKICAgICBOb2RlKiBoaWdobGlnaHRlZE5vZGUoKSBjb25zdDsKICAgICB1bnNpZ25lZCBncmlk
T3ZlcmxheUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmVHcmlkT3ZlcmxheXMuc2l6ZSgp
OyB9CisgICAgdW5zaWduZWQgcGFpbnRSZWN0Q291bnQoKSBjb25zdCB7IHJldHVybiBtX3BhaW50
UmVjdHMuc2l6ZSgpOyB9CiAKICAgICB2b2lkIGRpZFNldFNlYXJjaGluZ0Zvck5vZGUoYm9vbCBl
bmFibGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDNmOGZhZWRh
MjBkMzViYzEyNzgzZDg0MGZmNDI4NDU2ODAzZDM5MjUuLjVjYTkwMGRhZWZjYTQ0NDMxZGM1YjVk
YTk0ZmNkNjc0NzY3MWY3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTE3MzIsNiArMTczMiwxNSBAQCBFeGNlcHRpb25PcjxSZWY8RE9NUmVjdExpc3Q+PiBJbnRlcm5h
bHM6Omluc3BlY3RvckhpZ2hsaWdodFJlY3RzKCkKICAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNy
ZWF0ZShoaWdobGlnaHQucXVhZHMpOwogfQogCitFeGNlcHRpb25Pcjx1bnNpZ25lZD4gSW50ZXJu
YWxzOjppbnNwZWN0b3JQYWludFJlY3RDb3VudCgpCit7CisgICAgYXV0byBkb2N1bWVudCA9IGNv
bnRleHREb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkp
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKworICAg
IHJldHVybiBkb2N1bWVudC0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkucGFpbnRSZWN0
Q291bnQoKTsKK30KKwogRXhjZXB0aW9uT3I8dW5zaWduZWQ+IEludGVybmFsczo6bWFya2VyQ291
bnRGb3JOb2RlKE5vZGUmIG5vZGUsIGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSkKIHsKICAgICBP
cHRpb25TZXQ8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+IG1hcmtlclR5cGVzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggMmVlOWYxNWZjOWJjNTY4MWU3ZDA0YzQyMjYwMTJh
ODE4MDVhZDAxMi4uN2IxNzg3NzJjNTJhYjkyZjc2NjZkYTAxZTcxMzNlODRiYWRmNTkzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0yODMsNiArMjgzLDcgQEAgcHVibGljOgog
CiAgICAgRXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4gaW5zcGVjdG9ySGlnaGxpZ2h0UmVj
dHMoKTsKICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZD4gaW5zcGVjdG9yR3JpZE92ZXJsYXlDb3Vu
dCgpOworICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkPiBpbnNwZWN0b3JQYWludFJlY3RDb3VudCgp
OwogCiAgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQ+IG1hcmtlckNvdW50Rm9yTm9kZShOb2RlJiwg
Y29uc3QgU3RyaW5nJik7CiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPFJhbmdlPj4gbWFya2VyUmFu
Z2VGb3JOb2RlKE5vZGUmLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA2YmI5YjQ2ZjQ5NDNjOThh
ZmQzNDgwNjdjOGU1NTk4YTRhNmJlMTQ0Li5mNmQ3ZjNiNjgzNDcxZGE4YzgzOWYxMzI4NzIzNjI5
MTY1OGE5MTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zNzMsNiAr
MzczLDcgQEAgZW51bSBBdXRvcGxheVBvbGljeSB7CiAKICAgICB1bnNpZ25lZCBsb25nIGluc3Bl
Y3RvckdyaWRPdmVybGF5Q291bnQoKTsKICAgICBET01SZWN0TGlzdCBpbnNwZWN0b3JIaWdobGln
aHRSZWN0cygpOworICAgIHVuc2lnbmVkIGxvbmcgaW5zcGVjdG9yUGFpbnRSZWN0Q291bnQoKTsK
IAogICAgIHVuc2lnbmVkIGxvbmcgbWFya2VyQ291bnRGb3JOb2RlKE5vZGUgbm9kZSwgRE9NU3Ry
aW5nIG1hcmtlclR5cGUpOwogICAgIFJhbmdlPyBtYXJrZXJSYW5nZUZvck5vZGUoTm9kZSBub2Rl
LCBET01TdHJpbmcgbWFya2VyVHlwZSwgdW5zaWduZWQgbG9uZyBpbmRleCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JDbGllbnQu
aAppbmRleCBhMDVhZTc1MGYzNmExMzA2NmQwODNmZWJhN2FmNTEwZGZmZTUwMDY1Li5iYjU2M2Rj
OTA2MzE3NjY2YzY4ODRmYTFkYWEyYWE3NTIyYTc4MWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTcy
LDYgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgb3ZlcnJpZGVzU2hvd1BhaW50UmVjdHMo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBzaG93UGFpbnRSZWN0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHVuc2lnbmVkIHBhaW50
UmVjdENvdW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wYWludFJlY3RMYXllcnMuc2l6
ZSgpOyB9CiAKICAgICB2b2lkIHNldERldmVsb3BlclByZWZlcmVuY2VPdmVycmlkZShXZWJDb3Jl
OjpJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2UsIHN0ZDo6b3B0aW9uYWw8Ym9v
bD4pIGZpbmFsOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGRkMGM4M2VlNjNhMTA3YWU1YTNlMDYxYWZjMzM5NjZhZjAw
NDNkNC4uYjgwNWRhZWQ3YTBiMTZjMjI5MWM0NTUyNjQyYTI1NjYzYTM4NzljZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDIxLTEwLTA3ICBQYXRyaWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyNzIyMDEpOiBTYWZhcmkgc2hvd2VkIHJlZCBkaXN0
b3J0aW9uIG9uIHdlYnZpZXcgYWZ0ZXIgdXNpbmcgV2ViIEluc3BlY3RvciwgcmV0dXJuaW5nIGZy
b20gYW5vdGhlciBhcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTM1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50UmVjdHMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcGFnZS9zZXRTaG93UGFpbnRSZWN0cy5odG1sOiBB
ZGRlZC4KKwogMjAyMS0xMC0wNiAgQXl1bWkgS29qaW1hICA8YXl1bWlfa29qaW1hQGFwcGxlLmNv
bT4KIAogICAgICAgICBbIGlPUyAxNSBEZWJ1ZyBdIDMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZWxlY3Rpb24gdGVzdHMgYXJlIGEgZmxha3kgdGltZW91dC4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNob3dQYWludFJlY3RzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNob3dQYWludFJlY3RzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iNDI5ZWRmNDI3MGE1ZTBjMjdhZDU3OTI1MmE0NTRkNTkwZjMyZjY5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1Bh
aW50UmVjdHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIGZvciB0aGUgUGFn
ZS5zZXRTaG93UGFpbnRSZWN0cy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFBhZ2Uuc2V0
U2hvd1BhaW50UmVjdHMKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBQYWdlLnNldFNob3dQYWludFJl
Y3RzLkVuYWJsZWQKK1BBU1M6IFNob3VsZCBub3QgaGF2ZSBwYWludCByZWN0cyBkaXNwbGF5ZWQu
CitQQVNTOiBTaG91bGQgaGF2ZSBwYWludCByZWN0cyBkaXNwbGF5ZWQuCitQQVNTOiBTaG91bGQg
bm90IGhhdmUgcGFpbnQgcmVjdHMgZGlzcGxheWVkLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
UGFnZS5zZXRTaG93UGFpbnRSZWN0cy5EaXNhYmxlZAorUEFTUzogU2hvdWxkIG5vdCBoYXZlIHBh
aW50IHJlY3RzIGRpc3BsYXllZC4KK1BBU1M6IFNob3VsZCBub3QgaGF2ZSBwYWludCByZWN0cyBk
aXNwbGF5ZWQuCitQQVNTOiBTaG91bGQgbm90IGhhdmUgcGFpbnQgcmVjdHMgZGlzcGxheWVkLgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9zZXRTaG93UGFpbnRSZWN0
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50UmVjdHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wZjE2NDJiZDBiMWIzMjgzODUxYTk2OTRiMDBiNTRiMmM5YTdjZDc5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50
UmVjdHMuaHRtbApAQCAtMCwwICsxLDc4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
cmVzb3VyY2VzL3NlYXJjaC1zdHlsZXNoZWV0LmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3NlYXJjaC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgYXN5bmMgZnVuY3Rpb24gZXhwZWN0SGFzUGFpbnRSZWN0cyhleHBlY3RlZCkgewor
ICAgICAgICAvLyBFeGFjdCBwYWludCByZWN0IGNvdW50cyBtYXkgdmFyeSwgc28gb25seSBjaGVj
ayBpZiB0aGVyZSBhcmUgcGFpbnQgcmVjdHMuCisgICAgICAgIGxldCBoYXNQYWludFJlY3RzID0g
ISFhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuaW50ZXJuYWxzLmlu
c3BlY3RvclBhaW50UmVjdENvdW50KClgKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChoYXNQYWludFJlY3RzLCBleHBlY3RlZCwgYFNob3VsZCAke2V4cGVjdGVkID8gIiIgOiAi
bm90ICJ9aGF2ZSBwYWludCByZWN0cyBkaXNwbGF5ZWQuYCk7CisgICAgfQorCisgICAgbGV0IHN1
aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJQYWdlLnNldFNob3dQYWludFJl
Y3RzIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJQYWdlLnNl
dFNob3dQYWludFJlY3RzLkVuYWJsZWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgdGhh
dCBwYWludCByZWN0cyBhcmUgY29ycmVjdGx5IGNyZWF0ZWQgYW5kIHJlbW92ZWQgd2hpbGUgZW5h
YmxlZC4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgUGFnZUFnZW50LnNl
dFNob3dQYWludFJlY3RzKHRydWUpOworICAgICAgICAgICAgYXdhaXQgZXhwZWN0SGFzUGFpbnRS
ZWN0cyhmYWxzZSk7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
YGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iikuc3R5bGUuYmFja2dyb3VuZENvbG9yID0g
InBhcGF5YXdoaXAiYCk7CisgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwg
cmVqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGV4cGVjdEhhc1BhaW50UmVjdHModHJ1ZSkudGhlbihyZXNvbHZlKTsKKyAg
ICAgICAgICAgICAgICB9LCAxMDApOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGF3
YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBz
ZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0SGFzUGFpbnRSZWN0
cyhmYWxzZSkudGhlbihyZXNvbHZlKTsKKyAgICAgICAgICAgICAgICB9LCA1MDApOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIlBhZ2Uuc2V0U2hvd1BhaW50UmVjdHMuRGlzYWJsZWQiLAorICAgICAg
ICBkZXNjcmlwdGlvbjogIlRlc3QgdGhhdCBwYWludCByZWN0cyBhcmUgbm90IGNyZWF0ZWQgd2hp
bGUgZGlzYWJsZWQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIFBhZ2VB
Z2VudC5zZXRTaG93UGFpbnRSZWN0cyhmYWxzZSk7CisgICAgICAgICAgICBhd2FpdCBleHBlY3RI
YXNQYWludFJlY3RzKGZhbHNlKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZShgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS5zdHlsZS53aWR0aCA9ICJy
ZWJlY2NhcHVycGxlImApOworICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUs
IHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAg
ICAgICAgICAgICAgICBleHBlY3RIYXNQYWludFJlY3RzKGZhbHNlKS50aGVuKHJlc29sdmUpOwor
ICAgICAgICAgICAgICAgIH0sIDEwMCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
YXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgICAgICBleHBlY3RIYXNQYWludFJl
Y3RzKGZhbHNlKS50aGVuKHJlc29sdmUpOworICAgICAgICAgICAgICAgIH0sIDUwMCk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2Vz
QW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzxzdHlsZT4KKyN0ZXN0IHsKKyAgICB3aWR0aDog
IDEwMHB4OworICAgIGhlaWdodDogIDEwMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGdhaW5z
Ym9ybzsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8
cD5UZXN0cyBmb3IgdGhlIFBhZ2Uuc2V0U2hvd1BhaW50UmVjdHMuPC9wPgorPGRpdiBpZD0idGVz
dCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443198</attachid>
            <date>2021-11-03 07:28:39 -0700</date>
            <delta_ts>2021-11-04 02:34:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231358-20211103152838.patch</filename>
            <type>text/plain</type>
            <size>17158</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjNTM4ODU1ZTZmNTRh
NTJkN2Q2MzI5NDBlMTk1NjUzMmVhMWExNS4uODVmOTdjMDQ5NTA0MzI4MzFmOTA0ZDEzMjYwMTRm
MDdiMmI5ZmIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTExLTAzICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI3
MjIwMSk6IFNhZmFyaSBzaG93ZWQgcmVkIGRpc3RvcnRpb24gb24gd2VidmlldyBhZnRlciB1c2lu
ZyBXZWIgSW5zcGVjdG9yLCByZXR1cm5pbmcgZnJvbSBhbm90aGVyIGFwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMzU4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MTUwNTIwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvcGFnZS9zZXRTaG93UGFpbnRSZWN0cy5odG1s
CisKKyAgICAgICAgV2hlbiB3ZSBhZGRlZCBzdXBwb3J0IGZvciBhbmltYXRpbmcgaW5kaXZpZHVh
bCB0cmFuc2Zvcm0gcHJvcGVydGllcywgd2UgbW92ZWQgdG8gYSBtb2RlbCB3aGVyZSBhbGwgYW5p
bWF0aW9ucworICAgICAgICBmb3IgYSBnaXZlbiBDU1MgcHJvcGVydHkgd2VyZSB3cmFwcGVkIGlu
IGEgZGVkaWNhdGVkIENBQW5pbWF0aW9uR3JvdXAgd2hlbiBydW5uaW5nIGFjY2VsZXJhdGVkLiBU
aG9zZSBncm91cHMKKyAgICAgICAgaGF2ZSBhbiBpbmZpbml0ZSBkdXJhdGlvbiBhbmQgdGh1cyB3
b3VsZCBuZXZlciBjYWxsIHRoZSAtYW5pbWF0aW9uRGlkU3RvcDpmaW5pc2hlZDogQ0FBbmltYXRp
b25EZWxlZ2F0ZSBtZXRob2QuCisKKyAgICAgICAgQW4gb3B0aW9uIHdvdWxkIGhhdmUgYmVlbiB0
byBzZXQgdGhlIGRlbGVnYXRlIG9uIGFsbCBhbmltYXRpb25zIGNvbnRhaW5lZCBpbiBhIENBQW5p
bWF0aW9uR3JvdXAgaW4KKyAgICAgICAgUGxhdGZvcm1DQUxheWVyQ29jb2E6OmFkZEFuaW1hdGlv
bkZvcktleSgpLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGUgQ0FBbmltYXRpb25EZWxlZ2F0ZSBt
ZXRob2RzIGZvciBjaGlsZHJlbgorICAgICAgICBvZiBhbiBhbmltYXRpb24gZ3JvdXAgYXJlbid0
IGZpcmVkLgorCisgICAgICAgIFNpbmNlIHRoZSBvbmx5IGN1cnJlbnQgdXNlIGZvciB0aGUgLWFu
aW1hdGlvbkRpZFN0b3A6ZmluaXNoZWQ6IGRlbGVnYXRlIG1ldGhvZCBpcyB0byBldmVudHVhbGx5
IG1lc3NhZ2UgYmFjaworICAgICAgICBpbnRvIFdlYkluc3BlY3RvckNsaWVudDo6YW5pbWF0aW9u
RW5kZWRGb3JMYXllcigpIGZvciBvcGFjaXR5IGFuaW1hdGlvbnMsIHdoaWNoIGRvbid0IG5lZWQg
dG8gcnVuIGNvbnRhaW5lZCBpbgorICAgICAgICBncm91cHMsIG91ciBhcHByb2FjaCB0byBhZGRy
ZXNzIHRoZSBpc3N1ZSBpcyB0byBvbmx5IGdyb3VwIGFuaW1hdGlvbnMgZm9yIHRyYW5zZm9ybS1y
ZWxhdGVkIHByb3BlcnRpZXMgYW5kCisgICAgICAgIGxlYXZlIG90aGVyIGFuaW1hdGlvbnMgYXMg
c2ltcGxlIGxlYWYgYW5pbWF0aW9ucy4KKworICAgICAgICBUbyBkbyB0aGlzLCBpbnNpZGUgb2Yg
R3JhcGhpY3NMYXllckNBOjp1cGRhdGVBbmltYXRpb25zKCksIHdlIHJlcGxhY2UgdGhlIGFkZEFu
aW1hdGlvbigpIGxhbWJkYSB3aXRoIGEgbmV3CisgICAgICAgIGFkZExlYWZBbmltYXRpb24oKSBs
YW1iZGEgd2hpY2ggd2UgdXNlIGZvciBvcGFjaXR5LCBiYWNrZ3JvdW5kLWNvbG9yIGFuZCBmaWx0
ZXIgYW5pbWF0aW9ucy4KKworICAgICAgICBJbiBvcmRlciB0byBiZSBhYmxlIHRvIHRlc3QgdGhl
IHN1Y2Nlc3NmdWwgcmVtb3ZhbCBvZiByZXBhaW50IHJlY3RzIGFzIGEgcmVzdWx0IG9mIHRoZSBD
QUFuaW1hdGlvbkRlbGVnYXRlCisgICAgICAgIG1ldGhvZCBmaXJpbmcsIFBhdHJpY2sgQW5nbGUg
Y29udHJpYnV0ZWQgdGhlIHJlcXVpcmVkIGNoYW5nZXMgdW5kZXIgaW5zcGVjdG9yLyB0byBleHBv
c2UgdGhlIG51bWJlciBvZiBwYWludAorICAgICAgICByZWN0cyB0byBsYXlvdXQgdGVzdHMuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDbGllbnQ6OnBhaW50UmVjdENvdW50IGNvbnN0KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyOjpwYWludFJlY3RDb3VudCBjb25zdCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3Zl
cmxheS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6cGFpbnRSZWN0Q291
bnQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFuaW1hdGlv
bnMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6aW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjppbnNwZWN0b3JQYWludFJlY3RDb3VudCk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjEtMTEt
MDEgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbQ3Vy
bF0gRml4IC1XcmVvcmRlci1jdG9yIGluIEN1cmxSZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY2ODhjNDA3
ZjRiYWIyMzg3MzE4MjIwOThmNDhkZjA4Yjk1ZGIyZTMuLjhhOTYxZmUwZTNiOTMwNTQ3YmM2MWNh
YWIzOWQwNjc2ZGMzZjJjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTEtMDMg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMjcyMjAxKTogU2FmYXJpIHNob3dlZCByZWQgZGlzdG9ydGlvbiBvbiB3ZWJ2aWV3IGFmdGVy
IHVzaW5nIFdlYiBJbnNwZWN0b3IsIHJldHVybmluZyBmcm9tIGFub3RoZXIgYXBwCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEzNTgKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzgxNTA1MjA4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yQ2xp
ZW50Lmg6IEV4cG9zZSBhIHB1YmxpYyBtZXRob2QgdG8gZ2V0IHRoZSBudW1iZXIgb2YgaXRlbXMg
aW4gbV9wYWludFJlY3RMYXllcnMuCisKIDIwMjEtMTEtMDEgIE1pY2hhZWxbdG1dIFNtaXRoICA8
bWlrZUB3My5vcmc+CiAKICAgICAgICAgW1dlYkluc3BlY3Rvcl1bQ09SU10gU2hvdyBIVFRQIHN0
YXR1cyBjb2RlIGluIENPUlMgbWVzc2FnZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ2xpZW50LmgKaW5kZXggNjZkMWI1OWMyOTQ3ODY5MDk3YWYyNGIyMTdlY2ZiZTg4YWFk
NTgwZS4uNDY4YjY3NGM4YWZiZDY0YmJjMTc3YTRlZTBhNTgwMzZlZWJjZmEyMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaApAQCAtNjAsNiArNjAsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIG92ZXJyaWRlc1Nob3dQYWludFJlY3RzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1BhaW50UmVjdHMoYm9v
bCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dQYWludFJlY3QoY29uc3QgRmxvYXRSZWN0Jikg
eyB9CisgICAgdmlydHVhbCB1bnNpZ25lZCBwYWludFJlY3RDb3VudCgpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0U2VhcmNoaW5nRm9yTm9kZShib29sKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudFNlbGVjdGlvbkNoYW5nZWQoYm9vbCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIHRpbWVsaW5lUmVjb3JkaW5nQ2hhbmdlZChib29sKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBjMzNi
Yzk4OWQ5NWEyMTQyNWQ0MzY0Mzc5NTE5MGNmNDBmN2U5Njg0Li44MzNjMGJhODQ0Zjg3YmNlZDli
MjQzMDEzOGVjNzY3NmM4ODNiZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0zNjQsNiArMzY0LDE0IEBAIHVuc2lnbmVkIElu
c3BlY3RvckNvbnRyb2xsZXI6OmdyaWRPdmVybGF5Q291bnQoKSBjb25zdAogICAgIHJldHVybiBt
X292ZXJsYXktPmdyaWRPdmVybGF5Q291bnQoKTsKIH0KIAordW5zaWduZWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6cGFpbnRSZWN0Q291bnQoKSBjb25zdAoreworICAgIGlmIChtX2luc3BlY3RvckNs
aWVudC0+b3ZlcnJpZGVzU2hvd1BhaW50UmVjdHMoKSkKKyAgICAgICAgcmV0dXJuIG1faW5zcGVj
dG9yQ2xpZW50LT5wYWludFJlY3RDb3VudCgpOworCisgICAgcmV0dXJuIG1fb3ZlcmxheS0+cGFp
bnRSZWN0Q291bnQoKTsKK30KKwogYm9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjpzaG91bGRTaG93
T3ZlcmxheSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fb3ZlcmxheS0+c2hvdWxkU2hvd092ZXJs
YXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5o
CmluZGV4IDExYzI2Y2NmZDgzNmMyM2VjODVhNTIwODJlNGViNGY0YTFmZmRlMjUuLmY2ZmVjN2Nm
YmNiZDJkN2ZiYTMwYmRkMzEzOGUwZWRmYjNmNjkwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMTA2LDYgKzEwNiw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldElzVW5kZXJUZXN0KGJvb2wgaXNVbmRlclRlc3QpIHsgbV9pc1VuZGVy
VGVzdCA9IGlzVW5kZXJUZXN0OyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBldmFsdWF0ZUZv
clRlc3RJbkZyb250ZW5kKGNvbnN0IFN0cmluZyYgc2NyaXB0KTsKICAgICBXRUJDT1JFX0VYUE9S
VCB1bnNpZ25lZCBncmlkT3ZlcmxheUNvdW50KCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQg
dW5zaWduZWQgcGFpbnRSZWN0Q291bnQoKSBjb25zdDsKIAogICAgIEluc3BlY3RvckNsaWVudCog
aW5zcGVjdG9yQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JDbGllbnQ7IH0KICAg
ICBJbnNwZWN0b3JGcm9udGVuZENsaWVudCogaW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoKSBjb25z
dCB7IHJldHVybiBtX2luc3BlY3RvckZyb250ZW5kQ2xpZW50OyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuaAppbmRleCBlMDNkMjczODRkMzNlMzVkNzMyZjEz
OTNjNzVkZGU0YjdmYWViZWIxLi4xMzNkMGNhZjEyM2YwY2UyZWViZmM4NzZiOTcyZWVmNGZiZWUy
ZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3Zlcmxh
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmgKQEAg
LTIwNiw2ICsyMDYsNyBAQCBwdWJsaWM6CiAKICAgICBOb2RlKiBoaWdobGlnaHRlZE5vZGUoKSBj
b25zdDsKICAgICB1bnNpZ25lZCBncmlkT3ZlcmxheUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9h
Y3RpdmVHcmlkT3ZlcmxheXMuc2l6ZSgpOyB9CisgICAgdW5zaWduZWQgcGFpbnRSZWN0Q291bnQo
KSBjb25zdCB7IHJldHVybiBtX3BhaW50UmVjdHMuc2l6ZSgpOyB9CiAKICAgICB2b2lkIGRpZFNl
dFNlYXJjaGluZ0Zvck5vZGUoYm9vbCBlbmFibGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggNmY3
MDVlZmI2ZGQ1MjM3YjYzN2YwYjMzYjZjNjRhNTY0MGJhMDIzMy4uMGVjZjdiNjNjMjUzMmY4NGY0
OTYyZjdhMDZiZTY4ZjMzMzc1YTRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0zMDg1LDkgKzMwODUs
MTEgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFuaW1hdGlvbnMoKQogICAgICAgICAg
ICAgYW5pbWF0aW9uLm1fcGxheVN0YXRlID0gUGxheVN0YXRlOjpQbGF5aW5nOwogICAgIH07CiAK
LSAgICBhdXRvIGFkZEFuaW1hdGlvbiA9IFsmXShMYXllclByb3BlcnR5QW5pbWF0aW9uJiBhbmlt
YXRpb24sIEFkZGl0aXZlIGFkZGl0aXZlID0gQWRkaXRpdmU6OlllcykgewotICAgICAgICBwcmVw
YXJlQW5pbWF0aW9uRm9yQWRkaXRpb24oYW5pbWF0aW9uLCBhZGRpdGl2ZSk7Ci0gICAgICAgIGFk
ZEFuaW1hdGlvbkdyb3VwKGFuaW1hdGlvbi5tX3Byb3BlcnR5LCB7IGFuaW1hdGlvbi5tX2FuaW1h
dGlvbiB9KTsKKyAgICBhdXRvIGFkZExlYWZBbmltYXRpb24gPSBbJl0oTGF5ZXJQcm9wZXJ0eUFu
aW1hdGlvbiYgYW5pbWF0aW9uKSB7CisgICAgICAgIEFTU0VSVChhbmltYXRpb24ubV9iZWdpblRp
bWUpOworICAgICAgICBhbmltYXRpb24ubV9iZWdpblRpbWUgPSAqYW5pbWF0aW9uLm1fYmVnaW5U
aW1lICsgYW5pbWF0aW9uR3JvdXBCZWdpblRpbWU7CisgICAgICAgIHByZXBhcmVBbmltYXRpb25G
b3JBZGRpdGlvbihhbmltYXRpb24sIEFkZGl0aXZlOjpObyk7CisgICAgICAgIHNldEFuaW1hdGlv
bk9uTGF5ZXIoYW5pbWF0aW9uKTsKICAgICB9OwogCiAgICAgZW51bSBjbGFzcyBUcmFuc2Zvcm1h
dGlvbk1hdHJpeFNvdXJjZSB7IFVzZUlkZW50aXR5TWF0cml4LCBBc2tDbGllbnQgfTsKQEAgLTMx
MjIsOCArMzEyNCwxMCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQW5pbWF0aW9ucygp
CiAgICAgICAgIC8vIGlzIHRoZSBpbml0aWFsIGJhc2UgdmFsdWUgdHJhbnNmb3JtIGFuaW1hdGlv
biBhbmQgbXVzdCBvdmVycmlkZSB0aGUgY3VycmVudCB0cmFuc2Zvcm0gdmFsdWUgZm9yIHRoaXMg
bGF5ZXIuCiAgICAgICAgIC8vIE90aGVyd2lzZSwgaXQgaXMgbWVhbnQgdG8gYXBwbHkgdGhlIHVu
ZGVybHlpbmcgdmFsdWUgZm9yIG9uZSBzcGVjaWZpYyB0cmFuc2Zvcm0tcmVsYXRlZCBwcm9wZXJ0
eSBhbmQgYmUgYWRkaXRpdmUKICAgICAgICAgLy8gdG8gYmUgY29tYmluZWQgd2l0aCB0aGUgb3Ro
ZXIgYmFzZSB2YWx1ZSB0cmFuc2Zvcm0gYW5pbWF0aW9ucyBhbmQgaW50ZXJwb2xhdGluZyBhbmlt
YXRpb25zLgotICAgICAgICBpZiAoYXV0byogYW5pbWF0aW9uID0gbWFrZUJhc2VWYWx1ZVRyYW5z
Zm9ybUFuaW1hdGlvbihwcm9wZXJ0eSwgbWF0cml4U291cmNlLCBiZWdpblRpbWVPZkVhcmxpZXN0
UHJvcGVydHlBbmltYXRpb24pKQotICAgICAgICAgICAgYWRkQW5pbWF0aW9uKCphbmltYXRpb24s
IG1hdHJpeFNvdXJjZSA9PSBUcmFuc2Zvcm1hdGlvbk1hdHJpeFNvdXJjZTo6QXNrQ2xpZW50ID8g
QWRkaXRpdmU6OlllcyA6IEFkZGl0aXZlOjpObyk7CisgICAgICAgIGlmIChhdXRvKiBhbmltYXRp
b24gPSBtYWtlQmFzZVZhbHVlVHJhbnNmb3JtQW5pbWF0aW9uKHByb3BlcnR5LCBtYXRyaXhTb3Vy
Y2UsIGJlZ2luVGltZU9mRWFybGllc3RQcm9wZXJ0eUFuaW1hdGlvbikpIHsKKyAgICAgICAgICAg
IHByZXBhcmVBbmltYXRpb25Gb3JBZGRpdGlvbigqYW5pbWF0aW9uLCBtYXRyaXhTb3VyY2UgPT0g
VHJhbnNmb3JtYXRpb25NYXRyaXhTb3VyY2U6OkFza0NsaWVudCA/IEFkZGl0aXZlOjpZZXMgOiBB
ZGRpdGl2ZTo6Tm8pOworICAgICAgICAgICAgYWRkQW5pbWF0aW9uR3JvdXAoYW5pbWF0aW9uLT5t
X3Byb3BlcnR5LCB7IGFuaW1hdGlvbi0+bV9hbmltYXRpb24gfSk7CisgICAgICAgIH0KICAgICB9
OwogCiAgICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGFsbCBhbmltYXRpb25zIHRvIHNldCB0aGUgYmVn
aW4gdGltZSBvZiBhbnkgbmV3IGFuaW1hdGlvbnMuCkBAIC0zMTMyLDcgKzMxMzYsMTAgQEAgdm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFuaW1hdGlvbnMoKQogICAgICAgICAgICAgYW5pbWF0
aW9uLm1fYmVnaW5UaW1lID0gY3VycmVudFRpbWUgLSBhbmltYXRpb25Hcm91cEJlZ2luVGltZTsK
ICAgICB9CiAKLSAgICAvLyBOb3csIHJlbW92ZSBhbGwgYW5pbWF0aW9uIGdyb3VwcyBmcm9tIHRo
ZSBsYXllciBzbyB0aGF0IHdlIG5vIGxvbmdlciBoYXZlIGFueSBsYXllciBhbmltYXRpb25zLgor
ICAgIC8vIE5vdywgcmVtb3ZlIGFsbCBhbmltYXRpb24gZ3JvdXBzIGFuZCBsZWFmIGFuaW1hdGlv
bnMgZnJvbSB0aGUgbGF5ZXIgc28gdGhhdAorICAgIC8vIHdlIG5vIGxvbmdlciBoYXZlIGFueSBs
YXllciBhbmltYXRpb25zLgorICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDogbV9hbmltYXRpb25z
KQorICAgICAgICByZW1vdmVDQUFuaW1hdGlvbkZyb21MYXllcihhbmltYXRpb24pOwogICAgIGZv
ciAoYXV0byYgYW5pbWF0aW9uR3JvdXAgOiBtX2FuaW1hdGlvbkdyb3VwcykKICAgICAgICAgcmVt
b3ZlQ0FBbmltYXRpb25Gcm9tTGF5ZXIoYW5pbWF0aW9uR3JvdXApOwogCkBAIC0zMTg3LDcgKzMx
OTQsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQW5pbWF0aW9ucygpCiAjaWYgRU5B
QkxFKEZJTFRFUlNfTEVWRUxfMikKICAgICAgICAgY2FzZSBBbmltYXRlZFByb3BlcnR5V2Via2l0
QmFja2Ryb3BGaWx0ZXI6CiAjZW5kaWYKLSAgICAgICAgICAgIGFkZEFuaW1hdGlvbihhbmltYXRp
b24sIEFkZGl0aXZlOjpObyk7CisgICAgICAgICAgICBhZGRMZWFmQW5pbWF0aW9uKGFuaW1hdGlv
bik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBbmltYXRlZFByb3BlcnR5SW52
YWxpZDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCmluZGV4IDUzYmJhOWJlMWQ0ODJmNmQwMjdlYjU3N2FkMzRhZWJlMTZl
ZGRiMWEuLjZiNTFhNjdhMzA1YzY3OWI2YmUzNjhhMmI2ZjQ5MzAwNTJiOGM4ZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE3NjYsNiArMTc2NiwxNSBAQCBFeGNlcHRp
b25PcjxSZWY8RE9NUmVjdExpc3Q+PiBJbnRlcm5hbHM6Omluc3BlY3RvckhpZ2hsaWdodFJlY3Rz
KCkKICAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZShoaWdobGlnaHQucXVhZHMpOwogfQog
CitFeGNlcHRpb25Pcjx1bnNpZ25lZD4gSW50ZXJuYWxzOjppbnNwZWN0b3JQYWludFJlY3RDb3Vu
dCgpCit7CisgICAgYXV0byBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOworICAgIGlmICgh
ZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKworICAgIHJldHVybiBkb2N1bWVudC0+cGFnZSgpLT5p
bnNwZWN0b3JDb250cm9sbGVyKCkucGFpbnRSZWN0Q291bnQoKTsKK30KKwogRXhjZXB0aW9uT3I8
dW5zaWduZWQ+IEludGVybmFsczo6bWFya2VyQ291bnRGb3JOb2RlKE5vZGUmIG5vZGUsIGNvbnN0
IFN0cmluZyYgbWFya2VyVHlwZSkKIHsKICAgICBPcHRpb25TZXQ8RG9jdW1lbnRNYXJrZXI6Ok1h
cmtlclR5cGU+IG1hcmtlclR5cGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXgg
NmI1N2ZlYzY0YjQwNjYzYTkxZGU2OWNlNTRkZjFlYTNiYTU4MWY4My4uNzhiMDRiZTdiYzVkZWU1
YmNkOWRmYjViMmZkMjA3ZDNlZjAxNjQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CkBAIC0yODcsNiArMjg3LDcgQEAgcHVibGljOgogCiAgICAgRXhjZXB0aW9uT3I8UmVmPERPTVJl
Y3RMaXN0Pj4gaW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoKTsKICAgICBFeGNlcHRpb25Pcjx1bnNp
Z25lZD4gaW5zcGVjdG9yR3JpZE92ZXJsYXlDb3VudCgpOworICAgIEV4Y2VwdGlvbk9yPHVuc2ln
bmVkPiBpbnNwZWN0b3JQYWludFJlY3RDb3VudCgpOwogCiAgICAgRXhjZXB0aW9uT3I8dW5zaWdu
ZWQ+IG1hcmtlckNvdW50Rm9yTm9kZShOb2RlJiwgY29uc3QgU3RyaW5nJik7CiAgICAgRXhjZXB0
aW9uT3I8UmVmUHRyPFJhbmdlPj4gbWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUmLCBjb25zdCBTdHJp
bmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAppbmRleCA4MjgxNTQ5ZDBhYzU5ZWI1NTMxNTg2ZjNjZTU1ZDdjYThhMTU2N2M1Li5h
N2ZmNGUzY2JlMzhhZmQ0ZDJlODFiNjE3NGFlZjhjNTI1Y2UwNWEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zNzMsNiArMzczLDcgQEAgZW51bSBBdXRvcGxheVBvbGlj
eSB7CiAKICAgICB1bnNpZ25lZCBsb25nIGluc3BlY3RvckdyaWRPdmVybGF5Q291bnQoKTsKICAg
ICBET01SZWN0TGlzdCBpbnNwZWN0b3JIaWdobGlnaHRSZWN0cygpOworICAgIHVuc2lnbmVkIGxv
bmcgaW5zcGVjdG9yUGFpbnRSZWN0Q291bnQoKTsKIAogICAgIHVuc2lnbmVkIGxvbmcgbWFya2Vy
Q291bnRGb3JOb2RlKE5vZGUgbm9kZSwgRE9NU3RyaW5nIG1hcmtlclR5cGUpOwogICAgIFJhbmdl
PyBtYXJrZXJSYW5nZUZvck5vZGUoTm9kZSBub2RlLCBET01TdHJpbmcgbWFya2VyVHlwZSwgdW5z
aWduZWQgbG9uZyBpbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JDbGllbnQuaAppbmRleCBhMDVhZTc1MGYzNmExMzA2NmQw
ODNmZWJhN2FmNTEwZGZmZTUwMDY1Li5iYjU2M2RjOTA2MzE3NjY2YzY4ODRmYTFkYWEyYWE3NTIy
YTc4MWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTcyLDYgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgb3ZlcnJpZGVzU2hvd1BhaW50UmVjdHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CiAgICAgdm9pZCBzaG93UGFpbnRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
IG92ZXJyaWRlOworICAgIHVuc2lnbmVkIHBhaW50UmVjdENvdW50KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9wYWludFJlY3RMYXllcnMuc2l6ZSgpOyB9CiAKICAgICB2b2lkIHNldERldmVs
b3BlclByZWZlcmVuY2VPdmVycmlkZShXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3Bl
clByZWZlcmVuY2UsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4pIGZpbmFsOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjYyZDRl
ZjI0NmJkNzM4YTgyNWZmYTBmN2NkNmE3OTFhMmQ5NDY0Ni4uYzIzMzMwN2E3ZTNmNWIwMjBlM2Q4
Y2U3NGIwYjY1N2M1NmVmOTk5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTExLTAzICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04o
cjI3MjIwMSk6IFNhZmFyaSBzaG93ZWQgcmVkIGRpc3RvcnRpb24gb24gd2VidmlldyBhZnRlciB1
c2luZyBXZWIgSW5zcGVjdG9yLCByZXR1cm5pbmcgZnJvbSBhbm90aGVyIGFwcAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMzU4CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MTUwNTIwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgdGVzdCwgd3JpdHRlbiBieSBQYXRyaWNrIEFuZ2xl
LCB0aGF0IHRyYWNrcyB3aGV0aGVyIHBhaW50IHJlY3RzIGhhdmUgYXBwZWFyZWQKKyAgICAgICAg
YW5kIHRoZW4gZGlzYXBwZWFyZWQgYXMgY29udGVudCByZXBhaW50cyBpbiBhbiBpbnNwZWN0ZWQg
cGFnZS4KKworICAgICAgICAqIGluc3BlY3Rvci9wYWdlL3NldFNob3dQYWludFJlY3RzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50UmVj
dHMuaHRtbDogQWRkZWQuCisKIDIwMjEtMTEtMDEgIE1pY2hhZWwgU21pdGggIDxtaWtlQHczLm9y
Zz4KIAogICAgICAgICBbV2ViSW5zcGVjdG9yXVtDT1JTXSBTaG93IEhUVFAgc3RhdHVzIGNvZGUg
aW4gQ09SUyBtZXNzYWdlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdl
L3NldFNob3dQYWludFJlY3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
YWdlL3NldFNob3dQYWludFJlY3RzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDI5ZWRmNDI3
MGE1ZTBjMjdhZDU3OTI1MmE0NTRkNTkwZjMyZjY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50UmVjdHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTQgQEAKK1Rlc3RzIGZvciB0aGUgUGFnZS5zZXRTaG93UGFpbnRSZWN0cy4KKworCis9
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFBhZ2Uuc2V0U2hvd1BhaW50UmVjdHMKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBQYWdlLnNldFNob3dQYWludFJlY3RzLkVuYWJsZWQKK1BBU1M6IFNob3VsZCBu
b3QgaGF2ZSBwYWludCByZWN0cyBkaXNwbGF5ZWQuCitQQVNTOiBTaG91bGQgaGF2ZSBwYWludCBy
ZWN0cyBkaXNwbGF5ZWQuCitQQVNTOiBTaG91bGQgbm90IGhhdmUgcGFpbnQgcmVjdHMgZGlzcGxh
eWVkLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUGFnZS5zZXRTaG93UGFpbnRSZWN0cy5EaXNh
YmxlZAorUEFTUzogU2hvdWxkIG5vdCBoYXZlIHBhaW50IHJlY3RzIGRpc3BsYXllZC4KK1BBU1M6
IFNob3VsZCBub3QgaGF2ZSBwYWludCByZWN0cyBkaXNwbGF5ZWQuCitQQVNTOiBTaG91bGQgbm90
IGhhdmUgcGFpbnQgcmVjdHMgZGlzcGxheWVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcGFnZS9zZXRTaG93UGFpbnRSZWN0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3BhZ2Uvc2V0U2hvd1BhaW50UmVjdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjE2NDJiZDBiMWIz
MjgzODUxYTk2OTRiMDBiNTRiMmM5YTdjZDc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50UmVjdHMuaHRtbApAQCAtMCwwICsxLDc4IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3NlYXJjaC1zdHlsZXNoZWV0
LmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NlYXJjaC1zY3JpcHQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgYXN5bmMgZnVuY3Rpb24gZXhw
ZWN0SGFzUGFpbnRSZWN0cyhleHBlY3RlZCkgeworICAgICAgICAvLyBFeGFjdCBwYWludCByZWN0
IGNvdW50cyBtYXkgdmFyeSwgc28gb25seSBjaGVjayBpZiB0aGVyZSBhcmUgcGFpbnQgcmVjdHMu
CisgICAgICAgIGxldCBoYXNQYWludFJlY3RzID0gISFhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKGB3aW5kb3cuaW50ZXJuYWxzLmluc3BlY3RvclBhaW50UmVjdENvdW50KClgKTsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChoYXNQYWludFJlY3RzLCBleHBlY3Rl
ZCwgYFNob3VsZCAke2V4cGVjdGVkID8gIiIgOiAibm90ICJ9aGF2ZSBwYWludCByZWN0cyBkaXNw
bGF5ZWQuYCk7CisgICAgfQorCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVB
c3luY1N1aXRlKCJQYWdlLnNldFNob3dQYWludFJlY3RzIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7CisgICAgICAgIG5hbWU6ICJQYWdlLnNldFNob3dQYWludFJlY3RzLkVuYWJsZWQiLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgdGhhdCBwYWludCByZWN0cyBhcmUgY29ycmVjdGx5
IGNyZWF0ZWQgYW5kIHJlbW92ZWQgd2hpbGUgZW5hYmxlZC4iLAorICAgICAgICBhc3luYyB0ZXN0
KCkgeworICAgICAgICAgICAgUGFnZUFnZW50LnNldFNob3dQYWludFJlY3RzKHRydWUpOworICAg
ICAgICAgICAgYXdhaXQgZXhwZWN0SGFzUGFpbnRSZWN0cyhmYWxzZSk7CisKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXN0Iikuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gInBhcGF5YXdoaXAiYCk7CisgICAgICAgICAg
ICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICAg
ICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdEhhc1BhaW50
UmVjdHModHJ1ZSkudGhlbihyZXNvbHZlKTsKKyAgICAgICAgICAgICAgICB9LCAxMDApOworICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCBy
ZWplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZXhwZWN0SGFzUGFpbnRSZWN0cyhmYWxzZSkudGhlbihyZXNvbHZlKTsKKyAg
ICAgICAgICAgICAgICB9LCA1MDApOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9
KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlBhZ2Uuc2V0U2hv
d1BhaW50UmVjdHMuRGlzYWJsZWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgdGhhdCBw
YWludCByZWN0cyBhcmUgbm90IGNyZWF0ZWQgd2hpbGUgZGlzYWJsZWQuIiwKKyAgICAgICAgYXN5
bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIFBhZ2VBZ2VudC5zZXRTaG93UGFpbnRSZWN0cyhmYWxz
ZSk7CisgICAgICAgICAgICBhd2FpdCBleHBlY3RIYXNQYWludFJlY3RzKGZhbHNlKTsKKworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRlc3QiKS5zdHlsZS53aWR0aCA9ICJyZWJlY2NhcHVycGxlImApOworICAgICAgICAg
ICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAg
ICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgICAgICBleHBlY3RIYXNQYWlu
dFJlY3RzKGZhbHNlKS50aGVuKHJlc29sdmUpOworICAgICAgICAgICAgICAgIH0sIDEwMCk7Cisg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUs
IHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAg
ICAgICAgICAgICAgICBleHBlY3RIYXNQYWludFJlY3RzKGZhbHNlKS50aGVuKHJlc29sdmUpOwor
ICAgICAgICAgICAgICAgIH0sIDUwMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAg
IH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4K
KzxzdHlsZT4KKyN0ZXN0IHsKKyAgICB3aWR0aDogIDEwMHB4OworICAgIGhlaWdodDogIDEwMHB4
OworICAgIGJhY2tncm91bmQtY29sb3I6IGdhaW5zYm9ybzsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyBmb3IgdGhlIFBhZ2Uuc2V0U2hv
d1BhaW50UmVjdHMuPC9wPgorPGRpdiBpZD0idGVzdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443288</attachid>
            <date>2021-11-04 02:34:33 -0700</date>
            <delta_ts>2021-11-04 02:37:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231358-20211104103432.patch</filename>
            <type>text/plain</type>
            <size>17385</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk1ZmIyMmFlNjIxMmEw
ZGViNjcyYzU1NWJmNTM0YTA1MzBlMTdlMC4uNDI5ZTVmNDY5YzEzMThjNzY1MjZmZWQzMzEyYTBh
MGVhMzYyODYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTExLTAzICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI3
MjIwMSk6IFNhZmFyaSBzaG93ZWQgcmVkIGRpc3RvcnRpb24gb24gd2VidmlldyBhZnRlciB1c2lu
ZyBXZWIgSW5zcGVjdG9yLCByZXR1cm5pbmcgZnJvbSBhbm90aGVyIGFwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMzU4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MTUwNTIwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvcGFnZS9zZXRTaG93UGFpbnRSZWN0cy5odG1s
CisKKyAgICAgICAgV2hlbiB3ZSBhZGRlZCBzdXBwb3J0IGZvciBhbmltYXRpbmcgaW5kaXZpZHVh
bCB0cmFuc2Zvcm0gcHJvcGVydGllcywgd2UgbW92ZWQgdG8gYSBtb2RlbCB3aGVyZSBhbGwgYW5p
bWF0aW9ucworICAgICAgICBmb3IgYSBnaXZlbiBDU1MgcHJvcGVydHkgd2VyZSB3cmFwcGVkIGlu
IGEgZGVkaWNhdGVkIENBQW5pbWF0aW9uR3JvdXAgd2hlbiBydW5uaW5nIGFjY2VsZXJhdGVkLiBU
aG9zZSBncm91cHMKKyAgICAgICAgaGF2ZSBhbiBpbmZpbml0ZSBkdXJhdGlvbiBhbmQgdGh1cyB3
b3VsZCBuZXZlciBjYWxsIHRoZSAtYW5pbWF0aW9uRGlkU3RvcDpmaW5pc2hlZDogQ0FBbmltYXRp
b25EZWxlZ2F0ZSBtZXRob2QuCisKKyAgICAgICAgQW4gb3B0aW9uIHdvdWxkIGhhdmUgYmVlbiB0
byBzZXQgdGhlIGRlbGVnYXRlIG9uIGFsbCBhbmltYXRpb25zIGNvbnRhaW5lZCBpbiBhIENBQW5p
bWF0aW9uR3JvdXAgaW4KKyAgICAgICAgUGxhdGZvcm1DQUxheWVyQ29jb2E6OmFkZEFuaW1hdGlv
bkZvcktleSgpLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGUgQ0FBbmltYXRpb25EZWxlZ2F0ZSBt
ZXRob2RzIGZvciBjaGlsZHJlbgorICAgICAgICBvZiBhbiBhbmltYXRpb24gZ3JvdXAgYXJlbid0
IGZpcmVkLgorCisgICAgICAgIFNpbmNlIHRoZSBvbmx5IGN1cnJlbnQgdXNlIGZvciB0aGUgLWFu
aW1hdGlvbkRpZFN0b3A6ZmluaXNoZWQ6IGRlbGVnYXRlIG1ldGhvZCBpcyB0byBldmVudHVhbGx5
IG1lc3NhZ2UgYmFjaworICAgICAgICBpbnRvIFdlYkluc3BlY3RvckNsaWVudDo6YW5pbWF0aW9u
RW5kZWRGb3JMYXllcigpIGZvciBvcGFjaXR5IGFuaW1hdGlvbnMsIHdoaWNoIGRvbid0IG5lZWQg
dG8gcnVuIGNvbnRhaW5lZCBpbgorICAgICAgICBncm91cHMsIG91ciBhcHByb2FjaCB0byBhZGRy
ZXNzIHRoZSBpc3N1ZSBpcyB0byBvbmx5IGdyb3VwIGFuaW1hdGlvbnMgZm9yIHRyYW5zZm9ybS1y
ZWxhdGVkIHByb3BlcnRpZXMgYW5kCisgICAgICAgIGxlYXZlIG90aGVyIGFuaW1hdGlvbnMgYXMg
c2ltcGxlIGxlYWYgYW5pbWF0aW9ucy4KKworICAgICAgICBUbyBkbyB0aGlzLCBpbnNpZGUgb2Yg
R3JhcGhpY3NMYXllckNBOjp1cGRhdGVBbmltYXRpb25zKCksIHdlIHJlcGxhY2UgdGhlIGFkZEFu
aW1hdGlvbigpIGxhbWJkYSB3aXRoIGEgbmV3CisgICAgICAgIGFkZExlYWZBbmltYXRpb24oKSBs
YW1iZGEgd2hpY2ggd2UgdXNlIGZvciBvcGFjaXR5LCBiYWNrZ3JvdW5kLWNvbG9yIGFuZCBmaWx0
ZXIgYW5pbWF0aW9ucy4KKworICAgICAgICBJbiBvcmRlciB0byBiZSBhYmxlIHRvIHRlc3QgdGhl
IHN1Y2Nlc3NmdWwgcmVtb3ZhbCBvZiByZXBhaW50IHJlY3RzIGFzIGEgcmVzdWx0IG9mIHRoZSBD
QUFuaW1hdGlvbkRlbGVnYXRlCisgICAgICAgIG1ldGhvZCBmaXJpbmcsIFBhdHJpY2sgQW5nbGUg
Y29udHJpYnV0ZWQgdGhlIHJlcXVpcmVkIGNoYW5nZXMgdW5kZXIgaW5zcGVjdG9yLyB0byBleHBv
c2UgdGhlIG51bWJlciBvZiBwYWludAorICAgICAgICByZWN0cyB0byBsYXlvdXQgdGVzdHMuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDbGllbnQ6OnBhaW50UmVjdENvdW50IGNvbnN0KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyOjpwYWludFJlY3RDb3VudCBjb25zdCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3Zl
cmxheS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6cGFpbnRSZWN0Q291
bnQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFuaW1hdGlv
bnMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6aW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjppbnNwZWN0b3JQYWludFJlY3RDb3VudCk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjEtMTEt
MDMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjI2ODkzMik6IENQVSB1c2FnZSBoaWdoZXIgdGhhbiBleHBlY3RlZCB3aXRoIHNpYmxp
bmcgZWxlbWVudHMgcnVubmluZyBXZWJBbmltYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhkNDk1MDVhZWMz
NmJmYWI0ZWI0Mjc1ZDhjNTdjNmMxYjI3YzBjY2MuLjkxNmE2Y2Q1NjI2ZmQ2ZGZlNjU0YjM0OTgw
OWMxZDlkY2M3Mjc1N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTEtMDMgIEFu
dG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihy
MjcyMjAxKTogU2FmYXJpIHNob3dlZCByZWQgZGlzdG9ydGlvbiBvbiB3ZWJ2aWV3IGFmdGVyIHVz
aW5nIFdlYiBJbnNwZWN0b3IsIHJldHVybmluZyBmcm9tIGFub3RoZXIgYXBwCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEzNTgKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgxNTA1MjA4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yQ2xpZW50
Lmg6IEV4cG9zZSBhIHB1YmxpYyBtZXRob2QgdG8gZ2V0IHRoZSBudW1iZXIgb2YgaXRlbXMgaW4g
bV9wYWludFJlY3RMYXllcnMuCisKIDIwMjEtMTEtMDMgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3IgZW5h
YmxlZCBpbiBVSVByb2Nlc3MsIGRpc2FibGVkIGluIFdlYkNvbnRlbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaAppbmRleCA2NmQxYjU5YzI5NDc4NjkwOTdhZjI0
YjIxN2VjZmJlODhhYWQ1ODBlLi40NjhiNjc0YzhhZmJkNjRiYmMxNzdhNGVlMGE1ODAzNmVlYmNm
YTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCkBAIC02
MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgb3ZlcnJpZGVzU2hvd1BhaW50
UmVjdHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93
UGFpbnRSZWN0cyhib29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvd1BhaW50UmVjdChjb25z
dCBGbG9hdFJlY3QmKSB7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHBhaW50UmVjdENvdW50KCkg
Y29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRTZWFyY2hpbmdGb3JO
b2RlKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50U2VsZWN0aW9uQ2hhbmdlZChi
b29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdGltZWxpbmVSZWNvcmRpbmdDaGFuZ2VkKGJvb2wp
IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCmluZGV4IGMzM2JjOTg5ZDk1YTIxNDI1ZDQzNjQzNzk1MTkwY2Y0MGY3ZTk2ODQuLjgzM2Mw
YmE4NDRmODdiY2VkOWIyNDMwMTM4ZWM3Njc2Yzg4M2JmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTM2NCw2ICszNjQsMTQg
QEAgdW5zaWduZWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Z3JpZE92ZXJsYXlDb3VudCgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fb3ZlcmxheS0+Z3JpZE92ZXJsYXlDb3VudCgpOwogfQogCit1bnNpZ25l
ZCBJbnNwZWN0b3JDb250cm9sbGVyOjpwYWludFJlY3RDb3VudCgpIGNvbnN0Cit7CisgICAgaWYg
KG1faW5zcGVjdG9yQ2xpZW50LT5vdmVycmlkZXNTaG93UGFpbnRSZWN0cygpKQorICAgICAgICBy
ZXR1cm4gbV9pbnNwZWN0b3JDbGllbnQtPnBhaW50UmVjdENvdW50KCk7CisKKyAgICByZXR1cm4g
bV9vdmVybGF5LT5wYWludFJlY3RDb3VudCgpOworfQorCiBib29sIEluc3BlY3RvckNvbnRyb2xs
ZXI6OnNob3VsZFNob3dPdmVybGF5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9vdmVybGF5LT5z
aG91bGRTaG93T3ZlcmxheSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmgKaW5kZXggMTFjMjZjY2ZkODM2YzIzZWM4NWE1MjA4MmU0ZWI0ZjRhMWZm
ZGUyNS4uZjZmZWM3Y2ZiY2JkMmQ3ZmJhMzBiZGQzMTM4ZTBlZGZiM2Y2OTA1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0xMDYsNiAr
MTA2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNVbmRlclRlc3QoYm9vbCBpc1VuZGVyVGVz
dCkgeyBtX2lzVW5kZXJUZXN0ID0gaXNVbmRlclRlc3Q7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBzY3JpcHQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGdyaWRPdmVybGF5Q291bnQoKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBwYWludFJlY3RDb3VudCgpIGNvbnN0OwogCiAgICAgSW5z
cGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3Rv
ckNsaWVudDsgfQogICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50KiBpbnNwZWN0b3JGcm9udGVu
ZENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5oCmluZGV4IGUwM2QyNzM4
NGQzM2UzNWQ3MzJmMTM5M2M3NWRkZTRiN2ZhZWJlYjEuLjEzM2QwY2FmMTIzZjBjZTJlZWJmYzg3
NmI5NzJlZWY0ZmJlZTJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JPdmVybGF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuaApAQCAtMjA2LDYgKzIwNiw3IEBAIHB1YmxpYzoKIAogICAgIE5vZGUqIGhpZ2hs
aWdodGVkTm9kZSgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGdyaWRPdmVybGF5Q291bnQoKSBjb25z
dCB7IHJldHVybiBtX2FjdGl2ZUdyaWRPdmVybGF5cy5zaXplKCk7IH0KKyAgICB1bnNpZ25lZCBw
YWludFJlY3RDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFpbnRSZWN0cy5zaXplKCk7IH0KIAog
ICAgIHZvaWQgZGlkU2V0U2VhcmNoaW5nRm9yTm9kZShib29sIGVuYWJsZWQpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcAppbmRleCA2ZjcwNWVmYjZkZDUyMzdiNjM3ZjBiMzNiNmM2NGE1NjQwYmEwMjMzLi5jODlk
MTFhZWQyNzEwYWM1MDU2NmI4ZWVlMzNlMjQwZTA0NmFlZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAg
LTMwODUsOSArMzA4NSwxMSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQW5pbWF0aW9u
cygpCiAgICAgICAgICAgICBhbmltYXRpb24ubV9wbGF5U3RhdGUgPSBQbGF5U3RhdGU6OlBsYXlp
bmc7CiAgICAgfTsKIAotICAgIGF1dG8gYWRkQW5pbWF0aW9uID0gWyZdKExheWVyUHJvcGVydHlB
bmltYXRpb24mIGFuaW1hdGlvbiwgQWRkaXRpdmUgYWRkaXRpdmUgPSBBZGRpdGl2ZTo6WWVzKSB7
Ci0gICAgICAgIHByZXBhcmVBbmltYXRpb25Gb3JBZGRpdGlvbihhbmltYXRpb24sIGFkZGl0aXZl
KTsKLSAgICAgICAgYWRkQW5pbWF0aW9uR3JvdXAoYW5pbWF0aW9uLm1fcHJvcGVydHksIHsgYW5p
bWF0aW9uLm1fYW5pbWF0aW9uIH0pOworICAgIGF1dG8gYWRkTGVhZkFuaW1hdGlvbiA9IFsmXShM
YXllclByb3BlcnR5QW5pbWF0aW9uJiBhbmltYXRpb24pIHsKKyAgICAgICAgQVNTRVJUKGFuaW1h
dGlvbi5tX2JlZ2luVGltZSk7CisgICAgICAgIGFuaW1hdGlvbi5tX2JlZ2luVGltZSA9ICphbmlt
YXRpb24ubV9iZWdpblRpbWUgKyBhbmltYXRpb25Hcm91cEJlZ2luVGltZTsKKyAgICAgICAgcHJl
cGFyZUFuaW1hdGlvbkZvckFkZGl0aW9uKGFuaW1hdGlvbiwgQWRkaXRpdmU6Ok5vKTsKKyAgICAg
ICAgc2V0QW5pbWF0aW9uT25MYXllcihhbmltYXRpb24pOwogICAgIH07CiAKICAgICBlbnVtIGNs
YXNzIFRyYW5zZm9ybWF0aW9uTWF0cml4U291cmNlIHsgVXNlSWRlbnRpdHlNYXRyaXgsIEFza0Ns
aWVudCB9OwpAQCAtMzEyMiwxNyArMzEyNCwyMiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBk
YXRlQW5pbWF0aW9ucygpCiAgICAgICAgIC8vIGlzIHRoZSBpbml0aWFsIGJhc2UgdmFsdWUgdHJh
bnNmb3JtIGFuaW1hdGlvbiBhbmQgbXVzdCBvdmVycmlkZSB0aGUgY3VycmVudCB0cmFuc2Zvcm0g
dmFsdWUgZm9yIHRoaXMgbGF5ZXIuCiAgICAgICAgIC8vIE90aGVyd2lzZSwgaXQgaXMgbWVhbnQg
dG8gYXBwbHkgdGhlIHVuZGVybHlpbmcgdmFsdWUgZm9yIG9uZSBzcGVjaWZpYyB0cmFuc2Zvcm0t
cmVsYXRlZCBwcm9wZXJ0eSBhbmQgYmUgYWRkaXRpdmUKICAgICAgICAgLy8gdG8gYmUgY29tYmlu
ZWQgd2l0aCB0aGUgb3RoZXIgYmFzZSB2YWx1ZSB0cmFuc2Zvcm0gYW5pbWF0aW9ucyBhbmQgaW50
ZXJwb2xhdGluZyBhbmltYXRpb25zLgotICAgICAgICBpZiAoYXV0byogYW5pbWF0aW9uID0gbWFr
ZUJhc2VWYWx1ZVRyYW5zZm9ybUFuaW1hdGlvbihwcm9wZXJ0eSwgbWF0cml4U291cmNlLCBiZWdp
blRpbWVPZkVhcmxpZXN0UHJvcGVydHlBbmltYXRpb24pKQotICAgICAgICAgICAgYWRkQW5pbWF0
aW9uKCphbmltYXRpb24sIG1hdHJpeFNvdXJjZSA9PSBUcmFuc2Zvcm1hdGlvbk1hdHJpeFNvdXJj
ZTo6QXNrQ2xpZW50ID8gQWRkaXRpdmU6OlllcyA6IEFkZGl0aXZlOjpObyk7CisgICAgICAgIGlm
IChhdXRvKiBhbmltYXRpb24gPSBtYWtlQmFzZVZhbHVlVHJhbnNmb3JtQW5pbWF0aW9uKHByb3Bl
cnR5LCBtYXRyaXhTb3VyY2UsIGJlZ2luVGltZU9mRWFybGllc3RQcm9wZXJ0eUFuaW1hdGlvbikp
IHsKKyAgICAgICAgICAgIHByZXBhcmVBbmltYXRpb25Gb3JBZGRpdGlvbigqYW5pbWF0aW9uLCBt
YXRyaXhTb3VyY2UgPT0gVHJhbnNmb3JtYXRpb25NYXRyaXhTb3VyY2U6OkFza0NsaWVudCA/IEFk
ZGl0aXZlOjpZZXMgOiBBZGRpdGl2ZTo6Tm8pOworICAgICAgICAgICAgYWRkQW5pbWF0aW9uR3Jv
dXAoYW5pbWF0aW9uLT5tX3Byb3BlcnR5LCB7IGFuaW1hdGlvbi0+bV9hbmltYXRpb24gfSk7Cisg
ICAgICAgIH0KICAgICB9OwogCiAgICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGFsbCBhbmltYXRpb25z
IHRvIHNldCB0aGUgYmVnaW4gdGltZSBvZiBhbnkgbmV3IGFuaW1hdGlvbnMuCiAgICAgZm9yIChh
dXRvJiBhbmltYXRpb24gOiBtX2FuaW1hdGlvbnMpIHsKICAgICAgICAgaWYgKCFhbmltYXRpb24u
bV9wZW5kaW5nUmVtb3ZhbCAmJiAhYW5pbWF0aW9uLm1fYmVnaW5UaW1lKQotICAgICAgICAgICAg
YW5pbWF0aW9uLm1fYmVnaW5UaW1lID0gY3VycmVudFRpbWUgLSBhbmltYXRpb25Hcm91cEJlZ2lu
VGltZTsKKyAgICAgICAgICAgICphbmltYXRpb24ubV9iZWdpblRpbWUgKz0gYW5pbWF0aW9uR3Jv
dXBCZWdpblRpbWU7CiAgICAgfQogCi0gICAgLy8gTm93LCByZW1vdmUgYWxsIGFuaW1hdGlvbiBn
cm91cHMgZnJvbSB0aGUgbGF5ZXIgc28gdGhhdCB3ZSBubyBsb25nZXIgaGF2ZSBhbnkgbGF5ZXIg
YW5pbWF0aW9ucy4KKyAgICAvLyBOb3csIHJlbW92ZSBhbGwgYW5pbWF0aW9uIGdyb3VwcyBhbmQg
bGVhZiBhbmltYXRpb25zIGZyb20gdGhlIGxheWVyIHNvIHRoYXQKKyAgICAvLyB3ZSBubyBsb25n
ZXIgaGF2ZSBhbnkgbGF5ZXIgYW5pbWF0aW9ucy4KKyAgICBmb3IgKGF1dG8mIGFuaW1hdGlvbiA6
IG1fYW5pbWF0aW9ucykKKyAgICAgICAgcmVtb3ZlQ0FBbmltYXRpb25Gcm9tTGF5ZXIoYW5pbWF0
aW9uKTsKICAgICBmb3IgKGF1dG8mIGFuaW1hdGlvbkdyb3VwIDogbV9hbmltYXRpb25Hcm91cHMp
CiAgICAgICAgIHJlbW92ZUNBQW5pbWF0aW9uRnJvbUxheWVyKGFuaW1hdGlvbkdyb3VwKTsKIApA
QCAtMzE4Nyw3ICszMTk0LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFuaW1hdGlv
bnMoKQogI2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCiAgICAgICAgIGNhc2UgQW5pbWF0ZWRQ
cm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyOgogI2VuZGlmCi0gICAgICAgICAgICBhZGRBbmlt
YXRpb24oYW5pbWF0aW9uLCBBZGRpdGl2ZTo6Tm8pOworICAgICAgICAgICAgYWRkTGVhZkFuaW1h
dGlvbihhbmltYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQW5pbWF0
ZWRQcm9wZXJ0eUludmFsaWQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA1M2JiYTliZTFkNDgyZjZkMDI3ZWI1
NzdhZDM0YWViZTE2ZWRkYjFhLi42YjUxYTY3YTMwNWM2NzliNmJlMzY4YTJiNmY0OTMwMDUyYjhj
OGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNzY2LDYgKzE3NjYs
MTUgQEAgRXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4gSW50ZXJuYWxzOjppbnNwZWN0b3JI
aWdobGlnaHRSZWN0cygpCiAgICAgcmV0dXJuIERPTVJlY3RMaXN0OjpjcmVhdGUoaGlnaGxpZ2h0
LnF1YWRzKTsKIH0KIAorRXhjZXB0aW9uT3I8dW5zaWduZWQ+IEludGVybmFsczo6aW5zcGVjdG9y
UGFpbnRSZWN0Q291bnQoKQoreworICAgIGF1dG8gZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQo
KTsKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQorICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisKKyAgICByZXR1cm4gZG9jdW1l
bnQtPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnBhaW50UmVjdENvdW50KCk7Cit9CisK
IEV4Y2VwdGlvbk9yPHVuc2lnbmVkPiBJbnRlcm5hbHM6Om1hcmtlckNvdW50Rm9yTm9kZShOb2Rl
JiBub2RlLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUpCiB7CiAgICAgT3B0aW9uU2V0PERvY3Vt
ZW50TWFya2VyOjpNYXJrZXJUeXBlPiBtYXJrZXJUeXBlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCmluZGV4IDZiNTdmZWM2NGI0MDY2M2E5MWRlNjljZTU0ZGYxZWEzYmE1ODFmODMuLjc4
YjA0YmU3YmM1ZGVlNWJjZDlkZmI1YjJmZDIwN2QzZWYwMTY0NTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaApAQCAtMjg3LDYgKzI4Nyw3IEBAIHB1YmxpYzoKIAogICAgIEV4Y2VwdGlv
bk9yPFJlZjxET01SZWN0TGlzdD4+IGluc3BlY3RvckhpZ2hsaWdodFJlY3RzKCk7CiAgICAgRXhj
ZXB0aW9uT3I8dW5zaWduZWQ+IGluc3BlY3RvckdyaWRPdmVybGF5Q291bnQoKTsKKyAgICBFeGNl
cHRpb25Pcjx1bnNpZ25lZD4gaW5zcGVjdG9yUGFpbnRSZWN0Q291bnQoKTsKIAogICAgIEV4Y2Vw
dGlvbk9yPHVuc2lnbmVkPiBtYXJrZXJDb3VudEZvck5vZGUoTm9kZSYsIGNvbnN0IFN0cmluZyYp
OwogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxSYW5nZT4+IG1hcmtlclJhbmdlRm9yTm9kZShOb2Rl
JiwgY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlLCB1bnNpZ25lZCBpbmRleCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggODI4MTU0OWQwYWM1OWViNTUzMTU4NmYzY2U1NWQ3
Y2E4YTE1NjdjNS4uYTdmZjRlM2NiZTM4YWZkNGQyZTgxYjYxNzRhZWY4YzUyNWNlMDVhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMzczLDYgKzM3Myw3IEBAIGVudW0g
QXV0b3BsYXlQb2xpY3kgewogCiAgICAgdW5zaWduZWQgbG9uZyBpbnNwZWN0b3JHcmlkT3Zlcmxh
eUNvdW50KCk7CiAgICAgRE9NUmVjdExpc3QgaW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoKTsKKyAg
ICB1bnNpZ25lZCBsb25nIGluc3BlY3RvclBhaW50UmVjdENvdW50KCk7CiAKICAgICB1bnNpZ25l
ZCBsb25nIG1hcmtlckNvdW50Rm9yTm9kZShOb2RlIG5vZGUsIERPTVN0cmluZyBtYXJrZXJUeXBl
KTsKICAgICBSYW5nZT8gbWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUgbm9kZSwgRE9NU3RyaW5nIG1h
cmtlclR5cGUsIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggYTA1YWU3
NTBmMzZhMTMwNjZkMDgzZmViYTdhZjUxMGRmZmU1MDA2NS4uYmI1NjNkYzkwNjMxNzY2NmM2ODg0
ZmExZGFhMmFhNzUyMmE3ODFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckNsaWVudC5oCkBAIC03Miw2ICs3Miw3IEBAIHBy
aXZhdGU6CiAKICAgICBib29sIG92ZXJyaWRlc1Nob3dQYWludFJlY3RzKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgc2hvd1BhaW50UmVjdChjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICB1bnNpZ25lZCBwYWludFJlY3RDb3VudCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGFpbnRSZWN0TGF5ZXJzLnNpemUoKTsgfQogCiAgICAg
dm9pZCBzZXREZXZlbG9wZXJQcmVmZXJlbmNlT3ZlcnJpZGUoV2ViQ29yZTo6SW5zcGVjdG9yQ2xp
ZW50OjpEZXZlbG9wZXJQcmVmZXJlbmNlLCBzdGQ6Om9wdGlvbmFsPGJvb2w+KSBmaW5hbDsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDY1ODU2YTFkM2Q3ZjRiYmU3ZWQyMTY5NGQwOGY5NmMwNzZlNmYyODguLmZlYjdhNzc1
YzQ1MWMyNTA4MDdmZTFkNWQ1NDJiOWJlMDViYzg1MGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAyMS0xMS0wMyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSRUdSRVNTSU9OKHIyNzIyMDEpOiBTYWZhcmkgc2hvd2VkIHJlZCBkaXN0b3J0aW9uIG9uIHdl
YnZpZXcgYWZ0ZXIgdXNpbmcgV2ViIEluc3BlY3RvciwgcmV0dXJuaW5nIGZyb20gYW5vdGhlciBh
cHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTM1
OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODE1MDUyMDg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHRlc3QsIHdyaXR0ZW4gYnkg
UGF0cmljayBBbmdsZSwgdGhhdCB0cmFja3Mgd2hldGhlciBwYWludCByZWN0cyBoYXZlIGFwcGVh
cmVkCisgICAgICAgIGFuZCB0aGVuIGRpc2FwcGVhcmVkIGFzIGNvbnRlbnQgcmVwYWludHMgaW4g
YW4gaW5zcGVjdGVkIHBhZ2UuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcGFnZS9zZXRTaG93UGFp
bnRSZWN0cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9wYWdlL3Nl
dFNob3dQYWludFJlY3RzLmh0bWw6IEFkZGVkLgorCiAyMDIxLTExLTAzICBBbnRvaW5lIFF1aW50
ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNjg5MzIpOiBD
UFUgdXNhZ2UgaGlnaGVyIHRoYW4gZXhwZWN0ZWQgd2l0aCBzaWJsaW5nIGVsZW1lbnRzIHJ1bm5p
bmcgV2ViQW5pbWF0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uv
c2V0U2hvd1BhaW50UmVjdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Bh
Z2Uvc2V0U2hvd1BhaW50UmVjdHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0MjllZGY0Mjcw
YTVlMGMyN2FkNTc5MjUyYTQ1NGQ1OTBmMzJmNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcGFnZS9zZXRTaG93UGFpbnRSZWN0cy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNCBAQAorVGVzdHMgZm9yIHRoZSBQYWdlLnNldFNob3dQYWludFJlY3RzLgorCisKKz09
IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUGFnZS5zZXRTaG93UGFpbnRSZWN0cworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IFBhZ2Uuc2V0U2hvd1BhaW50UmVjdHMuRW5hYmxlZAorUEFTUzogU2hvdWxkIG5v
dCBoYXZlIHBhaW50IHJlY3RzIGRpc3BsYXllZC4KK1BBU1M6IFNob3VsZCBoYXZlIHBhaW50IHJl
Y3RzIGRpc3BsYXllZC4KK1BBU1M6IFNob3VsZCBub3QgaGF2ZSBwYWludCByZWN0cyBkaXNwbGF5
ZWQuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBQYWdlLnNldFNob3dQYWludFJlY3RzLkRpc2Fi
bGVkCitQQVNTOiBTaG91bGQgbm90IGhhdmUgcGFpbnQgcmVjdHMgZGlzcGxheWVkLgorUEFTUzog
U2hvdWxkIG5vdCBoYXZlIHBhaW50IHJlY3RzIGRpc3BsYXllZC4KK1BBU1M6IFNob3VsZCBub3Qg
aGF2ZSBwYWludCByZWN0cyBkaXNwbGF5ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wYWdlL3NldFNob3dQYWludFJlY3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcGFnZS9zZXRTaG93UGFpbnRSZWN0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmMTY0MmJkMGIxYjMy
ODM4NTFhOTY5NGIwMGI1NGIyYzlhN2NkNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcGFnZS9zZXRTaG93UGFpbnRSZWN0cy5odG1sCkBAIC0wLDAgKzEsNzggQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvc2VhcmNoLXN0eWxlc2hlZXQu
Y3NzIj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2VhcmNoLXNjcmlwdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBhc3luYyBmdW5jdGlvbiBleHBl
Y3RIYXNQYWludFJlY3RzKGV4cGVjdGVkKSB7CisgICAgICAgIC8vIEV4YWN0IHBhaW50IHJlY3Qg
Y291bnRzIG1heSB2YXJ5LCBzbyBvbmx5IGNoZWNrIGlmIHRoZXJlIGFyZSBwYWludCByZWN0cy4K
KyAgICAgICAgbGV0IGhhc1BhaW50UmVjdHMgPSAhIWF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYHdpbmRvdy5pbnRlcm5hbHMuaW5zcGVjdG9yUGFpbnRSZWN0Q291bnQoKWApOwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGhhc1BhaW50UmVjdHMsIGV4cGVjdGVk
LCBgU2hvdWxkICR7ZXhwZWN0ZWQgPyAiIiA6ICJub3QgIn1oYXZlIHBhaW50IHJlY3RzIGRpc3Bs
YXllZC5gKTsKKyAgICB9CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFz
eW5jU3VpdGUoIlBhZ2Uuc2V0U2hvd1BhaW50UmVjdHMiKTsKKworICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKKyAgICAgICAgbmFtZTogIlBhZ2Uuc2V0U2hvd1BhaW50UmVjdHMuRW5hYmxlZCIsCisg
ICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCB0aGF0IHBhaW50IHJlY3RzIGFyZSBjb3JyZWN0bHkg
Y3JlYXRlZCBhbmQgcmVtb3ZlZCB3aGlsZSBlbmFibGVkLiIsCisgICAgICAgIGFzeW5jIHRlc3Qo
KSB7CisgICAgICAgICAgICBQYWdlQWdlbnQuc2V0U2hvd1BhaW50UmVjdHModHJ1ZSk7CisgICAg
ICAgICAgICBhd2FpdCBleHBlY3RIYXNQYWludFJlY3RzKGZhbHNlKTsKKworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRl
c3QiKS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicGFwYXlhd2hpcCJgKTsKKyAgICAgICAgICAg
IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgICAg
ICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0SGFzUGFpbnRS
ZWN0cyh0cnVlKS50aGVuKHJlc29sdmUpOworICAgICAgICAgICAgICAgIH0sIDEwMCk7CisgICAg
ICAgICAgICB9KTsKKworICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJl
amVjdCkgPT4geworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAg
ICAgICAgICAgICBleHBlY3RIYXNQYWludFJlY3RzKGZhbHNlKS50aGVuKHJlc29sdmUpOworICAg
ICAgICAgICAgICAgIH0sIDUwMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0p
OworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUGFnZS5zZXRTaG93
UGFpbnRSZWN0cy5EaXNhYmxlZCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCB0aGF0IHBh
aW50IHJlY3RzIGFyZSBub3QgY3JlYXRlZCB3aGlsZSBkaXNhYmxlZC4iLAorICAgICAgICBhc3lu
YyB0ZXN0KCkgeworICAgICAgICAgICAgUGFnZUFnZW50LnNldFNob3dQYWludFJlY3RzKGZhbHNl
KTsKKyAgICAgICAgICAgIGF3YWl0IGV4cGVjdEhhc1BhaW50UmVjdHMoZmFsc2UpOworCisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdCIpLnN0eWxlLndpZHRoID0gInJlYmVjY2FwdXJwbGUiYCk7CisgICAgICAgICAg
ICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICAg
ICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdEhhc1BhaW50
UmVjdHMoZmFsc2UpLnRoZW4ocmVzb2x2ZSk7CisgICAgICAgICAgICAgICAgfSwgMTAwKTsKKyAg
ICAgICAgICAgIH0pOworCisgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwg
cmVqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGV4cGVjdEhhc1BhaW50UmVjdHMoZmFsc2UpLnRoZW4ocmVzb2x2ZSk7Cisg
ICAgICAgICAgICAgICAgfSwgNTAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAg
fSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0Pgor
PHN0eWxlPgorI3Rlc3QgeworICAgIHdpZHRoOiAgMTAwcHg7CisgICAgaGVpZ2h0OiAgMTAwcHg7
CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ2FpbnNib3JvOworfQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIGZvciB0aGUgUGFnZS5zZXRTaG93
UGFpbnRSZWN0cy48L3A+Cis8ZGl2IGlkPSJ0ZXN0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443289</attachid>
            <date>2021-11-04 02:37:16 -0700</date>
            <delta_ts>2021-11-08 16:10:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231358-20211104103715.patch</filename>
            <type>text/plain</type>
            <size>17249</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk1ZmIyMmFlNjIxMmEw
ZGViNjcyYzU1NWJmNTM0YTA1MzBlMTdlMC4uNDI5ZTVmNDY5YzEzMThjNzY1MjZmZWQzMzEyYTBh
MGVhMzYyODYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTExLTAzICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI3
MjIwMSk6IFNhZmFyaSBzaG93ZWQgcmVkIGRpc3RvcnRpb24gb24gd2VidmlldyBhZnRlciB1c2lu
ZyBXZWIgSW5zcGVjdG9yLCByZXR1cm5pbmcgZnJvbSBhbm90aGVyIGFwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMzU4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MTUwNTIwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvcGFnZS9zZXRTaG93UGFpbnRSZWN0cy5odG1s
CisKKyAgICAgICAgV2hlbiB3ZSBhZGRlZCBzdXBwb3J0IGZvciBhbmltYXRpbmcgaW5kaXZpZHVh
bCB0cmFuc2Zvcm0gcHJvcGVydGllcywgd2UgbW92ZWQgdG8gYSBtb2RlbCB3aGVyZSBhbGwgYW5p
bWF0aW9ucworICAgICAgICBmb3IgYSBnaXZlbiBDU1MgcHJvcGVydHkgd2VyZSB3cmFwcGVkIGlu
IGEgZGVkaWNhdGVkIENBQW5pbWF0aW9uR3JvdXAgd2hlbiBydW5uaW5nIGFjY2VsZXJhdGVkLiBU
aG9zZSBncm91cHMKKyAgICAgICAgaGF2ZSBhbiBpbmZpbml0ZSBkdXJhdGlvbiBhbmQgdGh1cyB3
b3VsZCBuZXZlciBjYWxsIHRoZSAtYW5pbWF0aW9uRGlkU3RvcDpmaW5pc2hlZDogQ0FBbmltYXRp
b25EZWxlZ2F0ZSBtZXRob2QuCisKKyAgICAgICAgQW4gb3B0aW9uIHdvdWxkIGhhdmUgYmVlbiB0
byBzZXQgdGhlIGRlbGVnYXRlIG9uIGFsbCBhbmltYXRpb25zIGNvbnRhaW5lZCBpbiBhIENBQW5p
bWF0aW9uR3JvdXAgaW4KKyAgICAgICAgUGxhdGZvcm1DQUxheWVyQ29jb2E6OmFkZEFuaW1hdGlv
bkZvcktleSgpLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGUgQ0FBbmltYXRpb25EZWxlZ2F0ZSBt
ZXRob2RzIGZvciBjaGlsZHJlbgorICAgICAgICBvZiBhbiBhbmltYXRpb24gZ3JvdXAgYXJlbid0
IGZpcmVkLgorCisgICAgICAgIFNpbmNlIHRoZSBvbmx5IGN1cnJlbnQgdXNlIGZvciB0aGUgLWFu
aW1hdGlvbkRpZFN0b3A6ZmluaXNoZWQ6IGRlbGVnYXRlIG1ldGhvZCBpcyB0byBldmVudHVhbGx5
IG1lc3NhZ2UgYmFjaworICAgICAgICBpbnRvIFdlYkluc3BlY3RvckNsaWVudDo6YW5pbWF0aW9u
RW5kZWRGb3JMYXllcigpIGZvciBvcGFjaXR5IGFuaW1hdGlvbnMsIHdoaWNoIGRvbid0IG5lZWQg
dG8gcnVuIGNvbnRhaW5lZCBpbgorICAgICAgICBncm91cHMsIG91ciBhcHByb2FjaCB0byBhZGRy
ZXNzIHRoZSBpc3N1ZSBpcyB0byBvbmx5IGdyb3VwIGFuaW1hdGlvbnMgZm9yIHRyYW5zZm9ybS1y
ZWxhdGVkIHByb3BlcnRpZXMgYW5kCisgICAgICAgIGxlYXZlIG90aGVyIGFuaW1hdGlvbnMgYXMg
c2ltcGxlIGxlYWYgYW5pbWF0aW9ucy4KKworICAgICAgICBUbyBkbyB0aGlzLCBpbnNpZGUgb2Yg
R3JhcGhpY3NMYXllckNBOjp1cGRhdGVBbmltYXRpb25zKCksIHdlIHJlcGxhY2UgdGhlIGFkZEFu
aW1hdGlvbigpIGxhbWJkYSB3aXRoIGEgbmV3CisgICAgICAgIGFkZExlYWZBbmltYXRpb24oKSBs
YW1iZGEgd2hpY2ggd2UgdXNlIGZvciBvcGFjaXR5LCBiYWNrZ3JvdW5kLWNvbG9yIGFuZCBmaWx0
ZXIgYW5pbWF0aW9ucy4KKworICAgICAgICBJbiBvcmRlciB0byBiZSBhYmxlIHRvIHRlc3QgdGhl
IHN1Y2Nlc3NmdWwgcmVtb3ZhbCBvZiByZXBhaW50IHJlY3RzIGFzIGEgcmVzdWx0IG9mIHRoZSBD
QUFuaW1hdGlvbkRlbGVnYXRlCisgICAgICAgIG1ldGhvZCBmaXJpbmcsIFBhdHJpY2sgQW5nbGUg
Y29udHJpYnV0ZWQgdGhlIHJlcXVpcmVkIGNoYW5nZXMgdW5kZXIgaW5zcGVjdG9yLyB0byBleHBv
c2UgdGhlIG51bWJlciBvZiBwYWludAorICAgICAgICByZWN0cyB0byBsYXlvdXQgdGVzdHMuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDbGllbnQ6OnBhaW50UmVjdENvdW50IGNvbnN0KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyOjpwYWludFJlY3RDb3VudCBjb25zdCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3Zl
cmxheS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6cGFpbnRSZWN0Q291
bnQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFuaW1hdGlv
bnMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6aW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjppbnNwZWN0b3JQYWludFJlY3RDb3VudCk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjEtMTEt
MDMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjI2ODkzMik6IENQVSB1c2FnZSBoaWdoZXIgdGhhbiBleHBlY3RlZCB3aXRoIHNpYmxp
bmcgZWxlbWVudHMgcnVubmluZyBXZWJBbmltYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhkNDk1MDVhZWMz
NmJmYWI0ZWI0Mjc1ZDhjNTdjNmMxYjI3YzBjY2MuLjkxNmE2Y2Q1NjI2ZmQ2ZGZlNjU0YjM0OTgw
OWMxZDlkY2M3Mjc1N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTEtMDMgIEFu
dG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihy
MjcyMjAxKTogU2FmYXJpIHNob3dlZCByZWQgZGlzdG9ydGlvbiBvbiB3ZWJ2aWV3IGFmdGVyIHVz
aW5nIFdlYiBJbnNwZWN0b3IsIHJldHVybmluZyBmcm9tIGFub3RoZXIgYXBwCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEzNTgKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgxNTA1MjA4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yQ2xpZW50
Lmg6IEV4cG9zZSBhIHB1YmxpYyBtZXRob2QgdG8gZ2V0IHRoZSBudW1iZXIgb2YgaXRlbXMgaW4g
bV9wYWludFJlY3RMYXllcnMuCisKIDIwMjEtMTEtMDMgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3IgZW5h
YmxlZCBpbiBVSVByb2Nlc3MsIGRpc2FibGVkIGluIFdlYkNvbnRlbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaAppbmRleCA2NmQxYjU5YzI5NDc4NjkwOTdhZjI0
YjIxN2VjZmJlODhhYWQ1ODBlLi40NjhiNjc0YzhhZmJkNjRiYmMxNzdhNGVlMGE1ODAzNmVlYmNm
YTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCkBAIC02
MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgb3ZlcnJpZGVzU2hvd1BhaW50
UmVjdHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93
UGFpbnRSZWN0cyhib29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvd1BhaW50UmVjdChjb25z
dCBGbG9hdFJlY3QmKSB7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHBhaW50UmVjdENvdW50KCkg
Y29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRTZWFyY2hpbmdGb3JO
b2RlKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50U2VsZWN0aW9uQ2hhbmdlZChi
b29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdGltZWxpbmVSZWNvcmRpbmdDaGFuZ2VkKGJvb2wp
IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCmluZGV4IGMzM2JjOTg5ZDk1YTIxNDI1ZDQzNjQzNzk1MTkwY2Y0MGY3ZTk2ODQuLjgzM2Mw
YmE4NDRmODdiY2VkOWIyNDMwMTM4ZWM3Njc2Yzg4M2JmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTM2NCw2ICszNjQsMTQg
QEAgdW5zaWduZWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Z3JpZE92ZXJsYXlDb3VudCgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fb3ZlcmxheS0+Z3JpZE92ZXJsYXlDb3VudCgpOwogfQogCit1bnNpZ25l
ZCBJbnNwZWN0b3JDb250cm9sbGVyOjpwYWludFJlY3RDb3VudCgpIGNvbnN0Cit7CisgICAgaWYg
KG1faW5zcGVjdG9yQ2xpZW50LT5vdmVycmlkZXNTaG93UGFpbnRSZWN0cygpKQorICAgICAgICBy
ZXR1cm4gbV9pbnNwZWN0b3JDbGllbnQtPnBhaW50UmVjdENvdW50KCk7CisKKyAgICByZXR1cm4g
bV9vdmVybGF5LT5wYWludFJlY3RDb3VudCgpOworfQorCiBib29sIEluc3BlY3RvckNvbnRyb2xs
ZXI6OnNob3VsZFNob3dPdmVybGF5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9vdmVybGF5LT5z
aG91bGRTaG93T3ZlcmxheSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmgKaW5kZXggMTFjMjZjY2ZkODM2YzIzZWM4NWE1MjA4MmU0ZWI0ZjRhMWZm
ZGUyNS4uZjZmZWM3Y2ZiY2JkMmQ3ZmJhMzBiZGQzMTM4ZTBlZGZiM2Y2OTA1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0xMDYsNiAr
MTA2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNVbmRlclRlc3QoYm9vbCBpc1VuZGVyVGVz
dCkgeyBtX2lzVW5kZXJUZXN0ID0gaXNVbmRlclRlc3Q7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBzY3JpcHQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGdyaWRPdmVybGF5Q291bnQoKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBwYWludFJlY3RDb3VudCgpIGNvbnN0OwogCiAgICAgSW5z
cGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3Rv
ckNsaWVudDsgfQogICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50KiBpbnNwZWN0b3JGcm9udGVu
ZENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5oCmluZGV4IGUwM2QyNzM4
NGQzM2UzNWQ3MzJmMTM5M2M3NWRkZTRiN2ZhZWJlYjEuLjEzM2QwY2FmMTIzZjBjZTJlZWJmYzg3
NmI5NzJlZWY0ZmJlZTJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JPdmVybGF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuaApAQCAtMjA2LDYgKzIwNiw3IEBAIHB1YmxpYzoKIAogICAgIE5vZGUqIGhpZ2hs
aWdodGVkTm9kZSgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGdyaWRPdmVybGF5Q291bnQoKSBjb25z
dCB7IHJldHVybiBtX2FjdGl2ZUdyaWRPdmVybGF5cy5zaXplKCk7IH0KKyAgICB1bnNpZ25lZCBw
YWludFJlY3RDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFpbnRSZWN0cy5zaXplKCk7IH0KIAog
ICAgIHZvaWQgZGlkU2V0U2VhcmNoaW5nRm9yTm9kZShib29sIGVuYWJsZWQpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcAppbmRleCA2ZjcwNWVmYjZkZDUyMzdiNjM3ZjBiMzNiNmM2NGE1NjQwYmEwMjMzLi41MTkw
YTM4NjU0MzAwNzIwMDUwOWNmOTA1YjcwZjU1ZDA3YjU3YjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAg
LTMwODUsOSArMzA4NSwxMSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQW5pbWF0aW9u
cygpCiAgICAgICAgICAgICBhbmltYXRpb24ubV9wbGF5U3RhdGUgPSBQbGF5U3RhdGU6OlBsYXlp
bmc7CiAgICAgfTsKIAotICAgIGF1dG8gYWRkQW5pbWF0aW9uID0gWyZdKExheWVyUHJvcGVydHlB
bmltYXRpb24mIGFuaW1hdGlvbiwgQWRkaXRpdmUgYWRkaXRpdmUgPSBBZGRpdGl2ZTo6WWVzKSB7
Ci0gICAgICAgIHByZXBhcmVBbmltYXRpb25Gb3JBZGRpdGlvbihhbmltYXRpb24sIGFkZGl0aXZl
KTsKLSAgICAgICAgYWRkQW5pbWF0aW9uR3JvdXAoYW5pbWF0aW9uLm1fcHJvcGVydHksIHsgYW5p
bWF0aW9uLm1fYW5pbWF0aW9uIH0pOworICAgIGF1dG8gYWRkTGVhZkFuaW1hdGlvbiA9IFsmXShM
YXllclByb3BlcnR5QW5pbWF0aW9uJiBhbmltYXRpb24pIHsKKyAgICAgICAgQVNTRVJUKGFuaW1h
dGlvbi5tX2JlZ2luVGltZSk7CisgICAgICAgICphbmltYXRpb24ubV9iZWdpblRpbWUgKz0gYW5p
bWF0aW9uR3JvdXBCZWdpblRpbWU7CisgICAgICAgIHByZXBhcmVBbmltYXRpb25Gb3JBZGRpdGlv
bihhbmltYXRpb24sIEFkZGl0aXZlOjpObyk7CisgICAgICAgIHNldEFuaW1hdGlvbk9uTGF5ZXIo
YW5pbWF0aW9uKTsKICAgICB9OwogCiAgICAgZW51bSBjbGFzcyBUcmFuc2Zvcm1hdGlvbk1hdHJp
eFNvdXJjZSB7IFVzZUlkZW50aXR5TWF0cml4LCBBc2tDbGllbnQgfTsKQEAgLTMxMjIsOCArMzEy
NCwxMCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQW5pbWF0aW9ucygpCiAgICAgICAg
IC8vIGlzIHRoZSBpbml0aWFsIGJhc2UgdmFsdWUgdHJhbnNmb3JtIGFuaW1hdGlvbiBhbmQgbXVz
dCBvdmVycmlkZSB0aGUgY3VycmVudCB0cmFuc2Zvcm0gdmFsdWUgZm9yIHRoaXMgbGF5ZXIuCiAg
ICAgICAgIC8vIE90aGVyd2lzZSwgaXQgaXMgbWVhbnQgdG8gYXBwbHkgdGhlIHVuZGVybHlpbmcg
dmFsdWUgZm9yIG9uZSBzcGVjaWZpYyB0cmFuc2Zvcm0tcmVsYXRlZCBwcm9wZXJ0eSBhbmQgYmUg
YWRkaXRpdmUKICAgICAgICAgLy8gdG8gYmUgY29tYmluZWQgd2l0aCB0aGUgb3RoZXIgYmFzZSB2
YWx1ZSB0cmFuc2Zvcm0gYW5pbWF0aW9ucyBhbmQgaW50ZXJwb2xhdGluZyBhbmltYXRpb25zLgot
ICAgICAgICBpZiAoYXV0byogYW5pbWF0aW9uID0gbWFrZUJhc2VWYWx1ZVRyYW5zZm9ybUFuaW1h
dGlvbihwcm9wZXJ0eSwgbWF0cml4U291cmNlLCBiZWdpblRpbWVPZkVhcmxpZXN0UHJvcGVydHlB
bmltYXRpb24pKQotICAgICAgICAgICAgYWRkQW5pbWF0aW9uKCphbmltYXRpb24sIG1hdHJpeFNv
dXJjZSA9PSBUcmFuc2Zvcm1hdGlvbk1hdHJpeFNvdXJjZTo6QXNrQ2xpZW50ID8gQWRkaXRpdmU6
OlllcyA6IEFkZGl0aXZlOjpObyk7CisgICAgICAgIGlmIChhdXRvKiBhbmltYXRpb24gPSBtYWtl
QmFzZVZhbHVlVHJhbnNmb3JtQW5pbWF0aW9uKHByb3BlcnR5LCBtYXRyaXhTb3VyY2UsIGJlZ2lu
VGltZU9mRWFybGllc3RQcm9wZXJ0eUFuaW1hdGlvbikpIHsKKyAgICAgICAgICAgIHByZXBhcmVB
bmltYXRpb25Gb3JBZGRpdGlvbigqYW5pbWF0aW9uLCBtYXRyaXhTb3VyY2UgPT0gVHJhbnNmb3Jt
YXRpb25NYXRyaXhTb3VyY2U6OkFza0NsaWVudCA/IEFkZGl0aXZlOjpZZXMgOiBBZGRpdGl2ZTo6
Tm8pOworICAgICAgICAgICAgYWRkQW5pbWF0aW9uR3JvdXAoYW5pbWF0aW9uLT5tX3Byb3BlcnR5
LCB7IGFuaW1hdGlvbi0+bV9hbmltYXRpb24gfSk7CisgICAgICAgIH0KICAgICB9OwogCiAgICAg
Ly8gSXRlcmF0ZSB0aHJvdWdoIGFsbCBhbmltYXRpb25zIHRvIHNldCB0aGUgYmVnaW4gdGltZSBv
ZiBhbnkgbmV3IGFuaW1hdGlvbnMuCkBAIC0zMTMyLDcgKzMxMzYsMTAgQEAgdm9pZCBHcmFwaGlj
c0xheWVyQ0E6OnVwZGF0ZUFuaW1hdGlvbnMoKQogICAgICAgICAgICAgYW5pbWF0aW9uLm1fYmVn
aW5UaW1lID0gY3VycmVudFRpbWUgLSBhbmltYXRpb25Hcm91cEJlZ2luVGltZTsKICAgICB9CiAK
LSAgICAvLyBOb3csIHJlbW92ZSBhbGwgYW5pbWF0aW9uIGdyb3VwcyBmcm9tIHRoZSBsYXllciBz
byB0aGF0IHdlIG5vIGxvbmdlciBoYXZlIGFueSBsYXllciBhbmltYXRpb25zLgorICAgIC8vIE5v
dywgcmVtb3ZlIGFsbCBhbmltYXRpb24gZ3JvdXBzIGFuZCBsZWFmIGFuaW1hdGlvbnMgZnJvbSB0
aGUgbGF5ZXIgc28gdGhhdAorICAgIC8vIHdlIG5vIGxvbmdlciBoYXZlIGFueSBsYXllciBhbmlt
YXRpb25zLgorICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDogbV9hbmltYXRpb25zKQorICAgICAg
ICByZW1vdmVDQUFuaW1hdGlvbkZyb21MYXllcihhbmltYXRpb24pOwogICAgIGZvciAoYXV0byYg
YW5pbWF0aW9uR3JvdXAgOiBtX2FuaW1hdGlvbkdyb3VwcykKICAgICAgICAgcmVtb3ZlQ0FBbmlt
YXRpb25Gcm9tTGF5ZXIoYW5pbWF0aW9uR3JvdXApOwogCkBAIC0zMTg3LDcgKzMxOTQsNyBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQW5pbWF0aW9ucygpCiAjaWYgRU5BQkxFKEZJTFRF
UlNfTEVWRUxfMikKICAgICAgICAgY2FzZSBBbmltYXRlZFByb3BlcnR5V2Via2l0QmFja2Ryb3BG
aWx0ZXI6CiAjZW5kaWYKLSAgICAgICAgICAgIGFkZEFuaW1hdGlvbihhbmltYXRpb24sIEFkZGl0
aXZlOjpObyk7CisgICAgICAgICAgICBhZGRMZWFmQW5pbWF0aW9uKGFuaW1hdGlvbik7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBbmltYXRlZFByb3BlcnR5SW52YWxpZDoKICAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IDUzYmJhOWJlMWQ0ODJmNmQwMjdlYjU3N2FkMzRhZWJlMTZlZGRiMWEuLjZi
NTFhNjdhMzA1YzY3OWI2YmUzNjhhMmI2ZjQ5MzAwNTJiOGM4ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKQEAgLTE3NjYsNiArMTc2NiwxNSBAQCBFeGNlcHRpb25PcjxSZWY8
RE9NUmVjdExpc3Q+PiBJbnRlcm5hbHM6Omluc3BlY3RvckhpZ2hsaWdodFJlY3RzKCkKICAgICBy
ZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZShoaWdobGlnaHQucXVhZHMpOwogfQogCitFeGNlcHRp
b25Pcjx1bnNpZ25lZD4gSW50ZXJuYWxzOjppbnNwZWN0b3JQYWludFJlY3RDb3VudCgpCit7Cisg
ICAgYXV0byBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQg
fHwgIWRvY3VtZW50LT5wYWdlKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
QWNjZXNzRXJyb3IgfTsKKworICAgIHJldHVybiBkb2N1bWVudC0+cGFnZSgpLT5pbnNwZWN0b3JD
b250cm9sbGVyKCkucGFpbnRSZWN0Q291bnQoKTsKK30KKwogRXhjZXB0aW9uT3I8dW5zaWduZWQ+
IEludGVybmFsczo6bWFya2VyQ291bnRGb3JOb2RlKE5vZGUmIG5vZGUsIGNvbnN0IFN0cmluZyYg
bWFya2VyVHlwZSkKIHsKICAgICBPcHRpb25TZXQ8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+
IG1hcmtlclR5cGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNmI1N2ZlYzY0
YjQwNjYzYTkxZGU2OWNlNTRkZjFlYTNiYTU4MWY4My4uNzhiMDRiZTdiYzVkZWU1YmNkOWRmYjVi
MmZkMjA3ZDNlZjAxNjQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0yODcs
NiArMjg3LDcgQEAgcHVibGljOgogCiAgICAgRXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4g
aW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoKTsKICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZD4gaW5z
cGVjdG9yR3JpZE92ZXJsYXlDb3VudCgpOworICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkPiBpbnNw
ZWN0b3JQYWludFJlY3RDb3VudCgpOwogCiAgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQ+IG1hcmtl
ckNvdW50Rm9yTm9kZShOb2RlJiwgY29uc3QgU3RyaW5nJik7CiAgICAgRXhjZXB0aW9uT3I8UmVm
UHRyPFJhbmdlPj4gbWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUmLCBjb25zdCBTdHJpbmcmIG1hcmtl
clR5cGUsIHVuc2lnbmVkIGluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApp
bmRleCA4MjgxNTQ5ZDBhYzU5ZWI1NTMxNTg2ZjNjZTU1ZDdjYThhMTU2N2M1Li5hN2ZmNGUzY2Jl
MzhhZmQ0ZDJlODFiNjE3NGFlZjhjNTI1Y2UwNWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCkBAIC0zNzMsNiArMzczLDcgQEAgZW51bSBBdXRvcGxheVBvbGljeSB7CiAKICAg
ICB1bnNpZ25lZCBsb25nIGluc3BlY3RvckdyaWRPdmVybGF5Q291bnQoKTsKICAgICBET01SZWN0
TGlzdCBpbnNwZWN0b3JIaWdobGlnaHRSZWN0cygpOworICAgIHVuc2lnbmVkIGxvbmcgaW5zcGVj
dG9yUGFpbnRSZWN0Q291bnQoKTsKIAogICAgIHVuc2lnbmVkIGxvbmcgbWFya2VyQ291bnRGb3JO
b2RlKE5vZGUgbm9kZSwgRE9NU3RyaW5nIG1hcmtlclR5cGUpOwogICAgIFJhbmdlPyBtYXJrZXJS
YW5nZUZvck5vZGUoTm9kZSBub2RlLCBET01TdHJpbmcgbWFya2VyVHlwZSwgdW5zaWduZWQgbG9u
ZyBpbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JDbGllbnQuaAppbmRleCBhMDVhZTc1MGYzNmExMzA2NmQwODNmZWJhN2Fm
NTEwZGZmZTUwMDY1Li5iYjU2M2RjOTA2MzE3NjY2YzY4ODRmYTFkYWEyYWE3NTIyYTc4MWJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yQ2xpZW50LmgKQEAgLTcyLDYgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgb3Zl
cnJpZGVzU2hvd1BhaW50UmVjdHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAg
ICAgdm9pZCBzaG93UGFpbnRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRl
OworICAgIHVuc2lnbmVkIHBhaW50UmVjdENvdW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9wYWludFJlY3RMYXllcnMuc2l6ZSgpOyB9CiAKICAgICB2b2lkIHNldERldmVsb3BlclByZWZl
cmVuY2VPdmVycmlkZShXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVu
Y2UsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4pIGZpbmFsOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjU4NTZhMWQzZDdmNGJi
ZTdlZDIxNjk0ZDA4Zjk2YzA3NmU2ZjI4OC4uZmViN2E3NzVjNDUxYzI1MDgwN2ZlMWQ1ZDU0MmI5
YmUwNWJjODUwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTExLTAzICBBbnRvaW5lIFF1
aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI3MjIwMSk6
IFNhZmFyaSBzaG93ZWQgcmVkIGRpc3RvcnRpb24gb24gd2VidmlldyBhZnRlciB1c2luZyBXZWIg
SW5zcGVjdG9yLCByZXR1cm5pbmcgZnJvbSBhbm90aGVyIGFwcAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMzU4CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS84MTUwNTIwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYSBuZXcgdGVzdCwgd3JpdHRlbiBieSBQYXRyaWNrIEFuZ2xlLCB0aGF0IHRy
YWNrcyB3aGV0aGVyIHBhaW50IHJlY3RzIGhhdmUgYXBwZWFyZWQKKyAgICAgICAgYW5kIHRoZW4g
ZGlzYXBwZWFyZWQgYXMgY29udGVudCByZXBhaW50cyBpbiBhbiBpbnNwZWN0ZWQgcGFnZS4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9wYWdlL3NldFNob3dQYWludFJlY3RzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50UmVjdHMuaHRtbDog
QWRkZWQuCisKIDIwMjEtMTEtMDMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2ODkzMik6IENQVSB1c2FnZSBoaWdoZXIgdGhhbiBl
eHBlY3RlZCB3aXRoIHNpYmxpbmcgZWxlbWVudHMgcnVubmluZyBXZWJBbmltYXRpb25zCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9zZXRTaG93UGFpbnRSZWN0cy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9zZXRTaG93UGFpbnRSZWN0cy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQyOWVkZjQyNzBhNWUwYzI3YWQ1NzkyNTJhNDU0ZDU5
MGYzMmY2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3Nl
dFNob3dQYWludFJlY3RzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyBmb3Ig
dGhlIFBhZ2Uuc2V0U2hvd1BhaW50UmVjdHMuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBQ
YWdlLnNldFNob3dQYWludFJlY3RzCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUGFnZS5zZXRTaG93
UGFpbnRSZWN0cy5FbmFibGVkCitQQVNTOiBTaG91bGQgbm90IGhhdmUgcGFpbnQgcmVjdHMgZGlz
cGxheWVkLgorUEFTUzogU2hvdWxkIGhhdmUgcGFpbnQgcmVjdHMgZGlzcGxheWVkLgorUEFTUzog
U2hvdWxkIG5vdCBoYXZlIHBhaW50IHJlY3RzIGRpc3BsYXllZC4KKworLS0gUnVubmluZyB0ZXN0
IGNhc2U6IFBhZ2Uuc2V0U2hvd1BhaW50UmVjdHMuRGlzYWJsZWQKK1BBU1M6IFNob3VsZCBub3Qg
aGF2ZSBwYWludCByZWN0cyBkaXNwbGF5ZWQuCitQQVNTOiBTaG91bGQgbm90IGhhdmUgcGFpbnQg
cmVjdHMgZGlzcGxheWVkLgorUEFTUzogU2hvdWxkIG5vdCBoYXZlIHBhaW50IHJlY3RzIGRpc3Bs
YXllZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1Bh
aW50UmVjdHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNob3dQYWludFJl
Y3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGYxNjQyYmQwYjFiMzI4Mzg1MWE5Njk0YjAwYjU0YjJjOWE3
Y2Q3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNo
b3dQYWludFJlY3RzLmh0bWwKQEAgLTAsMCArMSw3OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9InJlc291cmNlcy9zZWFyY2gtc3R5bGVzaGVldC5jc3MiPgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zZWFyY2gtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIGFzeW5jIGZ1bmN0aW9uIGV4cGVjdEhhc1BhaW50UmVjdHMoZXhwZWN0
ZWQpIHsKKyAgICAgICAgLy8gRXhhY3QgcGFpbnQgcmVjdCBjb3VudHMgbWF5IHZhcnksIHNvIG9u
bHkgY2hlY2sgaWYgdGhlcmUgYXJlIHBhaW50IHJlY3RzLgorICAgICAgICBsZXQgaGFzUGFpbnRS
ZWN0cyA9ICEhYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LmludGVy
bmFscy5pbnNwZWN0b3JQYWludFJlY3RDb3VudCgpYCk7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXF1YWwoaGFzUGFpbnRSZWN0cywgZXhwZWN0ZWQsIGBTaG91bGQgJHtleHBlY3RlZCA/
ICIiIDogIm5vdCAifWhhdmUgcGFpbnQgcmVjdHMgZGlzcGxheWVkLmApOworICAgIH0KKworICAg
IGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUGFnZS5zZXRTaG93
UGFpbnRSZWN0cyIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
UGFnZS5zZXRTaG93UGFpbnRSZWN0cy5FbmFibGVkIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJU
ZXN0IHRoYXQgcGFpbnQgcmVjdHMgYXJlIGNvcnJlY3RseSBjcmVhdGVkIGFuZCByZW1vdmVkIHdo
aWxlIGVuYWJsZWQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIFBhZ2VB
Z2VudC5zZXRTaG93UGFpbnRSZWN0cyh0cnVlKTsKKyAgICAgICAgICAgIGF3YWl0IGV4cGVjdEhh
c1BhaW50UmVjdHMoZmFsc2UpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKGBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLnN0eWxlLmJhY2tncm91bmRD
b2xvciA9ICJwYXBheWF3aGlwImApOworICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJl
c29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewor
ICAgICAgICAgICAgICAgICAgICBleHBlY3RIYXNQYWludFJlY3RzKHRydWUpLnRoZW4ocmVzb2x2
ZSk7CisgICAgICAgICAgICAgICAgfSwgMTAwKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAg
ICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAg
ICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdEhhc1Bh
aW50UmVjdHMoZmFsc2UpLnRoZW4ocmVzb2x2ZSk7CisgICAgICAgICAgICAgICAgfSwgNTAwKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7CisgICAgICAgIG5hbWU6ICJQYWdlLnNldFNob3dQYWludFJlY3RzLkRpc2FibGVkIiwK
KyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IHRoYXQgcGFpbnQgcmVjdHMgYXJlIG5vdCBjcmVh
dGVkIHdoaWxlIGRpc2FibGVkLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAg
ICBQYWdlQWdlbnQuc2V0U2hvd1BhaW50UmVjdHMoZmFsc2UpOworICAgICAgICAgICAgYXdhaXQg
ZXhwZWN0SGFzUGFpbnRSZWN0cyhmYWxzZSk7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iikuc3R5bGUud2lk
dGggPSAicmViZWNjYXB1cnBsZSJgKTsKKyAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZXhwZWN0SGFzUGFpbnRSZWN0cyhmYWxzZSkudGhlbihyZXNv
bHZlKTsKKyAgICAgICAgICAgICAgICB9LCAxMDApOworICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAg
ICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0SGFz
UGFpbnRSZWN0cyhmYWxzZSkudGhlbihyZXNvbHZlKTsKKyAgICAgICAgICAgICAgICB9LCA1MDAp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRl
c3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8c3R5bGU+CisjdGVzdCB7CisgICAg
d2lkdGg6ICAxMDBweDsKKyAgICBoZWlnaHQ6ICAxMDBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBnYWluc2Jvcm87Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgorPHA+VGVzdHMgZm9yIHRoZSBQYWdlLnNldFNob3dQYWludFJlY3RzLjwvcD4KKzxkaXYg
aWQ9InRlc3QiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443626</attachid>
            <date>2021-11-08 16:10:38 -0800</date>
            <delta_ts>2021-11-09 11:55:06 -0800</delta_ts>
            <desc>Address test-related feedback</desc>
            <filename>bug-231358-20211108161037.patch</filename>
            <type>text/plain</type>
            <size>18998</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc4OGRhZWM0YmMxYTg3
MGU2MzRkODljNTM5NTBlMDYwYTFlNTc3Mi4uZDE3ZjUwY2UyYWFlZGU5Yjc3NTk5MDg4OWNhM2Mw
YzRhMTdiNTY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTExLTA4ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI3
MjIwMSk6IFNhZmFyaSBzaG93ZWQgcmVkIGRpc3RvcnRpb24gb24gd2VidmlldyBhZnRlciB1c2lu
ZyBXZWIgSW5zcGVjdG9yLCByZXR1cm5pbmcgZnJvbSBhbm90aGVyIGFwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMzU4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MTUwNTIwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvcGFnZS9zZXRTaG93UGFpbnRSZWN0cy5odG1s
CisKKyAgICAgICAgV2hlbiB3ZSBhZGRlZCBzdXBwb3J0IGZvciBhbmltYXRpbmcgaW5kaXZpZHVh
bCB0cmFuc2Zvcm0gcHJvcGVydGllcywgd2UgbW92ZWQgdG8gYSBtb2RlbCB3aGVyZSBhbGwgYW5p
bWF0aW9ucworICAgICAgICBmb3IgYSBnaXZlbiBDU1MgcHJvcGVydHkgd2VyZSB3cmFwcGVkIGlu
IGEgZGVkaWNhdGVkIENBQW5pbWF0aW9uR3JvdXAgd2hlbiBydW5uaW5nIGFjY2VsZXJhdGVkLiBU
aG9zZSBncm91cHMKKyAgICAgICAgaGF2ZSBhbiBpbmZpbml0ZSBkdXJhdGlvbiBhbmQgdGh1cyB3
b3VsZCBuZXZlciBjYWxsIHRoZSAtYW5pbWF0aW9uRGlkU3RvcDpmaW5pc2hlZDogQ0FBbmltYXRp
b25EZWxlZ2F0ZSBtZXRob2QuCisKKyAgICAgICAgQW4gb3B0aW9uIHdvdWxkIGhhdmUgYmVlbiB0
byBzZXQgdGhlIGRlbGVnYXRlIG9uIGFsbCBhbmltYXRpb25zIGNvbnRhaW5lZCBpbiBhIENBQW5p
bWF0aW9uR3JvdXAgaW4KKyAgICAgICAgUGxhdGZvcm1DQUxheWVyQ29jb2E6OmFkZEFuaW1hdGlv
bkZvcktleSgpLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGUgQ0FBbmltYXRpb25EZWxlZ2F0ZSBt
ZXRob2RzIGZvciBjaGlsZHJlbgorICAgICAgICBvZiBhbiBhbmltYXRpb24gZ3JvdXAgYXJlbid0
IGZpcmVkLgorCisgICAgICAgIFNpbmNlIHRoZSBvbmx5IGN1cnJlbnQgdXNlIGZvciB0aGUgLWFu
aW1hdGlvbkRpZFN0b3A6ZmluaXNoZWQ6IGRlbGVnYXRlIG1ldGhvZCBpcyB0byBldmVudHVhbGx5
IG1lc3NhZ2UgYmFjaworICAgICAgICBpbnRvIFdlYkluc3BlY3RvckNsaWVudDo6YW5pbWF0aW9u
RW5kZWRGb3JMYXllcigpIGZvciBvcGFjaXR5IGFuaW1hdGlvbnMsIHdoaWNoIGRvbid0IG5lZWQg
dG8gcnVuIGNvbnRhaW5lZCBpbgorICAgICAgICBncm91cHMsIG91ciBhcHByb2FjaCB0byBhZGRy
ZXNzIHRoZSBpc3N1ZSBpcyB0byBvbmx5IGdyb3VwIGFuaW1hdGlvbnMgZm9yIHRyYW5zZm9ybS1y
ZWxhdGVkIHByb3BlcnRpZXMgYW5kCisgICAgICAgIGxlYXZlIG90aGVyIGFuaW1hdGlvbnMgYXMg
c2ltcGxlIGxlYWYgYW5pbWF0aW9ucy4KKworICAgICAgICBUbyBkbyB0aGlzLCBpbnNpZGUgb2Yg
R3JhcGhpY3NMYXllckNBOjp1cGRhdGVBbmltYXRpb25zKCksIHdlIHJlcGxhY2UgdGhlIGFkZEFu
aW1hdGlvbigpIGxhbWJkYSB3aXRoIGEgbmV3CisgICAgICAgIGFkZExlYWZBbmltYXRpb24oKSBs
YW1iZGEgd2hpY2ggd2UgdXNlIGZvciBvcGFjaXR5LCBiYWNrZ3JvdW5kLWNvbG9yIGFuZCBmaWx0
ZXIgYW5pbWF0aW9ucy4KKworICAgICAgICBJbiBvcmRlciB0byBiZSBhYmxlIHRvIHRlc3QgdGhl
IHN1Y2Nlc3NmdWwgcmVtb3ZhbCBvZiByZXBhaW50IHJlY3RzIGFzIGEgcmVzdWx0IG9mIHRoZSBD
QUFuaW1hdGlvbkRlbGVnYXRlCisgICAgICAgIG1ldGhvZCBmaXJpbmcsIFBhdHJpY2sgQW5nbGUg
Y29udHJpYnV0ZWQgdGhlIHJlcXVpcmVkIGNoYW5nZXMgdW5kZXIgaW5zcGVjdG9yLyB0byBleHBv
c2UgdGhlIG51bWJlciBvZiBwYWludAorICAgICAgICByZWN0cyB0byBsYXlvdXQgdGVzdHMuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDbGllbnQ6OnBhaW50UmVjdENvdW50IGNvbnN0KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyOjpwYWludFJlY3RDb3VudCBjb25zdCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3Zl
cmxheS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6cGFpbnRSZWN0Q291
bnQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFuaW1hdGlv
bnMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6aW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjppbnNwZWN0b3JQYWludFJlY3RDb3VudCk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjEtMTEt
MDQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Q29jb2FdIE1pZ3JhdGUgZnJvbSBDVEZvbnRDb3B5VmFyaWF0aW9uQXhlcygpIHRvIENURm9udENv
cHlWYXJpYXRpb25BeGVzSW50ZXJuYWwoKSBpZiBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwOWJjN2Qz
Y2FhMzg3YzNlZTBkZjI3NjE5NWU2NGVhYzQ5MTAwMDcyLi44MWYwMjJlMTg3NGQzYzFjOTcyYTQ3
YzZiNzAxNGIxNmY5NWYwOTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTExLTA4
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJ
T04ocjI3MjIwMSk6IFNhZmFyaSBzaG93ZWQgcmVkIGRpc3RvcnRpb24gb24gd2VidmlldyBhZnRl
ciB1c2luZyBXZWIgSW5zcGVjdG9yLCByZXR1cm5pbmcgZnJvbSBhbm90aGVyIGFwcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMzU4CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84MTUwNTIwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckNs
aWVudC5oOiBFeHBvc2UgYSBwdWJsaWMgbWV0aG9kIHRvIGdldCB0aGUgbnVtYmVyIG9mIGl0ZW1z
IGluIG1fcGFpbnRSZWN0TGF5ZXJzLgorCiAyMDIxLTExLTA0ICBEZWFuIEphY2tzb24gIDxkaW5v
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBBUiBRdWlja2xvb2sgYXNzZXQgaXMg
c2hhcmVkIGluc3RlYWQgb2YgcGFnZSBVUkwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDbGllbnQuaAppbmRleCA2NmQxYjU5YzI5NDc4NjkwOTdhZjI0YjIxN2VjZmJlODhhYWQ1
ODBlLi40NjhiNjc0YzhhZmJkNjRiYmMxNzdhNGVlMGE1ODAzNmVlYmNmYTIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCkBAIC02MCw2ICs2MCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgb3ZlcnJpZGVzU2hvd1BhaW50UmVjdHMoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UGFpbnRSZWN0cyhib29s
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvd1BhaW50UmVjdChjb25zdCBGbG9hdFJlY3QmKSB7
IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHBhaW50UmVjdENvdW50KCkgY29uc3QgeyByZXR1cm4g
MDsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRTZWFyY2hpbmdGb3JOb2RlKGJvb2wpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50U2VsZWN0aW9uQ2hhbmdlZChib29sKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgdGltZWxpbmVSZWNvcmRpbmdDaGFuZ2VkKGJvb2wpIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGMzM2Jj
OTg5ZDk1YTIxNDI1ZDQzNjQzNzk1MTkwY2Y0MGY3ZTk2ODQuLjgzM2MwYmE4NDRmODdiY2VkOWIy
NDMwMTM4ZWM3Njc2Yzg4M2JmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTM2NCw2ICszNjQsMTQgQEAgdW5zaWduZWQgSW5z
cGVjdG9yQ29udHJvbGxlcjo6Z3JpZE92ZXJsYXlDb3VudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
b3ZlcmxheS0+Z3JpZE92ZXJsYXlDb3VudCgpOwogfQogCit1bnNpZ25lZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpwYWludFJlY3RDb3VudCgpIGNvbnN0Cit7CisgICAgaWYgKG1faW5zcGVjdG9yQ2xp
ZW50LT5vdmVycmlkZXNTaG93UGFpbnRSZWN0cygpKQorICAgICAgICByZXR1cm4gbV9pbnNwZWN0
b3JDbGllbnQtPnBhaW50UmVjdENvdW50KCk7CisKKyAgICByZXR1cm4gbV9vdmVybGF5LT5wYWlu
dFJlY3RDb3VudCgpOworfQorCiBib29sIEluc3BlY3RvckNvbnRyb2xsZXI6OnNob3VsZFNob3dP
dmVybGF5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9vdmVybGF5LT5zaG91bGRTaG93T3Zlcmxh
eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgK
aW5kZXggMTFjMjZjY2ZkODM2YzIzZWM4NWE1MjA4MmU0ZWI0ZjRhMWZmZGUyNS4uZjZmZWM3Y2Zi
Y2JkMmQ3ZmJhMzBiZGQzMTM4ZTBlZGZiM2Y2OTA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0xMDYsNiArMTA2LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0SXNVbmRlclRlc3QoYm9vbCBpc1VuZGVyVGVzdCkgeyBtX2lzVW5kZXJU
ZXN0ID0gaXNVbmRlclRlc3Q7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV2YWx1YXRlRm9y
VGVzdEluRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBzY3JpcHQpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHVuc2lnbmVkIGdyaWRPdmVybGF5Q291bnQoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB1
bnNpZ25lZCBwYWludFJlY3RDb3VudCgpIGNvbnN0OwogCiAgICAgSW5zcGVjdG9yQ2xpZW50KiBp
bnNwZWN0b3JDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvckNsaWVudDsgfQogICAg
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50KiBpbnNwZWN0b3JGcm9udGVuZENsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1faW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5oCmluZGV4IGUwM2QyNzM4NGQzM2UzNWQ3MzJmMTM5
M2M3NWRkZTRiN2ZhZWJlYjEuLmE3MzlhNWM4NWI1YmQ5Yzk4ODU3ZDZmYTY5ZTkyYjM1OGViMTM4
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuaApAQCAt
MjAwLDYgKzIwMCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U2hvd1BhaW50UmVjdHMoYm9v
bCk7CiAgICAgdm9pZCBzaG93UGFpbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOworICAgIHVuc2ln
bmVkIHBhaW50UmVjdENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9wYWludFJlY3RzLnNpemUoKTsg
fQogCiAgICAgdm9pZCBzZXRTaG93UnVsZXJzKGJvb2wpOwogICAgIHZvaWQgc2V0U2hvd1J1bGVy
c0R1cmluZ0VsZW1lbnRTZWxlY3Rpb24oYm9vbCBlbmFibGVkKSB7IG1fc2hvd1J1bGVyc0R1cmlu
Z0VsZW1lbnRTZWxlY3Rpb24gPSBlbmFibGVkOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCA2ZjcwNWVm
YjZkZDUyMzdiNjM3ZjBiMzNiNmM2NGE1NjQwYmEwMjMzLi41MTkwYTM4NjU0MzAwNzIwMDUwOWNm
OTA1YjcwZjU1ZDA3YjU3YjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTMwODUsOSArMzA4NSwxMSBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQW5pbWF0aW9ucygpCiAgICAgICAgICAgICBh
bmltYXRpb24ubV9wbGF5U3RhdGUgPSBQbGF5U3RhdGU6OlBsYXlpbmc7CiAgICAgfTsKIAotICAg
IGF1dG8gYWRkQW5pbWF0aW9uID0gWyZdKExheWVyUHJvcGVydHlBbmltYXRpb24mIGFuaW1hdGlv
biwgQWRkaXRpdmUgYWRkaXRpdmUgPSBBZGRpdGl2ZTo6WWVzKSB7Ci0gICAgICAgIHByZXBhcmVB
bmltYXRpb25Gb3JBZGRpdGlvbihhbmltYXRpb24sIGFkZGl0aXZlKTsKLSAgICAgICAgYWRkQW5p
bWF0aW9uR3JvdXAoYW5pbWF0aW9uLm1fcHJvcGVydHksIHsgYW5pbWF0aW9uLm1fYW5pbWF0aW9u
IH0pOworICAgIGF1dG8gYWRkTGVhZkFuaW1hdGlvbiA9IFsmXShMYXllclByb3BlcnR5QW5pbWF0
aW9uJiBhbmltYXRpb24pIHsKKyAgICAgICAgQVNTRVJUKGFuaW1hdGlvbi5tX2JlZ2luVGltZSk7
CisgICAgICAgICphbmltYXRpb24ubV9iZWdpblRpbWUgKz0gYW5pbWF0aW9uR3JvdXBCZWdpblRp
bWU7CisgICAgICAgIHByZXBhcmVBbmltYXRpb25Gb3JBZGRpdGlvbihhbmltYXRpb24sIEFkZGl0
aXZlOjpObyk7CisgICAgICAgIHNldEFuaW1hdGlvbk9uTGF5ZXIoYW5pbWF0aW9uKTsKICAgICB9
OwogCiAgICAgZW51bSBjbGFzcyBUcmFuc2Zvcm1hdGlvbk1hdHJpeFNvdXJjZSB7IFVzZUlkZW50
aXR5TWF0cml4LCBBc2tDbGllbnQgfTsKQEAgLTMxMjIsOCArMzEyNCwxMCBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6dXBkYXRlQW5pbWF0aW9ucygpCiAgICAgICAgIC8vIGlzIHRoZSBpbml0aWFs
IGJhc2UgdmFsdWUgdHJhbnNmb3JtIGFuaW1hdGlvbiBhbmQgbXVzdCBvdmVycmlkZSB0aGUgY3Vy
cmVudCB0cmFuc2Zvcm0gdmFsdWUgZm9yIHRoaXMgbGF5ZXIuCiAgICAgICAgIC8vIE90aGVyd2lz
ZSwgaXQgaXMgbWVhbnQgdG8gYXBwbHkgdGhlIHVuZGVybHlpbmcgdmFsdWUgZm9yIG9uZSBzcGVj
aWZpYyB0cmFuc2Zvcm0tcmVsYXRlZCBwcm9wZXJ0eSBhbmQgYmUgYWRkaXRpdmUKICAgICAgICAg
Ly8gdG8gYmUgY29tYmluZWQgd2l0aCB0aGUgb3RoZXIgYmFzZSB2YWx1ZSB0cmFuc2Zvcm0gYW5p
bWF0aW9ucyBhbmQgaW50ZXJwb2xhdGluZyBhbmltYXRpb25zLgotICAgICAgICBpZiAoYXV0byog
YW5pbWF0aW9uID0gbWFrZUJhc2VWYWx1ZVRyYW5zZm9ybUFuaW1hdGlvbihwcm9wZXJ0eSwgbWF0
cml4U291cmNlLCBiZWdpblRpbWVPZkVhcmxpZXN0UHJvcGVydHlBbmltYXRpb24pKQotICAgICAg
ICAgICAgYWRkQW5pbWF0aW9uKCphbmltYXRpb24sIG1hdHJpeFNvdXJjZSA9PSBUcmFuc2Zvcm1h
dGlvbk1hdHJpeFNvdXJjZTo6QXNrQ2xpZW50ID8gQWRkaXRpdmU6OlllcyA6IEFkZGl0aXZlOjpO
byk7CisgICAgICAgIGlmIChhdXRvKiBhbmltYXRpb24gPSBtYWtlQmFzZVZhbHVlVHJhbnNmb3Jt
QW5pbWF0aW9uKHByb3BlcnR5LCBtYXRyaXhTb3VyY2UsIGJlZ2luVGltZU9mRWFybGllc3RQcm9w
ZXJ0eUFuaW1hdGlvbikpIHsKKyAgICAgICAgICAgIHByZXBhcmVBbmltYXRpb25Gb3JBZGRpdGlv
bigqYW5pbWF0aW9uLCBtYXRyaXhTb3VyY2UgPT0gVHJhbnNmb3JtYXRpb25NYXRyaXhTb3VyY2U6
OkFza0NsaWVudCA/IEFkZGl0aXZlOjpZZXMgOiBBZGRpdGl2ZTo6Tm8pOworICAgICAgICAgICAg
YWRkQW5pbWF0aW9uR3JvdXAoYW5pbWF0aW9uLT5tX3Byb3BlcnR5LCB7IGFuaW1hdGlvbi0+bV9h
bmltYXRpb24gfSk7CisgICAgICAgIH0KICAgICB9OwogCiAgICAgLy8gSXRlcmF0ZSB0aHJvdWdo
IGFsbCBhbmltYXRpb25zIHRvIHNldCB0aGUgYmVnaW4gdGltZSBvZiBhbnkgbmV3IGFuaW1hdGlv
bnMuCkBAIC0zMTMyLDcgKzMxMzYsMTAgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFu
aW1hdGlvbnMoKQogICAgICAgICAgICAgYW5pbWF0aW9uLm1fYmVnaW5UaW1lID0gY3VycmVudFRp
bWUgLSBhbmltYXRpb25Hcm91cEJlZ2luVGltZTsKICAgICB9CiAKLSAgICAvLyBOb3csIHJlbW92
ZSBhbGwgYW5pbWF0aW9uIGdyb3VwcyBmcm9tIHRoZSBsYXllciBzbyB0aGF0IHdlIG5vIGxvbmdl
ciBoYXZlIGFueSBsYXllciBhbmltYXRpb25zLgorICAgIC8vIE5vdywgcmVtb3ZlIGFsbCBhbmlt
YXRpb24gZ3JvdXBzIGFuZCBsZWFmIGFuaW1hdGlvbnMgZnJvbSB0aGUgbGF5ZXIgc28gdGhhdAor
ICAgIC8vIHdlIG5vIGxvbmdlciBoYXZlIGFueSBsYXllciBhbmltYXRpb25zLgorICAgIGZvciAo
YXV0byYgYW5pbWF0aW9uIDogbV9hbmltYXRpb25zKQorICAgICAgICByZW1vdmVDQUFuaW1hdGlv
bkZyb21MYXllcihhbmltYXRpb24pOwogICAgIGZvciAoYXV0byYgYW5pbWF0aW9uR3JvdXAgOiBt
X2FuaW1hdGlvbkdyb3VwcykKICAgICAgICAgcmVtb3ZlQ0FBbmltYXRpb25Gcm9tTGF5ZXIoYW5p
bWF0aW9uR3JvdXApOwogCkBAIC0zMTg3LDcgKzMxOTQsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJD
QTo6dXBkYXRlQW5pbWF0aW9ucygpCiAjaWYgRU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKICAgICAg
ICAgY2FzZSBBbmltYXRlZFByb3BlcnR5V2Via2l0QmFja2Ryb3BGaWx0ZXI6CiAjZW5kaWYKLSAg
ICAgICAgICAgIGFkZEFuaW1hdGlvbihhbmltYXRpb24sIEFkZGl0aXZlOjpObyk7CisgICAgICAg
ICAgICBhZGRMZWFmQW5pbWF0aW9uKGFuaW1hdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBBbmltYXRlZFByb3BlcnR5SW52YWxpZDoKICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDUzYmJh
OWJlMWQ0ODJmNmQwMjdlYjU3N2FkMzRhZWJlMTZlZGRiMWEuLjZiNTFhNjdhMzA1YzY3OWI2YmUz
NjhhMmI2ZjQ5MzAwNTJiOGM4ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
QEAgLTE3NjYsNiArMTc2NiwxNSBAQCBFeGNlcHRpb25PcjxSZWY8RE9NUmVjdExpc3Q+PiBJbnRl
cm5hbHM6Omluc3BlY3RvckhpZ2hsaWdodFJlY3RzKCkKICAgICByZXR1cm4gRE9NUmVjdExpc3Q6
OmNyZWF0ZShoaWdobGlnaHQucXVhZHMpOwogfQogCitFeGNlcHRpb25Pcjx1bnNpZ25lZD4gSW50
ZXJuYWxzOjppbnNwZWN0b3JQYWludFJlY3RDb3VudCgpCit7CisgICAgYXV0byBkb2N1bWVudCA9
IGNvbnRleHREb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdl
KCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKwor
ICAgIHJldHVybiBkb2N1bWVudC0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkucGFpbnRS
ZWN0Q291bnQoKTsKK30KKwogRXhjZXB0aW9uT3I8dW5zaWduZWQ+IEludGVybmFsczo6bWFya2Vy
Q291bnRGb3JOb2RlKE5vZGUmIG5vZGUsIGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSkKIHsKICAg
ICBPcHRpb25TZXQ8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+IG1hcmtlclR5cGVzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNmI1N2ZlYzY0YjQwNjYzYTkxZGU2OWNlNTRk
ZjFlYTNiYTU4MWY4My4uNzhiMDRiZTdiYzVkZWU1YmNkOWRmYjViMmZkMjA3ZDNlZjAxNjQ1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0yODcsNiArMjg3LDcgQEAgcHVibGlj
OgogCiAgICAgRXhjZXB0aW9uT3I8UmVmPERPTVJlY3RMaXN0Pj4gaW5zcGVjdG9ySGlnaGxpZ2h0
UmVjdHMoKTsKICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZD4gaW5zcGVjdG9yR3JpZE92ZXJsYXlD
b3VudCgpOworICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkPiBpbnNwZWN0b3JQYWludFJlY3RDb3Vu
dCgpOwogCiAgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQ+IG1hcmtlckNvdW50Rm9yTm9kZShOb2Rl
JiwgY29uc3QgU3RyaW5nJik7CiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPFJhbmdlPj4gbWFya2Vy
UmFuZ2VGb3JOb2RlKE5vZGUmLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGlu
ZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA4MjgxNTQ5ZDBhYzU5
ZWI1NTMxNTg2ZjNjZTU1ZDdjYThhMTU2N2M1Li5hN2ZmNGUzY2JlMzhhZmQ0ZDJlODFiNjE3NGFl
ZjhjNTI1Y2UwNWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zNzMs
NiArMzczLDcgQEAgZW51bSBBdXRvcGxheVBvbGljeSB7CiAKICAgICB1bnNpZ25lZCBsb25nIGlu
c3BlY3RvckdyaWRPdmVybGF5Q291bnQoKTsKICAgICBET01SZWN0TGlzdCBpbnNwZWN0b3JIaWdo
bGlnaHRSZWN0cygpOworICAgIHVuc2lnbmVkIGxvbmcgaW5zcGVjdG9yUGFpbnRSZWN0Q291bnQo
KTsKIAogICAgIHVuc2lnbmVkIGxvbmcgbWFya2VyQ291bnRGb3JOb2RlKE5vZGUgbm9kZSwgRE9N
U3RyaW5nIG1hcmtlclR5cGUpOwogICAgIFJhbmdlPyBtYXJrZXJSYW5nZUZvck5vZGUoTm9kZSBu
b2RlLCBET01TdHJpbmcgbWFya2VyVHlwZSwgdW5zaWduZWQgbG9uZyBpbmRleCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JDbGll
bnQuaAppbmRleCBhMDVhZTc1MGYzNmExMzA2NmQwODNmZWJhN2FmNTEwZGZmZTUwMDY1Li5iYjU2
M2RjOTA2MzE3NjY2YzY4ODRmYTFkYWEyYWE3NTIyYTc4MWJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yQ2xpZW50LmgKQEAg
LTcyLDYgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgb3ZlcnJpZGVzU2hvd1BhaW50UmVj
dHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBzaG93UGFpbnRS
ZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHVuc2lnbmVkIHBh
aW50UmVjdENvdW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wYWludFJlY3RMYXllcnMu
c2l6ZSgpOyB9CiAKICAgICB2b2lkIHNldERldmVsb3BlclByZWZlcmVuY2VPdmVycmlkZShXZWJD
b3JlOjpJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2UsIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4pIGZpbmFsOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTEzNWM1YjFmZDAyNDJmMGQ2ZWRjYWQxMGNlMzgyMTNl
ZDExYzc0Yi4uYzQwMWJkNzk2YmZkZmFjNmJmYjZkMjAxMmRjNGI2YjNiYjRhMTUxNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDIxLTExLTA4ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJr
aXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI3MjIwMSk6IFNhZmFyaSBzaG93ZWQgcmVk
IGRpc3RvcnRpb24gb24gd2VidmlldyBhZnRlciB1c2luZyBXZWIgSW5zcGVjdG9yLCByZXR1cm5p
bmcgZnJvbSBhbm90aGVyIGFwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMxMzU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MTUwNTIwOD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcg
dGVzdCwgd3JpdHRlbiBieSBQYXRyaWNrIEFuZ2xlLCB0aGF0IHRyYWNrcyB3aGV0aGVyIHBhaW50
IHJlY3RzIGhhdmUgYXBwZWFyZWQKKyAgICAgICAgYW5kIHRoZW4gZGlzYXBwZWFyZWQgYXMgY29u
dGVudCByZXBhaW50cyBpbiBhbiBpbnNwZWN0ZWQgcGFnZS4KKworICAgICAgICAqIGluc3BlY3Rv
ci9wYWdlL3NldFNob3dQYWludFJlY3RzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50UmVjdHMuaHRtbDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vaW9zLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy13azEvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0xMS0wNCAgTGF1cm8gTW91cmEgIDxsbW91
cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xJQl0gR2FyZGVuaW5nIHNvbWUgdGltZW91dHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNob3dQYWludFJlY3Rz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNob3dQYWludFJl
Y3RzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTQ1YzMxNDI3YmI2YTM1MTA2MDhjYTNiMTdj
OWUxYzU5NDE0MDY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Bh
Z2Uvc2V0U2hvd1BhaW50UmVjdHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3Rz
IGZvciB0aGUgUGFnZS5zZXRTaG93UGFpbnRSZWN0cy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3Vp
dGU6IFBhZ2Uuc2V0U2hvd1BhaW50UmVjdHMKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBQYWdlLnNl
dFNob3dQYWludFJlY3RzLkVuYWJsZWQKK1BBU1M6IFNob3VsZCBub3QgaGF2ZSBwYWludCByZWN0
cyBkaXNwbGF5ZWQuCitQQVNTOiBTaG91bGQgaGF2ZSBwYWludCByZWN0cyBkaXNwbGF5ZWQuCitQ
QVNTOiBTaG91bGQgbm90IGhhdmUgcGFpbnQgcmVjdHMgZGlzcGxheWVkLgorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogUGFnZS5zZXRTaG93UGFpbnRSZWN0cy5EaXNhYmxlZAorUEFTUzogU2hvdWxk
IG5vdCBoYXZlIHBhaW50IHJlY3RzIGRpc3BsYXllZC4KK1BBU1M6IFNob3VsZCBub3QgaGF2ZSBo
YWQgYW55IHBhaW50IHJlY3RzIGRpc3BsYXllZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50UmVjdHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wYWdlL3NldFNob3dQYWludFJlY3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTBjODQwZDkzMDJi
NmI3ZDAyNjY5NDc3MmMxNGIzMzBjN2ZkMWE2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wYWdlL3NldFNob3dQYWludFJlY3RzLmh0bWwKQEAgLTAsMCArMSw3OSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCit3aW5kb3cuX3Rlc3RfaGFzUGFpbnRSZWN0cyA9IGZhbHNlOword2luZG93
Ll90ZXN0X2hhc1BhaW50UmVjdHNPYnNlcnZlciA9IHNldEludGVydmFsKCgpID0+IHsKKyAgICBs
ZXQgcGFpbnRSZWN0c0NvdW50ID0gd2luZG93LmludGVybmFscy5pbnNwZWN0b3JQYWludFJlY3RD
b3VudCgpOworCisgICAgLy8gRXhhY3QgcGFpbnQgcmVjdCBjb3VudHMgbWF5IHZhcnksIHNvIG9u
bHkgY2hlY2sgaWYgdGhlcmUgYXJlIHBhaW50IHJlY3RzLgorICAgIGlmICghIXBhaW50UmVjdHND
b3VudCAhPSB3aW5kb3cuX3Rlc3RfaGFzUGFpbnRSZWN0cykgeworICAgICAgICB3aW5kb3cuX3Rl
c3RfaGFzUGFpbnRSZWN0cyA9ICEhcGFpbnRSZWN0c0NvdW50OworICAgICAgICBUZXN0UGFnZS5k
aXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiVGVzdEhhc1BhaW50UmVjdHNEaWRDaGFuZ2UiKTsKKyAg
ICB9Cit9LCAwKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgYXN5bmMgZnVuY3Rpb24gZXhw
ZWN0SGFzUGFpbnRSZWN0c0RpZENoYW5nZVRvKGV4cGVjdGVkKSB7CisgICAgICAgIGF3YWl0IElu
c3BlY3RvclRlc3QuYXdhaXRFdmVudCgiVGVzdEhhc1BhaW50UmVjdHNEaWRDaGFuZ2UiKTsKKyAg
ICAgICAgYXdhaXQgZXhwZWN0SGFzUGFpbnRSZWN0cyhleHBlY3RlZCk7CisgICAgfQorCisgICAg
YXN5bmMgZnVuY3Rpb24gZXhwZWN0SGFzUGFpbnRSZWN0cyhleHBlY3RlZCkgeworICAgICAgICBs
ZXQgaGFzUGFpbnRSZWN0cyA9IGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdp
bmRvdy5fdGVzdF9oYXNQYWludFJlY3RzYCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
RXF1YWwoaGFzUGFpbnRSZWN0cywgZXhwZWN0ZWQsIGBTaG91bGQgJHtleHBlY3RlZCA/ICIiIDog
Im5vdCAifWhhdmUgcGFpbnQgcmVjdHMgZGlzcGxheWVkLmApOworICAgIH0KKworICAgIGxldCBz
dWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUGFnZS5zZXRTaG93UGFpbnRS
ZWN0cyIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUGFnZS5z
ZXRTaG93UGFpbnRSZWN0cy5FbmFibGVkIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IHRo
YXQgcGFpbnQgcmVjdHMgYXJlIGNvcnJlY3RseSBjcmVhdGVkIGFuZCByZW1vdmVkIHdoaWxlIGVu
YWJsZWQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGF3YWl0IFBhZ2VB
Z2VudC5zZXRTaG93UGFpbnRSZWN0cyh0cnVlKTsKKyAgICAgICAgICAgIGF3YWl0IGV4cGVjdEhh
c1BhaW50UmVjdHMoZmFsc2UpOworCisgICAgICAgICAgICBsZXQgaGFzUGFpbnRSZWN0c1Byb21p
c2UgPSBleHBlY3RIYXNQYWludFJlY3RzRGlkQ2hhbmdlVG8odHJ1ZSk7CisKKyAgICAgICAgICAg
IGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXN0Iikuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gInBhcGF5YXdoaXAiYCk7CisgICAg
ICAgICAgICBhd2FpdCBoYXNQYWludFJlY3RzUHJvbWlzZTsKKyAgICAgICAgICAgIGF3YWl0IGV4
cGVjdEhhc1BhaW50UmVjdHNEaWRDaGFuZ2VUbyhmYWxzZSk7CisgICAgICAgIH0KKyAgICB9KTsK
KworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlBhZ2Uuc2V0U2hvd1Bh
aW50UmVjdHMuRGlzYWJsZWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgdGhhdCBwYWlu
dCByZWN0cyBhcmUgbm90IGNyZWF0ZWQgd2hpbGUgZGlzYWJsZWQuIiwKKyAgICAgICAgYXN5bmMg
dGVzdCgpIHsKKyAgICAgICAgICAgIGF3YWl0IFBhZ2VBZ2VudC5zZXRTaG93UGFpbnRSZWN0cyhm
YWxzZSk7CisgICAgICAgICAgICBhd2FpdCBleHBlY3RIYXNQYWludFJlY3RzKGZhbHNlKTsKKwor
ICAgICAgICAgICAgbGV0IGhhc1BhaW50UmVjdHNEaWRDaGFuZ2UgPSBQcm9taXNlLnJhY2UoWwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiVGVzdEhhc1BhaW50UmVj
dHNEaWRDaGFuZ2UiKS50aGVuKCgpID0+IHRydWUpLAorICAgICAgICAgICAgICAgIG5ldyBQcm9t
aXNlKChyZXNvbHZlKSA9PiB7IHNldFRpbWVvdXQocmVzb2x2ZSwgNTAwLCBmYWxzZSk7IH0pLAor
ICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iikuc3R5bGUuYmFja2dyb3Vu
ZENvbG9yID0gInJlYmVjY2FwdXJwbGUiYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEZhbHNlKGF3YWl0IGhhc1BhaW50UmVjdHNEaWRDaGFuZ2UsIGBTaG91bGQgbm90IGhhdmUg
aGFkIGFueSBwYWludCByZWN0cyBkaXNwbGF5ZWQuYCk7CisgICAgICAgIH0KKyAgICB9KTsKKwor
ICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8c3R5bGU+
CisjdGVzdCB7CisgICAgd2lkdGg6IDEwMHB4OworICAgIGhlaWdodDogMTAwcHg7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogZ2FpbnNib3JvOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIGZvciB0aGUgUGFnZS5zZXRTaG93UGFpbnRSZWN0
cy48L3A+Cis8ZGl2IGlkPSJ0ZXN0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1OGEwMDYxZTFk
YmQxMDhkZDViYzk5YTk4MjIzZmRlOTZlM2Q5YjBiLi4wYmNlZjgzZDQzY2YwMjMxMzhkNTk4YWQ0
OTM2OWZhZmZlY2Q4M2UyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2sx
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMS9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xOTUzLDMgKzE5NTMsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUgWyBTa2lwIF0KIHdlYmtpdC5v
cmcvYi8yMjMxOTMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9l
bGVtZW50L3BhdGgtb2JqZWN0cy8yZC5wYXRoLnN0cm9rZS5zY2FsZTIuaHRtbCBbIEZhaWx1cmUg
XQogCiB3ZWJraXQub3JnL2IvMjI5MjQ3IGh0dHAvdGVzdHMvZmV0Y2gva2VlcGFsaXZlLWZldGNo
LTIuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisKKyMgRHVtcFJlbmRlclRyZWUgZG9lc24ndCBpbnZv
a2UgaW5zcGVjdG9yIGluc3RydW1lbnRhdGlvbiB3aGVuIHJlcGFpbnRpbmcuCit3ZWJraXQub3Jn
L2IvMjMyODUyIGluc3BlY3Rvci9wYWdlL3NldFNob3dQYWludFJlY3RzLmh0bWwgWyBTa2lwIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0
Y2ZjZjhhYjQzZDE5NTYzNzQ2OGZmZjhmODc2MjBjNjczODM1NDcxLi42ODY1MDYzZmM5Y2ZiZGRk
MzU3NWEwYzBjYmRmMTBjOTc3OGZlMTJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNTExLDMgKzE1MTEsNiBAQCB3ZWJraXQub3JnL2Iv
MjMyMzE1IFsgQ2F0YWxpbmEgRGVidWcgXSBtZWRpYS90cmFjay90cmFjay1kaXNhYmxlZC5odG1s
IFsgUGFzcyBDcgogd2Via2l0Lm9yZy9iLzIzMjQ0NiBbIENhdGFsaW5hIERlYnVnIF0gbWVkaWEv
dHJhY2svdHJhY2stZWxlbWVudC1kb20tY2hhbmdlLWNyYXNoLmh0bWwgWyBQYXNzIENyYXNoIF0K
IAogd2Via2l0Lm9yZy9iLzIzMjU4NSBbIENhdGFsaW5hIERlYnVnIF0gbWVkaWEvdHJhY2svdHJh
Y2stZWxlbWVudC1sb2FkLWV2ZW50Lmh0bWwgWyBQYXNzIENyYXNoIF0KKworIyBEdW1wUmVuZGVy
VHJlZSBkb2Vzbid0IGludm9rZSBpbnNwZWN0b3IgaW5zdHJ1bWVudGF0aW9uIHdoZW4gcmVwYWlu
dGluZy4KK3dlYmtpdC5vcmcvYi8yMzI4NTIgaW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50UmVj
dHMuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443713</attachid>
            <date>2021-11-09 11:55:11 -0800</date>
            <delta_ts>2021-11-09 13:25:39 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231358-20211109205509.patch</filename>
            <type>text/plain</type>
            <size>18971</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Mzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTkxYzY4NTM0Mzc1YWI3
MDQ5YjBlOWZlZjQzZGUyNDA0YjY1NGVhOS4uNTMzNWI1OTQ4ZjRhZjU5Y2VjOWQ2NzVmMzYwNjEw
ODUyMDVhYTZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTExLTA5ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI3
MjIwMSk6IFNhZmFyaSBzaG93ZWQgcmVkIGRpc3RvcnRpb24gb24gd2VidmlldyBhZnRlciB1c2lu
ZyBXZWIgSW5zcGVjdG9yLCByZXR1cm5pbmcgZnJvbSBhbm90aGVyIGFwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMzU4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MTUwNTIwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28u
CisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50UmVjdHMuaHRtbAor
CisgICAgICAgIFdoZW4gd2UgYWRkZWQgc3VwcG9ydCBmb3IgYW5pbWF0aW5nIGluZGl2aWR1YWwg
dHJhbnNmb3JtIHByb3BlcnRpZXMsIHdlIG1vdmVkIHRvIGEgbW9kZWwgd2hlcmUgYWxsIGFuaW1h
dGlvbnMKKyAgICAgICAgZm9yIGEgZ2l2ZW4gQ1NTIHByb3BlcnR5IHdlcmUgd3JhcHBlZCBpbiBh
IGRlZGljYXRlZCBDQUFuaW1hdGlvbkdyb3VwIHdoZW4gcnVubmluZyBhY2NlbGVyYXRlZC4gVGhv
c2UgZ3JvdXBzCisgICAgICAgIGhhdmUgYW4gaW5maW5pdGUgZHVyYXRpb24gYW5kIHRodXMgd291
bGQgbmV2ZXIgY2FsbCB0aGUgLWFuaW1hdGlvbkRpZFN0b3A6ZmluaXNoZWQ6IENBQW5pbWF0aW9u
RGVsZWdhdGUgbWV0aG9kLgorCisgICAgICAgIEFuIG9wdGlvbiB3b3VsZCBoYXZlIGJlZW4gdG8g
c2V0IHRoZSBkZWxlZ2F0ZSBvbiBhbGwgYW5pbWF0aW9ucyBjb250YWluZWQgaW4gYSBDQUFuaW1h
dGlvbkdyb3VwIGluCisgICAgICAgIFBsYXRmb3JtQ0FMYXllckNvY29hOjphZGRBbmltYXRpb25G
b3JLZXkoKSwgYnV0IGFzIGl0IHR1cm5zIG91dCwgdGhlIENBQW5pbWF0aW9uRGVsZWdhdGUgbWV0
aG9kcyBmb3IgY2hpbGRyZW4KKyAgICAgICAgb2YgYW4gYW5pbWF0aW9uIGdyb3VwIGFyZW4ndCBm
aXJlZC4KKworICAgICAgICBTaW5jZSB0aGUgb25seSBjdXJyZW50IHVzZSBmb3IgdGhlIC1hbmlt
YXRpb25EaWRTdG9wOmZpbmlzaGVkOiBkZWxlZ2F0ZSBtZXRob2QgaXMgdG8gZXZlbnR1YWxseSBt
ZXNzYWdlIGJhY2sKKyAgICAgICAgaW50byBXZWJJbnNwZWN0b3JDbGllbnQ6OmFuaW1hdGlvbkVu
ZGVkRm9yTGF5ZXIoKSBmb3Igb3BhY2l0eSBhbmltYXRpb25zLCB3aGljaCBkb24ndCBuZWVkIHRv
IHJ1biBjb250YWluZWQgaW4KKyAgICAgICAgZ3JvdXBzLCBvdXIgYXBwcm9hY2ggdG8gYWRkcmVz
cyB0aGUgaXNzdWUgaXMgdG8gb25seSBncm91cCBhbmltYXRpb25zIGZvciB0cmFuc2Zvcm0tcmVs
YXRlZCBwcm9wZXJ0aWVzIGFuZAorICAgICAgICBsZWF2ZSBvdGhlciBhbmltYXRpb25zIGFzIHNp
bXBsZSBsZWFmIGFuaW1hdGlvbnMuCisKKyAgICAgICAgVG8gZG8gdGhpcywgaW5zaWRlIG9mIEdy
YXBoaWNzTGF5ZXJDQTo6dXBkYXRlQW5pbWF0aW9ucygpLCB3ZSByZXBsYWNlIHRoZSBhZGRBbmlt
YXRpb24oKSBsYW1iZGEgd2l0aCBhIG5ldworICAgICAgICBhZGRMZWFmQW5pbWF0aW9uKCkgbGFt
YmRhIHdoaWNoIHdlIHVzZSBmb3Igb3BhY2l0eSwgYmFja2dyb3VuZC1jb2xvciBhbmQgZmlsdGVy
IGFuaW1hdGlvbnMuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gYmUgYWJsZSB0byB0ZXN0IHRoZSBz
dWNjZXNzZnVsIHJlbW92YWwgb2YgcmVwYWludCByZWN0cyBhcyBhIHJlc3VsdCBvZiB0aGUgQ0FB
bmltYXRpb25EZWxlZ2F0ZQorICAgICAgICBtZXRob2QgZmlyaW5nLCBQYXRyaWNrIEFuZ2xlIGNv
bnRyaWJ1dGVkIHRoZSByZXF1aXJlZCBjaGFuZ2VzIHVuZGVyIGluc3BlY3Rvci8gdG8gZXhwb3Nl
IHRoZSBudW1iZXIgb2YgcGFpbnQKKyAgICAgICAgcmVjdHMgdG8gbGF5b3V0IHRlc3RzLgorCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ2xpZW50OjpwYWludFJlY3RDb3VudCBjb25zdCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Q29udHJvbGxlcjo6cGFpbnRSZWN0Q291bnQgY29uc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJs
YXkuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnBhaW50UmVjdENvdW50
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVBbmltYXRpb25z
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6Omluc3BlY3RvckhpZ2hsaWdodFJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6aW5zcGVjdG9yUGFpbnRSZWN0Q291bnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIxLTExLTA4
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtXZWIgQW5p
bWF0aW9uc10gQWRkIHN1cHBvcnQgZm9yIGNvbXBvc2l0ZSBvcGVyYXRpb25zIGZvciBzb2Z0d2Fy
ZSBhbmltYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE2MWQ1MTE2ODcxNDIxM2EyYmVjY2I4MGUyNWZhYTBh
MzNkNDEwZmQuLjIzOGM1ZmQzMmU3ODNiOGM2M2MxMTMwNzAyNTNmZDBkY2MxMGQwNTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTEtMDkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRz
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjcyMjAxKTogU2FmYXJpIHNob3dl
ZCByZWQgZGlzdG9ydGlvbiBvbiB3ZWJ2aWV3IGFmdGVyIHVzaW5nIFdlYiBJbnNwZWN0b3IsIHJl
dHVybmluZyBmcm9tIGFub3RoZXIgYXBwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzEzNTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxNTA1MjA4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckNsaWVudC5oOgorCiAyMDIxLTExLTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFdoZWVsRXZlbnRE
ZWx0YUZpbHRlcjo6c2hvdWxkQXBwbHlGaWx0ZXJpbmdGb3JFdmVudCBjYW4gYmUgYSBzdGF0aWMg
ZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaAppbmRl
eCA2NmQxYjU5YzI5NDc4NjkwOTdhZjI0YjIxN2VjZmJlODhhYWQ1ODBlLi40NjhiNjc0YzhhZmJk
NjRiYmMxNzdhNGVlMGE1ODAzNmVlYmNmYTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNsaWVudC5oCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgb3ZlcnJpZGVzU2hvd1BhaW50UmVjdHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UGFpbnRSZWN0cyhib29sKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc2hvd1BhaW50UmVjdChjb25zdCBGbG9hdFJlY3QmKSB7IH0KKyAgICB2aXJ0dWFsIHVu
c2lnbmVkIHBhaW50UmVjdENvdW50KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwg
dm9pZCBkaWRTZXRTZWFyY2hpbmdGb3JOb2RlKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBl
bGVtZW50U2VsZWN0aW9uQ2hhbmdlZChib29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdGltZWxp
bmVSZWNvcmRpbmdDaGFuZ2VkKGJvb2wpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGMzM2JjOTg5ZDk1YTIxNDI1ZDQzNjQz
Nzk1MTkwY2Y0MGY3ZTk2ODQuLjgzM2MwYmE4NDRmODdiY2VkOWIyNDMwMTM4ZWM3Njc2Yzg4M2Jm
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKQEAgLTM2NCw2ICszNjQsMTQgQEAgdW5zaWduZWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
Z3JpZE92ZXJsYXlDb3VudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fb3ZlcmxheS0+Z3JpZE92ZXJs
YXlDb3VudCgpOwogfQogCit1bnNpZ25lZCBJbnNwZWN0b3JDb250cm9sbGVyOjpwYWludFJlY3RD
b3VudCgpIGNvbnN0Cit7CisgICAgaWYgKG1faW5zcGVjdG9yQ2xpZW50LT5vdmVycmlkZXNTaG93
UGFpbnRSZWN0cygpKQorICAgICAgICByZXR1cm4gbV9pbnNwZWN0b3JDbGllbnQtPnBhaW50UmVj
dENvdW50KCk7CisKKyAgICByZXR1cm4gbV9vdmVybGF5LT5wYWludFJlY3RDb3VudCgpOworfQor
CiBib29sIEluc3BlY3RvckNvbnRyb2xsZXI6OnNob3VsZFNob3dPdmVybGF5KCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9vdmVybGF5LT5zaG91bGRTaG93T3ZlcmxheSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggMTFjMjZjY2ZkODM2
YzIzZWM4NWE1MjA4MmU0ZWI0ZjRhMWZmZGUyNS4uZjZmZWM3Y2ZiY2JkMmQ3ZmJhMzBiZGQzMTM4
ZTBlZGZiM2Y2OTA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5oCkBAIC0xMDYsNiArMTA2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNV
bmRlclRlc3QoYm9vbCBpc1VuZGVyVGVzdCkgeyBtX2lzVW5kZXJUZXN0ID0gaXNVbmRlclRlc3Q7
IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoY29u
c3QgU3RyaW5nJiBzY3JpcHQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGdyaWRPdmVy
bGF5Q291bnQoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBwYWludFJlY3RD
b3VudCgpIGNvbnN0OwogCiAgICAgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX2luc3BlY3RvckNsaWVudDsgfQogICAgIEluc3BlY3RvckZyb250ZW5k
Q2xpZW50KiBpbnNwZWN0b3JGcm9udGVuZENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JPdmVybGF5LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
T3ZlcmxheS5oCmluZGV4IGUwM2QyNzM4NGQzM2UzNWQ3MzJmMTM5M2M3NWRkZTRiN2ZhZWJlYjEu
LmE3MzlhNWM4NWI1YmQ5Yzk4ODU3ZDZmYTY5ZTkyYjM1OGViMTM4ZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuaApAQCAtMjAwLDYgKzIwMCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2V0U2hvd1BhaW50UmVjdHMoYm9vbCk7CiAgICAgdm9pZCBzaG93
UGFpbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOworICAgIHVuc2lnbmVkIHBhaW50UmVjdENvdW50
KCkgY29uc3QgeyByZXR1cm4gbV9wYWludFJlY3RzLnNpemUoKTsgfQogCiAgICAgdm9pZCBzZXRT
aG93UnVsZXJzKGJvb2wpOwogICAgIHZvaWQgc2V0U2hvd1J1bGVyc0R1cmluZ0VsZW1lbnRTZWxl
Y3Rpb24oYm9vbCBlbmFibGVkKSB7IG1fc2hvd1J1bGVyc0R1cmluZ0VsZW1lbnRTZWxlY3Rpb24g
PSBlbmFibGVkOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCA2ZjcwNWVmYjZkZDUyMzdiNjM3ZjBiMzNi
NmM2NGE1NjQwYmEwMjMzLi41MTkwYTM4NjU0MzAwNzIwMDUwOWNmOTA1YjcwZjU1ZDA3YjU3YjQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTMwODUsOSArMzA4NSwxMSBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6dXBkYXRlQW5pbWF0aW9ucygpCiAgICAgICAgICAgICBhbmltYXRpb24ubV9wbGF5U3Rh
dGUgPSBQbGF5U3RhdGU6OlBsYXlpbmc7CiAgICAgfTsKIAotICAgIGF1dG8gYWRkQW5pbWF0aW9u
ID0gWyZdKExheWVyUHJvcGVydHlBbmltYXRpb24mIGFuaW1hdGlvbiwgQWRkaXRpdmUgYWRkaXRp
dmUgPSBBZGRpdGl2ZTo6WWVzKSB7Ci0gICAgICAgIHByZXBhcmVBbmltYXRpb25Gb3JBZGRpdGlv
bihhbmltYXRpb24sIGFkZGl0aXZlKTsKLSAgICAgICAgYWRkQW5pbWF0aW9uR3JvdXAoYW5pbWF0
aW9uLm1fcHJvcGVydHksIHsgYW5pbWF0aW9uLm1fYW5pbWF0aW9uIH0pOworICAgIGF1dG8gYWRk
TGVhZkFuaW1hdGlvbiA9IFsmXShMYXllclByb3BlcnR5QW5pbWF0aW9uJiBhbmltYXRpb24pIHsK
KyAgICAgICAgQVNTRVJUKGFuaW1hdGlvbi5tX2JlZ2luVGltZSk7CisgICAgICAgICphbmltYXRp
b24ubV9iZWdpblRpbWUgKz0gYW5pbWF0aW9uR3JvdXBCZWdpblRpbWU7CisgICAgICAgIHByZXBh
cmVBbmltYXRpb25Gb3JBZGRpdGlvbihhbmltYXRpb24sIEFkZGl0aXZlOjpObyk7CisgICAgICAg
IHNldEFuaW1hdGlvbk9uTGF5ZXIoYW5pbWF0aW9uKTsKICAgICB9OwogCiAgICAgZW51bSBjbGFz
cyBUcmFuc2Zvcm1hdGlvbk1hdHJpeFNvdXJjZSB7IFVzZUlkZW50aXR5TWF0cml4LCBBc2tDbGll
bnQgfTsKQEAgLTMxMjIsOCArMzEyNCwxMCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRl
QW5pbWF0aW9ucygpCiAgICAgICAgIC8vIGlzIHRoZSBpbml0aWFsIGJhc2UgdmFsdWUgdHJhbnNm
b3JtIGFuaW1hdGlvbiBhbmQgbXVzdCBvdmVycmlkZSB0aGUgY3VycmVudCB0cmFuc2Zvcm0gdmFs
dWUgZm9yIHRoaXMgbGF5ZXIuCiAgICAgICAgIC8vIE90aGVyd2lzZSwgaXQgaXMgbWVhbnQgdG8g
YXBwbHkgdGhlIHVuZGVybHlpbmcgdmFsdWUgZm9yIG9uZSBzcGVjaWZpYyB0cmFuc2Zvcm0tcmVs
YXRlZCBwcm9wZXJ0eSBhbmQgYmUgYWRkaXRpdmUKICAgICAgICAgLy8gdG8gYmUgY29tYmluZWQg
d2l0aCB0aGUgb3RoZXIgYmFzZSB2YWx1ZSB0cmFuc2Zvcm0gYW5pbWF0aW9ucyBhbmQgaW50ZXJw
b2xhdGluZyBhbmltYXRpb25zLgotICAgICAgICBpZiAoYXV0byogYW5pbWF0aW9uID0gbWFrZUJh
c2VWYWx1ZVRyYW5zZm9ybUFuaW1hdGlvbihwcm9wZXJ0eSwgbWF0cml4U291cmNlLCBiZWdpblRp
bWVPZkVhcmxpZXN0UHJvcGVydHlBbmltYXRpb24pKQotICAgICAgICAgICAgYWRkQW5pbWF0aW9u
KCphbmltYXRpb24sIG1hdHJpeFNvdXJjZSA9PSBUcmFuc2Zvcm1hdGlvbk1hdHJpeFNvdXJjZTo6
QXNrQ2xpZW50ID8gQWRkaXRpdmU6OlllcyA6IEFkZGl0aXZlOjpObyk7CisgICAgICAgIGlmIChh
dXRvKiBhbmltYXRpb24gPSBtYWtlQmFzZVZhbHVlVHJhbnNmb3JtQW5pbWF0aW9uKHByb3BlcnR5
LCBtYXRyaXhTb3VyY2UsIGJlZ2luVGltZU9mRWFybGllc3RQcm9wZXJ0eUFuaW1hdGlvbikpIHsK
KyAgICAgICAgICAgIHByZXBhcmVBbmltYXRpb25Gb3JBZGRpdGlvbigqYW5pbWF0aW9uLCBtYXRy
aXhTb3VyY2UgPT0gVHJhbnNmb3JtYXRpb25NYXRyaXhTb3VyY2U6OkFza0NsaWVudCA/IEFkZGl0
aXZlOjpZZXMgOiBBZGRpdGl2ZTo6Tm8pOworICAgICAgICAgICAgYWRkQW5pbWF0aW9uR3JvdXAo
YW5pbWF0aW9uLT5tX3Byb3BlcnR5LCB7IGFuaW1hdGlvbi0+bV9hbmltYXRpb24gfSk7CisgICAg
ICAgIH0KICAgICB9OwogCiAgICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGFsbCBhbmltYXRpb25zIHRv
IHNldCB0aGUgYmVnaW4gdGltZSBvZiBhbnkgbmV3IGFuaW1hdGlvbnMuCkBAIC0zMTMyLDcgKzMx
MzYsMTAgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFuaW1hdGlvbnMoKQogICAgICAg
ICAgICAgYW5pbWF0aW9uLm1fYmVnaW5UaW1lID0gY3VycmVudFRpbWUgLSBhbmltYXRpb25Hcm91
cEJlZ2luVGltZTsKICAgICB9CiAKLSAgICAvLyBOb3csIHJlbW92ZSBhbGwgYW5pbWF0aW9uIGdy
b3VwcyBmcm9tIHRoZSBsYXllciBzbyB0aGF0IHdlIG5vIGxvbmdlciBoYXZlIGFueSBsYXllciBh
bmltYXRpb25zLgorICAgIC8vIE5vdywgcmVtb3ZlIGFsbCBhbmltYXRpb24gZ3JvdXBzIGFuZCBs
ZWFmIGFuaW1hdGlvbnMgZnJvbSB0aGUgbGF5ZXIgc28gdGhhdAorICAgIC8vIHdlIG5vIGxvbmdl
ciBoYXZlIGFueSBsYXllciBhbmltYXRpb25zLgorICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDog
bV9hbmltYXRpb25zKQorICAgICAgICByZW1vdmVDQUFuaW1hdGlvbkZyb21MYXllcihhbmltYXRp
b24pOwogICAgIGZvciAoYXV0byYgYW5pbWF0aW9uR3JvdXAgOiBtX2FuaW1hdGlvbkdyb3VwcykK
ICAgICAgICAgcmVtb3ZlQ0FBbmltYXRpb25Gcm9tTGF5ZXIoYW5pbWF0aW9uR3JvdXApOwogCkBA
IC0zMTg3LDcgKzMxOTQsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQW5pbWF0aW9u
cygpCiAjaWYgRU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKICAgICAgICAgY2FzZSBBbmltYXRlZFBy
b3BlcnR5V2Via2l0QmFja2Ryb3BGaWx0ZXI6CiAjZW5kaWYKLSAgICAgICAgICAgIGFkZEFuaW1h
dGlvbihhbmltYXRpb24sIEFkZGl0aXZlOjpObyk7CisgICAgICAgICAgICBhZGRMZWFmQW5pbWF0
aW9uKGFuaW1hdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBbmltYXRl
ZFByb3BlcnR5SW52YWxpZDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDUzYmJhOWJlMWQ0ODJmNmQwMjdlYjU3
N2FkMzRhZWJlMTZlZGRiMWEuLjZiNTFhNjdhMzA1YzY3OWI2YmUzNjhhMmI2ZjQ5MzAwNTJiOGM4
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE3NjYsNiArMTc2Niwx
NSBAQCBFeGNlcHRpb25PcjxSZWY8RE9NUmVjdExpc3Q+PiBJbnRlcm5hbHM6Omluc3BlY3Rvckhp
Z2hsaWdodFJlY3RzKCkKICAgICByZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZShoaWdobGlnaHQu
cXVhZHMpOwogfQogCitFeGNlcHRpb25Pcjx1bnNpZ25lZD4gSW50ZXJuYWxzOjppbnNwZWN0b3JQ
YWludFJlY3RDb3VudCgpCit7CisgICAgYXV0byBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgp
OworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKworICAgIHJldHVybiBkb2N1bWVu
dC0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkucGFpbnRSZWN0Q291bnQoKTsKK30KKwog
RXhjZXB0aW9uT3I8dW5zaWduZWQ+IEludGVybmFsczo6bWFya2VyQ291bnRGb3JOb2RlKE5vZGUm
IG5vZGUsIGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSkKIHsKICAgICBPcHRpb25TZXQ8RG9jdW1l
bnRNYXJrZXI6Ok1hcmtlclR5cGU+IG1hcmtlclR5cGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKaW5kZXggNmI1N2ZlYzY0YjQwNjYzYTkxZGU2OWNlNTRkZjFlYTNiYTU4MWY4My4uNzhi
MDRiZTdiYzVkZWU1YmNkOWRmYjViMmZkMjA3ZDNlZjAxNjQ1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCkBAIC0yODcsNiArMjg3LDcgQEAgcHVibGljOgogCiAgICAgRXhjZXB0aW9u
T3I8UmVmPERPTVJlY3RMaXN0Pj4gaW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoKTsKICAgICBFeGNl
cHRpb25Pcjx1bnNpZ25lZD4gaW5zcGVjdG9yR3JpZE92ZXJsYXlDb3VudCgpOworICAgIEV4Y2Vw
dGlvbk9yPHVuc2lnbmVkPiBpbnNwZWN0b3JQYWludFJlY3RDb3VudCgpOwogCiAgICAgRXhjZXB0
aW9uT3I8dW5zaWduZWQ+IG1hcmtlckNvdW50Rm9yTm9kZShOb2RlJiwgY29uc3QgU3RyaW5nJik7
CiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPFJhbmdlPj4gbWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUm
LCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA4MjgxNTQ5ZDBhYzU5ZWI1NTMxNTg2ZjNjZTU1ZDdj
YThhMTU2N2M1Li5hN2ZmNGUzY2JlMzhhZmQ0ZDJlODFiNjE3NGFlZjhjNTI1Y2UwNWEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zNzMsNiArMzczLDcgQEAgZW51bSBB
dXRvcGxheVBvbGljeSB7CiAKICAgICB1bnNpZ25lZCBsb25nIGluc3BlY3RvckdyaWRPdmVybGF5
Q291bnQoKTsKICAgICBET01SZWN0TGlzdCBpbnNwZWN0b3JIaWdobGlnaHRSZWN0cygpOworICAg
IHVuc2lnbmVkIGxvbmcgaW5zcGVjdG9yUGFpbnRSZWN0Q291bnQoKTsKIAogICAgIHVuc2lnbmVk
IGxvbmcgbWFya2VyQ291bnRGb3JOb2RlKE5vZGUgbm9kZSwgRE9NU3RyaW5nIG1hcmtlclR5cGUp
OwogICAgIFJhbmdlPyBtYXJrZXJSYW5nZUZvck5vZGUoTm9kZSBub2RlLCBET01TdHJpbmcgbWFy
a2VyVHlwZSwgdW5zaWduZWQgbG9uZyBpbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JDbGllbnQuaAppbmRleCBhMDVhZTc1
MGYzNmExMzA2NmQwODNmZWJhN2FmNTEwZGZmZTUwMDY1Li5iYjU2M2RjOTA2MzE3NjY2YzY4ODRm
YTFkYWEyYWE3NTIyYTc4MWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTcyLDYgKzcyLDcgQEAgcHJp
dmF0ZToKIAogICAgIGJvb2wgb3ZlcnJpZGVzU2hvd1BhaW50UmVjdHMoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBzaG93UGFpbnRSZWN0KGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHVuc2lnbmVkIHBhaW50UmVjdENvdW50KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wYWludFJlY3RMYXllcnMuc2l6ZSgpOyB9CiAKICAgICB2
b2lkIHNldERldmVsb3BlclByZWZlcmVuY2VPdmVycmlkZShXZWJDb3JlOjpJbnNwZWN0b3JDbGll
bnQ6OkRldmVsb3BlclByZWZlcmVuY2UsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4pIGZpbmFsOwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggZGQ3MGQ3NGQxMjdmMjY2MWE0ZTcwMDE1MGRkZDRlMzYyYmUzOTAyMi4uMzUyYmFmZDRh
MTUxYTIyNjk0NWFjYWZkZWIyOGI3MmE4NTg5MGQ0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisy
MDIxLTExLTA5ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAg
IFJFR1JFU1NJT04ocjI3MjIwMSk6IFNhZmFyaSBzaG93ZWQgcmVkIGRpc3RvcnRpb24gb24gd2Vi
dmlldyBhZnRlciB1c2luZyBXZWIgSW5zcGVjdG9yLCByZXR1cm5pbmcgZnJvbSBhbm90aGVyIGFw
cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMzU4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MTUwNTIwOD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgQWRkIGEgbmV3IHRlc3QsIHdyaXR0ZW4gYnkgUGF0
cmljayBBbmdsZSwgdGhhdCB0cmFja3Mgd2hldGhlciBwYWludCByZWN0cyBoYXZlIGFwcGVhcmVk
CisgICAgICAgIGFuZCB0aGVuIGRpc2FwcGVhcmVkIGFzIGNvbnRlbnQgcmVwYWludHMgaW4gYW4g
aW5zcGVjdGVkIHBhZ2UuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcGFnZS9zZXRTaG93UGFpbnRS
ZWN0cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9wYWdlL3NldFNo
b3dQYWludFJlY3RzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13azEvVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlv
bnM6CisKIDIwMjEtMTEtMDggIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBBZGQgc3VwcG9ydCBmb3IgY29tcG9zaXRlIG9wZXJh
dGlvbnMgZm9yIHNvZnR3YXJlIGFuaW1hdGlvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wYWdlL3NldFNob3dQYWludFJlY3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wYWdlL3NldFNob3dQYWludFJlY3RzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xZTQ1YzMxNDI3YmI2YTM1MTA2MDhjYTNiMTdjOWUxYzU5NDE0MDY0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50UmVjdHMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIGZvciB0aGUgUGFnZS5zZXRTaG93UGFpbnRS
ZWN0cy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFBhZ2Uuc2V0U2hvd1BhaW50UmVjdHMK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBQYWdlLnNldFNob3dQYWludFJlY3RzLkVuYWJsZWQKK1BB
U1M6IFNob3VsZCBub3QgaGF2ZSBwYWludCByZWN0cyBkaXNwbGF5ZWQuCitQQVNTOiBTaG91bGQg
aGF2ZSBwYWludCByZWN0cyBkaXNwbGF5ZWQuCitQQVNTOiBTaG91bGQgbm90IGhhdmUgcGFpbnQg
cmVjdHMgZGlzcGxheWVkLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUGFnZS5zZXRTaG93UGFp
bnRSZWN0cy5EaXNhYmxlZAorUEFTUzogU2hvdWxkIG5vdCBoYXZlIHBhaW50IHJlY3RzIGRpc3Bs
YXllZC4KK1BBU1M6IFNob3VsZCBub3QgaGF2ZSBoYWQgYW55IHBhaW50IHJlY3RzIGRpc3BsYXll
ZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50
UmVjdHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNob3dQYWludFJlY3Rz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTBjODQwZDkzMDJiNmI3ZDAyNjY5NDc3MmMxNGIzMzBjN2ZkMWE2
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNob3dQ
YWludFJlY3RzLmh0bWwKQEAgLTAsMCArMSw3OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCit3aW5kb3cuX3Rlc3Rf
aGFzUGFpbnRSZWN0cyA9IGZhbHNlOword2luZG93Ll90ZXN0X2hhc1BhaW50UmVjdHNPYnNlcnZl
ciA9IHNldEludGVydmFsKCgpID0+IHsKKyAgICBsZXQgcGFpbnRSZWN0c0NvdW50ID0gd2luZG93
LmludGVybmFscy5pbnNwZWN0b3JQYWludFJlY3RDb3VudCgpOworCisgICAgLy8gRXhhY3QgcGFp
bnQgcmVjdCBjb3VudHMgbWF5IHZhcnksIHNvIG9ubHkgY2hlY2sgaWYgdGhlcmUgYXJlIHBhaW50
IHJlY3RzLgorICAgIGlmICghIXBhaW50UmVjdHNDb3VudCAhPSB3aW5kb3cuX3Rlc3RfaGFzUGFp
bnRSZWN0cykgeworICAgICAgICB3aW5kb3cuX3Rlc3RfaGFzUGFpbnRSZWN0cyA9ICEhcGFpbnRS
ZWN0c0NvdW50OworICAgICAgICBUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiVGVz
dEhhc1BhaW50UmVjdHNEaWRDaGFuZ2UiKTsKKyAgICB9Cit9LCAwKTsKKworZnVuY3Rpb24gdGVz
dCgpCit7CisgICAgYXN5bmMgZnVuY3Rpb24gZXhwZWN0SGFzUGFpbnRSZWN0c0RpZENoYW5nZVRv
KGV4cGVjdGVkKSB7CisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiVGVz
dEhhc1BhaW50UmVjdHNEaWRDaGFuZ2UiKTsKKyAgICAgICAgYXdhaXQgZXhwZWN0SGFzUGFpbnRS
ZWN0cyhleHBlY3RlZCk7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gZXhwZWN0SGFzUGFp
bnRSZWN0cyhleHBlY3RlZCkgeworICAgICAgICBsZXQgaGFzUGFpbnRSZWN0cyA9IGF3YWl0IElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5fdGVzdF9oYXNQYWludFJlY3RzYCk7
CisgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoaGFzUGFpbnRSZWN0cywgZXhwZWN0
ZWQsIGBTaG91bGQgJHtleHBlY3RlZCA/ICIiIDogIm5vdCAifWhhdmUgcGFpbnQgcmVjdHMgZGlz
cGxheWVkLmApOworICAgIH0KKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRl
QXN5bmNTdWl0ZSgiUGFnZS5zZXRTaG93UGFpbnRSZWN0cyIpOworCisgICAgc3VpdGUuYWRkVGVz
dENhc2UoeworICAgICAgICBuYW1lOiAiUGFnZS5zZXRTaG93UGFpbnRSZWN0cy5FbmFibGVkIiwK
KyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IHRoYXQgcGFpbnQgcmVjdHMgYXJlIGNvcnJlY3Rs
eSBjcmVhdGVkIGFuZCByZW1vdmVkIHdoaWxlIGVuYWJsZWQuIiwKKyAgICAgICAgYXN5bmMgdGVz
dCgpIHsKKyAgICAgICAgICAgIGF3YWl0IFBhZ2VBZ2VudC5zZXRTaG93UGFpbnRSZWN0cyh0cnVl
KTsKKyAgICAgICAgICAgIGF3YWl0IGV4cGVjdEhhc1BhaW50UmVjdHMoZmFsc2UpOworCisgICAg
ICAgICAgICBsZXQgaGFzUGFpbnRSZWN0c1Byb21pc2UgPSBleHBlY3RIYXNQYWludFJlY3RzRGlk
Q2hhbmdlVG8odHJ1ZSk7CisKKyAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iikuc3R5bGUuYmFja2dyb3Vu
ZENvbG9yID0gInBhcGF5YXdoaXAiYCk7CisgICAgICAgICAgICBhd2FpdCBoYXNQYWludFJlY3Rz
UHJvbWlzZTsKKyAgICAgICAgICAgIGF3YWl0IGV4cGVjdEhhc1BhaW50UmVjdHNEaWRDaGFuZ2VU
byhmYWxzZSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIlBhZ2Uuc2V0U2hvd1BhaW50UmVjdHMuRGlzYWJsZWQiLAorICAgICAg
ICBkZXNjcmlwdGlvbjogIlRlc3QgdGhhdCBwYWludCByZWN0cyBhcmUgbm90IGNyZWF0ZWQgd2hp
bGUgZGlzYWJsZWQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGF3YWl0
IFBhZ2VBZ2VudC5zZXRTaG93UGFpbnRSZWN0cyhmYWxzZSk7CisgICAgICAgICAgICBhd2FpdCBl
eHBlY3RIYXNQYWludFJlY3RzKGZhbHNlKTsKKworICAgICAgICAgICAgbGV0IGhhc1BhaW50UmVj
dHNEaWRDaGFuZ2UgPSBQcm9taXNlLnJhY2UoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXdhaXRFdmVudCgiVGVzdEhhc1BhaW50UmVjdHNEaWRDaGFuZ2UiKS50aGVuKCgpID0+IHRy
dWUpLAorICAgICAgICAgICAgICAgIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHNldFRpbWVv
dXQocmVzb2x2ZSwgNTAwLCBmYWxzZSk7IH0pLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAg
ICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0Iikuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gInJlYmVjY2FwdXJwbGUiYCk7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKGF3YWl0IGhhc1BhaW50UmVj
dHNEaWRDaGFuZ2UsIGBTaG91bGQgbm90IGhhdmUgaGFkIGFueSBwYWludCByZWN0cyBkaXNwbGF5
ZWQuYCk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZp
bmlzaCgpOworfQorPC9zY3JpcHQ+Cis8c3R5bGU+CisjdGVzdCB7CisgICAgd2lkdGg6IDEwMHB4
OworICAgIGhlaWdodDogMTAwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ2FpbnNib3JvOwor
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3Rz
IGZvciB0aGUgUGFnZS5zZXRTaG93UGFpbnRSZWN0cy48L3A+Cis8ZGl2IGlkPSJ0ZXN0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azEvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCA1OGEwMDYxZTFkYmQxMDhkZDViYzk5YTk4MjIzZmRlOTZlM2Q5
YjBiLi4wYmNlZjgzZDQzY2YwMjMxMzhkNTk4YWQ0OTM2OWZhZmZlY2Q4M2UyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xOTUzLDMgKzE5
NTMsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxl
LXJldmFsaWRhdGUgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMjMxOTMgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L3BhdGgtb2JqZWN0cy8yZC5wYXRo
LnN0cm9rZS5zY2FsZTIuaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMjI5MjQ3IGh0
dHAvdGVzdHMvZmV0Y2gva2VlcGFsaXZlLWZldGNoLTIuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisK
KyMgRHVtcFJlbmRlclRyZWUgZG9lc24ndCBpbnZva2UgaW5zcGVjdG9yIGluc3RydW1lbnRhdGlv
biB3aGVuIHJlcGFpbnRpbmcuCit3ZWJraXQub3JnL2IvMjMyODUyIGluc3BlY3Rvci9wYWdlL3Nl
dFNob3dQYWludFJlY3RzLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2ZjllMTVkMjMyNGE5ZmQxNjU1OGUyYzMzYzI3
Mjc4YmIwZjE4ZjNiLi42NWMyZDI2NjczYmUyNDBjNGNiZjUzNzNhNTEwN2Y1MTJkOTFhOGVkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC0x
NTE2LDMgKzE1MTYsNiBAQCB3ZWJraXQub3JnL2IvMjMyMzE1IFsgQ2F0YWxpbmEgRGVidWcgXSBt
ZWRpYS90cmFjay90cmFjay1kaXNhYmxlZC5odG1sIFsgUGFzcyBDcgogd2Via2l0Lm9yZy9iLzIz
MjQ0NiBbIENhdGFsaW5hIERlYnVnIF0gbWVkaWEvdHJhY2svdHJhY2stZWxlbWVudC1kb20tY2hh
bmdlLWNyYXNoLmh0bWwgWyBQYXNzIENyYXNoIF0KIAogd2Via2l0Lm9yZy9iLzIzMjU4NSBbIENh
dGFsaW5hIERlYnVnIF0gbWVkaWEvdHJhY2svdHJhY2stZWxlbWVudC1sb2FkLWV2ZW50Lmh0bWwg
WyBQYXNzIENyYXNoIF0KKworIyBEdW1wUmVuZGVyVHJlZSBkb2Vzbid0IGludm9rZSBpbnNwZWN0
b3IgaW5zdHJ1bWVudGF0aW9uIHdoZW4gcmVwYWludGluZy4KK3dlYmtpdC5vcmcvYi8yMzI4NTIg
aW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50UmVjdHMuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>