<?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>231162</bug_id>
          
          <creation_ts>2021-10-04 03:03:48 -0700</creation_ts>
          <short_desc>ObjectiveC WebRTC frame buffers are autoreleased late, especially on Debug builds</short_desc>
          <delta_ts>2021-10-06 05:20:59 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</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>1800004</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-04 03:03:48 -0700</bug_when>
    <thetext>ObjectiveC WebRTC frame buffers are autoreleased late, especially on Debug builds.
On debug builds, running https://webrtc.github.io/samples/src/content/peerconnection/change-codecs/ with VP8 and mock capture source (click start, then call) will see memory increases a lot, up to more than 1 GB.
When clicking hang up, all this memory got autoreleased but we would hope it would be released sooner.

On debug builds, running https://webrtc.github.io/samples/src/content/peerconnection/pc1/ with the real camera fails after a few frames being encoded (click start, then call).
The camera CVPixelBuffers are only released after clicking hang up, which makes the camera stopping to emit frames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800007</commentid>
    <comment_count>1</comment_count>
      <attachid>440047</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-04 03:19:24 -0700</bug_when>
    <thetext>Created attachment 440047
Explicit close approach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800013</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-04 03:36:12 -0700</bug_when>
    <thetext>For the real camera case, RTCCVPixelBuffer are sometimes deallocated too late, and deallocation triggers releasing the wrapped CVPixelBuffer.
For the VP8 case, CVPixelBuffers are converted in I420 webrtc internal buffers, which are kept alive until RTCI420Buffer are deallocated.

I feel like we might be able to do better (@autoreleasepool maybe?) but I am not familiar with how to do it. Advices most welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800014</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-04 03:36:43 -0700</bug_when>
    <thetext>I wonder whether this might explain rdar://83435926.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800032</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-04 05:27:02 -0700</bug_when>
    <thetext>Also not sure why the issue occurs now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800318</commentid>
    <comment_count>5</comment_count>
      <attachid>440047</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-10-04 17:53:51 -0700</bug_when>
    <thetext>Comment on attachment 440047
Explicit close approach

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

&gt; Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitEncoder.mm:374
&gt; -    auto *videoFrame = [[RTCVideoFrame alloc] initWithBuffer:ToObjCVideoFrameBuffer(pixelBufferToFrame(pixelBuffer)) rotation:RTCVideoRotation(rotation) timeStampNs:timeStampNs];
&gt; +    auto videoFrameBuffer = pixelBufferToFrame(pixelBuffer);
&gt; +    auto *videoFrame = [[RTCVideoFrame alloc] initWithBuffer:ToObjCVideoFrameBuffer(videoFrameBuffer) rotation:RTCVideoRotation(rotation) timeStampNs:timeStampNs];

This change is likely what fixes the autoreleased objects.

I&apos;d have to look at generated code to be sure (which I&apos;m not very good at), but this change probably allows the compiler to avoid autoreleasing the result of ToObjCVideoFrameBuffer() somehow, which is where these objects come from.

Under ARC, any method that returns an Objective-C object (that&apos;s not marked NS_RETURNS_RETAINED) will return a +1 autoreleased object unless the caller is also compiled with ARC and the result is stored in some kind of a (temp) variable, which allows the +1 autoreleased object to become a +1 retained object using a special optimization trick.

I would have said that this change would be a &quot;safer&quot; bet to eliminate the autoreleased object because it provides a local variable for the Objective-C object that was formerly autoreleased:

    auto videoFrameBuffer = ToObjCVideoFrameBuffer(pixelBufferToFrame(pixelBuffer));  // Obj-C object is now +1 retained instead of +1 autoreleased
    auto *videoFrame = [[RTCVideoFrame alloc] initWithBuffer:videoFrameBuffer rotation:RTCVideoRotation(rotation) timeStampNs:timeStampNs];

Having said that, changing ToObjCVideoFrameBuffer() into an inline method (moving it from objc_frame_buffer.mm to objc_frame_buffer.h) might also allow the optimization to occur (without changes to this caller), but I&apos;m not 100% sure about that.  (If ToObjCVideoFrameBuffer() is used in more than one place, this might eliminate other places where videoFrameBuffer objects are autoreleased as well.)

