<?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>229806</bug_id>
          
          <creation_ts>2021-09-02 07:47:59 -0700</creation_ts>
          <short_desc>RemoteVideoSample needs CVPixelBufferRef to be kept alive, but relies on caller to retain it</short_desc>
          <delta_ts>2021-11-10 12:56:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>229661</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1789700</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-09-02 07:47:59 -0700</bug_when>
    <thetext>RemoteVideoSample needs CVPixelBufferRef to be kept alive, but relies on caller to retain it.

While working on Bug 229661, I discovered that when creating a RemoteVideoSample using a CVPixelBufferRef, the CVPixelBufferRef needs to be kept alive for the duration of the RemoteVideoSample.

if this is not done, then these two tests fail:

    webrtc/video-mute.html
    webrtc/video-unmute.html

See 229661, Comment #15 for how this was discovered.
&lt;https://bugs.webkit.org/show_bug.cgi?id=229661#c15&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789787</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-02 11:18:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/82684479&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789799</commentid>
    <comment_count>2</comment_count>
      <attachid>437174</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-09-02 11:31:49 -0700</bug_when>
    <thetext>Created attachment 437174
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789810</commentid>
    <comment_count>3</comment_count>
      <attachid>437174</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-02 11:46:56 -0700</bug_when>
    <thetext>Comment on attachment 437174
Patch v1

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

&gt; Source/WebCore/platform/graphics/RemoteVideoSample.cpp:118
&gt;  std::unique_ptr&lt;RemoteVideoSample&gt; RemoteVideoSample::create(CVPixelBufferRef imageBuffer, MediaTime&amp;&amp; presentationTime, MediaSample::VideoRotation rotation)

Seems like the argument should be RetainPtr&lt;CVPixelBufferRef&gt;&amp;&amp;; we could avoid retain count churn by handing in ownership explicitly and then the caller doesn’t need to call get(), although they do need to call WTFMove if they are using a local variable.

&gt; Source/WebCore/platform/graphics/RemoteVideoSample.h:106
&gt; +    RemoteVideoSample(IOSurfaceRef, CVPixelBufferRef, const DestinationColorSpace&amp;, MediaTime&amp;&amp;, MediaSample::VideoRotation, bool);

Then this could be RetainPtr&lt;CVPixelBufferRef&gt;&amp;&amp;.

&gt; Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:457
&gt; +        auto convertedPixelBuffer = convertToBGRA(pixelBuffer.get());
&gt; +        sample = RemoteVideoSample::create(convertedPixelBuffer.get(), MediaTime(frame.timestamp_us() * 1000, 1000000), toMediaSampleVideoRotation(frame.rotation()));

I’d like to see this:

    sample = RemoteVideoSample::create(convertToBGRA(pixelBuffer.get()), MediaTime(frame.timestamp_us() * 1000, 1000000), toMediaSampleVideoRotation(frame.rotation()));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789837</commentid>
    <comment_count>4</comment_count>
      <attachid>437181</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-09-02 12:29:45 -0700</bug_when>
    <thetext>Created attachment 437181
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789842</commentid>
    <comment_count>5</comment_count>
      <attachid>437181</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-02 12:38:20 -0700</bug_when>
    <thetext>Comment on attachment 437181
Patch v2

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

&gt; Source/WebCore/platform/graphics/RemoteVideoSample.cpp:92
&gt; +    RetainPtr&lt;CVPixelBufferRef&gt; imageBuffer = PAL::CMSampleBufferGetImageBuffer(sample.platformSample().sample.cmSampleBuffer);

Should be able to write just:

    RetainPtr imageBuffer = ...

&gt; Source/WebCore/platform/graphics/RemoteVideoSample.cpp:115
&gt; +    return std::unique_ptr&lt;RemoteVideoSample&gt;(new RemoteVideoSample(surface, WTFMove(imageBuffer), DestinationColorSpace::SRGB(), sample.presentationTime(), sample.videoRotation(), sample.videoMirrored()));

Another option would be to write:

    return std::unique_ptr&lt;RemoteVideoSample&gt;(new RemoteVideoSample(surface, RetainPtr { imageBuffer }, DestinationColorSpace::SRGB(), sample.presentationTime(), sample.videoRotation(), sample.videoMirrored()));

As alternatives to RetainPtr { }, could choose RetainPtr() syntax or call the retainPtr() function.

This could be done without changing the type of the local variable. Not sure I prefer this to what you have done, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789847</commentid>
    <comment_count>6</comment_count>
      <attachid>437184</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-09-02 12:49:50 -0700</bug_when>
    <thetext>Created attachment 437184
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790104</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-03 03:51:29 -0700</bug_when>
    <thetext>Committed r281984 (241291@main): &lt;https://commits.webkit.org/241291@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 437184.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437174</attachid>
            <date>2021-09-02 11:31:49 -0700</date>
            <delta_ts>2021-09-02 12:29:43 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-229806-20210902113148.patch</filename>
            <type>text/plain</type>
            <size>6702</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWU1MzI3NzVhNTlhMGQ5
