<?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>237027</bug_id>
          
          <creation_ts>2022-02-22 01:45:39 -0800</creation_ts>
          <short_desc>Optimize black frame sending in MediaRecorderPrivate</short_desc>
          <delta_ts>2022-03-01 02:20:46 -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>237025</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>peng.liu6</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>1844603</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-22 01:45:39 -0800</bug_when>
    <thetext>Optimise black frame sending in MediaRecorderPrivate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844609</commentid>
    <comment_count>1</comment_count>
      <attachid>452844</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-22 02:03:24 -0800</bug_when>
    <thetext>Created attachment 452844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845111</commentid>
    <comment_count>2</comment_count>
      <attachid>452971</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-23 06:06:52 -0800</bug_when>
    <thetext>Created attachment 452971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845222</commentid>
    <comment_count>3</comment_count>
      <attachid>452971</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2022-02-23 10:43:14 -0800</bug_when>
    <thetext>Comment on attachment 452971
Patch

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

&gt; Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:101
&gt; +            m_blackFrameSize = WebCore::IntSize { static_cast&lt;int&gt;(size.width()), static_cast&lt;int&gt;(size.height()) };

Just curious, is it possible that we need to change the black frame size?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845223</commentid>
    <comment_count>4</comment_count>
      <attachid>452971</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-23 10:44:27 -0800</bug_when>
    <thetext>Comment on attachment 452971
Patch

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

with some suggestions

&gt; Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:103
&gt; +        SharedVideoFrame sharedVideoFrame { sample.presentationTime(), sample.videoMirrored(), sample.videoRotation(), *m_blackFrameSize };

From this part it would seem you can just remove m_blackFrameSize and keep sending the real sample size?

