<?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>231664</bug_id>
          
          <creation_ts>2021-10-13 02:00:52 -0700</creation_ts>
          <short_desc>Guarantee order of WebSocket events in case of being resumed</short_desc>
          <delta_ts>2021-10-19 11:42:18 -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>WebCore Misc.</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>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>kangil.han</cc>
    
    <cc>pangle</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1803678</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-13 02:00:52 -0700</bug_when>
    <thetext>Guarantee order of WebSocket events in case of being resumed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803687</commentid>
    <comment_count>1</comment_count>
      <attachid>441050</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-13 02:30:46 -0700</bug_when>
    <thetext>Created attachment 441050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803794</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-13 09:06:04 -0700</bug_when>
    <thetext>What motivated this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803798</commentid>
    <comment_count>3</comment_count>
      <attachid>441050</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 09:17:23 -0700</bug_when>
    <thetext>Comment on attachment 441050
Patch

Odds are that we should update WebSocket to dispatch events asynchronously and use the HTML event loop. Then we wouldn&apos;t need such to worry about suspending / resuming (since the HTML event loop properly suspends when in bfcache).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803814</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-13 09:49:25 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; Comment on attachment 441050 [details]
&gt; Patch
&gt; 
&gt; Odds are that we should update WebSocket to dispatch events asynchronously
&gt; and use the HTML event loop. Then we wouldn&apos;t need such to worry about
&gt; suspending / resuming (since the HTML event loop properly suspends when in
&gt; bfcache).

Good point, I&apos;ll do that instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804221</commentid>
    <comment_count>5</comment_count>
      <attachid>441203</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-14 04:51:56 -0700</bug_when>
    <thetext>Created attachment 441203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804224</commentid>
    <comment_count>6</comment_count>
      <attachid>441205</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-14 05:13:31 -0700</bug_when>
    <thetext>Created attachment 441205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804708</commentid>
    <comment_count>7</comment_count>
      <attachid>441336</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-14 23:09:12 -0700</bug_when>
    <thetext>Created attachment 441336
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805539</commentid>
    <comment_count>8</comment_count>
      <attachid>441590</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-18 05:21:33 -0700</bug_when>
    <thetext>Created attachment 441590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805561</commentid>
    <comment_count>9</comment_count>
      <attachid>441597</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-18 06:57:39 -0700</bug_when>
    <thetext>Created attachment 441597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805921</commentid>
    <comment_count>10</comment_count>
      <attachid>441702</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-19 02:00:37 -0700</bug_when>
    <thetext>Created attachment 441702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805988</commentid>
    <comment_count>11</comment_count>
      <attachid>441702</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-19 07:38:21 -0700</bug_when>
    <thetext>Comment on attachment 441702
Patch

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

Nice, r=me with fixes.

&gt; Source/WebCore/Modules/websockets/WebSocket.cpp:554
&gt; +        ASSERT(scriptExecutionContext());

Please do an early return, there is no such guarantee with the event loop as the event loop is shared with other contexts of the same origin.

&gt; Source/WebCore/Modules/websockets/WebSocket.cpp:568
&gt; +        ASSERT(scriptExecutionContext());

ditto.

&gt; Source/WebCore/Modules/websockets/WebSocket.cpp:598
&gt; +        ASSERT(scriptExecutionContext());

ditto.

&gt; Source/WebCore/Modules/websockets/WebSocket.cpp:632
&gt; +        ASSERT(scriptExecutionContext());

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806045</commentid>
    <comment_count>12</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-19 09:13:34 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #11)
&gt; Comment on attachment 441702 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441702&amp;action=review
&gt; 
&gt; Nice, r=me with fixes.
&gt; 
&gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:554
&gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; 
&gt; Please do an early return, there is no such guarantee with the event loop as
&gt; the event loop is shared with other contexts of the same origin.
&gt; 
&gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:568
&gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:598
&gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:632
&gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; 
&gt; ditto.

I think all these ASSERTs are correct since we either do early return on m_state being closed or m_channel being null and WebSocket::stop does set m_state to closed and m_channel to nullptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806047</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-19 09:14:42 -0700</bug_when>
    <thetext>I guess I can remove these ASSERTs since we are not doing them consistently now after enqueuing a task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806062</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-19 09:28:31 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #12)