Mzk1MWM1NDhlMWU0YWExZDg3MTU3ZTZkOC4uYzk5YzI1OGQ5ZjlmOTA3YzdkOTIzZjQwNzUwOWU4
MWE0Y2IzZmM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA5LTAyICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3RlVmlkZW9TYW1w
bGUgbmVlZHMgQ1ZQaXhlbEJ1ZmZlclJlZiB0byBiZSBrZXB0IGFsaXZlLCBidXQgcmVsaWVzIG9u
IGNhbGxlciB0byByZXRhaW4gaXQKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIyOTgw
Nj4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyNjg0NDc5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgdGVzdHM6CisgICAgICAg
ICAgICB3ZWJydGMvdmlkZW8tbXV0ZS5odG1sCisgICAgICAgICAgICB3ZWJydGMvdmlkZW8tdW5t
dXRlLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUpOgorICAg
ICAgICAtIFBhc3MgQ1ZQaXhlbEJ1ZmZlclJlZiB0byBSZW1vdGVWaWRlb1NhbXBsZQorICAgICAg
ICAgIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGU6OlJl
bW90ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgLSBDaGFuZ2UgY29uc3RydWN0b3IgdG8gYWNjZXB0
IENWUGl4ZWxCdWZmZXJSZWYKKyAgICAgICAgICBhcmd1bWVudC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3Rl
VmlkZW9TYW1wbGU6OlJlbW90ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgLSBDaGFuZ2UgY29uc3Ry
dWN0b3IgdG8gYWNjZXB0IENWUGl4ZWxCdWZmZXJSZWYKKyAgICAgICAgICBhcmd1bWVudC4KKyAg
ICAgICAgLSBBZGQgbV9pbWFnZUJ1ZmZlciBpbnN0YW5jZSB2YXJpYWJsZSB0byBob2xkIG9uIHRv
IHRoZQorICAgICAgICAgIENWUGl4ZWxCdWZmZXJSZWYuCisKIDIwMjEtMDgtMzEgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViUlRDXSBMZWFrIG9yIG92
ZXItcmVsZWFzZSBvZiBDRlBpeGVsQnVmZmVyUmVmIHJldHVybmVkIGZyb20gd2VicnRjOjpjcmVh
dGVQaXhlbEJ1ZmZlckZyb21GcmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA5ZGUxZjdjMzYzMWRkOGE2OGEx
NWJmN2Q5MDFkZjllMzg1MTk2OTkuLjcwYWYyYzJiZGZlZTAyYThmYmI0ZDk4NzUxMWViMmNjNDNi
MjVhNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDktMDIgIERhdmlkIEtpbHpl
ciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGVWaWRlb1NhbXBsZSBuZWVk
cyBDVlBpeGVsQnVmZmVyUmVmIHRvIGJlIGtlcHQgYWxpdmUsIGJ1dCByZWxpZXMgb24gY2FsbGVy
IHRvIHJldGFpbiBpdAorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjI5ODA2PgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vODI2ODQ0Nzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRD
Q29kZWNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFt
ZSk6CisgICAgICAgIC0gUGFzcyBDVlBpeGVsQnVmZmVyUmVmIHRvIFJlbW90ZVZpZGVvU2FtcGxl
OjpjcmVhdGUoKS4KKyAgICAgICAgICBSZS1pbnRyb2R1Y2UgdGhlIGBjb252ZXJ0ZWRQaXhlbEJ1
ZmZlcmAgbG9jYWwgdmFyaWFibGUKKyAgICAgICAgICB3aGljaCBjYXVzZWQgdGVzdCBmYWlsdXJl
cyBpbiBhbiBlYXJsaWVyIHBhdGNoIGZvcgorICAgICAgICAgIEJ1ZyAyMjk2NjEuCisKIDIwMjEt
MDgtMzEgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2Vi
UlRDXSBMZWFrIG9yIG92ZXItcmVsZWFzZSBvZiBDRlBpeGVsQnVmZmVyUmVmIHJldHVybmVkIGZy
b20gd2VicnRjOjpjcmVhdGVQaXhlbEJ1ZmZlckZyb21GcmFtZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKaW5kZXgg
NjRlMzBiYzI5M2NhOGY5Mzg4NDg4ZjE0ODg1MDZjNTdiZTBhNTE1ZC4uZTc3Njc3MjE4MDk2NTBh
ZjlkY2E4YTE5MDY0NGQ1MDA2YTE5MjIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcApAQCAtMTEyLDcgKzExMiw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6
OmNyZWF0ZShNZWRpYVNhbXBsZSYgc2FtcGxlCiAgICAgICAgIHN1cmZhY2UgPSBpb1N1cmZhY2Ut
PnN1cmZhY2UoKTsKICAgICB9CiAKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZp
ZGVvU2FtcGxlPihuZXcgUmVtb3RlVmlkZW9TYW1wbGUoc3VyZmFjZSwgRGVzdGluYXRpb25Db2xv
clNwYWNlOjpTUkdCKCksIHNhbXBsZS5wcmVzZW50YXRpb25UaW1lKCksIHNhbXBsZS52aWRlb1Jv
dGF0aW9uKCksIHNhbXBsZS52aWRlb01pcnJvcmVkKCkpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPihuZXcgUmVtb3RlVmlkZW9TYW1wbGUoc3VyZmFjZSwg
aW1hZ2VCdWZmZXIsIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBzYW1wbGUucHJlc2Vu
dGF0aW9uVGltZSgpLCBzYW1wbGUudmlkZW9Sb3RhdGlvbigpLCBzYW1wbGUudmlkZW9NaXJyb3Jl
ZCgpKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlk
ZW9TYW1wbGU6OmNyZWF0ZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBNZWRpYVRpbWUm
JiBwcmVzZW50YXRpb25UaW1lLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiByb3RhdGlvbikK
QEAgLTEyMywxMSArMTIzLDEyIEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4g
UmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShDVlBpeGVsQnVmZmVyUmVmIGltCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KIAotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3Rl
VmlkZW9TYW1wbGU+KG5ldyBSZW1vdGVWaWRlb1NhbXBsZShzdXJmYWNlLCBEZXN0aW5hdGlvbkNv
bG9yU3BhY2U6OlNSR0IoKSwgV1RGTW92ZShwcmVzZW50YXRpb25UaW1lKSwgcm90YXRpb24sIGZh
bHNlKSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4obmV3
IFJlbW90ZVZpZGVvU2FtcGxlKHN1cmZhY2UsIGltYWdlQnVmZmVyLCBEZXN0aW5hdGlvbkNvbG9y
U3BhY2U6OlNSR0IoKSwgV1RGTW92ZShwcmVzZW50YXRpb25UaW1lKSwgcm90YXRpb24sIGZhbHNl
KSk7CiB9CiAKLVJlbW90ZVZpZGVvU2FtcGxlOjpSZW1vdGVWaWRlb1NhbXBsZShJT1N1cmZhY2VS
ZWYgc3VyZmFjZSwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBNZWRp
YVRpbWUmJiB0aW1lLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiByb3RhdGlvbiwgYm9vbCBt
aXJyb3JlZCkKK1JlbW90ZVZpZGVvU2FtcGxlOjpSZW1vdGVWaWRlb1NhbXBsZShJT1N1cmZhY2VS
ZWYgc3VyZmFjZSwgQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgY29uc3QgRGVzdGluYXRp
b25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBNZWRpYVRpbWUmJiB0aW1lLCBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbiByb3RhdGlvbiwgYm9vbCBtaXJyb3JlZCkKICAgICA6IG1faW9TdXJmYWNl
KFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbVN1cmZhY2Uoc3VyZmFjZSwgY29sb3JTcGFj
ZSkpCisgICAgLCBtX2ltYWdlQnVmZmVyKGltYWdlQnVmZmVyKQogICAgICwgbV9yb3RhdGlvbihy
b3RhdGlvbikKICAgICAsIG1fdGltZShXVEZNb3ZlKHRpbWUpKQogICAgICwgbV92aWRlb0Zvcm1h
dChJT1N1cmZhY2VHZXRQaXhlbEZvcm1hdChzdXJmYWNlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCmluZGV4IDczNjFlNWU4
YWY2NzA0MzljNDk3ZGU2OWExNmZmMzRiZjJjNTc1OGQuLmJiNWU2MGY1N2RjZDAwMzJjNTI2NWUy
NmQ5YTdlZWZiYmYzMTBkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaApAQCAtMTAzLDkgKzEwMywxMCBAQCBwdWJsaWM6
CiAgICAgfQogCiBwcml2YXRlOgotICAgIFJlbW90ZVZpZGVvU2FtcGxlKElPU3VyZmFjZVJlZiwg
Y29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiwgTWVkaWFUaW1lJiYsIE1lZGlhU2FtcGxlOjpW
aWRlb1JvdGF0aW9uLCBib29sKTsKKyAgICBSZW1vdGVWaWRlb1NhbXBsZShJT1N1cmZhY2VSZWYs
IENWUGl4ZWxCdWZmZXJSZWYsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIE1lZGlhVGlt
ZSYmLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiwgYm9vbCk7CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBtX2lvU3VyZmFjZTsKKyAgICBSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4gbV9pbWFnZUJ1ZmZlcjsKICAgICBXVEY6Ok1hY2hTZW5kUmlnaHQgbV9z
ZW5kUmlnaHQ7CiAgICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9yb3RhdGlvbiB7IE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiAgICAgTWVkaWFUaW1lIG1fdGltZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJU
Q0NvZGVjcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwCmluZGV4IGU0MDAwMzFjODU0NjNjYWZlNWIyMTk2NDA0N2NjZjU1ODY0MjM4
ZGYuLjczYzI5NTk2NGQ4MTAzZjI3NDJkZTY0YTI2Y2Y4NGZlZWNiMzgyYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNz
LmNwcApAQCAtNDUzLDggKzQ1Myw4IEBAIGludDMyX3QgTGliV2ViUlRDQ29kZWNzOjplbmNvZGVG
cmFtZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmCiAgICAgYXV0
byBzYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHBpeGVsQnVmZmVyLmdldCgpLCBN
ZWRpYVRpbWUoZnJhbWUudGltZXN0YW1wX3VzKCkgKiAxMDAwLCAxMDAwMDAwKSwgdG9NZWRpYVNh
bXBsZVZpZGVvUm90YXRpb24oZnJhbWUucm90YXRpb24oKSkpOwogICAgIGlmICghc2FtcGxlKSB7
CiAgICAgICAgIC8vIEZJWE1FOiBPcHRpbWl6ZSB0aGlzIGNvZGUgcGF0aCwgY3VycmVudGx5IHdl
IGhhdmUgbm9uIEJHUkEgZm9yIG11dGVkIGZyYW1lcyBhdCBsZWFzdC4KLSAgICAgICAgcGl4ZWxC
dWZmZXIgPSBjb252ZXJ0VG9CR1JBKHBpeGVsQnVmZmVyLmdldCgpKTsKLSAgICAgICAgc2FtcGxl
ID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShwaXhlbEJ1ZmZlci5nZXQoKSwgTWVkaWFUaW1l
KGZyYW1lLnRpbWVzdGFtcF91cygpICogMTAwMCwgMTAwMDAwMCksIHRvTWVkaWFTYW1wbGVWaWRl
b1JvdGF0aW9uKGZyYW1lLnJvdGF0aW9uKCkpKTsKKyAgICAgICAgYXV0byBjb252ZXJ0ZWRQaXhl
bEJ1ZmZlciA9IGNvbnZlcnRUb0JHUkEocGl4ZWxCdWZmZXIuZ2V0KCkpOworICAgICAgICBzYW1w
bGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgp
LCBNZWRpYVRpbWUoZnJhbWUudGltZXN0YW1wX3VzKCkgKiAxMDAwLCAxMDAwMDAwKSwgdG9NZWRp
YVNhbXBsZVZpZGVvUm90YXRpb24oZnJhbWUucm90YXRpb24oKSkpOwogICAgIH0KIAogICAgIGVu
Y29kZXIuY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkVu
Y29kZUZyYW1lIHsgZW5jb2Rlci5pZGVudGlmaWVyLCAqc2FtcGxlLCBmcmFtZS50aW1lc3RhbXAo
KSwgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSB9LCAwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437181</attachid>
            <date>2021-09-02 12:29:45 -0700</date>
            <delta_ts>2021-09-03 02:32:29 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-229806-20210902122944.patch</filename>
            <type>text/plain</type>
            <size>9004</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWU1MzI3NzVhNTlhMGQ5