(I used to have a blog article that I linked to where I learned about the optimization, but I can&apos;t find it now.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800320</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-10-04 17:58:08 -0700</bug_when>
    <thetext>Ah, here&apos;s the article where I read about this:
&lt;https://mikeash.com/pyblog/friday-qa-2011-09-30-automatic-reference-counting.html&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800326</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-10-04 18:06:01 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #6)
&gt; Ah, here&apos;s the article where I read about this:
&gt; &lt;https://mikeash.com/pyblog/friday-qa-2011-09-30-automatic-reference-
&gt; counting.html&gt;

See the sections about objc_retainAutoreleaseReturnValue().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800441</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-05 01:24:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/83876310&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800502</commentid>
    <comment_count>9</comment_count>
      <attachid>440047</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-05 03:43:26 -0700</bug_when>
    <thetext>Comment on attachment 440047
Explicit close approach

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

&gt;&gt; Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitEncoder.mm:374
&gt;&gt; +    auto *videoFrame = [[RTCVideoFrame alloc] initWithBuffer:ToObjCVideoFrameBuffer(videoFrameBuffer) rotation:RTCVideoRotation(rotation) timeStampNs:timeStampNs];
&gt; 
&gt; This change is likely what fixes the autoreleased objects.
&gt; 
&gt; I&apos;d have to look at generated code to be sure (which I&apos;m not very good at), but this change probably allows the compiler to avoid autoreleasing the result of ToObjCVideoFrameBuffer() somehow, which is where these objects come from.
&gt; 
&gt; Under ARC, any method that returns an Objective-C object (that&apos;s not marked NS_RETURNS_RETAINED) will return a +1 autoreleased object unless the caller is also compiled with ARC and the result is stored in some kind of a (temp) variable, which allows the +1 autoreleased object to become a +1 retained object using a special optimization trick.
&gt; 
&gt; I would have said that this change would be a &quot;safer&quot; bet to eliminate the autoreleased object because it provides a local variable for the Objective-C object that was formerly autoreleased:
&gt; 
&gt;     auto videoFrameBuffer = ToObjCVideoFrameBuffer(pixelBufferToFrame(pixelBuffer));  // Obj-C object is now +1 retained instead of +1 autoreleased
&gt;     auto *videoFrame = [[RTCVideoFrame alloc] initWithBuffer:videoFrameBuffer rotation:RTCVideoRotation(rotation) timeStampNs:timeStampNs];
&gt; 
&gt; Having said that, changing ToObjCVideoFrameBuffer() into an inline method (moving it from objc_frame_buffer.mm to objc_frame_buffer.h) might also allow the optimization to occur (without changes to this caller), but I&apos;m not 100% sure about that.  (If ToObjCVideoFrameBuffer() is used in more than one place, this might eliminate other places where videoFrameBuffer objects are autoreleased as well.)
&gt; 
&gt; (I used to have a blog article that I linked to where I learned about the optimization, but I can&apos;t find it now.)

I tried that but it does not seem to work for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800979</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-06 00:22:35 -0700</bug_when>
    <thetext>Thanks for the r+, I will add some WEBRTC_WEBKIT_BUILD to keep track of the changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800980</commentid>
    <comment_count>11</comment_count>
      <attachid>440340</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-06 00:28:55 -0700</bug_when>
    <thetext>Created attachment 440340
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801011</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-06 03:13:22 -0700</bug_when>
    <thetext>Committed r283610 (242562@main): &lt;https://commits.webkit.org/242562@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440340.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801023</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-06 05:20:33 -0700</bug_when>
    <thetext>&lt;rdar://83435926&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801024</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-06 05:20:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/83876310&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440047</attachid>
            <date>2021-10-04 03:19:24 -0700</date>
            <delta_ts>2021-10-06 00:28:50 -0700</delta_ts>
            <desc>Explicit close approach</desc>
            <filename>bug-231162-20211004121922.patch</filename>
            <type>text/plain</type>
            <size>7559</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA0ZWI4ZmU0NzEyYzY4YjViNjk4ODBlYTc5MzFjOWY5OTFhZTY1NDBjLi4zM2Ni
MWI4Y2E2Y2NmNDQ0NTVhMmVmZjI1OGQxNmJjN2IyM2I3M2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0xMC0wNCAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgT2JqZWN0aXZlQyBXZWJSVEMgZnJh
bWUgYnVmZmVycyBhcmUgYXV0b3JlbGVhc2VkIGxhdGUsIGVzcGVjaWFsbHkgb24gRGVidWcgYnVp
bGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEx
NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0
ZWFkIG9mIHdhaXRpbmcgZm9yIHRoZSBhdXRvcmVsZWFzZSBwb29sIHRvIHJlbGVhc2UgdGhlc2Ug
b2JqZWN0cywgd2UgZXhwbGljaXRseSByZWxlYXNlIHRoZW0gYnkgY2FsbGluZyBjbG9zZS4KKyAg
ICAgICAgVGhpcyBlbnN1cmVzIHRoYXQgcGl4ZWwgYnVmZmVycyBnZXQgcmVsZWFzZWQgdmVyeSBx
dWlja2x5LgorCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdEVuY29k
ZXIubW06CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9fZnJhbWVf
YnVmZmVyL1JUQ05hdGl2ZUk0MjBCdWZmZXIrUHJpdmF0ZS5oOgorICAgICAgICAqIFNvdXJjZS93
ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENOYXRpdmVJNDIwQnVmZmVy
Lm1tOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvYmFzZS9SVENJNDIwQnVmZmVy
Lmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9iYXNlL1JUQ1ZpZGVvRnJhbWVC
dWZmZXIuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fZnJhbWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZmZXIuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZm
ZXIubW06CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNf
ZnJhbWVfYnVmZmVyLm1tOgorCiAyMDIxLTA5LTI4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW9zdGx5IGZpeCBNYWMgQ01ha2UgYnVpbGQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9XZWJLaXQvV2ViS2l0RW5jb2Rlci5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RW5jb2Rlci5tbQppbmRleCA1NTNhNzgyN2Ey
NTQ4NDdmZDlkNTFiYzRkM2Q5YjBmMDFhOTgyN2RlLi43Y2U1N2Q2NDdhOGQwMzM4ZjYzMmM1MmNm
Mzg1MDkwOTk2NGRmZDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdEVuY29kZXIubW0KKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRFbmNvZGVy
Lm1tCkBAIC0zNzAsNyArMzcwLDggQEAgdm9pZCBlbmNvZGVMb2NhbEVuY29kZXJGcmFtZShMb2Nh
bEVuY29kZXIgbG9jYWxFbmNvZGVyLCBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnUKICAgICBpZiAo
aXNLZXlmcmFtZVJlcXVpcmVkKQogICAgICAgICBbcnRjRnJhbWVUeXBlcyBhZGRPYmplY3Q6QChS
VENGcmFtZVR5cGUoUlRDRnJhbWVUeXBlVmlkZW9GcmFtZUtleSkpXTsKIAotICAgIGF1dG8gKnZp
ZGVvRnJhbWUgPSBbW1JUQ1ZpZGVvRnJhbWUgYWxsb2NdIGluaXRXaXRoQnVmZmVyOlRvT2JqQ1Zp
ZGVvRnJhbWVCdWZmZXIocGl4ZWxCdWZmZXJUb0ZyYW1lKHBpeGVsQnVmZmVyKSkgcm90YXRpb246
UlRDVmlkZW9Sb3RhdGlvbihyb3RhdGlvbikgdGltZVN0YW1wTnM6dGltZVN0YW1wTnNdOworICAg
IGF1dG8gdmlkZW9GcmFtZUJ1ZmZlciA9IHBpeGVsQnVmZmVyVG9GcmFtZShwaXhlbEJ1ZmZlcik7
CisgICAgYXV0byAqdmlkZW9GcmFtZSA9IFtbUlRDVmlkZW9GcmFtZSBhbGxvY10gaW5pdFdpdGhC
dWZmZXI6VG9PYmpDVmlkZW9GcmFtZUJ1ZmZlcih2aWRlb0ZyYW1lQnVmZmVyKSByb3RhdGlvbjpS
VENWaWRlb1JvdGF0aW9uKHJvdGF0aW9uKSB0aW1lU3RhbXBOczp0aW1lU3RhbXBOc107CiAgICAg
dmlkZW9GcmFtZS50aW1lU3RhbXAgPSB0aW1lU3RhbXA7CiAgICAgYXV0byAqZW5jb2RlciA9IChf
X2JyaWRnZSBXS19SVENMb2NhbFZpZGVvSDI2NEgyNjVFbmNvZGVyICopKGxvY2FsRW5jb2Rlcik7
CiAgICAgW2VuY29kZXIgZW5jb2RlOnZpZGVvRnJhbWUgY29kZWNTcGVjaWZpY0luZm86bmlsIGZy
YW1lVHlwZXM6cnRjRnJhbWVUeXBlc107CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9fZnJhbWVfYnVmZmVyL1JU
Q05hdGl2ZUk0MjBCdWZmZXIrUHJpdmF0ZS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENOYXRpdmVJ
NDIwQnVmZmVyK1ByaXZhdGUuaAppbmRleCBmYWQwOGMyNDUzMTc2MGQ0YTk2NzVkMDI2ZTQxNzhi
ZWUxZTU1YWM1Li44YzZlNWY2ZWUyNDA3YzFkZDcyYjRiZDc4NzM4MmE5OTY3ODlkMDAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2Jq
Yy9hcGkvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ05hdGl2ZUk0MjBCdWZmZXIrUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Fw
aS92aWRlb19mcmFtZV9idWZmZXIvUlRDTmF0aXZlSTQyMEJ1ZmZlcitQcml2YXRlLmgKQEAgLTIy
LDcgKzIyLDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIC8qKiBJbml0aWFsaXplIGFuIFJU
Q0k0MjBCdWZmZXIgd2l0aCBpdHMgYmFja2luZyBJNDIwQnVmZmVySW50ZXJmYWNlLiAqLwogLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWVCdWZmZXI6KHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJy
dGM6Okk0MjBCdWZmZXJJbnRlcmZhY2U+KWk0MjBCdWZmZXI7CiAtIChydGM6OnNjb3BlZF9yZWZw
dHI8d2VicnRjOjpJNDIwQnVmZmVySW50ZXJmYWNlPiluYXRpdmVJNDIwQnVmZmVyOwotCistICh2
b2lkKWNsb3NlOwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRl
b19mcmFtZV9idWZmZXIvUlRDTmF0aXZlSTQyMEJ1ZmZlci5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19mcmFtZV9idWZmZXIv
UlRDTmF0aXZlSTQyMEJ1ZmZlci5tbQppbmRleCBkOWQ1ZDE1NzE2MDBhMzZkYzk4N2IwYzhkZDBi
YmQ5NmE1NjE3ZGU4Li41ZmU1ZTg5MTFmZjMyZTdiNjBhZDkzNTZjNzE1NjRmYjIxM2RjNzIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9hcGkvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ05hdGl2ZUk0MjBCdWZmZXIubW0KKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3Zp
ZGVvX2ZyYW1lX2J1ZmZlci9SVENOYXRpdmVJNDIwQnVmZmVyLm1tCkBAIC0xMDksNiArMTA5LDEw
IEBACiAgIHJldHVybiBfaTQyMEJ1ZmZlcjsKIH0KIAorLSAodm9pZCljbG9zZSB7CisgIF9pNDIw
QnVmZmVyID0gbnVsbHB0cjsKK30KKwogI3ByYWdtYSBtYXJrIC0gRGVidWdnaW5nCiAKICNpZiAh
ZGVmaW5lZChOREVCVUcpICYmIGRlZmluZWQoV0VCUlRDX0lPUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Jhc2UvUlRDVmlk
ZW9GcmFtZUJ1ZmZlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgKaW5kZXggYmI5ZTZmYmE2MzFi
ZDkzM2EwNTQ5Y2ZlNmNiN2ZlYTM5OTYxZjU2My4uYTdjZGNlNmQzNDM2N2EyZThkNjc1NjM2ZTc4
YTRiNGU3N2YyNDBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYmFzZS9SVENW
aWRlb0ZyYW1lQnVmZmVyLmgKQEAgLTI0LDcgKzI0LDcgQEAgUlRDX09CSkNfRVhQT1JUCiBAcHJv
cGVydHkobm9uYXRvbWljLCByZWFkb25seSkgaW50IGhlaWdodDsKIAogLSAoaWQ8UlRDSTQyMEJ1
ZmZlcj4pdG9JNDIwOwotCistICh2b2lkKWNsb3NlOwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVM
TF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZm
ZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L2NvbXBvbmVudHMvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZmZXIuaAppbmRleCBh
YmU5ZGZjYTkzYjA0YmY1NTJlYzAzMDJiODA3NTk3ZGYyNjFlZGIxLi43ODczYjU3NjM1NWViNWZh
YzdkYTNjZjlmYTM0Zjc2NWYwZGU1Y2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1
ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19mcmFtZV9idWZmZXIvUlRD
Q1ZQaXhlbEJ1ZmZlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIF9fYXR0cmlidXRlX18oKG9iamNfcnVu
dGltZV9uYW1lKCJXS19SVENDVlBpeGVsQnVmZmVyIikpKQogICovCiAtIChCT09MKWNyb3BBbmRT
Y2FsZVRvOihDVlBpeGVsQnVmZmVyUmVmKW91dHB1dFBpeGVsQnVmZmVyCiAgICAgICAgIHdpdGhU
ZW1wQnVmZmVyOihudWxsYWJsZSB1aW50OF90ICopdG1wQnVmZmVyOwotCistICh2b2lkKWNsb3Nl
OwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9f
ZnJhbWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZmZXIubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZl
ci9SVENDVlBpeGVsQnVmZmVyLm1tCmluZGV4IDAxYjY0MDVkYzQxYzVkNTliODA2YzVlOTc0ZWU1
Yjk2ODI0NDg5YjYuLjUzZDMzMDBmNjEyNWRhNDQ2YjkzYmUwZmVmYmM2ZDk1NGY4ZTIwYTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZmZXIubW0KKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19mcmFtZV9idWZmZXIvUlRDQ1ZQaXhlbEJ1ZmZlci5tbQpAQCAtMzQ1LDQg
KzM0NSw5IEBACiAgIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcyhvdXRwdXRQaXhlbEJ1
ZmZlciwgMCk7CiB9CiAKKy0gKHZvaWQpY2xvc2UgeworICAgIENWQnVmZmVyUmVsZWFzZShfcGl4
ZWxCdWZmZXIpOworICAgIF9waXhlbEJ1ZmZlciA9IG5pbDsKK30KKwogQGVuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0
aXZlL3NyYy9vYmpjX2ZyYW1lX2J1ZmZlci5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY19mcmFtZV9idWZmZXIubW0K
aW5kZXggNTJlNDM0MTUyYzRlMzhkODQ3ZGZkY2VkZTY0MDY0ZTE0Njk2NTViMC4uZjQ1Yzg2M2M4
OTFmNGJmMmE3ZTdkMzViOWJlYThhZDNlMmE5YjY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX2Zy
YW1lX2J1ZmZlci5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfZnJhbWVfYnVmZmVyLm1tCkBAIC0yMiw3ICsy
Miw5IEBAIGNsYXNzIE9iakNJNDIwRnJhbWVCdWZmZXIgOiBwdWJsaWMgSTQyMEJ1ZmZlckludGVy
ZmFjZSB7CiAgcHVibGljOgogICBleHBsaWNpdCBPYmpDSTQyMEZyYW1lQnVmZmVyKGlkPFJUQ0k0
MjBCdWZmZXI+IGZyYW1lX2J1ZmZlcikKICAgICAgIDogZnJhbWVfYnVmZmVyXyhmcmFtZV9idWZm
ZXIpLCB3aWR0aF8oZnJhbWVfYnVmZmVyLndpZHRoKSwgaGVpZ2h0XyhmcmFtZV9idWZmZXIuaGVp
Z2h0KSB7fQotICB+T2JqQ0k0MjBGcmFtZUJ1ZmZlcigpIG92ZXJyaWRlIHt9CisgIH5PYmpDSTQy
MEZyYW1lQnVmZmVyKCkgb3ZlcnJpZGUgeworICAgIFtmcmFtZV9idWZmZXJfIGNsb3NlXTsKKyAg
fQogCiAgIGludCB3aWR0aCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHdpZHRoXzsgfQogCkBA
IC01MSw3ICs1Myw5IEBAIGNsYXNzIE9iakNJNDIwRnJhbWVCdWZmZXIgOiBwdWJsaWMgSTQyMEJ1
ZmZlckludGVyZmFjZSB7CiBPYmpDRnJhbWVCdWZmZXI6Ok9iakNGcmFtZUJ1ZmZlcihpZDxSVENW
aWRlb0ZyYW1lQnVmZmVyPiBmcmFtZV9idWZmZXIpCiAgICAgOiBmcmFtZV9idWZmZXJfKGZyYW1l
X2J1ZmZlciksIHdpZHRoXyhmcmFtZV9idWZmZXIud2lkdGgpLCBoZWlnaHRfKGZyYW1lX2J1ZmZl
ci5oZWlnaHQpIHt9CiAKLU9iakNGcmFtZUJ1ZmZlcjo6fk9iakNGcmFtZUJ1ZmZlcigpIHt9CitP
YmpDRnJhbWVCdWZmZXI6On5PYmpDRnJhbWVCdWZmZXIoKSB7CisgIFtmcmFtZV9idWZmZXJfIGNs
b3NlXTsKK30KIAogVmlkZW9GcmFtZUJ1ZmZlcjo6VHlwZSBPYmpDRnJhbWVCdWZmZXI6OnR5cGUo
KSBjb25zdCB7CiAgIHJldHVybiBUeXBlOjprTmF0aXZlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440340</attachid>
            <date>2021-10-06 00:28:55 -0700</date>
            <delta_ts>2021-10-06 03:13:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231162-20211006092853.patch</filename>
            <type>text/plain</type>
            <size>7723</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA2ZjRmZDM4NjdhMDAzYWQzMDUzY2E3ZTAwZTVmYjQyY2U5OTY5ODNiLi5mZTJm
ZTY0ZTE1ZWZiZTgxNzRhYWE0MzFhOTA0MmNmYjkzNmIzODQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0xMC0wNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgT2JqZWN0aXZlQyBXZWJSVEMgZnJh
bWUgYnVmZmVycyBhcmUgYXV0b3JlbGVhc2VkIGxhdGUsIGVzcGVjaWFsbHkgb24gRGVidWcgYnVp
bGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEx
NjIKKworICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBLaWx6ZXIuCisKKyAgICAgICAgSW5zdGVh
ZCBvZiB3YWl0aW5nIGZvciB0aGUgYXV0b3JlbGVhc2UgcG9vbCB0byByZWxlYXNlIHRoZXNlIG9i
amVjdHMsIHdlIGV4cGxpY2l0bHkgcmVsZWFzZSB0aGVtIGJ5IGNhbGxpbmcgY2xvc2UuCisgICAg
ICAgIFRoaXMgZW5zdXJlcyB0aGF0IHBpeGVsIGJ1ZmZlcnMgZ2V0IHJlbGVhc2VkIHZlcnkgcXVp
Y2tseS4KKworICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRFbmNvZGVy
Lm1tOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2ZyYW1lX2J1
ZmZlci9SVENOYXRpdmVJNDIwQnVmZmVyK1ByaXZhdGUuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL3Nkay9vYmpjL2FwaS92aWRlb19mcmFtZV9idWZmZXIvUlRDTmF0aXZlSTQyMEJ1ZmZlci5t
bToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Jhc2UvUlRDSTQyMEJ1ZmZlci5o
OgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvYmFzZS9SVENWaWRlb0ZyYW1lQnVm
ZmVyLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVy
Lm1tOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX2Zy
YW1lX2J1ZmZlci5tbToKKwogMjAyMS0xMC0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIERyb3Agc3VwcG9ydCBmb3IgbWFjT1MgPCAxMC4xNQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9X
ZWJLaXRFbmNvZGVyLm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL1dlYktpdC9XZWJLaXRFbmNvZGVyLm1tCmluZGV4IDU1M2E3ODI3YTI1NDg0N2ZkOWQ1
MWJjNGQzZDliMGYwMWE5ODI3ZGUuLjdjZTU3ZDY0N2E4ZDAzMzhmNjMyYzUyY2YzODUwOTA5OTY0
ZGZkNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9XZWJLaXQvV2ViS2l0RW5jb2Rlci5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdEVuY29kZXIubW0KQEAgLTM3
MCw3ICszNzAsOCBAQCB2b2lkIGVuY29kZUxvY2FsRW5jb2RlckZyYW1lKExvY2FsRW5jb2RlciBs
b2NhbEVuY29kZXIsIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdQogICAgIGlmIChpc0tleWZyYW1l
UmVxdWlyZWQpCiAgICAgICAgIFtydGNGcmFtZVR5cGVzIGFkZE9iamVjdDpAKFJUQ0ZyYW1lVHlw
ZShSVENGcmFtZVR5cGVWaWRlb0ZyYW1lS2V5KSldOwogCi0gICAgYXV0byAqdmlkZW9GcmFtZSA9
IFtbUlRDVmlkZW9GcmFtZSBhbGxvY10gaW5pdFdpdGhCdWZmZXI6VG9PYmpDVmlkZW9GcmFtZUJ1
ZmZlcihwaXhlbEJ1ZmZlclRvRnJhbWUocGl4ZWxCdWZmZXIpKSByb3RhdGlvbjpSVENWaWRlb1Jv
dGF0aW9uKHJvdGF0aW9uKSB0aW1lU3RhbXBOczp0aW1lU3RhbXBOc107CisgICAgYXV0byB2aWRl
b0ZyYW1lQnVmZmVyID0gcGl4ZWxCdWZmZXJUb0ZyYW1lKHBpeGVsQnVmZmVyKTsKKyAgICBhdXRv
ICp2aWRlb0ZyYW1lID0gW1tSVENWaWRlb0ZyYW1lIGFsbG9jXSBpbml0V2l0aEJ1ZmZlcjpUb09i
akNWaWRlb0ZyYW1lQnVmZmVyKHZpZGVvRnJhbWVCdWZmZXIpIHJvdGF0aW9uOlJUQ1ZpZGVvUm90
YXRpb24ocm90YXRpb24pIHRpbWVTdGFtcE5zOnRpbWVTdGFtcE5zXTsKICAgICB2aWRlb0ZyYW1l
LnRpbWVTdGFtcCA9IHRpbWVTdGFtcDsKICAgICBhdXRvICplbmNvZGVyID0gKF9fYnJpZGdlIFdL
X1JUQ0xvY2FsVmlkZW9IMjY0SDI2NUVuY29kZXIgKikobG9jYWxFbmNvZGVyKTsKICAgICBbZW5j
b2RlciBlbmNvZGU6dmlkZW9GcmFtZSBjb2RlY1NwZWNpZmljSW5mbzpuaWwgZnJhbWVUeXBlczpy
dGNGcmFtZVR5cGVzXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19mcmFtZV9idWZmZXIvUlRDTmF0aXZlSTQy
MEJ1ZmZlcitQcml2YXRlLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ05hdGl2ZUk0MjBCdWZmZXIr
UHJpdmF0ZS5oCmluZGV4IGZhZDA4YzI0NTMxNzYwZDRhOTY3NWQwMjZlNDE3OGJlZTFlNTVhYzUu
Ljg3NTRjNTFmOWZmMDE2YTJjZmFiODgwYzEwNTc5YTRkMDI0MjgxZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRl
b19mcmFtZV9idWZmZXIvUlRDTmF0aXZlSTQyMEJ1ZmZlcitQcml2YXRlLmgKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2Zy
YW1lX2J1ZmZlci9SVENOYXRpdmVJNDIwQnVmZmVyK1ByaXZhdGUuaApAQCAtMjMsNiArMjMsOSBA
QCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWVC
dWZmZXI6KHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6Okk0MjBCdWZmZXJJbnRlcmZhY2U+KWk0
MjBCdWZmZXI7CiAtIChydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpJNDIwQnVmZmVySW50ZXJm
YWNlPiluYXRpdmVJNDIwQnVmZmVyOwogCisjaWYgZGVmaW5lZChXRUJSVENfV0VCS0lUX0JVSUxE
KQorLSAodm9pZCljbG9zZTsKKyNlbmRpZgogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2FwaS92aWRlb19mcmFtZV9idWZmZXIvUlRDTmF0aXZlSTQyMEJ1ZmZlci5tbSBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRl
b19mcmFtZV9idWZmZXIvUlRDTmF0aXZlSTQyMEJ1ZmZlci5tbQppbmRleCBkOWQ1ZDE1NzE2MDBh
MzZkYzk4N2IwYzhkZDBiYmQ5NmE1NjE3ZGU4Li5iMTM4Njg2M2FiOTZiMjg2NmMwZGNjOTdmMGFh
YmI1YzdlMTZkYzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ05hdGl2ZUk0MjBC
dWZmZXIubW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL29iamMvYXBpL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENOYXRpdmVJNDIwQnVmZmVyLm1tCkBA
IC0xMDksNiArMTA5LDEyIEBACiAgIHJldHVybiBfaTQyMEJ1ZmZlcjsKIH0KIAorI2lmIGRlZmlu
ZWQoV0VCUlRDX1dFQktJVF9CVUlMRCkKKy0gKHZvaWQpY2xvc2UgeworICBfaTQyMEJ1ZmZlciA9
IG51bGxwdHI7Cit9CisjZW5kaWYKKwogI3ByYWdtYSBtYXJrIC0gRGVidWdnaW5nCiAKICNpZiAh
ZGVmaW5lZChOREVCVUcpICYmIGRlZmluZWQoV0VCUlRDX0lPUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Jhc2UvUlRDVmlk
ZW9GcmFtZUJ1ZmZlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgKaW5kZXggYmI5ZTZmYmE2MzFi
ZDkzM2EwNTQ5Y2ZlNmNiN2ZlYTM5OTYxZjU2My4uODI2NDEwNzAwMmQwNDNmNjdkOWE5NmRlMjZj
NGUyZDEyYThkNDRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYmFzZS9SVENW
aWRlb0ZyYW1lQnVmZmVyLmgKQEAgLTI1LDYgKzI1LDkgQEAgUlRDX09CSkNfRVhQT1JUCiAKIC0g
KGlkPFJUQ0k0MjBCdWZmZXI+KXRvSTQyMDsKIAorI2lmIGRlZmluZWQoV0VCUlRDX1dFQktJVF9C
VUlMRCkKKy0gKHZvaWQpY2xvc2U7CisjZW5kaWYKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExf
RU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVy
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9j
b21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgKaW5kZXggYWJl
OWRmY2E5M2IwNGJmNTUyZWMwMzAyYjgwNzU5N2RmMjYxZWRiMS4uODkwOWViMTliNWJlMTY3ZGEy
NWYyNTYzZDQxN2VjNzdhNDZlN2YyZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19mcmFtZV9idWZm
ZXIvUlRDQ1ZQaXhlbEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ0NW
UGl4ZWxCdWZmZXIuaApAQCAtNDgsNiArNDgsOSBAQCBfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRp
bWVfbmFtZSgiV0tfUlRDQ1ZQaXhlbEJ1ZmZlciIpKSkKIC0gKEJPT0wpY3JvcEFuZFNjYWxlVG86
KENWUGl4ZWxCdWZmZXJSZWYpb3V0cHV0UGl4ZWxCdWZmZXIKICAgICAgICAgd2l0aFRlbXBCdWZm
ZXI6KG51bGxhYmxlIHVpbnQ4X3QgKil0bXBCdWZmZXI7CiAKKyNpZiBkZWZpbmVkKFdFQlJUQ19X
RUJLSVRfQlVJTEQpCistICh2b2lkKWNsb3NlOworI2VuZGlmCiBAZW5kCiAKIE5TX0FTU1VNRV9O
T05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19mcmFtZV9idWZmZXIvUlRDQ1ZQaXhl
bEJ1ZmZlci5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZmZXIubW0K
aW5kZXggMDFiNjQwNWRjNDFjNWQ1OWI4MDZjNWU5NzRlZTViOTY4MjQ0ODliNi4uMWNmZjA2Zjlk
ZGQxZjVmNjkyOTUyZGM5YzA0MTRkMjYzOGFlZTc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19m
cmFtZV9idWZmZXIvUlRDQ1ZQaXhlbEJ1ZmZlci5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1
ZmZlci9SVENDVlBpeGVsQnVmZmVyLm1tCkBAIC0zNDUsNCArMzQ1LDExIEBACiAgIENWUGl4ZWxC
dWZmZXJVbmxvY2tCYXNlQWRkcmVzcyhvdXRwdXRQaXhlbEJ1ZmZlciwgMCk7CiB9CiAKKyNpZiBk
ZWZpbmVkKFdFQlJUQ19XRUJLSVRfQlVJTEQpCistICh2b2lkKWNsb3NlIHsKKyAgICBDVkJ1ZmZl
clJlbGVhc2UoX3BpeGVsQnVmZmVyKTsKKyAgICBfcGl4ZWxCdWZmZXIgPSBuaWw7Cit9CisjZW5k
aWYKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX2ZyYW1lX2J1ZmZlci5tbSBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMv
b2JqY19mcmFtZV9idWZmZXIubW0KaW5kZXggNTJlNDM0MTUyYzRlMzhkODQ3ZGZkY2VkZTY0MDY0
ZTE0Njk2NTViMC4uYTNkOWJhODEyZGE1OWY4NTcyYTUzM2FkNjJjNTJhYjBhYzBhMThjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvbmF0aXZlL3NyYy9vYmpjX2ZyYW1lX2J1ZmZlci5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfZnJhbWVf
YnVmZmVyLm1tCkBAIC0yMiw3ICsyMiwxMSBAQCBjbGFzcyBPYmpDSTQyMEZyYW1lQnVmZmVyIDog
cHVibGljIEk0MjBCdWZmZXJJbnRlcmZhY2UgewogIHB1YmxpYzoKICAgZXhwbGljaXQgT2JqQ0k0
MjBGcmFtZUJ1ZmZlcihpZDxSVENJNDIwQnVmZmVyPiBmcmFtZV9idWZmZXIpCiAgICAgICA6IGZy
YW1lX2J1ZmZlcl8oZnJhbWVfYnVmZmVyKSwgd2lkdGhfKGZyYW1lX2J1ZmZlci53aWR0aCksIGhl
aWdodF8oZnJhbWVfYnVmZmVyLmhlaWdodCkge30KLSAgfk9iakNJNDIwRnJhbWVCdWZmZXIoKSBv
dmVycmlkZSB7fQorICB+T2JqQ0k0MjBGcmFtZUJ1ZmZlcigpIG92ZXJyaWRlIHsKKyNpZiBkZWZp
bmVkKFdFQlJUQ19XRUJLSVRfQlVJTEQpCisgICAgW2ZyYW1lX2J1ZmZlcl8gY2xvc2VdOworI2Vu
ZGlmCisgIH0KIAogICBpbnQgd2lkdGgoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB3aWR0aF87
IH0KIApAQCAtNTEsNyArNTUsMTEgQEAgY2xhc3MgT2JqQ0k0MjBGcmFtZUJ1ZmZlciA6IHB1Ymxp
YyBJNDIwQnVmZmVySW50ZXJmYWNlIHsKIE9iakNGcmFtZUJ1ZmZlcjo6T2JqQ0ZyYW1lQnVmZmVy
KGlkPFJUQ1ZpZGVvRnJhbWVCdWZmZXI+IGZyYW1lX2J1ZmZlcikKICAgICA6IGZyYW1lX2J1ZmZl
cl8oZnJhbWVfYnVmZmVyKSwgd2lkdGhfKGZyYW1lX2J1ZmZlci53aWR0aCksIGhlaWdodF8oZnJh
bWVfYnVmZmVyLmhlaWdodCkge30KIAotT2JqQ0ZyYW1lQnVmZmVyOjp+T2JqQ0ZyYW1lQnVmZmVy
KCkge30KK09iakNGcmFtZUJ1ZmZlcjo6fk9iakNGcmFtZUJ1ZmZlcigpIHsKKyNpZiBkZWZpbmVk
KFdFQlJUQ19XRUJLSVRfQlVJTEQpCisgIFtmcmFtZV9idWZmZXJfIGNsb3NlXTsKKyNlbmRpZgor
fQogCiBWaWRlb0ZyYW1lQnVmZmVyOjpUeXBlIE9iakNGcmFtZUJ1ZmZlcjo6dHlwZSgpIGNvbnN0
IHsKICAgcmV0dXJuIFR5cGU6OmtOYXRpdmU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>