&gt; (In reply to Chris Dumez from comment #11)
&gt; &gt; Comment on attachment 441702 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=441702&amp;action=review
&gt; &gt; 
&gt; &gt; Nice, r=me with fixes.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:554
&gt; &gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; &gt; 
&gt; &gt; Please do an early return, there is no such guarantee with the event loop as
&gt; &gt; the event loop is shared with other contexts of the same origin.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:568
&gt; &gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; &gt; 
&gt; &gt; ditto.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:598
&gt; &gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; &gt; 
&gt; &gt; ditto.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:632
&gt; &gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; &gt; 
&gt; &gt; ditto.
&gt; 
&gt; I think all these ASSERTs are correct since we either do early return on
&gt; m_state being closed or m_channel being null and WebSocket::stop does set
&gt; m_state to closed and m_channel to nullptr.

Maybe I misread your code. I just wanted to point out that tasks posted on the HTML event loop can fire after the script execution is gone (and thus after stop() has been called).
So in general, asserting that the script execution context exists in a task posted on the HTML event loop is incorrect. It may be correct here in your code due to some other logic but in general it isn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806071</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-19 09:34:31 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #14)
&gt; (In reply to youenn fablet from comment #12)
&gt; &gt; (In reply to Chris Dumez from comment #11)
&gt; &gt; &gt; Comment on attachment 441702 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=441702&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; Nice, r=me with fixes.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:554
&gt; &gt; &gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; &gt; &gt; 
&gt; &gt; &gt; Please do an early return, there is no such guarantee with the event loop as
&gt; &gt; &gt; the event loop is shared with other contexts of the same origin.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:568
&gt; &gt; &gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; &gt; &gt; 
&gt; &gt; &gt; ditto.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:598
&gt; &gt; &gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; &gt; &gt; 
&gt; &gt; &gt; ditto.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:632
&gt; &gt; &gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; &gt; &gt; 
&gt; &gt; &gt; ditto.
&gt; &gt; 
&gt; &gt; I think all these ASSERTs are correct since we either do early return on
&gt; &gt; m_state being closed or m_channel being null and WebSocket::stop does set
&gt; &gt; m_state to closed and m_channel to nullptr.
&gt; 
&gt; Maybe I misread your code. I just wanted to point out that tasks posted on
&gt; the HTML event loop can fire after the script execution is gone (and thus
&gt; after stop() has been called).
&gt; So in general, asserting that the script execution context exists in a task
&gt; posted on the HTML event loop is incorrect. It may be correct here in your
&gt; code due to some other logic but in general it isn&apos;t.

OK, let&apos;s keep the code like this then.
I wonder whether we should add an option in queueTaskKeepingObjectAlive to actually not call the callback if the ActiveDOMObject is stopped, it seems that is the behavior most call sites will want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806074</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-19 09:36:19 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #15)
&gt; (In reply to Chris Dumez from comment #14)
&gt; &gt; (In reply to youenn fablet from comment #12)
&gt; &gt; &gt; (In reply to Chris Dumez from comment #11)
&gt; &gt; &gt; &gt; Comment on attachment 441702 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=441702&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Nice, r=me with fixes.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:554
&gt; &gt; &gt; &gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Please do an early return, there is no such guarantee with the event loop as
&gt; &gt; &gt; &gt; the event loop is shared with other contexts of the same origin.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:568
&gt; &gt; &gt; &gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; ditto.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:598
&gt; &gt; &gt; &gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; ditto.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebCore/Modules/websockets/WebSocket.cpp:632
&gt; &gt; &gt; &gt; &gt; +        ASSERT(scriptExecutionContext());
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; ditto.
&gt; &gt; &gt; 
&gt; &gt; &gt; I think all these ASSERTs are correct since we either do early return on
&gt; &gt; &gt; m_state being closed or m_channel being null and WebSocket::stop does set
&gt; &gt; &gt; m_state to closed and m_channel to nullptr.
&gt; &gt; 
&gt; &gt; Maybe I misread your code. I just wanted to point out that tasks posted on
&gt; &gt; the HTML event loop can fire after the script execution is gone (and thus
&gt; &gt; after stop() has been called).
&gt; &gt; So in general, asserting that the script execution context exists in a task
&gt; &gt; posted on the HTML event loop is incorrect. It may be correct here in your
&gt; &gt; code due to some other logic but in general it isn&apos;t.
&gt; 
&gt; OK, let&apos;s keep the code like this then.
&gt; I wonder whether we should add an option in queueTaskKeepingObjectAlive to
&gt; actually not call the callback if the ActiveDOMObject is stopped, it seems
&gt; that is the behavior most call sites will want.

We used to make this assumption and it was wrong. It is not uncommon that frames script each other and APIs usually still work in detached iframes if the caller is still in a valid script execution context. This is the reason why we made this change (and it helped pass more WPT tests).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806197</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-19 11:41:21 -0700</bug_when>
    <thetext>Committed r284472 (243231@main): &lt;https://commits.webkit.org/243231@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441702.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806199</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-19 11:42:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/84425230&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441050</attachid>
            <date>2021-10-13 02:30:46 -0700</date>
            <delta_ts>2021-10-14 04:51:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231664-20211013113044.patch</filename>
            <type>text/plain</type>
            <size>3110</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY1ZWY3NTAzMWYxMmY0
YThlNDc1MTQ2Y2QzYmYxZjczZGY0ODMxNS4uYjMyMTU0ODE0ZDllODNiMmYwM2I2NDg3N2MyYjUz
MDhlNWUxYmQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTEwLTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBHdWFyYW50ZWUgb3JkZXIg
b2YgV2ViU29ja2V0IGV2ZW50cyBpbiBjYXNlIG9mIGJlaW5nIHJlc3VtZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTY2NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGNhc2Ugb2YgcmVzdW1lLCB0
aGUgb3JkZXIgb2YgZXZlbnQgaXMgbm90IGd1YXJhbnRlZWQuCisgICAgICAgIExldCdzIHNheSBh
IHNvY2tldCBpcyBzdXNwZW5kZWQgYW5kIG9uZSBldmVudCBBIGlzIGVucXVldWVkIHdoaWxlIHN1
c3BlbmRlZC4KKyAgICAgICAgTGV0J3Mgc2F5IHRoZSBzb2NrZXQgaXMgbm93IHJlc3VtZWQuCisg
ICAgICAgIEl0cyBjaGFubmVsIHdpbGwgZ2V0IHJlc3VtZWQgYW5kIGNhbiBwb3RlbnRpYWxseSBz
ZXQgYSB0aW1lciB0byBlbnF1ZXVlIGFuIGV2ZW50IEIuCisgICAgICAgIFRoZSBzb2NrZXQgaXMg
dGhlbiBhbGxvd2luZyBldmVudHMgdG8gYmUgZmlyZWQgcmlnaHQgYXdheSBhbmQgaXMgc2V0dGlu
ZyBhIHRpbWVyIHRvIGZpcmUgdGhlIHBlbmRpbmcgZXZlbnRzLgorICAgICAgICBJbiB0aGF0IGNh
c2UsIEIgd2lsbCBiZSBmaXJlZCBiZWZvcmUgQS4KKyAgICAgICAgVG8gZml4IHRoaXMsIHdlIGtl
ZXAgZW5xdWV1aW5nIGV2ZW50cyB1bnRpbCB0aGUgdGltZXIgdG8gZmlyZSBwZW5kaW5nIGV2ZW50
cyBhY3R1YWxseSBmaXJlcy4KKworICAgICAgICBJdCBpcyBkaWZmaWN1bHQgdG8gcmVwcm9kdWNl
IHRoZSBpc3N1ZSBhcyBvbmUgbmVlZHMgdG8gc2NoZWR1bGUgYW4gZXZlbnQgYmV0d2VlbiByZXN1
bWUgYW5kIHJlc3VtZSB0aW1lciBmaXJpbmcgY2FsbGJhY2suCisKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6
cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6cmVzdW1lVGltZXJGaXJlZCk6
CisKIDIwMjEtMTAtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBXZWJSVEMgbWVkaWEgY2FwYWJpbGl0aWVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IDY5NDAxYTMy
ODA4MTM0N2FlNmNhMjNkYTYyMGI4OGI4NzhkZjE0ZWUuLjE0NjI4NDJhMjFhZTg5Y2YyY2Y4NTFk
ZmRhZmYxM2NkZGI2ODQyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwCkBAIC01MjcsMTUgKzUyNywyMCBAQCB2b2lkIFdlYlNvY2tldDo6
c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKIAogdm9pZCBXZWJTb2NrZXQ6OnJl
c3VtZSgpCiB7CisgICAgQVNTRVJUKG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZyk7CiAgICAgaWYg
KG1fY2hhbm5lbCkKICAgICAgICAgbV9jaGFubmVsLT5yZXN1bWUoKTsKIAotICAgIGlmICghbV9w
ZW5kaW5nRXZlbnRzLmlzRW1wdHkoKSAmJiAhbV9yZXN1bWVUaW1lci5pc0FjdGl2ZSgpKSB7Ci0g
ICAgICAgIC8vIEZpcmUgdGhlIHBlbmRpbmcgZXZlbnRzIGluIGEgdGltZXIgYXMgd2UgYXJlIG5v
dCBhbGxvd2VkIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IEpTIGZyb20gcmVzdW1lKCkuCi0gICAgICAg
IG1fcmVzdW1lVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CisgICAgaWYgKG1fcmVzdW1lVGltZXIu
aXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcGVuZGluZ0V2ZW50cy5p
c0VtcHR5KCkpIHsKKyAgICAgICAgbV9zaG91bGREZWxheUV2ZW50RmlyaW5nID0gZmFsc2U7Cisg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3Nob3VsZERlbGF5RXZlbnRGaXJpbmcgPSBm
YWxzZTsKKyAgICAvLyBGaXJlIHRoZSBwZW5kaW5nIGV2ZW50cyBpbiBhIHRpbWVyIGFzIHdlIGFy
ZSBub3QgYWxsb3dlZCB0byBleGVjdXRlIGFyYml0cmFyeSBKUyBmcm9tIHJlc3VtZSgpLgorICAg
IG1fcmVzdW1lVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CiAKIHZvaWQgV2ViU29ja2V0Ojpy
ZXN1bWVUaW1lckZpcmVkKCkKQEAgLTU0Myw2ICs1NDgsOCBAQCB2b2lkIFdlYlNvY2tldDo6cmVz
dW1lVGltZXJGaXJlZCgpCiAgICAgUmVmPFdlYlNvY2tldD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7
CiAKICAgICBBU1NFUlQoIW1fcGVuZGluZ0V2ZW50cy5pc0VtcHR5KCkpOworICAgIEFTU0VSVCht
X3Nob3VsZERlbGF5RXZlbnRGaXJpbmcpOworICAgIG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZyA9
IGZhbHNlOwogCiAgICAgLy8gQ2hlY2sgbV9zaG91bGREZWxheUV2ZW50RmlyaW5nIHdoZW4gaXRl
cmF0aW5nIGluIGNhc2UgZmlyaW5nIGFuIGV2ZW50IGNhdXNlcwogICAgIC8vIHN1c3BlbmQoKSB0
byBiZSBjYWxsZWQuCkBAIC01NTYsNiArNTYzLDcgQEAgdm9pZCBXZWJTb2NrZXQ6OnN0b3AoKQog
ICAgICAgICBtX2NoYW5uZWwtPmRpc2Nvbm5lY3QoKTsKICAgICBtX2NoYW5uZWwgPSBudWxscHRy
OwogICAgIG1fc3RhdGUgPSBDTE9TRUQ7CisgICAgbV9yZXN1bWVUaW1lci5zdG9wKCk7CiAgICAg
bV9wZW5kaW5nRXZlbnRzLmNsZWFyKCk7CiAgICAgQWN0aXZlRE9NT2JqZWN0OjpzdG9wKCk7CiAg
ICAgbV9wZW5kaW5nQWN0aXZpdHkgPSBudWxscHRyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441203</attachid>
            <date>2021-10-14 04:51:56 -0700</date>
            <delta_ts>2021-10-14 05:15:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231664-20211014135153.patch</filename>
            <type>text/plain</type>
            <size>12494</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY1ZWY3NTAzMWYxMmY0
YThlNDc1MTQ2Y2QzYmYxZjczZGY0ODMxNS4uNzI5YTNhMTc5Mjk0ZTBhY2VhYTY0NGIxNGIzZDc1
NTAyZjIxMTY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTEwLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBHdWFyYW50ZWUgb3JkZXIg
b2YgV2ViU29ja2V0IGV2ZW50cyBpbiBjYXNlIG9mIGJlaW5nIHJlc3VtZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTY2NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIFdlYlNvY2tl
dCB0YXNrIHNvdXJjZSBhcyBwZXIgc3BlYy4KKyAgICAgICAgVGhpcyBhbGlnbnMgd2l0aCBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWItc29ja2V0cy5odG1sIHdoZXJl
IHRoZSB1c2VyIGFnZW50IGlzIGV4cGVjdGVkIHRvIGEgcXVldWUgdGFzaworICAgICAgICB3aGVu
IGNsb3NpbmcgaGFuZHNoYWtlIGlzIHN0YXJ0ZWQgYW5kIHNvIG9uLgorCisgICAgICAgIEJ5IHF1
ZXVpbmcgYW4gZXZlbnQgbG9vcCB0YXNrIHRvIGZpcmUgV2ViU29ja2V0IGV2ZW50cywgd2UgZW5z
dXJlIG9yZGVyaW5nIG9mIGV2ZW50cyBldmVuIGluIGNhc2Ugb2YgcmVzdW1pbmcsIHdoaWxlIHNp
bXBsaWZ5aW5nIHRoZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgVGhpcyBtYWtlcyBpdCB1c2Ug
dGhlIGV2ZW50IGxvb3Agd2hpY2ggaXMgZXh0cmEgbmljZSBpZiB3ZSByZXNvbHZlIHByb21pc2Vz
IGluIGV2ZW50IGxpc3RlbmVycy4KKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4K
KworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViU29ja2V0OjpXZWJTb2NrZXQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29j
a2V0OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6cmVzdW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJT
b2NrZXQ6OmRpc3BhdGNoT3JRdWV1ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dDo6cmVzdW1lVGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5oOgorCiAyMDIxLTEwLTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgV2ViUlRDIG1lZGlhIGNhcGFiaWxp
dGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNw
cAppbmRleCA2OTQwMWEzMjgwODEzNDdhZTZjYTIzZGE2MjBiODhiODc4ZGYxNGVlLi40ZDFlNzlj
MTVlZTkyOTllNmUzNmIyMzQyZDkzNDhkNDQ1MDAxMzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtMTQ1LDcgKzE0NSw2IEBAIFdl
YlNvY2tldDo6V2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAg
OiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX3N1YnByb3RvY29sKGVtcHR5U3Ry
aW5nKCkpCiAgICAgLCBtX2V4dGVuc2lvbnMoZW1wdHlTdHJpbmcoKSkKLSAgICAsIG1fcmVzdW1l
VGltZXIoKnRoaXMsICZXZWJTb2NrZXQ6OnJlc3VtZVRpbWVyRmlyZWQpCiB7CiAgICAgTG9ja2Vy
IGxvY2tlciB7IGFsbEFjdGl2ZVdlYlNvY2tldHNMb2NrKCkgfTsKICAgICBhbGxBY3RpdmVXZWJT
b2NrZXRzKCkuYWRkKHRoaXMpOwpAQCAtMjEwLDE0ICsyMDksMTIgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gV2ViU29ja2V0Ojpjb25uZWN0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHBy
b3RvY29sKQogCiB2b2lkIFdlYlNvY2tldDo6ZmFpbEFzeW5jaHJvbm91c2x5KCkKIHsKLSAgICBt
X3BlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwotCi0gICAgLy8g
V2UgbXVzdCBibG9jayB0aGlzIGNvbm5lY3Rpb24uIEluc3RlYWQgb2YgdGhyb3dpbmcgYW4gZXhj
ZXB0aW9uLCB3ZSBpbmRpY2F0ZSB0aGlzCi0gICAgLy8gdXNpbmcgdGhlIGVycm9yIGV2ZW50LiBC
dXQgc2luY2UgdGhpcyBjb2RlIGV4ZWN1dGVzIGFzIHBhcnQgb2YgdGhlIFdlYlNvY2tldCdzCi0g
ICAgLy8gY29uc3RydWN0b3IsIHdlIGhhdmUgdG8gd2FpdCB1bnRpbCB0aGUgY29uc3RydWN0b3Ig
aGFzIGNvbXBsZXRlZCBiZWZvcmUgZmlyaW5nIHRoZQotICAgIC8vIGV2ZW50OyBvdGhlcndpc2Us
IHVzZXJzIGNhbid0IGNvbm5lY3QgdG8gdGhlIGV2ZW50LgorICAgIHF1ZXVlVGFza0tlZXBpbmdP
YmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpc10geworICAgICAg
ICAvLyBXZSBtdXN0IGJsb2NrIHRoaXMgY29ubmVjdGlvbi4gSW5zdGVhZCBvZiB0aHJvd2luZyBh
biBleGNlcHRpb24sIHdlIGluZGljYXRlIHRoaXMKKyAgICAgICAgLy8gdXNpbmcgdGhlIGVycm9y
IGV2ZW50LiBCdXQgc2luY2UgdGhpcyBjb2RlIGV4ZWN1dGVzIGFzIHBhcnQgb2YgdGhlIFdlYlNv
Y2tldCdzCisgICAgICAgIC8vIGNvbnN0cnVjdG9yLCB3ZSBoYXZlIHRvIHdhaXQgdW50aWwgdGhl
IGNvbnN0cnVjdG9yIGhhcyBjb21wbGV0ZWQgYmVmb3JlIGZpcmluZyB0aGUKKyAgICAgICAgLy8g
ZXZlbnQ7IG90aGVyd2lzZSwgdXNlcnMgY2FuJ3QgY29ubmVjdCB0byB0aGUgZXZlbnQuCiAKLSAg
ICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gUmVmIHsgKnRoaXMgfV0oYXV0byYpIHsKICAgICAgICAgdGhpcy0+ZGlzcGF0Y2hPclF1ZXVl
RXJyb3JFdmVudCgpOwogICAgICAgICB0aGlzLT5zdG9wKCk7CiAgICAgfSk7CkBAIC01MTEsNDMg
KzUwOCwyMiBAQCB2b2lkIFdlYlNvY2tldDo6Y29udGV4dERlc3Ryb3llZCgpCiAKIHZvaWQgV2Vi
U29ja2V0OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogewotICAgIGlmICht
X3Jlc3VtZVRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fcmVzdW1lVGltZXIuc3RvcCgpOwot
Ci0gICAgbV9zaG91bGREZWxheUV2ZW50RmlyaW5nID0gdHJ1ZTsKKyAgICBpZiAoIW1fY2hhbm5l
bCkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fY2hhbm5lbCkgewotICAgICAgICBpZiAo
cmVhc29uID09IFJlYXNvbkZvclN1c3BlbnNpb246OkJhY2tGb3J3YXJkQ2FjaGUpIHsKLSAgICAg
ICAgICAgIC8vIFRoaXMgd2lsbCBjYXVzZSBkaWRDbG9zZSgpIHRvIGJlIGNhbGxlZC4KLSAgICAg
ICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgiV2ViU29ja2V0IGlzIGNsb3NlZCBkdWUgdG8gc3VzcGVu
c2lvbi4iKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2NoYW5uZWwtPnN1c3BlbmQo
KTsKKyAgICBpZiAocmVhc29uID09IFJlYXNvbkZvclN1c3BlbnNpb246OkJhY2tGb3J3YXJkQ2Fj
aGUpIHsKKyAgICAgICAgLy8gVGhpcyB3aWxsIGNhdXNlIGRpZENsb3NlKCkgdG8gYmUgY2FsbGVk
LgorICAgICAgICBtX2NoYW5uZWwtPmZhaWwoIldlYlNvY2tldCBpcyBjbG9zZWQgZHVlIHRvIHN1
c3BlbnNpb24uIik7CisgICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBtX2NoYW5uZWwtPnN1
c3BlbmQoKTsKIH0KIAogdm9pZCBXZWJTb2NrZXQ6OnJlc3VtZSgpCiB7CiAgICAgaWYgKG1fY2hh
bm5lbCkKICAgICAgICAgbV9jaGFubmVsLT5yZXN1bWUoKTsKLQotICAgIGlmICghbV9wZW5kaW5n
RXZlbnRzLmlzRW1wdHkoKSAmJiAhbV9yZXN1bWVUaW1lci5pc0FjdGl2ZSgpKSB7Ci0gICAgICAg
IC8vIEZpcmUgdGhlIHBlbmRpbmcgZXZlbnRzIGluIGEgdGltZXIgYXMgd2UgYXJlIG5vdCBhbGxv
d2VkIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IEpTIGZyb20gcmVzdW1lKCkuCi0gICAgICAgIG1fcmVz
dW1lVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7Ci0gICAgfQotCi0gICAgbV9zaG91bGREZWxheUV2
ZW50RmlyaW5nID0gZmFsc2U7Ci19Ci0KLXZvaWQgV2ViU29ja2V0OjpyZXN1bWVUaW1lckZpcmVk
KCkKLXsKLSAgICBSZWY8V2ViU29ja2V0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLQotICAgIEFT
U0VSVCghbV9wZW5kaW5nRXZlbnRzLmlzRW1wdHkoKSk7Ci0KLSAgICAvLyBDaGVjayBtX3Nob3Vs
ZERlbGF5RXZlbnRGaXJpbmcgd2hlbiBpdGVyYXRpbmcgaW4gY2FzZSBmaXJpbmcgYW4gZXZlbnQg
Y2F1c2VzCi0gICAgLy8gc3VzcGVuZCgpIHRvIGJlIGNhbGxlZC4KLSAgICB3aGlsZSAoIW1fcGVu
ZGluZ0V2ZW50cy5pc0VtcHR5KCkgJiYgIW1fc2hvdWxkRGVsYXlFdmVudEZpcmluZykKLSAgICAg
ICAgZGlzcGF0Y2hFdmVudChtX3BlbmRpbmdFdmVudHMudGFrZUZpcnN0KCkpOwogfQogCiB2b2lk
IFdlYlNvY2tldDo6c3RvcCgpCkBAIC01NTYsNyArNTMyLDYgQEAgdm9pZCBXZWJTb2NrZXQ6OnN0
b3AoKQogICAgICAgICBtX2NoYW5uZWwtPmRpc2Nvbm5lY3QoKTsKICAgICBtX2NoYW5uZWwgPSBu
dWxscHRyOwogICAgIG1fc3RhdGUgPSBDTE9TRUQ7Ci0gICAgbV9wZW5kaW5nRXZlbnRzLmNsZWFy
KCk7CiAgICAgQWN0aXZlRE9NT2JqZWN0OjpzdG9wKCk7CiAgICAgbV9wZW5kaW5nQWN0aXZpdHkg
PSBudWxscHRyOwogfQpAQCAtNTY5LDQ2ICs1NDQsNTcgQEAgY29uc3QgY2hhciogV2ViU29ja2V0
OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIHZvaWQgV2ViU29ja2V0OjpkaWRDb25uZWN0
KCkKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRDb25uZWN0KCkiLCB0aGlz
KTsKLSAgICBpZiAobV9zdGF0ZSAhPSBDT05ORUNUSU5HKSB7Ci0gICAgICAgIGRpZENsb3NlKDAs
IENsb3NpbmdIYW5kc2hha2VJbmNvbXBsZXRlLCBXZWJTb2NrZXRDaGFubmVsOjpDbG9zZUV2ZW50
Q29kZUFibm9ybWFsQ2xvc3VyZSwgZW1wdHlTdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgbV9zdGF0ZSA9
IE9QRU47Ci0gICAgbV9zdWJwcm90b2NvbCA9IG1fY2hhbm5lbC0+c3VicHJvdG9jb2woKTsKLSAg
ICBtX2V4dGVuc2lvbnMgPSBtX2NoYW5uZWwtPmV4dGVuc2lvbnMoKTsKLSAgICBkaXNwYXRjaE9y
UXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5vcGVuRXZlbnQsIEV2ZW50OjpD
YW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworICAgIHF1ZXVlVGFza0tl
ZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpc10gewor
ICAgICAgICBpZiAobV9zdGF0ZSAhPSBDT05ORUNUSU5HKSB7CisgICAgICAgICAgICBkaWRDbG9z
ZSgwLCBDbG9zaW5nSGFuZHNoYWtlSW5jb21wbGV0ZSwgV2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VF
dmVudENvZGVBYm5vcm1hbENsb3N1cmUsIGVtcHR5U3RyaW5nKCkpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OworICAgICAgICBtX3N0YXRlID0gT1BFTjsKKyAgICAgICAgbV9zdWJwcm90b2NvbCA9IG1fY2hh
bm5lbC0+c3VicHJvdG9jb2woKTsKKyAgICAgICAgbV9leHRlbnNpb25zID0gbV9jaGFubmVsLT5l
eHRlbnNpb25zKCk7CisgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkub3BlbkV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKKyAgICB9KTsKIH0KIAogdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdl
KGNvbnN0IFN0cmluZyYgbXNnKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRp
ZFJlY2VpdmVNZXNzYWdlKCkgVGV4dCBtZXNzYWdlICclcyciLCB0aGlzLCBtc2cudXRmOCgpLmRh
dGEoKSk7Ci0gICAgaWYgKG1fc3RhdGUgIT0gT1BFTikKLSAgICAgICAgcmV0dXJuOwotICAgIEFT
U0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGRpc3BhdGNoT3JRdWV1ZUV2ZW50
KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKG1zZywgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCkt
PnRvU3RyaW5nKCkpKTsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRh
c2tTb3VyY2U6OldlYlNvY2tldCwgW3RoaXMsIG1zZ10geworICAgICAgICBpZiAobV9zdGF0ZSAh
PSBPUEVOKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0
ZShtc2csIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91cmwpLT50b1N0cmluZygpKSk7CisgICAg
fSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlQmluYXJ5RGF0YShWZWN0b3I8dWlu
dDhfdD4mJiBiaW5hcnlEYXRhKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRp
ZFJlY2VpdmVCaW5hcnlEYXRhKCkgJXUgYnl0ZSBiaW5hcnkgbWVzc2FnZSIsIHRoaXMsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihiaW5hcnlEYXRhLnNpemUoKSkpOwotICAgIHN3aXRjaCAobV9iaW5h
cnlUeXBlKSB7Ci0gICAgY2FzZSBCaW5hcnlUeXBlOjpCbG9iOgotICAgICAgICAvLyBGSVhNRTog
V2UganVzdCByZWNlaXZlZCB0aGUgZGF0YSBmcm9tIE5ldHdvcmtQcm9jZXNzLCBhbmQgYXJlIHNl
bmRpbmcgaXQgYmFjay4gVGhpcyBpcyBpbmVmZmljaWVudC4KLSAgICAgICAgZGlzcGF0Y2hPclF1
ZXVlRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoQmxvYjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgV1RGTW92ZShiaW5hcnlEYXRhKSwgZW1wdHlTdHJpbmcoKSksIFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUobV91cmwpLT50b1N0cmluZygpKSk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQmluYXJ5VHlwZTo6QXJyYXlCdWZmZXI6Ci0gICAgICAgIGRpc3BhdGNoT3JRdWV1ZUV2
ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKEFycmF5QnVmZmVyOjpjcmVhdGUoYmluYXJ5RGF0YS5k
YXRhKCksIGJpbmFyeURhdGEuc2l6ZSgpKSwgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCkt
PnRvU3RyaW5nKCkpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIHF1ZXVlVGFza0tlZXBp
bmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpcywgYmluYXJ5
RGF0YSA9IFdURk1vdmUoYmluYXJ5RGF0YSldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChtX3N0
YXRlICE9IE9QRU4pCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHN3aXRjaCAobV9iaW5h
cnlUeXBlKSB7CisgICAgICAgIGNhc2UgQmluYXJ5VHlwZTo6QmxvYjoKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBXZSBqdXN0IHJlY2VpdmVkIHRoZSBkYXRhIGZyb20gTmV0d29ya1Byb2Nlc3MsIGFu
ZCBhcmUgc2VuZGluZyBpdCBiYWNrLiBUaGlzIGlzIGluZWZmaWNpZW50LgorICAgICAgICAgICAg
ZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShCbG9iOjpjcmVhdGUoc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCBXVEZNb3ZlKGJpbmFyeURhdGEpLCBlbXB0eVN0cmluZygpKSwgU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEJpbmFyeVR5cGU6OkFycmF5QnVmZmVyOgorICAgICAgICAgICAg
ZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShBcnJheUJ1ZmZlcjo6Y3JlYXRlKGJp
bmFyeURhdGEuZGF0YSgpLCBiaW5hcnlEYXRhLnNpemUoKSksIFNlY3VyaXR5T3JpZ2luOjpjcmVh
dGUobV91cmwpLT50b1N0cmluZygpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgIH0pOwogfQogCiB2b2lkIFdlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpCiB7
CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkUmVjZWl2ZUVycm9yTWVzc2FnZSgp
IiwgdGhpcyk7Ci0gICAgbV9zdGF0ZSA9IENMT1NFRDsKLSAgICBBU1NFUlQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKLSAgICBkaXNwYXRjaE9yUXVldWVFcnJvckV2ZW50KCk7CisgICAgcXVl
dWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0
aGlzXSB7CisgICAgICAgIG1fc3RhdGUgPSBDTE9TRUQ7CisgICAgICAgIEFTU0VSVChzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpOworICAgICAgICAvLyBGSVhNRTogQXMgcGVyIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYi1zb2NrZXRzLmh0bWwjZmVlZGJhY2stZnJv
bS10aGUtcHJvdG9jb2w6Y29uY2VwdC13ZWJzb2NrZXQtY2xvc2VkLCB3ZSBzaG91bGQgc3luY2hy
b25vdXNseSBmaXJlIGEgY2xvc2UgZXZlbnQuCisgICAgICAgIGRpc3BhdGNoT3JRdWV1ZUVycm9y
RXZlbnQoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBXZWJTb2NrZXQ6OmRpZFVwZGF0ZUJ1ZmZlcmVk
QW1vdW50KHVuc2lnbmVkIGJ1ZmZlcmVkQW1vdW50KQpAQCAtNjIyLDI2ICs2MDgsMzAgQEAgdm9p
ZCBXZWJTb2NrZXQ6OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGJ1ZmZlcmVkQW1v
dW50KQogdm9pZCBXZWJTb2NrZXQ6OmRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpCiB7CiAgICAg
TE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkiLCB0
aGlzKTsKLSAgICBtX3N0YXRlID0gQ0xPU0lORzsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0
QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OldlYlNvY2tldCwgW3RoaXNdIHsKKyAgICAgICAgbV9z
dGF0ZSA9IENMT1NJTkc7CisgICAgfSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0OjpkaWRDbG9zZSh1
bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCwgQ2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRp
b25TdGF0dXMgY2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRpb24sIHVuc2lnbmVkIHNob3J0IGNvZGUs
IGNvbnN0IFN0cmluZyYgcmVhc29uKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVw
IGRpZENsb3NlKCkiLCB0aGlzKTsKLSAgICBpZiAoIW1fY2hhbm5lbCkKLSAgICAgICAgcmV0dXJu
OwotICAgIGJvb2wgd2FzQ2xlYW4gPSBtX3N0YXRlID09IENMT1NJTkcgJiYgIXVuaGFuZGxlZEJ1
ZmZlcmVkQW1vdW50ICYmIGNsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uID09IENsb3NpbmdIYW5k
c2hha2VDb21wbGV0ZSAmJiBjb2RlICE9IFdlYlNvY2tldENoYW5uZWw6OkNsb3NlRXZlbnRDb2Rl
QWJub3JtYWxDbG9zdXJlOwotICAgIG1fc3RhdGUgPSBDTE9TRUQ7Ci0gICAgbV9idWZmZXJlZEFt
b3VudCA9IHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50OwotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFz
a1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpcywgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQsIGNsb3Np
bmdIYW5kc2hha2VDb21wbGV0aW9uLCBjb2RlLCByZWFzb25dIHsKKyAgICAgICAgaWYgKCFtX2No
YW5uZWwpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGJvb2wgd2FzQ2xlYW4gPSBtX3N0
YXRlID09IENMT1NJTkcgJiYgIXVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50ICYmIGNsb3NpbmdIYW5k
c2hha2VDb21wbGV0aW9uID09IENsb3NpbmdIYW5kc2hha2VDb21wbGV0ZSAmJiBjb2RlICE9IFdl
YlNvY2tldENoYW5uZWw6OkNsb3NlRXZlbnRDb2RlQWJub3JtYWxDbG9zdXJlOworICAgICAgICBt
X3N0YXRlID0gQ0xPU0VEOworICAgICAgICBtX2J1ZmZlcmVkQW1vdW50ID0gdW5oYW5kbGVkQnVm
ZmVyZWRBbW91bnQ7CisgICAgICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwog
Ci0gICAgZGlzcGF0Y2hPclF1ZXVlRXZlbnQoQ2xvc2VFdmVudDo6Y3JlYXRlKHdhc0NsZWFuLCBj
b2RlLCByZWFzb24pKTsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChDbG9zZUV2ZW50OjpjcmVhdGUo
d2FzQ2xlYW4sIGNvZGUsIHJlYXNvbikpOwogCi0gICAgaWYgKG1fY2hhbm5lbCkgewotICAgICAg
ICBtX2NoYW5uZWwtPmRpc2Nvbm5lY3QoKTsKLSAgICAgICAgbV9jaGFubmVsID0gbnVsbHB0cjsK
LSAgICB9Ci0gICAgbV9wZW5kaW5nQWN0aXZpdHkgPSBudWxscHRyOworICAgICAgICBpZiAobV9j
aGFubmVsKSB7CisgICAgICAgICAgICBtX2NoYW5uZWwtPmRpc2Nvbm5lY3QoKTsKKyAgICAgICAg
ICAgIG1fY2hhbm5lbCA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICAgICAgbV9wZW5kaW5nQWN0
aXZpdHkgPSBudWxscHRyOworICAgIH0pOwogfQogCiB2b2lkIFdlYlNvY2tldDo6ZGlkVXBncmFk
ZVVSTCgpCkBAIC02NzAsMTUgKzY2MCw3IEBAIHZvaWQgV2ViU29ja2V0OjpkaXNwYXRjaE9yUXVl
dWVFcnJvckV2ZW50KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9kaXNwYXRjaGVkRXJyb3JF
dmVudCA9IHRydWU7Ci0gICAgZGlzcGF0Y2hPclF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6Ok5vKSk7Ci19Ci0KLXZvaWQgV2ViU29ja2V0OjpkaXNwYXRjaE9yUXVldWVFdmVudChS
ZWY8RXZlbnQ+JiYgZXZlbnQpCi17Ci0gICAgaWYgKG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZykK
LSAgICAgICAgbV9wZW5kaW5nRXZlbnRzLmFwcGVuZChXVEZNb3ZlKGV2ZW50KSk7Ci0gICAgZWxz
ZQotICAgICAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBF
dmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKaW5kZXggYTJm
ZTVkZDlhZGM0ZTI5NjNmYTY2MTJhNzFjNGJlYTc1MmMyYjc0ZS4uOWQxOWJiOTFmNzE2MzYzNzE5
YWFiZGE3ZDNiMzczYjhjYjE2YjYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuaApAQCAtMzMsMTAgKzMzLDggQEAKICNpbmNsdWRlICJBY3RpdmVE
T01PYmplY3QuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlv
bk9yLmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVk
ZSAiV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oIgotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KIApAQCAtMTAxLDkg
Kzk5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJTb2NrZXQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpOwogCi0gICAgdm9pZCByZXN1bWVUaW1lckZpcmVkKCk7CiAgICAg
dm9pZCBkaXNwYXRjaE9yUXVldWVFcnJvckV2ZW50KCk7Ci0gICAgdm9pZCBkaXNwYXRjaE9yUXVl
dWVFdmVudChSZWY8RXZlbnQ+JiYpOwogCiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmlu
YWw7CiAgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIGZpbmFsOwpAQCAtMTQy
LDkgKzEzOCw2IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fc3VicHJvdG9jb2w7CiAgICAgU3Ry
aW5nIG1fZXh0ZW5zaW9uczsKIAotICAgIFRpbWVyIG1fcmVzdW1lVGltZXI7Ci0gICAgYm9vbCBt
X3Nob3VsZERlbGF5RXZlbnRGaXJpbmcgeyBmYWxzZSB9OwotICAgIERlcXVlPFJlZjxFdmVudD4+
IG1fcGVuZGluZ0V2ZW50czsKICAgICBib29sIG1fZGlzcGF0Y2hlZEVycm9yRXZlbnQgeyBmYWxz
ZSB9OwogICAgIFJlZlB0cjxQZW5kaW5nQWN0aXZpdHk8V2ViU29ja2V0Pj4gbV9wZW5kaW5nQWN0
aXZpdHk7CiB9Owo=
</data>
<flag name="commit-queue"
          id="465384"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441205</attachid>
            <date>2021-10-14 05:13:31 -0700</date>
            <delta_ts>2021-10-14 23:09:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231664-20211014141328.patch</filename>
            <type>text/plain</type>
            <size>12972</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY1ZWY3NTAzMWYxMmY0
YThlNDc1MTQ2Y2QzYmYxZjczZGY0ODMxNS4uMzMzMzAxMzA1NWJmNzIwNzk2YWIzNWZjODEwZDE3
NDg0MzgyN2ViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTEwLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBHdWFyYW50ZWUgb3JkZXIg
b2YgV2ViU29ja2V0IGV2ZW50cyBpbiBjYXNlIG9mIGJlaW5nIHJlc3VtZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTY2NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIFdlYlNvY2tl
dCB0YXNrIHNvdXJjZSBhcyBwZXIgc3BlYy4KKyAgICAgICAgVGhpcyBhbGlnbnMgd2l0aCBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWItc29ja2V0cy5odG1sIHdoZXJl
IHRoZSB1c2VyIGFnZW50IGlzIGV4cGVjdGVkIHRvIGEgcXVldWUgdGFzaworICAgICAgICB3aGVu
IGNsb3NpbmcgaGFuZHNoYWtlIGlzIHN0YXJ0ZWQgYW5kIHNvIG9uLgorCisgICAgICAgIEJ5IHF1
ZXVpbmcgYW4gZXZlbnQgbG9vcCB0YXNrIHRvIGZpcmUgV2ViU29ja2V0IGV2ZW50cywgd2UgZW5z
dXJlIG9yZGVyaW5nIG9mIGV2ZW50cyBldmVuIGluIGNhc2Ugb2YgcmVzdW1pbmcsIHdoaWxlIHNp
bXBsaWZ5aW5nIHRoZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgVGhpcyBtYWtlcyBpdCB1c2Ug
dGhlIGV2ZW50IGxvb3Agd2hpY2ggaXMgZXh0cmEgbmljZSBpZiB3ZSByZXNvbHZlIHByb21pc2Vz
IGluIGV2ZW50IGxpc3RlbmVycy4KKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4K
KworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViU29ja2V0OjpXZWJTb2NrZXQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29j
a2V0OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6cmVzdW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJT
b2NrZXQ6OmRpc3BhdGNoT3JRdWV1ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dDo6cmVzdW1lVGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5oOgorICAgICAgICAqIGRvbS9UYXNrU291cmNlLmg6CisKIDIwMjEtMTAt
MTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBXZWJSVEMgbWVkaWEgY2FwYWJpbGl0aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IDY5NDAxYTMyODA4MTM0N2FlNmNh
MjNkYTYyMGI4OGI4NzhkZjE0ZWUuLjRkMWU3OWMxNWVlOTI5OWU2ZTM2YjIzNDJkOTM0OGQ0NDUw
MDEzMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuY3BwCkBAIC0xNDUsNyArMTQ1LDYgQEAgV2ViU29ja2V0OjpXZWJTb2NrZXQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkK
ICAgICAsIG1fc3VicHJvdG9jb2woZW1wdHlTdHJpbmcoKSkKICAgICAsIG1fZXh0ZW5zaW9ucyhl
bXB0eVN0cmluZygpKQotICAgICwgbV9yZXN1bWVUaW1lcigqdGhpcywgJldlYlNvY2tldDo6cmVz
dW1lVGltZXJGaXJlZCkKIHsKICAgICBMb2NrZXIgbG9ja2VyIHsgYWxsQWN0aXZlV2ViU29ja2V0
c0xvY2soKSB9OwogICAgIGFsbEFjdGl2ZVdlYlNvY2tldHMoKS5hZGQodGhpcyk7CkBAIC0yMTAs
MTQgKzIwOSwxMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJTb2NrZXQ6OmNvbm5lY3QoY29uc3Qg
U3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCiAKIHZvaWQgV2ViU29ja2V0Ojpm
YWlsQXN5bmNocm9ub3VzbHkoKQogewotICAgIG1fcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRp
bmdBY3Rpdml0eSgqdGhpcyk7Ci0KLSAgICAvLyBXZSBtdXN0IGJsb2NrIHRoaXMgY29ubmVjdGlv
bi4gSW5zdGVhZCBvZiB0aHJvd2luZyBhbiBleGNlcHRpb24sIHdlIGluZGljYXRlIHRoaXMKLSAg
ICAvLyB1c2luZyB0aGUgZXJyb3IgZXZlbnQuIEJ1dCBzaW5jZSB0aGlzIGNvZGUgZXhlY3V0ZXMg
YXMgcGFydCBvZiB0aGUgV2ViU29ja2V0J3MKLSAgICAvLyBjb25zdHJ1Y3Rvciwgd2UgaGF2ZSB0
byB3YWl0IHVudGlsIHRoZSBjb25zdHJ1Y3RvciBoYXMgY29tcGxldGVkIGJlZm9yZSBmaXJpbmcg
dGhlCi0gICAgLy8gZXZlbnQ7IG90aGVyd2lzZSwgdXNlcnMgY2FuJ3QgY29ubmVjdCB0byB0aGUg
ZXZlbnQuCisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNl
OjpXZWJTb2NrZXQsIFt0aGlzXSB7CisgICAgICAgIC8vIFdlIG11c3QgYmxvY2sgdGhpcyBjb25u
ZWN0aW9uLiBJbnN0ZWFkIG9mIHRocm93aW5nIGFuIGV4Y2VwdGlvbiwgd2UgaW5kaWNhdGUgdGhp
cworICAgICAgICAvLyB1c2luZyB0aGUgZXJyb3IgZXZlbnQuIEJ1dCBzaW5jZSB0aGlzIGNvZGUg
ZXhlY3V0ZXMgYXMgcGFydCBvZiB0aGUgV2ViU29ja2V0J3MKKyAgICAgICAgLy8gY29uc3RydWN0
b3IsIHdlIGhhdmUgdG8gd2FpdCB1bnRpbCB0aGUgY29uc3RydWN0b3IgaGFzIGNvbXBsZXRlZCBi
ZWZvcmUgZmlyaW5nIHRoZQorICAgICAgICAvLyBldmVudDsgb3RoZXJ3aXNlLCB1c2VycyBjYW4n
dCBjb25uZWN0IHRvIHRoZSBldmVudC4KIAotICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
cG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShhdXRvJikgewog
ICAgICAgICB0aGlzLT5kaXNwYXRjaE9yUXVldWVFcnJvckV2ZW50KCk7CiAgICAgICAgIHRoaXMt
PnN0b3AoKTsKICAgICB9KTsKQEAgLTUxMSw0MyArNTA4LDIyIEBAIHZvaWQgV2ViU29ja2V0Ojpj
b250ZXh0RGVzdHJveWVkKCkKIAogdm9pZCBXZWJTb2NrZXQ6OnN1c3BlbmQoUmVhc29uRm9yU3Vz
cGVuc2lvbiByZWFzb24pCiB7Ci0gICAgaWYgKG1fcmVzdW1lVGltZXIuaXNBY3RpdmUoKSkKLSAg
ICAgICAgbV9yZXN1bWVUaW1lci5zdG9wKCk7Ci0KLSAgICBtX3Nob3VsZERlbGF5RXZlbnRGaXJp
bmcgPSB0cnVlOworICAgIGlmICghbV9jaGFubmVsKQorICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAobV9jaGFubmVsKSB7Ci0gICAgICAgIGlmIChyZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lv
bjo6QmFja0ZvcndhcmRDYWNoZSkgewotICAgICAgICAgICAgLy8gVGhpcyB3aWxsIGNhdXNlIGRp
ZENsb3NlKCkgdG8gYmUgY2FsbGVkLgotICAgICAgICAgICAgbV9jaGFubmVsLT5mYWlsKCJXZWJT
b2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9uLiIpOwotICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIG1fY2hhbm5lbC0+c3VzcGVuZCgpOworICAgIGlmIChyZWFzb24gPT0gUmVhc29u
Rm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkgeworICAgICAgICAvLyBUaGlzIHdpbGwg
Y2F1c2UgZGlkQ2xvc2UoKSB0byBiZSBjYWxsZWQuCisgICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgi
V2ViU29ja2V0IGlzIGNsb3NlZCBkdWUgdG8gc3VzcGVuc2lvbi4iKTsKKyAgICAgICAgcmV0dXJu
OwogICAgIH0KKworICAgIG1fY2hhbm5lbC0+c3VzcGVuZCgpOwogfQogCiB2b2lkIFdlYlNvY2tl
dDo6cmVzdW1lKCkKIHsKICAgICBpZiAobV9jaGFubmVsKQogICAgICAgICBtX2NoYW5uZWwtPnJl
c3VtZSgpOwotCi0gICAgaWYgKCFtX3BlbmRpbmdFdmVudHMuaXNFbXB0eSgpICYmICFtX3Jlc3Vt
ZVRpbWVyLmlzQWN0aXZlKCkpIHsKLSAgICAgICAgLy8gRmlyZSB0aGUgcGVuZGluZyBldmVudHMg
aW4gYSB0aW1lciBhcyB3ZSBhcmUgbm90IGFsbG93ZWQgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgSlMg
ZnJvbSByZXN1bWUoKS4KLSAgICAgICAgbV9yZXN1bWVUaW1lci5zdGFydE9uZVNob3QoMF9zKTsK
LSAgICB9Ci0KLSAgICBtX3Nob3VsZERlbGF5RXZlbnRGaXJpbmcgPSBmYWxzZTsKLX0KLQotdm9p
ZCBXZWJTb2NrZXQ6OnJlc3VtZVRpbWVyRmlyZWQoKQotewotICAgIFJlZjxXZWJTb2NrZXQ+IHBy
b3RlY3RlZFRoaXMoKnRoaXMpOwotCi0gICAgQVNTRVJUKCFtX3BlbmRpbmdFdmVudHMuaXNFbXB0
eSgpKTsKLQotICAgIC8vIENoZWNrIG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZyB3aGVuIGl0ZXJh
dGluZyBpbiBjYXNlIGZpcmluZyBhbiBldmVudCBjYXVzZXMKLSAgICAvLyBzdXNwZW5kKCkgdG8g
YmUgY2FsbGVkLgotICAgIHdoaWxlICghbV9wZW5kaW5nRXZlbnRzLmlzRW1wdHkoKSAmJiAhbV9z
aG91bGREZWxheUV2ZW50RmlyaW5nKQotICAgICAgICBkaXNwYXRjaEV2ZW50KG1fcGVuZGluZ0V2
ZW50cy50YWtlRmlyc3QoKSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0OjpzdG9wKCkKQEAgLTU1Niw3
ICs1MzIsNiBAQCB2b2lkIFdlYlNvY2tldDo6c3RvcCgpCiAgICAgICAgIG1fY2hhbm5lbC0+ZGlz
Y29ubmVjdCgpOwogICAgIG1fY2hhbm5lbCA9IG51bGxwdHI7CiAgICAgbV9zdGF0ZSA9IENMT1NF
RDsKLSAgICBtX3BlbmRpbmdFdmVudHMuY2xlYXIoKTsKICAgICBBY3RpdmVET01PYmplY3Q6OnN0
b3AoKTsKICAgICBtX3BlbmRpbmdBY3Rpdml0eSA9IG51bGxwdHI7CiB9CkBAIC01NjksNDYgKzU0
NCw1NyBAQCBjb25zdCBjaGFyKiBXZWJTb2NrZXQ6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dAogdm9pZCBXZWJTb2NrZXQ6OmRpZENvbm5lY3QoKQogewogICAgIExPRyhOZXR3b3JrLCAiV2Vi
U29ja2V0ICVwIGRpZENvbm5lY3QoKSIsIHRoaXMpOwotICAgIGlmIChtX3N0YXRlICE9IENPTk5F
Q1RJTkcpIHsKLSAgICAgICAgZGlkQ2xvc2UoMCwgQ2xvc2luZ0hhbmRzaGFrZUluY29tcGxldGUs
IFdlYlNvY2tldENoYW5uZWw6OkNsb3NlRXZlbnRDb2RlQWJub3JtYWxDbG9zdXJlLCBlbXB0eVN0
cmluZygpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBBU1NFUlQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKLSAgICBtX3N0YXRlID0gT1BFTjsKLSAgICBtX3N1YnByb3RvY29sID0g
bV9jaGFubmVsLT5zdWJwcm90b2NvbCgpOwotICAgIG1fZXh0ZW5zaW9ucyA9IG1fY2hhbm5lbC0+
ZXh0ZW5zaW9ucygpOwotICAgIGRpc3BhdGNoT3JRdWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLm9wZW5FdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6Ok5vKSk7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNr
U291cmNlOjpXZWJTb2NrZXQsIFt0aGlzXSB7CisgICAgICAgIGlmIChtX3N0YXRlICE9IENPTk5F
Q1RJTkcpIHsKKyAgICAgICAgICAgIGRpZENsb3NlKDAsIENsb3NpbmdIYW5kc2hha2VJbmNvbXBs
ZXRlLCBXZWJTb2NrZXRDaGFubmVsOjpDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xvc3VyZSwgZW1w
dHlTdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQVNT
RVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIG1fc3RhdGUgPSBPUEVOOwor
ICAgICAgICBtX3N1YnByb3RvY29sID0gbV9jaGFubmVsLT5zdWJwcm90b2NvbCgpOworICAgICAg
ICBtX2V4dGVuc2lvbnMgPSBtX2NoYW5uZWwtPmV4dGVuc2lvbnMoKTsKKyAgICAgICAgZGlzcGF0
Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5vcGVuRXZlbnQsIEV2ZW50OjpDYW5C
dWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworICAgIH0pOwogfQogCiB2b2lk
IFdlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtc2cpCiB7CiAgICAg
TE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkUmVjZWl2ZU1lc3NhZ2UoKSBUZXh0IG1lc3Nh
Z2UgJyVzJyIsIHRoaXMsIG1zZy51dGY4KCkuZGF0YSgpKTsKLSAgICBpZiAobV9zdGF0ZSAhPSBP
UEVOKQotICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7Ci0gICAgZGlzcGF0Y2hPclF1ZXVlRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUobXNnLCBT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG1fdXJsKS0+dG9TdHJpbmcoKSkpOworICAgIHF1ZXVlVGFz
a0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpcywg
bXNnXSB7CisgICAgICAgIGlmIChtX3N0YXRlICE9IE9QRU4pCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgICAgICBkaXNw
YXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKG1zZywgU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZShtX3VybCktPnRvU3RyaW5nKCkpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBXZWJTb2NrZXQ6OmRp
ZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50OF90PiYmIGJpbmFyeURhdGEpCiB7CiAgICAg
TE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkUmVjZWl2ZUJpbmFyeURhdGEoKSAldSBieXRl
IGJpbmFyeSBtZXNzYWdlIiwgdGhpcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGJpbmFyeURhdGEu
c2l6ZSgpKSk7Ci0gICAgc3dpdGNoIChtX2JpbmFyeVR5cGUpIHsKLSAgICBjYXNlIEJpbmFyeVR5
cGU6OkJsb2I6Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBqdXN0IHJlY2VpdmVkIHRoZSBkYXRhIGZy
b20gTmV0d29ya1Byb2Nlc3MsIGFuZCBhcmUgc2VuZGluZyBpdCBiYWNrLiBUaGlzIGlzIGluZWZm
aWNpZW50LgotICAgICAgICBkaXNwYXRjaE9yUXVldWVFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0
ZShCbG9iOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBXVEZNb3ZlKGJpbmFyeURh
dGEpLCBlbXB0eVN0cmluZygpKSwgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3Ry
aW5nKCkpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBCaW5hcnlUeXBlOjpBcnJheUJ1ZmZl
cjoKLSAgICAgICAgZGlzcGF0Y2hPclF1ZXVlRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoQXJy
YXlCdWZmZXI6OmNyZWF0ZShiaW5hcnlEYXRhLmRhdGEoKSwgYmluYXJ5RGF0YS5zaXplKCkpLCBT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG1fdXJsKS0+dG9TdHJpbmcoKSkpOwotICAgICAgICBicmVh
azsKLSAgICB9CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291
cmNlOjpXZWJTb2NrZXQsIFt0aGlzLCBiaW5hcnlEYXRhID0gV1RGTW92ZShiaW5hcnlEYXRhKV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKG1fc3RhdGUgIT0gT1BFTikKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgc3dpdGNoIChtX2JpbmFyeVR5cGUpIHsKKyAgICAgICAgY2FzZSBCaW5h
cnlUeXBlOjpCbG9iOgorICAgICAgICAgICAgLy8gRklYTUU6IFdlIGp1c3QgcmVjZWl2ZWQgdGhl
IGRhdGEgZnJvbSBOZXR3b3JrUHJvY2VzcywgYW5kIGFyZSBzZW5kaW5nIGl0IGJhY2suIFRoaXMg
aXMgaW5lZmZpY2llbnQuCisgICAgICAgICAgICBkaXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6
Y3JlYXRlKEJsb2I6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIFdURk1vdmUoYmlu
YXJ5RGF0YSksIGVtcHR5U3RyaW5nKCkpLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG1fdXJsKS0+
dG9TdHJpbmcoKSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQmluYXJ5VHlw
ZTo6QXJyYXlCdWZmZXI6CisgICAgICAgICAgICBkaXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6
Y3JlYXRlKEFycmF5QnVmZmVyOjpjcmVhdGUoYmluYXJ5RGF0YS5kYXRhKCksIGJpbmFyeURhdGEu
c2l6ZSgpKSwgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0
OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tl
dCAlcCBkaWRSZWNlaXZlRXJyb3JNZXNzYWdlKCkiLCB0aGlzKTsKLSAgICBtX3N0YXRlID0gQ0xP
U0VEOwotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGRpc3BhdGNo
T3JRdWV1ZUVycm9yRXZlbnQoKTsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRo
aXMsIFRhc2tTb3VyY2U6OldlYlNvY2tldCwgW3RoaXNdIHsKKyAgICAgICAgbV9zdGF0ZSA9IENM
T1NFRDsKKyAgICAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAg
IC8vIEZJWE1FOiBBcyBwZXIgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
d2ViLXNvY2tldHMuaHRtbCNmZWVkYmFjay1mcm9tLXRoZS1wcm90b2NvbDpjb25jZXB0LXdlYnNv
Y2tldC1jbG9zZWQsIHdlIHNob3VsZCBzeW5jaHJvbm91c2x5IGZpcmUgYSBjbG9zZSBldmVudC4K
KyAgICAgICAgZGlzcGF0Y2hPclF1ZXVlRXJyb3JFdmVudCgpOworICAgIH0pOwogfQogCiB2b2lk
IFdlYlNvY2tldDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQodW5zaWduZWQgYnVmZmVyZWRBbW91
bnQpCkBAIC02MjIsMjYgKzYwOCwzMCBAQCB2b2lkIFdlYlNvY2tldDo6ZGlkVXBkYXRlQnVmZmVy
ZWRBbW91bnQodW5zaWduZWQgYnVmZmVyZWRBbW91bnQpCiB2b2lkIFdlYlNvY2tldDo6ZGlkU3Rh
cnRDbG9zaW5nSGFuZHNoYWtlKCkKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBk
aWRTdGFydENsb3NpbmdIYW5kc2hha2UoKSIsIHRoaXMpOwotICAgIG1fc3RhdGUgPSBDTE9TSU5H
OworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2Vi
U29ja2V0LCBbdGhpc10geworICAgICAgICBtX3N0YXRlID0gQ0xPU0lORzsKKyAgICB9KTsKIH0K
IAogdm9pZCBXZWJTb2NrZXQ6OmRpZENsb3NlKHVuc2lnbmVkIHVuaGFuZGxlZEJ1ZmZlcmVkQW1v
dW50LCBDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvblN0YXR1cyBjbG9zaW5nSGFuZHNoYWtlQ29t
cGxldGlvbiwgdW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCiB7CiAg
ICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkQ2xvc2UoKSIsIHRoaXMpOwotICAgIGlm
ICghbV9jaGFubmVsKQotICAgICAgICByZXR1cm47Ci0gICAgYm9vbCB3YXNDbGVhbiA9IG1fc3Rh
dGUgPT0gQ0xPU0lORyAmJiAhdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQgJiYgY2xvc2luZ0hhbmRz
aGFrZUNvbXBsZXRpb24gPT0gQ2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRlICYmIGNvZGUgIT0gV2Vi
U29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVBYm5vcm1hbENsb3N1cmU7Ci0gICAgbV9zdGF0
ZSA9IENMT1NFRDsKLSAgICBtX2J1ZmZlcmVkQW1vdW50ID0gdW5oYW5kbGVkQnVmZmVyZWRBbW91
bnQ7Ci0gICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgcXVldWVUYXNr
S2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlzLCB1
bmhhbmRsZWRCdWZmZXJlZEFtb3VudCwgY2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRpb24sIGNvZGUs
IHJlYXNvbl0geworICAgICAgICBpZiAoIW1fY2hhbm5lbCkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgYm9vbCB3YXNDbGVhbiA9IG1fc3RhdGUgPT0gQ0xPU0lORyAmJiAhdW5oYW5kbGVk
QnVmZmVyZWRBbW91bnQgJiYgY2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRpb24gPT0gQ2xvc2luZ0hh
bmRzaGFrZUNvbXBsZXRlICYmIGNvZGUgIT0gV2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENv
ZGVBYm5vcm1hbENsb3N1cmU7CisgICAgICAgIG1fc3RhdGUgPSBDTE9TRUQ7CisgICAgICAgIG1f
YnVmZmVyZWRBbW91bnQgPSB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudDsKKyAgICAgICAgQVNTRVJU
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAKLSAgICBkaXNwYXRjaE9yUXVldWVFdmVudChD
bG9zZUV2ZW50OjpjcmVhdGUod2FzQ2xlYW4sIGNvZGUsIHJlYXNvbikpOworICAgICAgICBkaXNw
YXRjaEV2ZW50KENsb3NlRXZlbnQ6OmNyZWF0ZSh3YXNDbGVhbiwgY29kZSwgcmVhc29uKSk7CiAK
LSAgICBpZiAobV9jaGFubmVsKSB7Ci0gICAgICAgIG1fY2hhbm5lbC0+ZGlzY29ubmVjdCgpOwot
ICAgICAgICBtX2NoYW5uZWwgPSBudWxscHRyOwotICAgIH0KLSAgICBtX3BlbmRpbmdBY3Rpdml0
eSA9IG51bGxwdHI7CisgICAgICAgIGlmIChtX2NoYW5uZWwpIHsKKyAgICAgICAgICAgIG1fY2hh
bm5lbC0+ZGlzY29ubmVjdCgpOworICAgICAgICAgICAgbV9jaGFubmVsID0gbnVsbHB0cjsKKyAg
ICAgICAgfQorICAgICAgICBtX3BlbmRpbmdBY3Rpdml0eSA9IG51bGxwdHI7CisgICAgfSk7CiB9
CiAKIHZvaWQgV2ViU29ja2V0OjpkaWRVcGdyYWRlVVJMKCkKQEAgLTY3MCwxNSArNjYwLDcgQEAg
dm9pZCBXZWJTb2NrZXQ6OmRpc3BhdGNoT3JRdWV1ZUVycm9yRXZlbnQoKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX2Rpc3BhdGNoZWRFcnJvckV2ZW50ID0gdHJ1ZTsKLSAgICBkaXNwYXRjaE9y
UXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBFdmVudDo6
Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKLX0KLQotdm9pZCBXZWJT
b2NrZXQ6OmRpc3BhdGNoT3JRdWV1ZUV2ZW50KFJlZjxFdmVudD4mJiBldmVudCkKLXsKLSAgICBp
ZiAobV9zaG91bGREZWxheUV2ZW50RmlyaW5nKQotICAgICAgICBtX3BlbmRpbmdFdmVudHMuYXBw
ZW5kKFdURk1vdmUoZXZlbnQpKTsKLSAgICBlbHNlCi0gICAgICAgIGRpc3BhdGNoRXZlbnQoZXZl
bnQpOworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JF
dmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuaAppbmRleCBhMmZlNWRkOWFkYzRlMjk2M2ZhNjYxMmE3MWM0YmVh
NzUyYzJiNzRlLi45ZDE5YmI5MWY3MTYzNjM3MTlhYWJkYTdkM2IzNzNiOGNiMTZiNjMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCkBAIC0zMywx
MCArMzMsOCBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLSNpbmNsdWRlICJUaW1lci5oIgog
I2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlICJXZWJTb2NrZXRDaGFubmVsQ2xpZW50Lmgi
Ci0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNs
dWRlIDx3dGYvTG9jay5oPgogCkBAIC0xMDEsOSArOTksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IFdlYlNvY2tldChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKLSAgICB2
b2lkIHJlc3VtZVRpbWVyRmlyZWQoKTsKICAgICB2b2lkIGRpc3BhdGNoT3JRdWV1ZUVycm9yRXZl
bnQoKTsKLSAgICB2b2lkIGRpc3BhdGNoT3JRdWV1ZUV2ZW50KFJlZjxFdmVudD4mJik7CiAKICAg
ICB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBmaW5hbDsKICAgICB2b2lkIHN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbikgZmluYWw7CkBAIC0xNDIsOSArMTM4LDYgQEAgcHJpdmF0ZToKICAgICBT
dHJpbmcgbV9zdWJwcm90b2NvbDsKICAgICBTdHJpbmcgbV9leHRlbnNpb25zOwogCi0gICAgVGlt
ZXIgbV9yZXN1bWVUaW1lcjsKLSAgICBib29sIG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZyB7IGZh
bHNlIH07Ci0gICAgRGVxdWU8UmVmPEV2ZW50Pj4gbV9wZW5kaW5nRXZlbnRzOwogICAgIGJvb2wg
bV9kaXNwYXRjaGVkRXJyb3JFdmVudCB7IGZhbHNlIH07CiAgICAgUmVmUHRyPFBlbmRpbmdBY3Rp
dml0eTxXZWJTb2NrZXQ+PiBtX3BlbmRpbmdBY3Rpdml0eTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVGFza1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tTb3Vy
Y2UuaAppbmRleCAyZGE0N2JhZDZjNzNhNmJhNWJmMjgzYjhkMzUyZjQwZDIxYWYwMTRmLi43OWMx
MzUwMzExNjdkMzdjOTljMDNhNjI0OTg5MGJiNjkzMjA4OTY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVGFza1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UYXNrU291
cmNlLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgZW51bSBjbGFzcyBUYXNrU291cmNlIDogdWludDhfdCB7
CiAgICAgVXNlckludGVyYWN0aW9uLAogICAgIFdlYkdMLAogICAgIFdlYlhSLAorICAgIFdlYlNv
Y2tldCwKIAogICAgIC8vIEludGVybmFsIHRvIFdlYkNvcmUKICAgICBJbnRlcm5hbEFzeW5jVGFz
aywgLy8gU2FmZSB0byByZS1vcmRlciBvciBkZWxheS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441336</attachid>
            <date>2021-10-14 23:09:12 -0700</date>
            <delta_ts>2021-10-18 05:21:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231664-20211015080910.patch</filename>
            <type>text/plain</type>
            <size>16780</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY1ZWY3NTAzMWYxMmY0
YThlNDc1MTQ2Y2QzYmYxZjczZGY0ODMxNS4uMzExNGNhMTgxMGM3YzE4ZmQyYTVmMTE0Yjk4NzRj
ZmM0MTBkN2M3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTEwLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBHdWFyYW50ZWUgb3JkZXIg
b2YgV2ViU29ja2V0IGV2ZW50cyBpbiBjYXNlIG9mIGJlaW5nIHJlc3VtZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTY2NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIFdlYlNvY2tl
dCB0YXNrIHNvdXJjZSBhcyBwZXIgc3BlYy4KKyAgICAgICAgVGhpcyBhbGlnbnMgd2l0aCBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWItc29ja2V0cy5odG1sIHdoZXJl
IHRoZSB1c2VyIGFnZW50IGlzIGV4cGVjdGVkIHRvIGEgcXVldWUgdGFzaworICAgICAgICB3aGVu
IGNsb3NpbmcgaGFuZHNoYWtlIGlzIHN0YXJ0ZWQgYW5kIHNvIG9uLgorCisgICAgICAgIEJ5IHF1
ZXVpbmcgYW4gZXZlbnQgbG9vcCB0YXNrIHRvIGZpcmUgV2ViU29ja2V0IGV2ZW50cywgd2UgZW5z
dXJlIG9yZGVyaW5nIG9mIGV2ZW50cyBldmVuIGluIGNhc2Ugb2YgcmVzdW1pbmcsIHdoaWxlIHNp
bXBsaWZ5aW5nIHRoZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgVGhpcyBtYWtlcyBpdCB1c2Ug
dGhlIGV2ZW50IGxvb3Agd2hpY2ggaXMgZXh0cmEgbmljZSBpZiB3ZSByZXNvbHZlIHByb21pc2Vz
IGluIGV2ZW50IGxpc3RlbmVycy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
LgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXQ6OldlYlNvY2tldCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJT
b2NrZXQ6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpyZXN1bWUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldDo6ZGlzcGF0Y2hPclF1ZXVlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29j
a2V0OjpyZXN1bWVUaW1lckZpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogZG9tL1Rhc2tTb3VyY2UuaDoKKwogMjAyMS0x
MC0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIFdlYlJUQyBtZWRpYSBjYXBhYmlsaXRpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggNjk0MDFhMzI4MDgxMzQ3YWU2
Y2EyM2RhNjIwYjg4Yjg3OGRmMTRlZS4uNGQxZTc5YzE1ZWU5Mjk5ZTZlMzZiMjM0MmQ5MzQ4ZDQ0
NTAwMTMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5jcHAKQEAgLTE0NSw3ICsxNDUsNiBAQCBXZWJTb2NrZXQ6OldlYlNvY2tldChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0
KQogICAgICwgbV9zdWJwcm90b2NvbChlbXB0eVN0cmluZygpKQogICAgICwgbV9leHRlbnNpb25z
KGVtcHR5U3RyaW5nKCkpCi0gICAgLCBtX3Jlc3VtZVRpbWVyKCp0aGlzLCAmV2ViU29ja2V0Ojpy
ZXN1bWVUaW1lckZpcmVkKQogewogICAgIExvY2tlciBsb2NrZXIgeyBhbGxBY3RpdmVXZWJTb2Nr
ZXRzTG9jaygpIH07CiAgICAgYWxsQWN0aXZlV2ViU29ja2V0cygpLmFkZCh0aGlzKTsKQEAgLTIx
MCwxNCArMjA5LDEyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFdlYlNvY2tldDo6Y29ubmVjdChjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKIAogdm9pZCBXZWJTb2NrZXQ6
OmZhaWxBc3luY2hyb25vdXNseSgpCiB7Ci0gICAgbV9wZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVu
ZGluZ0FjdGl2aXR5KCp0aGlzKTsKLQotICAgIC8vIFdlIG11c3QgYmxvY2sgdGhpcyBjb25uZWN0
aW9uLiBJbnN0ZWFkIG9mIHRocm93aW5nIGFuIGV4Y2VwdGlvbiwgd2UgaW5kaWNhdGUgdGhpcwot
ICAgIC8vIHVzaW5nIHRoZSBlcnJvciBldmVudC4gQnV0IHNpbmNlIHRoaXMgY29kZSBleGVjdXRl
cyBhcyBwYXJ0IG9mIHRoZSBXZWJTb2NrZXQncwotICAgIC8vIGNvbnN0cnVjdG9yLCB3ZSBoYXZl
IHRvIHdhaXQgdW50aWwgdGhlIGNvbnN0cnVjdG9yIGhhcyBjb21wbGV0ZWQgYmVmb3JlIGZpcmlu
ZyB0aGUKLSAgICAvLyBldmVudDsgb3RoZXJ3aXNlLCB1c2VycyBjYW4ndCBjb25uZWN0IHRvIHRo
ZSBldmVudC4KKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3Vy
Y2U6OldlYlNvY2tldCwgW3RoaXNdIHsKKyAgICAgICAgLy8gV2UgbXVzdCBibG9jayB0aGlzIGNv
bm5lY3Rpb24uIEluc3RlYWQgb2YgdGhyb3dpbmcgYW4gZXhjZXB0aW9uLCB3ZSBpbmRpY2F0ZSB0
aGlzCisgICAgICAgIC8vIHVzaW5nIHRoZSBlcnJvciBldmVudC4gQnV0IHNpbmNlIHRoaXMgY29k
ZSBleGVjdXRlcyBhcyBwYXJ0IG9mIHRoZSBXZWJTb2NrZXQncworICAgICAgICAvLyBjb25zdHJ1
Y3Rvciwgd2UgaGF2ZSB0byB3YWl0IHVudGlsIHRoZSBjb25zdHJ1Y3RvciBoYXMgY29tcGxldGVk
IGJlZm9yZSBmaXJpbmcgdGhlCisgICAgICAgIC8vIGV2ZW50OyBvdGhlcndpc2UsIHVzZXJzIGNh
bid0IGNvbm5lY3QgdG8gdGhlIGV2ZW50LgogCi0gICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5wb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGF1dG8mKSB7
CiAgICAgICAgIHRoaXMtPmRpc3BhdGNoT3JRdWV1ZUVycm9yRXZlbnQoKTsKICAgICAgICAgdGhp
cy0+c3RvcCgpOwogICAgIH0pOwpAQCAtNTExLDQzICs1MDgsMjIgQEAgdm9pZCBXZWJTb2NrZXQ6
OmNvbnRleHREZXN0cm95ZWQoKQogCiB2b2lkIFdlYlNvY2tldDo6c3VzcGVuZChSZWFzb25Gb3JT
dXNwZW5zaW9uIHJlYXNvbikKIHsKLSAgICBpZiAobV9yZXN1bWVUaW1lci5pc0FjdGl2ZSgpKQot
ICAgICAgICBtX3Jlc3VtZVRpbWVyLnN0b3AoKTsKLQotICAgIG1fc2hvdWxkRGVsYXlFdmVudEZp
cmluZyA9IHRydWU7CisgICAgaWYgKCFtX2NoYW5uZWwpCisgICAgICAgIHJldHVybjsKIAotICAg
IGlmIChtX2NoYW5uZWwpIHsKLSAgICAgICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5z
aW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIHdpbGwgY2F1c2Ug
ZGlkQ2xvc2UoKSB0byBiZSBjYWxsZWQuCi0gICAgICAgICAgICBtX2NoYW5uZWwtPmZhaWwoIldl
YlNvY2tldCBpcyBjbG9zZWQgZHVlIHRvIHN1c3BlbnNpb24uIik7Ci0gICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgbV9jaGFubmVsLT5zdXNwZW5kKCk7CisgICAgaWYgKHJlYXNvbiA9PSBSZWFz
b25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7CisgICAgICAgIC8vIFRoaXMgd2ls
bCBjYXVzZSBkaWRDbG9zZSgpIHRvIGJlIGNhbGxlZC4KKyAgICAgICAgbV9jaGFubmVsLT5mYWls
KCJXZWJTb2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9uLiIpOworICAgICAgICByZXR1
cm47CiAgICAgfQorCisgICAgbV9jaGFubmVsLT5zdXNwZW5kKCk7CiB9CiAKIHZvaWQgV2ViU29j
a2V0OjpyZXN1bWUoKQogewogICAgIGlmIChtX2NoYW5uZWwpCiAgICAgICAgIG1fY2hhbm5lbC0+
cmVzdW1lKCk7Ci0KLSAgICBpZiAoIW1fcGVuZGluZ0V2ZW50cy5pc0VtcHR5KCkgJiYgIW1fcmVz
dW1lVGltZXIuaXNBY3RpdmUoKSkgewotICAgICAgICAvLyBGaXJlIHRoZSBwZW5kaW5nIGV2ZW50
cyBpbiBhIHRpbWVyIGFzIHdlIGFyZSBub3QgYWxsb3dlZCB0byBleGVjdXRlIGFyYml0cmFyeSBK
UyBmcm9tIHJlc3VtZSgpLgotICAgICAgICBtX3Jlc3VtZVRpbWVyLnN0YXJ0T25lU2hvdCgwX3Mp
OwotICAgIH0KLQotICAgIG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZyA9IGZhbHNlOwotfQotCi12
b2lkIFdlYlNvY2tldDo6cmVzdW1lVGltZXJGaXJlZCgpCi17Ci0gICAgUmVmPFdlYlNvY2tldD4g
cHJvdGVjdGVkVGhpcygqdGhpcyk7Ci0KLSAgICBBU1NFUlQoIW1fcGVuZGluZ0V2ZW50cy5pc0Vt
cHR5KCkpOwotCi0gICAgLy8gQ2hlY2sgbV9zaG91bGREZWxheUV2ZW50RmlyaW5nIHdoZW4gaXRl
cmF0aW5nIGluIGNhc2UgZmlyaW5nIGFuIGV2ZW50IGNhdXNlcwotICAgIC8vIHN1c3BlbmQoKSB0
byBiZSBjYWxsZWQuCi0gICAgd2hpbGUgKCFtX3BlbmRpbmdFdmVudHMuaXNFbXB0eSgpICYmICFt
X3Nob3VsZERlbGF5RXZlbnRGaXJpbmcpCi0gICAgICAgIGRpc3BhdGNoRXZlbnQobV9wZW5kaW5n
RXZlbnRzLnRha2VGaXJzdCgpKTsKIH0KIAogdm9pZCBXZWJTb2NrZXQ6OnN0b3AoKQpAQCAtNTU2
LDcgKzUzMiw2IEBAIHZvaWQgV2ViU29ja2V0OjpzdG9wKCkKICAgICAgICAgbV9jaGFubmVsLT5k
aXNjb25uZWN0KCk7CiAgICAgbV9jaGFubmVsID0gbnVsbHB0cjsKICAgICBtX3N0YXRlID0gQ0xP
U0VEOwotICAgIG1fcGVuZGluZ0V2ZW50cy5jbGVhcigpOwogICAgIEFjdGl2ZURPTU9iamVjdDo6
c3RvcCgpOwogICAgIG1fcGVuZGluZ0FjdGl2aXR5ID0gbnVsbHB0cjsKIH0KQEAgLTU2OSw0NiAr
NTQ0LDU3IEBAIGNvbnN0IGNoYXIqIFdlYlNvY2tldDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0CiB2b2lkIFdlYlNvY2tldDo6ZGlkQ29ubmVjdCgpCiB7CiAgICAgTE9HKE5ldHdvcmssICJX
ZWJTb2NrZXQgJXAgZGlkQ29ubmVjdCgpIiwgdGhpcyk7Ci0gICAgaWYgKG1fc3RhdGUgIT0gQ09O
TkVDVElORykgewotICAgICAgICBkaWRDbG9zZSgwLCBDbG9zaW5nSGFuZHNoYWtlSW5jb21wbGV0
ZSwgV2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVBYm5vcm1hbENsb3N1cmUsIGVtcHR5
U3RyaW5nKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIEFTU0VSVChzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOwotICAgIG1fc3RhdGUgPSBPUEVOOwotICAgIG1fc3VicHJvdG9jb2wg
PSBtX2NoYW5uZWwtPnN1YnByb3RvY29sKCk7Ci0gICAgbV9leHRlbnNpb25zID0gbV9jaGFubmVs
LT5leHRlbnNpb25zKCk7Ci0gICAgZGlzcGF0Y2hPclF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkub3BlbkV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8pKTsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRh
c2tTb3VyY2U6OldlYlNvY2tldCwgW3RoaXNdIHsKKyAgICAgICAgaWYgKG1fc3RhdGUgIT0gQ09O
TkVDVElORykgeworICAgICAgICAgICAgZGlkQ2xvc2UoMCwgQ2xvc2luZ0hhbmRzaGFrZUluY29t
cGxldGUsIFdlYlNvY2tldENoYW5uZWw6OkNsb3NlRXZlbnRDb2RlQWJub3JtYWxDbG9zdXJlLCBl
bXB0eVN0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBB
U1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICAgICAgbV9zdGF0ZSA9IE9QRU47
CisgICAgICAgIG1fc3VicHJvdG9jb2wgPSBtX2NoYW5uZWwtPnN1YnByb3RvY29sKCk7CisgICAg
ICAgIG1fZXh0ZW5zaW9ucyA9IG1fY2hhbm5lbC0+ZXh0ZW5zaW9ucygpOworICAgICAgICBkaXNw
YXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm9wZW5FdmVudCwgRXZlbnQ6OkNh
bkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CisgICAgfSk7CiB9CiAKIHZv
aWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1zZykKIHsKICAg
ICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRSZWNlaXZlTWVzc2FnZSgpIFRleHQgbWVz
c2FnZSAnJXMnIiwgdGhpcywgbXNnLnV0ZjgoKS5kYXRhKCkpOwotICAgIGlmIChtX3N0YXRlICE9
IE9QRU4pCi0gICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLSAgICBkaXNwYXRjaE9yUXVldWVFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShtc2cs
IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91cmwpLT50b1N0cmluZygpKSk7CisgICAgcXVldWVU
YXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlz
LCBtc2ddIHsKKyAgICAgICAgaWYgKG1fc3RhdGUgIT0gT1BFTikKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIGRp
c3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUobXNnLCBTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlKG1fdXJsKS0+dG9TdHJpbmcoKSkpOworICAgIH0pOwogfQogCiB2b2lkIFdlYlNvY2tldDo6
ZGlkUmVjZWl2ZUJpbmFyeURhdGEoVmVjdG9yPHVpbnQ4X3Q+JiYgYmluYXJ5RGF0YSkKIHsKICAg
ICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRSZWNlaXZlQmluYXJ5RGF0YSgpICV1IGJ5
dGUgYmluYXJ5IG1lc3NhZ2UiLCB0aGlzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oYmluYXJ5RGF0
YS5zaXplKCkpKTsKLSAgICBzd2l0Y2ggKG1fYmluYXJ5VHlwZSkgewotICAgIGNhc2UgQmluYXJ5
VHlwZTo6QmxvYjoKLSAgICAgICAgLy8gRklYTUU6IFdlIGp1c3QgcmVjZWl2ZWQgdGhlIGRhdGEg
ZnJvbSBOZXR3b3JrUHJvY2VzcywgYW5kIGFyZSBzZW5kaW5nIGl0IGJhY2suIFRoaXMgaXMgaW5l
ZmZpY2llbnQuCi0gICAgICAgIGRpc3BhdGNoT3JRdWV1ZUV2ZW50KE1lc3NhZ2VFdmVudDo6Y3Jl
YXRlKEJsb2I6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIFdURk1vdmUoYmluYXJ5
RGF0YSksIGVtcHR5U3RyaW5nKCkpLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG1fdXJsKS0+dG9T
dHJpbmcoKSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEJpbmFyeVR5cGU6OkFycmF5QnVm
ZmVyOgotICAgICAgICBkaXNwYXRjaE9yUXVldWVFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShB
cnJheUJ1ZmZlcjo6Y3JlYXRlKGJpbmFyeURhdGEuZGF0YSgpLCBiaW5hcnlEYXRhLnNpemUoKSks
IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91cmwpLT50b1N0cmluZygpKSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIH0KKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tT
b3VyY2U6OldlYlNvY2tldCwgW3RoaXMsIGJpbmFyeURhdGEgPSBXVEZNb3ZlKGJpbmFyeURhdGEp
XSgpIG11dGFibGUgeworICAgICAgICBpZiAobV9zdGF0ZSAhPSBPUEVOKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICBzd2l0Y2ggKG1fYmluYXJ5VHlwZSkgeworICAgICAgICBjYXNlIEJp
bmFyeVR5cGU6OkJsb2I6CisgICAgICAgICAgICAvLyBGSVhNRTogV2UganVzdCByZWNlaXZlZCB0
aGUgZGF0YSBmcm9tIE5ldHdvcmtQcm9jZXNzLCBhbmQgYXJlIHNlbmRpbmcgaXQgYmFjay4gVGhp
cyBpcyBpbmVmZmljaWVudC4KKyAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50
OjpjcmVhdGUoQmxvYjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgV1RGTW92ZShi
aW5hcnlEYXRhKSwgZW1wdHlTdHJpbmcoKSksIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91cmwp
LT50b1N0cmluZygpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBCaW5hcnlU
eXBlOjpBcnJheUJ1ZmZlcjoKKyAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50
OjpjcmVhdGUoQXJyYXlCdWZmZXI6OmNyZWF0ZShiaW5hcnlEYXRhLmRhdGEoKSwgYmluYXJ5RGF0
YS5zaXplKCkpLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG1fdXJsKS0+dG9TdHJpbmcoKSkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9KTsKIH0KIAogdm9pZCBXZWJTb2Nr
ZXQ6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29j
a2V0ICVwIGRpZFJlY2VpdmVFcnJvck1lc3NhZ2UoKSIsIHRoaXMpOwotICAgIG1fc3RhdGUgPSBD
TE9TRUQ7Ci0gICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgZGlzcGF0
Y2hPclF1ZXVlRXJyb3JFdmVudCgpOworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgq
dGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpc10geworICAgICAgICBtX3N0YXRlID0g
Q0xPU0VEOworICAgICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICAg
ICAgLy8gRklYTUU6IEFzIHBlciBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS93ZWItc29ja2V0cy5odG1sI2ZlZWRiYWNrLWZyb20tdGhlLXByb3RvY29sOmNvbmNlcHQtd2Vi
c29ja2V0LWNsb3NlZCwgd2Ugc2hvdWxkIHN5bmNocm9ub3VzbHkgZmlyZSBhIGNsb3NlIGV2ZW50
LgorICAgICAgICBkaXNwYXRjaE9yUXVldWVFcnJvckV2ZW50KCk7CisgICAgfSk7CiB9CiAKIHZv
aWQgV2ViU29ja2V0OjpkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBidWZmZXJlZEFt
b3VudCkKQEAgLTYyMiwyNiArNjA4LDMwIEBAIHZvaWQgV2ViU29ja2V0OjpkaWRVcGRhdGVCdWZm
ZXJlZEFtb3VudCh1bnNpZ25lZCBidWZmZXJlZEFtb3VudCkKIHZvaWQgV2ViU29ja2V0OjpkaWRT
dGFydENsb3NpbmdIYW5kc2hha2UoKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVw
IGRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpIiwgdGhpcyk7Ci0gICAgbV9zdGF0ZSA9IENMT1NJ
Tkc7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpX
ZWJTb2NrZXQsIFt0aGlzXSB7CisgICAgICAgIG1fc3RhdGUgPSBDTE9TSU5HOworICAgIH0pOwog
fQogCiB2b2lkIFdlYlNvY2tldDo6ZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5kbGVkQnVmZmVyZWRB
bW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzIGNsb3NpbmdIYW5kc2hha2VD
b21wbGV0aW9uLCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikKIHsK
ICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRDbG9zZSgpIiwgdGhpcyk7Ci0gICAg
aWYgKCFtX2NoYW5uZWwpCi0gICAgICAgIHJldHVybjsKLSAgICBib29sIHdhc0NsZWFuID0gbV9z
dGF0ZSA9PSBDTE9TSU5HICYmICF1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCAmJiBjbG9zaW5nSGFu
ZHNoYWtlQ29tcGxldGlvbiA9PSBDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGUgJiYgY29kZSAhPSBX
ZWJTb2NrZXRDaGFubmVsOjpDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xvc3VyZTsKLSAgICBtX3N0
YXRlID0gQ0xPU0VEOwotICAgIG1fYnVmZmVyZWRBbW91bnQgPSB1bmhhbmRsZWRCdWZmZXJlZEFt
b3VudDsKLSAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBxdWV1ZVRh
c2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OldlYlNvY2tldCwgW3RoaXMs
IHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50LCBjbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvbiwgY29k
ZSwgcmVhc29uXSB7CisgICAgICAgIGlmICghbV9jaGFubmVsKQorICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICBib29sIHdhc0NsZWFuID0gbV9zdGF0ZSA9PSBDTE9TSU5HICYmICF1bmhhbmRs
ZWRCdWZmZXJlZEFtb3VudCAmJiBjbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvbiA9PSBDbG9zaW5n
SGFuZHNoYWtlQ29tcGxldGUgJiYgY29kZSAhPSBXZWJTb2NrZXRDaGFubmVsOjpDbG9zZUV2ZW50
Q29kZUFibm9ybWFsQ2xvc3VyZTsKKyAgICAgICAgbV9zdGF0ZSA9IENMT1NFRDsKKyAgICAgICAg
bV9idWZmZXJlZEFtb3VudCA9IHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50OworICAgICAgICBBU1NF
UlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKIAotICAgIGRpc3BhdGNoT3JRdWV1ZUV2ZW50
KENsb3NlRXZlbnQ6OmNyZWF0ZSh3YXNDbGVhbiwgY29kZSwgcmVhc29uKSk7CisgICAgICAgIGRp
c3BhdGNoRXZlbnQoQ2xvc2VFdmVudDo6Y3JlYXRlKHdhc0NsZWFuLCBjb2RlLCByZWFzb24pKTsK
IAotICAgIGlmIChtX2NoYW5uZWwpIHsKLSAgICAgICAgbV9jaGFubmVsLT5kaXNjb25uZWN0KCk7
Ci0gICAgICAgIG1fY2hhbm5lbCA9IG51bGxwdHI7Ci0gICAgfQotICAgIG1fcGVuZGluZ0FjdGl2
aXR5ID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKG1fY2hhbm5lbCkgeworICAgICAgICAgICAgbV9j
aGFubmVsLT5kaXNjb25uZWN0KCk7CisgICAgICAgICAgICBtX2NoYW5uZWwgPSBudWxscHRyOwor
ICAgICAgICB9CisgICAgICAgIG1fcGVuZGluZ0FjdGl2aXR5ID0gbnVsbHB0cjsKKyAgICB9KTsK
IH0KIAogdm9pZCBXZWJTb2NrZXQ6OmRpZFVwZ3JhZGVVUkwoKQpAQCAtNjcwLDE1ICs2NjAsNyBA
QCB2b2lkIFdlYlNvY2tldDo6ZGlzcGF0Y2hPclF1ZXVlRXJyb3JFdmVudCgpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1fZGlzcGF0Y2hlZEVycm9yRXZlbnQgPSB0cnVlOwotICAgIGRpc3BhdGNo
T3JRdWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIEV2ZW50
OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwotfQotCi12b2lkIFdl
YlNvY2tldDo6ZGlzcGF0Y2hPclF1ZXVlRXZlbnQoUmVmPEV2ZW50PiYmIGV2ZW50KQotewotICAg
IGlmIChtX3Nob3VsZERlbGF5RXZlbnRGaXJpbmcpCi0gICAgICAgIG1fcGVuZGluZ0V2ZW50cy5h
cHBlbmQoV1RGTW92ZShldmVudCkpOwotICAgIGVsc2UKLSAgICAgICAgZGlzcGF0Y2hFdmVudChl
dmVudCk7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJv
ckV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IGEyZmU1ZGQ5YWRjNGUyOTYzZmE2NjEyYTcxYzRi
ZWE3NTJjMmI3NGUuLjlkMTliYjkxZjcxNjM2MzcxOWFhYmRhN2QzYjM3M2I4Y2IxNmI2MzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKQEAgLTMz
LDEwICszMyw4IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZl
bnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIlRpbWVyLmgi
CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxDbGllbnQu
aCIKLSNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKQEAgLTEwMSw5ICs5OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgV2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIAotICAg
IHZvaWQgcmVzdW1lVGltZXJGaXJlZCgpOwogICAgIHZvaWQgZGlzcGF0Y2hPclF1ZXVlRXJyb3JF
dmVudCgpOwotICAgIHZvaWQgZGlzcGF0Y2hPclF1ZXVlRXZlbnQoUmVmPEV2ZW50PiYmKTsKIAog
ICAgIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIGZpbmFsOwogICAgIHZvaWQgc3VzcGVuZChSZWFz
b25Gb3JTdXNwZW5zaW9uKSBmaW5hbDsKQEAgLTE0Miw5ICsxMzgsNiBAQCBwcml2YXRlOgogICAg
IFN0cmluZyBtX3N1YnByb3RvY29sOwogICAgIFN0cmluZyBtX2V4dGVuc2lvbnM7CiAKLSAgICBU
aW1lciBtX3Jlc3VtZVRpbWVyOwotICAgIGJvb2wgbV9zaG91bGREZWxheUV2ZW50RmlyaW5nIHsg
ZmFsc2UgfTsKLSAgICBEZXF1ZTxSZWY8RXZlbnQ+PiBtX3BlbmRpbmdFdmVudHM7CiAgICAgYm9v
bCBtX2Rpc3BhdGNoZWRFcnJvckV2ZW50IHsgZmFsc2UgfTsKICAgICBSZWZQdHI8UGVuZGluZ0Fj
dGl2aXR5PFdlYlNvY2tldD4+IG1fcGVuZGluZ0FjdGl2aXR5OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UYXNrU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGFza1Nv
dXJjZS5oCmluZGV4IDJkYTQ3YmFkNmM3M2E2YmE1YmYyODNiOGQzNTJmNDBkMjFhZjAxNGYuLjc5
YzEzNTAzMTE2N2QzN2M5OWMwM2E2MjQ5ODkwYmI2OTMyMDg5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UYXNrU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tT
b3VyY2UuaApAQCAtNDUsNiArNDUsNyBAQCBlbnVtIGNsYXNzIFRhc2tTb3VyY2UgOiB1aW50OF90
IHsKICAgICBVc2VySW50ZXJhY3Rpb24sCiAgICAgV2ViR0wsCiAgICAgV2ViWFIsCisgICAgV2Vi
U29ja2V0LAogCiAgICAgLy8gSW50ZXJuYWwgdG8gV2ViQ29yZQogICAgIEludGVybmFsQXN5bmNU
YXNrLCAvLyBTYWZlIHRvIHJlLW9yZGVyIG9yIGRlbGF5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVmMTZlNTQ2YTdkNzgz
NWQzYWM4NDRiMDdjZTQ0NmEwZmFlZmU4YWMuLjlmMDY2MDM2OTdiMjJhNWI4Nzk1MTg3ZDA5OTg4
NWM1Y2U1ZjQ3ZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0xMC0xNCAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgR3VhcmFudGVlIG9yZGVyIG9mIFdl
YlNvY2tldCBldmVudHMgaW4gY2FzZSBvZiBiZWluZyByZXN1bWVkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2NjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmUuaHRtbDoKKyAgICAgICAgVGhlIFdl
YlNvY2tldCBzZXJ2ZXIgd2FzIHJhY2luZyB0byBjbG9zZSB0aGUgY29ubmVjdGlvbiB3aXRoIHRo
ZSBVc2VyIEFnZW50LgorICAgICAgICBUaGUgcGF0Y2ggcXVldWVpbmcgYSB0YXNrIHRvIGZpcmUg
ZXZlbnRzIGlzIGZ1cnRoZXIgYW1wbGlmeWluZyB0aGlzIHJhY2UuCisgICAgICAgIFRvIG1ha2Ug
dGhlIHRlc3Qgbm9uIGZsYWt5LCB3ZSB1c2UgYW4gZWNobyBzZXJ2ZXIgdGhhdCB3YWl0cyBmb3Ig
VXNlciBBZ2VudCB0byBjbG9zZSB0aGUgY29ubmVjdGlvbi4KKwogMjAyMS0xMC0xMiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFdl
YlJUQyBtZWRpYSBjYXBhYmlsaXRpZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4
IDllZDAxOTc2YjdhZTg5OTNmNDQwNmNjODdkMDFiYmEyZGYxNWI0ODAuLjljODRkODA4MjJhNmVj
ODY0ZTEyMmQzODZkMDI3NTQxM2Y4M2U2MjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTEwLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBHdWFyYW50ZWUgb3JkZXIgb2YgV2ViU29ja2V0IGV2ZW50cyBp
biBjYXNlIG9mIGJlaW5nIHJlc3VtZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTY2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvaW50ZXJmYWNl
cy9XZWJTb2NrZXQvY2xvc2UvY2xvc2UtbmVzdGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9yZWFkeVN0
YXRlLzAwMy1leHBlY3RlZC50eHQ6CisKIDIwMjEtMTAtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBXZWJSVEMgbWVkaWEgY2Fw
YWJpbGl0aWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2luc3BlY3Rvci9zZW5kLWFuZC1yZWNlaXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9zZW5kLWFuZC1yZWNlaXZl
Lmh0bWwKaW5kZXggYWFmMGQxMjQ3M2FiNzNmNzE5YjA3NTc4NTA5YTIyNGEwYjBiMjg1NS4uNzg1
NDliNTYwMDc2M2FhOGNhMTRjMzhiYmY0NjMxMGI3ODgwOTI0MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Ivc2VuZC1hbmQt
cmVjZWl2ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmUuaHRtbApAQCAtOSw3ICs5LDcgQEAgbGV0
IHdlYlNvY2tldCA9IG51bGw7CiAKIGZ1bmN0aW9uIGNyZWF0ZVdlYlNvY2tldENvbm5lY3Rpb24o
KQogewotICAgIHdlYlNvY2tldCA9IG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL2VjaG8iKTsKKyAgICB3ZWJTb2NrZXQgPSBu
ZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oeWJpL2Vj
aG8iKTsKIAogICAgIHdlYlNvY2tldC5vbm9wZW4gPSBmdW5jdGlvbigpCiAgICAgewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2Nr
ZXRzL2ludGVyZmFjZXMvV2ViU29ja2V0L2Nsb3NlL2Nsb3NlLW5lc3RlZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMv
aW50ZXJmYWNlcy9XZWJTb2NrZXQvY2xvc2UvY2xvc2UtbmVzdGVkLWV4cGVjdGVkLnR4dAppbmRl
eCAwNjk5ZWQwZTUyMjJkM2JlY2I5NGYxYjAxZDViMDY0Mzg3MzVlZTMwLi5lY2ExMGZiZjIzZTcw
Y2MzOTQyNmEwYTkyOTkwZDMxOTIzNzQyODdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvaW50ZXJmYWNlcy9XZWJTb2Nr
ZXQvY2xvc2UvY2xvc2UtbmVzdGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvaW50ZXJmYWNlcy9XZWJTb2Nr
ZXQvY2xvc2UvY2xvc2UtbmVzdGVkLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJ
TCBXZWJTb2NrZXRzOiBjbG9zZSgpIGluIGNsb3NlIGV2ZW50IGhhbmRsZXIgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgMiBidXQgZ290IDMKK1BBU1MgV2ViU29ja2V0czogY2xvc2UoKSBpbiBjbG9z
ZSBldmVudCBoYW5kbGVyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9yZWFkeVN0
YXRlLzAwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnNvY2tldHMvaW50ZXJmYWNlcy9XZWJTb2NrZXQvcmVhZHlTdGF0ZS8wMDMt
ZXhwZWN0ZWQudHh0CmluZGV4IDRhY2Y2NjkwMTBmNWI1ZTZiZjJmNDJjNTEzYTI3YTE3Y2NhMDIx
MTAuLjM3ZTAyYjVkMTZlZTkyOGE3YmUxNzg5NGM4Y2UzNjdlNDNiYWI1ZTUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9p
bnRlcmZhY2VzL1dlYlNvY2tldC9yZWFkeVN0YXRlLzAwMy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2ludGVy
ZmFjZXMvV2ViU29ja2V0L3JlYWR5U3RhdGUvMDAzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMg
QEAKIAotRkFJTCBXZWJTb2NrZXRzOiBkZWxldGUgcmVhZHlTdGF0ZSBhc3NlcnRfZXF1YWxzOiBk
ZWxldGUgd3MucmVhZHlTdGF0ZSBleHBlY3RlZCAyIGJ1dCBnb3QgMworUEFTUyBXZWJTb2NrZXRz
OiBkZWxldGUgcmVhZHlTdGF0ZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441590</attachid>
            <date>2021-10-18 05:21:33 -0700</date>
            <delta_ts>2021-10-18 06:57:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231664-20211018142131.patch</filename>
            <type>text/plain</type>
            <size>23871</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWYxNGNiMWY2NmM1MzQ4
Yzg4MGUxOTRmNTIwYzRlNWQzNGIzZTZmZi4uYzE1ZmQzMTFmZmM4YTM5MjlkYWNlODVmZjFlZWE3
NmI4YjBlYmU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTEwLTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBHdWFyYW50ZWUgb3JkZXIg
b2YgV2ViU29ja2V0IGV2ZW50cyBpbiBjYXNlIG9mIGJlaW5nIHJlc3VtZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTY2NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIFdlYlNvY2tl
dCB0YXNrIHNvdXJjZSBhcyBwZXIgc3BlYy4KKyAgICAgICAgVGhpcyBhbGlnbnMgd2l0aCBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWItc29ja2V0cy5odG1sIHdoZXJl
IHRoZSB1c2VyIGFnZW50IGlzIGV4cGVjdGVkIHRvIGEgcXVldWUgdGFzaworICAgICAgICB3aGVu
IGNsb3NpbmcgaGFuZHNoYWtlIGlzIHN0YXJ0ZWQgYW5kIHNvIG9uLgorCisgICAgICAgIEJ5IHF1
ZXVpbmcgYW4gZXZlbnQgbG9vcCB0YXNrIHRvIGZpcmUgV2ViU29ja2V0IGV2ZW50cywgd2UgZW5z
dXJlIG9yZGVyaW5nIG9mIGV2ZW50cyBldmVuIGluIGNhc2Ugb2YgcmVzdW1pbmcsIHdoaWxlIHNp
bXBsaWZ5aW5nIHRoZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgVGhpcyBtYWtlcyBpdCB1c2Ug
dGhlIGV2ZW50IGxvb3Agd2hpY2ggaXMgZXh0cmEgbmljZSBpZiB3ZSByZXNvbHZlIHByb21pc2Vz
IGluIGV2ZW50IGxpc3RlbmVycy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
LgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXQ6OldlYlNvY2tldCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJT
b2NrZXQ6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpyZXN1bWUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldDo6ZGlzcGF0Y2hPclF1ZXVlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29j
a2V0OjpyZXN1bWVUaW1lckZpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogZG9tL1Rhc2tTb3VyY2UuaDoKKwogMjAyMS0x
MC0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3Nl
IE1lZGlhQ2FwYWJpbGl0aWVzIHRvIFdvcmtlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjAxYzA0OWIzYjE4MzBl
NzhiNTA0ODYwM2FhZTJkMTkyNjgzMmEzMy4uNGVmN2E4MmZjODA3MTNjZTkzYTJlYzRhYjQ0ZDRl
M2FjYjAyNDdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMS0xMC0xOCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgR3VhcmFudGVlIG9yZGVyIG9m
IFdlYlNvY2tldCBldmVudHMgaW4gY2FzZSBvZiBiZWluZyByZXN1bWVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2NjQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBubyBsb25nZXIgbmVlZCB0byBo
YW5kbGUgcmVzdW1lL3N1c3BlbmQgaW4gV2ViU29ja2V0Q2hhbm5lbCBsYXllciBzaW5jZSBXZWJT
b2NrZXQgd2lsbCBkZWFsIHdpdGggaXRzZWxmIGJ5IGVucXVldWluZyBhIHRhc2sgaW4gdGhlIGV2
ZW50IGxvb3AuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5l
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZVRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlQmluYXJ5RGF0YSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
U29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlNvY2tldENoYW5uZWw6OnN1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRD
aGFubmVsOjpyZXN1bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRT
ZW5kSGFuZHNoYWtlUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6
OmRpZFJlY2VpdmVIYW5kc2hha2VSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tl
dENoYW5uZWw6OmVucXVldWVUYXNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oOgorCiAyMDIxLTEwLTE1ICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQgTWFuYWdlZCBOb3RpZmljYXRpb25z
OiBTa2VsZXRvbiBOb3RpZmljYXRpb25Qcm92aWRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggNjk0MDFhMzI4MDgxMzQ3YWU2Y2Ey
M2RhNjIwYjg4Yjg3OGRmMTRlZS4uNmNjMjVmNWU0MmJhZWIzZjQ0YWEwNzdlZmY0ZjUyOGM2OTEw
NTQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dC5jcHAKQEAgLTE0NSw3ICsxNDUsNiBAQCBXZWJTb2NrZXQ6OldlYlNvY2tldChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQog
ICAgICwgbV9zdWJwcm90b2NvbChlbXB0eVN0cmluZygpKQogICAgICwgbV9leHRlbnNpb25zKGVt
cHR5U3RyaW5nKCkpCi0gICAgLCBtX3Jlc3VtZVRpbWVyKCp0aGlzLCAmV2ViU29ja2V0OjpyZXN1
bWVUaW1lckZpcmVkKQogewogICAgIExvY2tlciBsb2NrZXIgeyBhbGxBY3RpdmVXZWJTb2NrZXRz
TG9jaygpIH07CiAgICAgYWxsQWN0aXZlV2ViU29ja2V0cygpLmFkZCh0aGlzKTsKQEAgLTIxMCwx
NCArMjA5LDEyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFdlYlNvY2tldDo6Y29ubmVjdChjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKIAogdm9pZCBXZWJTb2NrZXQ6OmZh
aWxBc3luY2hyb25vdXNseSgpCiB7Ci0gICAgbV9wZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGlu
Z0FjdGl2aXR5KCp0aGlzKTsKLQotICAgIC8vIFdlIG11c3QgYmxvY2sgdGhpcyBjb25uZWN0aW9u
LiBJbnN0ZWFkIG9mIHRocm93aW5nIGFuIGV4Y2VwdGlvbiwgd2UgaW5kaWNhdGUgdGhpcwotICAg
IC8vIHVzaW5nIHRoZSBlcnJvciBldmVudC4gQnV0IHNpbmNlIHRoaXMgY29kZSBleGVjdXRlcyBh
cyBwYXJ0IG9mIHRoZSBXZWJTb2NrZXQncwotICAgIC8vIGNvbnN0cnVjdG9yLCB3ZSBoYXZlIHRv
IHdhaXQgdW50aWwgdGhlIGNvbnN0cnVjdG9yIGhhcyBjb21wbGV0ZWQgYmVmb3JlIGZpcmluZyB0
aGUKLSAgICAvLyBldmVudDsgb3RoZXJ3aXNlLCB1c2VycyBjYW4ndCBjb25uZWN0IHRvIHRoZSBl
dmVudC4KKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6
OldlYlNvY2tldCwgW3RoaXNdIHsKKyAgICAgICAgLy8gV2UgbXVzdCBibG9jayB0aGlzIGNvbm5l
Y3Rpb24uIEluc3RlYWQgb2YgdGhyb3dpbmcgYW4gZXhjZXB0aW9uLCB3ZSBpbmRpY2F0ZSB0aGlz
CisgICAgICAgIC8vIHVzaW5nIHRoZSBlcnJvciBldmVudC4gQnV0IHNpbmNlIHRoaXMgY29kZSBl
eGVjdXRlcyBhcyBwYXJ0IG9mIHRoZSBXZWJTb2NrZXQncworICAgICAgICAvLyBjb25zdHJ1Y3Rv
ciwgd2UgaGF2ZSB0byB3YWl0IHVudGlsIHRoZSBjb25zdHJ1Y3RvciBoYXMgY29tcGxldGVkIGJl
Zm9yZSBmaXJpbmcgdGhlCisgICAgICAgIC8vIGV2ZW50OyBvdGhlcndpc2UsIHVzZXJzIGNhbid0
IGNvbm5lY3QgdG8gdGhlIGV2ZW50LgogCi0gICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5w
b3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGF1dG8mKSB7CiAg
ICAgICAgIHRoaXMtPmRpc3BhdGNoT3JRdWV1ZUVycm9yRXZlbnQoKTsKICAgICAgICAgdGhpcy0+
c3RvcCgpOwogICAgIH0pOwpAQCAtNTExLDQzICs1MDgsMjIgQEAgdm9pZCBXZWJTb2NrZXQ6OmNv
bnRleHREZXN0cm95ZWQoKQogCiB2b2lkIFdlYlNvY2tldDo6c3VzcGVuZChSZWFzb25Gb3JTdXNw
ZW5zaW9uIHJlYXNvbikKIHsKLSAgICBpZiAobV9yZXN1bWVUaW1lci5pc0FjdGl2ZSgpKQotICAg
ICAgICBtX3Jlc3VtZVRpbWVyLnN0b3AoKTsKLQotICAgIG1fc2hvdWxkRGVsYXlFdmVudEZpcmlu
ZyA9IHRydWU7CisgICAgaWYgKCFtX2NoYW5uZWwpCisgICAgICAgIHJldHVybjsKIAotICAgIGlm
IChtX2NoYW5uZWwpIHsKLSAgICAgICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9u
OjpCYWNrRm9yd2FyZENhY2hlKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIHdpbGwgY2F1c2UgZGlk
Q2xvc2UoKSB0byBiZSBjYWxsZWQuCi0gICAgICAgICAgICBtX2NoYW5uZWwtPmZhaWwoIldlYlNv
Y2tldCBpcyBjbG9zZWQgZHVlIHRvIHN1c3BlbnNpb24uIik7Ci0gICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgbV9jaGFubmVsLT5zdXNwZW5kKCk7CisgICAgaWYgKHJlYXNvbiA9PSBSZWFzb25G
b3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7CisgICAgICAgIC8vIFRoaXMgd2lsbCBj
YXVzZSBkaWRDbG9zZSgpIHRvIGJlIGNhbGxlZC4KKyAgICAgICAgbV9jaGFubmVsLT5mYWlsKCJX
ZWJTb2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9uLiIpOworICAgICAgICByZXR1cm47
CiAgICAgfQorCisgICAgbV9jaGFubmVsLT5zdXNwZW5kKCk7CiB9CiAKIHZvaWQgV2ViU29ja2V0
OjpyZXN1bWUoKQogewogICAgIGlmIChtX2NoYW5uZWwpCiAgICAgICAgIG1fY2hhbm5lbC0+cmVz
dW1lKCk7Ci0KLSAgICBpZiAoIW1fcGVuZGluZ0V2ZW50cy5pc0VtcHR5KCkgJiYgIW1fcmVzdW1l
VGltZXIuaXNBY3RpdmUoKSkgewotICAgICAgICAvLyBGaXJlIHRoZSBwZW5kaW5nIGV2ZW50cyBp
biBhIHRpbWVyIGFzIHdlIGFyZSBub3QgYWxsb3dlZCB0byBleGVjdXRlIGFyYml0cmFyeSBKUyBm
cm9tIHJlc3VtZSgpLgotICAgICAgICBtX3Jlc3VtZVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwot
ICAgIH0KLQotICAgIG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZyA9IGZhbHNlOwotfQotCi12b2lk
IFdlYlNvY2tldDo6cmVzdW1lVGltZXJGaXJlZCgpCi17Ci0gICAgUmVmPFdlYlNvY2tldD4gcHJv
dGVjdGVkVGhpcygqdGhpcyk7Ci0KLSAgICBBU1NFUlQoIW1fcGVuZGluZ0V2ZW50cy5pc0VtcHR5
KCkpOwotCi0gICAgLy8gQ2hlY2sgbV9zaG91bGREZWxheUV2ZW50RmlyaW5nIHdoZW4gaXRlcmF0
aW5nIGluIGNhc2UgZmlyaW5nIGFuIGV2ZW50IGNhdXNlcwotICAgIC8vIHN1c3BlbmQoKSB0byBi
ZSBjYWxsZWQuCi0gICAgd2hpbGUgKCFtX3BlbmRpbmdFdmVudHMuaXNFbXB0eSgpICYmICFtX3No
b3VsZERlbGF5RXZlbnRGaXJpbmcpCi0gICAgICAgIGRpc3BhdGNoRXZlbnQobV9wZW5kaW5nRXZl
bnRzLnRha2VGaXJzdCgpKTsKIH0KIAogdm9pZCBXZWJTb2NrZXQ6OnN0b3AoKQpAQCAtNTU2LDcg
KzUzMiw2IEBAIHZvaWQgV2ViU29ja2V0OjpzdG9wKCkKICAgICAgICAgbV9jaGFubmVsLT5kaXNj
b25uZWN0KCk7CiAgICAgbV9jaGFubmVsID0gbnVsbHB0cjsKICAgICBtX3N0YXRlID0gQ0xPU0VE
OwotICAgIG1fcGVuZGluZ0V2ZW50cy5jbGVhcigpOwogICAgIEFjdGl2ZURPTU9iamVjdDo6c3Rv
cCgpOwogICAgIG1fcGVuZGluZ0FjdGl2aXR5ID0gbnVsbHB0cjsKIH0KQEAgLTU2OSw0NiArNTQ0
LDYxIEBAIGNvbnN0IGNoYXIqIFdlYlNvY2tldDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0
CiB2b2lkIFdlYlNvY2tldDo6ZGlkQ29ubmVjdCgpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJT
b2NrZXQgJXAgZGlkQ29ubmVjdCgpIiwgdGhpcyk7Ci0gICAgaWYgKG1fc3RhdGUgIT0gQ09OTkVD
VElORykgewotICAgICAgICBkaWRDbG9zZSgwLCBDbG9zaW5nSGFuZHNoYWtlSW5jb21wbGV0ZSwg
V2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVBYm5vcm1hbENsb3N1cmUsIGVtcHR5U3Ry
aW5nKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOwotICAgIG1fc3RhdGUgPSBPUEVOOwotICAgIG1fc3VicHJvdG9jb2wgPSBt
X2NoYW5uZWwtPnN1YnByb3RvY29sKCk7Ci0gICAgbV9leHRlbnNpb25zID0gbV9jaGFubmVsLT5l
eHRlbnNpb25zKCk7Ci0gICAgZGlzcGF0Y2hPclF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkub3BlbkV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2Vs
YWJsZTo6Tm8pKTsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tT
b3VyY2U6OldlYlNvY2tldCwgW3RoaXNdIHsKKyAgICAgICAgaWYgKG1fc3RhdGUgPT0gQ0xPU0VE
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAobV9zdGF0ZSAhPSBDT05ORUNUSU5H
KSB7CisgICAgICAgICAgICBkaWRDbG9zZSgwLCBDbG9zaW5nSGFuZHNoYWtlSW5jb21wbGV0ZSwg
V2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVBYm5vcm1hbENsb3N1cmUsIGVtcHR5U3Ry
aW5nKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIEFTU0VSVChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgICAgICBtX3N0YXRlID0gT1BFTjsKKyAgICAg
ICAgbV9zdWJwcm90b2NvbCA9IG1fY2hhbm5lbC0+c3VicHJvdG9jb2woKTsKKyAgICAgICAgbV9l
eHRlbnNpb25zID0gbV9jaGFubmVsLT5leHRlbnNpb25zKCk7CisgICAgICAgIGRpc3BhdGNoRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkub3BlbkV2ZW50LCBFdmVudDo6Q2FuQnViYmxl
OjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAgICB9KTsKIH0KIAogdm9pZCBXZWJT
b2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbXNnKQogewogICAgIExPRyhO
ZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRpZFJlY2VpdmVNZXNzYWdlKCkgVGV4dCBtZXNzYWdlICcl
cyciLCB0aGlzLCBtc2cudXRmOCgpLmRhdGEoKSk7Ci0gICAgaWYgKG1fc3RhdGUgIT0gT1BFTikK
LSAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwot
ICAgIGRpc3BhdGNoT3JRdWV1ZUV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKG1zZywgU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkpKTsKKyAgICBxdWV1ZVRhc2tLZWVw
aW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OldlYlNvY2tldCwgW3RoaXMsIG1zZ10g
eworICAgICAgICBpZiAobV9zdGF0ZSAhPSBPUEVOKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICAgICAgZGlzcGF0Y2hF
dmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShtc2csIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91
cmwpLT50b1N0cmluZygpKSk7CisgICAgfSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0OjpkaWRSZWNl
aXZlQmluYXJ5RGF0YShWZWN0b3I8dWludDhfdD4mJiBiaW5hcnlEYXRhKQogewogICAgIExPRyhO
ZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRpZFJlY2VpdmVCaW5hcnlEYXRhKCkgJXUgYnl0ZSBiaW5h
cnkgbWVzc2FnZSIsIHRoaXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihiaW5hcnlEYXRhLnNpemUo
KSkpOwotICAgIHN3aXRjaCAobV9iaW5hcnlUeXBlKSB7Ci0gICAgY2FzZSBCaW5hcnlUeXBlOjpC
bG9iOgotICAgICAgICAvLyBGSVhNRTogV2UganVzdCByZWNlaXZlZCB0aGUgZGF0YSBmcm9tIE5l
dHdvcmtQcm9jZXNzLCBhbmQgYXJlIHNlbmRpbmcgaXQgYmFjay4gVGhpcyBpcyBpbmVmZmljaWVu
dC4KLSAgICAgICAgZGlzcGF0Y2hPclF1ZXVlRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoQmxv
Yjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgV1RGTW92ZShiaW5hcnlEYXRhKSwg
ZW1wdHlTdHJpbmcoKSksIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91cmwpLT50b1N0cmluZygp
KSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQmluYXJ5VHlwZTo6QXJyYXlCdWZmZXI6Ci0g
ICAgICAgIGRpc3BhdGNoT3JRdWV1ZUV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKEFycmF5QnVm
ZmVyOjpjcmVhdGUoYmluYXJ5RGF0YS5kYXRhKCksIGJpbmFyeURhdGEuc2l6ZSgpKSwgU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkpKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgfQorICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6
V2ViU29ja2V0LCBbdGhpcywgYmluYXJ5RGF0YSA9IFdURk1vdmUoYmluYXJ5RGF0YSldKCkgbXV0
YWJsZSB7CisgICAgICAgIGlmIChtX3N0YXRlICE9IE9QRU4pCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIHN3aXRjaCAobV9iaW5hcnlUeXBlKSB7CisgICAgICAgIGNhc2UgQmluYXJ5VHlw
ZTo6QmxvYjoKKyAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBqdXN0IHJlY2VpdmVkIHRoZSBkYXRh
IGZyb20gTmV0d29ya1Byb2Nlc3MsIGFuZCBhcmUgc2VuZGluZyBpdCBiYWNrLiBUaGlzIGlzIGlu
ZWZmaWNpZW50LgorICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0
ZShCbG9iOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBXVEZNb3ZlKGJpbmFyeURh
dGEpLCBlbXB0eVN0cmluZygpKSwgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3Ry
aW5nKCkpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEJpbmFyeVR5cGU6OkFy
cmF5QnVmZmVyOgorICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0
ZShBcnJheUJ1ZmZlcjo6Y3JlYXRlKGJpbmFyeURhdGEuZGF0YSgpLCBiaW5hcnlEYXRhLnNpemUo
KSksIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91cmwpLT50b1N0cmluZygpKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0pOwogfQogCiB2b2lkIFdlYlNvY2tldDo6ZGlk
UmVjZWl2ZU1lc3NhZ2VFcnJvcigpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAg
ZGlkUmVjZWl2ZUVycm9yTWVzc2FnZSgpIiwgdGhpcyk7Ci0gICAgbV9zdGF0ZSA9IENMT1NFRDsK
LSAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBkaXNwYXRjaE9yUXVl
dWVFcnJvckV2ZW50KCk7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBU
YXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlzXSB7CisgICAgICAgIGlmIChtX3N0YXRlID09IENM
T1NFRCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9zdGF0ZSA9IENMT1NFRDsKKyAg
ICAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIC8vIEZJWE1F
OiBBcyBwZXIgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViLXNvY2tl
dHMuaHRtbCNmZWVkYmFjay1mcm9tLXRoZS1wcm90b2NvbDpjb25jZXB0LXdlYnNvY2tldC1jbG9z
ZWQsIHdlIHNob3VsZCBzeW5jaHJvbm91c2x5IGZpcmUgYSBjbG9zZSBldmVudC4KKyAgICAgICAg
ZGlzcGF0Y2hPclF1ZXVlRXJyb3JFdmVudCgpOworICAgIH0pOwogfQogCiB2b2lkIFdlYlNvY2tl
dDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQodW5zaWduZWQgYnVmZmVyZWRBbW91bnQpCkBAIC02
MjIsMjYgKzYxMiwzMyBAQCB2b2lkIFdlYlNvY2tldDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQo
dW5zaWduZWQgYnVmZmVyZWRBbW91bnQpCiB2b2lkIFdlYlNvY2tldDo6ZGlkU3RhcnRDbG9zaW5n
SGFuZHNoYWtlKCkKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRTdGFydENs
b3NpbmdIYW5kc2hha2UoKSIsIHRoaXMpOwotICAgIG1fc3RhdGUgPSBDTE9TSU5HOworICAgIHF1
ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBb
dGhpc10geworICAgICAgICBpZiAobV9zdGF0ZSA9PSBDTE9TRUQpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIG1fc3RhdGUgPSBDTE9TSU5HOworICAgIH0pOwogfQogCiB2b2lkIFdlYlNv
Y2tldDo6ZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQsIENsb3NpbmdI
YW5kc2hha2VDb21wbGV0aW9uU3RhdHVzIGNsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uLCB1bnNp
Z25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikKIHsKICAgICBMT0coTmV0d29y
aywgIldlYlNvY2tldCAlcCBkaWRDbG9zZSgpIiwgdGhpcyk7Ci0gICAgaWYgKCFtX2NoYW5uZWwp
Ci0gICAgICAgIHJldHVybjsKLSAgICBib29sIHdhc0NsZWFuID0gbV9zdGF0ZSA9PSBDTE9TSU5H
ICYmICF1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCAmJiBjbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlv
biA9PSBDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGUgJiYgY29kZSAhPSBXZWJTb2NrZXRDaGFubmVs
OjpDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xvc3VyZTsKLSAgICBtX3N0YXRlID0gQ0xPU0VEOwot
ICAgIG1fYnVmZmVyZWRBbW91bnQgPSB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudDsKLSAgICBBU1NF
UlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0
QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OldlYlNvY2tldCwgW3RoaXMsIHVuaGFuZGxlZEJ1ZmZl
cmVkQW1vdW50LCBjbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvbiwgY29kZSwgcmVhc29uXSB7Cisg
ICAgICAgIGlmICghbV9jaGFubmVsIHx8IG1fc3RhdGUgPT0gQ0xPU0VEKQorICAgICAgICAgICAg
cmV0dXJuOwogCi0gICAgZGlzcGF0Y2hPclF1ZXVlRXZlbnQoQ2xvc2VFdmVudDo6Y3JlYXRlKHdh
c0NsZWFuLCBjb2RlLCByZWFzb24pKTsKKyAgICAgICAgYm9vbCB3YXNDbGVhbiA9IG1fc3RhdGUg
PT0gQ0xPU0lORyAmJiAhdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQgJiYgY2xvc2luZ0hhbmRzaGFr
ZUNvbXBsZXRpb24gPT0gQ2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRlICYmIGNvZGUgIT0gV2ViU29j
a2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVBYm5vcm1hbENsb3N1cmU7CisgICAgICAgIG1fc3Rh
dGUgPSBDTE9TRUQ7CisgICAgICAgIG1fYnVmZmVyZWRBbW91bnQgPSB1bmhhbmRsZWRCdWZmZXJl
ZEFtb3VudDsKKyAgICAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAKLSAg
ICBpZiAobV9jaGFubmVsKSB7Ci0gICAgICAgIG1fY2hhbm5lbC0+ZGlzY29ubmVjdCgpOwotICAg
ICAgICBtX2NoYW5uZWwgPSBudWxscHRyOwotICAgIH0KLSAgICBtX3BlbmRpbmdBY3Rpdml0eSA9
IG51bGxwdHI7CisgICAgICAgIGRpc3BhdGNoRXZlbnQoQ2xvc2VFdmVudDo6Y3JlYXRlKHdhc0Ns
ZWFuLCBjb2RlLCByZWFzb24pKTsKKworICAgICAgICBpZiAobV9jaGFubmVsKSB7CisgICAgICAg
ICAgICBtX2NoYW5uZWwtPmRpc2Nvbm5lY3QoKTsKKyAgICAgICAgICAgIG1fY2hhbm5lbCA9IG51
bGxwdHI7CisgICAgICAgIH0KKyAgICAgICAgbV9wZW5kaW5nQWN0aXZpdHkgPSBudWxscHRyOwor
ICAgIH0pOwogfQogCiB2b2lkIFdlYlNvY2tldDo6ZGlkVXBncmFkZVVSTCgpCkBAIC02NzAsMTUg
KzY2Nyw3IEBAIHZvaWQgV2ViU29ja2V0OjpkaXNwYXRjaE9yUXVldWVFcnJvckV2ZW50KCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgbV9kaXNwYXRjaGVkRXJyb3JFdmVudCA9IHRydWU7Ci0gICAg
ZGlzcGF0Y2hPclF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVu
dCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Ci19Ci0K
LXZvaWQgV2ViU29ja2V0OjpkaXNwYXRjaE9yUXVldWVFdmVudChSZWY8RXZlbnQ+JiYgZXZlbnQp
Ci17Ci0gICAgaWYgKG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZykKLSAgICAgICAgbV9wZW5kaW5n
RXZlbnRzLmFwcGVuZChXVEZNb3ZlKGV2ZW50KSk7Ci0gICAgZWxzZQotICAgICAgICBkaXNwYXRj
aEV2ZW50KGV2ZW50KTsKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLmVycm9yRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKaW5kZXggYTJmZTVkZDlhZGM0ZTI5NjNmYTY2
MTJhNzFjNGJlYTc1MmMyYjc0ZS4uOWQxOWJiOTFmNzE2MzYzNzE5YWFiZGE3ZDNiMzczYjhjYjE2
YjYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQu
aApAQCAtMzMsMTAgKzMzLDggQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNs
dWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCi0jaW5jbHVkZSAi
VGltZXIuaCIKICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5l
bENsaWVudC5oIgotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KIApAQCAtMTAxLDkgKzk5LDcgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
OwogCi0gICAgdm9pZCByZXN1bWVUaW1lckZpcmVkKCk7CiAgICAgdm9pZCBkaXNwYXRjaE9yUXVl
dWVFcnJvckV2ZW50KCk7Ci0gICAgdm9pZCBkaXNwYXRjaE9yUXVldWVFdmVudChSZWY8RXZlbnQ+
JiYpOwogCiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWw7CiAgICAgdm9pZCBzdXNw
ZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIGZpbmFsOwpAQCAtMTQyLDkgKzEzOCw2IEBAIHByaXZh
dGU6CiAgICAgU3RyaW5nIG1fc3VicHJvdG9jb2w7CiAgICAgU3RyaW5nIG1fZXh0ZW5zaW9uczsK
IAotICAgIFRpbWVyIG1fcmVzdW1lVGltZXI7Ci0gICAgYm9vbCBtX3Nob3VsZERlbGF5RXZlbnRG
aXJpbmcgeyBmYWxzZSB9OwotICAgIERlcXVlPFJlZjxFdmVudD4+IG1fcGVuZGluZ0V2ZW50czsK
ICAgICBib29sIG1fZGlzcGF0Y2hlZEVycm9yRXZlbnQgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxQ
ZW5kaW5nQWN0aXZpdHk8V2ViU29ja2V0Pj4gbV9wZW5kaW5nQWN0aXZpdHk7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UYXNrU291cmNlLmgKaW5kZXggMmRhNDdiYWQ2YzczYTZiYTViZjI4M2I4ZDM1MmY0MGQyMWFm
MDE0Zi4uNzljMTM1MDMxMTY3ZDM3Yzk5YzAzYTYyNDk4OTBiYjY5MzIwODk2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVGFza1NvdXJjZS5oCkBAIC00NSw2ICs0NSw3IEBAIGVudW0gY2xhc3MgVGFza1NvdXJjZSA6
IHVpbnQ4X3QgewogICAgIFVzZXJJbnRlcmFjdGlvbiwKICAgICBXZWJHTCwKICAgICBXZWJYUiwK
KyAgICBXZWJTb2NrZXQsCiAKICAgICAvLyBJbnRlcm5hbCB0byBXZWJDb3JlCiAgICAgSW50ZXJu
YWxBc3luY1Rhc2ssIC8vIFNhZmUgdG8gcmUtb3JkZXIgb3IgZGVsYXkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4
IDkxODU2YTU3NzI5NjcyMmQyNGFiZTY5NzgzYTAxNmFhOGZiNzNhZDAuLjMxNDJkNzc4YzI3NDBm
N2QyNjJhZWYyMTUyODgwOTc4MzkxODRjYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0yMzIsNyArMjMyLDYg
QEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaXNjb25uZWN0KCkKIHsKICAgICBtX2NsaWVudCA9
IG51bGxwdHI7CiAgICAgbV9kb2N1bWVudCA9IG51bGxwdHI7Ci0gICAgbV9wZW5kaW5nVGFza3Mu
Y2xlYXIoKTsKICAgICBtX21lc3NhZ2VRdWV1ZS5jbGVhcigpOwogCiAgICAgbV9pbnNwZWN0b3Iu
ZGlkQ2xvc2VXZWJTb2NrZXQobV9kb2N1bWVudC5nZXQoKSk7CkBAIC0yNDgsMTMgKzI0Nyw2IEBA
IHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkQ29ubmVjdChTdHJpbmcmJiBzdWJwcm90b2NvbCwg
U3RyaW5nJiYgZXh0ZW5zaW9ucykKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkgewotICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywg
c3VicHJvdG9jb2wgPSBXVEZNb3ZlKHN1YnByb3RvY29sKSwgZXh0ZW5zaW9ucyA9IFdURk1vdmUo
ZXh0ZW5zaW9ucyldICgpIG11dGFibGUgewotICAgICAgICAgICAgZGlkQ29ubmVjdChXVEZNb3Zl
KHN1YnByb3RvY29sKSwgV1RGTW92ZShleHRlbnNpb25zKSk7Ci0gICAgICAgIH0pOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCiAgICAgbV9zdWJwcm90b2NvbCA9IFdURk1vdmUoc3VicHJvdG9j
b2wpOwogICAgIG1fZXh0ZW5zaW9ucyA9IFdURk1vdmUoZXh0ZW5zaW9ucyk7CiAgICAgbV9jbGll
bnQtPmRpZENvbm5lY3QoKTsKQEAgLTI4NiwxMyArMjc4LDYgQEAgdm9pZCBXZWJTb2NrZXRDaGFu
bmVsOjpkaWRSZWNlaXZlVGV4dChTdHJpbmcmJiBtZXNzYWdlKQogICAgIGlmICghbV9jbGllbnQp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2lzU3VzcGVuZGVkKSB7Ci0gICAgICAgIGVu
cXVldWVUYXNrKFt0aGlzLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKV0gKCkgbXV0YWJsZSB7
Ci0gICAgICAgICAgICBkaWRSZWNlaXZlVGV4dChXVEZNb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAg
fSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBhdXRvIHV0ZjhNZXNzYWdlID0gbWVz
c2FnZS51dGY4KCk7CiAgICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKG1f
ZG9jdW1lbnQuZ2V0KCksIGNyZWF0ZVdlYlNvY2tldEZyYW1lRm9yV2ViSW5zcGVjdG9yKHV0ZjhN
ZXNzYWdlLmRhdGFBc1VJbnQ4UHRyKCksIHV0ZjhNZXNzYWdlLmxlbmd0aCgpLCBXZWJTb2NrZXRG
cmFtZTo6T3BDb2RlOjpPcENvZGVUZXh0KSk7CiAKQEAgLTMwNywxNCArMjkyLDYgQEAgdm9pZCBX
ZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlQmluYXJ5RGF0YShJUEM6OkRhdGFSZWZlcmVuY2Um
JiBkYXRhKQogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICht
X2lzU3VzcGVuZGVkKSB7Ci0gICAgICAgIGVucXVldWVUYXNrKFt0aGlzLCBkYXRhID0gZGF0YS52
ZWN0b3IoKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBpZiAoIW1faXNDbG9zaW5nICYmIG1f
Y2xpZW50KQotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlQmluYXJ5RGF0YShX
VEZNb3ZlKGRhdGEpKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAg
ICBtX2luc3BlY3Rvci5kaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwg
Y3JlYXRlV2ViU29ja2V0RnJhbWVGb3JXZWJJbnNwZWN0b3IoZGF0YS5kYXRhKCksIGRhdGEuc2l6
ZSgpLCBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlOjpPcENvZGVCaW5hcnkpKTsKIAogICAgIG1fY2xp
ZW50LT5kaWRSZWNlaXZlQmluYXJ5RGF0YShkYXRhLnZlY3RvcigpKTsKQEAgLTMyNSwxMyArMzAy
LDYgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRDbG9zZSh1bnNpZ25lZCBzaG9ydCBjb2Rl
LCBTdHJpbmcmJiByZWFzb24pCiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKG1faXNTdXNwZW5kZWQpIHsKLSAgICAgICAgZW5xdWV1ZVRhc2soW3RoaXMsIGNv
ZGUsIHJlYXNvbiA9IFdURk1vdmUocmVhc29uKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBk
aWRDbG9zZShjb2RlLCBXVEZNb3ZlKHJlYXNvbikpOwotICAgICAgICB9KTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQogICAgIFdlYlNvY2tldEZyYW1lIGNsb3NpbmdGcmFtZShXZWJTb2NrZXRG
cmFtZTo6T3BDb2RlQ2xvc2UsIHRydWUsIGZhbHNlLCBmYWxzZSk7CiAgICAgbV9pbnNwZWN0b3Iu
ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0KCksIGNsb3NpbmdGcmFtZSk7
CiAgICAgbV9pbnNwZWN0b3IuZGlkQ2xvc2VXZWJTb2NrZXQobV9kb2N1bWVudC5nZXQoKSk7CkBA
IC0zNjQsMTMgKzMzNCw2IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZU1lc3Nh
Z2VFcnJvcihTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgaWYgKG1faXNTdXNwZW5kZWQpIHsKLSAgICAgICAgZW5xdWV1ZVRh
c2soW3RoaXMsIGVycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JNZXNzYWdlKV0gKCkgbXV0YWJs
ZSB7Ci0gICAgICAgICAgICBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKFdURk1vdmUoZXJyb3JNZXNz
YWdlKSk7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgbG9nRXJy
b3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CiAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoKTsKIH0KQEAgLTM4Miw0NCArMzQ1LDIwIEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6
bmV0d29ya1Byb2Nlc3NDcmFzaGVkKCkKIAogdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpzdXNwZW5k
KCkKIHsKLSAgICBtX2lzU3VzcGVuZGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBXZWJTb2NrZXRDaGFu
bmVsOjpyZXN1bWUoKQogewotICAgIFJlZiBwcm90ZWN0ZWRUaGlzIHsgKnRoaXMgfTsKLSAgICBt
X2lzU3VzcGVuZGVkID0gZmFsc2U7Ci0gICAgd2hpbGUgKCFtX2lzU3VzcGVuZGVkICYmICFtX3Bl
bmRpbmdUYXNrcy5pc0VtcHR5KCkpCi0gICAgICAgIG1fcGVuZGluZ1Rhc2tzLnRha2VGaXJzdCgp
KCk7Ci19Ci0KLXZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZVRhc2soRnVuY3Rpb248dm9p
ZCgpPiYmIHRhc2spCi17Ci0gICAgbV9wZW5kaW5nVGFza3MuYXBwZW5kKFdURk1vdmUodGFzaykp
OwogfQogCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFNlbmRIYW5kc2hha2VSZXF1ZXN0KFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiB7Ci0gICAgaWYgKG1faXNTdXNwZW5kZWQpIHsKLSAg
ICAgICAgZW5xdWV1ZVRhc2soW3RoaXMsIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpXSgpIG11
dGFibGUgewotICAgICAgICAgICAgZGlkU2VuZEhhbmRzaGFrZVJlcXVlc3QoV1RGTW92ZShyZXF1
ZXN0KSk7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgbV9pbnNw
ZWN0b3Iud2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KG1fZG9jdW1lbnQuZ2V0KCks
IHJlcXVlc3QpOwogICAgIG1faGFuZHNoYWtlUmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCk7CiB9
CiAKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3BvbnNlKFJl
c291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKIHsKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkgewot
ICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywgcmVzcG9uc2UgPSBXVEZNb3ZlKHJlc3BvbnNlKV0o
KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGRpZFJlY2VpdmVIYW5kc2hha2VSZXNwb25zZShXVEZN
b3ZlKHJlc3BvbnNlKSk7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAg
ICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKG1fZG9j
dW1lbnQuZ2V0KCksIHJlc3BvbnNlKTsKICAgICBtX2hhbmRzaGFrZVJlc3BvbnNlID0gV1RGTW92
ZShyZXNwb25zZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggNDY5NmVkOTc0NWNmYWJkY2RmYjYyZTUwOGQ5MWY4
ODUzNGEwYTVjNy4uYmU4ZTc2OTAxZGZiNDVjYmY5YjQxOWVmOWMwNjQ5NjljMzg5ZDMzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5l
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5u
ZWwuaApAQCAtOTYsNyArOTYsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaW5jcmVhc2VCdWZmZXJl
ZEFtb3VudChzaXplX3QpOwogICAgIHZvaWQgZGVjcmVhc2VCdWZmZXJlZEFtb3VudChzaXplX3Qp
OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZE1lc3NhZ2UoVCYmLCBzaXplX3Qg
Ynl0ZUxlbmd0aCk7Ci0gICAgdm9pZCBlbnF1ZXVlVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYpOwog
CiAgICAgV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbElkZW50aWZpZXIgcHJvZ3Jlc3NJZGVudGlm
aWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pbnNwZWN0b3IucHJvZ3Jlc3NJZGVudGlmaWVy
KCk7IH0KICAgICBib29sIGhhc0NyZWF0ZWRIYW5kc2hha2UoKSBjb25zdCBmaW5hbCB7IHJldHVy
biAhbV91cmwuaXNOdWxsKCk7IH0KQEAgLTExMSw4ICsxMTAsNiBAQCBwcml2YXRlOgogICAgIFN0
cmluZyBtX2V4dGVuc2lvbnM7CiAgICAgc2l6ZV90IG1fYnVmZmVyZWRBbW91bnQgeyAwIH07CiAg
ICAgYm9vbCBtX2lzQ2xvc2luZyB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsg
ZmFsc2UgfTsKLSAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+PiBtX3BlbmRpbmdUYXNrczsKICAg
ICBXZWJDb3JlOjpOZXR3b3JrU2VuZFF1ZXVlIG1fbWVzc2FnZVF1ZXVlOwogICAgIFdlYkNvcmU6
OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IgbV9pbnNwZWN0b3I7CiAgICAgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IG1faGFuZHNoYWtlUmVxdWVzdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2ZTE5MDRiYTQwNzQyYzUz
N2JjZTJmNzZjYThlNTM1NDY1NjIxZDNiLi45ZGExMDkyMTg2NTk1OWJlZTE0NTk2MGI1Mzc1ZTc3
NTg2YjYyNWI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMTggIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEd1YXJhbnRlZSBvcmRlciBvZiBXZWJT
b2NrZXQgZXZlbnRzIGluIGNhc2Ugb2YgYmVpbmcgcmVzdW1lZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjY0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL2luc3BlY3Rvci9zZW5kLWFuZC1yZWNlaXZlLmh0bWw6CisgICAgICAgIFRoZSBXZWJT
b2NrZXQgc2VydmVyIHdhcyByYWNpbmcgdG8gY2xvc2UgdGhlIGNvbm5lY3Rpb24gd2l0aCB0aGUg
VXNlciBBZ2VudC4KKyAgICAgICAgVGhlIHBhdGNoIHF1ZXVlaW5nIGEgdGFzayB0byBmaXJlIGV2
ZW50cyBpcyBmdXJ0aGVyIGFtcGxpZnlpbmcgdGhpcyByYWNlLgorICAgICAgICBUbyBtYWtlIHRo
ZSB0ZXN0IG5vbiBmbGFreSwgd2UgdXNlIGFuIGVjaG8gc2VydmVyIHRoYXQgd2FpdHMgZm9yIFVz
ZXIgQWdlbnQgdG8gY2xvc2UgdGhlIGNvbm5lY3Rpb24uCisKIDIwMjEtMTAtMTUgIFJvYmluIE1v
cmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgcjI4NDIzMCwg
bXkgbGFzdCBmaXhlcyB0byB0aGUgd2F0Y2ggYnVpbGQgbWFrZSBpdCBicmVhayB0ZXN0cwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggY2FkNThjMjI5YmM5ZWFlMDliM2M4OTEyNjZj
NWNiZmQ4YjliOWRkZi4uYThhNTI4MjlkODBmMTJjZGQ1NzM2NDFlNTlmODVhOTYxNjU0NjllNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAt
MTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEd1YXJhbnRl
ZSBvcmRlciBvZiBXZWJTb2NrZXQgZXZlbnRzIGluIGNhc2Ugb2YgYmVpbmcgcmVzdW1lZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjY0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2Vic29ja2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9jbG9zZS9jbG9zZS1uZXN0
ZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRz
L2ludGVyZmFjZXMvV2ViU29ja2V0L3JlYWR5U3RhdGUvMDAzLWV4cGVjdGVkLnR4dDoKKwogMjAy
MS0xMC0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhw
b3NlIE1lZGlhQ2FwYWJpbGl0aWVzIHRvIFdvcmtlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2Vp
dmUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5z
cGVjdG9yL3NlbmQtYW5kLXJlY2VpdmUuaHRtbAppbmRleCBhYWYwZDEyNDczYWI3M2Y3MTliMDc1
Nzg1MDlhMjI0YTBiMGIyODU1Li43ODU0OWI1NjAwNzYzYWE4Y2ExNGMzOGJiZjQ2MzEwYjc4ODA5
MjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2luc3BlY3Rvci9zZW5kLWFuZC1yZWNlaXZlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Ivc2VuZC1hbmQtcmVjZWl2ZS5o
dG1sCkBAIC05LDcgKzksNyBAQCBsZXQgd2ViU29ja2V0ID0gbnVsbDsKIAogZnVuY3Rpb24gY3Jl
YXRlV2ViU29ja2V0Q29ubmVjdGlvbigpCiB7Ci0gICAgd2ViU29ja2V0ID0gbmV3IFdlYlNvY2tl
dCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3IvZWNo
byIpOworICAgIHdlYlNvY2tldCA9IG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvZWNobyIpOwogCiAgICAgd2ViU29ja2V0Lm9ub3BlbiA9IGZ1
bmN0aW9uKCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvaW50ZXJmYWNlcy9XZWJTb2NrZXQvY2xvc2UvY2xv
c2UtbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2Vic29ja2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9jbG9zZS9jbG9zZS1u
ZXN0ZWQtZXhwZWN0ZWQudHh0CmluZGV4IDA2OTllZDBlNTIyMmQzYmVjYjk0ZjFiMDFkNWIwNjQz
ODczNWVlMzAuLmVjYTEwZmJmMjNlNzBjYzM5NDI2YTBhOTI5OTBkMzE5MjM3NDI4N2MgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29j
a2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9jbG9zZS9jbG9zZS1uZXN0ZWQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29j
a2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9jbG9zZS9jbG9zZS1uZXN0ZWQtZXhwZWN0ZWQudHh0
CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFdlYlNvY2tldHM6IGNsb3NlKCkgaW4gY2xvc2UgZXZl
bnQgaGFuZGxlciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAyIGJ1dCBnb3QgMworUEFTUyBXZWJT
b2NrZXRzOiBjbG9zZSgpIGluIGNsb3NlIGV2ZW50IGhhbmRsZXIKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2ludGVy
ZmFjZXMvV2ViU29ja2V0L3JlYWR5U3RhdGUvMDAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9pbnRlcmZhY2VzL1dl
YlNvY2tldC9yZWFkeVN0YXRlLzAwMy1leHBlY3RlZC50eHQKaW5kZXggNGFjZjY2OTAxMGY1YjVl
NmJmMmY0MmM1MTNhMjdhMTdjY2EwMjExMC4uMzdlMDJiNWQxNmVlOTI4YTdiZTE3ODk0YzhjZTM2
N2U0M2JhYjVlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2ludGVyZmFjZXMvV2ViU29ja2V0L3JlYWR5U3RhdGUvMDAz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnNvY2tldHMvaW50ZXJmYWNlcy9XZWJTb2NrZXQvcmVhZHlTdGF0ZS8wMDMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFdlYlNvY2tldHM6IGRlbGV0ZSByZWFk
eVN0YXRlIGFzc2VydF9lcXVhbHM6IGRlbGV0ZSB3cy5yZWFkeVN0YXRlIGV4cGVjdGVkIDIgYnV0
IGdvdCAzCitQQVNTIFdlYlNvY2tldHM6IGRlbGV0ZSByZWFkeVN0YXRlCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441597</attachid>
            <date>2021-10-18 06:57:39 -0700</date>
            <delta_ts>2021-10-19 02:00:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231664-20211018155738.patch</filename>
            <type>text/plain</type>
            <size>24357</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTE2MmJhNzgwMjI1NmM2
ZGQyMDI5ZmM5N2Q2NzMwZWFlZjFkYmEzNy4uYWUwMmY0MTE3NGI2OWQ0YjhlY2ZlMWMxY2RkNjVm
ODdiMjE2MDRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEwLTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBHdWFyYW50ZWUgb3JkZXIg
b2YgV2ViU29ja2V0IGV2ZW50cyBpbiBjYXNlIG9mIGJlaW5nIHJlc3VtZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTY2NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIFdlYlNvY2tl
dCB0YXNrIHNvdXJjZSBhcyBwZXIgc3BlYy4KKyAgICAgICAgVGhpcyBhbGlnbnMgd2l0aCBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWItc29ja2V0cy5odG1sIHdoZXJl
IHRoZSB1c2VyIGFnZW50IGlzIGV4cGVjdGVkIHRvIGEgcXVldWUgdGFzaworICAgICAgICB3aGVu
IGNsb3NpbmcgaGFuZHNoYWtlIGlzIHN0YXJ0ZWQgYW5kIHNvIG9uLgorCisgICAgICAgIEJ5IHF1
ZXVpbmcgYW4gZXZlbnQgbG9vcCB0YXNrIHRvIGZpcmUgV2ViU29ja2V0IGV2ZW50cywgd2UgZW5z
dXJlIG9yZGVyaW5nIG9mIGV2ZW50cyBldmVuIGluIGNhc2Ugb2YgcmVzdW1pbmcsIHdoaWxlIHNp
bXBsaWZ5aW5nIHRoZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgVGhpcyBtYWtlcyBpdCB1c2Ug
dGhlIGV2ZW50IGxvb3Agd2hpY2ggaXMgZXh0cmEgbmljZSBpZiB3ZSByZXNvbHZlIHByb21pc2Vz
IGluIGV2ZW50IGxpc3RlbmVycy4KKworICAgICAgICBBIGZvbGxvdy11cCBwYXRjaCBzaG91bGQg
cmVmYWN0b3IgY29kZSBzbyB0aGF0IFdlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvciBj
YW4gZGlyZWN0bHkgZmlyZSB0aGUgY2xvc2UgZXZlbnQgd2l0aG91dCBoYXZpbmcgdG8gd2FpdCBm
b3IgYSBkaWRDbG9zZSBjYWxsLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMu
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldDo6V2ViU29ja2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNv
Y2tldDo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OnJlc3VtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
U29ja2V0OjpkaXNwYXRjaE9yUXVldWVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2Nr
ZXQ6OnJlc3VtZVRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuaDoKKyAgICAgICAgKiBkb20vVGFza1NvdXJjZS5oOgorCiAyMDIxLTEw
LTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBdWRpb0Nv
bnRleHQgc3RvcHMgcGxheWluZyB3aGVuIG1pbmltaXppbmcgb3IgbW92aW5nIHRoZSBtYWNPUyBT
YWZhcmkgd2luZG93IHRvIHRoZSBiYWNrZ3JvdW5kLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlNWNkNmY5Y2I0MDBh
MWUzNmIwYjc5NWUyMDA3YzM1MzU3MDlkNGQwLi5iYTRkYjQ1YzljNTU0ZTkzYzUxZDRhMDliOGRi
NmY0YTc4NGE4Zjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTEwLTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBHdWFyYW50ZWUgb3JkZXIg
b2YgV2ViU29ja2V0IGV2ZW50cyBpbiBjYXNlIG9mIGJlaW5nIHJlc3VtZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTY2NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIG5vIGxvbmdlciBuZWVkIHRv
IGhhbmRsZSByZXN1bWUvc3VzcGVuZCBpbiBXZWJTb2NrZXRDaGFubmVsIGxheWVyIHNpbmNlIFdl
YlNvY2tldCB3aWxsIGRlYWwgd2l0aCBpdHNlbGYgYnkgZW5xdWV1aW5nIGEgdGFzayBpbiB0aGUg
ZXZlbnQgbG9vcC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFu
bmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29ubmVjdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpZENvbm5lY3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlVGV4dCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAg
KFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKToKKyAgICAgICAgKFdlYktp
dDo6V2ViU29ja2V0Q2hhbm5lbDo6c3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tl
dENoYW5uZWw6OnJlc3VtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRp
ZFNlbmRIYW5kc2hha2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5l
bDo6ZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29j
a2V0Q2hhbm5lbDo6ZW5xdWV1ZVRhc2spOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmg6CisKIDIwMjEtMTAtMTggIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0Vmlk
ZW9GcmFtZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1
cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5j
cHAKaW5kZXggNjk0MDFhMzI4MDgxMzQ3YWU2Y2EyM2RhNjIwYjg4Yjg3OGRmMTRlZS4uZmFlZGM1
YjQxMDYyMTE2NTc0YTc0OTVhMzM4OWIzOGNhOTY5ZjVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTE0NSw3ICsxNDUsNiBAQCBX
ZWJTb2NrZXQ6OldlYlNvY2tldChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogICAg
IDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV9zdWJwcm90b2NvbChlbXB0eVN0
cmluZygpKQogICAgICwgbV9leHRlbnNpb25zKGVtcHR5U3RyaW5nKCkpCi0gICAgLCBtX3Jlc3Vt
ZVRpbWVyKCp0aGlzLCAmV2ViU29ja2V0OjpyZXN1bWVUaW1lckZpcmVkKQogewogICAgIExvY2tl
ciBsb2NrZXIgeyBhbGxBY3RpdmVXZWJTb2NrZXRzTG9jaygpIH07CiAgICAgYWxsQWN0aXZlV2Vi
U29ja2V0cygpLmFkZCh0aGlzKTsKQEAgLTIxMCwxNSArMjA5LDEzIEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IFdlYlNvY2tldDo6Y29ubmVjdChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBw
cm90b2NvbCkKIAogdm9pZCBXZWJTb2NrZXQ6OmZhaWxBc3luY2hyb25vdXNseSgpCiB7Ci0gICAg
bV9wZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsKLQotICAgIC8v
IFdlIG11c3QgYmxvY2sgdGhpcyBjb25uZWN0aW9uLiBJbnN0ZWFkIG9mIHRocm93aW5nIGFuIGV4
Y2VwdGlvbiwgd2UgaW5kaWNhdGUgdGhpcwotICAgIC8vIHVzaW5nIHRoZSBlcnJvciBldmVudC4g
QnV0IHNpbmNlIHRoaXMgY29kZSBleGVjdXRlcyBhcyBwYXJ0IG9mIHRoZSBXZWJTb2NrZXQncwot
ICAgIC8vIGNvbnN0cnVjdG9yLCB3ZSBoYXZlIHRvIHdhaXQgdW50aWwgdGhlIGNvbnN0cnVjdG9y
IGhhcyBjb21wbGV0ZWQgYmVmb3JlIGZpcmluZyB0aGUKLSAgICAvLyBldmVudDsgb3RoZXJ3aXNl
LCB1c2VycyBjYW4ndCBjb25uZWN0IHRvIHRoZSBldmVudC4KKyAgICBxdWV1ZVRhc2tLZWVwaW5n
T2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OldlYlNvY2tldCwgW3RoaXNdIHsKKyAgICAg
ICAgLy8gV2UgbXVzdCBibG9jayB0aGlzIGNvbm5lY3Rpb24uIEluc3RlYWQgb2YgdGhyb3dpbmcg
YW4gZXhjZXB0aW9uLCB3ZSBpbmRpY2F0ZSB0aGlzCisgICAgICAgIC8vIHVzaW5nIHRoZSBlcnJv
ciBldmVudC4gQnV0IHNpbmNlIHRoaXMgY29kZSBleGVjdXRlcyBhcyBwYXJ0IG9mIHRoZSBXZWJT
b2NrZXQncworICAgICAgICAvLyBjb25zdHJ1Y3Rvciwgd2UgaGF2ZSB0byB3YWl0IHVudGlsIHRo
ZSBjb25zdHJ1Y3RvciBoYXMgY29tcGxldGVkIGJlZm9yZSBmaXJpbmcgdGhlCisgICAgICAgIC8v
IGV2ZW50OyBvdGhlcndpc2UsIHVzZXJzIGNhbid0IGNvbm5lY3QgdG8gdGhlIGV2ZW50LgogCi0g
ICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IFJlZiB7ICp0aGlzIH1dKGF1dG8mKSB7Ci0gICAgICAgIHRoaXMtPmRpc3BhdGNoT3JRdWV1
ZUVycm9yRXZlbnQoKTsKKyAgICAgICAgdGhpcy0+ZGlzcGF0Y2hFcnJvckV2ZW50SWZOZWVkZWQo
KTsKICAgICAgICAgdGhpcy0+c3RvcCgpOwogICAgIH0pOwogfQpAQCAtNTExLDQzICs1MDgsMjIg
QEAgdm9pZCBXZWJTb2NrZXQ6OmNvbnRleHREZXN0cm95ZWQoKQogCiB2b2lkIFdlYlNvY2tldDo6
c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKIHsKLSAgICBpZiAobV9yZXN1bWVU
aW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBtX3Jlc3VtZVRpbWVyLnN0b3AoKTsKLQotICAgIG1f
c2hvdWxkRGVsYXlFdmVudEZpcmluZyA9IHRydWU7CisgICAgaWYgKCFtX2NoYW5uZWwpCisgICAg
ICAgIHJldHVybjsKIAotICAgIGlmIChtX2NoYW5uZWwpIHsKLSAgICAgICAgaWYgKHJlYXNvbiA9
PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7Ci0gICAgICAgICAgICAv
LyBUaGlzIHdpbGwgY2F1c2UgZGlkQ2xvc2UoKSB0byBiZSBjYWxsZWQuCi0gICAgICAgICAgICBt
X2NoYW5uZWwtPmZhaWwoIldlYlNvY2tldCBpcyBjbG9zZWQgZHVlIHRvIHN1c3BlbnNpb24uIik7
Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9jaGFubmVsLT5zdXNwZW5kKCk7CisgICAg
aWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7Cisg
ICAgICAgIC8vIFRoaXMgd2lsbCBjYXVzZSBkaWRDbG9zZSgpIHRvIGJlIGNhbGxlZC4KKyAgICAg
ICAgbV9jaGFubmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9u
LiIpOworICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAgbV9jaGFubmVsLT5zdXNwZW5kKCk7
CiB9CiAKIHZvaWQgV2ViU29ja2V0OjpyZXN1bWUoKQogewogICAgIGlmIChtX2NoYW5uZWwpCiAg
ICAgICAgIG1fY2hhbm5lbC0+cmVzdW1lKCk7Ci0KLSAgICBpZiAoIW1fcGVuZGluZ0V2ZW50cy5p
c0VtcHR5KCkgJiYgIW1fcmVzdW1lVGltZXIuaXNBY3RpdmUoKSkgewotICAgICAgICAvLyBGaXJl
IHRoZSBwZW5kaW5nIGV2ZW50cyBpbiBhIHRpbWVyIGFzIHdlIGFyZSBub3QgYWxsb3dlZCB0byBl
eGVjdXRlIGFyYml0cmFyeSBKUyBmcm9tIHJlc3VtZSgpLgotICAgICAgICBtX3Jlc3VtZVRpbWVy
LnN0YXJ0T25lU2hvdCgwX3MpOwotICAgIH0KLQotICAgIG1fc2hvdWxkRGVsYXlFdmVudEZpcmlu
ZyA9IGZhbHNlOwotfQotCi12b2lkIFdlYlNvY2tldDo6cmVzdW1lVGltZXJGaXJlZCgpCi17Ci0g
ICAgUmVmPFdlYlNvY2tldD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7Ci0KLSAgICBBU1NFUlQoIW1f
cGVuZGluZ0V2ZW50cy5pc0VtcHR5KCkpOwotCi0gICAgLy8gQ2hlY2sgbV9zaG91bGREZWxheUV2
ZW50RmlyaW5nIHdoZW4gaXRlcmF0aW5nIGluIGNhc2UgZmlyaW5nIGFuIGV2ZW50IGNhdXNlcwot
ICAgIC8vIHN1c3BlbmQoKSB0byBiZSBjYWxsZWQuCi0gICAgd2hpbGUgKCFtX3BlbmRpbmdFdmVu
dHMuaXNFbXB0eSgpICYmICFtX3Nob3VsZERlbGF5RXZlbnRGaXJpbmcpCi0gICAgICAgIGRpc3Bh
dGNoRXZlbnQobV9wZW5kaW5nRXZlbnRzLnRha2VGaXJzdCgpKTsKIH0KIAogdm9pZCBXZWJTb2Nr
ZXQ6OnN0b3AoKQpAQCAtNTU2LDcgKzUzMiw2IEBAIHZvaWQgV2ViU29ja2V0OjpzdG9wKCkKICAg
ICAgICAgbV9jaGFubmVsLT5kaXNjb25uZWN0KCk7CiAgICAgbV9jaGFubmVsID0gbnVsbHB0cjsK
ICAgICBtX3N0YXRlID0gQ0xPU0VEOwotICAgIG1fcGVuZGluZ0V2ZW50cy5jbGVhcigpOwogICAg
IEFjdGl2ZURPTU9iamVjdDo6c3RvcCgpOwogICAgIG1fcGVuZGluZ0FjdGl2aXR5ID0gbnVsbHB0
cjsKIH0KQEAgLTU2OSw0NiArNTQ0LDYxIEBAIGNvbnN0IGNoYXIqIFdlYlNvY2tldDo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0CiB2b2lkIFdlYlNvY2tldDo6ZGlkQ29ubmVjdCgpCiB7CiAg
ICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkQ29ubmVjdCgpIiwgdGhpcyk7Ci0gICAg
aWYgKG1fc3RhdGUgIT0gQ09OTkVDVElORykgewotICAgICAgICBkaWRDbG9zZSgwLCBDbG9zaW5n
SGFuZHNoYWtlSW5jb21wbGV0ZSwgV2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVBYm5v
cm1hbENsb3N1cmUsIGVtcHR5U3RyaW5nKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAg
IEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIG1fc3RhdGUgPSBPUEVOOwot
ICAgIG1fc3VicHJvdG9jb2wgPSBtX2NoYW5uZWwtPnN1YnByb3RvY29sKCk7Ci0gICAgbV9leHRl
bnNpb25zID0gbV9jaGFubmVsLT5leHRlbnNpb25zKCk7Ci0gICAgZGlzcGF0Y2hPclF1ZXVlRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkub3BlbkV2ZW50LCBFdmVudDo6Q2FuQnViYmxl
OjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2Jq
ZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OldlYlNvY2tldCwgW3RoaXNdIHsKKyAgICAgICAg
aWYgKG1fc3RhdGUgPT0gQ0xPU0VEKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAo
bV9zdGF0ZSAhPSBDT05ORUNUSU5HKSB7CisgICAgICAgICAgICBkaWRDbG9zZSgwLCBDbG9zaW5n
SGFuZHNoYWtlSW5jb21wbGV0ZSwgV2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVBYm5v
cm1hbENsb3N1cmUsIGVtcHR5U3RyaW5nKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgICAgICBt
X3N0YXRlID0gT1BFTjsKKyAgICAgICAgbV9zdWJwcm90b2NvbCA9IG1fY2hhbm5lbC0+c3VicHJv
dG9jb2woKTsKKyAgICAgICAgbV9leHRlbnNpb25zID0gbV9jaGFubmVsLT5leHRlbnNpb25zKCk7
CisgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkub3BlbkV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKyAg
ICB9KTsKIH0KIAogdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbXNnKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRpZFJlY2VpdmVNZXNz
YWdlKCkgVGV4dCBtZXNzYWdlICclcyciLCB0aGlzLCBtc2cudXRmOCgpLmRhdGEoKSk7Ci0gICAg
aWYgKG1fc3RhdGUgIT0gT1BFTikKLSAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpOwotICAgIGRpc3BhdGNoT3JRdWV1ZUV2ZW50KE1lc3NhZ2VFdmVu
dDo6Y3JlYXRlKG1zZywgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkp
KTsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Oldl
YlNvY2tldCwgW3RoaXMsIG1zZ10geworICAgICAgICBpZiAobV9zdGF0ZSAhPSBPUEVOKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShtc2csIFNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGUobV91cmwpLT50b1N0cmluZygpKSk7CisgICAgfSk7CiB9CiAKIHZv
aWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlQmluYXJ5RGF0YShWZWN0b3I8dWludDhfdD4mJiBiaW5h
cnlEYXRhKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRpZFJlY2VpdmVCaW5h
cnlEYXRhKCkgJXUgYnl0ZSBiaW5hcnkgbWVzc2FnZSIsIHRoaXMsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihiaW5hcnlEYXRhLnNpemUoKSkpOwotICAgIHN3aXRjaCAobV9iaW5hcnlUeXBlKSB7Ci0g
ICAgY2FzZSBCaW5hcnlUeXBlOjpCbG9iOgotICAgICAgICAvLyBGSVhNRTogV2UganVzdCByZWNl
aXZlZCB0aGUgZGF0YSBmcm9tIE5ldHdvcmtQcm9jZXNzLCBhbmQgYXJlIHNlbmRpbmcgaXQgYmFj
ay4gVGhpcyBpcyBpbmVmZmljaWVudC4KLSAgICAgICAgZGlzcGF0Y2hPclF1ZXVlRXZlbnQoTWVz
c2FnZUV2ZW50OjpjcmVhdGUoQmxvYjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
V1RGTW92ZShiaW5hcnlEYXRhKSwgZW1wdHlTdHJpbmcoKSksIFNlY3VyaXR5T3JpZ2luOjpjcmVh
dGUobV91cmwpLT50b1N0cmluZygpKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQmluYXJ5
VHlwZTo6QXJyYXlCdWZmZXI6Ci0gICAgICAgIGRpc3BhdGNoT3JRdWV1ZUV2ZW50KE1lc3NhZ2VF
dmVudDo6Y3JlYXRlKEFycmF5QnVmZmVyOjpjcmVhdGUoYmluYXJ5RGF0YS5kYXRhKCksIGJpbmFy
eURhdGEuc2l6ZSgpKSwgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkp
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2
ZSgqdGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpcywgYmluYXJ5RGF0YSA9IFdURk1v
dmUoYmluYXJ5RGF0YSldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChtX3N0YXRlICE9IE9QRU4p
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHN3aXRjaCAobV9iaW5hcnlUeXBlKSB7Cisg
ICAgICAgIGNhc2UgQmluYXJ5VHlwZTo6QmxvYjoKKyAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBq
dXN0IHJlY2VpdmVkIHRoZSBkYXRhIGZyb20gTmV0d29ya1Byb2Nlc3MsIGFuZCBhcmUgc2VuZGlu
ZyBpdCBiYWNrLiBUaGlzIGlzIGluZWZmaWNpZW50LgorICAgICAgICAgICAgZGlzcGF0Y2hFdmVu
dChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShCbG9iOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLCBXVEZNb3ZlKGJpbmFyeURhdGEpLCBlbXB0eVN0cmluZygpKSwgU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEJpbmFyeVR5cGU6OkFycmF5QnVmZmVyOgorICAgICAgICAgICAgZGlzcGF0Y2hFdmVu
dChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShBcnJheUJ1ZmZlcjo6Y3JlYXRlKGJpbmFyeURhdGEuZGF0
YSgpLCBiaW5hcnlEYXRhLnNpemUoKSksIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91cmwpLT50
b1N0cmluZygpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0pOwogfQog
CiB2b2lkIFdlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpCiB7CiAgICAgTE9HKE5l
dHdvcmssICJXZWJTb2NrZXQgJXAgZGlkUmVjZWl2ZUVycm9yTWVzc2FnZSgpIiwgdGhpcyk7Ci0g
ICAgbV9zdGF0ZSA9IENMT1NFRDsKLSAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKLSAgICBkaXNwYXRjaE9yUXVldWVFcnJvckV2ZW50KCk7CisgICAgcXVldWVUYXNrS2VlcGlu
Z09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlzXSB7CisgICAg
ICAgIGlmIChtX3N0YXRlID09IENMT1NFRCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
bV9zdGF0ZSA9IENMT1NFRDsKKyAgICAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7CisgICAgICAgIC8vIEZJWE1FOiBBcyBwZXIgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2Uvd2ViLXNvY2tldHMuaHRtbCNmZWVkYmFjay1mcm9tLXRoZS1wcm90b2NvbDpj
b25jZXB0LXdlYnNvY2tldC1jbG9zZWQsIHdlIHNob3VsZCBzeW5jaHJvbm91c2x5IGZpcmUgYSBj
bG9zZSBldmVudC4KKyAgICAgICAgZGlzcGF0Y2hFcnJvckV2ZW50SWZOZWVkZWQoKTsKKyAgICB9
KTsKIH0KIAogdm9pZCBXZWJTb2NrZXQ6OmRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVk
IGJ1ZmZlcmVkQW1vdW50KQpAQCAtNjIyLDI2ICs2MTIsMzMgQEAgdm9pZCBXZWJTb2NrZXQ6OmRp
ZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGJ1ZmZlcmVkQW1vdW50KQogdm9pZCBXZWJT
b2NrZXQ6OmRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpCiB7CiAgICAgTE9HKE5ldHdvcmssICJX
ZWJTb2NrZXQgJXAgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkiLCB0aGlzKTsKLSAgICBtX3N0
YXRlID0gQ0xPU0lORzsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRh
c2tTb3VyY2U6OldlYlNvY2tldCwgW3RoaXNdIHsKKyAgICAgICAgaWYgKG1fc3RhdGUgPT0gQ0xP
U0VEKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3N0YXRlID0gQ0xPU0lORzsKKyAg
ICB9KTsKIH0KIAogdm9pZCBXZWJTb2NrZXQ6OmRpZENsb3NlKHVuc2lnbmVkIHVuaGFuZGxlZEJ1
ZmZlcmVkQW1vdW50LCBDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvblN0YXR1cyBjbG9zaW5nSGFu
ZHNoYWtlQ29tcGxldGlvbiwgdW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFz
b24pCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkQ2xvc2UoKSIsIHRoaXMp
OwotICAgIGlmICghbV9jaGFubmVsKQotICAgICAgICByZXR1cm47Ci0gICAgYm9vbCB3YXNDbGVh
biA9IG1fc3RhdGUgPT0gQ0xPU0lORyAmJiAhdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQgJiYgY2xv
c2luZ0hhbmRzaGFrZUNvbXBsZXRpb24gPT0gQ2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRlICYmIGNv
ZGUgIT0gV2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVBYm5vcm1hbENsb3N1cmU7Ci0g
ICAgbV9zdGF0ZSA9IENMT1NFRDsKLSAgICBtX2J1ZmZlcmVkQW1vdW50ID0gdW5oYW5kbGVkQnVm
ZmVyZWRBbW91bnQ7Ci0gICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAg
cXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQs
IFt0aGlzLCB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCwgY2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRp
b24sIGNvZGUsIHJlYXNvbl0geworICAgICAgICBpZiAoIW1fY2hhbm5lbCkKKyAgICAgICAgICAg
IHJldHVybjsKIAotICAgIGRpc3BhdGNoT3JRdWV1ZUV2ZW50KENsb3NlRXZlbnQ6OmNyZWF0ZSh3
YXNDbGVhbiwgY29kZSwgcmVhc29uKSk7CisgICAgICAgIGJvb2wgd2FzQ2xlYW4gPSBtX3N0YXRl
ID09IENMT1NJTkcgJiYgIXVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50ICYmIGNsb3NpbmdIYW5kc2hh
a2VDb21wbGV0aW9uID09IENsb3NpbmdIYW5kc2hha2VDb21wbGV0ZSAmJiBjb2RlICE9IFdlYlNv
Y2tldENoYW5uZWw6OkNsb3NlRXZlbnRDb2RlQWJub3JtYWxDbG9zdXJlOworICAgICAgICBtX3N0
YXRlID0gQ0xPU0VEOworICAgICAgICBtX2J1ZmZlcmVkQW1vdW50ID0gdW5oYW5kbGVkQnVmZmVy
ZWRBbW91bnQ7CisgICAgICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogCi0g
ICAgaWYgKG1fY2hhbm5lbCkgewotICAgICAgICBtX2NoYW5uZWwtPmRpc2Nvbm5lY3QoKTsKLSAg
ICAgICAgbV9jaGFubmVsID0gbnVsbHB0cjsKLSAgICB9Ci0gICAgbV9wZW5kaW5nQWN0aXZpdHkg
PSBudWxscHRyOworICAgICAgICBkaXNwYXRjaEV2ZW50KENsb3NlRXZlbnQ6OmNyZWF0ZSh3YXND
bGVhbiwgY29kZSwgcmVhc29uKSk7CisKKyAgICAgICAgaWYgKG1fY2hhbm5lbCkgeworICAgICAg
ICAgICAgbV9jaGFubmVsLT5kaXNjb25uZWN0KCk7CisgICAgICAgICAgICBtX2NoYW5uZWwgPSBu
dWxscHRyOworICAgICAgICB9CisgICAgICAgIG1fcGVuZGluZ0FjdGl2aXR5ID0gbnVsbHB0cjsK
KyAgICB9KTsKIH0KIAogdm9pZCBXZWJTb2NrZXQ6OmRpZFVwZ3JhZGVVUkwoKQpAQCAtNjY0LDIx
ICs2NjEsMTMgQEAgc2l6ZV90IFdlYlNvY2tldDo6Z2V0RnJhbWluZ092ZXJoZWFkKHNpemVfdCBw
YXlsb2FkU2l6ZSkKICAgICByZXR1cm4gb3ZlcmhlYWQ7CiB9CiAKLXZvaWQgV2ViU29ja2V0Ojpk
aXNwYXRjaE9yUXVldWVFcnJvckV2ZW50KCkKK3ZvaWQgV2ViU29ja2V0OjpkaXNwYXRjaEVycm9y
RXZlbnRJZk5lZWRlZCgpCiB7CiAgICAgaWYgKG1fZGlzcGF0Y2hlZEVycm9yRXZlbnQpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fZGlzcGF0Y2hlZEVycm9yRXZlbnQgPSB0cnVlOwotICAgIGRp
c3BhdGNoT3JRdWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQs
IEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwotfQotCi12
b2lkIFdlYlNvY2tldDo6ZGlzcGF0Y2hPclF1ZXVlRXZlbnQoUmVmPEV2ZW50PiYmIGV2ZW50KQot
ewotICAgIGlmIChtX3Nob3VsZERlbGF5RXZlbnRGaXJpbmcpCi0gICAgICAgIG1fcGVuZGluZ0V2
ZW50cy5hcHBlbmQoV1RGTW92ZShldmVudCkpOwotICAgIGVsc2UKLSAgICAgICAgZGlzcGF0Y2hF
dmVudChldmVudCk7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5lcnJvckV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6
Tm8pKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IGEyZmU1ZGQ5YWRjNGUyOTYzZmE2NjEy
YTcxYzRiZWE3NTJjMmI3NGUuLmFiZTNkYTk2ZjVmOGRmODRmZWY0NTczNWQ1YzgwYmJhYzIwNGQ2
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgK
QEAgLTMzLDEwICszMyw4IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIlRp
bWVyLmgiCiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxD
bGllbnQuaCIKLSNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKQEAgLTEwMSw5ICs5OSw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgV2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsK
IAotICAgIHZvaWQgcmVzdW1lVGltZXJGaXJlZCgpOwotICAgIHZvaWQgZGlzcGF0Y2hPclF1ZXVl
RXJyb3JFdmVudCgpOwotICAgIHZvaWQgZGlzcGF0Y2hPclF1ZXVlRXZlbnQoUmVmPEV2ZW50PiYm
KTsKKyAgICB2b2lkIGRpc3BhdGNoRXJyb3JFdmVudElmTmVlZGVkKCk7CiAKICAgICB2b2lkIGNv
bnRleHREZXN0cm95ZWQoKSBmaW5hbDsKICAgICB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVu
c2lvbikgZmluYWw7CkBAIC0xNDIsOSArMTM4LDYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9z
dWJwcm90b2NvbDsKICAgICBTdHJpbmcgbV9leHRlbnNpb25zOwogCi0gICAgVGltZXIgbV9yZXN1
bWVUaW1lcjsKLSAgICBib29sIG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZyB7IGZhbHNlIH07Ci0g
ICAgRGVxdWU8UmVmPEV2ZW50Pj4gbV9wZW5kaW5nRXZlbnRzOwogICAgIGJvb2wgbV9kaXNwYXRj
aGVkRXJyb3JFdmVudCB7IGZhbHNlIH07CiAgICAgUmVmUHRyPFBlbmRpbmdBY3Rpdml0eTxXZWJT
b2NrZXQ+PiBtX3BlbmRpbmdBY3Rpdml0eTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGFza1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tTb3VyY2UuaAppbmRl
eCAyZGE0N2JhZDZjNzNhNmJhNWJmMjgzYjhkMzUyZjQwZDIxYWYwMTRmLi43OWMxMzUwMzExNjdk
MzdjOTljMDNhNjI0OTg5MGJiNjkzMjA4OTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVGFza1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UYXNrU291cmNlLmgKQEAg
LTQ1LDYgKzQ1LDcgQEAgZW51bSBjbGFzcyBUYXNrU291cmNlIDogdWludDhfdCB7CiAgICAgVXNl
ckludGVyYWN0aW9uLAogICAgIFdlYkdMLAogICAgIFdlYlhSLAorICAgIFdlYlNvY2tldCwKIAog
ICAgIC8vIEludGVybmFsIHRvIFdlYkNvcmUKICAgICBJbnRlcm5hbEFzeW5jVGFzaywgLy8gU2Fm
ZSB0byByZS1vcmRlciBvciBkZWxheS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggOTE4NTZhNTc3Mjk2NzIyZDI0
YWJlNjk3ODNhMDE2YWE4ZmI3M2FkMC4uMzE0MmQ3NzhjMjc0MGY3ZDI2MmFlZjIxNTI4ODA5Nzgz
OTE4NGNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
U29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTIzMiw3ICsyMzIsNiBAQCB2b2lkIFdlYlNvY2tldENo
YW5uZWw6OmRpc2Nvbm5lY3QoKQogewogICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKICAgICBtX2Rv
Y3VtZW50ID0gbnVsbHB0cjsKLSAgICBtX3BlbmRpbmdUYXNrcy5jbGVhcigpOwogICAgIG1fbWVz
c2FnZVF1ZXVlLmNsZWFyKCk7CiAKICAgICBtX2luc3BlY3Rvci5kaWRDbG9zZVdlYlNvY2tldCht
X2RvY3VtZW50LmdldCgpKTsKQEAgLTI0OCwxMyArMjQ3LDYgQEAgdm9pZCBXZWJTb2NrZXRDaGFu
bmVsOjpkaWRDb25uZWN0KFN0cmluZyYmIHN1YnByb3RvY29sLCBTdHJpbmcmJiBleHRlbnNpb25z
KQogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2lzU3Vz
cGVuZGVkKSB7Ci0gICAgICAgIGVucXVldWVUYXNrKFt0aGlzLCBzdWJwcm90b2NvbCA9IFdURk1v
dmUoc3VicHJvdG9jb2wpLCBleHRlbnNpb25zID0gV1RGTW92ZShleHRlbnNpb25zKV0gKCkgbXV0
YWJsZSB7Ci0gICAgICAgICAgICBkaWRDb25uZWN0KFdURk1vdmUoc3VicHJvdG9jb2wpLCBXVEZN
b3ZlKGV4dGVuc2lvbnMpKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
ICAgICBtX3N1YnByb3RvY29sID0gV1RGTW92ZShzdWJwcm90b2NvbCk7CiAgICAgbV9leHRlbnNp
b25zID0gV1RGTW92ZShleHRlbnNpb25zKTsKICAgICBtX2NsaWVudC0+ZGlkQ29ubmVjdCgpOwpA
QCAtMjg2LDEzICsyNzgsNiBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVUZXh0
KFN0cmluZyYmIG1lc3NhZ2UpCiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKG1faXNTdXNwZW5kZWQpIHsKLSAgICAgICAgZW5xdWV1ZVRhc2soW3RoaXMsIG1l
c3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGRpZFJl
Y2VpdmVUZXh0KFdURk1vdmUobWVzc2FnZSkpOwotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQogICAgIGF1dG8gdXRmOE1lc3NhZ2UgPSBtZXNzYWdlLnV0ZjgoKTsKICAgICBt
X2luc3BlY3Rvci5kaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgY3Jl
YXRlV2ViU29ja2V0RnJhbWVGb3JXZWJJbnNwZWN0b3IodXRmOE1lc3NhZ2UuZGF0YUFzVUludDhQ
dHIoKSwgdXRmOE1lc3NhZ2UubGVuZ3RoKCksIFdlYlNvY2tldEZyYW1lOjpPcENvZGU6Ok9wQ29k
ZVRleHQpKTsKIApAQCAtMzA3LDE0ICsyOTIsNiBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRp
ZFJlY2VpdmVCaW5hcnlEYXRhKElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEpCiAgICAgaWYgKCFt
X2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1faXNTdXNwZW5kZWQpIHsKLSAg
ICAgICAgZW5xdWV1ZVRhc2soW3RoaXMsIGRhdGEgPSBkYXRhLnZlY3RvcigpXSAoKSBtdXRhYmxl
IHsKLSAgICAgICAgICAgIGlmICghbV9pc0Nsb3NpbmcgJiYgbV9jbGllbnQpCi0gICAgICAgICAg
ICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVCaW5hcnlEYXRhKFdURk1vdmUoZGF0YSkpOwotICAg
ICAgICB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIG1faW5zcGVjdG9yLmRpZFJl
Y2VpdmVXZWJTb2NrZXRGcmFtZShtX2RvY3VtZW50LmdldCgpLCBjcmVhdGVXZWJTb2NrZXRGcmFt
ZUZvcldlYkluc3BlY3RvcihkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCksIFdlYlNvY2tldEZyYW1l
OjpPcENvZGU6Ok9wQ29kZUJpbmFyeSkpOwogCiAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVCaW5h
cnlEYXRhKGRhdGEudmVjdG9yKCkpOwpAQCAtMzI1LDEzICszMDIsNiBAQCB2b2lkIFdlYlNvY2tl
dENoYW5uZWw6OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIFN0cmluZyYmIHJlYXNvbikK
ICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9pc1N1c3Bl
bmRlZCkgewotICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywgY29kZSwgcmVhc29uID0gV1RGTW92
ZShyZWFzb24pXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGRpZENsb3NlKGNvZGUsIFdURk1v
dmUocmVhc29uKSk7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAg
V2ViU29ja2V0RnJhbWUgY2xvc2luZ0ZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGVDbG9zZSwg
dHJ1ZSwgZmFsc2UsIGZhbHNlKTsKICAgICBtX2luc3BlY3Rvci5kaWRSZWNlaXZlV2ViU29ja2V0
RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgY2xvc2luZ0ZyYW1lKTsKICAgICBtX2luc3BlY3Rvci5k
aWRDbG9zZVdlYlNvY2tldChtX2RvY3VtZW50LmdldCgpKTsKQEAgLTM2NCwxMyArMzM0LDYgQEAg
dm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKFN0cmluZyYmIGVy
cm9yTWVzc2FnZSkKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAobV9pc1N1c3BlbmRlZCkgewotICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywgZXJyb3JNZXNz
YWdlID0gV1RGTW92ZShlcnJvck1lc3NhZ2UpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGRp
ZFJlY2VpdmVNZXNzYWdlRXJyb3IoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKLSAgICAgICAgfSk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBsb2dFcnJvck1lc3NhZ2UoZXJyb3JNZXNz
YWdlKTsKICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpOwogfQpAQCAtMzgy
LDQ0ICszNDUsMjAgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpuZXR3b3JrUHJvY2Vzc0NyYXNo
ZWQoKQogCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OnN1c3BlbmQoKQogewotICAgIG1faXNTdXNw
ZW5kZWQgPSB0cnVlOwogfQogCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OnJlc3VtZSgpCiB7Ci0g
ICAgUmVmIHByb3RlY3RlZFRoaXMgeyAqdGhpcyB9OwotICAgIG1faXNTdXNwZW5kZWQgPSBmYWxz
ZTsKLSAgICB3aGlsZSAoIW1faXNTdXNwZW5kZWQgJiYgIW1fcGVuZGluZ1Rhc2tzLmlzRW1wdHko
KSkKLSAgICAgICAgbV9wZW5kaW5nVGFza3MudGFrZUZpcnN0KCkoKTsKLX0KLQotdm9pZCBXZWJT
b2NrZXRDaGFubmVsOjplbnF1ZXVlVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKLXsKLSAg
ICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7CiB9CiAKIHZvaWQgV2ViU29j
a2V0Q2hhbm5lbDo6ZGlkU2VuZEhhbmRzaGFrZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCkKIHsKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkgewotICAgICAgICBlbnF1ZXVlVGFzayhb
dGhpcywgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldKCkgbXV0YWJsZSB7Ci0gICAgICAgICAg
ICBkaWRTZW5kSGFuZHNoYWtlUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpKTsKLSAgICAgICAgfSk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBtX2luc3BlY3Rvci53aWxsU2VuZFdlYlNv
Y2tldEhhbmRzaGFrZVJlcXVlc3QobV9kb2N1bWVudC5nZXQoKSwgcmVxdWVzdCk7CiAgICAgbV9o
YW5kc2hha2VSZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKIH0KIAogdm9pZCBXZWJTb2NrZXRD
aGFubmVsOjpkaWRSZWNlaXZlSGFuZHNoYWtlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJl
c3BvbnNlKQogewotICAgIGlmIChtX2lzU3VzcGVuZGVkKSB7Ci0gICAgICAgIGVucXVldWVUYXNr
KFt0aGlzLCByZXNwb25zZSA9IFdURk1vdmUocmVzcG9uc2UpXSgpIG11dGFibGUgewotICAgICAg
ICAgICAgZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3BvbnNlKFdURk1vdmUocmVzcG9uc2UpKTsKLSAg
ICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBtX2luc3BlY3Rvci5kaWRS
ZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UobV9kb2N1bWVudC5nZXQoKSwgcmVzcG9u
c2UpOwogICAgIG1faGFuZHNoYWtlUmVzcG9uc2UgPSBXVEZNb3ZlKHJlc3BvbnNlKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5u
ZWwuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwu
aAppbmRleCA0Njk2ZWQ5NzQ1Y2ZhYmRjZGZiNjJlNTA4ZDkxZjg4NTM0YTBhNWM3Li5iZThlNzY5
MDFkZmI0NWNiZjliNDE5ZWY5YzA2NDk2OWMzODlkMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC05Niw3ICs5Niw2
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpbmNyZWFzZUJ1ZmZlcmVkQW1vdW50KHNpemVfdCk7CiAg
ICAgdm9pZCBkZWNyZWFzZUJ1ZmZlcmVkQW1vdW50KHNpemVfdCk7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gdm9pZCBzZW5kTWVzc2FnZShUJiYsIHNpemVfdCBieXRlTGVuZ3RoKTsKLSAgICB2
b2lkIGVucXVldWVUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKICAgICBXZWJDb3JlOjpXZWJT
b2NrZXRDaGFubmVsSWRlbnRpZmllciBwcm9ncmVzc0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2luc3BlY3Rvci5wcm9ncmVzc0lkZW50aWZpZXIoKTsgfQogICAgIGJvb2wgaGFz
Q3JlYXRlZEhhbmRzaGFrZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICFtX3VybC5pc051bGwoKTsg
fQpAQCAtMTExLDggKzExMCw2IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fZXh0ZW5zaW9uczsK
ICAgICBzaXplX3QgbV9idWZmZXJlZEFtb3VudCB7IDAgfTsKICAgICBib29sIG1faXNDbG9zaW5n
IHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OwotICAgIERlcXVl
PEZ1bmN0aW9uPHZvaWQoKT4+IG1fcGVuZGluZ1Rhc2tzOwogICAgIFdlYkNvcmU6Ok5ldHdvcmtT
ZW5kUXVldWUgbV9tZXNzYWdlUXVldWU7CiAgICAgV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbElu
c3BlY3RvciBtX2luc3BlY3RvcjsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9oYW5k
c2hha2VSZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRlNmVhM2NkN2QwM2M4NjNkMzUwODhhMzRlMTcwMTI5Nzkx
NmQ5OTEuLjE5YTUxMjlkZjJhNWEwZjBmNmMxMTFmZjlhY2ZiMGJkYWI0YzE2ZjMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMS0xMC0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgR3VhcmFudGVlIG9yZGVyIG9mIFdlYlNvY2tldCBldmVudHMgaW4gY2Fz
ZSBvZiBiZWluZyByZXN1bWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE2NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3Nl
bmQtYW5kLXJlY2VpdmUuaHRtbDoKKyAgICAgICAgVGhlIFdlYlNvY2tldCBzZXJ2ZXIgd2FzIHJh
Y2luZyB0byBjbG9zZSB0aGUgY29ubmVjdGlvbiB3aXRoIHRoZSBVc2VyIEFnZW50LgorICAgICAg
ICBUaGUgcGF0Y2ggcXVldWVpbmcgYSB0YXNrIHRvIGZpcmUgZXZlbnRzIGlzIGZ1cnRoZXIgYW1w
bGlmeWluZyB0aGlzIHJhY2UuCisgICAgICAgIFRvIG1ha2UgdGhlIHRlc3Qgbm9uIGZsYWt5LCB3
ZSB1c2UgYW4gZWNobyBzZXJ2ZXIgdGhhdCB3YWl0cyBmb3IgVXNlciBBZ2VudCB0byBjbG9zZSB0
aGUgY29ubmVjdGlvbi4KKwogMjAyMS0xMC0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQXVkaW9Db250ZXh0IHN0b3BzIHBsYXlpbmcgd2hlbiBtaW5pbWl6
aW5nIG9yIG1vdmluZyB0aGUgbWFjT1MgU2FmYXJpIHdpbmRvdyB0byB0aGUgYmFja2dyb3VuZC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDE4MzFjZGZhM2E4YTQ0ZmM1YmQxZWNk
N2RmODBhYjViNDFiYzUzNTIuLjQzNzYxZGE2NTRkZjI1NzljZDlmYjJkMGI1ZjZjZTkzMWFlYTc1
YjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIx
LTEwLTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBHdWFy
YW50ZWUgb3JkZXIgb2YgV2ViU29ja2V0IGV2ZW50cyBpbiBjYXNlIG9mIGJlaW5nIHJlc3VtZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTY2NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvaW50ZXJmYWNlcy9XZWJTb2NrZXQvY2xvc2UvY2xvc2Ut
bmVzdGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29j
a2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9yZWFkeVN0YXRlLzAwMy1leHBlY3RlZC50eHQ6CisK
IDw8PDw8PDwgSEVBRAogMjAyMS0xMC0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmUuaHRt
bAppbmRleCBhYWYwZDEyNDczYWI3M2Y3MTliMDc1Nzg1MDlhMjI0YTBiMGIyODU1Li43ODU0OWI1
NjAwNzYzYWE4Y2ExNGMzOGJiZjQ2MzEwYjc4ODA5MjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9zZW5kLWFuZC1yZWNl
aXZlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9pbnNwZWN0b3Ivc2VuZC1hbmQtcmVjZWl2ZS5odG1sCkBAIC05LDcgKzksNyBAQCBsZXQgd2Vi
U29ja2V0ID0gbnVsbDsKIAogZnVuY3Rpb24gY3JlYXRlV2ViU29ja2V0Q29ubmVjdGlvbigpCiB7
Ci0gICAgd2ViU29ja2V0ID0gbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJz
b2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3IvZWNobyIpOworICAgIHdlYlNvY2tldCA9IG5ldyBX
ZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZWNobyIp
OwogCiAgICAgd2ViU29ja2V0Lm9ub3BlbiA9IGZ1bmN0aW9uKCkKICAgICB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMv
aW50ZXJmYWNlcy9XZWJTb2NrZXQvY2xvc2UvY2xvc2UtbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9pbnRl
cmZhY2VzL1dlYlNvY2tldC9jbG9zZS9jbG9zZS1uZXN0ZWQtZXhwZWN0ZWQudHh0CmluZGV4IDA2
OTllZDBlNTIyMmQzYmVjYjk0ZjFiMDFkNWIwNjQzODczNWVlMzAuLmVjYTEwZmJmMjNlNzBjYzM5
NDI2YTBhOTI5OTBkMzE5MjM3NDI4N2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9j
bG9zZS9jbG9zZS1uZXN0ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9j
bG9zZS9jbG9zZS1uZXN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFdl
YlNvY2tldHM6IGNsb3NlKCkgaW4gY2xvc2UgZXZlbnQgaGFuZGxlciBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAyIGJ1dCBnb3QgMworUEFTUyBXZWJTb2NrZXRzOiBjbG9zZSgpIGluIGNsb3NlIGV2
ZW50IGhhbmRsZXIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2ludGVyZmFjZXMvV2ViU29ja2V0L3JlYWR5U3RhdGUv
MDAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2Vic29ja2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9yZWFkeVN0YXRlLzAwMy1leHBl
Y3RlZC50eHQKaW5kZXggNGFjZjY2OTAxMGY1YjVlNmJmMmY0MmM1MTNhMjdhMTdjY2EwMjExMC4u
MzdlMDJiNWQxNmVlOTI4YTdiZTE3ODk0YzhjZTM2N2U0M2JhYjVlNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2ludGVy
ZmFjZXMvV2ViU29ja2V0L3JlYWR5U3RhdGUvMDAzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvaW50ZXJmYWNl
cy9XZWJTb2NrZXQvcmVhZHlTdGF0ZS8wMDMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAog
Ci1GQUlMIFdlYlNvY2tldHM6IGRlbGV0ZSByZWFkeVN0YXRlIGFzc2VydF9lcXVhbHM6IGRlbGV0
ZSB3cy5yZWFkeVN0YXRlIGV4cGVjdGVkIDIgYnV0IGdvdCAzCitQQVNTIFdlYlNvY2tldHM6IGRl
bGV0ZSByZWFkeVN0YXRlCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441702</attachid>
            <date>2021-10-19 02:00:37 -0700</date>
            <delta_ts>2021-10-19 11:41:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231664-20211019110035.patch</filename>
            <type>text/plain</type>
            <size>26882</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTI2MjQ3N2M2MTVmYzk0
ZjJjOTcyNTFjNmJhNzZjYTYzZjQxNmU0MC4uODFiNzhkOGVlNDI3NGM3YWFlNTFlZTRiZjMyZmQ0
NDNhOTRkNzNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTEwLTE5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBHdWFyYW50ZWUgb3JkZXIg
b2YgV2ViU29ja2V0IGV2ZW50cyBpbiBjYXNlIG9mIGJlaW5nIHJlc3VtZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTY2NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIFdlYlNvY2tl
dCB0YXNrIHNvdXJjZSBhcyBwZXIgc3BlYy4KKyAgICAgICAgVGhpcyBhbGlnbnMgd2l0aCBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWItc29ja2V0cy5odG1sIHdoZXJl
IHRoZSB1c2VyIGFnZW50IGlzIGV4cGVjdGVkIHRvIGEgcXVldWUgdGFzaworICAgICAgICB3aGVu
IGNsb3NpbmcgaGFuZHNoYWtlIGlzIHN0YXJ0ZWQgYW5kIHNvIG9uLgorCisgICAgICAgIEJ5IHF1
ZXVpbmcgYW4gZXZlbnQgbG9vcCB0YXNrIHRvIGZpcmUgV2ViU29ja2V0IGV2ZW50cywgd2UgZW5z
dXJlIG9yZGVyaW5nIG9mIGV2ZW50cyBldmVuIGluIGNhc2Ugb2YgcmVzdW1pbmcsIHdoaWxlIHNp
bXBsaWZ5aW5nIHRoZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgVGhpcyBtYWtlcyBpdCB1c2Ug
dGhlIGV2ZW50IGxvb3Agd2hpY2ggaXMgZXh0cmEgbmljZSBpZiB3ZSByZXNvbHZlIHByb21pc2Vz
IGluIGV2ZW50IGxpc3RlbmVycy4KKworICAgICAgICBBIGZvbGxvdy11cCBwYXRjaCBzaG91bGQg
cmVmYWN0b3IgY29kZSBzbyB0aGF0IFdlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvciBj
YW4gZGlyZWN0bHkgZmlyZSB0aGUgY2xvc2UgZXZlbnQgd2l0aG91dCBoYXZpbmcgdG8gd2FpdCBm
b3IgYSBkaWRDbG9zZSBjYWxsLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMu
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldDo6V2ViU29ja2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNv
Y2tldDo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OnJlc3VtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
U29ja2V0OjpkaXNwYXRjaE9yUXVldWVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2Nr
ZXQ6OnJlc3VtZVRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpzZW5kKToK
KyAgICAgICAgKiBkb20vVGFza1NvdXJjZS5oOgorCiAyMDIxLTEwLTE1ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2UgTWVkaWFDYXBhYmlsaXRpZXMg
dG8gV29ya2VycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMDFjMDQ5YjNiMTgzMGU3OGI1MDQ4NjAzYWFlMmQxOTI2
ODMyYTMzLi45NTkyMmRmNTMyODU1YTVhZmEyMDdmM2ViYjUzMDFlZDMzMmY2NmI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTEwLTE5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBHdWFyYW50ZWUgb3JkZXIgb2YgV2ViU29ja2V0IGV2ZW50cyBp
biBjYXNlIG9mIGJlaW5nIHJlc3VtZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTY2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlIG5vIGxvbmdlciBuZWVkIHRvIGhhbmRsZSByZXN1bWUvc3VzcGVu
ZCBpbiBXZWJTb2NrZXRDaGFubmVsIGxheWVyIHNpbmNlIFdlYlNvY2tldCB3aWxsIGRlYWwgd2l0
aCBpdHNlbGYgYnkgZW5xdWV1aW5nIGEgdGFzayBpbiB0aGUgZXZlbnQgbG9vcC4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29ubmVjdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNvY2tldENoYW5uZWw6OmRpZENvbm5lY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRD
aGFubmVsOjpkaWRSZWNlaXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5u
ZWw6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hh
bm5lbDo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRS
ZWNlaXZlTWVzc2FnZUVycm9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6
c3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OnJlc3VtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpZFNlbmRIYW5kc2hha2VSZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZUhhbmRzaGFr
ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZVRh
c2spOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFu
bmVsLmg6CisKIDIwMjEtMTAtMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNh
dGlvblByb3ZpZGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcAppbmRleCA2OTQwMWEzMjgwODEzNDdhZTZjYTIzZGE2MjBiODhiODc4ZGYxNGVl
Li5mYWVkYzViNDEwNjIxMTY1NzRhNzQ5NWEzMzg5YjM4Y2E5NjlmNWU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtMTQ1LDcgKzE0
NSw2IEBAIFdlYlNvY2tldDo6V2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX3N1YnByb3RvY29s
KGVtcHR5U3RyaW5nKCkpCiAgICAgLCBtX2V4dGVuc2lvbnMoZW1wdHlTdHJpbmcoKSkKLSAgICAs
IG1fcmVzdW1lVGltZXIoKnRoaXMsICZXZWJTb2NrZXQ6OnJlc3VtZVRpbWVyRmlyZWQpCiB7CiAg
ICAgTG9ja2VyIGxvY2tlciB7IGFsbEFjdGl2ZVdlYlNvY2tldHNMb2NrKCkgfTsKICAgICBhbGxB
Y3RpdmVXZWJTb2NrZXRzKCkuYWRkKHRoaXMpOwpAQCAtMjEwLDE1ICsyMDksMTMgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gV2ViU29ja2V0Ojpjb25uZWN0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBT
dHJpbmcmIHByb3RvY29sKQogCiB2b2lkIFdlYlNvY2tldDo6ZmFpbEFzeW5jaHJvbm91c2x5KCkK
IHsKLSAgICBtX3BlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwot
Ci0gICAgLy8gV2UgbXVzdCBibG9jayB0aGlzIGNvbm5lY3Rpb24uIEluc3RlYWQgb2YgdGhyb3dp
bmcgYW4gZXhjZXB0aW9uLCB3ZSBpbmRpY2F0ZSB0aGlzCi0gICAgLy8gdXNpbmcgdGhlIGVycm9y
IGV2ZW50LiBCdXQgc2luY2UgdGhpcyBjb2RlIGV4ZWN1dGVzIGFzIHBhcnQgb2YgdGhlIFdlYlNv
Y2tldCdzCi0gICAgLy8gY29uc3RydWN0b3IsIHdlIGhhdmUgdG8gd2FpdCB1bnRpbCB0aGUgY29u
c3RydWN0b3IgaGFzIGNvbXBsZXRlZCBiZWZvcmUgZmlyaW5nIHRoZQotICAgIC8vIGV2ZW50OyBv
dGhlcndpc2UsIHVzZXJzIGNhbid0IGNvbm5lY3QgdG8gdGhlIGV2ZW50LgorICAgIHF1ZXVlVGFz
a0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpc10g
eworICAgICAgICAvLyBXZSBtdXN0IGJsb2NrIHRoaXMgY29ubmVjdGlvbi4gSW5zdGVhZCBvZiB0
aHJvd2luZyBhbiBleGNlcHRpb24sIHdlIGluZGljYXRlIHRoaXMKKyAgICAgICAgLy8gdXNpbmcg
dGhlIGVycm9yIGV2ZW50LiBCdXQgc2luY2UgdGhpcyBjb2RlIGV4ZWN1dGVzIGFzIHBhcnQgb2Yg
dGhlIFdlYlNvY2tldCdzCisgICAgICAgIC8vIGNvbnN0cnVjdG9yLCB3ZSBoYXZlIHRvIHdhaXQg
dW50aWwgdGhlIGNvbnN0cnVjdG9yIGhhcyBjb21wbGV0ZWQgYmVmb3JlIGZpcmluZyB0aGUKKyAg
ICAgICAgLy8gZXZlbnQ7IG90aGVyd2lzZSwgdXNlcnMgY2FuJ3QgY29ubmVjdCB0byB0aGUgZXZl
bnQuCiAKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnBvc3RUYXNrKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYXV0byYpIHsKLSAgICAgICAgdGhpcy0+ZGlzcGF0
Y2hPclF1ZXVlRXJyb3JFdmVudCgpOworICAgICAgICB0aGlzLT5kaXNwYXRjaEVycm9yRXZlbnRJ
Zk5lZWRlZCgpOwogICAgICAgICB0aGlzLT5zdG9wKCk7CiAgICAgfSk7CiB9CkBAIC01MTEsNDMg
KzUwOCwyMiBAQCB2b2lkIFdlYlNvY2tldDo6Y29udGV4dERlc3Ryb3llZCgpCiAKIHZvaWQgV2Vi
U29ja2V0OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogewotICAgIGlmICht
X3Jlc3VtZVRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fcmVzdW1lVGltZXIuc3RvcCgpOwot
Ci0gICAgbV9zaG91bGREZWxheUV2ZW50RmlyaW5nID0gdHJ1ZTsKKyAgICBpZiAoIW1fY2hhbm5l
bCkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fY2hhbm5lbCkgewotICAgICAgICBpZiAo
cmVhc29uID09IFJlYXNvbkZvclN1c3BlbnNpb246OkJhY2tGb3J3YXJkQ2FjaGUpIHsKLSAgICAg
ICAgICAgIC8vIFRoaXMgd2lsbCBjYXVzZSBkaWRDbG9zZSgpIHRvIGJlIGNhbGxlZC4KLSAgICAg
ICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgiV2ViU29ja2V0IGlzIGNsb3NlZCBkdWUgdG8gc3VzcGVu
c2lvbi4iKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2NoYW5uZWwtPnN1c3BlbmQo
KTsKKyAgICBpZiAocmVhc29uID09IFJlYXNvbkZvclN1c3BlbnNpb246OkJhY2tGb3J3YXJkQ2Fj
aGUpIHsKKyAgICAgICAgLy8gVGhpcyB3aWxsIGNhdXNlIGRpZENsb3NlKCkgdG8gYmUgY2FsbGVk
LgorICAgICAgICBtX2NoYW5uZWwtPmZhaWwoIldlYlNvY2tldCBpcyBjbG9zZWQgZHVlIHRvIHN1
c3BlbnNpb24uIik7CisgICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBtX2NoYW5uZWwtPnN1
c3BlbmQoKTsKIH0KIAogdm9pZCBXZWJTb2NrZXQ6OnJlc3VtZSgpCiB7CiAgICAgaWYgKG1fY2hh
bm5lbCkKICAgICAgICAgbV9jaGFubmVsLT5yZXN1bWUoKTsKLQotICAgIGlmICghbV9wZW5kaW5n
RXZlbnRzLmlzRW1wdHkoKSAmJiAhbV9yZXN1bWVUaW1lci5pc0FjdGl2ZSgpKSB7Ci0gICAgICAg
IC8vIEZpcmUgdGhlIHBlbmRpbmcgZXZlbnRzIGluIGEgdGltZXIgYXMgd2UgYXJlIG5vdCBhbGxv
d2VkIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IEpTIGZyb20gcmVzdW1lKCkuCi0gICAgICAgIG1fcmVz
dW1lVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7Ci0gICAgfQotCi0gICAgbV9zaG91bGREZWxheUV2
ZW50RmlyaW5nID0gZmFsc2U7Ci19Ci0KLXZvaWQgV2ViU29ja2V0OjpyZXN1bWVUaW1lckZpcmVk
KCkKLXsKLSAgICBSZWY8V2ViU29ja2V0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLQotICAgIEFT
U0VSVCghbV9wZW5kaW5nRXZlbnRzLmlzRW1wdHkoKSk7Ci0KLSAgICAvLyBDaGVjayBtX3Nob3Vs
ZERlbGF5RXZlbnRGaXJpbmcgd2hlbiBpdGVyYXRpbmcgaW4gY2FzZSBmaXJpbmcgYW4gZXZlbnQg
Y2F1c2VzCi0gICAgLy8gc3VzcGVuZCgpIHRvIGJlIGNhbGxlZC4KLSAgICB3aGlsZSAoIW1fcGVu
ZGluZ0V2ZW50cy5pc0VtcHR5KCkgJiYgIW1fc2hvdWxkRGVsYXlFdmVudEZpcmluZykKLSAgICAg
ICAgZGlzcGF0Y2hFdmVudChtX3BlbmRpbmdFdmVudHMudGFrZUZpcnN0KCkpOwogfQogCiB2b2lk
IFdlYlNvY2tldDo6c3RvcCgpCkBAIC01NTYsNyArNTMyLDYgQEAgdm9pZCBXZWJTb2NrZXQ6OnN0
b3AoKQogICAgICAgICBtX2NoYW5uZWwtPmRpc2Nvbm5lY3QoKTsKICAgICBtX2NoYW5uZWwgPSBu
dWxscHRyOwogICAgIG1fc3RhdGUgPSBDTE9TRUQ7Ci0gICAgbV9wZW5kaW5nRXZlbnRzLmNsZWFy
KCk7CiAgICAgQWN0aXZlRE9NT2JqZWN0OjpzdG9wKCk7CiAgICAgbV9wZW5kaW5nQWN0aXZpdHkg
PSBudWxscHRyOwogfQpAQCAtNTY5LDQ2ICs1NDQsNjEgQEAgY29uc3QgY2hhciogV2ViU29ja2V0
OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIHZvaWQgV2ViU29ja2V0OjpkaWRDb25uZWN0
KCkKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRDb25uZWN0KCkiLCB0aGlz
KTsKLSAgICBpZiAobV9zdGF0ZSAhPSBDT05ORUNUSU5HKSB7Ci0gICAgICAgIGRpZENsb3NlKDAs
IENsb3NpbmdIYW5kc2hha2VJbmNvbXBsZXRlLCBXZWJTb2NrZXRDaGFubmVsOjpDbG9zZUV2ZW50
Q29kZUFibm9ybWFsQ2xvc3VyZSwgZW1wdHlTdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgbV9zdGF0ZSA9
IE9QRU47Ci0gICAgbV9zdWJwcm90b2NvbCA9IG1fY2hhbm5lbC0+c3VicHJvdG9jb2woKTsKLSAg
ICBtX2V4dGVuc2lvbnMgPSBtX2NoYW5uZWwtPmV4dGVuc2lvbnMoKTsKLSAgICBkaXNwYXRjaE9y
UXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5vcGVuRXZlbnQsIEV2ZW50OjpD
YW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworICAgIHF1ZXVlVGFza0tl
ZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpc10gewor
ICAgICAgICBpZiAobV9zdGF0ZSA9PSBDTE9TRUQpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIGlmIChtX3N0YXRlICE9IENPTk5FQ1RJTkcpIHsKKyAgICAgICAgICAgIGRpZENsb3NlKDAs
IENsb3NpbmdIYW5kc2hha2VJbmNvbXBsZXRlLCBXZWJTb2NrZXRDaGFubmVsOjpDbG9zZUV2ZW50
Q29kZUFibm9ybWFsQ2xvc3VyZSwgZW1wdHlTdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cisg
ICAgICAgIG1fc3RhdGUgPSBPUEVOOworICAgICAgICBtX3N1YnByb3RvY29sID0gbV9jaGFubmVs
LT5zdWJwcm90b2NvbCgpOworICAgICAgICBtX2V4dGVuc2lvbnMgPSBtX2NoYW5uZWwtPmV4dGVu
c2lvbnMoKTsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5vcGVuRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpO
bykpOworICAgIH0pOwogfQogCiB2b2lkIFdlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2UoY29u
c3QgU3RyaW5nJiBtc2cpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkUmVj
ZWl2ZU1lc3NhZ2UoKSBUZXh0IG1lc3NhZ2UgJyVzJyIsIHRoaXMsIG1zZy51dGY4KCkuZGF0YSgp
KTsKLSAgICBpZiAobV9zdGF0ZSAhPSBPUEVOKQotICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJU
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgZGlzcGF0Y2hPclF1ZXVlRXZlbnQoTWVz
c2FnZUV2ZW50OjpjcmVhdGUobXNnLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG1fdXJsKS0+dG9T
dHJpbmcoKSkpOworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1Nv
dXJjZTo6V2ViU29ja2V0LCBbdGhpcywgbXNnXSB7CisgICAgICAgIGlmIChtX3N0YXRlICE9IE9Q
RU4pCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpOworICAgICAgICBkaXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKG1z
ZywgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkpKTsKKyAgICB9KTsK
IH0KIAogdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50OF90
PiYmIGJpbmFyeURhdGEpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkUmVj
ZWl2ZUJpbmFyeURhdGEoKSAldSBieXRlIGJpbmFyeSBtZXNzYWdlIiwgdGhpcywgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGJpbmFyeURhdGEuc2l6ZSgpKSk7Ci0gICAgc3dpdGNoIChtX2JpbmFyeVR5
cGUpIHsKLSAgICBjYXNlIEJpbmFyeVR5cGU6OkJsb2I6Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBq
dXN0IHJlY2VpdmVkIHRoZSBkYXRhIGZyb20gTmV0d29ya1Byb2Nlc3MsIGFuZCBhcmUgc2VuZGlu
ZyBpdCBiYWNrLiBUaGlzIGlzIGluZWZmaWNpZW50LgotICAgICAgICBkaXNwYXRjaE9yUXVldWVF
dmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShCbG9iOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBXVEZNb3ZlKGJpbmFyeURhdGEpLCBlbXB0eVN0cmluZygpKSwgU2VjdXJpdHlPcmln
aW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBCaW5hcnlUeXBlOjpBcnJheUJ1ZmZlcjoKLSAgICAgICAgZGlzcGF0Y2hPclF1ZXVlRXZlbnQo
TWVzc2FnZUV2ZW50OjpjcmVhdGUoQXJyYXlCdWZmZXI6OmNyZWF0ZShiaW5hcnlEYXRhLmRhdGEo
KSwgYmluYXJ5RGF0YS5zaXplKCkpLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG1fdXJsKS0+dG9T
dHJpbmcoKSkpOwotICAgICAgICBicmVhazsKLSAgICB9CisgICAgcXVldWVUYXNrS2VlcGluZ09i
amVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlzLCBiaW5hcnlEYXRh
ID0gV1RGTW92ZShiaW5hcnlEYXRhKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKG1fc3RhdGUg
IT0gT1BFTikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgc3dpdGNoIChtX2JpbmFyeVR5
cGUpIHsKKyAgICAgICAgY2FzZSBCaW5hcnlUeXBlOjpCbG9iOgorICAgICAgICAgICAgLy8gRklY
TUU6IFdlIGp1c3QgcmVjZWl2ZWQgdGhlIGRhdGEgZnJvbSBOZXR3b3JrUHJvY2VzcywgYW5kIGFy
ZSBzZW5kaW5nIGl0IGJhY2suIFRoaXMgaXMgaW5lZmZpY2llbnQuCisgICAgICAgICAgICBkaXNw
YXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKEJsb2I6OmNyZWF0ZShzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIFdURk1vdmUoYmluYXJ5RGF0YSksIGVtcHR5U3RyaW5nKCkpLCBTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKG1fdXJsKS0+dG9TdHJpbmcoKSkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQmluYXJ5VHlwZTo6QXJyYXlCdWZmZXI6CisgICAgICAgICAgICBkaXNw
YXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKEFycmF5QnVmZmVyOjpjcmVhdGUoYmluYXJ5
RGF0YS5kYXRhKCksIGJpbmFyeURhdGEuc2l6ZSgpKSwgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSht
X3VybCktPnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkKIHsKICAg
ICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRSZWNlaXZlRXJyb3JNZXNzYWdlKCkiLCB0
aGlzKTsKLSAgICBtX3N0YXRlID0gQ0xPU0VEOwotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpOwotICAgIGRpc3BhdGNoT3JRdWV1ZUVycm9yRXZlbnQoKTsKKyAgICBxdWV1ZVRh
c2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OldlYlNvY2tldCwgW3RoaXNd
IHsKKyAgICAgICAgaWYgKG1fc3RhdGUgPT0gQ0xPU0VEKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOworICAgICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKKyAgICAgICAgLy8gRklYTUU6IEFzIHBlciBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS93ZWItc29ja2V0cy5odG1sI2ZlZWRiYWNrLWZyb20tdGhlLXBy
b3RvY29sOmNvbmNlcHQtd2Vic29ja2V0LWNsb3NlZCwgd2Ugc2hvdWxkIHN5bmNocm9ub3VzbHkg
ZmlyZSBhIGNsb3NlIGV2ZW50LgorICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnRJZk5lZWRlZCgp
OworICAgIH0pOwogfQogCiB2b2lkIFdlYlNvY2tldDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQo
dW5zaWduZWQgYnVmZmVyZWRBbW91bnQpCkBAIC02MjIsMjYgKzYxMiwzMyBAQCB2b2lkIFdlYlNv
Y2tldDo6ZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQodW5zaWduZWQgYnVmZmVyZWRBbW91bnQpCiB2
b2lkIFdlYlNvY2tldDo6ZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkKIHsKICAgICBMT0coTmV0
d29yaywgIldlYlNvY2tldCAlcCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2UoKSIsIHRoaXMpOwot
ICAgIG1fc3RhdGUgPSBDTE9TSU5HOworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgq
dGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpc10geworICAgICAgICBpZiAobV9zdGF0
ZSA9PSBDTE9TRUQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fc3RhdGUgPSBDTE9T
SU5HOworICAgIH0pOwogfQogCiB2b2lkIFdlYlNvY2tldDo6ZGlkQ2xvc2UodW5zaWduZWQgdW5o
YW5kbGVkQnVmZmVyZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzIGNs
b3NpbmdIYW5kc2hha2VDb21wbGV0aW9uLCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJp
bmcmIHJlYXNvbikKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRDbG9zZSgp
IiwgdGhpcyk7Ci0gICAgaWYgKCFtX2NoYW5uZWwpCi0gICAgICAgIHJldHVybjsKLSAgICBib29s
IHdhc0NsZWFuID0gbV9zdGF0ZSA9PSBDTE9TSU5HICYmICF1bmhhbmRsZWRCdWZmZXJlZEFtb3Vu
dCAmJiBjbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvbiA9PSBDbG9zaW5nSGFuZHNoYWtlQ29tcGxl
dGUgJiYgY29kZSAhPSBXZWJTb2NrZXRDaGFubmVsOjpDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xv
c3VyZTsKLSAgICBtX3N0YXRlID0gQ0xPU0VEOwotICAgIG1fYnVmZmVyZWRBbW91bnQgPSB1bmhh
bmRsZWRCdWZmZXJlZEFtb3VudDsKLSAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Oldl
YlNvY2tldCwgW3RoaXMsIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50LCBjbG9zaW5nSGFuZHNoYWtl
Q29tcGxldGlvbiwgY29kZSwgcmVhc29uXSB7CisgICAgICAgIGlmICghbV9jaGFubmVsKQorICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlzcGF0Y2hPclF1ZXVlRXZlbnQoQ2xvc2VFdmVudDo6
Y3JlYXRlKHdhc0NsZWFuLCBjb2RlLCByZWFzb24pKTsKKyAgICAgICAgYm9vbCB3YXNDbGVhbiA9
IG1fc3RhdGUgPT0gQ0xPU0lORyAmJiAhdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQgJiYgY2xvc2lu
Z0hhbmRzaGFrZUNvbXBsZXRpb24gPT0gQ2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRlICYmIGNvZGUg
IT0gV2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVBYm5vcm1hbENsb3N1cmU7CisgICAg
ICAgIG1fc3RhdGUgPSBDTE9TRUQ7CisgICAgICAgIG1fYnVmZmVyZWRBbW91bnQgPSB1bmhhbmRs
ZWRCdWZmZXJlZEFtb3VudDsKKyAgICAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7CiAKLSAgICBpZiAobV9jaGFubmVsKSB7Ci0gICAgICAgIG1fY2hhbm5lbC0+ZGlzY29ubmVj
dCgpOwotICAgICAgICBtX2NoYW5uZWwgPSBudWxscHRyOwotICAgIH0KLSAgICBtX3BlbmRpbmdB
Y3Rpdml0eSA9IG51bGxwdHI7CisgICAgICAgIGRpc3BhdGNoRXZlbnQoQ2xvc2VFdmVudDo6Y3Jl
YXRlKHdhc0NsZWFuLCBjb2RlLCByZWFzb24pKTsKKworICAgICAgICBpZiAobV9jaGFubmVsKSB7
CisgICAgICAgICAgICBtX2NoYW5uZWwtPmRpc2Nvbm5lY3QoKTsKKyAgICAgICAgICAgIG1fY2hh
bm5lbCA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICAgICAgbV9wZW5kaW5nQWN0aXZpdHkgPSBu
dWxscHRyOworICAgIH0pOwogfQogCiB2b2lkIFdlYlNvY2tldDo6ZGlkVXBncmFkZVVSTCgpCkBA
IC02NjQsMjEgKzY2MSwxMyBAQCBzaXplX3QgV2ViU29ja2V0OjpnZXRGcmFtaW5nT3ZlcmhlYWQo
c2l6ZV90IHBheWxvYWRTaXplKQogICAgIHJldHVybiBvdmVyaGVhZDsKIH0KIAotdm9pZCBXZWJT
b2NrZXQ6OmRpc3BhdGNoT3JRdWV1ZUVycm9yRXZlbnQoKQordm9pZCBXZWJTb2NrZXQ6OmRpc3Bh
dGNoRXJyb3JFdmVudElmTmVlZGVkKCkKIHsKICAgICBpZiAobV9kaXNwYXRjaGVkRXJyb3JFdmVu
dCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9kaXNwYXRjaGVkRXJyb3JFdmVudCA9IHRydWU7
Ci0gICAgZGlzcGF0Y2hPclF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJy
b3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7
Ci19Ci0KLXZvaWQgV2ViU29ja2V0OjpkaXNwYXRjaE9yUXVldWVFdmVudChSZWY8RXZlbnQ+JiYg
ZXZlbnQpCi17Ci0gICAgaWYgKG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZykKLSAgICAgICAgbV9w
ZW5kaW5nRXZlbnRzLmFwcGVuZChXVEZNb3ZlKGV2ZW50KSk7Ci0gICAgZWxzZQotICAgICAgICBk
aXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmVycm9yRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKaW5kZXggYTJmZTVkZDlhZGM0ZTI5
NjNmYTY2MTJhNzFjNGJlYTc1MmMyYjc0ZS4uYWJlM2RhOTZmNWY4ZGY4NGZlZjQ1NzM1ZDVjODBi
YmFjMjA0ZDZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXQuaApAQCAtMzMsMTAgKzMzLDggQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIK
ICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCi0jaW5j
bHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSAiV2ViU29ja2V0
Q2hhbm5lbENsaWVudC5oIgotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KIApAQCAtMTAxLDkgKzk5LDcgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYpOwogCi0gICAgdm9pZCByZXN1bWVUaW1lckZpcmVkKCk7Ci0gICAgdm9pZCBkaXNwYXRj
aE9yUXVldWVFcnJvckV2ZW50KCk7Ci0gICAgdm9pZCBkaXNwYXRjaE9yUXVldWVFdmVudChSZWY8
RXZlbnQ+JiYpOworICAgIHZvaWQgZGlzcGF0Y2hFcnJvckV2ZW50SWZOZWVkZWQoKTsKIAogICAg
IHZvaWQgY29udGV4dERlc3Ryb3llZCgpIGZpbmFsOwogICAgIHZvaWQgc3VzcGVuZChSZWFzb25G
b3JTdXNwZW5zaW9uKSBmaW5hbDsKQEAgLTE0Miw5ICsxMzgsNiBAQCBwcml2YXRlOgogICAgIFN0
cmluZyBtX3N1YnByb3RvY29sOwogICAgIFN0cmluZyBtX2V4dGVuc2lvbnM7CiAKLSAgICBUaW1l
ciBtX3Jlc3VtZVRpbWVyOwotICAgIGJvb2wgbV9zaG91bGREZWxheUV2ZW50RmlyaW5nIHsgZmFs
c2UgfTsKLSAgICBEZXF1ZTxSZWY8RXZlbnQ+PiBtX3BlbmRpbmdFdmVudHM7CiAgICAgYm9vbCBt
X2Rpc3BhdGNoZWRFcnJvckV2ZW50IHsgZmFsc2UgfTsKICAgICBSZWZQdHI8UGVuZGluZ0FjdGl2
aXR5PFdlYlNvY2tldD4+IG1fcGVuZGluZ0FjdGl2aXR5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBm
NWRjNmU3N2FhYTRmMGRlZjY3NjhhZjI3Y2MzY2M0OTAzNjgwZTQzLi5hYWViNjYxNGY2NmM3Yzlj
ZjU2Yjg0YWViZWNlOWE2MGQwODM1ODg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0xMzksNiArMTM5LDkg
QEAgU3RyaW5nIFdlYlNvY2tldENoYW5uZWw6OmV4dGVuc2lvbnMoKQogCiBUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKIHsKKyAgICBpZiAobV9vdXRnb2luZ0ZyYW1lUXVldWVTdGF0dXMgIT0g
T3V0Z29pbmdGcmFtZVF1ZXVlT3BlbikKKyAgICAgICAgcmV0dXJuIFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpTZW5kU3VjY2VzczsKKwogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hh
bm5lbCAlcCBzZW5kKCkgU2VuZGluZyBTdHJpbmcgJyVzJyIsIHRoaXMsIG1lc3NhZ2UudXRmOCgp
LmRhdGEoKSk7CiAgICAgQ1N0cmluZyB1dGY4ID0gbWVzc2FnZS51dGY4KFN0cmljdENvbnZlcnNp
b25SZXBsYWNpbmdVbnBhaXJlZFN1cnJvZ2F0ZXNXaXRoRkZGRCk7CiAgICAgZW5xdWV1ZVRleHRG
cmFtZSh1dGY4KTsKQEAgLTE1NCw2ICsxNTcsOSBAQCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bDo6U2VuZFJlc3VsdCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kKGNvbnN0IFN0cmluZyYgbWVzcwog
CiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBXZWJTb2NrZXRDaGFubmVs
OjpzZW5kKGNvbnN0IEFycmF5QnVmZmVyJiBiaW5hcnlEYXRhLCB1bnNpZ25lZCBieXRlT2Zmc2V0
LCB1bnNpZ25lZCBieXRlTGVuZ3RoKQogeworICAgIGlmIChtX291dGdvaW5nRnJhbWVRdWV1ZVN0
YXR1cyAhPSBPdXRnb2luZ0ZyYW1lUXVldWVPcGVuKQorICAgICAgICByZXR1cm4gVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OlNlbmRTdWNjZXNzOworCiAgICAgTE9HKE5ldHdvcmssICJXZWJT
b2NrZXRDaGFubmVsICVwIHNlbmQoKSBTZW5kaW5nIEFycmF5QnVmZmVyICVwIGJ5dGVPZmZzZXQ9
JXUgYnl0ZUxlbmd0aD0ldSIsIHRoaXMsICZiaW5hcnlEYXRhLCBieXRlT2Zmc2V0LCBieXRlTGVu
Z3RoKTsKICAgICBlbnF1ZXVlUmF3RnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZUJpbmFyeSwg
c3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGJpbmFyeURhdGEuZGF0YSgpKSArIGJ5dGVPZmZz
ZXQsIGJ5dGVMZW5ndGgpOwogICAgIHByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKTsKQEAgLTE2
Miw2ICsxNjgsOSBAQCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBXZWJT
b2NrZXRDaGFubmVsOjpzZW5kKGNvbnN0IEFycmF5QnVmZmVyJgogCiBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kKEJsb2ImIGJpbmFy
eURhdGEpCiB7CisgICAgaWYgKG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzICE9IE91dGdvaW5n
RnJhbWVRdWV1ZU9wZW4pCisgICAgICAgIHJldHVybiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bDo6U2VuZFN1Y2Nlc3M7CisKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAg
c2VuZCgpIFNlbmRpbmcgQmxvYiAnJXMnIiwgdGhpcywgYmluYXJ5RGF0YS51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKICAgICBlbnF1ZXVlQmxvYkZyYW1lKFdlYlNvY2tldEZyYW1lOjpP
cENvZGVCaW5hcnksIGJpbmFyeURhdGEpOwogICAgIHByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUo
KTsKQEAgLTE3MCw2ICsxNzksOSBAQCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJl
c3VsdCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kKEJsb2ImIGJpbmFyeURhdGEpCiAKIGJvb2wgV2Vi
U29ja2V0Q2hhbm5lbDo6c2VuZChjb25zdCB1aW50OF90KiBkYXRhLCBpbnQgbGVuZ3RoKQogewor
ICAgIGlmIChtX291dGdvaW5nRnJhbWVRdWV1ZVN0YXR1cyAhPSBPdXRnb2luZ0ZyYW1lUXVldWVP
cGVuKQorICAgICAgICByZXR1cm4gVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRTdWNj
ZXNzOworCiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIHNlbmQoKSBTZW5k
aW5nIHVpbnQ4X3QqIGRhdGE9JXAgbGVuZ3RoPSVkIiwgdGhpcywgZGF0YSwgbGVuZ3RoKTsKICAg
ICBlbnF1ZXVlUmF3RnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZUJpbmFyeSwgZGF0YSwgbGVu
Z3RoKTsKICAgICBwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVGFza1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tTb3Vy
Y2UuaAppbmRleCAyZGE0N2JhZDZjNzNhNmJhNWJmMjgzYjhkMzUyZjQwZDIxYWYwMTRmLi43OWMx
MzUwMzExNjdkMzdjOTljMDNhNjI0OTg5MGJiNjkzMjA4OTY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVGFza1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UYXNrU291
cmNlLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgZW51bSBjbGFzcyBUYXNrU291cmNlIDogdWludDhfdCB7
CiAgICAgVXNlckludGVyYWN0aW9uLAogICAgIFdlYkdMLAogICAgIFdlYlhSLAorICAgIFdlYlNv
Y2tldCwKIAogICAgIC8vIEludGVybmFsIHRvIFdlYkNvcmUKICAgICBJbnRlcm5hbEFzeW5jVGFz
aywgLy8gU2FmZSB0byByZS1vcmRlciBvciBkZWxheS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggOTE4NTZhNTc3
Mjk2NzIyZDI0YWJlNjk3ODNhMDE2YWE4ZmI3M2FkMC4uMzE0MmQ3NzhjMjc0MGY3ZDI2MmFlZjIx
NTI4ODA5NzgzOTE4NGNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTIzMiw3ICsyMzIsNiBAQCB2b2lkIFdl
YlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QoKQogewogICAgIG1fY2xpZW50ID0gbnVsbHB0cjsK
ICAgICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKLSAgICBtX3BlbmRpbmdUYXNrcy5jbGVhcigpOwog
ICAgIG1fbWVzc2FnZVF1ZXVlLmNsZWFyKCk7CiAKICAgICBtX2luc3BlY3Rvci5kaWRDbG9zZVdl
YlNvY2tldChtX2RvY3VtZW50LmdldCgpKTsKQEAgLTI0OCwxMyArMjQ3LDYgQEAgdm9pZCBXZWJT
b2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KFN0cmluZyYmIHN1YnByb3RvY29sLCBTdHJpbmcmJiBl
eHRlbnNpb25zKQogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm
IChtX2lzU3VzcGVuZGVkKSB7Ci0gICAgICAgIGVucXVldWVUYXNrKFt0aGlzLCBzdWJwcm90b2Nv
bCA9IFdURk1vdmUoc3VicHJvdG9jb2wpLCBleHRlbnNpb25zID0gV1RGTW92ZShleHRlbnNpb25z
KV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBkaWRDb25uZWN0KFdURk1vdmUoc3VicHJvdG9j
b2wpLCBXVEZNb3ZlKGV4dGVuc2lvbnMpKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KICAgICBtX3N1YnByb3RvY29sID0gV1RGTW92ZShzdWJwcm90b2NvbCk7CiAgICAg
bV9leHRlbnNpb25zID0gV1RGTW92ZShleHRlbnNpb25zKTsKICAgICBtX2NsaWVudC0+ZGlkQ29u
bmVjdCgpOwpAQCAtMjg2LDEzICsyNzgsNiBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJl
Y2VpdmVUZXh0KFN0cmluZyYmIG1lc3NhZ2UpCiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgaWYgKG1faXNTdXNwZW5kZWQpIHsKLSAgICAgICAgZW5xdWV1ZVRhc2so
W3RoaXMsIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAg
ICAgIGRpZFJlY2VpdmVUZXh0KFdURk1vdmUobWVzc2FnZSkpOwotICAgICAgICB9KTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQogICAgIGF1dG8gdXRmOE1lc3NhZ2UgPSBtZXNzYWdlLnV0Zjgo
KTsKICAgICBtX2luc3BlY3Rvci5kaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUobV9kb2N1bWVudC5n
ZXQoKSwgY3JlYXRlV2ViU29ja2V0RnJhbWVGb3JXZWJJbnNwZWN0b3IodXRmOE1lc3NhZ2UuZGF0
YUFzVUludDhQdHIoKSwgdXRmOE1lc3NhZ2UubGVuZ3RoKCksIFdlYlNvY2tldEZyYW1lOjpPcENv
ZGU6Ok9wQ29kZVRleHQpKTsKIApAQCAtMzA3LDE0ICsyOTIsNiBAQCB2b2lkIFdlYlNvY2tldENo
YW5uZWw6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEpCiAg
ICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1faXNTdXNwZW5k
ZWQpIHsKLSAgICAgICAgZW5xdWV1ZVRhc2soW3RoaXMsIGRhdGEgPSBkYXRhLnZlY3RvcigpXSAo
KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGlmICghbV9pc0Nsb3NpbmcgJiYgbV9jbGllbnQpCi0g
ICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVCaW5hcnlEYXRhKFdURk1vdmUoZGF0
YSkpOwotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIG1faW5zcGVj
dG9yLmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShtX2RvY3VtZW50LmdldCgpLCBjcmVhdGVXZWJT
b2NrZXRGcmFtZUZvcldlYkluc3BlY3RvcihkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCksIFdlYlNv
Y2tldEZyYW1lOjpPcENvZGU6Ok9wQ29kZUJpbmFyeSkpOwogCiAgICAgbV9jbGllbnQtPmRpZFJl
Y2VpdmVCaW5hcnlEYXRhKGRhdGEudmVjdG9yKCkpOwpAQCAtMzI1LDEzICszMDIsNiBAQCB2b2lk
IFdlYlNvY2tldENoYW5uZWw6OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIFN0cmluZyYm
IHJlYXNvbikKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAo
bV9pc1N1c3BlbmRlZCkgewotICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywgY29kZSwgcmVhc29u
ID0gV1RGTW92ZShyZWFzb24pXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGRpZENsb3NlKGNv
ZGUsIFdURk1vdmUocmVhc29uKSk7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCiAgICAgV2ViU29ja2V0RnJhbWUgY2xvc2luZ0ZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENv
ZGVDbG9zZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlKTsKICAgICBtX2luc3BlY3Rvci5kaWRSZWNlaXZl
V2ViU29ja2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgY2xvc2luZ0ZyYW1lKTsKICAgICBtX2lu
c3BlY3Rvci5kaWRDbG9zZVdlYlNvY2tldChtX2RvY3VtZW50LmdldCgpKTsKQEAgLTM2NCwxMyAr
MzM0LDYgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKFN0
cmluZyYmIGVycm9yTWVzc2FnZSkKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkgewotICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywg
ZXJyb3JNZXNzYWdlID0gV1RGTW92ZShlcnJvck1lc3NhZ2UpXSAoKSBtdXRhYmxlIHsKLSAgICAg
ICAgICAgIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKLSAg
ICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBsb2dFcnJvck1lc3NhZ2Uo
ZXJyb3JNZXNzYWdlKTsKICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpOwog
fQpAQCAtMzgyLDQ0ICszNDUsMjAgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpuZXR3b3JrUHJv
Y2Vzc0NyYXNoZWQoKQogCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OnN1c3BlbmQoKQogewotICAg
IG1faXNTdXNwZW5kZWQgPSB0cnVlOwogfQogCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OnJlc3Vt
ZSgpCiB7Ci0gICAgUmVmIHByb3RlY3RlZFRoaXMgeyAqdGhpcyB9OwotICAgIG1faXNTdXNwZW5k
ZWQgPSBmYWxzZTsKLSAgICB3aGlsZSAoIW1faXNTdXNwZW5kZWQgJiYgIW1fcGVuZGluZ1Rhc2tz
LmlzRW1wdHkoKSkKLSAgICAgICAgbV9wZW5kaW5nVGFza3MudGFrZUZpcnN0KCkoKTsKLX0KLQot
dm9pZCBXZWJTb2NrZXRDaGFubmVsOjplbnF1ZXVlVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYgdGFz
aykKLXsKLSAgICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7CiB9CiAKIHZv
aWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkU2VuZEhhbmRzaGFrZVJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCkKIHsKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkgewotICAgICAgICBlbnF1
ZXVlVGFzayhbdGhpcywgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldKCkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICBkaWRTZW5kSGFuZHNoYWtlUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpKTsKLSAg
ICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBtX2luc3BlY3Rvci53aWxs
U2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QobV9kb2N1bWVudC5nZXQoKSwgcmVxdWVzdCk7
CiAgICAgbV9oYW5kc2hha2VSZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKIH0KIAogdm9pZCBX
ZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlSGFuZHNoYWtlUmVzcG9uc2UoUmVzb3VyY2VSZXNw
b25zZSYmIHJlc3BvbnNlKQogewotICAgIGlmIChtX2lzU3VzcGVuZGVkKSB7Ci0gICAgICAgIGVu
cXVldWVUYXNrKFt0aGlzLCByZXNwb25zZSA9IFdURk1vdmUocmVzcG9uc2UpXSgpIG11dGFibGUg
ewotICAgICAgICAgICAgZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3BvbnNlKFdURk1vdmUocmVzcG9u
c2UpKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBtX2luc3Bl
Y3Rvci5kaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UobV9kb2N1bWVudC5nZXQo
KSwgcmVzcG9uc2UpOwogICAgIG1faGFuZHNoYWtlUmVzcG9uc2UgPSBXVEZNb3ZlKHJlc3BvbnNl
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNv
Y2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dENoYW5uZWwuaAppbmRleCA0Njk2ZWQ5NzQ1Y2ZhYmRjZGZiNjJlNTA4ZDkxZjg4NTM0YTBhNWM3
Li5iZThlNzY5MDFkZmI0NWNiZjliNDE5ZWY5YzA2NDk2OWMzODlkMzNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC05
Niw3ICs5Niw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpbmNyZWFzZUJ1ZmZlcmVkQW1vdW50KHNp
emVfdCk7CiAgICAgdm9pZCBkZWNyZWFzZUJ1ZmZlcmVkQW1vdW50KHNpemVfdCk7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kTWVzc2FnZShUJiYsIHNpemVfdCBieXRlTGVuZ3Ro
KTsKLSAgICB2b2lkIGVucXVldWVUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKICAgICBXZWJD
b3JlOjpXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmllciBwcm9ncmVzc0lkZW50aWZpZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2luc3BlY3Rvci5wcm9ncmVzc0lkZW50aWZpZXIoKTsgfQogICAg
IGJvb2wgaGFzQ3JlYXRlZEhhbmRzaGFrZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICFtX3VybC5p
c051bGwoKTsgfQpAQCAtMTExLDggKzExMCw2IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fZXh0
ZW5zaW9uczsKICAgICBzaXplX3QgbV9idWZmZXJlZEFtb3VudCB7IDAgfTsKICAgICBib29sIG1f
aXNDbG9zaW5nIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9Owot
ICAgIERlcXVlPEZ1bmN0aW9uPHZvaWQoKT4+IG1fcGVuZGluZ1Rhc2tzOwogICAgIFdlYkNvcmU6
Ok5ldHdvcmtTZW5kUXVldWUgbV9tZXNzYWdlUXVldWU7CiAgICAgV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbEluc3BlY3RvciBtX2luc3BlY3RvcjsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgbV9oYW5kc2hha2VSZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZlMTkwNGJhNDA3NDJjNTM3YmNlMmY3NmNh
OGU1MzU0NjU2MjFkM2IuLjlmNDRhNDQ1NjkxMDhiYWYzNzUzZmZhOTZkMzNiYzE4MDU0MmNhOWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0xMC0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgR3VhcmFudGVlIG9yZGVyIG9mIFdlYlNvY2tldCBldmVu
dHMgaW4gY2FzZSBvZiBiZWluZyByZXN1bWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5z
cGVjdG9yL3NlbmQtYW5kLXJlY2VpdmUuaHRtbDoKKyAgICAgICAgVGhlIFdlYlNvY2tldCBzZXJ2
ZXIgd2FzIHJhY2luZyB0byBjbG9zZSB0aGUgY29ubmVjdGlvbiB3aXRoIHRoZSBVc2VyIEFnZW50
LgorICAgICAgICBUaGUgcGF0Y2ggcXVldWVpbmcgYSB0YXNrIHRvIGZpcmUgZXZlbnRzIGlzIGZ1
cnRoZXIgYW1wbGlmeWluZyB0aGlzIHJhY2UuCisgICAgICAgIFRvIG1ha2UgdGhlIHRlc3Qgbm9u
IGZsYWt5LCB3ZSB1c2UgYW4gZWNobyBzZXJ2ZXIgdGhhdCB3YWl0cyBmb3IgVXNlciBBZ2VudCB0
byBjbG9zZSB0aGUgY29ubmVjdGlvbi4KKwogMjAyMS0xMC0xNSAgUm9iaW4gTW9yaXNzZXQgIDxy
bW9yaXNzZXRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmVydCByMjg0MjMwLCBteSBsYXN0IGZp
eGVzIHRvIHRoZSB3YXRjaCBidWlsZCBtYWtlIGl0IGJyZWFrIHRlc3RzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCBhYjU3M2NiZWU0ZGIwYmY0MGJjYjI5MDM4NjdlOTJiMjAwNDgy
NmZiLi42NzVkYTk5MGIzZWMzNTVlMzAyYjY1MzkwOTkwNmNmNTJiMmNlMDlhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMC0xOSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgR3VhcmFudGVlIG9yZGVyIG9m
IFdlYlNvY2tldCBldmVudHMgaW4gY2FzZSBvZiBiZWluZyByZXN1bWVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2NjQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJzb2NrZXRzL2ludGVyZmFjZXMvV2ViU29ja2V0L2Nsb3NlL2Nsb3NlLW5lc3RlZC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvaW50ZXJmYWNl
cy9XZWJTb2NrZXQvcmVhZHlTdGF0ZS8wMDMtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTEwLTE1ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2UgTWVkaWFD
YXBhYmlsaXRpZXMgdG8gV29ya2VycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Ivc2VuZC1hbmQtcmVjZWl2ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Ivc2Vu
ZC1hbmQtcmVjZWl2ZS5odG1sCmluZGV4IGFhZjBkMTI0NzNhYjczZjcxOWIwNzU3ODUwOWEyMjRh
MGIwYjI4NTUuLjc4NTQ5YjU2MDA3NjNhYThjYTE0YzM4YmJmNDYzMTBiNzg4MDkyNDMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVj
dG9yL3NlbmQtYW5kLXJlY2VpdmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9zZW5kLWFuZC1yZWNlaXZlLmh0bWwKQEAgLTks
NyArOSw3IEBAIGxldCB3ZWJTb2NrZXQgPSBudWxsOwogCiBmdW5jdGlvbiBjcmVhdGVXZWJTb2Nr
ZXRDb25uZWN0aW9uKCkKIHsKLSAgICB3ZWJTb2NrZXQgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEy
Ny4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9lY2hvIik7CisgICAg
d2ViU29ja2V0ID0gbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQv
dGVzdHMvaHliaS9lY2hvIik7CiAKICAgICB3ZWJTb2NrZXQub25vcGVuID0gZnVuY3Rpb24oKQog
ICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2Vic29ja2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9jbG9zZS9jbG9zZS1uZXN0ZWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJzb2NrZXRzL2ludGVyZmFjZXMvV2ViU29ja2V0L2Nsb3NlL2Nsb3NlLW5lc3RlZC1leHBl
Y3RlZC50eHQKaW5kZXggMDY5OWVkMGU1MjIyZDNiZWNiOTRmMWIwMWQ1YjA2NDM4NzM1ZWUzMC4u
ZWNhMTBmYmYyM2U3MGNjMzk0MjZhMGE5Mjk5MGQzMTkyMzc0Mjg3YyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2ludGVy
ZmFjZXMvV2ViU29ja2V0L2Nsb3NlL2Nsb3NlLW5lc3RlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2ludGVy
ZmFjZXMvV2ViU29ja2V0L2Nsb3NlL2Nsb3NlLW5lc3RlZC1leHBlY3RlZC50eHQKQEAgLTEsMyAr
MSwzIEBACiAKLUZBSUwgV2ViU29ja2V0czogY2xvc2UoKSBpbiBjbG9zZSBldmVudCBoYW5kbGVy
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDIgYnV0IGdvdCAzCitQQVNTIFdlYlNvY2tldHM6IGNs
b3NlKCkgaW4gY2xvc2UgZXZlbnQgaGFuZGxlcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvaW50ZXJmYWNlcy9XZWJT
b2NrZXQvcmVhZHlTdGF0ZS8wMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2ludGVyZmFjZXMvV2ViU29ja2V0L3Jl
YWR5U3RhdGUvMDAzLWV4cGVjdGVkLnR4dAppbmRleCA0YWNmNjY5MDEwZjViNWU2YmYyZjQyYzUx
M2EyN2ExN2NjYTAyMTEwLi4zN2UwMmI1ZDE2ZWU5MjhhN2JlMTc4OTRjOGNlMzY3ZTQzYmFiNWU1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnNvY2tldHMvaW50ZXJmYWNlcy9XZWJTb2NrZXQvcmVhZHlTdGF0ZS8wMDMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
c29ja2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9yZWFkeVN0YXRlLzAwMy1leHBlY3RlZC50eHQK
QEAgLTEsMyArMSwzIEBACiAKLUZBSUwgV2ViU29ja2V0czogZGVsZXRlIHJlYWR5U3RhdGUgYXNz
ZXJ0X2VxdWFsczogZGVsZXRlIHdzLnJlYWR5U3RhdGUgZXhwZWN0ZWQgMiBidXQgZ290IDMKK1BB
U1MgV2ViU29ja2V0czogZGVsZXRlIHJlYWR5U3RhdGUKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>