Mzk1MWM1NDhlMWU0YWExZDg3MTU3ZTZkOC4uYzk5YzI1OGQ5ZjlmOTA3YzdkOTIzZjQwNzUwOWU4
MWE0Y2IzZmM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA5LTAyICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3RlVmlkZW9TYW1w
bGUgbmVlZHMgQ1ZQaXhlbEJ1ZmZlclJlZiB0byBiZSBrZXB0IGFsaXZlLCBidXQgcmVsaWVzIG9u
IGNhbGxlciB0byByZXRhaW4gaXQKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIyOTgw
Nj4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyNjg0NDc5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgdGVzdHM6CisgICAgICAg
ICAgICB3ZWJydGMvdmlkZW8tbXV0ZS5odG1sCisgICAgICAgICAgICB3ZWJydGMvdmlkZW8tdW5t
dXRlLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUpOgorICAg
ICAgICAtIFBhc3MgQ1ZQaXhlbEJ1ZmZlclJlZiB0byBSZW1vdGVWaWRlb1NhbXBsZQorICAgICAg
ICAgIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGU6OlJl
bW90ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgLSBDaGFuZ2UgY29uc3RydWN0b3IgdG8gYWNjZXB0
IENWUGl4ZWxCdWZmZXJSZWYKKyAgICAgICAgICBhcmd1bWVudC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3Rl
VmlkZW9TYW1wbGU6OlJlbW90ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgLSBDaGFuZ2UgY29uc3Ry
dWN0b3IgdG8gYWNjZXB0IENWUGl4ZWxCdWZmZXJSZWYKKyAgICAgICAgICBhcmd1bWVudC4KKyAg
ICAgICAgLSBBZGQgbV9pbWFnZUJ1ZmZlciBpbnN0YW5jZSB2YXJpYWJsZSB0byBob2xkIG9uIHRv
IHRoZQorICAgICAgICAgIENWUGl4ZWxCdWZmZXJSZWYuCisKIDIwMjEtMDgtMzEgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViUlRDXSBMZWFrIG9yIG92
ZXItcmVsZWFzZSBvZiBDRlBpeGVsQnVmZmVyUmVmIHJldHVybmVkIGZyb20gd2VicnRjOjpjcmVh
dGVQaXhlbEJ1ZmZlckZyb21GcmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA5ZGUxZjdjMzYzMWRkOGE2OGEx
NWJmN2Q5MDFkZjllMzg1MTk2OTkuLjcwYWYyYzJiZGZlZTAyYThmYmI0ZDk4NzUxMWViMmNjNDNi
MjVhNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDktMDIgIERhdmlkIEtpbHpl
ciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGVWaWRlb1NhbXBsZSBuZWVk
cyBDVlBpeGVsQnVmZmVyUmVmIHRvIGJlIGtlcHQgYWxpdmUsIGJ1dCByZWxpZXMgb24gY2FsbGVy
IHRvIHJldGFpbiBpdAorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjI5ODA2PgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vODI2ODQ0Nzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRD
Q29kZWNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFt
ZSk6CisgICAgICAgIC0gUGFzcyBDVlBpeGVsQnVmZmVyUmVmIHRvIFJlbW90ZVZpZGVvU2FtcGxl
OjpjcmVhdGUoKS4KKyAgICAgICAgICBSZS1pbnRyb2R1Y2UgdGhlIGBjb252ZXJ0ZWRQaXhlbEJ1
ZmZlcmAgbG9jYWwgdmFyaWFibGUKKyAgICAgICAgICB3aGljaCBjYXVzZWQgdGVzdCBmYWlsdXJl
cyBpbiBhbiBlYXJsaWVyIHBhdGNoIGZvcgorICAgICAgICAgIEJ1ZyAyMjk2NjEuCisKIDIwMjEt
MDgtMzEgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2Vi
UlRDXSBMZWFrIG9yIG92ZXItcmVsZWFzZSBvZiBDRlBpeGVsQnVmZmVyUmVmIHJldHVybmVkIGZy
b20gd2VicnRjOjpjcmVhdGVQaXhlbEJ1ZmZlckZyb21GcmFtZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKaW5kZXgg
NjRlMzBiYzI5M2NhOGY5Mzg4NDg4ZjE0ODg1MDZjNTdiZTBhNTE1ZC4uMjdiNzY4NDNjMGE0ZGM0
N2U2ZGQyNDQzNGIxNjYzMjY3YzQwOTEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcApAQCAtODksNDUgKzg5LDQ2
IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6
OmNyZWF0ZShNZWRpYVNhbXBsZSYgc2FtcGxlCiB7CiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9y
bVNhbXBsZSgpLnR5cGUgPT0gUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7CiAK
LSAgICBhdXRvIGltYWdlQnVmZmVyID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVy
KHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CisgICAgUmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVmZmVyID0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1
ZmZlcik7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYSwgIlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGU6IENNU2FtcGxlQnVmZmVyR2V0SW1h
Z2VCdWZmZXIgcmV0dXJuZWQgbnVsbHB0ciIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBpb1N1cmZhY2U7Ci0gICAgYXV0
byBzdXJmYWNlID0gQ1ZQaXhlbEJ1ZmZlckdldElPU3VyZmFjZShpbWFnZUJ1ZmZlcik7CisgICAg
YXV0byBzdXJmYWNlID0gQ1ZQaXhlbEJ1ZmZlckdldElPU3VyZmFjZShpbWFnZUJ1ZmZlci5nZXQo
KSk7CiAgICAgaWYgKCFzdXJmYWNlKSB7CiAgICAgICAgIC8vIFNwZWNpYWwgY2FzZSBmb3IgY2Fu
dmFzIGRhdGEgdGhhdCBpcyBSR0JBLCBub3QgSU9TdXJmYWNlIGJhY2tlZC4KLSAgICAgICAgYXV0
byBwaXhlbEZvcm1hdFR5cGUgPSBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKGltYWdl
QnVmZmVyKTsKKyAgICAgICAgYXV0byBwaXhlbEZvcm1hdFR5cGUgPSBDVlBpeGVsQnVmZmVyR2V0
UGl4ZWxGb3JtYXRUeXBlKGltYWdlQnVmZmVyLmdldCgpKTsKICAgICAgICAgaWYgKHBpeGVsRm9y
bWF0VHlwZSAhPSBrQ1ZQaXhlbEZvcm1hdFR5cGVfMzJCR1JBKSB7CiAgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihNZWRpYSwgIlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUgZG9lcyBub3Qg
c3VwcG9ydCBub24gSU9TdXJmYWNlIGJhY2tlZCBzYW1wbGVzIHRoYXQgYXJlIG5vdCBCR1JBIik7
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogCi0gICAgICAgIGlvU3Vy
ZmFjZSA9IHRyYW5zZmVyQkdSQVBpeGVsQnVmZmVyVG9JT1N1cmZhY2UoaW1hZ2VCdWZmZXIpOwor
ICAgICAgICBpb1N1cmZhY2UgPSB0cmFuc2ZlckJHUkFQaXhlbEJ1ZmZlclRvSU9TdXJmYWNlKGlt
YWdlQnVmZmVyLmdldCgpKTsKICAgICAgICAgaWYgKCFpb1N1cmZhY2UpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICBzdXJmYWNlID0gaW9TdXJmYWNlLT5zdXJmYWNlKCk7
CiAgICAgfQogCi0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4o
bmV3IFJlbW90ZVZpZGVvU2FtcGxlKHN1cmZhY2UsIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JH
QigpLCBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpLCBzYW1wbGUudmlkZW9Sb3RhdGlvbigpLCBz
YW1wbGUudmlkZW9NaXJyb3JlZCgpKSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1v
dGVWaWRlb1NhbXBsZT4obmV3IFJlbW90ZVZpZGVvU2FtcGxlKHN1cmZhY2UsIFdURk1vdmUoaW1h
Z2VCdWZmZXIpLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwgc2FtcGxlLnByZXNlbnRh
dGlvblRpbWUoKSwgc2FtcGxlLnZpZGVvUm90YXRpb24oKSwgc2FtcGxlLnZpZGVvTWlycm9yZWQo
KSkpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IFJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgTWVkaWFUaW1lJiYg
cHJlc2VudGF0aW9uVGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRpb24pCitz
dGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVh
dGUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYgaW1hZ2VCdWZmZXIsIE1lZGlhVGltZSYm
IHByZXNlbnRhdGlvblRpbWUsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9uKQog
ewotICAgIGF1dG8gc3VyZmFjZSA9IENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2UoaW1hZ2VCdWZm
ZXIpOworICAgIGF1dG8gc3VyZmFjZSA9IENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2UoaW1hZ2VC
dWZmZXIuZ2V0KCkpOwogICAgIGlmICghc3VyZmFjZSkgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYSwgIlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGU6IENWUGl4ZWxCdWZmZXJHZXRJ
T1N1cmZhY2UgcmV0dXJuZWQgbnVsbHB0ciIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPihuZXcg
UmVtb3RlVmlkZW9TYW1wbGUoc3VyZmFjZSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCks
IFdURk1vdmUocHJlc2VudGF0aW9uVGltZSksIHJvdGF0aW9uLCBmYWxzZSkpOworICAgIHJldHVy
biBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+KG5ldyBSZW1vdGVWaWRlb1NhbXBs
ZShzdXJmYWNlLCBXVEZNb3ZlKGltYWdlQnVmZmVyKSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpT
UkdCKCksIFdURk1vdmUocHJlc2VudGF0aW9uVGltZSksIHJvdGF0aW9uLCBmYWxzZSkpOwogfQog
Ci1SZW1vdGVWaWRlb1NhbXBsZTo6UmVtb3RlVmlkZW9TYW1wbGUoSU9TdXJmYWNlUmVmIHN1cmZh
Y2UsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSwgTWVkaWFUaW1lJiYg
dGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRpb24sIGJvb2wgbWlycm9yZWQp
CitSZW1vdGVWaWRlb1NhbXBsZTo6UmVtb3RlVmlkZW9TYW1wbGUoSU9TdXJmYWNlUmVmIHN1cmZh
Y2UsIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmIGltYWdlQnVmZmVyLCBjb25zdCBEZXN0
aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UsIE1lZGlhVGltZSYmIHRpbWUsIE1lZGlhU2Ft
cGxlOjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9uLCBib29sIG1pcnJvcmVkKQogICAgIDogbV9pb1N1
cmZhY2UoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tU3VyZmFjZShzdXJmYWNlLCBjb2xv
clNwYWNlKSkKKyAgICAsIG1faW1hZ2VCdWZmZXIoV1RGTW92ZShpbWFnZUJ1ZmZlcikpCiAgICAg
LCBtX3JvdGF0aW9uKHJvdGF0aW9uKQogICAgICwgbV90aW1lKFdURk1vdmUodGltZSkpCiAgICAg
LCBtX3ZpZGVvRm9ybWF0KElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KHN1cmZhY2UpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgK
aW5kZXggNzM2MWU1ZThhZjY3MDQzOWM0OTdkZTY5YTE2ZmYzNGJmMmM1NzU4ZC4uM2I3ZDYzNGRk
NWQ2YzRmNTA1ODQxNjNlZTcyMWFhODdiN2Q1YWQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCkBAIC00NSw3ICs0NSw3
IEBAIHB1YmxpYzoKICAgICB+UmVtb3RlVmlkZW9TYW1wbGUoKSA9IGRlZmF1bHQ7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBj
cmVhdGUoTWVkaWFTYW1wbGUmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBjcmVhdGUoQ1ZQaXhlbEJ1ZmZlclJlZiwgTWVkaWFU
aW1lJiYgcHJlc2VudGF0aW9uVGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gPSBNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiYmLCBNZWRpYVRpbWUmJiBwcmVzZW50YXRpb25UaW1lLCBNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBJT1N1cmZhY2VSZWYgc3VyZmFjZSgpIGNvbnN0OwogCiAgICAgY29u
c3QgTWVkaWFUaW1lJiB0aW1lKCkgY29uc3QgeyByZXR1cm4gbV90aW1lOyB9CkBAIC0xMDMsOSAr
MTAzLDEwIEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlVmlkZW9TYW1w
bGUoSU9TdXJmYWNlUmVmLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBNZWRpYVRpbWUm
JiwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24sIGJvb2wpOworICAgIFJlbW90ZVZpZGVvU2Ft
cGxlKElPU3VyZmFjZVJlZiwgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYsIGNvbnN0IERl
c3RpbmF0aW9uQ29sb3JTcGFjZSYsIE1lZGlhVGltZSYmLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbiwgYm9vbCk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBt
X2lvU3VyZmFjZTsKKyAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9pbWFnZUJ1ZmZl
cjsKICAgICBXVEY6Ok1hY2hTZW5kUmlnaHQgbV9zZW5kUmlnaHQ7CiAgICAgTWVkaWFTYW1wbGU6
OlZpZGVvUm90YXRpb24gbV9yb3RhdGlvbiB7IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpO
b25lIH07CiAgICAgTWVkaWFUaW1lIG1fdGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCmluZGV4IGU0MDAwMzFj
ODU0NjNjYWZlNWIyMTk2NDA0N2NjZjU1ODY0MjM4ZGYuLjlhZDk0ZDY4NmU0MzgwYjVhMTNiOTQ3
NzEzM2E4ODIyNTFkYjA0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcApAQCAtNDUzLDggKzQ1Myw3IEBAIGlu
dDMyX3QgTGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFtZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCB3ZWJydGM6OlZpZGVvRnJhbWUmCiAgICAgYXV0byBzYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBs
ZTo6Y3JlYXRlKHBpeGVsQnVmZmVyLmdldCgpLCBNZWRpYVRpbWUoZnJhbWUudGltZXN0YW1wX3Vz
KCkgKiAxMDAwLCAxMDAwMDAwKSwgdG9NZWRpYVNhbXBsZVZpZGVvUm90YXRpb24oZnJhbWUucm90
YXRpb24oKSkpOwogICAgIGlmICghc2FtcGxlKSB7CiAgICAgICAgIC8vIEZJWE1FOiBPcHRpbWl6
ZSB0aGlzIGNvZGUgcGF0aCwgY3VycmVudGx5IHdlIGhhdmUgbm9uIEJHUkEgZm9yIG11dGVkIGZy
YW1lcyBhdCBsZWFzdC4KLSAgICAgICAgcGl4ZWxCdWZmZXIgPSBjb252ZXJ0VG9CR1JBKHBpeGVs
QnVmZmVyLmdldCgpKTsKLSAgICAgICAgc2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0
ZShwaXhlbEJ1ZmZlci5nZXQoKSwgTWVkaWFUaW1lKGZyYW1lLnRpbWVzdGFtcF91cygpICogMTAw
MCwgMTAwMDAwMCksIHRvTWVkaWFTYW1wbGVWaWRlb1JvdGF0aW9uKGZyYW1lLnJvdGF0aW9uKCkp
KTsKKyAgICAgICAgc2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShjb252ZXJ0VG9C
R1JBKHBpeGVsQnVmZmVyLmdldCgpKSwgTWVkaWFUaW1lKGZyYW1lLnRpbWVzdGFtcF91cygpICog
MTAwMCwgMTAwMDAwMCksIHRvTWVkaWFTYW1wbGVWaWRlb1JvdGF0aW9uKGZyYW1lLnJvdGF0aW9u
KCkpKTsKICAgICB9CiAKICAgICBlbmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Okxp
YldlYlJUQ0NvZGVjc1Byb3h5OjpFbmNvZGVGcmFtZSB7IGVuY29kZXIuaWRlbnRpZmllciwgKnNh
bXBsZSwgZnJhbWUudGltZXN0YW1wKCksIHNob3VsZEVuY29kZUFzS2V5RnJhbWUgfSwgMCk7Cg==
</data>
<flag name="review"
          id="460308"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437184</attachid>
            <date>2021-09-02 12:49:50 -0700</date>
            <delta_ts>2021-09-03 03:51:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-229806-20210902124950.patch</filename>
            <type>text/plain</type>
            <size>8936</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWU1MzI3NzVhNTlhMGQ5