&gt; Source/WebKit/WebProcess/GPU/webrtc/SharedVideoFrame.cpp:190
&gt; +    }, [](IntSize size) -&gt; RetainPtr&lt;CVPixelBufferRef&gt; {

I think for this use-case, you could;
- cache the last black frame
- update the last black frame only if the size differs
- set the ownership to the caller (so black frames don&apos;t consume GPUP memory)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845238</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-23 11:33:05 -0800</bug_when>
    <thetext>(In reply to Kimmo Kinnunen from comment #4)
&gt; Comment on attachment 452971 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=452971&amp;action=review
&gt; 
&gt; with some suggestions
&gt; 
&gt; &gt; Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:103
&gt; &gt; +        SharedVideoFrame sharedVideoFrame { sample.presentationTime(), sample.videoMirrored(), sample.videoRotation(), *m_blackFrameSize };
&gt; 
&gt; From this part it would seem you can just remove m_blackFrameSize and keep
&gt; sending the real sample size?

This is done to keep things in sync with webrtc encoding where we stick with the last available frame size.

&gt; &gt; Source/WebKit/WebProcess/GPU/webrtc/SharedVideoFrame.cpp:190
&gt; &gt; +    }, [](IntSize size) -&gt; RetainPtr&lt;CVPixelBufferRef&gt; {
&gt; 
&gt; I think for this use-case, you could;
&gt; - cache the last black frame
&gt; - update the last black frame only if the size differs
&gt; - set the ownership to the caller (so black frames don&apos;t consume GPUP memory)

I hesitated to do this (we are storing a buffer that might not be reused nor removed), I&apos;ll add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845595</commentid>
    <comment_count>6</comment_count>
      <attachid>453097</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-24 06:16:24 -0800</bug_when>
    <thetext>Created attachment 453097
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845937</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-25 00:53:08 -0800</bug_when>
    <thetext>Committed r290501 (247788@main): &lt;https://commits.webkit.org/247788@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453097.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845938</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-25 00:54:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/89463204&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846946</commentid>
    <comment_count>9</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2022-03-01 01:21:45 -0800</bug_when>
    <thetext>This appears to fix fast/mediastream/video-rotation-gpu-process-crash.html on the standard bots, but it is still intermittently crashing on the GPU Process bot

https://results.webkit.org/?suite=layout-tests&amp;test=fast%2Fmediastream%2Fvideo-rotation-gpu-process-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846964</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-01 02:20:46 -0800</bug_when>
    <thetext>(In reply to Jon Lee from comment #9)
&gt; This appears to fix fast/mediastream/video-rotation-gpu-process-crash.html
&gt; on the standard bots, but it is still intermittently crashing on the GPU
&gt; Process bot
&gt; 
&gt; https://results.webkit.org/?suite=layout-
&gt; tests&amp;test=fast%2Fmediastream%2Fvideo-rotation-gpu-process-crash.html

This is tracked in https://bugs.webkit.org/show_bug.cgi?id=237295</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452844</attachid>
            <date>2022-02-22 02:03:24 -0800</date>
            <delta_ts>2022-02-23 06:06:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237027-20220222110322.patch</filename>
            <type>text/plain</type>
            <size>15030</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3OGI0NDkzYWFjYjBkZWQz
MGRhMjk3NjZiOWZmZTRmNzE4MmFkMWEuLjFlMmYyNDlhNmVhYTEwMjgzNDA5MTg1OTgzNzllNzdh
ZDRmYWY3MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjItMDItMjIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE9wdGltaXNlIGJsYWNrIGZyYW1l
IHNlbmRpbmcgaW4gTWVkaWFSZWNvcmRlclByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzAyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzZW5kaW5nIGJsYWNrIGZy
YW1lcyB0aHJvdWdoIFNoYXJlZFZpZGVvRnJhbWUuCisgICAgICAgIEluIHRoYXQgY2FzZSwgd2Ug
b25seSBzZW5kIHdpZHRoIGFuZCBoZWlnaHQgYW5kIHdlIHJlY29uc3RydWN0IGEgYmxhY2sgZnJh
bWUgb24gcmVjZWl2ZXIgc2lkZS4KKyAgICAgICAgTWFrZSB1c2Ugb2YgU2hhcmVkVmlkZW9GcmFt
ZSBpbiBSZW1vdGVNZWRpYVJlY29yZGVyLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3Rpbmcg
dGVzdHMsIGluIHBhcnRpY3VsYXIgaHR0cC93cHQvbWVkaWFyZWNvcmRlci9tdXRlLXRyYWNrcy5o
dG1sLgorCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlJlbW90ZU1lZGlhUmVj
b3JkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjp2aWRlb1NhbXBs
ZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6Om1fdmlkZW9GcmFtZU9iamVjdEhlYXApOiBE
ZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIu
aDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJp
dmF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjp2aWRlb1Nh
bXBsZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpj
b3B5U2hhcmVkVmlkZW9GcmFtZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRWaWRl
b0ZyYW1lUmVhZGVyOjpyZWFkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hh
cmVkVmlkZW9GcmFtZS5oOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRWaWRlb0ZyYW1lOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRWaWRlb0ZyYW1lOjpkZWNvZGUpOgor
CiAyMDIyLTAyLTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1wbGUgc2hvdWxkIG5v
dCBjaGFuZ2UgbWVkaWEgc2FtcGxlcyBvd25lZCBieSBpdHMgb2JqZWN0IGhlYXAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIu
Y3BwCmluZGV4IDRkNmI4ZjVjMTcxOTFiZjc1MDE5MjhiOGQ2ODAxZTg0MGU5OTdkMDUuLmQzNmM4
MDg5MzAxMjgyMzAzYjU3ODE2MGMyZTZlMTcyOGFmNzlmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApAQCAt
MzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgiCiAj
aW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NB
UmluZ0J1ZmZlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTYW1wbGVBVkZPYmpDLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZm
ZXJMaXN0Lmg+CkBAIC01OCw3ICs1Nyw2IEBAIFJlbW90ZU1lZGlhUmVjb3JkZXI6OlJlbW90ZU1l
ZGlhUmVjb3JkZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvCiAgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fd3JpdGVyKFdURk1vdmUod3JpdGVy
KSkKICAgICAsIG1fc2hhcmVkVmlkZW9GcmFtZVJlYWRlcihSZWYgeyBncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLnZpZGVvRnJhbWVPYmplY3RIZWFwKCkgfSkKLSAgICAsIG1fdmlkZW9GcmFtZU9i
amVjdEhlYXAoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy52aWRlb0ZyYW1lT2JqZWN0SGVhcCgp
KQogewogICAgIGlmIChyZWNvcmRBdWRpbykKICAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVu
aXF1ZTxDQVJpbmdCdWZmZXI+KCk7CkBAIC05MCwzNyArODgsMTAgQEAgdm9pZCBSZW1vdGVNZWRp
YVJlY29yZGVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90
IG51bWJlck8KICAgICBtX3dyaXRlci0+YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoKm1fYXVkaW9C
dWZmZXJMaXN0LCBtX2Rlc2NyaXB0aW9uLCB0aW1lLCBudW1iZXJPZkZyYW1lcyk7CiB9CiAKLXZv
aWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6dmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUsIHN0ZDo6b3B0aW9uYWw8UmVtb3RlVmlkZW9G
cmFtZVJlYWRSZWZlcmVuY2U+IHNhbXBsZVJlZmVyZW5jZSkKK3ZvaWQgUmVtb3RlTWVkaWFSZWNv
cmRlcjo6dmlkZW9TYW1wbGVBdmFpbGFibGUoU2hhcmVkVmlkZW9GcmFtZSYmIHNoYXJlZFZpZGVv
RnJhbWUpCiB7Ci0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBzYW1wbGU7Ci0gICAgaWYgKHNhbXBs
ZVJlZmVyZW5jZSkgewotICAgICAgICBzYW1wbGUgPSBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwLT5y
ZXRpcmUoV1RGTW92ZSgqc2FtcGxlUmVmZXJlbmNlKSwgbWVkaWFSZWNvcmRlckRlZmF1bHRUaW1l
b3V0KTsKLSAgICAgICAgaWYgKCFzYW1wbGUpIHsKLSAgICAgICAgICAgIC8vIEluIGNhc2Ugb2Yg
R1BVUHJvY2VzcyBjcmFzaCwgd2UgbWlnaHQgZW5xdWV1ZSBwcmV2aW91cyBHUFVQcm9jZXNzIHNh
bXBsZXMsIGlnbm9yZSB0aGVtLgotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
fSBlbHNlIGlmICghcmVtb3RlU2FtcGxlLnN1cmZhY2UoKSkgewotICAgICAgICBhdXRvIHBpeGVs
QnVmZmVyID0gbV9zaGFyZWRWaWRlb0ZyYW1lUmVhZGVyLnJlYWQoKTsKLSAgICAgICAgaWYgKCFw
aXhlbEJ1ZmZlcikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBzYW1wbGUgPSBNZWRp
YVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlKFdURk1vdmUocGl4ZWxCdWZmZXIpLCBy
ZW1vdGVTYW1wbGUucm90YXRpb24oKSwgcmVtb3RlU2FtcGxlLm1pcnJvcmVkKCksIHJlbW90ZVNh
bXBsZS50aW1lKCkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghbV9pbWFnZVRyYW5zZmVy
U2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9IHJlbW90
ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKQotICAgICAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
biA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3Jt
YXQoKSk7Ci0KLSAgICAgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKSB7Ci0gICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotCi0gICAgICAgIHNhbXBsZSA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlh
U2FtcGxlKHJlbW90ZVNhbXBsZSk7Ci0gICAgICAgIGlmICghc2FtcGxlKSB7Ci0gICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgIH0KLSAgICBtX3dyaXRlci0+YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoKnNhbXBsZSk7Cisg
ICAgaWYgKGF1dG8gc2FtcGxlID0gbV9zaGFyZWRWaWRlb0ZyYW1lUmVhZGVyLnJlYWQoV1RGTW92
ZShzaGFyZWRWaWRlb0ZyYW1lKSkpCisgICAgICAgIG1fd3JpdGVyLT5hcHBlbmRWaWRlb1NhbXBs
ZUJ1ZmZlcigqc2FtcGxlKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjpmZXRjaERh
dGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRhdGFSZWZlcmVuY2UmJiwgZG91YmxlKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmgKaW5kZXggNjBiOGQwMjE0ZTc3YTUzY2MwNDVh
MGY5ZmViODFhMzkwNDlkM2RkMi4uMmU3YzdiYjNiNmRlMWEyYmE3MTAzNzU0MTYyYmM3MWVkZDdi
NjAzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVN
ZWRpYVJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVyLmgKQEAgLTQ0LDcgKzQ0LDYgQEAgY2xhc3MgRGVjb2RlcjsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ0FSaW5nQnVmZmVyOwotY2xhc3MgSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDsKIGNsYXNzIFJlbW90ZVZpZGVvU2FtcGxlOwogY2xhc3MgV2ViQXVkaW9CdWZm
ZXJMaXN0Owogc3RydWN0IE1lZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9uczsKQEAgLTUzLDcgKzUy
LDYgQEAgc3RydWN0IE1lZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9uczsKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwotY2xhc3MgUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXA7CiBjbGFzcyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTsKIAogY2xh
c3MgUmVtb3RlTWVkaWFSZWNvcmRlciA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewpA
QCAtNzQsNyArNzIsNyBAQCBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAg
ICAgdm9pZCBhdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChjb25zdCBTaGFyZWRNZW1vcnk6OklQ
Q0hhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzKTsKICAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRp
YVRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKLSAgICB2b2lkIHZpZGVvU2FtcGxlQXZh
aWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYsIHN0ZDo6b3B0aW9uYWw8UmVtb3Rl
VmlkZW9GcmFtZVJlYWRSZWZlcmVuY2U+KTsKKyAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxl
KFNoYXJlZFZpZGVvRnJhbWUmJik7CiAgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChJUEM6OkRhdGFSZWZlcmVuY2UmJiwgZG91YmxlKT4mJik7CiAgICAgdm9pZCBzdG9w
UmVjb3JkaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwYXVzZShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtODksMTAgKzg3LDggQEAgcHJpdmF0ZToK
ICAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4gbV9hdWRpb0J1
ZmZlckxpc3Q7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247CiAKICAgICBTaGFyZWRWaWRlb0ZyYW1lUmVh
ZGVyIG1fc2hhcmVkVmlkZW9GcmFtZVJlYWRlcjsKLSAgICBSZWY8UmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXA+IG1fdmlkZW9GcmFtZU9iamVjdEhlYXA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3Jk
ZXIubWVzc2FnZXMuaW4KaW5kZXggNDk4ZjI4MWFmODAxODc4ZTA1NGQzMWVlNmVkMmI3OTcwOGI5
MGU4NC4uNTIyMTBkYWViYjM2OGNmNDE3MzYwODU3ZjMxMTViYWU1M2UwNmJjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlci5tZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsNyBAQAogbWVzc2FnZXMgLT4gUmVt
b3RlTWVkaWFSZWNvcmRlciBOb3RSZWZDb3VudGVkIHsKICAgICBBdWRpb1NhbXBsZXNTdG9yYWdl
Q2hhbmdlZChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdl
YkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVt
YmVyT2ZGcmFtZXMpCiAgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcykKLSAgICBWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZSBzYW1wbGUsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpSZW1vdGVW
aWRlb0ZyYW1lUmVhZFJlZmVyZW5jZT4gcmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UpCisg
ICAgVmlkZW9TYW1wbGVBdmFpbGFibGUoc3RydWN0IFdlYktpdDo6U2hhcmVkVmlkZW9GcmFtZSBm
cmFtZSkKICAgICBGZXRjaERhdGEoKSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIGJ1ZmZlciwgZG91
YmxlIHRpbWVDb2RlKSBBc3luYwogICAgIFN0b3BSZWNvcmRpbmcoKSAtPiAoKSBBc3luYwogICAg
IFBhdXNlKCkgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAppbmRleCA0M2RkNGZj
ZjEyOTg2NzZiMWYyYjZmZjIwNTIzYWM3ZTQ5ZjQyZGNlLi5kMDA0Mzk4OTc4Mjg1NjA5MDc3MTYy
MDZlNDFmZDdlNDdiMTQ0MGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC05Niw0NiAr
OTYsMjIgQEAgTWVkaWFSZWNvcmRlclByaXZhdGU6On5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpCiB2
b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBs
ZSYgc2FtcGxlLCBWaWRlb1NhbXBsZU1ldGFkYXRhKQogewogICAgIGlmIChzaG91bGRNdXRlVmlk
ZW8oKSkgewotICAgICAgICAvLyBGSVhNRTogV2UgY291bGQgb3B0aW1pemUgc2VuZGluZyBibGFj
ayBmcmFtZXMgYnkgb25seSBzZW5kaW5nIHdpZHRoL2hlaWdodC4KLSAgICAgICAgaWYgKCFtX2Js
YWNrRnJhbWUpIHsKKyAgICAgICAgaWYgKCFtX2JsYWNrRnJhbWVTaXplKSB7CiAgICAgICAgICAg
ICBhdXRvIHNpemUgPSBzYW1wbGUucHJlc2VudGF0aW9uU2l6ZSgpOwotICAgICAgICAgICAgbV9i
bGFja0ZyYW1lID0gY3JlYXRlQmxhY2tQaXhlbEJ1ZmZlcihzdGF0aWNfY2FzdDxzaXplX3Q+KHNp
emUud2lkdGgoKSksIHN0YXRpY19jYXN0PHNpemVfdD4oc2l6ZS5oZWlnaHQoKSkpOworICAgICAg
ICAgICAgbV9ibGFja0ZyYW1lU2l6ZSA9IFdlYkNvcmU6OkludFNpemUgeyBzdGF0aWNfY2FzdDxp
bnQ+KHNpemUud2lkdGgoKSksIHN0YXRpY19jYXN0PGludD4oc2l6ZS5oZWlnaHQoKSkgfTsKICAg
ICAgICAgfQotICAgICAgICBhdXRvIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpj
cmVhdGUobV9ibGFja0ZyYW1lLmdldCgpLCBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpLCBzYW1w
bGUudmlkZW9Sb3RhdGlvbigpLCBSZW1vdGVWaWRlb1NhbXBsZTo6U2hvdWxkQ2hlY2tGb3JJT1N1
cmZhY2U6Ok5vKTsKLSAgICAgICAgaWYgKCFjb3B5U2hhcmVkVmlkZW9GcmFtZShyZW1vdGVTYW1w
bGUtPmltYWdlQnVmZmVyKCkpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlZpZGVvU2FtcGxlQXZh
aWxhYmxlIHsgV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSwgeyB9IH0sIG1faWRlbnRpZmllcik7Cisg
ICAgICAgIFNoYXJlZFZpZGVvRnJhbWUgc2hhcmVkVmlkZW9GcmFtZSB7IHNhbXBsZS5wcmVzZW50
YXRpb25UaW1lKCksIHNhbXBsZS52aWRlb01pcnJvcmVkKCksIHNhbXBsZS52aWRlb1JvdGF0aW9u
KCksICptX2JsYWNrRnJhbWVTaXplIH07CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6VmlkZW9TYW1wbGVBdmFpbGFibGUgeyBzaGFyZWRW
aWRlb0ZyYW1lIH0sIG1faWRlbnRpZmllcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBtX2JsYWNrRnJhbWUgPSBudWxscHRyOwotCi0gICAgc3RkOjpvcHRpb25hbDxSZW1vdGVWaWRl
b0ZyYW1lUmVhZFJlZmVyZW5jZT4gcmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2U7Ci0gICAg
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiByZW1vdGVTYW1wbGU7Ci0gICAgaWYg
KGlzPFJlbW90ZVZpZGVvRnJhbWVQcm94eT4oc2FtcGxlKSkgewotICAgICAgICByZW1vdGVWaWRl
b0ZyYW1lUmVhZFJlZmVyZW5jZSA9IGRvd25jYXN0PFJlbW90ZVZpZGVvRnJhbWVQcm94eT4oc2Ft
cGxlKS5yZWFkKCk7Ci0gICAgICAgIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpj
cmVhdGUobnVsbHB0ciwgc2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKSwgc2FtcGxlLnZpZGVvUm90
YXRpb24oKSwgUmVtb3RlVmlkZW9TYW1wbGU6OlNob3VsZENoZWNrRm9ySU9TdXJmYWNlOjpObyk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6
OmNyZWF0ZShzYW1wbGUsIFJlbW90ZVZpZGVvU2FtcGxlOjpTaG91bGRDaGVja0ZvcklPU3VyZmFj
ZTo6Tm8pOwotICAgICAgICBpZiAoIXJlbW90ZVNhbXBsZS0+c3VyZmFjZSgpKSB7Ci0gICAgICAg
ICAgICAvLyBidWZmZXIgaXMgbm90IElPU3VyZmFjZSwgd2UgbmVlZCB0byBjb3B5IHRvIHNoYXJl
ZCB2aWRlbyBmcmFtZS4KLSAgICAgICAgICAgIGlmICghY29weVNoYXJlZFZpZGVvRnJhbWUocmVt
b3RlU2FtcGxlLT5pbWFnZUJ1ZmZlcigpKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUmVjb3JkZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxlIHsgV1RGTW92ZSgqcmVtb3RlU2FtcGxl
KSwgcmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UgfSwgbV9pZGVudGlmaWVyKTsKLX0KLQot
Ci1ib29sIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpjb3B5U2hhcmVkVmlkZW9GcmFtZShDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyKQotewotICAgIGlmICghcGl4ZWxCdWZmZXIpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gbV9zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLndyaXRl
KHBpeGVsQnVmZmVyLAorICAgIG1fYmxhY2tGcmFtZVNpemUgPSB7IH07CisgICAgYXV0byBzaGFy
ZWRWaWRlb0ZyYW1lID0gbV9zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLndyaXRlKHNhbXBsZSwKICAg
ICAgICAgW3RoaXNdKGF1dG8mIHNlbWFwaG9yZSkgeyBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlNldFNoYXJlZFZpZGVvRnJhbWVTZW1hcGhvcmUgeyBz
ZW1hcGhvcmUgfSwgbV9pZGVudGlmaWVyKTsgfSwKICAgICAgICAgW3RoaXNdKGF1dG8mIGhhbmRs
ZSkgeyBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlNl
dFNoYXJlZFZpZGVvRnJhbWVNZW1vcnkgeyBoYW5kbGUgfSwgbV9pZGVudGlmaWVyKTsgfQogICAg
ICk7CisgICAgaWYgKHNoYXJlZFZpZGVvRnJhbWUpCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6VmlkZW9TYW1wbGVBdmFpbGFibGUgeyBX
VEZNb3ZlKCpzaGFyZWRWaWRlb0ZyYW1lKSB9LCBtX2lkZW50aWZpZXIpOwogfQogCiB2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1l
JiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVj
b3JkZXJQcml2YXRlLmgKaW5kZXggNGQ3YTVmNWI5NWFmODI3M2JjZWFhM2RhNGIwMDZlNjVlNzg3
ODY4OC4uMzhkYWVmNTg2NzYyNjhkYWIwMDRiNzI4MDZjNjlmNWNlNDFkODBkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJpdmF0ZS5oCkBAIC02OSwxMyArNjksMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdwdVBy
b2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKSBmaW5hbDsKIAog
ICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiwgY29uc3QgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KTsKLSAgICBi
b29sIGNvcHlTaGFyZWRWaWRlb0ZyYW1lKENWUGl4ZWxCdWZmZXJSZWYpOwogCiAgICAgTWVkaWFS
ZWNvcmRlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFJlZjxXZWJDb3JlOjpNZWRpYVN0
cmVhbVByaXZhdGU+IG1fc3RyZWFtOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKIAotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX2JsYWNrRnJhbWU7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwog
ICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PiBtX3NpbGVu
Y2VBdWRpb0J1ZmZlcjsKQEAgLTgzLDYgKzgxLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMgbV9vcHRpb25zOwogICAgIGJvb2wgbV9oYXNWaWRl
byB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzU3RvcHBlZCB7IGZhbHNlIH07CisgICAgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBtX2JsYWNrRnJhbWVTaXplOwogCiAgICAgU2hhcmVk
VmlkZW9GcmFtZVdyaXRlciBtX3NoYXJlZFZpZGVvRnJhbWVXcml0ZXI7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1l
LmNwcAppbmRleCBhMzUwNmU4YTYzYWZhZTAyNDEyNDdjNjY0OWVlNjYxMWFhOWRiYzFhLi4zOTQz
OTViYjk1ZTM2ZWJhZjE1NGE3YWI2OTA0MmU0MTkyOTFmNzI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcApA
QCAtMTgzLDYgKzE4Myw4IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gU2hhcmVkVmlkZW9GcmFtZVJl
YWRlcjo6cmVhZChTaGFyZWRWaWRlb0ZyYW1lJiYgc2hhcmVkVmlkZW9GCiAgICAgICAgIHJldHVy
biBXZWJDb3JlOjpjcmVhdGVDVlBpeGVsQnVmZmVyKHN1cmZhY2UtPnN1cmZhY2UoKSkudmFsdWVf
b3IobnVsbHB0cik7CiAgICAgfSwgW3RoaXNdKHN0ZDo6bnVsbHB0cl90IHJlcHJlc2VudGF0aW9u
KSAtPiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gewogICAgICAgICByZXR1cm4gcmVhZCgp
OworICAgIH0sIFtdKEludFNpemUgc2l6ZSkgLT4gUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
IHsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmNyZWF0ZUJsYWNrUGl4ZWxCdWZmZXIoc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKICAgICB9KTsKIAogICAgIGlmICghcGl4ZWxCdWZmZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRW
aWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRW
aWRlb0ZyYW1lLmgKaW5kZXggMDM4NTVmN2I0MTg0MmU3MWVhMmI0ZDhhMmVmODBmMWQ2MDY0NWMx
YS4uMWJiNTcyYjFiNWYxNWRjZjMzOTExNjM4OWZhNDU4ZTk5YWJjODg4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUu
aApAQCAtNTQsNyArNTQsNyBAQCBzdHJ1Y3QgU2hhcmVkVmlkZW9GcmFtZSB7CiAgICAgTWVkaWFU
aW1lIHRpbWU7CiAgICAgYm9vbCBtaXJyb3JlZCB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6TWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRpb24geyBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OwotICAgIHN0ZDo6dmFyaWFudDxzdGQ6Om51bGxwdHJfdCwg
UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UsIE1hY2hTZW5kUmlnaHQ+IGJ1ZmZlcjsKKyAg
ICBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJl
bmNlLCBNYWNoU2VuZFJpZ2h0LCBXZWJDb3JlOjpJbnRTaXplPiBidWZmZXI7CiAKICAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2hhcmVkVmlkZW9GcmFt
ZT4gZGVjb2RlKERlY29kZXImKTsKQEAgLTEyNCw2ICsxMjQsOSBAQCB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIFNoYXJlZFZpZGVvRnJhbWU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgIH0gLCBbJl0oY29uc3QgTWFjaFNlbmRSaWdodCYgc2VuZFJpZ2h0KSB7CiAgICAg
ICAgIGVuY29kZXIgPDwgKHVpbnQ4X3QpMjsKICAgICAgICAgZW5jb2RlciA8PCBzZW5kUmlnaHQ7
CisgICAgfSAsIFsmXShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKSB7CisgICAgICAgIGVu
Y29kZXIgPDwgKHVpbnQ4X3QpMzsKKyAgICAgICAgZW5jb2RlciA8PCBzaXplOwogICAgIH0pOwog
fQogCkBAIC0xNDMsNyArMTQ2LDcgQEAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RkOjpvcHRp
b25hbDxTaGFyZWRWaWRlb0ZyYW1lPiBTaGFyZWRWaWRlb0ZyYW1lOjpkZWNvZGUKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGJ1ZmZlclR5cGUpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAg
aWYgKGJ1ZmZlclR5cGUgPiAyKQorICAgIGlmIChidWZmZXJUeXBlID4gMykKICAgICAgICAgcmV0
dXJuIHsgfTsKIAogICAgIGlmIChidWZmZXJUeXBlID09IDEpIHsKQEAgLTE1Nyw2ICsxNjAsMTEg
QEAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1l
PiBTaGFyZWRWaWRlb0ZyYW1lOjpkZWNvZGUKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShz
ZW5kUmlnaHQpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgZnJhbWUuYnVmZmVy
ID0gV1RGTW92ZShzZW5kUmlnaHQpOworICAgIH0gZWxzZSBpZiAoYnVmZmVyVHlwZSA9PSAzKSB7
CisgICAgICAgIFdlYkNvcmU6OkludFNpemUgc2l6ZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzaXplKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGZyYW1lLmJ1ZmZl
ciA9IHNpemU7CiAgICAgfQogICAgIHJldHVybiBmcmFtZTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452971</attachid>
            <date>2022-02-23 06:06:52 -0800</date>
            <delta_ts>2022-02-24 06:16:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237027-20220223150650.patch</filename>
            <type>text/plain</type>
            <size>14043</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI0MGIwMjJmMzIwZjg4N2Zh
Y2FkMTExZjc5NTViYTA0MjNkNGVhODcuLmRlOGZlMmU2OTAxMTU0OTdmNTYxOTk5NTc2MjA3ZTdj
MWRhZDRiNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjItMDItMjMgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE9wdGltaXNlIGJsYWNrIGZyYW1l
IHNlbmRpbmcgaW4gTWVkaWFSZWNvcmRlclByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzAyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzZW5kaW5nIGJsYWNrIGZy
YW1lcyB0aHJvdWdoIFNoYXJlZFZpZGVvRnJhbWUuCisgICAgICAgIEluIHRoYXQgY2FzZSwgd2Ug
b25seSBzZW5kIHdpZHRoIGFuZCBoZWlnaHQgYW5kIHdlIHJlY29uc3RydWN0IGEgYmxhY2sgZnJh
bWUgb24gcmVjZWl2ZXIgc2lkZS4KKyAgICAgICAgTWFrZSB1c2Ugb2YgU2hhcmVkVmlkZW9GcmFt
ZSBpbiBSZW1vdGVNZWRpYVJlY29yZGVyLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3Rpbmcg
dGVzdHMsIGluIHBhcnRpY3VsYXIgaHR0cC93cHQvbWVkaWFyZWNvcmRlci9tdXRlLXRyYWNrcy5o
dG1sLgorCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlJlbW90ZU1lZGlhUmVj
b3JkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjp2aWRlb1NhbXBs
ZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6Om1fdmlkZW9GcmFtZU9iamVjdEhlYXApOiBE
ZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIu
aDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJp
dmF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjp2aWRlb1Nh
bXBsZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpj
b3B5U2hhcmVkVmlkZW9GcmFtZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRWaWRl
b0ZyYW1lUmVhZGVyOjpyZWFkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hh
cmVkVmlkZW9GcmFtZS5oOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRWaWRlb0ZyYW1lOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRWaWRlb0ZyYW1lOjpkZWNvZGUpOgor
CiAyMDIyLTAyLTIzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1wbGUgc2hvdWxkIG5v
dCBjaGFuZ2UgbWVkaWEgc2FtcGxlcyBvd25lZCBieSBpdHMgb2JqZWN0IGhlYXAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIu
Y3BwCmluZGV4IDRkNmI4ZjVjMTcxOTFiZjc1MDE5MjhiOGQ2ODAxZTg0MGU5OTdkMDUuLmQzNmM4
MDg5MzAxMjgyMzAzYjU3ODE2MGMyZTZlMTcyOGFmNzlmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApAQCAt
MzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgiCiAj
aW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NB
UmluZ0J1ZmZlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTYW1wbGVBVkZPYmpDLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZm
ZXJMaXN0Lmg+CkBAIC01OCw3ICs1Nyw2IEBAIFJlbW90ZU1lZGlhUmVjb3JkZXI6OlJlbW90ZU1l
ZGlhUmVjb3JkZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvCiAgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fd3JpdGVyKFdURk1vdmUod3JpdGVy
KSkKICAgICAsIG1fc2hhcmVkVmlkZW9GcmFtZVJlYWRlcihSZWYgeyBncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLnZpZGVvRnJhbWVPYmplY3RIZWFwKCkgfSkKLSAgICAsIG1fdmlkZW9GcmFtZU9i
amVjdEhlYXAoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy52aWRlb0ZyYW1lT2JqZWN0SGVhcCgp
KQogewogICAgIGlmIChyZWNvcmRBdWRpbykKICAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVu
aXF1ZTxDQVJpbmdCdWZmZXI+KCk7CkBAIC05MCwzNyArODgsMTAgQEAgdm9pZCBSZW1vdGVNZWRp
YVJlY29yZGVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90
IG51bWJlck8KICAgICBtX3dyaXRlci0+YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoKm1fYXVkaW9C
dWZmZXJMaXN0LCBtX2Rlc2NyaXB0aW9uLCB0aW1lLCBudW1iZXJPZkZyYW1lcyk7CiB9CiAKLXZv
aWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6dmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUsIHN0ZDo6b3B0aW9uYWw8UmVtb3RlVmlkZW9G
cmFtZVJlYWRSZWZlcmVuY2U+IHNhbXBsZVJlZmVyZW5jZSkKK3ZvaWQgUmVtb3RlTWVkaWFSZWNv
cmRlcjo6dmlkZW9TYW1wbGVBdmFpbGFibGUoU2hhcmVkVmlkZW9GcmFtZSYmIHNoYXJlZFZpZGVv
RnJhbWUpCiB7Ci0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBzYW1wbGU7Ci0gICAgaWYgKHNhbXBs
ZVJlZmVyZW5jZSkgewotICAgICAgICBzYW1wbGUgPSBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwLT5y
ZXRpcmUoV1RGTW92ZSgqc2FtcGxlUmVmZXJlbmNlKSwgbWVkaWFSZWNvcmRlckRlZmF1bHRUaW1l
b3V0KTsKLSAgICAgICAgaWYgKCFzYW1wbGUpIHsKLSAgICAgICAgICAgIC8vIEluIGNhc2Ugb2Yg
R1BVUHJvY2VzcyBjcmFzaCwgd2UgbWlnaHQgZW5xdWV1ZSBwcmV2aW91cyBHUFVQcm9jZXNzIHNh
bXBsZXMsIGlnbm9yZSB0aGVtLgotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
fSBlbHNlIGlmICghcmVtb3RlU2FtcGxlLnN1cmZhY2UoKSkgewotICAgICAgICBhdXRvIHBpeGVs
QnVmZmVyID0gbV9zaGFyZWRWaWRlb0ZyYW1lUmVhZGVyLnJlYWQoKTsKLSAgICAgICAgaWYgKCFw
aXhlbEJ1ZmZlcikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBzYW1wbGUgPSBNZWRp
YVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlKFdURk1vdmUocGl4ZWxCdWZmZXIpLCBy
ZW1vdGVTYW1wbGUucm90YXRpb24oKSwgcmVtb3RlU2FtcGxlLm1pcnJvcmVkKCksIHJlbW90ZVNh
bXBsZS50aW1lKCkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghbV9pbWFnZVRyYW5zZmVy
U2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9IHJlbW90
ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKQotICAgICAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
biA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3Jt
YXQoKSk7Ci0KLSAgICAgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKSB7Ci0gICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotCi0gICAgICAgIHNhbXBsZSA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlh
U2FtcGxlKHJlbW90ZVNhbXBsZSk7Ci0gICAgICAgIGlmICghc2FtcGxlKSB7Ci0gICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgIH0KLSAgICBtX3dyaXRlci0+YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoKnNhbXBsZSk7Cisg
ICAgaWYgKGF1dG8gc2FtcGxlID0gbV9zaGFyZWRWaWRlb0ZyYW1lUmVhZGVyLnJlYWQoV1RGTW92
ZShzaGFyZWRWaWRlb0ZyYW1lKSkpCisgICAgICAgIG1fd3JpdGVyLT5hcHBlbmRWaWRlb1NhbXBs
ZUJ1ZmZlcigqc2FtcGxlKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjpmZXRjaERh
dGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRhdGFSZWZlcmVuY2UmJiwgZG91YmxlKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmgKaW5kZXggNjBiOGQwMjE0ZTc3YTUzY2MwNDVh
MGY5ZmViODFhMzkwNDlkM2RkMi4uMmU3YzdiYjNiNmRlMWEyYmE3MTAzNzU0MTYyYmM3MWVkZDdi
NjAzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVN
ZWRpYVJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVyLmgKQEAgLTQ0LDcgKzQ0LDYgQEAgY2xhc3MgRGVjb2RlcjsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ0FSaW5nQnVmZmVyOwotY2xhc3MgSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDsKIGNsYXNzIFJlbW90ZVZpZGVvU2FtcGxlOwogY2xhc3MgV2ViQXVkaW9CdWZm
ZXJMaXN0Owogc3RydWN0IE1lZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9uczsKQEAgLTUzLDcgKzUy
LDYgQEAgc3RydWN0IE1lZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9uczsKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwotY2xhc3MgUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXA7CiBjbGFzcyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTsKIAogY2xh
c3MgUmVtb3RlTWVkaWFSZWNvcmRlciA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewpA
QCAtNzQsNyArNzIsNyBAQCBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAg
ICAgdm9pZCBhdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChjb25zdCBTaGFyZWRNZW1vcnk6OklQ
Q0hhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzKTsKICAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRp
YVRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKLSAgICB2b2lkIHZpZGVvU2FtcGxlQXZh
aWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYsIHN0ZDo6b3B0aW9uYWw8UmVtb3Rl
VmlkZW9GcmFtZVJlYWRSZWZlcmVuY2U+KTsKKyAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxl
KFNoYXJlZFZpZGVvRnJhbWUmJik7CiAgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChJUEM6OkRhdGFSZWZlcmVuY2UmJiwgZG91YmxlKT4mJik7CiAgICAgdm9pZCBzdG9w
UmVjb3JkaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwYXVzZShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtODksMTAgKzg3LDggQEAgcHJpdmF0ZToK
ICAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4gbV9hdWRpb0J1
ZmZlckxpc3Q7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247CiAKICAgICBTaGFyZWRWaWRlb0ZyYW1lUmVh
ZGVyIG1fc2hhcmVkVmlkZW9GcmFtZVJlYWRlcjsKLSAgICBSZWY8UmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXA+IG1fdmlkZW9GcmFtZU9iamVjdEhlYXA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3Jk
ZXIubWVzc2FnZXMuaW4KaW5kZXggNDk4ZjI4MWFmODAxODc4ZTA1NGQzMWVlNmVkMmI3OTcwOGI5
MGU4NC4uNTIyMTBkYWViYjM2OGNmNDE3MzYwODU3ZjMxMTViYWU1M2UwNmJjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlci5tZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsNyBAQAogbWVzc2FnZXMgLT4gUmVt
b3RlTWVkaWFSZWNvcmRlciBOb3RSZWZDb3VudGVkIHsKICAgICBBdWRpb1NhbXBsZXNTdG9yYWdl
Q2hhbmdlZChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdl
YkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVt
YmVyT2ZGcmFtZXMpCiAgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcykKLSAgICBWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZSBzYW1wbGUsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpSZW1vdGVW
aWRlb0ZyYW1lUmVhZFJlZmVyZW5jZT4gcmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UpCisg
ICAgVmlkZW9TYW1wbGVBdmFpbGFibGUoc3RydWN0IFdlYktpdDo6U2hhcmVkVmlkZW9GcmFtZSBm
cmFtZSkKICAgICBGZXRjaERhdGEoKSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIGJ1ZmZlciwgZG91
YmxlIHRpbWVDb2RlKSBBc3luYwogICAgIFN0b3BSZWNvcmRpbmcoKSAtPiAoKSBBc3luYwogICAg
IFBhdXNlKCkgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAppbmRleCA0M2RkNGZj
ZjEyOTg2NzZiMWYyYjZmZjIwNTIzYWM3ZTQ5ZjQyZGNlLi5kMDA0Mzk4OTc4Mjg1NjA5MDc3MTYy
MDZlNDFmZDdlNDdiMTQ0MGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC05Niw0NiAr
OTYsMjIgQEAgTWVkaWFSZWNvcmRlclByaXZhdGU6On5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpCiB2
b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBs
ZSYgc2FtcGxlLCBWaWRlb1NhbXBsZU1ldGFkYXRhKQogewogICAgIGlmIChzaG91bGRNdXRlVmlk
ZW8oKSkgewotICAgICAgICAvLyBGSVhNRTogV2UgY291bGQgb3B0aW1pemUgc2VuZGluZyBibGFj
ayBmcmFtZXMgYnkgb25seSBzZW5kaW5nIHdpZHRoL2hlaWdodC4KLSAgICAgICAgaWYgKCFtX2Js
YWNrRnJhbWUpIHsKKyAgICAgICAgaWYgKCFtX2JsYWNrRnJhbWVTaXplKSB7CiAgICAgICAgICAg
ICBhdXRvIHNpemUgPSBzYW1wbGUucHJlc2VudGF0aW9uU2l6ZSgpOwotICAgICAgICAgICAgbV9i
bGFja0ZyYW1lID0gY3JlYXRlQmxhY2tQaXhlbEJ1ZmZlcihzdGF0aWNfY2FzdDxzaXplX3Q+KHNp
emUud2lkdGgoKSksIHN0YXRpY19jYXN0PHNpemVfdD4oc2l6ZS5oZWlnaHQoKSkpOworICAgICAg
ICAgICAgbV9ibGFja0ZyYW1lU2l6ZSA9IFdlYkNvcmU6OkludFNpemUgeyBzdGF0aWNfY2FzdDxp
bnQ+KHNpemUud2lkdGgoKSksIHN0YXRpY19jYXN0PGludD4oc2l6ZS5oZWlnaHQoKSkgfTsKICAg
ICAgICAgfQotICAgICAgICBhdXRvIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpj
cmVhdGUobV9ibGFja0ZyYW1lLmdldCgpLCBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpLCBzYW1w
bGUudmlkZW9Sb3RhdGlvbigpLCBSZW1vdGVWaWRlb1NhbXBsZTo6U2hvdWxkQ2hlY2tGb3JJT1N1
cmZhY2U6Ok5vKTsKLSAgICAgICAgaWYgKCFjb3B5U2hhcmVkVmlkZW9GcmFtZShyZW1vdGVTYW1w
bGUtPmltYWdlQnVmZmVyKCkpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlZpZGVvU2FtcGxlQXZh
aWxhYmxlIHsgV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSwgeyB9IH0sIG1faWRlbnRpZmllcik7Cisg
ICAgICAgIFNoYXJlZFZpZGVvRnJhbWUgc2hhcmVkVmlkZW9GcmFtZSB7IHNhbXBsZS5wcmVzZW50
YXRpb25UaW1lKCksIHNhbXBsZS52aWRlb01pcnJvcmVkKCksIHNhbXBsZS52aWRlb1JvdGF0aW9u
KCksICptX2JsYWNrRnJhbWVTaXplIH07CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6VmlkZW9TYW1wbGVBdmFpbGFibGUgeyBzaGFyZWRW
aWRlb0ZyYW1lIH0sIG1faWRlbnRpZmllcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBtX2JsYWNrRnJhbWUgPSBudWxscHRyOwotCi0gICAgc3RkOjpvcHRpb25hbDxSZW1vdGVWaWRl
b0ZyYW1lUmVhZFJlZmVyZW5jZT4gcmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2U7Ci0gICAg
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiByZW1vdGVTYW1wbGU7Ci0gICAgaWYg
KGlzPFJlbW90ZVZpZGVvRnJhbWVQcm94eT4oc2FtcGxlKSkgewotICAgICAgICByZW1vdGVWaWRl
b0ZyYW1lUmVhZFJlZmVyZW5jZSA9IGRvd25jYXN0PFJlbW90ZVZpZGVvRnJhbWVQcm94eT4oc2Ft
cGxlKS5yZWFkKCk7Ci0gICAgICAgIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpj
cmVhdGUobnVsbHB0ciwgc2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKSwgc2FtcGxlLnZpZGVvUm90
YXRpb24oKSwgUmVtb3RlVmlkZW9TYW1wbGU6OlNob3VsZENoZWNrRm9ySU9TdXJmYWNlOjpObyk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6
OmNyZWF0ZShzYW1wbGUsIFJlbW90ZVZpZGVvU2FtcGxlOjpTaG91bGRDaGVja0ZvcklPU3VyZmFj
ZTo6Tm8pOwotICAgICAgICBpZiAoIXJlbW90ZVNhbXBsZS0+c3VyZmFjZSgpKSB7Ci0gICAgICAg
ICAgICAvLyBidWZmZXIgaXMgbm90IElPU3VyZmFjZSwgd2UgbmVlZCB0byBjb3B5IHRvIHNoYXJl
ZCB2aWRlbyBmcmFtZS4KLSAgICAgICAgICAgIGlmICghY29weVNoYXJlZFZpZGVvRnJhbWUocmVt
b3RlU2FtcGxlLT5pbWFnZUJ1ZmZlcigpKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUmVjb3JkZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxlIHsgV1RGTW92ZSgqcmVtb3RlU2FtcGxl
KSwgcmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UgfSwgbV9pZGVudGlmaWVyKTsKLX0KLQot
Ci1ib29sIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpjb3B5U2hhcmVkVmlkZW9GcmFtZShDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyKQotewotICAgIGlmICghcGl4ZWxCdWZmZXIpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gbV9zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLndyaXRl
KHBpeGVsQnVmZmVyLAorICAgIG1fYmxhY2tGcmFtZVNpemUgPSB7IH07CisgICAgYXV0byBzaGFy
ZWRWaWRlb0ZyYW1lID0gbV9zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLndyaXRlKHNhbXBsZSwKICAg
ICAgICAgW3RoaXNdKGF1dG8mIHNlbWFwaG9yZSkgeyBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlNldFNoYXJlZFZpZGVvRnJhbWVTZW1hcGhvcmUgeyBz
ZW1hcGhvcmUgfSwgbV9pZGVudGlmaWVyKTsgfSwKICAgICAgICAgW3RoaXNdKGF1dG8mIGhhbmRs
ZSkgeyBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlNl
dFNoYXJlZFZpZGVvRnJhbWVNZW1vcnkgeyBoYW5kbGUgfSwgbV9pZGVudGlmaWVyKTsgfQogICAg
ICk7CisgICAgaWYgKHNoYXJlZFZpZGVvRnJhbWUpCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6VmlkZW9TYW1wbGVBdmFpbGFibGUgeyBX
VEZNb3ZlKCpzaGFyZWRWaWRlb0ZyYW1lKSB9LCBtX2lkZW50aWZpZXIpOwogfQogCiB2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1l
JiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVj
b3JkZXJQcml2YXRlLmgKaW5kZXggNGQ3YTVmNWI5NWFmODI3M2JjZWFhM2RhNGIwMDZlNjVlNzg3
ODY4OC4uMzhkYWVmNTg2NzYyNjhkYWIwMDRiNzI4MDZjNjlmNWNlNDFkODBkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJpdmF0ZS5oCkBAIC02OSwxMyArNjksMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdwdVBy
b2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKSBmaW5hbDsKIAog
ICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiwgY29uc3QgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KTsKLSAgICBi
b29sIGNvcHlTaGFyZWRWaWRlb0ZyYW1lKENWUGl4ZWxCdWZmZXJSZWYpOwogCiAgICAgTWVkaWFS
ZWNvcmRlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFJlZjxXZWJDb3JlOjpNZWRpYVN0
cmVhbVByaXZhdGU+IG1fc3RyZWFtOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKIAotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX2JsYWNrRnJhbWU7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwog
ICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PiBtX3NpbGVu
Y2VBdWRpb0J1ZmZlcjsKQEAgLTgzLDYgKzgxLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMgbV9vcHRpb25zOwogICAgIGJvb2wgbV9oYXNWaWRl
byB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzU3RvcHBlZCB7IGZhbHNlIH07CisgICAgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBtX2JsYWNrRnJhbWVTaXplOwogCiAgICAgU2hhcmVk
VmlkZW9GcmFtZVdyaXRlciBtX3NoYXJlZFZpZGVvRnJhbWVXcml0ZXI7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1l
LmNwcAppbmRleCAyODQzNGUwNWIzYWEyNWZlYWM1MmFlMWJkYThkZDg5YzljNjg3N2NlLi44YThi
YTg5NjZmZjI5Y2Y0Mjk1ODE2YTBjNzE4ZjEzOTk0OWRmYzZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcApA
QCAtMTg3LDYgKzE4Nyw4IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gU2hhcmVkVmlkZW9GcmFtZVJl
YWRlcjo6cmVhZChTaGFyZWRWaWRlb0ZyYW1lJiYgc2hhcmVkVmlkZW9GCiAgICAgICAgIHJldHVy
biBXZWJDb3JlOjpjcmVhdGVDVlBpeGVsQnVmZmVyKHN1cmZhY2UtPnN1cmZhY2UoKSkudmFsdWVf
b3IobnVsbHB0cik7CiAgICAgfSwgW3RoaXNdKHN0ZDo6bnVsbHB0cl90IHJlcHJlc2VudGF0aW9u
KSAtPiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gewogICAgICAgICByZXR1cm4gcmVhZCgp
OworICAgIH0sIFtdKEludFNpemUgc2l6ZSkgLT4gUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
IHsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmNyZWF0ZUJsYWNrUGl4ZWxCdWZmZXIoc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKICAgICB9KTsKIAogICAgIGlmICghcGl4ZWxCdWZmZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRW
aWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRW
aWRlb0ZyYW1lLmgKaW5kZXggODAwZDNlZjkyNmZiMmFjYWYxMjc3YmM5MGNhN2RiYjQxZjI5MWYz
Yi4uYzQ2YjdlMjdmZjFhN2M2Y2Q1OGQ0NzBkNDI1MzY1YjFlMjMzMWE2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUu
aApAQCAtNTQsNyArNTQsNyBAQCBzdHJ1Y3QgU2hhcmVkVmlkZW9GcmFtZSB7CiAgICAgTWVkaWFU
aW1lIHRpbWU7CiAgICAgYm9vbCBtaXJyb3JlZCB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6TWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRpb24geyBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OwotICAgIHN0ZDo6dmFyaWFudDxzdGQ6Om51bGxwdHJfdCwg
UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UsIE1hY2hTZW5kUmlnaHQ+IGJ1ZmZlcjsKKyAg
ICBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJl
bmNlLCBNYWNoU2VuZFJpZ2h0LCBXZWJDb3JlOjpJbnRTaXplPiBidWZmZXI7CiAKICAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2hhcmVkVmlkZW9GcmFt
ZT4gZGVjb2RlKERlY29kZXImKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453097</attachid>
            <date>2022-02-24 06:16:24 -0800</date>
            <delta_ts>2022-02-25 00:53:10 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237027-20220224151621.patch</filename>
            <type>text/plain</type>
            <size>24705</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzdlMDY5YTg5ZTVhNGYw
NGQ0OGRkYzYwZjcyOTU1OWRiMDA2ODIzMy4uZTE0YmRmODU3MzRmZGE4Yjc3YTI3OGFhYTk1OTAy
NjRlYzIxY2E4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAyLTI0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpbWl6ZSBibGFjayBm
cmFtZSBzZW5kaW5nIGluIE1lZGlhUmVjb3JkZXJQcml2YXRlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcwMjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBLaW1tbyBLaW5udW5lbi4KKworICAgICAgICBBbGxvdyBnZW5lcmF0aW5nIGJsYWNrIGZyYW1l
cyBhcyBJT1N1cmZhY2VzLgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbToKKwogMjAyMi0wMi0yNCAgS2ltbW8g
S2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIExpYldlYlJUQ0NvZGVj
cywgLVByb3h5IGNyZWF0ZSBhbmQgY29tbXVuaWNhdGUgdGhlIFJlbW90ZVZpZGVvRnJhbWVQcm94
eSBpbmNvcnJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzOTc2NWU4M2U4YmY2MDI3YTM1MDA0ODgzYjljNTNh
OTcwOTdlNWVlLi4wZDZjNzM0M2VmZjI0NDMxNjM5YzI3ZjcxMTUxMDcwOGFhYjJhNTFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAyLTI0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpbWl6ZSBibGFjayBmcmFtZSBzZW5kaW5nIGluIE1l
ZGlhUmVjb3JkZXJQcml2YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzcwMjcKKworICAgICAgICBSZXZpZXdlZCBieSBLaW1tbyBLaW5udW5lbi4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2VuZGluZyBibGFjayBmcmFtZXMgdGhyb3VnaCBT
aGFyZWRWaWRlb0ZyYW1lLgorICAgICAgICBJbiB0aGF0IGNhc2UsIHdlIG9ubHkgc2VuZCB3aWR0
aCBhbmQgaGVpZ2h0IGFuZCB3ZSByZWNvbnN0cnVjdCBhIGJsYWNrIGZyYW1lIG9uIHJlY2VpdmVy
IHNpZGUuCisgICAgICAgIE1ha2UgdXNlIG9mIFNoYXJlZFZpZGVvRnJhbWUgaW4gUmVtb3RlTWVk
aWFSZWNvcmRlci4KKyAgICAgICAgU2V0IG93bmVyc2hpcCBpbiBTaGFyZWRWaWRlb0ZyYW1lIHRv
IHRoZSBjb3JyZXNwb25kaW5nIFdlYlByb2Nlc3MuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlz
dGluZyB0ZXN0cywgaW4gcGFydGljdWxhciBodHRwL3dwdC9tZWRpYXJlY29yZGVyL211dGUtdHJh
Y2tzLmh0bWwuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQ
cm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5
Lm1tOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3Bw
OgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaDoKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9G
cmFtZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJh
bWUuaDoKKwogMjAyMi0wMi0yNCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29t
PgogCiAgICAgICAgIExpYldlYlJUQ0NvZGVjcywgLVByb3h5IGNyZWF0ZSBhbmQgY29tbXVuaWNh
dGUgdGhlIFJlbW90ZVZpZGVvRnJhbWVQcm94eSBpbmNvcnJlY3RseQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLmgKaW5kZXggYTE1OTRlYmRl
NDk1MDRjYjg0MDNmZGQ4YWU2ZGQ2MjU3N2Q3YTEyZS4uYzMwZGUxZGMwOTE3YTViYWI2MTFmMmJk
YzY1MGZkMTdhNTEyNzE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9DVlV0aWxpdGllcy5oCkBAIC01NCw2ICs1NCw2IEBAIFJldGFpblB0cjxDR0NvbG9y
U3BhY2VSZWY+IGNyZWF0ZUNHQ29sb3JTcGFjZUZvckNWUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZl
clJlZik7CiAvLyBTaG91bGQgYmUgY2FsbGVkIHdpdGggbm9uLWVtcHR5IFByb2Nlc3NJZGVudGl0
eS4KIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHlGb3JDVlBpeGVsQnVm
ZmVyKENWUGl4ZWxCdWZmZXJSZWYsIGNvbnN0IFByb2Nlc3NJZGVudGl0eSYpOwogCi1XRUJDT1JF
X0VYUE9SVCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlQmxhY2tQaXhlbEJ1ZmZl
cihzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpOworV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZUJsYWNrUGl4ZWxCdWZmZXIoc2l6ZV90IHdpZHRoLCBz
aXplX3QgaGVpZ2h0LCBib29sIHNob3VsZFVzZUlPU3VyZmFjZSA9IGZhbHNlKTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQpp
bmRleCBkMDg1MGJhZjMyMTFhMmI1ZGZlZmVjOGUyNTg1YTY2YWE0ZGNkZjU2Li40MGE4Yzg2N2Jk
ZmQwYjBjNGE0ZTI5ZjgwYTFkOWRjNjUxZDJhMzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQpAQCAtMTYzLDEzICsxNjMsMTUg
QEAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eUZvckNWUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZl
clJlZiBwaXhlbEJ1ZmZlciwgY29uc3QgUHIKICAgICBJT1N1cmZhY2U6OnNldE93bmVyc2hpcElk
ZW50aXR5KHN1cmZhY2UsIG93bmVyKTsKIH0KIAotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
IGNyZWF0ZUJsYWNrUGl4ZWxCdWZmZXIoc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0KQorUmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZUJsYWNrUGl4ZWxCdWZmZXIoc2l6ZV90IHdp
ZHRoLCBzaXplX3QgaGVpZ2h0LCBib29sIHNob3VsZFVzZUlPU3VyZmFjZSkKIHsKICAgICBPU1R5
cGUgZm9ybWF0ID0gcHJlZmVyZWRQaXhlbEJ1ZmZlckZvcm1hdCgpOwogICAgIEFTU0VSVChmb3Jt
YXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hclZpZGVvUmFuZ2UgfHwg
Zm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJGdWxsUmFuZ2Up
OwogCisgICAgTlNEaWN0aW9uYXJ5ICpwaXhlbEF0dHJpYnV0ZXMgPSBAeyAoX19icmlkZ2UgTlNT
dHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZVByb3BlcnRpZXNLZXkgOiBAeyB9IH07CisK
ICAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0
YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgd2lkdGgsIGhl
aWdodCwgZm9ybWF0LCBudWxscHRyLCAmcGl4ZWxCdWZmZXIpOworICAgIGF1dG8gc3RhdHVzID0g
Q1ZQaXhlbEJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCB3aWR0aCwgaGVpZ2h0LCBm
b3JtYXQsIHNob3VsZFVzZUlPU3VyZmFjZSA/IChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpcGl4
ZWxBdHRyaWJ1dGVzIDogbnVsbHB0ciwgJnBpeGVsQnVmZmVyKTsKICAgICBBU1NFUlRfVU5VU0VE
KHN0YXR1cywgc3RhdHVzID09IG5vRXJyKTsKIAogICAgIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJM
b2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCmluZGV4IGI3NTg1MGI5
MzI5Yjk3MThjZjU1NWRkNjliZTJlNzE4NDAwNGUzMmYuLjY4Mjk4YTNkMGMwZmRlMTI0MmM2ZjE5
Y2IwMzVlZGM4ODAzNDA2M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs
dWRlICJSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9y
eS5oIgogI2luY2x1ZGUgIlNoYXJlZFZpZGVvRnJhbWUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1By
b2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBJUEMg
ewpAQCAtMTA0LDYgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxSVENFbmNvZGVySWRl
bnRpZmllciwgRW5jb2Rlcj4gbV9lbmNvZGVycyBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7
IC8vIE9ubHkgbW9kaWZpZWQgb24gdGhlIGxpYldlYlJUQ0NvZGVjc1F1ZXVlIGJ1dCBtYXkgZ2V0
IGFjY2Vzc2VkIGZyb20gdGhlIG1haW4gdGhyZWFkLgogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVl
dWU7CiAgICAgUmVmPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiBtX3ZpZGVvRnJhbWVPYmpl
Y3RIZWFwOworICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSBtX3Jlc291cmNlT3duZXI7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldl
YlJUQ0NvZGVjc1Byb3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5tbQppbmRleCAwOGNiMDVmMjYzMzE4ZDJlNTViMzc4ZmEzYTg0ZWRm
NTFjNjI1MWUwLi4wYWVhNWZmNzc4MzljMDExMTZmYzI1ODZkNjRjZWU1NTNlMWU2MGJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1By
b3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzUHJveHkubW0KQEAgLTUzLDYgKzUzLDcgQEAgTGliV2ViUlRDQ29kZWNzUHJveHk6OkxpYldl
YlJUQ0NvZGVjc1Byb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24KICAg
ICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uKQogICAgICwgbV9xdWV1
ZShjb25uZWN0aW9uLmdwdVByb2Nlc3MoKS5saWJXZWJSVENDb2RlY3NRdWV1ZSgpKQogICAgICwg
bV92aWRlb0ZyYW1lT2JqZWN0SGVhcChjb25uZWN0aW9uLnZpZGVvRnJhbWVPYmplY3RIZWFwKCkp
CisgICAgLCBtX3Jlc291cmNlT3duZXIoY29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpdHkoKSkK
IHsKICAgICBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLmFkZFRocmVh
ZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgdGhpcyk7CiB9CkBAIC0yODEsNyArMjgyLDcgQEAgdm9pZCBMaWJXZWJS
VENDb2RlY3NQcm94eTo6c2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFwaG9yZShSVENFbmNvZGVySWRl
bnRpZmllciBpZGUKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFlbmNvZGVyLT5mcmFtZVJl
YWRlcikKLSAgICAgICAgZW5jb2Rlci0+ZnJhbWVSZWFkZXIgPSBtYWtlVW5pcXVlPFNoYXJlZFZp
ZGVvRnJhbWVSZWFkZXI+KFJlZiB7IG1fdmlkZW9GcmFtZU9iamVjdEhlYXAgfSk7CisgICAgICAg
IGVuY29kZXItPmZyYW1lUmVhZGVyID0gbWFrZVVuaXF1ZTxTaGFyZWRWaWRlb0ZyYW1lUmVhZGVy
PihSZWYgeyBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwIH0sIG1fcmVzb3VyY2VPd25lcik7CiAgICAg
ZW5jb2Rlci0+ZnJhbWVSZWFkZXItPnNldFNlbWFwaG9yZShXVEZNb3ZlKHNlbWFwaG9yZSkpOwog
fQogCkBAIC0yOTUsNyArMjk2LDcgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6c2V0U2hh
cmVkVmlkZW9GcmFtZU1lbW9yeShSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgaWYgKCFlbmNvZGVyLT5mcmFtZVJlYWRlcikKLSAgICAgICAgZW5jb2Rl
ci0+ZnJhbWVSZWFkZXIgPSBtYWtlVW5pcXVlPFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI+KFJlZiB7
IG1fdmlkZW9GcmFtZU9iamVjdEhlYXAgfSk7CisgICAgICAgIGVuY29kZXItPmZyYW1lUmVhZGVy
ID0gbWFrZVVuaXF1ZTxTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyPihSZWYgeyBtX3ZpZGVvRnJhbWVP
YmplY3RIZWFwIH0sIG1fcmVzb3VyY2VPd25lcik7CiAgICAgZW5jb2Rlci0+ZnJhbWVSZWFkZXIt
PnNldFNoYXJlZE1lbW9yeShpcGNIYW5kbGUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAppbmRleCA0ZDZi
OGY1YzE3MTkxYmY3NTAxOTI4YjhkNjgwMWU4NDBlOTk3ZDA1Li5kNjUxZTAyYTQ4YmQxOTUxODJh
NzNmNzY1YTVkNTc0NTMwNzE3MjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKQEAgLTMzLDcgKzMzLDYgQEAK
ICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5oIgogI2luY2x1ZGUgIlNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhU2FtcGxlQVZGT2JqQy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlk
ZW9TYW1wbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgpAQCAt
NTcsOCArNTYsNyBAQCBSZW1vdGVNZWRpYVJlY29yZGVyOjpSZW1vdGVNZWRpYVJlY29yZGVyKEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3RpbwogICAgIDogbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgLCBtX2lkZW50
aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fd3JpdGVyKFdURk1vdmUod3JpdGVyKSkKLSAgICAs
IG1fc2hhcmVkVmlkZW9GcmFtZVJlYWRlcihSZWYgeyBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LnZpZGVvRnJhbWVPYmplY3RIZWFwKCkgfSkKLSAgICAsIG1fdmlkZW9GcmFtZU9iamVjdEhlYXAo
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy52aWRlb0ZyYW1lT2JqZWN0SGVhcCgpKQorICAgICwg
bV9zaGFyZWRWaWRlb0ZyYW1lUmVhZGVyKFJlZiB7IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
dmlkZW9GcmFtZU9iamVjdEhlYXAoKSB9LCB7IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2Vi
UHJvY2Vzc0lkZW50aXR5KCkgfSkKIHsKICAgICBpZiAocmVjb3JkQXVkaW8pCiAgICAgICAgIG1f
cmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPigpOwpAQCAtOTAsMzcgKzg4LDEw
IEBAIHZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlh
VGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPCiAgICAgbV93cml0ZXItPmFwcGVuZEF1ZGlvU2Ft
cGxlQnVmZmVyKCptX2F1ZGlvQnVmZmVyTGlzdCwgbV9kZXNjcmlwdGlvbiwgdGltZSwgbnVtYmVy
T2ZGcmFtZXMpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OnZpZGVvU2FtcGxlQXZh
aWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYgcmVtb3RlU2FtcGxlLCBzdGQ6Om9w
dGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlPiBzYW1wbGVSZWZlcmVuY2UpCit2
b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKFNoYXJlZFZpZGVv
RnJhbWUmJiBzaGFyZWRWaWRlb0ZyYW1lKQogewotICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gc2Ft
cGxlOwotICAgIGlmIChzYW1wbGVSZWZlcmVuY2UpIHsKLSAgICAgICAgc2FtcGxlID0gbV92aWRl
b0ZyYW1lT2JqZWN0SGVhcC0+cmV0aXJlKFdURk1vdmUoKnNhbXBsZVJlZmVyZW5jZSksIG1lZGlh
UmVjb3JkZXJEZWZhdWx0VGltZW91dCk7Ci0gICAgICAgIGlmICghc2FtcGxlKSB7Ci0gICAgICAg
ICAgICAvLyBJbiBjYXNlIG9mIEdQVVByb2Nlc3MgY3Jhc2gsIHdlIG1pZ2h0IGVucXVldWUgcHJl
dmlvdXMgR1BVUHJvY2VzcyBzYW1wbGVzLCBpZ25vcmUgdGhlbS4KLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoIXJlbW90ZVNhbXBsZS5zdXJmYWNlKCkpIHsK
LSAgICAgICAgYXV0byBwaXhlbEJ1ZmZlciA9IG1fc2hhcmVkVmlkZW9GcmFtZVJlYWRlci5yZWFk
KCk7Ci0gICAgICAgIGlmICghcGl4ZWxCdWZmZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgc2FtcGxlID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVJbWFnZVNhbXBsZShXVEZN
b3ZlKHBpeGVsQnVmZmVyKSwgcmVtb3RlU2FtcGxlLnJvdGF0aW9uKCksIHJlbW90ZVNhbXBsZS5t
aXJyb3JlZCgpLCByZW1vdGVTYW1wbGUudGltZSgpKTsKLSAgICB9IGVsc2UgewotICAgICAgICBp
ZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4
ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKLSAgICAgICAgICAgIG1f
aW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVt
b3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpOwotCi0gICAgICAgIGlmICghbV9pbWFnZVRyYW5zZmVy
U2Vzc2lvbikgewotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBzYW1wbGUgPSBtX2ltYWdlVHJhbnNmZXJT
ZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShyZW1vdGVTYW1wbGUpOwotICAgICAgICBpZiAoIXNh
bXBsZSkgewotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgbV93cml0ZXItPmFwcGVuZFZpZGVvU2FtcGxl
QnVmZmVyKCpzYW1wbGUpOworICAgIGlmIChhdXRvIHNhbXBsZSA9IG1fc2hhcmVkVmlkZW9GcmFt
ZVJlYWRlci5yZWFkKFdURk1vdmUoc2hhcmVkVmlkZW9GcmFtZSkpKQorICAgICAgICBtX3dyaXRl
ci0+YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoKnNhbXBsZSk7CiB9CiAKIHZvaWQgUmVtb3RlTWVk
aWFSZWNvcmRlcjo6ZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpEYXRhUmVm
ZXJlbmNlJiYsIGRvdWJsZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oCmluZGV4IDYw
YjhkMDIxNGU3N2E1M2NjMDQ1YTBmOWZlYjgxYTM5MDQ5ZDNkZDIuLjJlN2M3YmIzYjZkZTFhMmJh
NzEwMzc1NDE2MmJjNzFlZGQ3YjYwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oCkBAIC00NCw3ICs0NCw2IEBAIGNs
YXNzIERlY29kZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENBUmluZ0J1ZmZlcjsK
LWNsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CiBjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZTsK
IGNsYXNzIFdlYkF1ZGlvQnVmZmVyTGlzdDsKIHN0cnVjdCBNZWRpYVJlY29yZGVyUHJpdmF0ZU9w
dGlvbnM7CkBAIC01Myw3ICs1Miw2IEBAIHN0cnVjdCBNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlv
bnM7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czsKLWNsYXNzIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOwogY2xhc3MgU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U7CiAKIGNsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXIgOiBwcml2YXRlIElQQzo6
TWVzc2FnZVJlY2VpdmVyIHsKQEAgLTc0LDcgKzcyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgYXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29u
c3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CiAgICAgdm9pZCBhdWRpb1Nh
bXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7Ci0gICAg
dm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmLCBz
dGQ6Om9wdGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlPik7CisgICAgdm9pZCB2
aWRlb1NhbXBsZUF2YWlsYWJsZShTaGFyZWRWaWRlb0ZyYW1lJiYpOwogICAgIHZvaWQgZmV0Y2hE
YXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpEYXRhUmVmZXJlbmNlJiYsIGRvdWJsZSk+
JiYpOwogICAgIHZvaWQgc3RvcFJlY29yZGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgcGF1c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTg5LDEw
ICs4Nyw4IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
IG1fZGVzY3JpcHRpb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZl
cj4gbV9yaW5nQnVmZmVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpXZWJBdWRpb0J1
ZmZlckxpc3Q+IG1fYXVkaW9CdWZmZXJMaXN0OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwogCiAgICAg
U2hhcmVkVmlkZW9GcmFtZVJlYWRlciBtX3NoYXJlZFZpZGVvRnJhbWVSZWFkZXI7Ci0gICAgUmVm
PFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVN
ZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluCmluZGV4IDQ5OGYyODFhZjgwMTg3OGUw
NTRkMzFlZTZlZDJiNzk3MDhiOTBlODQuLjUyMjEwZGFlYmIzNjhjZjQxNzM2MDg1N2YzMTE1YmFl
NTNlMDZiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4KQEAgLTI2LDcgKzI2LDcg
QEAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUmVjb3JkZXIgTm90UmVmQ291bnRlZCB7CiAgICAg
QXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRs
ZSBzdG9yYWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3Jp
cHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQogICAgIEF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCi0gICAgVmlkZW9TYW1w
bGVBdmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUgc2FtcGxlLCBzdGQ6Om9wdGlv
bmFsPFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2U+IHJlbW90ZVZpZGVvRnJh
bWVSZWFkUmVmZXJlbmNlKQorICAgIFZpZGVvU2FtcGxlQXZhaWxhYmxlKHN0cnVjdCBXZWJLaXQ6
OlNoYXJlZFZpZGVvRnJhbWUgZnJhbWUpCiAgICAgRmV0Y2hEYXRhKCkgLT4gKElQQzo6RGF0YVJl
ZmVyZW5jZSBidWZmZXIsIGRvdWJsZSB0aW1lQ29kZSkgQXN5bmMKICAgICBTdG9wUmVjb3JkaW5n
KCkgLT4gKCkgQXN5bmMKICAgICBQYXVzZSgpIC0+ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5jcHAKaW5kZXggZDFlNDdhZTU4OWVmNmRlMjU2ZmRlZGNlZjI5MzhmMGNh
NzgwZDY4OS4uZTBlY2E2ZjM3Y2VkNTMwOGU3NTJjMWM3NGNlOWRkNWU5YjUzNDIyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcApAQCAtNTIsNyArNTIsNyBAQCBSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihH
UFVDb25uZWN0aW9uVG9XZQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBt
X2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1fc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoKnRoaXMpKQot
ICAgICwgbV9zaGFyZWRWaWRlb0ZyYW1lUmVhZGVyKCZtX2dwdUNvbm5lY3Rpb24udmlkZW9GcmFt
ZU9iamVjdEhlYXAoKSkKKyAgICAsIG1fc2hhcmVkVmlkZW9GcmFtZVJlYWRlcihSZWYgeyBtX2dw
dUNvbm5lY3Rpb24udmlkZW9GcmFtZU9iamVjdEhlYXAoKSB9LCBtX2dwdUNvbm5lY3Rpb24ud2Vi
UHJvY2Vzc0lkZW50aXR5KCkpCiB7CiAgICAgQVNTRVJUKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyKTsKIH0KQEAgLTEyMiw3ICsxMjIsNiBAQCB2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcjo6cGF1c2UoKQogdm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVu
cXVldWUoU2hhcmVkVmlkZW9GcmFtZSYmIGZyYW1lKQogewogICAgIGF1dG8gc2FtcGxlID0gbV9z
aGFyZWRWaWRlb0ZyYW1lUmVhZGVyLnJlYWQoV1RGTW92ZShmcmFtZSkpOwotICAgIEFTU0VSVChz
YW1wbGUpOwogICAgIGlmICghc2FtcGxlKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcAppbmRleCA0M2RkNGZjZjEyOTg2NzZiMWYyYjZmZjIwNTIzYWM3ZTQ5ZjQyZGNl
Li5kMDA0Mzk4OTc4Mjg1NjA5MDc3MTYyMDZlNDFmZDdlNDdiMTQ0MGZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuY3BwCkBAIC05Niw0NiArOTYsMjIgQEAgTWVkaWFSZWNvcmRlclByaXZhdGU6On5N
ZWRpYVJlY29yZGVyUHJpdmF0ZSgpCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjp2aWRlb1Nh
bXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBWaWRlb1NhbXBsZU1ldGFkYXRhKQog
ewogICAgIGlmIChzaG91bGRNdXRlVmlkZW8oKSkgewotICAgICAgICAvLyBGSVhNRTogV2UgY291
bGQgb3B0aW1pemUgc2VuZGluZyBibGFjayBmcmFtZXMgYnkgb25seSBzZW5kaW5nIHdpZHRoL2hl
aWdodC4KLSAgICAgICAgaWYgKCFtX2JsYWNrRnJhbWUpIHsKKyAgICAgICAgaWYgKCFtX2JsYWNr
RnJhbWVTaXplKSB7CiAgICAgICAgICAgICBhdXRvIHNpemUgPSBzYW1wbGUucHJlc2VudGF0aW9u
U2l6ZSgpOwotICAgICAgICAgICAgbV9ibGFja0ZyYW1lID0gY3JlYXRlQmxhY2tQaXhlbEJ1ZmZl
cihzdGF0aWNfY2FzdDxzaXplX3Q+KHNpemUud2lkdGgoKSksIHN0YXRpY19jYXN0PHNpemVfdD4o
c2l6ZS5oZWlnaHQoKSkpOworICAgICAgICAgICAgbV9ibGFja0ZyYW1lU2l6ZSA9IFdlYkNvcmU6
OkludFNpemUgeyBzdGF0aWNfY2FzdDxpbnQ+KHNpemUud2lkdGgoKSksIHN0YXRpY19jYXN0PGlu
dD4oc2l6ZS5oZWlnaHQoKSkgfTsKICAgICAgICAgfQotICAgICAgICBhdXRvIHJlbW90ZVNhbXBs
ZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUobV9ibGFja0ZyYW1lLmdldCgpLCBzYW1wbGUu
cHJlc2VudGF0aW9uVGltZSgpLCBzYW1wbGUudmlkZW9Sb3RhdGlvbigpLCBSZW1vdGVWaWRlb1Nh
bXBsZTo6U2hvdWxkQ2hlY2tGb3JJT1N1cmZhY2U6Ok5vKTsKLSAgICAgICAgaWYgKCFjb3B5U2hh
cmVkVmlkZW9GcmFtZShyZW1vdGVTYW1wbGUtPmltYWdlQnVmZmVyKCkpKQotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlh
UmVjb3JkZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxlIHsgV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSwg
eyB9IH0sIG1faWRlbnRpZmllcik7CisgICAgICAgIFNoYXJlZFZpZGVvRnJhbWUgc2hhcmVkVmlk
ZW9GcmFtZSB7IHNhbXBsZS5wcmVzZW50YXRpb25UaW1lKCksIHNhbXBsZS52aWRlb01pcnJvcmVk
KCksIHNhbXBsZS52aWRlb1JvdGF0aW9uKCksICptX2JsYWNrRnJhbWVTaXplIH07CisgICAgICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6VmlkZW9T
YW1wbGVBdmFpbGFibGUgeyBzaGFyZWRWaWRlb0ZyYW1lIH0sIG1faWRlbnRpZmllcik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2JsYWNrRnJhbWUgPSBudWxscHRyOwotCi0gICAg
c3RkOjpvcHRpb25hbDxSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZT4gcmVtb3RlVmlkZW9G
cmFtZVJlYWRSZWZlcmVuY2U7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxl
PiByZW1vdGVTYW1wbGU7Ci0gICAgaWYgKGlzPFJlbW90ZVZpZGVvRnJhbWVQcm94eT4oc2FtcGxl
KSkgewotICAgICAgICByZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSA9IGRvd25jYXN0PFJl
bW90ZVZpZGVvRnJhbWVQcm94eT4oc2FtcGxlKS5yZWFkKCk7Ci0gICAgICAgIHJlbW90ZVNhbXBs
ZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUobnVsbHB0ciwgc2FtcGxlLnByZXNlbnRhdGlv
blRpbWUoKSwgc2FtcGxlLnZpZGVvUm90YXRpb24oKSwgUmVtb3RlVmlkZW9TYW1wbGU6OlNob3Vs
ZENoZWNrRm9ySU9TdXJmYWNlOjpObyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcmVtb3RlU2Ft
cGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUsIFJlbW90ZVZpZGVvU2FtcGxl
OjpTaG91bGRDaGVja0ZvcklPU3VyZmFjZTo6Tm8pOwotICAgICAgICBpZiAoIXJlbW90ZVNhbXBs
ZS0+c3VyZmFjZSgpKSB7Ci0gICAgICAgICAgICAvLyBidWZmZXIgaXMgbm90IElPU3VyZmFjZSwg
d2UgbmVlZCB0byBjb3B5IHRvIHNoYXJlZCB2aWRlbyBmcmFtZS4KLSAgICAgICAgICAgIGlmICgh
Y29weVNoYXJlZFZpZGVvRnJhbWUocmVtb3RlU2FtcGxlLT5pbWFnZUJ1ZmZlcigpKSkKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxl
IHsgV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSwgcmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2Ug
fSwgbV9pZGVudGlmaWVyKTsKLX0KLQotCi1ib29sIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpjb3B5
U2hhcmVkVmlkZW9GcmFtZShDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKQotewotICAgIGlm
ICghcGl4ZWxCdWZmZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gbV9zaGFy
ZWRWaWRlb0ZyYW1lV3JpdGVyLndyaXRlKHBpeGVsQnVmZmVyLAorICAgIG1fYmxhY2tGcmFtZVNp
emUgPSB7IH07CisgICAgYXV0byBzaGFyZWRWaWRlb0ZyYW1lID0gbV9zaGFyZWRWaWRlb0ZyYW1l
V3JpdGVyLndyaXRlKHNhbXBsZSwKICAgICAgICAgW3RoaXNdKGF1dG8mIHNlbWFwaG9yZSkgeyBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlNldFNoYXJl
ZFZpZGVvRnJhbWVTZW1hcGhvcmUgeyBzZW1hcGhvcmUgfSwgbV9pZGVudGlmaWVyKTsgfSwKICAg
ICAgICAgW3RoaXNdKGF1dG8mIGhhbmRsZSkgeyBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlNldFNoYXJlZFZpZGVvRnJhbWVNZW1vcnkgeyBoYW5kbGUg
fSwgbV9pZGVudGlmaWVyKTsgfQogICAgICk7CisgICAgaWYgKHNoYXJlZFZpZGVvRnJhbWUpCisg
ICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6
VmlkZW9TYW1wbGVBdmFpbGFibGUgeyBXVEZNb3ZlKCpzaGFyZWRWaWRlb0ZyYW1lKSB9LCBtX2lk
ZW50aWZpZXIpOwogfQogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYg
YXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6
ZV90IG51bWJlck9mRnJhbWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKaW5kZXggNGQ3YTVmNWI5NWFm
ODI3M2JjZWFhM2RhNGIwMDZlNjVlNzg3ODY4OC4uMzhkYWVmNTg2NzYyNjhkYWIwMDRiNzI4MDZj
NjlmNWNlNDFkODBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCkBAIC02OSwxMyArNjksMTEgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24mKSBmaW5hbDsKIAogICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVt
b3J5KiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNp
emVfdCBmcmFtZUNvdW50KTsKLSAgICBib29sIGNvcHlTaGFyZWRWaWRlb0ZyYW1lKENWUGl4ZWxC
dWZmZXJSZWYpOwogCiAgICAgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwog
ICAgIFJlZjxXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU+IG1fc3RyZWFtOwogICAgIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIAotICAgIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBtX2JsYWNrRnJhbWU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmlu
Z0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwogICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2Vi
QXVkaW9CdWZmZXJMaXN0PiBtX3NpbGVuY2VBdWRpb0J1ZmZlcjsKQEAgLTgzLDYgKzgxLDcgQEAg
cHJpdmF0ZToKICAgICBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMgbV9vcHRp
b25zOwogICAgIGJvb2wgbV9oYXNWaWRlbyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzU3RvcHBl
ZCB7IGZhbHNlIH07CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBtX2JsYWNr
RnJhbWVTaXplOwogCiAgICAgU2hhcmVkVmlkZW9GcmFtZVdyaXRlciBtX3NoYXJlZFZpZGVvRnJh
bWVXcml0ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcAppbmRleCAyODQzNGUwNWIzYWEyNWZlYWM1MmFl
MWJkYThkZDg5YzljNjg3N2NlLi42MGNhYTI4ZDQ0Yjk5MTQzZTMxZWFkZWJiZjQyYzJmMjgzMWUx
NWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFy
ZWRWaWRlb0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcApAQCAtMTM0LDE1ICsxMzQsMTQgQEAgdm9pZCBTaGFyZWRW
aWRlb0ZyYW1lV3JpdGVyOjpkaXNhYmxlKCkKICAgICBtX3NlbWFwaG9yZS0+c2lnbmFsKCk7CiB9
CiAKLVNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OlNoYXJlZFZpZGVvRnJhbWVSZWFkZXIoUmVmUHRy
PFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiYmIG9iamVjdEhlYXAsIFVzZUlPU3VyZmFjZUJ1
ZmZlclBvb2wgdXNlSU9TdXJmYWNlQnVmZmVyUG9vbCkKK1NoYXJlZFZpZGVvRnJhbWVSZWFkZXI6
OlNoYXJlZFZpZGVvRnJhbWVSZWFkZXIoUmVmUHRyPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
PiYmIG9iamVjdEhlYXAsIGNvbnN0IFByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lciwgVXNl
SU9TdXJmYWNlQnVmZmVyUG9vbCB1c2VJT1N1cmZhY2VCdWZmZXJQb29sKQogICAgIDogbV9vYmpl
Y3RIZWFwKFdURk1vdmUob2JqZWN0SGVhcCkpCisgICAgLCBtX3Jlc291cmNlT3duZXIocmVzb3Vy
Y2VPd25lcikKICAgICAsIG1fdXNlSU9TdXJmYWNlQnVmZmVyUG9vbCh1c2VJT1N1cmZhY2VCdWZm
ZXJQb29sKQogewogfQogCi1TaGFyZWRWaWRlb0ZyYW1lUmVhZGVyOjpTaGFyZWRWaWRlb0ZyYW1l
UmVhZGVyKCkKLXsKLX0KK1NoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OlNoYXJlZFZpZGVvRnJhbWVS
ZWFkZXIoKSA9IGRlZmF1bHQ7CiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBTaGFyZWRW
aWRlb0ZyYW1lUmVhZGVyOjpyZWFkKCkKIHsKQEAgLTE2NCw3ICsxNjMsMTAgQEAgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OnJlYWQoKQogICAgIGlm
IChtX3N0b3JhZ2UtPnNpemUoKSA8IGluZm8tPnN0b3JhZ2VTaXplKCkpCiAgICAgICAgIHJldHVy
biB7IH07CiAKLSAgICByZXR1cm4gaW5mby0+Y3JlYXRlUGl4ZWxCdWZmZXJGcm9tTWVtb3J5KGRh
dGEgKyBTaGFyZWRWaWRlb0ZyYW1lSW5mb0VuY29kaW5nTGVuZ3RoLCBwaXhlbEJ1ZmZlclBvb2wo
KmluZm8pKTsKKyAgICBhdXRvIHJlc3VsdCA9IGluZm8tPmNyZWF0ZVBpeGVsQnVmZmVyRnJvbU1l
bW9yeShkYXRhICsgU2hhcmVkVmlkZW9GcmFtZUluZm9FbmNvZGluZ0xlbmd0aCwgcGl4ZWxCdWZm
ZXJQb29sKCppbmZvKSk7CisgICAgaWYgKHJlc3VsdCAmJiBtX3Jlc291cmNlT3duZXIgJiYgbV91
c2VJT1N1cmZhY2VCdWZmZXJQb29sID09IFVzZUlPU3VyZmFjZUJ1ZmZlclBvb2w6OlllcykKKyAg
ICAgICAgc2V0T3duZXJzaGlwSWRlbnRpdHlGb3JDVlBpeGVsQnVmZmVyKHJlc3VsdC5nZXQoKSwg
bV9yZXNvdXJjZU93bmVyKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBSZWZQdHI8TWVkaWFT
YW1wbGU+IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OnJlYWQoU2hhcmVkVmlkZW9GcmFtZSYmIHNo
YXJlZFZpZGVvRnJhbWUpCkBAIC0xNzYsOSArMTc4LDkgQEAgUmVmUHRyPE1lZGlhU2FtcGxlPiBT
aGFyZWRWaWRlb0ZyYW1lUmVhZGVyOjpyZWFkKFNoYXJlZFZpZGVvRnJhbWUmJiBzaGFyZWRWaWRl
b0YKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIGF1dG8gc2FtcGxlID0g
bV9vYmplY3RIZWFwLT5yZXRpcmUoV1RGTW92ZShyZWZlcmVuY2UpLCAwX3MpOwotICAgICAgICBB
U1NFUlQoc2FtcGxlICYmIHNhbXBsZS0+cGl4ZWxCdWZmZXIoKSk7CiAgICAgICAgIGlmICghc2Ft
cGxlKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIEFTU0VSVChzYW1wbGUt
PnBpeGVsQnVmZmVyKCkpOwogICAgICAgICByZXR1cm4gc2FtcGxlLT5waXhlbEJ1ZmZlcigpOwog
ICAgIH0gLCBbXShNYWNoU2VuZFJpZ2h0JiYgc2VuZFJpZ2h0KSAtPiBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gewogICAgICAgICBhdXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6
OmNyZWF0ZUZyb21TZW5kUmlnaHQoV1RGTW92ZShzZW5kUmlnaHQpLCBEZXN0aW5hdGlvbkNvbG9y
U3BhY2U6OlNSR0IoKSk7CkBAIC0xODcsNiArMTg5LDE0IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4g
U2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6cmVhZChTaGFyZWRWaWRlb0ZyYW1lJiYgc2hhcmVkVmlk
ZW9GCiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpjcmVhdGVDVlBpeGVsQnVmZmVyKHN1cmZhY2Ut
PnN1cmZhY2UoKSkudmFsdWVfb3IobnVsbHB0cik7CiAgICAgfSwgW3RoaXNdKHN0ZDo6bnVsbHB0
cl90IHJlcHJlc2VudGF0aW9uKSAtPiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gewogICAg
ICAgICByZXR1cm4gcmVhZCgpOworICAgIH0sIFt0aGlzXShJbnRTaXplIHNpemUpIC0+IFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiB7CisgICAgICAgIGlmIChtX2JsYWNrRnJhbWVTaXplICE9
IHNpemUpIHsKKyAgICAgICAgICAgIG1fYmxhY2tGcmFtZVNpemUgPSBzaXplOworICAgICAgICAg
ICAgbV9ibGFja0ZyYW1lID0gV2ViQ29yZTo6Y3JlYXRlQmxhY2tQaXhlbEJ1ZmZlcihtX2JsYWNr
RnJhbWVTaXplLndpZHRoKCksIG1fYmxhY2tGcmFtZVNpemUuaGVpZ2h0KCksIG1fdXNlSU9TdXJm
YWNlQnVmZmVyUG9vbCA9PSBVc2VJT1N1cmZhY2VCdWZmZXJQb29sOjpZZXMpOworICAgICAgICAg
ICAgaWYgKG1fcmVzb3VyY2VPd25lciAmJiBtX3VzZUlPU3VyZmFjZUJ1ZmZlclBvb2wgPT0gVXNl
SU9TdXJmYWNlQnVmZmVyUG9vbDo6WWVzKQorICAgICAgICAgICAgICAgIHNldE93bmVyc2hpcElk
ZW50aXR5Rm9yQ1ZQaXhlbEJ1ZmZlcihtX2JsYWNrRnJhbWUuZ2V0KCksIG1fcmVzb3VyY2VPd25l
cik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fYmxhY2tGcmFtZS5nZXQoKTsKICAgICB9
KTsKIAogICAgIGlmICghcGl4ZWxCdWZmZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmgKaW5kZXggODAwZDNlZjkyNmZi
MmFjYWYxMjc3YmM5MGNhN2RiYjQxZjI5MWYzYi4uNTkwNDdmY2ZiYzBiNjUxMjlmNjM2ODg4YjMx
NWIyY2U4ZmRmMjNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IlJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5Lmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNhbXBsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJv
Y2Vzc0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CkBAIC01NCw3ICs1NSw3IEBA
IHN0cnVjdCBTaGFyZWRWaWRlb0ZyYW1lIHsKICAgICBNZWRpYVRpbWUgdGltZTsKICAgICBib29s
IG1pcnJvcmVkIHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbiByb3RhdGlvbiB7IFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25l
IH07Ci0gICAgc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZW1vdGVWaWRlb0ZyYW1lUmVh
ZFJlZmVyZW5jZSwgTWFjaFNlbmRSaWdodD4gYnVmZmVyOworICAgIHN0ZDo6dmFyaWFudDxzdGQ6
Om51bGxwdHJfdCwgUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UsIE1hY2hTZW5kUmlnaHQs
IFdlYkNvcmU6OkludFNpemU+IGJ1ZmZlcjsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1lPiBkZWNvZGUoRGVjb2RlciYp
OwpAQCAtODcsNyArODgsNyBAQCBjbGFzcyBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIFVzZUlPU3Vy
ZmFjZUJ1ZmZlclBvb2wgeyBObywgWWVzIH07Ci0gICAgZXhwbGljaXQgU2hhcmVkVmlkZW9GcmFt
ZVJlYWRlcihSZWZQdHI8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA+JiYsIFVzZUlPU3VyZmFj
ZUJ1ZmZlclBvb2wgPSBVc2VJT1N1cmZhY2VCdWZmZXJQb29sOjpZZXMpOworICAgIGV4cGxpY2l0
IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXIoUmVmUHRyPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
PiYmLCBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkmID0geyB9LCBVc2VJT1N1cmZhY2VC
dWZmZXJQb29sID0gVXNlSU9TdXJmYWNlQnVmZmVyUG9vbDo6WWVzKTsKICAgICBTaGFyZWRWaWRl
b0ZyYW1lUmVhZGVyKCk7CiAKICAgICB2b2lkIHNldFNlbWFwaG9yZShJUEM6OlNlbWFwaG9yZSYm
IHNlbWFwaG9yZSkgeyBtX3NlbWFwaG9yZSA9IFdURk1vdmUoc2VtYXBob3JlKTsgfQpAQCAtMTAw
LDcgKzEwMSw4IEBAIHByaXZhdGU6CiAgICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcGl4ZWxCdWZm
ZXJQb29sKGNvbnN0IFdlYkNvcmU6OlNoYXJlZFZpZGVvRnJhbWVJbmZvJik7CiAKICAgICBSZWZQ
dHI8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKLSAgICBVc2VJT1N1
cmZhY2VCdWZmZXJQb29sIG1fdXNlSU9TdXJmYWNlQnVmZmVyUG9vbCB7IFVzZUlPU3VyZmFjZUJ1
ZmZlclBvb2w6OlllcyB9OworICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSBtX3Jlc291cmNl
T3duZXI7CisgICAgVXNlSU9TdXJmYWNlQnVmZmVyUG9vbCBtX3VzZUlPU3VyZmFjZUJ1ZmZlclBv
b2wgeyBVc2VJT1N1cmZhY2VCdWZmZXJQb29sOjpObyB9OwogICAgIElQQzo6U2VtYXBob3JlIG1f
c2VtYXBob3JlOwogICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fc3RvcmFnZTsKIApAQCAtMTA4
LDYgKzExMCw4IEBAIHByaXZhdGU6CiAgICAgT1NUeXBlIG1fYnVmZmVyUG9vbFR5cGUgeyAwIH07
CiAgICAgdWludDMyX3QgbV9idWZmZXJQb29sV2lkdGggeyAwIH07CiAgICAgdWludDMyX3QgbV9i
dWZmZXJQb29sSGVpZ2h0IHsgMCB9OworICAgIFdlYkNvcmU6OkludFNpemUgbV9ibGFja0ZyYW1l
U2l6ZTsKKyAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9ibGFja0ZyYW1lOwogfTsK
IAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBTaGFyZWRWaWRlb0ZyYW1lOjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
</data>

          </attachment>
      

    </bug>

</bugzilla>