Mzk1MWM1NDhlMWU0YWExZDg3MTU3ZTZkOC4uYmFjM2MwNWE2ZDg3ZjllNTk1YmQzNDBlNjcxNDE1
MTdjNzRmNjk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA5LTAyICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3RlVmlkZW9TYW1w
bGUgbmVlZHMgQ1ZQaXhlbEJ1ZmZlclJlZiB0byBiZSBrZXB0IGFsaXZlLCBidXQgcmVsaWVzIG9u
IGNhbGxlciB0byByZXRhaW4gaXQKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIyOTgw
Nj4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyNjg0NDc5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIENvdmVyZWQgYnkgdGVzdHM6CisgICAgICAgICAg
ICB3ZWJydGMvdmlkZW8tbXV0ZS5odG1sCisgICAgICAgICAgICB3ZWJydGMvdmlkZW8tdW5tdXRl
Lmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUpOgorICAgICAg
ICAtIFBhc3MgQ1ZQaXhlbEJ1ZmZlclJlZiB0byBSZW1vdGVWaWRlb1NhbXBsZQorICAgICAgICAg
IGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGU6OlJlbW90
ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgLSBDaGFuZ2UgY29uc3RydWN0b3IgdG8gYWNjZXB0IENW
UGl4ZWxCdWZmZXJSZWYKKyAgICAgICAgICBhcmd1bWVudC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlk
ZW9TYW1wbGU6OlJlbW90ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgLSBDaGFuZ2UgY29uc3RydWN0
b3IgdG8gYWNjZXB0IENWUGl4ZWxCdWZmZXJSZWYKKyAgICAgICAgICBhcmd1bWVudC4KKyAgICAg
ICAgLSBBZGQgbV9pbWFnZUJ1ZmZlciBpbnN0YW5jZSB2YXJpYWJsZSB0byBob2xkIG9uIHRvIHRo
ZQorICAgICAgICAgIENWUGl4ZWxCdWZmZXJSZWYuCisKIDIwMjEtMDgtMzEgIERhdmlkIEtpbHpl
ciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViUlRDXSBMZWFrIG9yIG92ZXIt
cmVsZWFzZSBvZiBDRlBpeGVsQnVmZmVyUmVmIHJldHVybmVkIGZyb20gd2VicnRjOjpjcmVhdGVQ
aXhlbEJ1ZmZlckZyb21GcmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA5ZGUxZjdjMzYzMWRkOGE2OGExNWJm
N2Q5MDFkZjllMzg1MTk2OTkuLmJhNmVkZjQ5NTNjMzJlMDI3NTJlOWIzNjhlNDU3ODFjYTk5Y2Yy
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDktMDIgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGVWaWRlb1NhbXBsZSBuZWVkcyBD
VlBpeGVsQnVmZmVyUmVmIHRvIGJlIGtlcHQgYWxpdmUsIGJ1dCByZWxpZXMgb24gY2FsbGVyIHRv
IHJldGFpbiBpdAorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjI5ODA2PgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vODI2ODQ0Nzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFtZSk6Cisg
ICAgICAgIC0gUGFzcyBjb252ZXJ0ZWQgQ1ZQaXhlbEJ1ZmZlclJlZiB0bworICAgICAgICAgIFJl
bW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoKS4gIEEgc2ltaWxhciBjaGFuZ2UgaW4gYW4gZWFybGll
cgorICAgICAgICAgIHBhdGNoIGZvciBCdWcgMjI5NjYxIGNhdXNlZCB0ZXN0IGZhaWx1cmVzLgor
CiAyMDIxLTA4LTMxICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1dlYlJUQ10gTGVhayBvciBvdmVyLXJlbGVhc2Ugb2YgQ0ZQaXhlbEJ1ZmZlclJlZiByZXR1
cm5lZCBmcm9tIHdlYnJ0Yzo6Y3JlYXRlUGl4ZWxCdWZmZXJGcm9tRnJhbWUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3Bw
CmluZGV4IDY0ZTMwYmMyOTNjYThmOTM4ODQ4OGYxNDg4NTA2YzU3YmUwYTUxNWQuLmI1MDM5ODE3
NTMwNDA1YWIwMGFiMGJjNzI4OTc1NzRlM2Q4YzM1ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKQEAgLTg5LDQ1
ICs4OSw0NiBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IFJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUoTWVkaWFTYW1wbGUmIHNhbXBsZQogewogICAgIEFTU0VSVChzYW1wbGUu
cGxhdGZvcm1TYW1wbGUoKS50eXBlID09IFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5
cGUpOwogCi0gICAgYXV0byBpbWFnZUJ1ZmZlciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFn
ZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwor
ICAgIFJldGFpblB0ciBpbWFnZUJ1ZmZlciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1
ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwogICAg
IGlmICghaW1hZ2VCdWZmZXIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJS
ZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlOiBDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyIHJl
dHVybmVkIG51bGxwdHIiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAg
c3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gaW9TdXJmYWNlOwotICAgIGF1dG8gc3VyZmFjZSA9
IENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2UoaW1hZ2VCdWZmZXIpOworICAgIGF1dG8gc3VyZmFj
ZSA9IENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2UoaW1hZ2VCdWZmZXIuZ2V0KCkpOwogICAgIGlm
ICghc3VyZmFjZSkgewogICAgICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIGNhbnZhcyBkYXRhIHRo
YXQgaXMgUkdCQSwgbm90IElPU3VyZmFjZSBiYWNrZWQuCi0gICAgICAgIGF1dG8gcGl4ZWxGb3Jt
YXRUeXBlID0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShpbWFnZUJ1ZmZlcik7Cisg
ICAgICAgIGF1dG8gcGl4ZWxGb3JtYXRUeXBlID0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0
VHlwZShpbWFnZUJ1ZmZlci5nZXQoKSk7CiAgICAgICAgIGlmIChwaXhlbEZvcm1hdFR5cGUgIT0g
a0NWUGl4ZWxGb3JtYXRUeXBlXzMyQkdSQSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWEsICJSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlIGRvZXMgbm90IHN1cHBvcnQgbm9u
IElPU3VyZmFjZSBiYWNrZWQgc2FtcGxlcyB0aGF0IGFyZSBub3QgQkdSQSIpOwogICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KIAotICAgICAgICBpb1N1cmZhY2UgPSB0cmFu
c2ZlckJHUkFQaXhlbEJ1ZmZlclRvSU9TdXJmYWNlKGltYWdlQnVmZmVyKTsKKyAgICAgICAgaW9T
dXJmYWNlID0gdHJhbnNmZXJCR1JBUGl4ZWxCdWZmZXJUb0lPU3VyZmFjZShpbWFnZUJ1ZmZlci5n
ZXQoKSk7CiAgICAgICAgIGlmICghaW9TdXJmYWNlKQogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICAgICAgc3VyZmFjZSA9IGlvU3VyZmFjZS0+c3VyZmFjZSgpOwogICAgIH0KIAot
ICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+KG5ldyBSZW1vdGVW
aWRlb1NhbXBsZShzdXJmYWNlLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwgc2FtcGxl
LnByZXNlbnRhdGlvblRpbWUoKSwgc2FtcGxlLnZpZGVvUm90YXRpb24oKSwgc2FtcGxlLnZpZGVv
TWlycm9yZWQoKSkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1w
bGU+KG5ldyBSZW1vdGVWaWRlb1NhbXBsZShzdXJmYWNlLCBXVEZNb3ZlKGltYWdlQnVmZmVyKSwg
RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIHNhbXBsZS5wcmVzZW50YXRpb25UaW1lKCks
IHNhbXBsZS52aWRlb1JvdGF0aW9uKCksIHNhbXBsZS52aWRlb01pcnJvcmVkKCkpKTsKIH0KIAot
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBSZW1vdGVWaWRlb1NhbXBsZTo6Y3Jl
YXRlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIE1lZGlhVGltZSYmIHByZXNlbnRhdGlv
blRpbWUsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9uKQorc3RkOjp1bmlxdWVf
cHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiYmIGltYWdlQnVmZmVyLCBNZWRpYVRpbWUmJiBwcmVzZW50YXRp
b25UaW1lLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiByb3RhdGlvbikKIHsKLSAgICBhdXRv
IHN1cmZhY2UgPSBDVlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNlKGltYWdlQnVmZmVyKTsKKyAgICBh
dXRvIHN1cmZhY2UgPSBDVlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNlKGltYWdlQnVmZmVyLmdldCgp
KTsKICAgICBpZiAoIXN1cmZhY2UpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEs
ICJSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlOiBDVlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNlIHJl
dHVybmVkIG51bGxwdHIiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAg
cmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4obmV3IFJlbW90ZVZpZGVv
U2FtcGxlKHN1cmZhY2UsIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBXVEZNb3ZlKHBy
ZXNlbnRhdGlvblRpbWUpLCByb3RhdGlvbiwgZmFsc2UpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPihuZXcgUmVtb3RlVmlkZW9TYW1wbGUoc3VyZmFjZSwg
V1RGTW92ZShpbWFnZUJ1ZmZlciksIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBXVEZN
b3ZlKHByZXNlbnRhdGlvblRpbWUpLCByb3RhdGlvbiwgZmFsc2UpKTsKIH0KIAotUmVtb3RlVmlk
ZW9TYW1wbGU6OlJlbW90ZVZpZGVvU2FtcGxlKElPU3VyZmFjZVJlZiBzdXJmYWNlLCBjb25zdCBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UsIE1lZGlhVGltZSYmIHRpbWUsIE1lZGlh
U2FtcGxlOjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9uLCBib29sIG1pcnJvcmVkKQorUmVtb3RlVmlk
ZW9TYW1wbGU6OlJlbW90ZVZpZGVvU2FtcGxlKElPU3VyZmFjZVJlZiBzdXJmYWNlLCBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiBpbWFnZUJ1ZmZlciwgY29uc3QgRGVzdGluYXRpb25Db2xv
clNwYWNlJiBjb2xvclNwYWNlLCBNZWRpYVRpbWUmJiB0aW1lLCBNZWRpYVNhbXBsZTo6VmlkZW9S
b3RhdGlvbiByb3RhdGlvbiwgYm9vbCBtaXJyb3JlZCkKICAgICA6IG1faW9TdXJmYWNlKFdlYkNv
cmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbVN1cmZhY2Uoc3VyZmFjZSwgY29sb3JTcGFjZSkpCisg
ICAgLCBtX2ltYWdlQnVmZmVyKFdURk1vdmUoaW1hZ2VCdWZmZXIpKQogICAgICwgbV9yb3RhdGlv
bihyb3RhdGlvbikKICAgICAsIG1fdGltZShXVEZNb3ZlKHRpbWUpKQogICAgICwgbV92aWRlb0Zv
cm1hdChJT1N1cmZhY2VHZXRQaXhlbEZvcm1hdChzdXJmYWNlKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCmluZGV4IDczNjFl
NWU4YWY2NzA0MzljNDk3ZGU2OWExNmZmMzRiZjJjNTc1OGQuLjNiN2Q2MzRkZDVkNmM0ZjUwNTg0
MTYzZWU3MjFhYTg3YjdkNWFkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6
CiAgICAgflJlbW90ZVZpZGVvU2FtcGxlKCkgPSBkZWZhdWx0OwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKE1lZGlh
U2FtcGxlJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1v
dGVWaWRlb1NhbXBsZT4gY3JlYXRlKENWUGl4ZWxCdWZmZXJSZWYsIE1lZGlhVGltZSYmIHByZXNl
bnRhdGlvblRpbWUsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZp
ZGVvUm90YXRpb246Ok5vbmUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IGNyZWF0ZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4mJiwgTWVkaWFUaW1lJiYgcHJlc2VudGF0aW9uVGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90
YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgSU9TdXJmYWNlUmVmIHN1cmZhY2UoKSBjb25zdDsKIAogICAgIGNvbnN0IE1lZGlhVGlt
ZSYgdGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZTsgfQpAQCAtMTAzLDkgKzEwMywxMCBAQCBw
dWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFJlbW90ZVZpZGVvU2FtcGxlKElPU3VyZmFj
ZVJlZiwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiwgTWVkaWFUaW1lJiYsIE1lZGlhU2Ft
cGxlOjpWaWRlb1JvdGF0aW9uLCBib29sKTsKKyAgICBSZW1vdGVWaWRlb1NhbXBsZShJT1N1cmZh
Y2VSZWYsIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmLCBjb25zdCBEZXN0aW5hdGlvbkNv
bG9yU3BhY2UmLCBNZWRpYVRpbWUmJiwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24sIGJvb2wp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gbV9pb1N1cmZhY2U7
CisgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1faW1hZ2VCdWZmZXI7CiAgICAgV1RG
OjpNYWNoU2VuZFJpZ2h0IG1fc2VuZFJpZ2h0OwogICAgIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0
aW9uIG1fcm90YXRpb24geyBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OwogICAg
IE1lZGlhVGltZSBtX3RpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAppbmRleCBlNDAwMDMxYzg1NDYzY2FmZTVi
MjE5NjQwNDdjY2Y1NTg2NDIzOGRmLi45YWQ5NGQ2ODZlNDM4MGI1YTEzYjk0NzcxMzNhODgyMjUx
ZGIwNDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKQEAgLTQ1Myw4ICs0NTMsNyBAQCBpbnQzMl90IExpYldl
YlJUQ0NvZGVjczo6ZW5jb2RlRnJhbWUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qgd2VicnRjOjpW
aWRlb0ZyYW1lJgogICAgIGF1dG8gc2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShw
aXhlbEJ1ZmZlci5nZXQoKSwgTWVkaWFUaW1lKGZyYW1lLnRpbWVzdGFtcF91cygpICogMTAwMCwg
MTAwMDAwMCksIHRvTWVkaWFTYW1wbGVWaWRlb1JvdGF0aW9uKGZyYW1lLnJvdGF0aW9uKCkpKTsK
ICAgICBpZiAoIXNhbXBsZSkgewogICAgICAgICAvLyBGSVhNRTogT3B0aW1pemUgdGhpcyBjb2Rl
IHBhdGgsIGN1cnJlbnRseSB3ZSBoYXZlIG5vbiBCR1JBIGZvciBtdXRlZCBmcmFtZXMgYXQgbGVh
c3QuCi0gICAgICAgIHBpeGVsQnVmZmVyID0gY29udmVydFRvQkdSQShwaXhlbEJ1ZmZlci5nZXQo
KSk7Ci0gICAgICAgIHNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUocGl4ZWxCdWZm
ZXIuZ2V0KCksIE1lZGlhVGltZShmcmFtZS50aW1lc3RhbXBfdXMoKSAqIDEwMDAsIDEwMDAwMDAp
LCB0b01lZGlhU2FtcGxlVmlkZW9Sb3RhdGlvbihmcmFtZS5yb3RhdGlvbigpKSk7CisgICAgICAg
IHNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoY29udmVydFRvQkdSQShwaXhlbEJ1
ZmZlci5nZXQoKSksIE1lZGlhVGltZShmcmFtZS50aW1lc3RhbXBfdXMoKSAqIDEwMDAsIDEwMDAw
MDApLCB0b01lZGlhU2FtcGxlVmlkZW9Sb3RhdGlvbihmcmFtZS5yb3RhdGlvbigpKSk7CiAgICAg
fQogCiAgICAgZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2Rl
Y3NQcm94eTo6RW5jb2RlRnJhbWUgeyBlbmNvZGVyLmlkZW50aWZpZXIsICpzYW1wbGUsIGZyYW1l
LnRpbWVzdGFtcCgpLCBzaG91bGRFbmNvZGVBc0tleUZyYW1lIH0sIDApOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>