<?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>212274</bug_id>
          
          <creation_ts>2020-05-22 13:05:04 -0700</creation_ts>
          <short_desc>MediaRecorder stopRecorder() returns empty Blob after first use</short_desc>
          <delta_ts>2020-07-03 05:01:48 -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>Media</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.15</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>majo</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>Lawrence.j</cc>
    
    <cc>majo</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zach</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1655408</commentid>
    <comment_count>0</comment_count>
    <who name="">majo</who>
    <bug_when>2020-05-22 13:05:04 -0700</bug_when>
    <thetext>I started working on fixing this bug https://bugs.webkit.org/show_bug.cgi?id=202233 but found weird behaviour with stopRecording(). 
It returns an empty blob when you press stop after you press start, then stop and the start again.

To replicate:

 1. Open Safari
 2. Open the Develop Menu
 3. Hover over the Experimental Features list item
 4. Click on MediaRecorder to Enable it
 5. Navigate to https://codepen.io/majov5/pen/KKdEpKZ
 6. Click on the blue Start Test button at the bottom
 7. Allow access to Microphone &amp; Camera
 8. Click on the Record button at the bottom
 9. Wait a few second and click Stop.
 
In the console of Codepen will we something like

[object Blob] {
   size: 18201,
   slice: function slice() {...},
   type: &quot;video/mp4&quot;
}

 10. Click on the Record button again.
 11. Wait a few second and click Stop.

Now in the console we have empty Blob

[object Blob] {
   size: 0,
   slice: function slice() {...},
   type: &quot;&quot;
}

Is this supposed to happen?

I have test it in Chrome and Firefox, and I always get a Blob with content.
 
I have test it in Safari 13.1, Safari Technology Preview (Release 106 (Safari 13.2, WebKit 15610.1.12.2)) and the MiniBrowser and is the same result as explained in the 11 steps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655891</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-25 10:27:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/63601298&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665702</commentid>
    <comment_count>2</comment_count>
      <attachid>402637</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-24 05:24:43 -0700</bug_when>
    <thetext>Created attachment 402637
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665747</commentid>
    <comment_count>3</comment_count>
      <attachid>402653</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-24 08:46:15 -0700</bug_when>
    <thetext>Created attachment 402653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665749</commentid>
    <comment_count>4</comment_count>
      <attachid>402653</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-06-24 08:50:59 -0700</bug_when>
    <thetext>Comment on attachment 402653
Patch

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

&gt; Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:192
&gt; +    fprintf(stderr, &quot;AudioSampleBufferCompressor::attachPrimingTrimsIfNeeded1 %p\n&quot;, this);

Oops!

&gt; Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:194
&gt; +        fprintf(stderr, &quot;AudioSampleBufferCompressor::attachPrimingTrimsIfNeeded2 %p\n&quot;, this);

Ditto.

&gt; Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:206
&gt; +    fprintf(stderr, &quot;AudioSampleBufferCompressor::attachPrimingTrimsIfNeeded3 %p\n&quot;, this);

Ditto.

&gt; Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:208
&gt; +        fprintf(stderr, &quot;AudioSampleBufferCompressor::attachPrimingTrimsIfNeeded4 %p\n&quot;, this);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666023</commentid>
    <comment_count>5</comment_count>
      <attachid>402728</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-25 06:45:47 -0700</bug_when>
    <thetext>Created attachment 402728
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666057</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-25 08:58:45 -0700</bug_when>
    <thetext>Committed r263511: &lt;https://trac.webkit.org/changeset/263511&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402728.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666073</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-25 09:56:16 -0700</bug_when>
    <thetext>Follow-up build fix:
&lt;https://trac.webkit.org/changeset/263514&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666621</commentid>
    <comment_count>8</comment_count>
    <who name="Jason Lawrence">Lawrence.j</who>
    <bug_when>2020-06-26 14:45:31 -0700</bug_when>
    <thetext>Reverted r263511, r263514, and r263565 for reason:

r263511 caused MediaRecorder test crashes on internal testers.

Committed r263588: &lt;https://trac.webkit.org/changeset/263588&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666629</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-26 14:59:34 -0700</bug_when>
    <thetext>Fix is in MediaRecorderPrivateMock::fetchData to unhold m_bufferLock before calling the completion handler since calling the completion handler might delete &apos;this&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666639</commentid>
    <comment_count>10</comment_count>
      <attachid>402911</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-26 15:12:21 -0700</bug_when>
    <thetext>Created attachment 402911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666776</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-27 09:15:24 -0700</bug_when>
    <thetext>ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666853</commentid>
    <comment_count>12</comment_count>
      <attachid>402988</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-28 02:46:26 -0700</bug_when>
    <thetext>Created attachment 402988
Patch for relanding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666869</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-28 08:12:02 -0700</bug_when>
    <thetext>Committed r263633: &lt;https://trac.webkit.org/changeset/263633&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402988.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668322</commentid>
    <comment_count>14</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-07-02 12:35:05 -0700</bug_when>
    <thetext>Reverted r263633, r263651, and r263671 for reason:

Still seeing MediaRecorder test crashes after re-landing r263633

Committed r263854: &lt;https://trac.webkit.org/changeset/263854&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668328</commentid>
    <comment_count>15</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-07-02 12:36:53 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #14)
&gt; Reverted r263633, r263651, and r263671 for reason:
&gt; 
&gt; Still seeing MediaRecorder test crashes after re-landing r263633
Details in radar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668524</commentid>
    <comment_count>16</comment_count>
      <attachid>403447</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-07-03 02:53:13 -0700</bug_when>
    <thetext>Created attachment 403447
Patch for relanding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668534</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-03 05:01:47 -0700</bug_when>
    <thetext>Committed r263891: &lt;https://trac.webkit.org/changeset/263891&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403447.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402637</attachid>
            <date>2020-06-24 05:24:43 -0700</date>
            <delta_ts>2020-06-24 08:46:09 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-212274-20200624142441.patch</filename>
            <type>text/plain</type>
            <size>32997</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZhM2E2ZjQ0YWNkNTdh
ODRlZDFiODZhMTZjOTNlYTRkM2JhYWU3NC4uNGU0Njk1M2ZkOGQ2MGQ2NzgxYzZiYzRiZWQ0ZjY2
YzQ5OTEwODA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTA2LTIzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHN0
b3BSZWNvcmRlcigpIHJldHVybnMgZW1wdHkgQmxvYiBhZnRlciBmaXJzdCB1c2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjI3NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNjM2MDEyOTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgZml4LTIxMjI3NAorCisgICAgICAgIFRlc3Q6IGh0dHAvd3B0L21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLmh0bWwKKworICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVJlY29yZGVyOjpNZWRpYVJlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXI6OnN0YXJ0UmVjb3JkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6OnN0
b3BSZWNvcmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6cmVxdWVzdERh
dGEpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnN0YXJ0UmVjb3JkaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjp+QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVy
dGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjphdHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVy
UmVmcmVzaENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51bVBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0
ZXJUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6c3RvcFJlY29yZGluZyk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IubW06CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
On5WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IpOgorCiAyMDIwLTA2LTE5ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbG9nZ2luZyB0byBSZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2UgdG8gY2hlY2sgZm9yIGZyYW1lIHJhdGUgc3RhYmlsaXR5CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDE0ZTZlODRhNWY4ODMzYjU0NmJkNThiNmY2YjBmYTgzMGNlMzE0YTQuLjA4NjAy
Y2I4YzdkMmE5NGY1MWIyYjgzYTBjMzE3MzVlOWEyNzhlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMjAtMDYtMjMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIE1lZGlhUmVjb3JkZXIgc3RvcFJlY29yZGVyKCkgcmV0dXJucyBlbXB0eSBCbG9iIGFm
dGVyIGZpcnN0IHVzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEyMjc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzYwMTI5OD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBmaXgtMjEyMjc0CisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpyZWxlYXNlUmVj
b3JkZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJp
dmF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpz
dGFydFJlY29yZGluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVj
b3JkZXJQcml2YXRlLmg6CisKIDIwMjAtMDYtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIExpYldlYlJUQ1NvY2tldENsaWVudDo6c2VuZFRvIGlzIHRvbyB2
ZXJib3NlIGluIGNhc2Ugb2YgZXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAppbmRleCBiMDI1M2FjNzkzNzk4ZTcw
ZjkwNDJkMjE1OTU5ZTM5YWRlMTZlOWZhLi4xOWI5NmNlMmMyZTQ4YTMwOGI1YWY4Mzk0ZjQ2Mzhj
OThhY2YxN2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCkBAIC01MSwxMSArNTEsOCBAQCBFeGNlcHRpb25PcjxS
ZWY8TWVkaWFSZWNvcmRlcj4+IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQsIFJlZjxNZQogICAgIGF1dG8gcHJpdmF0ZUluc3RhbmNlID0gTWVkaWFSZWNvcmRlcjo6Y3Jl
YXRlTWVkaWFSZWNvcmRlclByaXZhdGUoZG9jdW1lbnQsIHN0cmVhbS0+cHJpdmF0ZVN0cmVhbSgp
KTsKICAgICBpZiAoIXByaXZhdGVJbnN0YW5jZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIE1lZGlhUmVjb3JkZXIgaXMgdW5zdXBwb3J0ZWQgb24g
dGhpcyBwbGF0Zm9ybSJfcyB9OwotICAgIGF1dG8gcmVjb3JkZXIgPSBhZG9wdFJlZigqbmV3IE1l
ZGlhUmVjb3JkZXIoZG9jdW1lbnQsIFdURk1vdmUoc3RyZWFtKSwgV1RGTW92ZShwcml2YXRlSW5z
dGFuY2UpLCBXVEZNb3ZlKG9wdGlvbnMpKSk7CisgICAgYXV0byByZWNvcmRlciA9IGFkb3B0UmVm
KCpuZXcgTWVkaWFSZWNvcmRlcihkb2N1bWVudCwgV1RGTW92ZShzdHJlYW0pLCBXVEZNb3ZlKG9w
dGlvbnMpKSk7CiAgICAgcmVjb3JkZXItPnN1c3BlbmRJZk5lZWRlZCgpOwotICAgIHJlY29yZGVy
LT5tX3ByaXZhdGUtPnNldEVycm9yQ2FsbGJhY2soW3JlY29yZGVyID0gcmVjb3JkZXIuY29weVJl
ZigpXShhdXRvJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKLSAgICAgICAgcmVjb3JkZXItPmRpc3Bh
dGNoRXJyb3IoV1RGTW92ZSgqZXhjZXB0aW9uKSk7Ci0gICAgfSk7CiAgICAgcmV0dXJuIHJlY29y
ZGVyOwogfQogCkBAIC04MiwxMSArNzksMTAgQEAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3Jk
ZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSgKICNl
bmRpZgogfQogCi1NZWRpYVJlY29yZGVyOjpNZWRpYVJlY29yZGVyKERvY3VtZW50JiBkb2N1bWVu
dCwgUmVmPE1lZGlhU3RyZWFtPiYmIHN0cmVhbSwgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3Jk
ZXJQcml2YXRlPiYmIHByaXZhdGVJbXBsLCBPcHRpb25zJiYgb3B0aW9uKQorTWVkaWFSZWNvcmRl
cjo6TWVkaWFSZWNvcmRlcihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYVN0cmVhbT4mJiBz
dHJlYW0sIE9wdGlvbnMmJiBvcHRpb24pCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQp
CiAgICAgLCBtX29wdGlvbnMoV1RGTW92ZShvcHRpb24pKQogICAgICwgbV9zdHJlYW0oV1RGTW92
ZShzdHJlYW0pKQotICAgICwgbV9wcml2YXRlKFdURk1vdmUocHJpdmF0ZUltcGwpKQogewogICAg
IG1fdHJhY2tzID0gV1RGOjptYXAobV9zdHJlYW0tPmdldFRyYWNrcygpLCBbXSAoYXV0byYmIHRy
YWNrKSAtPiBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IHsKICAgICAgICAgcmV0dXJuIHRy
YWNrLT5wcml2YXRlVHJhY2soKTsKQEAgLTEzMiw5ICsxMjgsMjYgQEAgY29uc3QgY2hhciogTWVk
aWFSZWNvcmRlcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiBFeGNlcHRpb25Pcjx2b2lk
PiBNZWRpYVJlY29yZGVyOjpzdGFydFJlY29yZGluZyhPcHRpb25hbDxpbnQ+IHRpbWVzbGljZSkK
IHsKICAgICBVTlVTRURfUEFSQU0odGltZXNsaWNlKTsKKyAgICBpZiAoIW1faXNBY3RpdmUpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlRoZSBNZWRpYVJl
Y29yZGVyIGlzIG5vdCBhY3RpdmUiX3MgfTsKKwogICAgIGlmIChzdGF0ZSgpICE9IFJlY29yZGlu
Z1N0YXRlOjpJbmFjdGl2ZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yLCAiVGhlIE1lZGlhUmVjb3JkZXIncyBzdGF0ZSBtdXN0IGJlIGluYWN0aXZlIGluIG9y
ZGVyIHRvIHN0YXJ0IHJlY29yZGluZyJfcyB9OwotICAgIAorCisgICAgQVNTRVJUKCFtX3ByaXZh
dGUpOworICAgIG1fcHJpdmF0ZSA9IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKCpkb2N1bWVu
dCgpLCBtX3N0cmVhbS0+cHJpdmF0ZVN0cmVhbSgpKTsKKworICAgIGlmICghbV9wcml2YXRlKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJUaGUgTWVkaWFS
ZWNvcmRlciBpcyB1bnN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtIl9zIH07CisKKyAgICBtX3By
aXZhdGUtPnN0YXJ0UmVjb3JkaW5nKFt0aGlzLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGlu
Z0FjdGl2aXR5KCp0aGlzKV0oYXV0byYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlm
ICghbV9pc0FjdGl2ZSB8fCAhZXhjZXB0aW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIHN0b3BSZWNvcmRpbmdJbnRlcm5hbCgpOworICAgICAgICBkaXNwYXRjaEVycm9yKFdURk1v
dmUoKmV4Y2VwdGlvbikpOworICAgIH0pOworCiAgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJh
Y2tzKQogICAgICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogCkBAIC0xNDYsMjIgKzE1
OSwxNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVJlY29yZGVyOjpzdG9wUmVjb3JkaW5nKCkK
IHsKICAgICBpZiAoc3RhdGUoKSA9PSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmUpCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlRoZSBNZWRpYVJlY29yZGVy
J3Mgc3RhdGUgY2Fubm90IGJlIGluYWN0aXZlIl9zIH07Ci0gICAgCi0gICAgcXVldWVUYXNrS2Vl
cGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpc10gewot
ICAgICAgICBpZiAoIW1faXNBY3RpdmUgfHwgc3RhdGUoKSA9PSBSZWNvcmRpbmdTdGF0ZTo6SW5h
Y3RpdmUpCi0gICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgc3RvcFJlY29yZGluZ0ludGVy
bmFsKCk7Ci0gICAgICAgIEFTU0VSVChtX3N0YXRlID09IFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2
ZSk7Ci0gICAgICAgIG1fcHJpdmF0ZS0+ZmV0Y2hEYXRhKFt0aGlzLCBwZW5kaW5nQWN0aXZpdHkg
PSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKV0oYXV0byYmIGJ1ZmZlciwgYXV0byYgbWltZVR5
cGUpIHsKKyAgICBzdG9wUmVjb3JkaW5nSW50ZXJuYWwoKTsKKyAgICBhdXRvJiBwcml2YXRlUmVj
b3JkZXIgPSAqbV9wcml2YXRlOworICAgIHByaXZhdGVSZWNvcmRlci5mZXRjaERhdGEoW3RoaXMs
IHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBwcml2YXRlUmVj
b3JkZXIgPSBXVEZNb3ZlKG1fcHJpdmF0ZSldKGF1dG8mJiBidWZmZXIsIGF1dG8mIG1pbWVUeXBl
KSB7CisgICAgICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJj
ZTo6TmV0d29ya2luZywgW3RoaXMsIGJ1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgbWltZVR5cGVd
KCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIW1faXNBY3RpdmUpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgIAogICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChCbG9iRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuZGF0YWF2YWlsYWJsZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpO
bywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8sIGJ1ZmZlciA/IEJsb2I6OmNyZWF0ZShidWZmZXIu
cmVsZWFzZU5vbk51bGwoKSwgbWltZVR5cGUpIDogQmxvYjo6Y3JlYXRlKCkpKTsKIAogICAgICAg
ICAgICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAgICAgICAgICAgIHJldHVybjsKLQogICAgICAg
ICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9wRXZlbnQs
IEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogICAgICAg
ICB9KTsKICAgICB9KTsKQEAgLTE3NCwxMCArMTgyLDEyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1l
ZGlhUmVjb3JkZXI6OnJlcXVlc3REYXRhKCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiVGhlIE1lZGlhUmVjb3JkZXIncyBzdGF0ZSBjYW5ub3QgYmUgaW5h
Y3RpdmUiX3MgfTsKIAogICAgIG1fcHJpdmF0ZS0+ZmV0Y2hEYXRhKFt0aGlzLCBwZW5kaW5nQWN0
aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKV0oYXV0byYmIGJ1ZmZlciwgYXV0byYg
bWltZVR5cGUpIHsKLSAgICAgICAgaWYgKCFtX2lzQWN0aXZlKQotICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6
Ok5ldHdvcmtpbmcsIFt0aGlzLCBidWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlciksIG1pbWVUeXBlXSgp
IG11dGFibGUgeworICAgICAgICAgICAgaWYgKCFtX2lzQWN0aXZlKQorICAgICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICBkaXNwYXRjaEV2ZW50KEJsb2JFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5kYXRhYXZhaWxhYmxlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6
SXNDYW5jZWxhYmxlOjpObywgYnVmZmVyID8gQmxvYjo6Y3JlYXRlKGJ1ZmZlci5yZWxlYXNlTm9u
TnVsbCgpLCBtaW1lVHlwZSkgOiBCbG9iOjpjcmVhdGUoKSkpOworICAgICAgICAgICAgZGlzcGF0
Y2hFdmVudChCbG9iRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGF0YWF2YWlsYWJsZUV2ZW50
LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8sIGJ1ZmZlciA/
IEJsb2I6OmNyZWF0ZShidWZmZXIucmVsZWFzZU5vbk51bGwoKSwgbWltZVR5cGUpIDogQmxvYjo6
Y3JlYXRlKCkpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
ci5oCmluZGV4IDJmZDllYTU4NmM5YzBlMTFjMDAxMmFmYjU2MjZiNjMzYWMyM2VjYTAuLjhmNjYz
NGM4NDkwMzkzYjhhMDc3NzJhNDI3YTVjZDliMmY3Yzc4NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaApAQCAtNzUsNyAr
NzUsNyBAQCBwdWJsaWM6CiAgICAgTWVkaWFTdHJlYW0mIHN0cmVhbSgpIHsgcmV0dXJuIG1fc3Ry
ZWFtLmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFSZWNvcmRlcihEb2N1bWVudCYsIFJl
ZjxNZWRpYVN0cmVhbT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiYm
LCBPcHRpb25zJiYgPSB7IH0pOworICAgIE1lZGlhUmVjb3JkZXIoRG9jdW1lbnQmLCBSZWY8TWVk
aWFTdHJlYW0+JiYsIE9wdGlvbnMmJiA9IHsgfSk7CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShEb2N1
bWVudCYsIE1lZGlhU3RyZWFtUHJpdmF0ZSYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5o
CmluZGV4IDllYTgxYzhiMThmOWMxNWM3OGM0ZjYzNWNiMDc2MmU3MDU5ZmUxYjguLmFhZTM0NGY5
ZjZhYTY4N2VjNzM0OTA2YWIyM2ZkNjEzMjBlYTFkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRl
LmgKQEAgLTYxLDE1ICs2MSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN0b3BSZWNv
cmRpbmcoKSA9IDA7CiAKICAgICB1c2luZyBFcnJvckNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChP
cHRpb25hbDxFeGNlcHRpb24+JiYpPjsKLSAgICB2b2lkIHNldEVycm9yQ2FsbGJhY2soRXJyb3JD
YWxsYmFjayYmIGVycm9yQ2FsbGJhY2spIHsgbV9lcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJv
ckNhbGxiYWNrKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzdGFydFJlY29yZGluZyhFcnJvckNhbGxi
YWNrJiYgY2FsbGJhY2spIHsgY2FsbGJhY2soeyB9KTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBzZXRBdWRpb1NvdXJjZShSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CiAgICAgdm9p
ZCBzZXRWaWRlb1NvdXJjZShSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CiAKLXByb3Rl
Y3RlZDoKLSAgICBFcnJvckNhbGxiYWNrIG1fZXJyb3JDYWxsYmFjazsKLQogcHJpdmF0ZToKICAg
ICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9hdWRpb1NvdXJjZTsKICAgICBSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV92aWRlb1NvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oCmluZGV4IDAzNWNjYTMyYzU1MGFhMjU3NTYyNWU0
OTkyMTQ1NzlhM2RiMWQ3MzYuLjY1Mjg2NmRkZGI5ZjlmMDQ4YWEwZjY3Yzg2OTEzMjE5MjlhYjEx
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaApA
QCAtNjAsMTMgKzYwLDEzIEBAIHByaXZhdGU6CiAgICAgT1NTdGF0dXMgcHJvdmlkZVNvdXJjZURh
dGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMiosIEF1ZGlvQnVmZmVyTGlzdCosIEF1ZGlvU3RyZWFt
UGFja2V0RGVzY3JpcHRpb24qKik7CiAKICAgICBkaXNwYXRjaF9xdWV1ZV90IG1fc2VyaWFsRGlz
cGF0Y2hRdWV1ZTsKLSAgICBDTVRpbWUgbV9sb3dXYXRlclRpbWU7CisgICAgQ01UaW1lIG1fbG93
V2F0ZXJUaW1lIHsga0NNVGltZUludmFsaWQgfTsKIAogICAgIFJldGFpblB0cjxDTUJ1ZmZlclF1
ZXVlUmVmPiBtX291dHB1dEJ1ZmZlclF1ZXVlOwogICAgIFJldGFpblB0cjxDTUJ1ZmZlclF1ZXVl
UmVmPiBtX2lucHV0QnVmZmVyUXVldWU7CiAgICAgYm9vbCBtX2lzRW5jb2RpbmcgeyBmYWxzZSB9
OwogCi0gICAgUmV0YWluUHRyPEF1ZGlvQ29udmVydGVyUmVmPiBtX2NvbnZlcnRlcjsKKyAgICBB
dWRpb0NvbnZlcnRlclJlZiBtX2NvbnZlcnRlciB7IG51bGxwdHIgfTsKICAgICBBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24gbV9zb3VyY2VGb3JtYXQ7CiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rl
c2NyaXB0aW9uIG1fZGVzdGluYXRpb25Gb3JtYXQ7CiAgICAgUmV0YWluUHRyPENNRm9ybWF0RGVz
Y3JpcHRpb25SZWY+IG1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbjsKQEAgLTc0LDkgKzc0
LDkgQEAgcHJpdmF0ZToKICAgICBVSW50MzIgbV9tYXhPdXRwdXRQYWNrZXRTaXplIHsgMCB9Owog
ICAgIFZlY3RvcjxBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uPiBtX2Rlc3RpbmF0aW9uUGFj
a2V0RGVzY3JpcHRpb25zOwogCi0gICAgQ01UaW1lIG1fY3VycmVudE5hdGl2ZVByZXNlbnRhdGlv
blRpbWVTdGFtcDsKLSAgICBDTVRpbWUgbV9jdXJyZW50T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0
YW1wOwotICAgIENNVGltZSBtX3JlbWFpbmluZ1ByaW1lRHVyYXRpb247CisgICAgQ01UaW1lIG1f
Y3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFtcCB7IGtDTVRpbWVJbnZhbGlkIH07Cisg
ICAgQ01UaW1lIG1fY3VycmVudE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCB7IGtDTVRpbWVJ
bnZhbGlkIH07CisgICAgQ01UaW1lIG1fcmVtYWluaW5nUHJpbWVEdXJhdGlvbiB7IGtDTVRpbWVJ
bnZhbGlkIH07CiAKICAgICBWZWN0b3I8Y2hhcj4gbV9zb3VyY2VCdWZmZXI7CiAgICAgVmVjdG9y
PGNoYXI+IG1fZGVzdGluYXRpb25CdWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yLm1tCmluZGV4IGM5YmZmNjQxZDJjMjZmZWFhZmExZGNjN2JjM2Fj
MjE2OWRmNmU1YTUuLmFkNDU5MmZmYmEzNjEzMDE4MDBjOTU2OWJjMDY3ZWI3NWE1MTZmN2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCkBAIC01
OCw2ICs1OCwxMCBAQCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvcigpCiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IoKQogewogICAgIGRpc3BhdGNoX3JlbGVhc2UobV9zZXJpYWxEaXNw
YXRjaFF1ZXVlKTsKKyAgICBpZiAobV9jb252ZXJ0ZXIpIHsKKyAgICAgICAgQXVkaW9Db252ZXJ0
ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgbV9jb252ZXJ0ZXIgPSBudWxscHRyOwor
ICAgIH0KIH0KIAogYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRpYWxpemUo
Q01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmpl
Y3QpCkBAIC0xMTIsMTkgKzExNiwxOSBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3NvciBBdWRpb0NvbnZlcnRlck5ldyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBtX2NvbnZlcnRlciA9IGFkb3B0Q0YoY29udmVydGVy
KTsKKyAgICBtX2NvbnZlcnRlciA9IGNvbnZlcnRlcjsKIAogICAgIHNpemVfdCBjb29raWVTaXpl
ID0gMDsKICAgICBjb25zdCB2b2lkICpjb29raWUgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25H
ZXRNYWdpY0Nvb2tpZShmb3JtYXREZXNjcmlwdGlvbiwgJmNvb2tpZVNpemUpOwogICAgIGlmIChj
b29raWVTaXplKSB7Ci0gICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQ
cm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29udmVydGVyRGVjb21wcmVzc2lvbk1h
Z2ljQ29va2llLCAoVUludDMyKWNvb2tpZVNpemUsIGNvb2tpZSkpIHsKKyAgICAgICAgaWYgKGF1
dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9D
b252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUsIChVSW50MzIpY29va2llU2l6ZSwgY29v
a2llKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJEZWNvbXByZXNz
aW9uTWFnaWNDb29raWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBzaXplID0gc2l6ZW9mKG1fc291cmNl
Rm9ybWF0KTsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHko
bV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2Ny
aXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0KSkgeworICAgIGlmIChhdXRvIGVycm9yID0g
QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3Vy
cmVudElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9zb3VyY2VGb3JtYXQpKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3Jp
cHRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CkBAIC0xMzUsNyArMTM5LDcgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKEMKICAgICB9CiAK
ICAgICBzaXplID0gc2l6ZW9mKG1fZGVzdGluYXRpb25Gb3JtYXQpOwotICAgIGlmIChhdXRvIGVy
cm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlv
Q29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fZGVzdGlu
YXRpb25Gb3JtYXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFBy
b3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVz
Y3JpcHRpb24sICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0
dGluZyBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24gZmFpbGVk
IHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xNDks
NyArMTUzLDcgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0Nv
bnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKEMKICAgICAgICAgICAgIG91dHB1dEJp
dFJhdGUgPSAzMjAwMDsKIAogICAgICAgICBzaXplID0gc2l6ZW9mKG91dHB1dEJpdFJhdGUpOwot
ICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252
ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemUsICZvdXRwdXRC
aXRSYXRlKSkgeworICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJv
cGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemUsICZv
dXRwdXRCaXRSYXRlKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJl
YW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJF
bmNvZGVCaXRSYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICB9CkBAIC0xNTksNyArMTYzLDcgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0
aW9uKEMKICAgICAgICAgLy8gSWYgdGhlIGRlc3RpbmF0aW9uIGZvcm1hdCBpcyBWQlIsIHdlIG5l
ZWQgdG8gZ2V0IG1heCBzaXplIHBlciBwYWNrZXQgZnJvbSB0aGUgY29udmVydGVyLgogICAgICAg
ICBzaXplID0gc2l6ZW9mKG1fbWF4T3V0cHV0UGFja2V0U2l6ZSk7CiAKLSAgICAgICAgaWYgKGF1
dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLmdldCgpLCBr
QXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplLCAmc2l6ZSwgJm1f
bWF4T3V0cHV0UGFja2V0U2l6ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0Nv
bnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1h
eGltdW1PdXRwdXRQYWNrZXRTaXplLCAmc2l6ZSwgJm1fbWF4T3V0cHV0UGFja2V0U2l6ZSkpIHsK
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyUHJvcGVydHlNYXhpbXVtT3V0
cHV0UGFja2V0U2l6ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQpAQCAtMTg1LDExICsxODksMTMgQEAgc2l6ZV90IEF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y29tcHV0ZUJ1ZmZlclNpemVGb3JBdWRpb0Zvcm1hdChBdWRp
b1N0cmVhbUIKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0dGFjaFByaW1p
bmdUcmltc0lmTmVlZGVkKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKKyAgICBmcHJpbnRm
KHN0ZGVyciwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YXR0YWNoUHJpbWluZ1RyaW1z
SWZOZWVkZWQxICVwXG4iLCB0aGlzKTsKICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQobV9yZW1h
aW5pbmdQcmltZUR1cmF0aW9uKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcjo6YXR0YWNoUHJpbWluZ1RyaW1zSWZOZWVkZWQyICVwXG4iLCB0
aGlzKTsKICAgICAgICAgQXVkaW9Db252ZXJ0ZXJQcmltZUluZm8gcHJpbWVJbmZvIHsgMCwgMCB9
OwogICAgICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihwcmltZUluZm8pOwogCi0gICAgICAgIGlm
IChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQo
KSwga0F1ZGlvQ29udmVydGVyUHJpbWVJbmZvLCAmc2l6ZSwgJnByaW1lSW5mbykpIHsKKyAgICAg
ICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVy
LCBrQXVkaW9Db252ZXJ0ZXJQcmltZUluZm8sICZzaXplLCAmcHJpbWVJbmZvKSkgewogICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJQcmltZUluZm8gZmFpbGVkIHdpdGggJWQi
LCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTE5Nyw3ICsyMDMs
OSBAQCB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YXR0YWNoUHJpbWluZ1RyaW1z
SWZOZWVkZWQoQ01TYW1wbGVCdWZmZXJSZWYgYgogICAgICAgICBtX3JlbWFpbmluZ1ByaW1lRHVy
YXRpb24gPSBDTVRpbWVNYWtlKHByaW1lSW5mby5sZWFkaW5nRnJhbWVzLCBtX2Rlc3RpbmF0aW9u
Rm9ybWF0Lm1TYW1wbGVSYXRlKTsKICAgICB9CiAKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YXR0YWNoUHJpbWluZ1RyaW1zSWZOZWVkZWQzICVwXG4i
LCB0aGlzKTsKICAgICBpZiAoQ01USU1FX0NPTVBBUkVfSU5MSU5FKGtDTVRpbWVaZXJvLCA8LCBt
X3JlbWFpbmluZ1ByaW1lRHVyYXRpb24pKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjphdHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZDQgJXBc
biIsIHRoaXMpOwogICAgICAgICBDTVRpbWUgc2FtcGxlRHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZl
ckdldER1cmF0aW9uKGJ1ZmZlcik7CiAgICAgICAgIENNVGltZSB0cmltRHVyYXRpb24gPSBDTVRp
bWVNaW5pbXVtKHNhbXBsZUR1cmF0aW9uLCBtX3JlbWFpbmluZ1ByaW1lRHVyYXRpb24pOwogICAg
ICAgICBDRkRpY3Rpb25hcnlSZWYgdHJpbUF0U3RhcnREaWN0ID0gQ01UaW1lQ29weUFzRGljdGlv
bmFyeSh0cmltRHVyYXRpb24sIGtDRkFsbG9jYXRvckRlZmF1bHQpOwpAQCAtMjExLDI1ICsyMTks
MjUgQEAgUmV0YWluUHRyPE5TTnVtYmVyPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6Omdy
YWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KCkKIHsKICAgICBVSW50MzIgZGVsYXlTaXplID0gc2l6
ZW9mKHVpbnQzMl90KTsKICAgICB1aW50MzJfdCBvcmlnaW5hbERlbGF5TW9kZSA9IDA7Ci0gICAg
aWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLmdl
dCgpLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCAmZGVsYXlTaXplLCAmb3JpZ2luYWxE
ZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3Bl
cnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCAmZGVsYXlTaXpl
LCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlh
U3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29kZWNQ
cm9wZXJ0eURlbGF5TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJu
IG5pbDsKICAgICB9CiAKICAgICB1aW50MzJfdCBvcHRpbWFsRGVsYXlNb2RlID0ga0F1ZGlvQ29k
ZWNEZWxheU1vZGVfT3B0aW1hbDsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVy
U2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1v
ZGUsIGRlbGF5U2l6ZSwgJm9wdGltYWxEZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3Ig
PSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3Bl
cnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcHRpbWFsRGVsYXlNb2RlKSkgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdpdGggJWQiLCBl
cnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAgICAgVUludDMyIHByaW1lU2l6
ZSA9IHNpemVvZihBdWRpb0NvZGVjUHJpbWVJbmZvKTsKICAgICBBdWRpb0NvZGVjUHJpbWVJbmZv
IHByaW1lSW5mbyB7IDAsIDAgfTsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVy
R2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvZGVjUHJvcGVydHlQcmltZUlu
Zm8sICZwcmltZVNpemUsICZwcmltZUluZm8pKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRp
b0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5UHJp
bWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtB
dWRpb0NvZGVjUHJvcGVydHlQcmltZUluZm8gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAg
ICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZl
cnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVs
YXlNb2RlLCBkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBl
cnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVj
UHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQpAQCAtMjQyLDExICsyNTAs
MTEgQEAgQ01TYW1wbGVCdWZmZXJSZWYgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1w
bGVCdWZmZXJXaXRoTnVtUGFja2V0cyhVSW50MzIKICAgICBpZiAoIW1fZGVzdGluYXRpb25Gb3Jt
YXREZXNjcmlwdGlvbikgewogICAgICAgICBVSW50MzIgY29va2llU2l6ZSA9IDA7CiAKLSAgICAg
ICAgYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZvKG1fY29udmVydGVy
LmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6
ZSwgTlVMTCk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5
SW5mbyhtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwg
JmNvb2tpZVNpemUsIE5VTEwpOwogICAgICAgICBpZiAoKGVycm9yID09IG5vRXJyKSAmJiAhIWNv
b2tpZVNpemUpIHsKICAgICAgICAgICAgIGNvb2tpZS5yZXNpemUoY29va2llU2l6ZSk7CiAKLSAg
ICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2Nv
bnZlcnRlci5nZXQoKSwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNv
b2tpZVNpemUsIGNvb2tpZS5kYXRhKCkpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9
IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNv
bXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBjb29raWUuZGF0YSgpKSkgewogICAg
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nv
b2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICByZXR1cm4gbmls
OwogICAgICAgICAgICAgfQpAQCAtNDM5LDcgKzQ0Nyw3IEBAIHZvaWQgQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKENNVGlt
ZSBsCiAgICAgICAgIFVJbnQzMiBvdXRwdXRQYWNrZXRTaXplID0gbV9kZXN0aW5hdGlvbkZvcm1h
dC5tQnl0ZXNQZXJQYWNrZXQgPyBtX2Rlc3RpbmF0aW9uRm9ybWF0Lm1CeXRlc1BlclBhY2tldCA6
IG1fbWF4T3V0cHV0UGFja2V0U2l6ZTsKICAgICAgICAgVUludDMyIG51bU91dHB1dFBhY2tldHMg
PSAoVUludDMyKW1fZGVzdGluYXRpb25CdWZmZXIuY2FwYWNpdHkoKSAvIG91dHB1dFBhY2tldFNp
emU7CiAKLSAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZm
ZXIobV9jb252ZXJ0ZXIuZ2V0KCksIGF1ZGlvQ29udmVydGVyQ29tcGxleElucHV0RGF0YVByb2Ms
IHRoaXMsICZudW1PdXRwdXRQYWNrZXRzLCAmZmlsbEJ1ZmZlckxpc3QsIG1fZGVzdGluYXRpb25Q
YWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpKTsKKyAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29u
dmVydGVyRmlsbENvbXBsZXhCdWZmZXIobV9jb252ZXJ0ZXIsIGF1ZGlvQ29udmVydGVyQ29tcGxl
eElucHV0RGF0YVByb2MsIHRoaXMsICZudW1PdXRwdXRQYWNrZXRzLCAmZmlsbEJ1ZmZlckxpc3Qs
IG1fZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpKTsKICAgICAgICAgaWYgKGVy
cm9yKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3NvciBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBiN2E5ZDcx
MjM4N2Q3MDQwYWZhNWI4Y2VhNjExYTRkY2U0MzQ2NmE4Li4zZGExYjI5NWZjZjJlMzVhZDlhMzA2
MWM2YWZmNjIxMTQ4MzIyNjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EuaApAQCAtMTE0LDggKzExNCw4IEBAIHByaXZhdGU6CiAgICAg
UmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IG1fdmlkZW9Gb3JtYXREZXNjcmlwdGlv
bjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBtX3Zp
ZGVvQ29tcHJlc3NvcjsKICAgICBSZXRhaW5QdHI8QVZBc3NldFdyaXRlcklucHV0PiBtX3ZpZGVv
QXNzZXRXcml0ZXJJbnB1dDsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1l
OwotICAgIENNVGltZSBtX2xhc3RWaWRlb0RlY29kaW5nVGltZTsKKyAgICBDTVRpbWUgbV9sYXN0
VmlkZW9QcmVzZW50YXRpb25UaW1lIHsga0NNVGltZUludmFsaWQgfTsKKyAgICBDTVRpbWUgbV9s
YXN0VmlkZW9EZWNvZGluZ1RpbWUgeyBrQ01UaW1lSW52YWxpZCB9OwogICAgIGJvb2wgbV9oYXNF
bmNvZGVkVmlkZW9TYW1wbGVzIHsgZmFsc2UgfTsKIAogICAgIFJldGFpblB0cjxXZWJBVkFzc2V0
V3JpdGVyRGVsZWdhdGU+IG1fd3JpdGVyRGVsZWdhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggN2YzMDg3ZTAxZTBjMDFi
Njc3ZWY0MzRlMTBiNjc5ZWRiNGE4ZTkwOS4uNjhmMDI1NDExMzA5ZjNiMWFkZDc3ZjU0YzRhMjAx
ZWYwNTNiZGY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5tbQpAQCAtNDM1LDE2ICs0MzUsMTggQEAgdm9pZCBNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6c3RvcFJlY29yZGluZygpCiAgICAgbV9pc1N0b3BwaW5nID0gdHJ1ZTsK
ICAgICAvLyBXZSBob3AgdG8gdGhlIG1haW4gdGhyZWFkIHNpbmNlIGZpbmlzaGluZyB0aGUgdmlk
ZW8gY29tcHJlc3NvciBtaWdodCB0cmlnZ2VyIHN0YXJ0aW5nIHRoZSB3cml0ZXIgYXN5bmNocm9u
b3VzbHkuCiAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cih0aGlzKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byB3aGVuRmluaXNoZWQgPSBbdGhpc10g
ewotICAgICAgICAgICAgbV9pc1N0b3BwaW5nID0gZmFsc2U7Ci0gICAgICAgICAgICBpZiAobV9m
ZXRjaERhdGFDb21wbGV0aW9uSGFuZGxlcikgewotICAgICAgICAgICAgICAgIGF1dG8gYnVmZmVy
ID0gV1RGTW92ZShtX2RhdGEpOwotICAgICAgICAgICAgICAgIG1fZmV0Y2hEYXRhQ29tcGxldGlv
bkhhbmRsZXIoV1RGTW92ZShidWZmZXIpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgYXV0byB3
aGVuRmluaXNoZWQgPSBbdGhpcywgd2Vha1RoaXNdIHsKKyAgICAgICAgICAgIGlmICghd2Vha1Ro
aXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgICAgICBtX2lzU3RvcHBpbmcg
PSBmYWxzZTsKICAgICAgICAgICAgIG1faXNTdG9wcGVkID0gZmFsc2U7CiAgICAgICAgICAgICBt
X2hhc1N0YXJ0ZWRXcml0aW5nID0gZmFsc2U7Ci0gICAgICAgICAgICBjbGVhcigpOworCisgICAg
ICAgICAgICBpZiAobV93cml0ZXIpCisgICAgICAgICAgICAgICAgbV93cml0ZXIuY2xlYXIoKTsK
KyAgICAgICAgICAgIGlmIChtX2ZldGNoRGF0YUNvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICAg
ICAgICAgIG1fZmV0Y2hEYXRhQ29tcGxldGlvbkhhbmRsZXIoc3RkOjpleGNoYW5nZShtX2RhdGEs
IG51bGxwdHIpKTsKICAgICAgICAgfTsKIAogICAgICAgICBpZiAoIW1faGFzU3RhcnRlZFdyaXRp
bmcpIHsKQEAgLTQ2MSwxMiArNDYzLDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6c3RvcFJlY29yZGluZygpCiAgICAgICAgICAgICBbbV93cml0ZXIgZmx1c2hdOwogICAgICAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKLSAgICAgICAgICAgIFtt
X3dyaXRlciBmaW5pc2hXcml0aW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOlt3ZWFrVGhpcyA9IFdU
Rk1vdmUod2Vha1RoaXMpLCB3aGVuRmluaXNoZWQgPSBXVEZNb3ZlKHdoZW5GaW5pc2hlZCldKCkg
bXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBX
VEZNb3ZlKHdlYWtUaGlzKSwgd2hlbkZpbmlzaGVkID0gV1RGTW92ZSh3aGVuRmluaXNoZWQpXSgp
IG11dGFibGUgewotICAgICAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgICAgICB3aGVuRmluaXNoZWQo
KTsKLSAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIFttX3dyaXRlciBmaW5pc2hXcml0
aW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOlt3aGVuRmluaXNoZWQgPSBXVEZNb3ZlKHdoZW5GaW5p
c2hlZCldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZN
b3ZlKHdoZW5GaW5pc2hlZCkpOwogICAgICAgICAgICAgfV07CiAgICAgICAgIH0pOwogICAgIH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2Nv
YS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRl
eCAxODVhZDEyODExNTljNzdjZGE0MjIyZTdhOTIwZGNhY2EwY2QwODQ5Li44OWEyYTc4NzY1MmUx
NzIwNzFkYjAyZGZhNGE2YjIyZTI2NmMzZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQpAQCAtNTYsNiArNTYsMTAgQEAgVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoQ01WaWRlb0NvZGVj
VHlwZSBvdXRwdXQKIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvcigpCiB7CiAgICAgZGlzcGF0Y2hfcmVsZWFzZShtX3NlcmlhbERpc3BhdGNo
UXVldWUpOworICAgIGlmIChtX3Z0U2Vzc2lvbikgeworICAgICAgICBWVENvbXByZXNzaW9uU2Vz
c2lvbkludmFsaWRhdGUobV92dFNlc3Npb24uZ2V0KCkpOworICAgICAgICBtX3Z0U2Vzc2lvbiA9
IG51bGxwdHI7CisgICAgfQogfQogCiBib29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBj
YWxsYmFja09iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKaW5kZXggN2Y0YzY2ZDZh
MjM2MmU1MmU2YTA3NjRlNzg5ZjZkMjBlOTE2NzJjOS4uZGM1YjdiNjEyZjZkYzUwZDIyNDBjNGJk
ODg4ZWMyMGFhZWNhNDI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKQEAgLTY0LDcg
KzY0LDYgQEAgdm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Y3JlYXRlUmVjb3JkZXIo
TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmkKIAogdm9pZCBSZW1vdGVNZWRpYVJlY29y
ZGVyTWFuYWdlcjo6cmVsZWFzZVJlY29yZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIpCiB7Ci0gICAgQVNTRVJUKG1fcmVjb3JkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsK
ICAgICBtX3JlY29yZGVycy5yZW1vdmUoaWRlbnRpZmllcik7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2
YXRlLmNwcAppbmRleCBmNWFjMzE4MWY1MzkwYmVlZDJmNDBjMWYxYzI4MGFkNDQ0MmNkOTA2Li4x
ODNjNGQyNjQ2Y2Q5MTAxZjA1NzUyZjc4NzcxOTA4MGM1YzhhYmEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
aXZhdGUuY3BwCkBAIC00NSwxMiArNDUsMTcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IE1lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVBy
aXZhdGUmIHN0cmVhbSkKICAgICA6IG1faWRlbnRpZmllcihNZWRpYVJlY29yZGVySWRlbnRpZmll
cjo6Z2VuZXJhdGUoKSkKKyAgICAsIG1fc3RyZWFtKG1ha2VSZWYoc3RyZWFtKSkKICAgICAsIG1f
Y29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKSkKK3sKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6
c3RhcnRSZWNvcmRpbmcoRXJyb3JDYWxsYmFjayYmIGVycm9yQ2FsbGJhY2spCiB7CiAgICAgLy8g
RklYTUU6IHdlIHdpbGwgbmVlZCB0byBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgYXVk
aW8vdmlkZW8gdHJhY2tzCiAgICAgLy8gQ3VycmVudGx5IHdlIG9ubHkgY2hvb3NlIHRoZSBmaXJz
dCB0cmFjayBhcyB0aGUgcmVjb3JkZWQgdHJhY2suCiAKLSAgICBhdXRvIHNlbGVjdGVkVHJhY2tz
ID0gTWVkaWFSZWNvcmRlclByaXZhdGU6OnNlbGVjdFRyYWNrcyhzdHJlYW0pOworICAgIGF1dG8g
c2VsZWN0ZWRUcmFja3MgPSBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2VsZWN0VHJhY2tzKG1fc3Ry
ZWFtKTsKICAgICBpZiAoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaykgewogICAgICAgICBtX3Jp
bmdCdWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZT4odGhpcykpOwogICAgICAgICBtX3JlY29yZGVkQXVkaW9UcmFja0lE
ID0gc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjay0+aWQoKTsKQEAgLTY0LDE1ICs2OSwxNiBAQCBN
ZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2
YXRlJiBzdHJlYW0pCiAgICAgICAgIHdpZHRoID0gc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjay0+
c2V0dGluZ3MoKS53aWR0aCgpOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Q3JlYXRlUmVj
b3JkZXIgeyBtX2lkZW50aWZpZXIsICEhc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaywgd2lkdGgs
IGhlaWdodCB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgYXVkaW9UcmFj
ayA9IG1ha2VSZWZQdHIoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjayksIHZpZGVvVHJhY2sgPSBt
YWtlUmVmUHRyKHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2spXShhdXRvJiYgZXhjZXB0aW9uKSB7
CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUmVjb3JkZXJNYW5hZ2VyOjpDcmVhdGVSZWNvcmRlciB7IG1faWRlbnRpZmllciwgISFzZWxl
Y3RlZFRyYWNrcy5hdWRpb1RyYWNrLCB3aWR0aCwgaGVpZ2h0IH0sIFt0aGlzLCB3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpLCBhdWRpb1RyYWNrID0gbWFrZVJlZlB0cihzZWxlY3RlZFRyYWNr
cy5hdWRpb1RyYWNrKSwgdmlkZW9UcmFjayA9IG1ha2VSZWZQdHIoc2VsZWN0ZWRUcmFja3Mudmlk
ZW9UcmFjayksIGVycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spXShhdXRvJiYg
ZXhjZXB0aW9uKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICByZXR1cm4gZXJyb3JDYWxsYmFjayh7IH0pOwogICAgICAgICBpZiAoZXhj
ZXB0aW9uKQotICAgICAgICAgICAgcmV0dXJuIG1fZXJyb3JDYWxsYmFjayhFeGNlcHRpb24geyBl
eGNlcHRpb24tPmNvZGUsIFdURk1vdmUoZXhjZXB0aW9uLT5tZXNzYWdlKSB9KTsKKyAgICAgICAg
ICAgIHJldHVybiBlcnJvckNhbGxiYWNrKEV4Y2VwdGlvbiB7IGV4Y2VwdGlvbi0+Y29kZSwgV1RG
TW92ZShleGNlcHRpb24tPm1lc3NhZ2UpIH0pOwogICAgICAgICBpZiAoYXVkaW9UcmFjaykKICAg
ICAgICAgICAgIHNldEF1ZGlvU291cmNlKCZhdWRpb1RyYWNrLT5zb3VyY2UoKSk7CiAgICAgICAg
IGlmICh2aWRlb1RyYWNrKQogICAgICAgICAgICAgc2V0VmlkZW9Tb3VyY2UoJnZpZGVvVHJhY2st
PnNvdXJjZSgpKTsKKyAgICAgICAgZXJyb3JDYWxsYmFjayh7IH0pOwogICAgIH0sIDApOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJl
Y29yZGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByaXZhdGUuaAppbmRleCAzZDdiZWUyOTY0M2M5OWI1MTBlN2I4YTRlMDU0MGI3
ZWUyMDdhNWQzLi41MjY3YWJhZmUzOGRmNTM1MjJmYmM1YWVmNjAyNTAzOWQ1MTFmYmU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlh
UmVjb3JkZXJQcml2YXRlLmgKQEAgLTU4LDE0ICs1OCwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQg
dmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmKSBmaW5hbDsKICAgICB2
b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpTaGFy
ZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKSBmaW5hbDsKICAgICB2b2lk
IHN0b3BSZWNvcmRpbmcoKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0UmVjb3JkaW5nKEVycm9yQ2Fs
bGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RG
OjpNZWRpYVRpbWUmLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdl
YkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwogCiAgICAgLy8g
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudAogICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQo
U2hhcmVkTWVtb3J5Kik7CiAKICAgICBNZWRpYVJlY29yZGVySWRlbnRpZmllciBtX2lkZW50aWZp
ZXI7Ci0KKyAgICBSZWY8TWVkaWFTdHJlYW1Qcml2YXRlPiBtX3N0cmVhbTsKICAgICBSZWY8SVBD
OjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisKICAgICBTdHJpbmcgbV9yZWNvcmRlZEF1ZGlv
VHJhY2tJRDsKICAgICBTdHJpbmcgbV9yZWNvcmRlZFZpZGVvVHJhY2tJRDsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBh
M2Y4MGRmYzk1MzI3YjRiOWM0MDczYzhjYTdkMDVjMDcxZTkxOGUuLjIxMDU1ZWU0ZDIwYWNjN2Nj
YzQzZWVmNGM4YWU4NDkwMzMwYjFjNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNi0y
MyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFSZWNv
cmRlciBzdG9wUmVjb3JkZXIoKSByZXR1cm5zIGVtcHR5IEJsb2IgYWZ0ZXIgZmlyc3QgdXNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIyNzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNjAxMjk4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGZpeC0yMTIyNzQKKworICAgICAgICAqIGh0dHAvd3B0
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLW11bHRpcGxlLXN0YXJ0LXN0b3AuaHRtbDogQWRkZWQuCisKIDIwMjAtMDYtMTkgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFVu
aWZ5ICJmb250OiIgQ1NTIHNob3J0aGFuZCB2YWx1ZXMgYmV0d2VlbiBtYWNPUyBhbmQgaU9TIGZh
bWlseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyLW11bHRpcGxlLXN0YXJ0LXN0b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLW11bHRpcGxlLXN0YXJ0LXN0b3At
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmNDU0YzJiYzgxMTgyZDhmOWRkM2Q0MmVhYzc1OGY0
Yzk1OGMxNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXItbXVsdGlwbGUtc3RhcnQtc3RvcC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgTWFrZSBzdXJlIHRoYXQgTWVkaWFSZWNvcmRlciBjYW4gYmUg
dXNlZCBhZnRlciBzdG9wcGluZyBpdCBvbmNlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItbXVsdGlwbGUtc3RhcnQtc3RvcC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLW11
bHRpcGxlLXN0YXJ0LXN0b3AuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTE2NjUwOGMyMmNlYmY2ZTMwYWVl
MTZkNWJhYTNkNmRmNDYwMjU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLW11bHRpcGxlLXN0YXJ0LXN0b3AuaHRtbApA
QCAtMCwwICsxLDQ5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRp
dGxlPk1lZGlhUmVjb3JkZXIgRGF0YWF2YWlsYWJsZTwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRp
YVJlY29yZGVyLmh0bWwjbWVkaWFyZWNvcmRlciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZh
cyBpZD0iY2FudmFzIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+Cis8L2NhbnZhcz4KKzxzY3Jp
cHQ+CisgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAgICBjb25zdCB2aWRlbyA9
IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW8gOiB0cnVl
LCB2aWRlbyA6IHRydWUgfSk7CisgICAgICAgIGNvbnN0IHJlY29yZGVyID0gbmV3IE1lZGlhUmVj
b3JkZXIodmlkZW8pOworCisgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkZXIuc3RyZWFtLCB2
aWRlbyk7CisKKyAgICAgICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsK
KyAgICAgICAgICAgIHJlY29yZGVyLm9uZGF0YWF2YWlsYWJsZSA9IHQuc3RlcF9mdW5jKGJsb2JF
dmVudCA9PiB7CisgICAgICAgICAgICAgICAgaWYgKGJsb2JFdmVudC5kYXRhLnNpemUpCisgICAg
ICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KworICAgICAgICByZWNvcmRlci5zdGFydCgpOworICAgICAgICBsZXQgdGltZXIgPSBzZXRJbnRl
cnZhbCgoKSA9PiByZWNvcmRlci5yZXF1ZXN0RGF0YSgpLCAxMCk7CisgICAgICAgIGF3YWl0IHBy
b21pc2U7CisgICAgICAgIGNsZWFySW50ZXJ2YWwodGltZXIpOworCisgICAgICAgIHJlY29yZGVy
LnN0b3AoKTsKKworICAgICAgICBwcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Cisg
ICAgICAgICAgICByZWNvcmRlci5vbmRhdGFhdmFpbGFibGUgPSB0LnN0ZXBfZnVuYyhibG9iRXZl
bnQgPT4geworICAgICAgICAgICAgICAgIGlmIChibG9iRXZlbnQuZGF0YS5zaXplKQorICAgICAg
ICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgcmVjb3JkZXIuc3RhcnQoKTsKKyAgICAgICAgdGltZXIgPSBzZXRJbnRlcnZhbCgo
KSA9PiByZWNvcmRlci5yZXF1ZXN0RGF0YSgpLCAxMCk7CisgICAgICAgIGF3YWl0IHByb21pc2U7
CisgICAgICAgIGNsZWFySW50ZXJ2YWwodGltZXIpOworCisgICAgICAgIHJlY29yZGVyLnN0b3Ao
KTsKKyAgICB9LCAnTWFrZSBzdXJlIHRoYXQgTWVkaWFSZWNvcmRlciBjYW4gYmUgdXNlZCBhZnRl
ciBzdG9wcGluZyBpdCBvbmNlJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402653</attachid>
            <date>2020-06-24 08:46:15 -0700</date>
            <delta_ts>2020-06-25 06:45:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212274-20200624174612.patch</filename>
            <type>text/plain</type>
            <size>33025</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjYzY2RiMmZjYjk3Mjdl
MDFkODk1ZTMxYWRlMzQ3OWVjMWQyM2Q1NC4uNWZlN2Y2ZDY4NDVjNzljY2Q5Y2UyYWU0ZDZlMTI0
YTlkMGQ5ZWJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTA2LTI0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHN0
b3BSZWNvcmRlcigpIHJldHVybnMgZW1wdHkgQmxvYiBhZnRlciBmaXJzdCB1c2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjI3NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNjM2MDEyOTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgZml4LTIxMjI3NAorCisgICAgICAgIFRlc3Q6IGh0dHAvd3B0L21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLmh0bWwKKworICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVJlY29yZGVyOjpNZWRpYVJlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXI6OnN0YXJ0UmVjb3JkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6OnN0
b3BSZWNvcmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6cmVxdWVzdERh
dGEpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnN0YXJ0UmVjb3JkaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjp+QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVy
dGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjphdHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVy
UmVmcmVzaENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51bVBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0
ZXJUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6c3RvcFJlY29yZGluZyk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IubW06CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
On5WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IpOgorCiAyMDIwLTA2LTI0ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbG9nZ2luZyB0byBXZWJSVEMg
dmlkZW8gcGlwZWxpbmUgdG8gY2hlY2sgZm9yIGZyYW1lIHJhdGUgc3RhYmlsaXR5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDY4NWNmZWFjMjI0YjMyYjkyOGRkODBkY2RjZDAwNTA1ZDZjZTJmY2IuLmY1MTEzZDQ5YWRj
ZjFmMmRiZjQ0ZDJkZjExYjkwOGRjYjQ2MGVlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMjAtMDYtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAg
IE1lZGlhUmVjb3JkZXIgc3RvcFJlY29yZGVyKCkgcmV0dXJucyBlbXB0eSBCbG9iIGFmdGVyIGZp
cnN0IHVzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEyMjc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzYwMTI5OD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBmaXgtMjEyMjc0CisKKyAgICAgICAg
KiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpyZWxlYXNlUmVjb3JkZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdGFydFJl
Y29yZGluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmg6CisKIDIwMjAtMDYtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIFNlbmQgV2ViUlRDIHBhY2tldHMgcmVjZWl2ZWQgZnJvbSBuZXR3b3JrIHBy
b2Nlc3MgdG8gd2ViIHByb2Nlc3MgZnJvbSBhIGJhY2tncm91bmQgdGhyZWFkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAK
aW5kZXggODU4MWQ1Y2Q3Yjc5MDNjODNmZDhkMTE1NGVhMTU2MWEzMmQ4M2JhZS4uMTliOTZjZTJj
MmU0OGEzMDhiNWFmODM5NGY0NjM4Yzk4YWNmMTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcApAQCAtNTEsMTEg
KzUxLDggQEAgRXhjZXB0aW9uT3I8UmVmPE1lZGlhUmVjb3JkZXI+PiBNZWRpYVJlY29yZGVyOjpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWUKICAgICBhdXRvIHByaXZhdGVJbnN0YW5j
ZSA9IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGRvY3VtZW50LCBz
dHJlYW0tPnByaXZhdGVTdHJlYW0oKSk7CiAgICAgaWYgKCFwcml2YXRlSW5zdGFuY2UpCiAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBNZWRpYVJlY29y
ZGVyIGlzIHVuc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0iX3MgfTsKLSAgICBhdXRvIHJlY29y
ZGVyID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyKGRvY3VtZW50LCBXVEZNb3ZlKHN0cmVh
bSksIFdURk1vdmUocHJpdmF0ZUluc3RhbmNlKSwgV1RGTW92ZShvcHRpb25zKSkpOworICAgIGF1
dG8gcmVjb3JkZXIgPSBhZG9wdFJlZigqbmV3IE1lZGlhUmVjb3JkZXIoZG9jdW1lbnQsIFdURk1v
dmUoc3RyZWFtKSwgV1RGTW92ZShvcHRpb25zKSkpOwogICAgIHJlY29yZGVyLT5zdXNwZW5kSWZO
ZWVkZWQoKTsKLSAgICByZWNvcmRlci0+bV9wcml2YXRlLT5zZXRFcnJvckNhbGxiYWNrKFtyZWNv
cmRlcl0oYXV0byYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Ci0gICAgICAgIHJlY29yZGVyLT5kaXNw
YXRjaEVycm9yKFdURk1vdmUoKmV4Y2VwdGlvbikpOwotICAgIH0pOwogICAgIHJldHVybiByZWNv
cmRlcjsKIH0KIApAQCAtODIsMTEgKzc5LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29y
ZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoCiAj
ZW5kaWYKIH0KIAotTWVkaWFSZWNvcmRlcjo6TWVkaWFSZWNvcmRlcihEb2N1bWVudCYgZG9jdW1l
bnQsIFJlZjxNZWRpYVN0cmVhbT4mJiBzdHJlYW0sIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29y
ZGVyUHJpdmF0ZT4mJiBwcml2YXRlSW1wbCwgT3B0aW9ucyYmIG9wdGlvbikKK01lZGlhUmVjb3Jk
ZXI6Ok1lZGlhUmVjb3JkZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYg
c3RyZWFtLCBPcHRpb25zJiYgb3B0aW9uKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50
KQogICAgICwgbV9vcHRpb25zKFdURk1vdmUob3B0aW9uKSkKICAgICAsIG1fc3RyZWFtKFdURk1v
dmUoc3RyZWFtKSkKLSAgICAsIG1fcHJpdmF0ZShXVEZNb3ZlKHByaXZhdGVJbXBsKSkKIHsKICAg
ICBtX3RyYWNrcyA9IFdURjo6bWFwKG1fc3RyZWFtLT5nZXRUcmFja3MoKSwgW10gKGF1dG8mJiB0
cmFjaykgLT4gUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiB7CiAgICAgICAgIHJldHVybiB0
cmFjay0+cHJpdmF0ZVRyYWNrKCk7CkBAIC0xMzIsOSArMTI4LDI2IEBAIGNvbnN0IGNoYXIqIE1l
ZGlhUmVjb3JkZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogRXhjZXB0aW9uT3I8dm9p
ZD4gTWVkaWFSZWNvcmRlcjo6c3RhcnRSZWNvcmRpbmcoT3B0aW9uYWw8aW50PiB0aW1lc2xpY2Up
CiB7CiAgICAgVU5VU0VEX1BBUkFNKHRpbWVzbGljZSk7CisgICAgaWYgKCFtX2lzQWN0aXZlKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgTWVkaWFS
ZWNvcmRlciBpcyBub3QgYWN0aXZlIl9zIH07CisKICAgICBpZiAoc3RhdGUoKSAhPSBSZWNvcmRp
bmdTdGF0ZTo6SW5hY3RpdmUpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciwgIlRoZSBNZWRpYVJlY29yZGVyJ3Mgc3RhdGUgbXVzdCBiZSBpbmFjdGl2ZSBpbiBv
cmRlciB0byBzdGFydCByZWNvcmRpbmciX3MgfTsKLSAgICAKKworICAgIEFTU0VSVCghbV9wcml2
YXRlKTsKKyAgICBtX3ByaXZhdGUgPSBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSgqZG9jdW1l
bnQoKSwgbV9zdHJlYW0tPnByaXZhdGVTdHJlYW0oKSk7CisKKyAgICBpZiAoIW1fcHJpdmF0ZSkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIE1lZGlh
UmVjb3JkZXIgaXMgdW5zdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybSJfcyB9OworCisgICAgbV9w
cml2YXRlLT5zdGFydFJlY29yZGluZyhbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRp
bmdBY3Rpdml0eSgqdGhpcyldKGF1dG8mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBp
ZiAoIW1faXNBY3RpdmUgfHwgIWV4Y2VwdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBzdG9wUmVjb3JkaW5nSW50ZXJuYWwoKTsKKyAgICAgICAgZGlzcGF0Y2hFcnJvcihXVEZN
b3ZlKCpleGNlcHRpb24pKTsKKyAgICB9KTsKKwogICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3Ry
YWNrcykKICAgICAgICAgdHJhY2stPmFkZE9ic2VydmVyKCp0aGlzKTsKIApAQCAtMTQ2LDIyICsx
NTksMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZygp
CiB7CiAgICAgaWYgKHN0YXRlKCkgPT0gUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZlKQogICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgTWVkaWFSZWNvcmRl
cidzIHN0YXRlIGNhbm5vdCBiZSBpbmFjdGl2ZSJfcyB9OwotICAgIAotICAgIHF1ZXVlVGFza0tl
ZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXNdIHsK
LSAgICAgICAgaWYgKCFtX2lzQWN0aXZlIHx8IHN0YXRlKCkgPT0gUmVjb3JkaW5nU3RhdGU6Oklu
YWN0aXZlKQotICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHN0b3BSZWNvcmRpbmdJbnRl
cm5hbCgpOwotICAgICAgICBBU1NFUlQobV9zdGF0ZSA9PSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3Rp
dmUpOwotICAgICAgICBtX3ByaXZhdGUtPmZldGNoRGF0YShbdGhpcywgcGVuZGluZ0FjdGl2aXR5
ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKGF1dG8mJiBidWZmZXIsIGF1dG8mIG1pbWVU
eXBlKSB7CisgICAgc3RvcFJlY29yZGluZ0ludGVybmFsKCk7CisgICAgYXV0byYgcHJpdmF0ZVJl
Y29yZGVyID0gKm1fcHJpdmF0ZTsKKyAgICBwcml2YXRlUmVjb3JkZXIuZmV0Y2hEYXRhKFt0aGlz
LCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKSwgcHJpdmF0ZVJl
Y29yZGVyID0gV1RGTW92ZShtX3ByaXZhdGUpXShhdXRvJiYgYnVmZmVyLCBhdXRvJiBtaW1lVHlw
ZSkgeworICAgICAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3Vy
Y2U6Ok5ldHdvcmtpbmcsIFt0aGlzLCBidWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlciksIG1pbWVUeXBl
XSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAKICAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQoQmxvYkV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmRhdGFhdmFpbGFibGVFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6
Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vLCBidWZmZXIgPyBCbG9iOjpjcmVhdGUoYnVmZmVy
LnJlbGVhc2VOb25OdWxsKCksIG1pbWVUeXBlKSA6IEJsb2I6OmNyZWF0ZSgpKSk7CiAKICAgICAg
ICAgICAgIGlmICghbV9pc0FjdGl2ZSkKICAgICAgICAgICAgICAgICByZXR1cm47Ci0KICAgICAg
ICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcEV2ZW50
LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CkBAIC0xNzQsMTAgKzE4MiwxMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBN
ZWRpYVJlY29yZGVyOjpyZXF1ZXN0RGF0YSgpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIlRoZSBNZWRpYVJlY29yZGVyJ3Mgc3RhdGUgY2Fubm90IGJlIGlu
YWN0aXZlIl9zIH07CiAKICAgICBtX3ByaXZhdGUtPmZldGNoRGF0YShbdGhpcywgcGVuZGluZ0Fj
dGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKGF1dG8mJiBidWZmZXIsIGF1dG8m
IG1pbWVUeXBlKSB7Ci0gICAgICAgIGlmICghbV9pc0FjdGl2ZSkKLSAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNl
OjpOZXR3b3JraW5nLCBbdGhpcywgYnVmZmVyID0gV1RGTW92ZShidWZmZXIpLCBtaW1lVHlwZV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmICghbV9pc0FjdGl2ZSkKKyAgICAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgZGlzcGF0Y2hFdmVudChCbG9iRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuZGF0YWF2YWlsYWJsZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6Tm8sIGJ1ZmZlciA/IEJsb2I6OmNyZWF0ZShidWZmZXIucmVsZWFzZU5v
bk51bGwoKSwgbWltZVR5cGUpIDogQmxvYjo6Y3JlYXRlKCkpKTsKKyAgICAgICAgICAgIGRpc3Bh
dGNoRXZlbnQoQmxvYkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmRhdGFhdmFpbGFibGVFdmVu
dCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vLCBidWZmZXIg
PyBCbG9iOjpjcmVhdGUoYnVmZmVyLnJlbGVhc2VOb25OdWxsKCksIG1pbWVUeXBlKSA6IEJsb2I6
OmNyZWF0ZSgpKSk7CisgICAgICAgIH0pOwogICAgIH0pOwogICAgIHJldHVybiB7IH07CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXIuaAppbmRleCAyZmQ5ZWE1ODZjOWMwZTExYzAwMTJhZmI1NjI2YjYzM2FjMjNlY2EwLi44ZjY2
MzRjODQ5MDM5M2I4YTA3NzcyYTQyN2E1Y2Q5YjJmN2M3ODVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTc1LDcg
Kzc1LDcgQEAgcHVibGljOgogICAgIE1lZGlhU3RyZWFtJiBzdHJlYW0oKSB7IHJldHVybiBtX3N0
cmVhbS5nZXQoKTsgfQogCiBwcml2YXRlOgotICAgIE1lZGlhUmVjb3JkZXIoRG9jdW1lbnQmLCBS
ZWY8TWVkaWFTdHJlYW0+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4m
JiwgT3B0aW9ucyYmID0geyB9KTsKKyAgICBNZWRpYVJlY29yZGVyKERvY3VtZW50JiwgUmVmPE1l
ZGlhU3RyZWFtPiYmLCBPcHRpb25zJiYgPSB7IH0pOwogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9j
dW1lbnQmLCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUu
aAppbmRleCA5ZWE4MWM4YjE4ZjljMTVjNzhjNGY2MzVjYjA3NjJlNzA1OWZlMWI4Li5hYWUzNDRm
OWY2YWE2ODdlYzczNDkwNmFiMjNmZDYxMzIwZWExZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0
ZS5oCkBAIC02MSwxNSArNjEsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdG9wUmVj
b3JkaW5nKCkgPSAwOwogCiAgICAgdXNpbmcgRXJyb3JDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQo
T3B0aW9uYWw8RXhjZXB0aW9uPiYmKT47Ci0gICAgdm9pZCBzZXRFcnJvckNhbGxiYWNrKEVycm9y
Q2FsbGJhY2smJiBlcnJvckNhbGxiYWNrKSB7IG1fZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJy
b3JDYWxsYmFjayk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRSZWNvcmRpbmcoRXJyb3JDYWxs
YmFjayYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKHsgfSk7IH0KIAogcHJvdGVjdGVkOgogICAgIHZv
aWQgc2V0QXVkaW9Tb3VyY2UoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwogICAgIHZv
aWQgc2V0VmlkZW9Tb3VyY2UoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwogCi1wcm90
ZWN0ZWQ6Ci0gICAgRXJyb3JDYWxsYmFjayBtX2Vycm9yQ2FsbGJhY2s7Ci0KIHByaXZhdGU6CiAg
ICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fYXVkaW9Tb3VyY2U7CiAgICAgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fdmlkZW9Tb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9B
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaAppbmRleCAwMzVjY2EzMmM1NTBhYTI1NzU2MjVl
NDk5MjE0NTc5YTNkYjFkNzM2Li42NTI4NjZkZGRiOWY5ZjA0OGFhMGY2N2M4NjkxMzIxOTI5YWIx
MTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmgK
QEAgLTYwLDEzICs2MCwxMyBAQCBwcml2YXRlOgogICAgIE9TU3RhdHVzIHByb3ZpZGVTb3VyY2VE
YXRhTnVtT3V0cHV0UGFja2V0cyhVSW50MzIqLCBBdWRpb0J1ZmZlckxpc3QqLCBBdWRpb1N0cmVh
bVBhY2tldERlc2NyaXB0aW9uKiopOwogCiAgICAgZGlzcGF0Y2hfcXVldWVfdCBtX3NlcmlhbERp
c3BhdGNoUXVldWU7Ci0gICAgQ01UaW1lIG1fbG93V2F0ZXJUaW1lOworICAgIENNVGltZSBtX2xv
d1dhdGVyVGltZSB7IGtDTVRpbWVJbnZhbGlkIH07CiAKICAgICBSZXRhaW5QdHI8Q01CdWZmZXJR
dWV1ZVJlZj4gbV9vdXRwdXRCdWZmZXJRdWV1ZTsKICAgICBSZXRhaW5QdHI8Q01CdWZmZXJRdWV1
ZVJlZj4gbV9pbnB1dEJ1ZmZlclF1ZXVlOwogICAgIGJvb2wgbV9pc0VuY29kaW5nIHsgZmFsc2Ug
fTsKIAotICAgIFJldGFpblB0cjxBdWRpb0NvbnZlcnRlclJlZj4gbV9jb252ZXJ0ZXI7CisgICAg
QXVkaW9Db252ZXJ0ZXJSZWYgbV9jb252ZXJ0ZXIgeyBudWxscHRyIH07CiAgICAgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uIG1fc291cmNlRm9ybWF0OwogICAgIEF1ZGlvU3RyZWFtQmFzaWNE
ZXNjcmlwdGlvbiBtX2Rlc3RpbmF0aW9uRm9ybWF0OwogICAgIFJldGFpblB0cjxDTUZvcm1hdERl
c2NyaXB0aW9uUmVmPiBtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb247CkBAIC03NCw5ICs3
NCw5IEBAIHByaXZhdGU6CiAgICAgVUludDMyIG1fbWF4T3V0cHV0UGFja2V0U2l6ZSB7IDAgfTsK
ICAgICBWZWN0b3I8QXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbj4gbV9kZXN0aW5hdGlvblBh
Y2tldERlc2NyaXB0aW9uczsKIAotICAgIENNVGltZSBtX2N1cnJlbnROYXRpdmVQcmVzZW50YXRp
b25UaW1lU3RhbXA7Ci0gICAgQ01UaW1lIG1fY3VycmVudE91dHB1dFByZXNlbnRhdGlvblRpbWVT
dGFtcDsKLSAgICBDTVRpbWUgbV9yZW1haW5pbmdQcmltZUR1cmF0aW9uOworICAgIENNVGltZSBt
X2N1cnJlbnROYXRpdmVQcmVzZW50YXRpb25UaW1lU3RhbXAgeyBrQ01UaW1lSW52YWxpZCB9Owor
ICAgIENNVGltZSBtX2N1cnJlbnRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAgeyBrQ01UaW1l
SW52YWxpZCB9OworICAgIENNVGltZSBtX3JlbWFpbmluZ1ByaW1lRHVyYXRpb24geyBrQ01UaW1l
SW52YWxpZCB9OwogCiAgICAgVmVjdG9yPGNoYXI+IG1fc291cmNlQnVmZmVyOwogICAgIFZlY3Rv
cjxjaGFyPiBtX2Rlc3RpbmF0aW9uQnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Iu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCBjOWJmZjY0MWQyYzI2ZmVhYWZhMWRjYzdiYzNh
YzIxNjlkZjZlNWE1Li5hZDQ1OTJmZmJhMzYxMzAxODAwYzk1NjliYzA2N2ViNzVhNTE2ZjdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQpAQCAt
NTgsNiArNTgsMTAgQEAgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IoKQogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+QXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBkaXNwYXRjaF9yZWxlYXNlKG1fc2VyaWFsRGlz
cGF0Y2hRdWV1ZSk7CisgICAgaWYgKG1fY29udmVydGVyKSB7CisgICAgICAgIEF1ZGlvQ29udmVy
dGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAgICAgIG1fY29udmVydGVyID0gbnVsbHB0cjsK
KyAgICB9CiB9CiAKIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0aWFsaXpl
KENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2Jq
ZWN0KQpAQCAtMTEyLDE5ICsxMTYsMTkgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKEMKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IgQXVkaW9Db252ZXJ0ZXJOZXcgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgbV9jb252ZXJ0ZXIgPSBhZG9wdENGKGNvbnZlcnRl
cik7CisgICAgbV9jb252ZXJ0ZXIgPSBjb252ZXJ0ZXI7CiAKICAgICBzaXplX3QgY29va2llU2l6
ZSA9IDA7CiAgICAgY29uc3Qgdm9pZCAqY29va2llID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
R2V0TWFnaWNDb29raWUoZm9ybWF0RGVzY3JpcHRpb24sICZjb29raWVTaXplKTsKICAgICBpZiAo
Y29va2llU2l6ZSkgewotICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0
UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlckRlY29tcHJlc3Npb25N
YWdpY0Nvb2tpZSwgKFVJbnQzMiljb29raWVTaXplLCBjb29raWUpKSB7CisgICAgICAgIGlmIChh
dXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlv
Q29udmVydGVyRGVjb21wcmVzc2lvbk1hZ2ljQ29va2llLCAoVUludDMyKWNvb2tpZVNpemUsIGNv
b2tpZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29udmVydGVyRGVjb21wcmVz
c2lvbk1hZ2ljQ29va2llIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfQogCiAgICAgc2l6ZSA9IHNpemVvZihtX3NvdXJj
ZUZvcm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5
KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNj
cmlwdGlvbiwgJnNpemUsICZtX3NvdXJjZUZvcm1hdCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9
IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1
cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0KSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2Ny
aXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQpAQCAtMTM1LDcgKzEzOSw3IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgfQog
CiAgICAgc2l6ZSA9IHNpemVvZihtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKLSAgICBpZiAoYXV0byBl
cnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRp
b0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX2Rlc3Rp
bmF0aW9uRm9ybWF0KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQ
cm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURl
c2NyaXB0aW9uLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdl
dHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uIGZhaWxl
ZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTQ5
LDcgKzE1Myw3IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9D
b252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgICAgICAgICBvdXRwdXRC
aXRSYXRlID0gMzIwMDA7CiAKICAgICAgICAgc2l6ZSA9IHNpemVvZihvdXRwdXRCaXRSYXRlKTsK
LSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29u
dmVydGVyLmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlLCBzaXplLCAmb3V0cHV0
Qml0UmF0ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFBy
b3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlLCBzaXplLCAm
b3V0cHV0Qml0UmF0ZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29udmVydGVy
RW5jb2RlQml0UmF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQpAQCAtMTU5LDcgKzE2Myw3IEBAIGJvb2wgQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlw
dGlvbihDCiAgICAgICAgIC8vIElmIHRoZSBkZXN0aW5hdGlvbiBmb3JtYXQgaXMgVkJSLCB3ZSBu
ZWVkIHRvIGdldCBtYXggc2l6ZSBwZXIgcGFja2V0IGZyb20gdGhlIGNvbnZlcnRlci4KICAgICAg
ICAgc2l6ZSA9IHNpemVvZihtX21heE91dHB1dFBhY2tldFNpemUpOwogCi0gICAgICAgIGlmIChh
dXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwg
a0F1ZGlvQ29udmVydGVyUHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6ZSwgJnNpemUsICZt
X21heE91dHB1dFBhY2tldFNpemUpKSB7CisgICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9D
b252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyUHJvcGVydHlN
YXhpbXVtT3V0cHV0UGFja2V0U2l6ZSwgJnNpemUsICZtX21heE91dHB1dFBhY2tldFNpemUpKSB7
CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlclByb3BlcnR5TWF4aW11bU91
dHB1dFBhY2tldFNpemUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTE4NSwxMSArMTg5LDEzIEBAIHNpemVfdCBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNvbXB1dGVCdWZmZXJTaXplRm9yQXVkaW9Gb3JtYXQoQXVk
aW9TdHJlYW1CCiAKIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjphdHRhY2hQcmlt
aW5nVHJpbXNJZk5lZWRlZChDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiB7CisgICAgZnByaW50
ZihzdGRlcnIsICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0dGFjaFByaW1pbmdUcmlt
c0lmTmVlZGVkMSAlcFxuIiwgdGhpcyk7CiAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKG1fcmVt
YWluaW5nUHJpbWVEdXJhdGlvbikpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0dGFjaFByaW1pbmdUcmltc0lmTmVlZGVkMiAlcFxuIiwg
dGhpcyk7CiAgICAgICAgIEF1ZGlvQ29udmVydGVyUHJpbWVJbmZvIHByaW1lSW5mbyB7IDAsIDAg
fTsKICAgICAgICAgVUludDMyIHNpemUgPSBzaXplb2YocHJpbWVJbmZvKTsKIAotICAgICAgICBp
ZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0
KCksIGtBdWRpb0NvbnZlcnRlclByaW1lSW5mbywgJnNpemUsICZwcmltZUluZm8pKSB7CisgICAg
ICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ciwga0F1ZGlvQ29udmVydGVyUHJpbWVJbmZvLCAmc2l6ZSwgJnByaW1lSW5mbykpIHsKICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyUHJpbWVJbmZvIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xOTcsNyArMjAz
LDkgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0dGFjaFByaW1pbmdUcmlt
c0lmTmVlZGVkKENNU2FtcGxlQnVmZmVyUmVmIGIKICAgICAgICAgbV9yZW1haW5pbmdQcmltZUR1
cmF0aW9uID0gQ01UaW1lTWFrZShwcmltZUluZm8ubGVhZGluZ0ZyYW1lcywgbV9kZXN0aW5hdGlv
bkZvcm1hdC5tU2FtcGxlUmF0ZSk7CiAgICAgfQogCisgICAgZnByaW50ZihzdGRlcnIsICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0dGFjaFByaW1pbmdUcmltc0lmTmVlZGVkMyAlcFxu
IiwgdGhpcyk7CiAgICAgaWYgKENNVElNRV9DT01QQVJFX0lOTElORShrQ01UaW1lWmVybywgPCwg
bV9yZW1haW5pbmdQcmltZUR1cmF0aW9uKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YXR0YWNoUHJpbWluZ1RyaW1zSWZOZWVkZWQ0ICVw
XG4iLCB0aGlzKTsKICAgICAgICAgQ01UaW1lIHNhbXBsZUR1cmF0aW9uID0gQ01TYW1wbGVCdWZm
ZXJHZXREdXJhdGlvbihidWZmZXIpOwogICAgICAgICBDTVRpbWUgdHJpbUR1cmF0aW9uID0gQ01U
aW1lTWluaW11bShzYW1wbGVEdXJhdGlvbiwgbV9yZW1haW5pbmdQcmltZUR1cmF0aW9uKTsKICAg
ICAgICAgQ0ZEaWN0aW9uYXJ5UmVmIHRyaW1BdFN0YXJ0RGljdCA9IENNVGltZUNvcHlBc0RpY3Rp
b25hcnkodHJpbUR1cmF0aW9uLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0KTsKQEAgLTIxMSwyNSArMjE5
LDI1IEBAIFJldGFpblB0cjxOU051bWJlcj4gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpn
cmFkdWFsRGVjb2RlclJlZnJlc2hDb3VudCgpCiB7CiAgICAgVUludDMyIGRlbGF5U2l6ZSA9IHNp
emVvZih1aW50MzJfdCk7CiAgICAgdWludDMyX3Qgb3JpZ2luYWxEZWxheU1vZGUgPSAwOwotICAg
IGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5n
ZXQoKSwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgJmRlbGF5U2l6ZSwgJm9yaWdpbmFs
RGVsYXlNb2RlKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9w
ZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgJmRlbGF5U2l6
ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvZGVj
UHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVy
biBuaWw7CiAgICAgfQogCiAgICAgdWludDMyX3Qgb3B0aW1hbERlbGF5TW9kZSA9IGtBdWRpb0Nv
ZGVjRGVsYXlNb2RlX09wdGltYWw7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRl
clNldFByb3BlcnR5KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlN
b2RlLCBkZWxheVNpemUsICZvcHRpbWFsRGVsYXlNb2RlKSkgeworICAgIGlmIChhdXRvIGVycm9y
ID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9w
ZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5TW9kZSkpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3Igc2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIFVJbnQzMiBwcmltZVNp
emUgPSBzaXplb2YoQXVkaW9Db2RlY1ByaW1lSW5mbyk7CiAgICAgQXVkaW9Db2RlY1ByaW1lSW5m
byBwcmltZUluZm8geyAwLCAwIH07Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRl
ckdldFByb3BlcnR5KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db2RlY1Byb3BlcnR5UHJpbWVJ
bmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gQXVk
aW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eVBy
aW1lSW5mbywgJnByaW1lU2l6ZSwgJnByaW1lSW5mbykpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBr
QXVkaW9Db2RlY1Byb3BlcnR5UHJpbWVJbmZvIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICByZXR1cm4gbmlsOwogICAgIH0KIAotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252
ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29kZWNQcm9wZXJ0eURl
bGF5TW9kZSwgZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8g
ZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2Rl
Y1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KQEAgLTI0MiwxMSArMjUw
LDExIEBAIENNU2FtcGxlQnVmZmVyUmVmIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2Ft
cGxlQnVmZmVyV2l0aE51bVBhY2tldHMoVUludDMyCiAgICAgaWYgKCFtX2Rlc3RpbmF0aW9uRm9y
bWF0RGVzY3JpcHRpb24pIHsKICAgICAgICAgVUludDMyIGNvb2tpZVNpemUgPSAwOwogCi0gICAg
ICAgIGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbyhtX2NvbnZlcnRl
ci5nZXQoKSwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNp
emUsIE5VTEwpOworICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0
eUluZm8obV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUs
ICZjb29raWVTaXplLCBOVUxMKTsKICAgICAgICAgaWYgKChlcnJvciA9PSBub0VycikgJiYgISFj
b29raWVTaXplKSB7CiAgICAgICAgICAgICBjb29raWUucmVzaXplKGNvb2tpZVNpemUpOwogCi0g
ICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9j
b252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZj
b29raWVTaXplLCBjb29raWUuZGF0YSgpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3Ig
PSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJD
b21wcmVzc2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwgY29va2llLmRhdGEoKSkpIHsKICAg
ICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWND
b29raWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG5p
bDsKICAgICAgICAgICAgIH0KQEAgLTQzOSw3ICs0NDcsNyBAQCB2b2lkIEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShDTVRp
bWUgbAogICAgICAgICBVSW50MzIgb3V0cHV0UGFja2V0U2l6ZSA9IG1fZGVzdGluYXRpb25Gb3Jt
YXQubUJ5dGVzUGVyUGFja2V0ID8gbV9kZXN0aW5hdGlvbkZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQg
OiBtX21heE91dHB1dFBhY2tldFNpemU7CiAgICAgICAgIFVJbnQzMiBudW1PdXRwdXRQYWNrZXRz
ID0gKFVJbnQzMiltX2Rlc3RpbmF0aW9uQnVmZmVyLmNhcGFjaXR5KCkgLyBvdXRwdXRQYWNrZXRT
aXplOwogCi0gICAgICAgIGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVm
ZmVyKG1fY29udmVydGVyLmdldCgpLCBhdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9j
LCB0aGlzLCAmbnVtT3V0cHV0UGFja2V0cywgJmZpbGxCdWZmZXJMaXN0LCBtX2Rlc3RpbmF0aW9u
UGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBBdWRpb0Nv
bnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLCBhdWRpb0NvbnZlcnRlckNvbXBs
ZXhJbnB1dERhdGFQcm9jLCB0aGlzLCAmbnVtT3V0cHV0UGFja2V0cywgJmZpbGxCdWZmZXJMaXN0
LCBtX2Rlc3RpbmF0aW9uUGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSk7CiAgICAgICAgIGlmIChl
cnJvcikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlciBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKaW5kZXggYjdhOWQ3
MTIzODdkNzA0MGFmYTViOGNlYTYxMWE0ZGNlNDM0NjZhOC4uM2RhMWIyOTVmY2YyZTM1YWQ5YTMw
NjFjNmFmZjYyMTE0ODMyMjY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKQEAgLTExNCw4ICsxMTQsOCBAQCBwcml2YXRlOgogICAg
IFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBtX3ZpZGVvRm9ybWF0RGVzY3JpcHRp
b247CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gbV92
aWRlb0NvbXByZXNzb3I7CiAgICAgUmV0YWluUHRyPEFWQXNzZXRXcml0ZXJJbnB1dD4gbV92aWRl
b0Fzc2V0V3JpdGVySW5wdXQ7Ci0gICAgQ01UaW1lIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGlt
ZTsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWU7CisgICAgQ01UaW1lIG1fbGFz
dFZpZGVvUHJlc2VudGF0aW9uVGltZSB7IGtDTVRpbWVJbnZhbGlkIH07CisgICAgQ01UaW1lIG1f
bGFzdFZpZGVvRGVjb2RpbmdUaW1lIHsga0NNVGltZUludmFsaWQgfTsKICAgICBib29sIG1faGFz
RW5jb2RlZFZpZGVvU2FtcGxlcyB7IGZhbHNlIH07CiAKICAgICBSZXRhaW5QdHI8V2ViQVZBc3Nl
dFdyaXRlckRlbGVnYXRlPiBtX3dyaXRlckRlbGVnYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2Nv
YS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCmluZGV4IDdmMzA4N2UwMWUwYzAx
YjY3N2VmNDM0ZTEwYjY3OWVkYjRhOGU5MDkuLjY4ZjAyNTQxMTMwOWYzYjFhZGQ3N2Y1NGM0YTIw
MWVmMDUzYmRmODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyQ29jb2EubW0KQEAgLTQzNSwxNiArNDM1LDE4IEBAIHZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI6OnN0b3BSZWNvcmRpbmcoKQogICAgIG1faXNTdG9wcGluZyA9IHRydWU7
CiAgICAgLy8gV2UgaG9wIHRvIHRoZSBtYWluIHRocmVhZCBzaW5jZSBmaW5pc2hpbmcgdGhlIHZp
ZGVvIGNvbXByZXNzb3IgbWlnaHQgdHJpZ2dlciBzdGFydGluZyB0aGUgd3JpdGVyIGFzeW5jaHJv
bm91c2x5LgogICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIodGhpcyldKCkgbXV0YWJsZSB7Ci0gICAgICAgIGF1dG8gd2hlbkZpbmlzaGVkID0gW3RoaXNd
IHsKLSAgICAgICAgICAgIG1faXNTdG9wcGluZyA9IGZhbHNlOwotICAgICAgICAgICAgaWYgKG1f
ZmV0Y2hEYXRhQ29tcGxldGlvbkhhbmRsZXIpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGJ1ZmZl
ciA9IFdURk1vdmUobV9kYXRhKTsKLSAgICAgICAgICAgICAgICBtX2ZldGNoRGF0YUNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUoYnVmZmVyKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgIGF1dG8g
d2hlbkZpbmlzaGVkID0gW3RoaXMsIHdlYWtUaGlzXSB7CisgICAgICAgICAgICBpZiAoIXdlYWtU
aGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICAgICAgbV9pc1N0b3BwaW5n
ID0gZmFsc2U7CiAgICAgICAgICAgICBtX2lzU3RvcHBlZCA9IGZhbHNlOwogICAgICAgICAgICAg
bV9oYXNTdGFydGVkV3JpdGluZyA9IGZhbHNlOwotICAgICAgICAgICAgY2xlYXIoKTsKKworICAg
ICAgICAgICAgaWYgKG1fd3JpdGVyKQorICAgICAgICAgICAgICAgIG1fd3JpdGVyLmNsZWFyKCk7
CisgICAgICAgICAgICBpZiAobV9mZXRjaERhdGFDb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAg
ICAgICAgICBtX2ZldGNoRGF0YUNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6ZXhjaGFuZ2UobV9kYXRh
LCBudWxscHRyKSk7CiAgICAgICAgIH07CiAKICAgICAgICAgaWYgKCFtX2hhc1N0YXJ0ZWRXcml0
aW5nKSB7CkBAIC00NjEsMTIgKzQ2Myw4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OnN0b3BSZWNvcmRpbmcoKQogICAgICAgICAgICAgW21fd3JpdGVyIGZsdXNoXTsKICAgICAg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCi0gICAgICAgICAgICBb
bV93cml0ZXIgZmluaXNoV3JpdGluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjpbd2Vha1RoaXMgPSBX
VEZNb3ZlKHdlYWtUaGlzKSwgd2hlbkZpbmlzaGVkID0gV1RGTW92ZSh3aGVuRmluaXNoZWQpXSgp
IG11dGFibGUgewotICAgICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0g
V1RGTW92ZSh3ZWFrVGhpcyksIHdoZW5GaW5pc2hlZCA9IFdURk1vdmUod2hlbkZpbmlzaGVkKV0o
KSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICAgICAgd2hlbkZpbmlzaGVk
KCk7Ci0gICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBbbV93cml0ZXIgZmluaXNoV3Jp
dGluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjpbd2hlbkZpbmlzaGVkID0gV1RGTW92ZSh3aGVuRmlu
aXNoZWQpXSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RG
TW92ZSh3aGVuRmluaXNoZWQpKTsKICAgICAgICAgICAgIH1dOwogICAgICAgICB9KTsKICAgICB9
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KaW5k
ZXggMTg1YWQxMjgxMTU5Yzc3Y2RhNDIyMmU3YTkyMGRjYWNhMGNkMDg0OS4uODlhMmE3ODc2NTJl
MTcyMDcxZGIwMmRmYTRhNmIyMmUyNjZjM2VjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Iu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KQEAgLTU2LDYgKzU2LDEwIEBAIFZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKENNVmlkZW9Db2Rl
Y1R5cGUgb3V0cHV0CiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5WaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IoKQogewogICAgIGRpc3BhdGNoX3JlbGVhc2UobV9zZXJpYWxEaXNwYXRj
aFF1ZXVlKTsKKyAgICBpZiAobV92dFNlc3Npb24pIHsKKyAgICAgICAgVlRDb21wcmVzc2lvblNl
c3Npb25JbnZhbGlkYXRlKG1fdnRTZXNzaW9uLmdldCgpKTsKKyAgICAgICAgbV92dFNlc3Npb24g
PSBudWxscHRyOworICAgIH0KIH0KIAogYm9vbCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCog
Y2FsbGJhY2tPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwCmluZGV4IDdmNGM2NmQ2
YTIzNjJlNTJlNmEwNzY0ZTc4OWY2ZDIwZTkxNjcyYzkuLmRjNWI3YjYxMmY2ZGM1MGQyMjQwYzRi
ZDg4OGVjMjBhYWVjYTQyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwCkBAIC02NCw3
ICs2NCw2IEBAIHZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6OmNyZWF0ZVJlY29yZGVy
KE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkZW50aWZpCiAKIHZvaWQgUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXI6OnJlbGVhc2VSZWNvcmRlcihNZWRpYVJlY29yZGVySWRlbnRpZmllciBpZGVu
dGlmaWVyKQogewotICAgIEFTU0VSVChtX3JlY29yZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7
CiAgICAgbV9yZWNvcmRlcnMucmVtb3ZlKGlkZW50aWZpZXIpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJp
dmF0ZS5jcHAKaW5kZXggZjVhYzMxODFmNTM5MGJlZWQyZjQwYzFmMWMyODBhZDQ0NDJjZDkwNi4u
MTgzYzRkMjY0NmNkOTEwMWYwNTc1MmY3ODc3MTkwODBjNWM4YWJhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcApAQCAtNDUsMTIgKzQ1LDE3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Q
cml2YXRlJiBzdHJlYW0pCiAgICAgOiBtX2lkZW50aWZpZXIoTWVkaWFSZWNvcmRlcklkZW50aWZp
ZXI6OmdlbmVyYXRlKCkpCisgICAgLCBtX3N0cmVhbShtYWtlUmVmKHN0cmVhbSkpCiAgICAgLCBt
X2Nvbm5lY3Rpb24oV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCkpCit7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6
OnN0YXJ0UmVjb3JkaW5nKEVycm9yQ2FsbGJhY2smJiBlcnJvckNhbGxiYWNrKQogewogICAgIC8v
IEZJWE1FOiB3ZSB3aWxsIG5lZWQgdG8gaW1wbGVtZW50IHN1cHBvcnQgZm9yIG11bHRpcGxlIGF1
ZGlvL3ZpZGVvIHRyYWNrcwogICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IGNob29zZSB0aGUgZmly
c3QgdHJhY2sgYXMgdGhlIHJlY29yZGVkIHRyYWNrLgogCi0gICAgYXV0byBzZWxlY3RlZFRyYWNr
cyA9IE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzZWxlY3RUcmFja3Moc3RyZWFtKTsKKyAgICBhdXRv
IHNlbGVjdGVkVHJhY2tzID0gTWVkaWFSZWNvcmRlclByaXZhdGU6OnNlbGVjdFRyYWNrcyhtX3N0
cmVhbSk7CiAgICAgaWYgKHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2spIHsKICAgICAgICAgbV9y
aW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMpKTsKICAgICAgICAgbV9yZWNvcmRlZEF1ZGlvVHJhY2tJ
RCA9IHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2stPmlkKCk7CkBAIC02NCwxNSArNjksMTYgQEAg
TWVkaWFSZWNvcmRlclByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKE1lZGlhU3RyZWFtUHJp
dmF0ZSYgc3RyZWFtKQogICAgICAgICB3aWR0aCA9IHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2st
PnNldHRpbmdzKCkud2lkdGgoKTsKICAgICB9CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6OkNyZWF0ZVJl
Y29yZGVyIHsgbV9pZGVudGlmaWVyLCAhIXNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2ssIHdpZHRo
LCBoZWlnaHQgfSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGF1ZGlvVHJh
Y2sgPSBtYWtlUmVmUHRyKHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2spLCB2aWRlb1RyYWNrID0g
bWFrZVJlZlB0cihzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrKV0oYXV0byYmIGV4Y2VwdGlvbikg
eworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVJlY29yZGVyTWFuYWdlcjo6Q3JlYXRlUmVjb3JkZXIgeyBtX2lkZW50aWZpZXIsICEhc2Vs
ZWN0ZWRUcmFja3MuYXVkaW9UcmFjaywgd2lkdGgsIGhlaWdodCB9LCBbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cih0aGlzKSwgYXVkaW9UcmFjayA9IG1ha2VSZWZQdHIoc2VsZWN0ZWRUcmFj
a3MuYXVkaW9UcmFjayksIHZpZGVvVHJhY2sgPSBtYWtlUmVmUHRyKHNlbGVjdGVkVHJhY2tzLnZp
ZGVvVHJhY2spLCBlcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNhbGxiYWNrKV0oYXV0byYm
IGV4Y2VwdGlvbikgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgcmV0dXJuIGVycm9yQ2FsbGJhY2soeyB9KTsKICAgICAgICAgaWYgKGV4
Y2VwdGlvbikKLSAgICAgICAgICAgIHJldHVybiBtX2Vycm9yQ2FsbGJhY2soRXhjZXB0aW9uIHsg
ZXhjZXB0aW9uLT5jb2RlLCBXVEZNb3ZlKGV4Y2VwdGlvbi0+bWVzc2FnZSkgfSk7CisgICAgICAg
ICAgICByZXR1cm4gZXJyb3JDYWxsYmFjayhFeGNlcHRpb24geyBleGNlcHRpb24tPmNvZGUsIFdU
Rk1vdmUoZXhjZXB0aW9uLT5tZXNzYWdlKSB9KTsKICAgICAgICAgaWYgKGF1ZGlvVHJhY2spCiAg
ICAgICAgICAgICBzZXRBdWRpb1NvdXJjZSgmYXVkaW9UcmFjay0+c291cmNlKCkpOwogICAgICAg
ICBpZiAodmlkZW9UcmFjaykKICAgICAgICAgICAgIHNldFZpZGVvU291cmNlKCZ2aWRlb1RyYWNr
LT5zb3VyY2UoKSk7CisgICAgICAgIGVycm9yQ2FsbGJhY2soeyB9KTsKICAgICB9LCAwKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFS
ZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmgKaW5kZXggM2Q3YmVlMjk2NDNjOTliNTEwZTdiOGE0ZTA1NDBi
N2VlMjA3YTVkMy4uNTI2N2FiYWZlMzhkZjUzNTIyZmJjNWFlZjYwMjUwMzlkNTExZmJlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5oCkBAIC01OCwxNCArNTgsMTYgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhU2FtcGxlJikgZmluYWw7CiAgICAg
dm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U2hh
cmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4mJikgZmluYWw7CiAgICAgdm9p
ZCBzdG9wUmVjb3JkaW5nKCkgZmluYWw7CisgICAgdm9pZCBzdGFydFJlY29yZGluZyhFcnJvckNh
bGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdU
Rjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBX
ZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKIAogICAgIC8v
IFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKICAgICB2b2lkIHN0b3JhZ2VDaGFuZ2Vk
KFNoYXJlZE1lbW9yeSopOwogCiAgICAgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgbV9pZGVudGlm
aWVyOwotCisgICAgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gbV9zdHJlYW07CiAgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworCiAgICAgU3RyaW5nIG1fcmVjb3JkZWRBdWRp
b1RyYWNrSUQ7CiAgICAgU3RyaW5nIG1fcmVjb3JkZWRWaWRlb1RyYWNrSUQ7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3
NTc4YzYzYjgyYjg2NGRmMGZmNWI0ZDYxOTNiNDU0NjE0YjQ5NGZkLi42NTViODMwNGVjZDc1ZjNl
M2VmMzU1ZTgxNjdkYmJmMjZlZTczNTU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDYt
MjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhUmVj
b3JkZXIgc3RvcFJlY29yZGVyKCkgcmV0dXJucyBlbXB0eSBCbG9iIGFmdGVyIGZpcnN0IHVzZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMjc0Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzYwMTI5OD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBmaXgtMjEyMjc0CisKKyAgICAgICAgKiBodHRwL3dw
dC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItbXVsdGlwbGUtc3RhcnQtc3RvcC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA2LTI0ICBKYWNv
YiBVcGhvZmYgIDxqYWNvYl91cGhvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFsgaU9TIG1hY09T
IF0gaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFi
YXNlLmh0bWwgaXMgYSByYXJlIGZsYWt5IHRpbWVvdXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBsZS1zdGFydC1zdG9w
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjQ1
NGMyYmM4MTE4MmQ4ZjlkZDNkNDJlYWM3NThmNGM5NThjMTUyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLW11bHRpcGxl
LXN0YXJ0LXN0b3AtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIE1ha2Ugc3Vy
ZSB0aGF0IE1lZGlhUmVjb3JkZXIgY2FuIGJlIHVzZWQgYWZ0ZXIgc3RvcHBpbmcgaXQgb25jZSAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyLW11bHRpcGxlLXN0YXJ0LXN0b3AuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjkxNjY1MDhjMjJjZWJmNmUzMGFlZTE2ZDViYWEzZDZkZjQ2MDI1NwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
ci1tdWx0aXBsZS1zdGFydC1zdG9wLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5NZWRpYVJlY29yZGVyIERhdGFhdmFpbGFi
bGU8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci5odG1sI21lZGlhcmVjb3JkZXIi
PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjIwMCIgaGVp
Z2h0PSIyMDAiPgorPC9jYW52YXM+Cis8c2NyaXB0PgorICAgIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgICAgICAgY29uc3QgdmlkZW8gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYSh7IGF1ZGlvIDogdHJ1ZSwgdmlkZW8gOiB0cnVlIH0pOworICAgICAgICBj
b25zdCByZWNvcmRlciA9IG5ldyBNZWRpYVJlY29yZGVyKHZpZGVvKTsKKworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlY29yZGVyLnN0cmVhbSwgdmlkZW8pOworCisgICAgICAgIGxldCBwcm9taXNl
ID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICByZWNvcmRlci5vbmRhdGFh
dmFpbGFibGUgPSB0LnN0ZXBfZnVuYyhibG9iRXZlbnQgPT4geworICAgICAgICAgICAgICAgIGlm
IChibG9iRXZlbnQuZGF0YS5zaXplKQorICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcmVjb3JkZXIuc3RhcnQoKTsK
KyAgICAgICAgbGV0IHRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gcmVjb3JkZXIucmVxdWVzdERh
dGEoKSwgMTApOworICAgICAgICBhd2FpdCBwcm9taXNlOworICAgICAgICBjbGVhckludGVydmFs
KHRpbWVyKTsKKworICAgICAgICByZWNvcmRlci5zdG9wKCk7CisKKyAgICAgICAgcHJvbWlzZSA9
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgcmVjb3JkZXIub25kYXRhYXZh
aWxhYmxlID0gdC5zdGVwX2Z1bmMoYmxvYkV2ZW50ID0+IHsKKyAgICAgICAgICAgICAgICBpZiAo
YmxvYkV2ZW50LmRhdGEuc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIHJlY29yZGVyLnN0YXJ0KCk7Cisg
ICAgICAgIHRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gcmVjb3JkZXIucmVxdWVzdERhdGEoKSwg
MTApOworICAgICAgICBhd2FpdCBwcm9taXNlOworICAgICAgICBjbGVhckludGVydmFsKHRpbWVy
KTsKKworICAgICAgICByZWNvcmRlci5zdG9wKCk7CisgICAgfSwgJ01ha2Ugc3VyZSB0aGF0IE1l
ZGlhUmVjb3JkZXIgY2FuIGJlIHVzZWQgYWZ0ZXIgc3RvcHBpbmcgaXQgb25jZScpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402728</attachid>
            <date>2020-06-25 06:45:47 -0700</date>
            <delta_ts>2020-06-26 15:12:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212274-20200625154545.patch</filename>
            <type>text/plain</type>
            <size>32924</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBmOTllMmM3YTUyZjZk
NjNkM2YwMjE5ZTJjNmYxNWUzNWY5ZjgyZi4uOWI5MzA3NTE2NDMyYjRhNjVhM2MwNjliMjVmZjVj
Nzk5ZmU0M2I5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIwLTA2LTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHN0
b3BSZWNvcmRlcigpIHJldHVybnMgZW1wdHkgQmxvYiBhZnRlciBmaXJzdCB1c2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjI3NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNjM2MDEyOTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgY29kZSB0byBjcmVhdGUvZGVzdHJveSBNZWRpYVJl
Y29yZGVyUHJpdmF0ZSBvbiBNZWRpYVJlY29yZGVyIHN0YXJ0L3N0b3AuCisgICAgICAgIFRoaXMg
YWxsb3dzIHJldXNpbmcgYSBNZWRpYVJlY29yZGVyIGFmdGVyIGEgc3RvcCBhbmQgcmVzdGFydGlu
ZyB3aXRoIGEgY2xlYW4gc3RhdGUuCisKKyAgICAgICAgV2UgaW50cm9kdWNlIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlOjpzdGFydFJlY29yZGluZyB0byBkbyB0aGUgaW5pdGlhbGl6YXRpb24sCisgICAg
ICAgIHdoaWNoIGFsbG93cyB0byBmaXggYSBwb3RlbnRpYWwgcmVmIGN5Y2xlIGFzIHBhcnQgb2Yg
dGhlIGVycm9yIGNhbGxiYWNrIGhhbmRsaW5nLgorCisgICAgICAgIE1ha2Ugc29tZSBpbXByb3Zl
bWVudHMgdG8gdGhlIHBsYXRmb3JtIGltcGxlbWVudGF0aW9uLCBpbiBwYXJ0aWN1bGFyIGFkZCBk
ZWZhdWx0IGluaXRpYWxpemF0aW9uIHRvIGFsbCBmaWVsZHMuCisgICAgICAgIEFsaWduIHRoZSBj
b2RlIHVzaW5nIEF1ZGlvQ29udmVydGVyUmVmIHRvIHdoYXQgaXMgZG9uZSBpbiBBdWRpb1NhbXBs
ZURhdGFTb3VyY2UuCisgICAgICAgIEFsc28gY2FsbCBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFs
aWRhdGUgd2hlbiBkZXN0cm95aW5nIHRoZSBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuCisK
KyAgICAgICAgVGVzdDogaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLW11bHRp
cGxlLXN0YXJ0LXN0b3AuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6c3RhcnRSZWNvcmRpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyOjpyZXF1ZXN0RGF0YSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZTo6c3RhcnRSZWNvcmRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW06Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0dGFjaFBy
aW1pbmdUcmltc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvcjo6Z3JhZHVhbERlY29kZXJSZWZyZXNoQ291bnQpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0
cyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nl
c3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyOjpzdG9wUmVjb3JkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcik6
CisKIDIwMjAtMDYtMjQgIEphbWVzIFNhdmFnZSAgPGphbWVzLnNhdmFnZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgVXBzdHJlYW0gaVBhZE9TIDEzLjAgbXVsdGktd2luZG93IHN1cHBvcnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggNTZlN2M5NDdiMzJiMzlhMjRmYjVjODFiZjYwODI4ZWZiOTE1ZmY4Ny4uODMzYWEwMmU1
MDRlMzZiMTcyNzI5N2JlZTkxN2FlOTZiNmZkODhmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBA
QAorMjAyMC0wNi0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWVkaWFSZWNvcmRlciBzdG9wUmVjb3JkZXIoKSByZXR1cm5zIGVtcHR5IEJsb2IgYWZ0ZXIg
Zmlyc3QgdXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTIyNzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNjAxMjk4PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBpbXBsZW1lbnRhdGlv
biB0byBkbyBpbml0aWFsaXphdGlvbiBhcyBwYXJ0IG9mIHN0YXJ0UmVjb3JkaW5nLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6cmVsZWFzZVJlY29y
ZGVyKToKKyAgICAgICAgUmVtb3ZlIEFTU0VSVCBhcyByZWNvcmRlciBjcmVhdGlvbiBpbiBXZWJQ
cm9jZXNzIGlzIGFsd2F5cyBvayB3aGlsZSBjcmVhdGlvbiBpbiBHUFVQcm9jZXNzIG1heSBmYWls
IGFuZCBtX3JlY29yZGVycyBtYXkgbm90IGJlIHBvcHVsYXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RhcnRSZWNvcmRpbmcpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oOgorCiAyMDIwLTA2
LTI0ICBKYW1lcyBTYXZhZ2UgIDxqYW1lcy5zYXZhZ2VAYXBwbGUuY29tPgogCiAgICAgICAgIFVw
c3RyZWFtIGlQYWRPUyAxMy4wIG11bHRpLXdpbmRvdyBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKaW5kZXgg
ODU4MWQ1Y2Q3Yjc5MDNjODNmZDhkMTE1NGVhMTU2MWEzMmQ4M2JhZS4uMTliOTZjZTJjMmU0OGEz
MDhiNWFmODM5NGY0NjM4Yzk4YWNmMTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcApAQCAtNTEsMTEgKzUxLDgg
QEAgRXhjZXB0aW9uT3I8UmVmPE1lZGlhUmVjb3JkZXI+PiBNZWRpYVJlY29yZGVyOjpjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWUKICAgICBhdXRvIHByaXZhdGVJbnN0YW5jZSA9IE1l
ZGlhUmVjb3JkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGRvY3VtZW50LCBzdHJlYW0t
PnByaXZhdGVTdHJlYW0oKSk7CiAgICAgaWYgKCFwcml2YXRlSW5zdGFuY2UpCiAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBNZWRpYVJlY29yZGVyIGlz
IHVuc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0iX3MgfTsKLSAgICBhdXRvIHJlY29yZGVyID0g
YWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyKGRvY3VtZW50LCBXVEZNb3ZlKHN0cmVhbSksIFdU
Rk1vdmUocHJpdmF0ZUluc3RhbmNlKSwgV1RGTW92ZShvcHRpb25zKSkpOworICAgIGF1dG8gcmVj
b3JkZXIgPSBhZG9wdFJlZigqbmV3IE1lZGlhUmVjb3JkZXIoZG9jdW1lbnQsIFdURk1vdmUoc3Ry
ZWFtKSwgV1RGTW92ZShvcHRpb25zKSkpOwogICAgIHJlY29yZGVyLT5zdXNwZW5kSWZOZWVkZWQo
KTsKLSAgICByZWNvcmRlci0+bV9wcml2YXRlLT5zZXRFcnJvckNhbGxiYWNrKFtyZWNvcmRlcl0o
YXV0byYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Ci0gICAgICAgIHJlY29yZGVyLT5kaXNwYXRjaEVy
cm9yKFdURk1vdmUoKmV4Y2VwdGlvbikpOwotICAgIH0pOwogICAgIHJldHVybiByZWNvcmRlcjsK
IH0KIApAQCAtODIsMTEgKzc5LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJp
dmF0ZT4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoCiAjZW5kaWYK
IH0KIAotTWVkaWFSZWNvcmRlcjo6TWVkaWFSZWNvcmRlcihEb2N1bWVudCYgZG9jdW1lbnQsIFJl
ZjxNZWRpYVN0cmVhbT4mJiBzdHJlYW0sIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJp
dmF0ZT4mJiBwcml2YXRlSW1wbCwgT3B0aW9ucyYmIG9wdGlvbikKK01lZGlhUmVjb3JkZXI6Ok1l
ZGlhUmVjb3JkZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3RyZWFt
LCBPcHRpb25zJiYgb3B0aW9uKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogICAg
ICwgbV9vcHRpb25zKFdURk1vdmUob3B0aW9uKSkKICAgICAsIG1fc3RyZWFtKFdURk1vdmUoc3Ry
ZWFtKSkKLSAgICAsIG1fcHJpdmF0ZShXVEZNb3ZlKHByaXZhdGVJbXBsKSkKIHsKICAgICBtX3Ry
YWNrcyA9IFdURjo6bWFwKG1fc3RyZWFtLT5nZXRUcmFja3MoKSwgW10gKGF1dG8mJiB0cmFjaykg
LT4gUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiB7CiAgICAgICAgIHJldHVybiB0cmFjay0+
cHJpdmF0ZVRyYWNrKCk7CkBAIC0xMzIsOSArMTI4LDI2IEBAIGNvbnN0IGNoYXIqIE1lZGlhUmVj
b3JkZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogRXhjZXB0aW9uT3I8dm9pZD4gTWVk
aWFSZWNvcmRlcjo6c3RhcnRSZWNvcmRpbmcoT3B0aW9uYWw8aW50PiB0aW1lc2xpY2UpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKHRpbWVzbGljZSk7CisgICAgaWYgKCFtX2lzQWN0aXZlKQorICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgTWVkaWFSZWNvcmRl
ciBpcyBub3QgYWN0aXZlIl9zIH07CisKICAgICBpZiAoc3RhdGUoKSAhPSBSZWNvcmRpbmdTdGF0
ZTo6SW5hY3RpdmUpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIlRoZSBNZWRpYVJlY29yZGVyJ3Mgc3RhdGUgbXVzdCBiZSBpbmFjdGl2ZSBpbiBvcmRlciB0
byBzdGFydCByZWNvcmRpbmciX3MgfTsKLSAgICAKKworICAgIEFTU0VSVCghbV9wcml2YXRlKTsK
KyAgICBtX3ByaXZhdGUgPSBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSgqZG9jdW1lbnQoKSwg
bV9zdHJlYW0tPnByaXZhdGVTdHJlYW0oKSk7CisKKyAgICBpZiAoIW1fcHJpdmF0ZSkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIE1lZGlhUmVjb3Jk
ZXIgaXMgdW5zdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybSJfcyB9OworCisgICAgbV9wcml2YXRl
LT5zdGFydFJlY29yZGluZyhbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rp
dml0eSgqdGhpcyldKGF1dG8mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIW1f
aXNBY3RpdmUgfHwgIWV4Y2VwdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBz
dG9wUmVjb3JkaW5nSW50ZXJuYWwoKTsKKyAgICAgICAgZGlzcGF0Y2hFcnJvcihXVEZNb3ZlKCpl
eGNlcHRpb24pKTsKKyAgICB9KTsKKwogICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrcykK
ICAgICAgICAgdHJhY2stPmFkZE9ic2VydmVyKCp0aGlzKTsKIApAQCAtMTQ2LDIyICsxNTksMTcg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZygpCiB7CiAg
ICAgaWYgKHN0YXRlKCkgPT0gUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZlKQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgTWVkaWFSZWNvcmRlcidzIHN0
YXRlIGNhbm5vdCBiZSBpbmFjdGl2ZSJfcyB9OwotICAgIAotICAgIHF1ZXVlVGFza0tlZXBpbmdP
YmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXNdIHsKLSAgICAg
ICAgaWYgKCFtX2lzQWN0aXZlIHx8IHN0YXRlKCkgPT0gUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZl
KQotICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHN0b3BSZWNvcmRpbmdJbnRlcm5hbCgp
OwotICAgICAgICBBU1NFUlQobV9zdGF0ZSA9PSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmUpOwot
ICAgICAgICBtX3ByaXZhdGUtPmZldGNoRGF0YShbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFr
ZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKGF1dG8mJiBidWZmZXIsIGF1dG8mIG1pbWVUeXBlKSB7
CisgICAgc3RvcFJlY29yZGluZ0ludGVybmFsKCk7CisgICAgYXV0byYgcHJpdmF0ZVJlY29yZGVy
ID0gKm1fcHJpdmF0ZTsKKyAgICBwcml2YXRlUmVjb3JkZXIuZmV0Y2hEYXRhKFt0aGlzLCBwZW5k
aW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKSwgcHJpdmF0ZVJlY29yZGVy
ID0gV1RGTW92ZShtX3ByaXZhdGUpXShhdXRvJiYgYnVmZmVyLCBhdXRvJiBtaW1lVHlwZSkgewor
ICAgICAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok5l
dHdvcmtpbmcsIFt0aGlzLCBidWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlciksIG1pbWVUeXBlXSgpIG11
dGFibGUgewogICAgICAgICAgICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAKICAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQoQmxvYkV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmRhdGFhdmFpbGFibGVFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2
ZW50OjpJc0NhbmNlbGFibGU6Ok5vLCBidWZmZXIgPyBCbG9iOjpjcmVhdGUoYnVmZmVyLnJlbGVh
c2VOb25OdWxsKCksIG1pbWVUeXBlKSA6IEJsb2I6OmNyZWF0ZSgpKSk7CiAKICAgICAgICAgICAg
IGlmICghbV9pc0FjdGl2ZSkKICAgICAgICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgICAg
IGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcEV2ZW50LCBFdmVu
dDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CkBAIC0xNzQsMTAgKzE4MiwxMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVJl
Y29yZGVyOjpyZXF1ZXN0RGF0YSgpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIlRoZSBNZWRpYVJlY29yZGVyJ3Mgc3RhdGUgY2Fubm90IGJlIGluYWN0aXZl
Il9zIH07CiAKICAgICBtX3ByaXZhdGUtPmZldGNoRGF0YShbdGhpcywgcGVuZGluZ0FjdGl2aXR5
ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKGF1dG8mJiBidWZmZXIsIGF1dG8mIG1pbWVU
eXBlKSB7Ci0gICAgICAgIGlmICghbV9pc0FjdGl2ZSkKLSAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3
b3JraW5nLCBbdGhpcywgYnVmZmVyID0gV1RGTW92ZShidWZmZXIpLCBtaW1lVHlwZV0oKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIGlmICghbV9pc0FjdGl2ZSkKKyAgICAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgZGlzcGF0Y2hFdmVudChCbG9iRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuZGF0YWF2YWlsYWJsZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8sIGJ1ZmZlciA/IEJsb2I6OmNyZWF0ZShidWZmZXIucmVsZWFzZU5vbk51bGwo
KSwgbWltZVR5cGUpIDogQmxvYjo6Y3JlYXRlKCkpKTsKKyAgICAgICAgICAgIGRpc3BhdGNoRXZl
bnQoQmxvYkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmRhdGFhdmFpbGFibGVFdmVudCwgRXZl
bnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vLCBidWZmZXIgPyBCbG9i
OjpjcmVhdGUoYnVmZmVyLnJlbGVhc2VOb25OdWxsKCksIG1pbWVUeXBlKSA6IEJsb2I6OmNyZWF0
ZSgpKSk7CisgICAgICAgIH0pOwogICAgIH0pOwogICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaApp
bmRleCAyZmQ5ZWE1ODZjOWMwZTExYzAwMTJhZmI1NjI2YjYzM2FjMjNlY2EwLi44ZjY2MzRjODQ5
MDM5M2I4YTA3NzcyYTQyN2E1Y2Q5YjJmN2M3ODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTc1LDcgKzc1LDcg
QEAgcHVibGljOgogICAgIE1lZGlhU3RyZWFtJiBzdHJlYW0oKSB7IHJldHVybiBtX3N0cmVhbS5n
ZXQoKTsgfQogCiBwcml2YXRlOgotICAgIE1lZGlhUmVjb3JkZXIoRG9jdW1lbnQmLCBSZWY8TWVk
aWFTdHJlYW0+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4mJiwgT3B0
aW9ucyYmID0geyB9KTsKKyAgICBNZWRpYVJlY29yZGVyKERvY3VtZW50JiwgUmVmPE1lZGlhU3Ry
ZWFtPiYmLCBPcHRpb25zJiYgPSB7IH0pOwogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQm
LCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaAppbmRl
eCA5ZWE4MWM4YjE4ZjljMTVjNzhjNGY2MzVjYjA3NjJlNzA1OWZlMWI4Li4wNGJhNmIwODRhZDIz
ZjQzMzJlZDRmZWU1NDVmZWY4MTQ1ZDRhNGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCkBA
IC02MCwxNiArNjAsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBmZXRjaERhdGEoRmV0
Y2hEYXRhQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wUmVjb3JkaW5nKCkg
PSAwOwogCi0gICAgdXNpbmcgRXJyb3JDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8
RXhjZXB0aW9uPiYmKT47Ci0gICAgdm9pZCBzZXRFcnJvckNhbGxiYWNrKEVycm9yQ2FsbGJhY2sm
JiBlcnJvckNhbGxiYWNrKSB7IG1fZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFj
ayk7IH0KKyAgICB1c2luZyBFcnJvckNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxFeGNlcHRpb24+JiYpPjsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRSZWNvcmRpbmco
RXJyb3JDYWxsYmFjayYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKHsgfSk7IH0KIAogcHJvdGVjdGVk
OgogICAgIHZvaWQgc2V0QXVkaW9Tb3VyY2UoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYp
OwogICAgIHZvaWQgc2V0VmlkZW9Tb3VyY2UoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYp
OwogCi1wcm90ZWN0ZWQ6Ci0gICAgRXJyb3JDYWxsYmFjayBtX2Vycm9yQ2FsbGJhY2s7Ci0KIHBy
aXZhdGU6CiAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fYXVkaW9Tb3VyY2U7CiAg
ICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fdmlkZW9Tb3VyY2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaAppbmRleCAwMzVjY2EzMmM1NTBh
YTI1NzU2MjVlNDk5MjE0NTc5YTNkYjFkNzM2Li42NTI4NjZkZGRiOWY5ZjA0OGFhMGY2N2M4Njkx
MzIxOTI5YWIxMTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yLmgKQEAgLTYwLDEzICs2MCwxMyBAQCBwcml2YXRlOgogICAgIE9TU3RhdHVzIHByb3Zp
ZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyhVSW50MzIqLCBBdWRpb0J1ZmZlckxpc3QqLCBB
dWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiopOwogCiAgICAgZGlzcGF0Y2hfcXVldWVfdCBt
X3NlcmlhbERpc3BhdGNoUXVldWU7Ci0gICAgQ01UaW1lIG1fbG93V2F0ZXJUaW1lOworICAgIENN
VGltZSBtX2xvd1dhdGVyVGltZSB7IGtDTVRpbWVJbnZhbGlkIH07CiAKICAgICBSZXRhaW5QdHI8
Q01CdWZmZXJRdWV1ZVJlZj4gbV9vdXRwdXRCdWZmZXJRdWV1ZTsKICAgICBSZXRhaW5QdHI8Q01C
dWZmZXJRdWV1ZVJlZj4gbV9pbnB1dEJ1ZmZlclF1ZXVlOwogICAgIGJvb2wgbV9pc0VuY29kaW5n
IHsgZmFsc2UgfTsKIAotICAgIFJldGFpblB0cjxBdWRpb0NvbnZlcnRlclJlZj4gbV9jb252ZXJ0
ZXI7CisgICAgQXVkaW9Db252ZXJ0ZXJSZWYgbV9jb252ZXJ0ZXIgeyBudWxscHRyIH07CiAgICAg
QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG1fc291cmNlRm9ybWF0OwogICAgIEF1ZGlvU3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbiBtX2Rlc3RpbmF0aW9uRm9ybWF0OwogICAgIFJldGFpblB0cjxD
TUZvcm1hdERlc2NyaXB0aW9uUmVmPiBtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb247CkBA
IC03NCw5ICs3NCw5IEBAIHByaXZhdGU6CiAgICAgVUludDMyIG1fbWF4T3V0cHV0UGFja2V0U2l6
ZSB7IDAgfTsKICAgICBWZWN0b3I8QXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbj4gbV9kZXN0
aW5hdGlvblBhY2tldERlc2NyaXB0aW9uczsKIAotICAgIENNVGltZSBtX2N1cnJlbnROYXRpdmVQ
cmVzZW50YXRpb25UaW1lU3RhbXA7Ci0gICAgQ01UaW1lIG1fY3VycmVudE91dHB1dFByZXNlbnRh
dGlvblRpbWVTdGFtcDsKLSAgICBDTVRpbWUgbV9yZW1haW5pbmdQcmltZUR1cmF0aW9uOworICAg
IENNVGltZSBtX2N1cnJlbnROYXRpdmVQcmVzZW50YXRpb25UaW1lU3RhbXAgeyBrQ01UaW1lSW52
YWxpZCB9OworICAgIENNVGltZSBtX2N1cnJlbnRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAg
eyBrQ01UaW1lSW52YWxpZCB9OworICAgIENNVGltZSBtX3JlbWFpbmluZ1ByaW1lRHVyYXRpb24g
eyBrQ01UaW1lSW52YWxpZCB9OwogCiAgICAgVmVjdG9yPGNoYXI+IG1fc291cmNlQnVmZmVyOwog
ICAgIFZlY3RvcjxjaGFyPiBtX2Rlc3RpbmF0aW9uQnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCBjOWJmZjY0MWQyYzI2ZmVhYWZh
MWRjYzdiYzNhYzIxNjlkZjZlNWE1Li42ZDA0ZDhjM2I3ODFiNmYzODdiNzdkOGY5ZTE1ZjJjZDQy
OWE1OTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ci5tbQpAQCAtNTgsNiArNTgsMTAgQEAgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBkaXNwYXRjaF9yZWxlYXNlKG1f
c2VyaWFsRGlzcGF0Y2hRdWV1ZSk7CisgICAgaWYgKG1fY29udmVydGVyKSB7CisgICAgICAgIEF1
ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAgICAgIG1fY29udmVydGVyID0g
bnVsbHB0cjsKKyAgICB9CiB9CiAKIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpp
bml0aWFsaXplKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNh
bGxiYWNrT2JqZWN0KQpAQCAtMTEyLDE5ICsxMTYsMTkgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9u
KEMKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IgQXVkaW9Db252ZXJ0ZXJOZXcgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgbV9jb252ZXJ0ZXIgPSBhZG9wdENG
KGNvbnZlcnRlcik7CisgICAgbV9jb252ZXJ0ZXIgPSBjb252ZXJ0ZXI7CiAKICAgICBzaXplX3Qg
Y29va2llU2l6ZSA9IDA7CiAgICAgY29uc3Qgdm9pZCAqY29va2llID0gQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uR2V0TWFnaWNDb29raWUoZm9ybWF0RGVzY3JpcHRpb24sICZjb29raWVTaXplKTsK
ICAgICBpZiAoY29va2llU2l6ZSkgewotICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29u
dmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlckRlY29t
cHJlc3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29raWVTaXplLCBjb29raWUpKSB7CisgICAg
ICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ciwga0F1ZGlvQ29udmVydGVyRGVjb21wcmVzc2lvbk1hZ2ljQ29va2llLCAoVUludDMyKWNvb2tp
ZVNpemUsIGNvb2tpZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29udmVydGVy
RGVjb21wcmVzc2lvbk1hZ2ljQ29va2llIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfQogCiAgICAgc2l6ZSA9IHNpemVv
ZihtX3NvdXJjZUZvcm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRT
dHJlYW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX3NvdXJjZUZvcm1hdCkpIHsKKyAgICBpZiAoYXV0
byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0Nv
bnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9y
bWF0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0
cmVhbURlc2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQpAQCAtMTM1LDcgKzEzOSw3IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihD
CiAgICAgfQogCiAgICAgc2l6ZSA9IHNpemVvZihtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKLSAgICBp
ZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0
KCksIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUs
ICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1
dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0
aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQpAQCAtMTQ5LDcgKzE1Myw3IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpp
bml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgICAgICAg
ICBvdXRwdXRCaXRSYXRlID0gMzIwMDA7CiAKICAgICAgICAgc2l6ZSA9IHNpemVvZihvdXRwdXRC
aXRSYXRlKTsKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3Bl
cnR5KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlLCBzaXpl
LCAmb3V0cHV0Qml0UmF0ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZl
cnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRl
LCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlv
Q29udmVydGVyRW5jb2RlQml0UmF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMTU5LDcgKzE2Myw3IEBAIGJvb2wgQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3Jt
YXREZXNjcmlwdGlvbihDCiAgICAgICAgIC8vIElmIHRoZSBkZXN0aW5hdGlvbiBmb3JtYXQgaXMg
VkJSLCB3ZSBuZWVkIHRvIGdldCBtYXggc2l6ZSBwZXIgcGFja2V0IGZyb20gdGhlIGNvbnZlcnRl
ci4KICAgICAgICAgc2l6ZSA9IHNpemVvZihtX21heE91dHB1dFBhY2tldFNpemUpOwogCi0gICAg
ICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ci5nZXQoKSwga0F1ZGlvQ29udmVydGVyUHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6ZSwg
JnNpemUsICZtX21heE91dHB1dFBhY2tldFNpemUpKSB7CisgICAgICAgIGlmIChhdXRvIGVycm9y
ID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVy
UHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6ZSwgJnNpemUsICZtX21heE91dHB1dFBhY2tl
dFNpemUpKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlclByb3BlcnR5
TWF4aW11bU91dHB1dFBhY2tldFNpemUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTE4OSw3ICsxOTMsNyBAQCB2b2lkIEF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YXR0YWNoUHJpbWluZ1RyaW1zSWZOZWVkZWQoQ01T
YW1wbGVCdWZmZXJSZWYgYgogICAgICAgICBBdWRpb0NvbnZlcnRlclByaW1lSW5mbyBwcmltZUlu
Zm8geyAwLCAwIH07CiAgICAgICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKHByaW1lSW5mbyk7CiAK
LSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29u
dmVydGVyLmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJQcmltZUluZm8sICZzaXplLCAmcHJpbWVJbmZv
KSkgeworICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHko
bV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlclByaW1lSW5mbywgJnNpemUsICZwcmltZUluZm8p
KSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlclByaW1lSW5mbyBmYWls
ZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAt
MjExLDI1ICsyMTUsMjUgQEAgUmV0YWluUHRyPE5TTnVtYmVyPiBBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KCkKIHsKICAgICBVSW50MzIgZGVs
YXlTaXplID0gc2l6ZW9mKHVpbnQzMl90KTsKICAgICB1aW50MzJfdCBvcmlnaW5hbERlbGF5TW9k
ZSA9IDA7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1f
Y29udmVydGVyLmdldCgpLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCAmZGVsYXlTaXpl
LCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZl
cnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2Rl
LCAmZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcg
a0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAg
ICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAgICB1aW50MzJfdCBvcHRpbWFsRGVsYXlNb2Rl
ID0ga0F1ZGlvQ29kZWNEZWxheU1vZGVfT3B0aW1hbDsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1
ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvZGVjUHJv
cGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9wdGltYWxEZWxheU1vZGUpKSB7CisgICAgaWYg
KGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVk
aW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcHRpbWFsRGVsYXlNb2RlKSkg
ewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVk
IHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAgICAgVUlu
dDMyIHByaW1lU2l6ZSA9IHNpemVvZihBdWRpb0NvZGVjUHJpbWVJbmZvKTsKICAgICBBdWRpb0Nv
ZGVjUHJpbWVJbmZvIHByaW1lSW5mbyB7IDAsIDAgfTsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1
ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvZGVjUHJv
cGVydHlQcmltZUluZm8sICZwcmltZVNpemUsICZwcmltZUluZm8pKSB7CisgICAgaWYgKGF1dG8g
ZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2Rl
Y1Byb3BlcnR5UHJpbWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ciBnZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlQcmltZUluZm8gZmFpbGVkIHdpdGggJWQiLCBl
cnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gZXJyb3Ig
PSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db2Rl
Y1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKKyAg
ICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIs
IGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlN
b2RlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUg
ZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQpAQCAt
MjQyLDExICsyNDYsMTEgQEAgQ01TYW1wbGVCdWZmZXJSZWYgQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0cyhVSW50MzIKICAgICBpZiAoIW1fZGVz
dGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbikgewogICAgICAgICBVSW50MzIgY29va2llU2l6ZSA9
IDA7CiAKLSAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZv
KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2ll
LCAmY29va2llU2l6ZSwgTlVMTCk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRl
ckdldFByb3BlcnR5SW5mbyhtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25N
YWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUsIE5VTEwpOwogICAgICAgICBpZiAoKGVycm9yID09IG5v
RXJyKSAmJiAhIWNvb2tpZVNpemUpIHsKICAgICAgICAgICAgIGNvb2tpZS5yZXNpemUoY29va2ll
U2l6ZSk7CiAKLSAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQ
cm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdp
Y0Nvb2tpZSwgJmNvb2tpZVNpemUsIGNvb2tpZS5kYXRhKCkpKSB7CisgICAgICAgICAgICBpZiAo
YXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRp
b0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBjb29raWUuZGF0
YSgpKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAi
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ29tcHJl
c3Npb25NYWdpY0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gbmlsOwogICAgICAgICAgICAgfQpAQCAtNDM5LDcgKzQ0Myw3IEBAIHZvaWQgQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0
ZXJUaW1lKENNVGltZSBsCiAgICAgICAgIFVJbnQzMiBvdXRwdXRQYWNrZXRTaXplID0gbV9kZXN0
aW5hdGlvbkZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQgPyBtX2Rlc3RpbmF0aW9uRm9ybWF0Lm1CeXRl
c1BlclBhY2tldCA6IG1fbWF4T3V0cHV0UGFja2V0U2l6ZTsKICAgICAgICAgVUludDMyIG51bU91
dHB1dFBhY2tldHMgPSAoVUludDMyKW1fZGVzdGluYXRpb25CdWZmZXIuY2FwYWNpdHkoKSAvIG91
dHB1dFBhY2tldFNpemU7CiAKLSAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyRmls
bENvbXBsZXhCdWZmZXIobV9jb252ZXJ0ZXIuZ2V0KCksIGF1ZGlvQ29udmVydGVyQ29tcGxleElu
cHV0RGF0YVByb2MsIHRoaXMsICZudW1PdXRwdXRQYWNrZXRzLCAmZmlsbEJ1ZmZlckxpc3QsIG1f
ZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpKTsKKyAgICAgICAgYXV0byBlcnJv
ciA9IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIobV9jb252ZXJ0ZXIsIGF1ZGlvQ29u
dmVydGVyQ29tcGxleElucHV0RGF0YVByb2MsIHRoaXMsICZudW1PdXRwdXRQYWNrZXRzLCAmZmls
bEJ1ZmZlckxpc3QsIG1fZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpKTsKICAg
ICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0
cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBBdWRpb0NvbnZlcnRlckZpbGxDb21w
bGV4QnVmZmVyIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9N
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApp
bmRleCBiN2E5ZDcxMjM4N2Q3MDQwYWZhNWI4Y2VhNjExYTRkY2U0MzQ2NmE4Li4zZGExYjI5NWZj
ZjJlMzVhZDlhMzA2MWM2YWZmNjIxMTQ4MzIyNjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApAQCAtMTE0LDggKzExNCw4IEBAIHBy
aXZhdGU6CiAgICAgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IG1fdmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yPiBtX3ZpZGVvQ29tcHJlc3NvcjsKICAgICBSZXRhaW5QdHI8QVZBc3NldFdyaXRlcklu
cHV0PiBtX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dDsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9QcmVz
ZW50YXRpb25UaW1lOwotICAgIENNVGltZSBtX2xhc3RWaWRlb0RlY29kaW5nVGltZTsKKyAgICBD
TVRpbWUgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lIHsga0NNVGltZUludmFsaWQgfTsKKyAg
ICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgeyBrQ01UaW1lSW52YWxpZCB9OwogICAg
IGJvb2wgbV9oYXNFbmNvZGVkVmlkZW9TYW1wbGVzIHsgZmFsc2UgfTsKIAogICAgIFJldGFpblB0
cjxXZWJBVkFzc2V0V3JpdGVyRGVsZWdhdGU+IG1fd3JpdGVyRGVsZWdhdGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggN2Yz
MDg3ZTAxZTBjMDFiNjc3ZWY0MzRlMTBiNjc5ZWRiNGE4ZTkwOS4uNjhmMDI1NDExMzA5ZjNiMWFk
ZDc3ZjU0YzRhMjAxZWYwNTNiZGY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtNDM1LDE2ICs0MzUsMTggQEAgdm9pZCBN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6c3RvcFJlY29yZGluZygpCiAgICAgbV9pc1N0b3Bw
aW5nID0gdHJ1ZTsKICAgICAvLyBXZSBob3AgdG8gdGhlIG1haW4gdGhyZWFkIHNpbmNlIGZpbmlz
aGluZyB0aGUgdmlkZW8gY29tcHJlc3NvciBtaWdodCB0cmlnZ2VyIHN0YXJ0aW5nIHRoZSB3cml0
ZXIgYXN5bmNocm9ub3VzbHkuCiAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cih0aGlzKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byB3aGVuRmluaXNo
ZWQgPSBbdGhpc10gewotICAgICAgICAgICAgbV9pc1N0b3BwaW5nID0gZmFsc2U7Ci0gICAgICAg
ICAgICBpZiAobV9mZXRjaERhdGFDb21wbGV0aW9uSGFuZGxlcikgewotICAgICAgICAgICAgICAg
IGF1dG8gYnVmZmVyID0gV1RGTW92ZShtX2RhdGEpOwotICAgICAgICAgICAgICAgIG1fZmV0Y2hE
YXRhQ29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShidWZmZXIpKTsKLSAgICAgICAgICAgIH0KKyAg
ICAgICAgYXV0byB3aGVuRmluaXNoZWQgPSBbdGhpcywgd2Vha1RoaXNdIHsKKyAgICAgICAgICAg
IGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgICAgICBt
X2lzU3RvcHBpbmcgPSBmYWxzZTsKICAgICAgICAgICAgIG1faXNTdG9wcGVkID0gZmFsc2U7CiAg
ICAgICAgICAgICBtX2hhc1N0YXJ0ZWRXcml0aW5nID0gZmFsc2U7Ci0gICAgICAgICAgICBjbGVh
cigpOworCisgICAgICAgICAgICBpZiAobV93cml0ZXIpCisgICAgICAgICAgICAgICAgbV93cml0
ZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIGlmIChtX2ZldGNoRGF0YUNvbXBsZXRpb25IYW5kbGVy
KQorICAgICAgICAgICAgICAgIG1fZmV0Y2hEYXRhQ29tcGxldGlvbkhhbmRsZXIoc3RkOjpleGNo
YW5nZShtX2RhdGEsIG51bGxwdHIpKTsKICAgICAgICAgfTsKIAogICAgICAgICBpZiAoIW1faGFz
U3RhcnRlZFdyaXRpbmcpIHsKQEAgLTQ2MSwxMiArNDYzLDggQEAgdm9pZCBNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6c3RvcFJlY29yZGluZygpCiAgICAgICAgICAgICBbbV93cml0ZXIgZmx1
c2hdOwogICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKLSAg
ICAgICAgICAgIFttX3dyaXRlciBmaW5pc2hXcml0aW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOlt3
ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB3aGVuRmluaXNoZWQgPSBXVEZNb3ZlKHdoZW5G
aW5pc2hlZCldKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
d2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgd2hlbkZpbmlzaGVkID0gV1RGTW92ZSh3aGVu
RmluaXNoZWQpXSgpIG11dGFibGUgewotICAgICAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlz
KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgICAgICB3
aGVuRmluaXNoZWQoKTsKLSAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIFttX3dyaXRl
ciBmaW5pc2hXcml0aW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOlt3aGVuRmluaXNoZWQgPSBXVEZN
b3ZlKHdoZW5GaW5pc2hlZCldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgY2FsbE9uTWFp
blRocmVhZChXVEZNb3ZlKHdoZW5GaW5pc2hlZCkpOwogICAgICAgICAgICAgfV07CiAgICAgICAg
IH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvci5tbQppbmRleCAxODVhZDEyODExNTljNzdjZGE0MjIyZTdhOTIwZGNhY2EwY2QwODQ5Li44
OWEyYTc4NzY1MmUxNzIwNzFkYjAyZGZhNGE2YjIyZTI2NmMzZWM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQpAQCAtNTYsNiArNTYsMTAgQEAg
VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Io
Q01WaWRlb0NvZGVjVHlwZSBvdXRwdXQKIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiB7CiAgICAgZGlzcGF0Y2hfcmVsZWFzZShtX3Nl
cmlhbERpc3BhdGNoUXVldWUpOworICAgIGlmIChtX3Z0U2Vzc2lvbikgeworICAgICAgICBWVENv
bXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92dFNlc3Npb24uZ2V0KCkpOworICAgICAgICBt
X3Z0U2Vzc2lvbiA9IG51bGxwdHI7CisgICAgfQogfQogCiBib29sIFZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxi
YWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKaW5k
ZXggN2Y0YzY2ZDZhMjM2MmU1MmU2YTA3NjRlNzg5ZjZkMjBlOTE2NzJjOS4uZGM1YjdiNjEyZjZk
YzUwZDIyNDBjNGJkODg4ZWMyMGFhZWNhNDI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5j
cHAKQEAgLTY0LDcgKzY0LDYgQEAgdm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Y3Jl
YXRlUmVjb3JkZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmkKIAogdm9pZCBSZW1v
dGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6cmVsZWFzZVJlY29yZGVyKE1lZGlhUmVjb3JkZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgQVNTRVJUKG1fcmVjb3JkZXJzLmNvbnRhaW5zKGlk
ZW50aWZpZXIpKTsKICAgICBtX3JlY29yZGVycy5yZW1vdmUoaWRlbnRpZmllcik7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3Jk
ZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlh
UmVjb3JkZXJQcml2YXRlLmNwcAppbmRleCBmNWFjMzE4MWY1MzkwYmVlZDJmNDBjMWYxYzI4MGFk
NDQ0MmNkOTA2Li42NjhlNjc1ZjkyOGZjNGI1ZThiN2FiNzdlYjgwNjFhYTdkM2M5Zjc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC00NSwxMiArNDUsMTcgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZShN
ZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKICAgICA6IG1faWRlbnRpZmllcihNZWRpYVJlY29y
ZGVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICAsIG1fc3RyZWFtKG1ha2VSZWYoc3RyZWFt
KSkKICAgICAsIG1fY29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKK3sKK30KKwordm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6c3RhcnRSZWNvcmRpbmcoRXJyb3JDYWxsYmFjayYmIGVycm9yQ2FsbGJhY2sp
CiB7CiAgICAgLy8gRklYTUU6IHdlIHdpbGwgbmVlZCB0byBpbXBsZW1lbnQgc3VwcG9ydCBmb3Ig
bXVsdGlwbGUgYXVkaW8vdmlkZW8gdHJhY2tzCiAgICAgLy8gQ3VycmVudGx5IHdlIG9ubHkgY2hv
b3NlIHRoZSBmaXJzdCB0cmFjayBhcyB0aGUgcmVjb3JkZWQgdHJhY2suCiAKLSAgICBhdXRvIHNl
bGVjdGVkVHJhY2tzID0gTWVkaWFSZWNvcmRlclByaXZhdGU6OnNlbGVjdFRyYWNrcyhzdHJlYW0p
OworICAgIGF1dG8gc2VsZWN0ZWRUcmFja3MgPSBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2VsZWN0
VHJhY2tzKG1fc3RyZWFtKTsKICAgICBpZiAoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaykgewog
ICAgICAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1
ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4odGhpcykpOwogICAgICAgICBtX3JlY29yZGVk
QXVkaW9UcmFja0lEID0gc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjay0+aWQoKTsKQEAgLTY0LDE1
ICs2OSwyMCBAQCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUoTWVk
aWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiAgICAgICAgIHdpZHRoID0gc2VsZWN0ZWRUcmFja3Mu
dmlkZW9UcmFjay0+c2V0dGluZ3MoKS53aWR0aCgpOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlv
bi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdl
cjo6Q3JlYXRlUmVjb3JkZXIgeyBtX2lkZW50aWZpZXIsICEhc2VsZWN0ZWRUcmFja3MuYXVkaW9U
cmFjaywgd2lkdGgsIGhlaWdodCB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlz
KSwgYXVkaW9UcmFjayA9IG1ha2VSZWZQdHIoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjayksIHZp
ZGVvVHJhY2sgPSBtYWtlUmVmUHRyKHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2spXShhdXRvJiYg
ZXhjZXB0aW9uKSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpD
cmVhdGVSZWNvcmRlciB7IG1faWRlbnRpZmllciwgISFzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNr
LCB3aWR0aCwgaGVpZ2h0IH0sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBh
dWRpb1RyYWNrID0gbWFrZVJlZlB0cihzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrKSwgdmlkZW9U
cmFjayA9IG1ha2VSZWZQdHIoc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjayksIGVycm9yQ2FsbGJh
Y2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spXShhdXRvJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsK
KyAgICAgICAgaWYgKCF3ZWFrVGhpcykgeworICAgICAgICAgICAgZXJyb3JDYWxsYmFjayh7IH0p
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChleGNlcHRpb24p
IHsKKyAgICAgICAgICAgIGVycm9yQ2FsbGJhY2soRXhjZXB0aW9uIHsgZXhjZXB0aW9uLT5jb2Rl
LCBXVEZNb3ZlKGV4Y2VwdGlvbi0+bWVzc2FnZSkgfSk7CiAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIGlmIChleGNlcHRpb24pCi0gICAgICAgICAgICByZXR1cm4gbV9lcnJvckNhbGxiYWNr
KEV4Y2VwdGlvbiB7IGV4Y2VwdGlvbi0+Y29kZSwgV1RGTW92ZShleGNlcHRpb24tPm1lc3NhZ2Up
IH0pOworICAgICAgICB9CiAgICAgICAgIGlmIChhdWRpb1RyYWNrKQogICAgICAgICAgICAgc2V0
QXVkaW9Tb3VyY2UoJmF1ZGlvVHJhY2stPnNvdXJjZSgpKTsKICAgICAgICAgaWYgKHZpZGVvVHJh
Y2spCiAgICAgICAgICAgICBzZXRWaWRlb1NvdXJjZSgmdmlkZW9UcmFjay0+c291cmNlKCkpOwor
ICAgICAgICBlcnJvckNhbGxiYWNrKHsgfSk7CiAgICAgfSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJp
dmF0ZS5oCmluZGV4IDNkN2JlZTI5NjQzYzk5YjUxMGU3YjhhNGUwNTQwYjdlZTIwN2E1ZDMuLjUy
NjdhYmFmZTM4ZGY1MzUyMmZiYzVhZWY2MDI1MDM5ZDUxMWZiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZh
dGUuaApAQCAtNTgsMTQgKzU4LDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2
YWlsYWJsZShXZWJDb3JlOjpNZWRpYVNhbXBsZSYpIGZpbmFsOwogICAgIHZvaWQgZmV0Y2hEYXRh
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYpIGZpbmFsOwogICAgIHZvaWQgc3RvcFJlY29yZGlu
ZygpIGZpbmFsOworICAgIHZvaWQgc3RhcnRSZWNvcmRpbmcoRXJyb3JDYWxsYmFjayYmKSBmaW5h
bDsKICAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYs
IGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CiAKICAgICAvLyBTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZTo6Q2xpZW50CiAgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkq
KTsKIAogICAgIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKLQorICAgIFJl
ZjxNZWRpYVN0cmVhbVByaXZhdGU+IG1fc3RyZWFtOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+
IG1fY29ubmVjdGlvbjsKKwogICAgIFN0cmluZyBtX3JlY29yZGVkQXVkaW9UcmFja0lEOwogICAg
IFN0cmluZyBtX3JlY29yZGVkVmlkZW9UcmFja0lEOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTlkNjlkOWM5ODZjZjc5
MjcwNjIxMWNlY2ZmNzVjYzBmNGU0MjZhNy4uOGE2MWY0NzQ2ODdiMDVjYmY2MGQ3NzIwZTViYzYw
MDlhZmU0YjFiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA2LTI1ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHN0b3BSZWNv
cmRlcigpIHJldHVybnMgZW1wdHkgQmxvYiBhZnRlciBmaXJzdCB1c2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjI3NAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjM2MDEyOTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBodHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItbXVsdGlw
bGUtc3RhcnQtc3RvcC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLmh0bWw6IEFkZGVk
LgorCiAyMDIwLTA2LTI0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIFJ1bm5pbmcgc3BlbGxjaGVjayBvbiBodHRwczovL2RldmVsb3Blci5hcHBsZS5j
b20vZm9ydW1zL3RocmVhZC82NTAzMTcgaGFuZ3MgdGhlIHdlYiBwcm9jZXNzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItbXVsdGlw
bGUtc3RhcnQtc3RvcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXItbXVsdGlwbGUtc3RhcnQtc3RvcC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmY0NTRjMmJjODExODJkOGY5ZGQzZDQyZWFjNzU4ZjRjOTU4YzE1MgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBNYWtlIHN1cmUgdGhhdCBNZWRpYVJlY29yZGVyIGNhbiBiZSB1c2VkIGFmdGVyIHN0b3Bw
aW5nIGl0IG9uY2UgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItbXVsdGlwbGUtc3RhcnQtc3Rv
cC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI5MTY2NTA4YzIyY2ViZjZlMzBhZWUxNmQ1YmFhM2Q2ZGY0NjAy
NTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXItbXVsdGlwbGUtc3RhcnQtc3RvcC5odG1sCkBAIC0wLDAgKzEsNDkgQEAK
KzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+TWVkaWFSZWNvcmRl
ciBEYXRhYXZhaWxhYmxlPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXIuaHRtbCNt
ZWRpYXJlY29yZGVyIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdp
ZHRoPSIyMDAiIGhlaWdodD0iMjAwIj4KKzwvY2FudmFzPgorPHNjcmlwdD4KKyAgICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICAgIGNvbnN0IHZpZGVvID0gYXdhaXQgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbyA6IHRydWUsIHZpZGVvIDogdHJ1ZSB9
KTsKKyAgICAgICAgY29uc3QgcmVjb3JkZXIgPSBuZXcgTWVkaWFSZWNvcmRlcih2aWRlbyk7CisK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmRlci5zdHJlYW0sIHZpZGVvKTsKKworICAgICAg
ICBsZXQgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgcmVj
b3JkZXIub25kYXRhYXZhaWxhYmxlID0gdC5zdGVwX2Z1bmMoYmxvYkV2ZW50ID0+IHsKKyAgICAg
ICAgICAgICAgICBpZiAoYmxvYkV2ZW50LmRhdGEuc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIHJlY29y
ZGVyLnN0YXJ0KCk7CisgICAgICAgIGxldCB0aW1lciA9IHNldEludGVydmFsKCgpID0+IHJlY29y
ZGVyLnJlcXVlc3REYXRhKCksIDEwKTsKKyAgICAgICAgYXdhaXQgcHJvbWlzZTsKKyAgICAgICAg
Y2xlYXJJbnRlcnZhbCh0aW1lcik7CisKKyAgICAgICAgcmVjb3JkZXIuc3RvcCgpOworCisgICAg
ICAgIHByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHJlY29y
ZGVyLm9uZGF0YWF2YWlsYWJsZSA9IHQuc3RlcF9mdW5jKGJsb2JFdmVudCA9PiB7CisgICAgICAg
ICAgICAgICAgaWYgKGJsb2JFdmVudC5kYXRhLnNpemUpCisgICAgICAgICAgICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICByZWNvcmRl
ci5zdGFydCgpOworICAgICAgICB0aW1lciA9IHNldEludGVydmFsKCgpID0+IHJlY29yZGVyLnJl
cXVlc3REYXRhKCksIDEwKTsKKyAgICAgICAgYXdhaXQgcHJvbWlzZTsKKyAgICAgICAgY2xlYXJJ
bnRlcnZhbCh0aW1lcik7CisKKyAgICAgICAgcmVjb3JkZXIuc3RvcCgpOworICAgIH0sICdNYWtl
IHN1cmUgdGhhdCBNZWRpYVJlY29yZGVyIGNhbiBiZSB1c2VkIGFmdGVyIHN0b3BwaW5nIGl0IG9u
Y2UnKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402911</attachid>
            <date>2020-06-26 15:12:21 -0700</date>
            <delta_ts>2020-06-28 02:46:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212274-20200627001219.patch</filename>
            <type>text/plain</type>
            <size>35367</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjEyZTI5Y2NkNmQ4YWIy
ZjI1ZTEwZWM4MmNmZGE1YTA2NDUwYTQ2NS4uOGFmZDhkOGU5MWE5ODkzNDQ1ZjVhZGFhNGQxOWI5
NzEwNWU0YWM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTA2LTI2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHN0
b3BSZWNvcmRlcigpIHJldHVybnMgZW1wdHkgQmxvYiBhZnRlciBmaXJzdCB1c2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjI3NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNjM2MDEyOTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgY29kZSB0byBjcmVhdGUvZGVzdHJveSBNZWRpYVJl
Y29yZGVyUHJpdmF0ZSBvbiBNZWRpYVJlY29yZGVyIHN0YXJ0L3N0b3AuCisgICAgICAgIFRoaXMg
YWxsb3dzIHJldXNpbmcgYSBNZWRpYVJlY29yZGVyIGFmdGVyIGEgc3RvcCBhbmQgcmVzdGFydGlu
ZyB3aXRoIGEgY2xlYW4gc3RhdGUuCisKKyAgICAgICAgV2UgaW50cm9kdWNlIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlOjpzdGFydFJlY29yZGluZyB0byBkbyB0aGUgaW5pdGlhbGl6YXRpb24sCisgICAg
ICAgIHdoaWNoIGFsbG93cyB0byBmaXggYSBwb3RlbnRpYWwgcmVmIGN5Y2xlIGFzIHBhcnQgb2Yg
dGhlIGVycm9yIGNhbGxiYWNrIGhhbmRsaW5nLgorCisgICAgICAgIE1ha2Ugc29tZSBpbXByb3Zl
bWVudHMgdG8gdGhlIHBsYXRmb3JtIGltcGxlbWVudGF0aW9uLCBpbiBwYXJ0aWN1bGFyIGFkZCBk
ZWZhdWx0IGluaXRpYWxpemF0aW9uIHRvIGFsbCBmaWVsZHMuCisgICAgICAgIEFsaWduIHRoZSBj
b2RlIHVzaW5nIEF1ZGlvQ29udmVydGVyUmVmIHRvIHdoYXQgaXMgZG9uZSBpbiBBdWRpb1NhbXBs
ZURhdGFTb3VyY2UuCisgICAgICAgIEFsc28gY2FsbCBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFs
aWRhdGUgd2hlbiBkZXN0cm95aW5nIHRoZSBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuCisK
KyAgICAgICAgVGVzdDogaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLW11bHRp
cGxlLXN0YXJ0LXN0b3AuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6c3RhcnRSZWNvcmRpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyOjpyZXF1ZXN0RGF0YSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZU1vY2s6OmZldGNoRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByaXZhdGU6OnN0YXJ0UmVjb3JkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+QXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3Jp
cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjph
dHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51
bVBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2Eu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcjo6c3RvcFJlY29yZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW06CisgICAgICAgIChXZWJD
b3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5WaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IpOgorCiAyMDIwLTA2LTI2ICBKYXNvbiBMYXdyZW5jZSAgPGxhd3JlbmNlLmpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjYzNTExLCByMjYzNTE0LCBh
bmQgcjI2MzU2NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZWJkOGY3ZDI0NzQ0OWM4NDIzMmYxZjc1MmYwYzdjMjc5
M2E3MTcyOC4uNDk0YWUwM2Y3YjAxNTJkYWMyZGYyZmJjNDI3ZGU0NDVhYTJhMTAzMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMC0wNi0yNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFSZWNvcmRlciBzdG9wUmVjb3JkZXIoKSByZXR1cm5z
IGVtcHR5IEJsb2IgYWZ0ZXIgZmlyc3QgdXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIyNzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNjAx
Mjk4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVw
ZGF0ZSBpbXBsZW1lbnRhdGlvbiB0byBkbyBpbml0aWFsaXphdGlvbiBhcyBwYXJ0IG9mIHN0YXJ0
UmVjb3JkaW5nLgorCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyTWFu
YWdlcjo6cmVsZWFzZVJlY29yZGVyKToKKyAgICAgICAgUmVtb3ZlIEFTU0VSVCBhcyByZWNvcmRl
ciBjcmVhdGlvbiBpbiBXZWJQcm9jZXNzIGlzIGFsd2F5cyBvayB3aGlsZSBjcmVhdGlvbiBpbiBH
UFVQcm9jZXNzIG1heSBmYWlsIGFuZCBtX3JlY29yZGVycyBtYXkgbm90IGJlIHBvcHVsYXRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclBy
aXZhdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RhcnRSZWNv
cmRpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJp
dmF0ZS5oOgorCiAyMDIwLTA2LTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIExheW91dCB0ZXN0cyBzb21ldGltZXMgYXNzZXJ0IHVuZGVy
IC1bV0tDb250ZW50VmlldyBoYXNDb250ZW50XQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCmluZGV4IDg1ODFkNWNkN2I3
OTAzYzgzZmQ4ZDExNTRlYTE1NjFhMzJkODNiYWUuLjE5Yjk2Y2UyYzJlNDhhMzA4YjVhZjgzOTRm
NDYzOGM5OGFjZjE3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKQEAgLTUxLDExICs1MSw4IEBAIEV4Y2VwdGlv
bk9yPFJlZjxNZWRpYVJlY29yZGVyPj4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCwgUmVmPE1lCiAgICAgYXV0byBwcml2YXRlSW5zdGFuY2UgPSBNZWRpYVJlY29yZGVy
OjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShkb2N1bWVudCwgc3RyZWFtLT5wcml2YXRlU3Ry
ZWFtKCkpOwogICAgIGlmICghcHJpdmF0ZUluc3RhbmNlKQogICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJUaGUgTWVkaWFSZWNvcmRlciBpcyB1bnN1cHBvcnRl
ZCBvbiB0aGlzIHBsYXRmb3JtIl9zIH07Ci0gICAgYXV0byByZWNvcmRlciA9IGFkb3B0UmVmKCpu
ZXcgTWVkaWFSZWNvcmRlcihkb2N1bWVudCwgV1RGTW92ZShzdHJlYW0pLCBXVEZNb3ZlKHByaXZh
dGVJbnN0YW5jZSksIFdURk1vdmUob3B0aW9ucykpKTsKKyAgICBhdXRvIHJlY29yZGVyID0gYWRv
cHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyKGRvY3VtZW50LCBXVEZNb3ZlKHN0cmVhbSksIFdURk1v
dmUob3B0aW9ucykpKTsKICAgICByZWNvcmRlci0+c3VzcGVuZElmTmVlZGVkKCk7Ci0gICAgcmVj
b3JkZXItPm1fcHJpdmF0ZS0+c2V0RXJyb3JDYWxsYmFjayhbcmVjb3JkZXJdKGF1dG8mJiBleGNl
cHRpb24pIG11dGFibGUgewotICAgICAgICByZWNvcmRlci0+ZGlzcGF0Y2hFcnJvcihXVEZNb3Zl
KCpleGNlcHRpb24pKTsKLSAgICB9KTsKICAgICByZXR1cm4gcmVjb3JkZXI7CiB9CiAKQEAgLTgy
LDExICs3OSwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlh
UmVjb3JkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKAogI2VuZGlmCiB9CiAKLU1lZGlh
UmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWVkaWFTdHJl
YW0+JiYgc3RyZWFtLCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+JiYgcHJp
dmF0ZUltcGwsIE9wdGlvbnMmJiBvcHRpb24pCitNZWRpYVJlY29yZGVyOjpNZWRpYVJlY29yZGVy
KERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmIHN0cmVhbSwgT3B0aW9ucyYm
IG9wdGlvbikKICAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKICAgICAsIG1fb3B0aW9u
cyhXVEZNb3ZlKG9wdGlvbikpCiAgICAgLCBtX3N0cmVhbShXVEZNb3ZlKHN0cmVhbSkpCi0gICAg
LCBtX3ByaXZhdGUoV1RGTW92ZShwcml2YXRlSW1wbCkpCiB7CiAgICAgbV90cmFja3MgPSBXVEY6
Om1hcChtX3N0cmVhbS0+Z2V0VHJhY2tzKCksIFtdIChhdXRvJiYgdHJhY2spIC0+IFJlZjxNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZT4gewogICAgICAgICByZXR1cm4gdHJhY2stPnByaXZhdGVUcmFj
aygpOwpAQCAtMTMyLDkgKzEyOCwyNiBAQCBjb25zdCBjaGFyKiBNZWRpYVJlY29yZGVyOjphY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3QKIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhUmVjb3JkZXI6
OnN0YXJ0UmVjb3JkaW5nKE9wdGlvbmFsPGludD4gdGltZXNsaWNlKQogewogICAgIFVOVVNFRF9Q
QVJBTSh0aW1lc2xpY2UpOworICAgIGlmICghbV9pc0FjdGl2ZSkKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIE1lZGlhUmVjb3JkZXIgaXMgbm90IGFj
dGl2ZSJfcyB9OworCiAgICAgaWYgKHN0YXRlKCkgIT0gUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZl
KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgTWVk
aWFSZWNvcmRlcidzIHN0YXRlIG11c3QgYmUgaW5hY3RpdmUgaW4gb3JkZXIgdG8gc3RhcnQgcmVj
b3JkaW5nIl9zIH07Ci0gICAgCisKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZSk7CisgICAgbV9wcml2
YXRlID0gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoKmRvY3VtZW50KCksIG1fc3RyZWFtLT5w
cml2YXRlU3RyZWFtKCkpOworCisgICAgaWYgKCFtX3ByaXZhdGUpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBNZWRpYVJlY29yZGVyIGlzIHVuc3Vw
cG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0iX3MgfTsKKworICAgIG1fcHJpdmF0ZS0+c3RhcnRSZWNv
cmRpbmcoW3RoaXMsIHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMp
XShhdXRvJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFtX2lzQWN0aXZlIHx8
ICFleGNlcHRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc3RvcFJlY29yZGlu
Z0ludGVybmFsKCk7CisgICAgICAgIGRpc3BhdGNoRXJyb3IoV1RGTW92ZSgqZXhjZXB0aW9uKSk7
CisgICAgfSk7CisKICAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFja3MpCiAgICAgICAgIHRy
YWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAKQEAgLTE0NiwyMiArMTU5LDE3IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IE1lZGlhUmVjb3JkZXI6OnN0b3BSZWNvcmRpbmcoKQogewogICAgIGlmIChzdGF0
ZSgpID09IFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2ZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIE1lZGlhUmVjb3JkZXIncyBzdGF0ZSBjYW5ub3Qg
YmUgaW5hY3RpdmUiX3MgfTsKLSAgICAKLSAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUo
KnRoaXMsIFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzXSB7Ci0gICAgICAgIGlmICghbV9p
c0FjdGl2ZSB8fCBzdGF0ZSgpID09IFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2ZSkKLSAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBzdG9wUmVjb3JkaW5nSW50ZXJuYWwoKTsKLSAgICAgICAg
QVNTRVJUKG1fc3RhdGUgPT0gUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZlKTsKLSAgICAgICAgbV9w
cml2YXRlLT5mZXRjaERhdGEoW3RoaXMsIHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0
aXZpdHkoKnRoaXMpXShhdXRvJiYgYnVmZmVyLCBhdXRvJiBtaW1lVHlwZSkgeworICAgIHN0b3BS
ZWNvcmRpbmdJbnRlcm5hbCgpOworICAgIGF1dG8mIHByaXZhdGVSZWNvcmRlciA9ICptX3ByaXZh
dGU7CisgICAgcHJpdmF0ZVJlY29yZGVyLmZldGNoRGF0YShbdGhpcywgcGVuZGluZ0FjdGl2aXR5
ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIHByaXZhdGVSZWNvcmRlciA9IFdURk1vdmUo
bV9wcml2YXRlKV0oYXV0byYmIGJ1ZmZlciwgYXV0byYgbWltZVR5cGUpIHsKKyAgICAgICAgcXVl
dWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBb
dGhpcywgYnVmZmVyID0gV1RGTW92ZShidWZmZXIpLCBtaW1lVHlwZV0oKSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIGlmICghbV9pc0FjdGl2ZSkKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
CiAgICAgICAgICAgICBkaXNwYXRjaEV2ZW50KEJsb2JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5kYXRhYXZhaWxhYmxlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObywgYnVmZmVyID8gQmxvYjo6Y3JlYXRlKGJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgp
LCBtaW1lVHlwZSkgOiBCbG9iOjpjcmVhdGUoKSkpOwogCiAgICAgICAgICAgICBpZiAoIW1faXNB
Y3RpdmUpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwotCiAgICAgICAgICAgICBkaXNwYXRjaEV2
ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3BFdmVudCwgRXZlbnQ6OkNhbkJ1YmJs
ZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpA
QCAtMTc0LDEwICsxODIsMTIgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFSZWNvcmRlcjo6cmVx
dWVzdERhdGEoKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJUaGUgTWVkaWFSZWNvcmRlcidzIHN0YXRlIGNhbm5vdCBiZSBpbmFjdGl2ZSJfcyB9OwogCiAg
ICAgbV9wcml2YXRlLT5mZXRjaERhdGEoW3RoaXMsIHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5k
aW5nQWN0aXZpdHkoKnRoaXMpXShhdXRvJiYgYnVmZmVyLCBhdXRvJiBtaW1lVHlwZSkgewotICAg
ICAgICBpZiAoIW1faXNBY3RpdmUpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIHF1ZXVl
VGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3Ro
aXMsIGJ1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgbWltZVR5cGVdKCkgbXV0YWJsZSB7CisgICAg
ICAgICAgICBpZiAoIW1faXNBY3RpdmUpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIGRpc3BhdGNoRXZlbnQoQmxvYkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmRhdGFhdmFp
bGFibGVFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5v
LCBidWZmZXIgPyBCbG9iOjpjcmVhdGUoYnVmZmVyLnJlbGVhc2VOb25OdWxsKCksIG1pbWVUeXBl
KSA6IEJsb2I6OmNyZWF0ZSgpKSk7CisgICAgICAgICAgICBkaXNwYXRjaEV2ZW50KEJsb2JFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kYXRhYXZhaWxhYmxlRXZlbnQsIEV2ZW50OjpDYW5CdWJi
bGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywgYnVmZmVyID8gQmxvYjo6Y3JlYXRlKGJ1
ZmZlci5yZWxlYXNlTm9uTnVsbCgpLCBtaW1lVHlwZSkgOiBCbG9iOjpjcmVhdGUoKSkpOworICAg
ICAgICB9KTsKICAgICB9KTsKICAgICByZXR1cm4geyB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKaW5kZXggMmZkOWVh
NTg2YzljMGUxMWMwMDEyYWZiNTYyNmI2MzNhYzIzZWNhMC4uOGY2NjM0Yzg0OTAzOTNiOGEwNzc3
MmE0MjdhNWNkOWIyZjdjNzg1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoK
ICAgICBNZWRpYVN0cmVhbSYgc3RyZWFtKCkgeyByZXR1cm4gbV9zdHJlYW0uZ2V0KCk7IH0KIAog
cHJpdmF0ZToKLSAgICBNZWRpYVJlY29yZGVyKERvY3VtZW50JiwgUmVmPE1lZGlhU3RyZWFtPiYm
LCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+JiYsIE9wdGlvbnMmJiA9IHsg
fSk7CisgICAgTWVkaWFSZWNvcmRlcihEb2N1bWVudCYsIFJlZjxNZWRpYVN0cmVhbT4mJiwgT3B0
aW9ucyYmID0geyB9KTsKIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRl
clByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKERvY3VtZW50JiwgTWVkaWFTdHJl
YW1Qcml2YXRlJik7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKaW5kZXggOWVhODFjOGIx
OGY5YzE1Yzc4YzRmNjM1Y2IwNzYyZTcwNTlmZTFiOC4uMDRiYTZiMDg0YWQyM2Y0MzMyZWQ0ZmVl
NTQ1ZmVmODE0NWQ0YTRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaApAQCAtNjAsMTYgKzYw
LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZmV0Y2hEYXRhKEZldGNoRGF0YUNhbGxi
YWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcFJlY29yZGluZygpID0gMDsKIAotICAg
IHVzaW5nIEVycm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4m
Jik+OwotICAgIHZvaWQgc2V0RXJyb3JDYWxsYmFjayhFcnJvckNhbGxiYWNrJiYgZXJyb3JDYWxs
YmFjaykgeyBtX2Vycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spOyB9CisgICAg
dXNpbmcgRXJyb3JDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhj
ZXB0aW9uPiYmKT47CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0UmVjb3JkaW5nKEVycm9yQ2FsbGJh
Y2smJiBjYWxsYmFjaykgeyBjYWxsYmFjayh7IH0pOyB9CiAKIHByb3RlY3RlZDoKICAgICB2b2lk
IHNldEF1ZGlvU291cmNlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKICAgICB2b2lk
IHNldFZpZGVvU291cmNlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKIAotcHJvdGVj
dGVkOgotICAgIEVycm9yQ2FsbGJhY2sgbV9lcnJvckNhbGxiYWNrOwotCiBwcml2YXRlOgogICAg
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX2F1ZGlvU291cmNlOwogICAgIFJlZlB0cjxS
ZWFsdGltZU1lZGlhU291cmNlPiBtX3ZpZGVvU291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJp
dmF0ZU1vY2suY3BwCmluZGV4IDZhNTIyODg1ZDJjZGYzYWM5NjRlMDFmMzRmNTc2Y2I0Y2Y4YjFl
YTguLmU0OWNjMjg5NjJhOTU3OTQ4YjRiNWZjYmNlMDRjMDdlZTI0ODRmMjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZh
dGVNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAKQEAgLTgzLDExICs4MywxNSBAQCB2b2lkIE1lZGlh
UmVjb3JkZXJQcml2YXRlTW9jazo6Z2VuZXJhdGVNb2NrQ291bnRlclN0cmluZygpCiAKIHZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpmZXRjaERhdGEoRmV0Y2hEYXRhQ2FsbGJhY2smJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYnVmZmVy
TG9jayk7Ci0gICAgVmVjdG9yPHVpbnQ4X3Q+IHZhbHVlKG1fYnVmZmVyLmxlbmd0aCgpKTsKLSAg
ICBtZW1jcHkodmFsdWUuZGF0YSgpLCBtX2J1ZmZlci5jaGFyYWN0ZXJzOCgpLCBtX2J1ZmZlci5s
ZW5ndGgoKSk7Ci0gICAgbV9idWZmZXIuY2xlYXIoKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihT
aGFyZWRCdWZmZXI6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlKSksIG1pbWVUeXBlKCkpOworICAgIFJl
ZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsKKyAgICB7CisgICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9idWZmZXJMb2NrKTsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHZhbHVlKG1f
YnVmZmVyLmxlbmd0aCgpKTsKKyAgICAgICAgbWVtY3B5KHZhbHVlLmRhdGEoKSwgbV9idWZmZXIu
Y2hhcmFjdGVyczgoKSwgbV9idWZmZXIubGVuZ3RoKCkpOworICAgICAgICBtX2J1ZmZlci5jbGVh
cigpOworICAgICAgICBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShXVEZNb3ZlKHZhbHVl
KSk7CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoYnVmZmVyKSwgbWltZVR5
cGUoKSk7CiB9CiAKIGNvbnN0IFN0cmluZyYgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjptaW1l
VHlwZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaApp
bmRleCAwMzVjY2EzMmM1NTBhYTI1NzU2MjVlNDk5MjE0NTc5YTNkYjFkNzM2Li42NTI4NjZkZGRi
OWY5ZjA0OGFhMGY2N2M4NjkxMzIxOTI5YWIxMTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmgKQEAgLTYwLDEzICs2MCwxMyBAQCBwcml2YXRlOgog
ICAgIE9TU3RhdHVzIHByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyhVSW50MzIqLCBB
dWRpb0J1ZmZlckxpc3QqLCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiopOwogCiAgICAg
ZGlzcGF0Y2hfcXVldWVfdCBtX3NlcmlhbERpc3BhdGNoUXVldWU7Ci0gICAgQ01UaW1lIG1fbG93
V2F0ZXJUaW1lOworICAgIENNVGltZSBtX2xvd1dhdGVyVGltZSB7IGtDTVRpbWVJbnZhbGlkIH07
CiAKICAgICBSZXRhaW5QdHI8Q01CdWZmZXJRdWV1ZVJlZj4gbV9vdXRwdXRCdWZmZXJRdWV1ZTsK
ICAgICBSZXRhaW5QdHI8Q01CdWZmZXJRdWV1ZVJlZj4gbV9pbnB1dEJ1ZmZlclF1ZXVlOwogICAg
IGJvb2wgbV9pc0VuY29kaW5nIHsgZmFsc2UgfTsKIAotICAgIFJldGFpblB0cjxBdWRpb0NvbnZl
cnRlclJlZj4gbV9jb252ZXJ0ZXI7CisgICAgQXVkaW9Db252ZXJ0ZXJSZWYgbV9jb252ZXJ0ZXIg
eyBudWxscHRyIH07CiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG1fc291cmNlRm9y
bWF0OwogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBtX2Rlc3RpbmF0aW9uRm9ybWF0
OwogICAgIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBtX2Rlc3RpbmF0aW9uRm9y
bWF0RGVzY3JpcHRpb247CkBAIC03NCw5ICs3NCw5IEBAIHByaXZhdGU6CiAgICAgVUludDMyIG1f
bWF4T3V0cHV0UGFja2V0U2l6ZSB7IDAgfTsKICAgICBWZWN0b3I8QXVkaW9TdHJlYW1QYWNrZXRE
ZXNjcmlwdGlvbj4gbV9kZXN0aW5hdGlvblBhY2tldERlc2NyaXB0aW9uczsKIAotICAgIENNVGlt
ZSBtX2N1cnJlbnROYXRpdmVQcmVzZW50YXRpb25UaW1lU3RhbXA7Ci0gICAgQ01UaW1lIG1fY3Vy
cmVudE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcDsKLSAgICBDTVRpbWUgbV9yZW1haW5pbmdQ
cmltZUR1cmF0aW9uOworICAgIENNVGltZSBtX2N1cnJlbnROYXRpdmVQcmVzZW50YXRpb25UaW1l
U3RhbXAgeyBrQ01UaW1lSW52YWxpZCB9OworICAgIENNVGltZSBtX2N1cnJlbnRPdXRwdXRQcmVz
ZW50YXRpb25UaW1lU3RhbXAgeyBrQ01UaW1lSW52YWxpZCB9OworICAgIENNVGltZSBtX3JlbWFp
bmluZ1ByaW1lRHVyYXRpb24geyBrQ01UaW1lSW52YWxpZCB9OwogCiAgICAgVmVjdG9yPGNoYXI+
IG1fc291cmNlQnVmZmVyOwogICAgIFZlY3RvcjxjaGFyPiBtX2Rlc3RpbmF0aW9uQnVmZmVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9B
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCBj
OWJmZjY0MWQyYzI2ZmVhYWZhMWRjYzdiYzNhYzIxNjlkZjZlNWE1Li42ZDA0ZDhjM2I3ODFiNmYz
ODdiNzdkOGY5ZTE1ZjJjZDQyOWE1OTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvci5tbQpAQCAtNTgsNiArNTgsMTAgQEAgQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQogQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp+QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBk
aXNwYXRjaF9yZWxlYXNlKG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZSk7CisgICAgaWYgKG1fY29udmVy
dGVyKSB7CisgICAgICAgIEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAg
ICAgIG1fY29udmVydGVyID0gbnVsbHB0cjsKKyAgICB9CiB9CiAKIGJvb2wgQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjppbml0aWFsaXplKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sg
Y2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQpAQCAtMTEyLDE5ICsxMTYsMTkgQEAgYm9v
bCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJj
ZUZvcm1hdERlc2NyaXB0aW9uKEMKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJl
YW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQXVkaW9Db252ZXJ0ZXJOZXcgZmFpbGVk
IHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgbV9j
b252ZXJ0ZXIgPSBhZG9wdENGKGNvbnZlcnRlcik7CisgICAgbV9jb252ZXJ0ZXIgPSBjb252ZXJ0
ZXI7CiAKICAgICBzaXplX3QgY29va2llU2l6ZSA9IDA7CiAgICAgY29uc3Qgdm9pZCAqY29va2ll
ID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUoZm9ybWF0RGVzY3JpcHRp
b24sICZjb29raWVTaXplKTsKICAgICBpZiAoY29va2llU2l6ZSkgewotICAgICAgICBpZiAoYXV0
byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtB
dWRpb0NvbnZlcnRlckRlY29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29raWVTaXpl
LCBjb29raWUpKSB7CisgICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQ
cm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRGVjb21wcmVzc2lvbk1hZ2ljQ29v
a2llLCAoVUludDMyKWNvb2tpZVNpemUsIGNvb2tpZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRp
bmcga0F1ZGlvQ29udmVydGVyRGVjb21wcmVzc2lvbk1hZ2ljQ29va2llIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfQog
CiAgICAgc2l6ZSA9IHNpemVvZihtX3NvdXJjZUZvcm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJyb3Ig
PSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db252
ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX3NvdXJjZUZvcm1h
dCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9j
b252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAm
c2l6ZSwgJm1fc291cmNlRm9ybWF0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZl
cnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3Ip
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTM1LDcgKzEzOSw3IEBAIGJvb2wg
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VG
b3JtYXREZXNjcmlwdGlvbihDCiAgICAgfQogCiAgICAgc2l6ZSA9IHNpemVvZihtX2Rlc3RpbmF0
aW9uRm9ybWF0KTsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVy
dHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1E
ZXNjcmlwdGlvbiwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkgeworICAgIGlmIChhdXRv
IGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29u
dmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fZGVzdGluYXRp
b25Gb3JtYXQpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVudE91
dHB1dFN0cmVhbURlc2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTQ5LDcgKzE1Myw3IEBAIGJvb2wgQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlw
dGlvbihDCiAgICAgICAgICAgICBvdXRwdXRCaXRSYXRlID0gMzIwMDA7CiAKICAgICAgICAgc2l6
ZSA9IHNpemVvZihvdXRwdXRCaXRSYXRlKTsKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRp
b0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJF
bmNvZGVCaXRSYXRlLCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8g
ZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252
ZXJ0ZXJFbmNvZGVCaXRSYXRlLCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpIHsKICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yIHNldHRpbmcga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMTU5LDcg
KzE2Myw3IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252
ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgICAgIC8vIElmIHRoZSBkZXN0
aW5hdGlvbiBmb3JtYXQgaXMgVkJSLCB3ZSBuZWVkIHRvIGdldCBtYXggc2l6ZSBwZXIgcGFja2V0
IGZyb20gdGhlIGNvbnZlcnRlci4KICAgICAgICAgc2l6ZSA9IHNpemVvZihtX21heE91dHB1dFBh
Y2tldFNpemUpOwogCi0gICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQ
cm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29udmVydGVyUHJvcGVydHlNYXhpbXVt
T3V0cHV0UGFja2V0U2l6ZSwgJnNpemUsICZtX21heE91dHB1dFBhY2tldFNpemUpKSB7CisgICAg
ICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ciwga0F1ZGlvQ29udmVydGVyUHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6ZSwgJnNpemUs
ICZtX21heE91dHB1dFBhY2tldFNpemUpKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRp
b0NvbnZlcnRlclByb3BlcnR5TWF4aW11bU91dHB1dFBhY2tldFNpemUgZmFpbGVkIHdpdGggJWQi
LCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTE4OSw3
ICsxOTMsNyBAQCB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YXR0YWNoUHJpbWlu
Z1RyaW1zSWZOZWVkZWQoQ01TYW1wbGVCdWZmZXJSZWYgYgogICAgICAgICBBdWRpb0NvbnZlcnRl
clByaW1lSW5mbyBwcmltZUluZm8geyAwLCAwIH07CiAgICAgICAgIFVJbnQzMiBzaXplID0gc2l6
ZW9mKHByaW1lSW5mbyk7CiAKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRl
ckdldFByb3BlcnR5KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJQcmltZUluZm8s
ICZzaXplLCAmcHJpbWVJbmZvKSkgeworICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29u
dmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlclByaW1lSW5mbywg
JnNpemUsICZwcmltZUluZm8pKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZl
cnRlclByaW1lSW5mbyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQpAQCAtMjExLDI1ICsyMTUsMjUgQEAgUmV0YWluUHRyPE5TTnVtYmVyPiBB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KCkK
IHsKICAgICBVSW50MzIgZGVsYXlTaXplID0gc2l6ZW9mKHVpbnQzMl90KTsKICAgICB1aW50MzJf
dCBvcmlnaW5hbERlbGF5TW9kZSA9IDA7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZl
cnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVs
YXlNb2RlLCAmZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8g
ZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2Rl
Y1Byb3BlcnR5RGVsYXlNb2RlLCAmZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAgICB1aW50MzJf
dCBvcHRpbWFsRGVsYXlNb2RlID0ga0F1ZGlvQ29kZWNEZWxheU1vZGVfT3B0aW1hbDsKLSAgICBp
ZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0
KCksIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9wdGltYWxEZWxh
eU1vZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5
KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZv
cHRpbWFsRGVsYXlNb2RlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVy
dHlEZWxheU1vZGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7
CiAgICAgfQogCiAgICAgVUludDMyIHByaW1lU2l6ZSA9IHNpemVvZihBdWRpb0NvZGVjUHJpbWVJ
bmZvKTsKICAgICBBdWRpb0NvZGVjUHJpbWVJbmZvIHByaW1lSW5mbyB7IDAsIDAgfTsKLSAgICBp
ZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0
KCksIGtBdWRpb0NvZGVjUHJvcGVydHlQcmltZUluZm8sICZwcmltZVNpemUsICZwcmltZUluZm8p
KSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29u
dmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5UHJpbWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJ
bmZvKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlQcmltZUluZm8g
ZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0g
ICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVy
LmdldCgpLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcmlnaW5h
bERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJv
cGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6
ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVj
UHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVy
biBuaWw7CiAgICAgfQpAQCAtMjQyLDExICsyNDYsMTEgQEAgQ01TYW1wbGVCdWZmZXJSZWYgQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0cyhVSW50
MzIKICAgICBpZiAoIW1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbikgewogICAgICAgICBV
SW50MzIgY29va2llU2l6ZSA9IDA7CiAKLSAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29udmVy
dGVyR2V0UHJvcGVydHlJbmZvKG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJDb21w
cmVzc2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwgTlVMTCk7CisgICAgICAgIGF1dG8gZXJy
b3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbyhtX2NvbnZlcnRlciwga0F1ZGlvQ29u
dmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUsIE5VTEwpOwogICAgICAg
ICBpZiAoKGVycm9yID09IG5vRXJyKSAmJiAhIWNvb2tpZVNpemUpIHsKICAgICAgICAgICAgIGNv
b2tpZS5yZXNpemUoY29va2llU2l6ZSk7CiAKLSAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0g
QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29udmVy
dGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUsIGNvb2tpZS5kYXRhKCkpKSB7
CisgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHko
bV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29r
aWVTaXplLCBjb29raWUuZGF0YSgpKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1
ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gbmlsOwogICAgICAgICAgICAgfQpAQCAtNDM5LDcg
KzQ0Myw3IEBAIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxl
QnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKENNVGltZSBsCiAgICAgICAgIFVJbnQzMiBvdXRwdXRQ
YWNrZXRTaXplID0gbV9kZXN0aW5hdGlvbkZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQgPyBtX2Rlc3Rp
bmF0aW9uRm9ybWF0Lm1CeXRlc1BlclBhY2tldCA6IG1fbWF4T3V0cHV0UGFja2V0U2l6ZTsKICAg
ICAgICAgVUludDMyIG51bU91dHB1dFBhY2tldHMgPSAoVUludDMyKW1fZGVzdGluYXRpb25CdWZm
ZXIuY2FwYWNpdHkoKSAvIG91dHB1dFBhY2tldFNpemU7CiAKLSAgICAgICAgYXV0byBlcnJvciA9
IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIobV9jb252ZXJ0ZXIuZ2V0KCksIGF1ZGlv
Q29udmVydGVyQ29tcGxleElucHV0RGF0YVByb2MsIHRoaXMsICZudW1PdXRwdXRQYWNrZXRzLCAm
ZmlsbEJ1ZmZlckxpc3QsIG1fZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpKTsK
KyAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIobV9j
b252ZXJ0ZXIsIGF1ZGlvQ29udmVydGVyQ29tcGxleElucHV0RGF0YVByb2MsIHRoaXMsICZudW1P
dXRwdXRQYWNrZXRzLCAmZmlsbEJ1ZmZlckxpc3QsIG1fZGVzdGluYXRpb25QYWNrZXREZXNjcmlw
dGlvbnMuZGF0YSgpKTsKICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBBdWRp
b0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyQ29jb2EuaAppbmRleCBiN2E5ZDcxMjM4N2Q3MDQwYWZhNWI4Y2VhNjExYTRkY2U0
MzQ2NmE4Li4zZGExYjI5NWZjZjJlMzVhZDlhMzA2MWM2YWZmNjIxMTQ4MzIyNjZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApAQCAt
MTE0LDggKzExNCw4IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRp
b25SZWY+IG1fdmlkZW9Gb3JtYXREZXNjcmlwdGlvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Vmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBtX3ZpZGVvQ29tcHJlc3NvcjsKICAgICBSZXRhaW5Q
dHI8QVZBc3NldFdyaXRlcklucHV0PiBtX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dDsKLSAgICBDTVRp
bWUgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lOwotICAgIENNVGltZSBtX2xhc3RWaWRlb0Rl
Y29kaW5nVGltZTsKKyAgICBDTVRpbWUgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lIHsga0NN
VGltZUludmFsaWQgfTsKKyAgICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgeyBrQ01U
aW1lSW52YWxpZCB9OwogICAgIGJvb2wgbV9oYXNFbmNvZGVkVmlkZW9TYW1wbGVzIHsgZmFsc2Ug
fTsKIAogICAgIFJldGFpblB0cjxXZWJBVkFzc2V0V3JpdGVyRGVsZWdhdGU+IG1fd3JpdGVyRGVs
ZWdhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EubW0KaW5kZXggN2YzMDg3ZTAxZTBjMDFiNjc3ZWY0MzRlMTBiNjc5ZWRiNGE4ZTkwOS4u
NjhmMDI1NDExMzA5ZjNiMWFkZDc3ZjU0YzRhMjAxZWYwNTNiZGY4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtNDM1LDE2
ICs0MzUsMTggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6c3RvcFJlY29yZGlu
ZygpCiAgICAgbV9pc1N0b3BwaW5nID0gdHJ1ZTsKICAgICAvLyBXZSBob3AgdG8gdGhlIG1haW4g
dGhyZWFkIHNpbmNlIGZpbmlzaGluZyB0aGUgdmlkZW8gY29tcHJlc3NvciBtaWdodCB0cmlnZ2Vy
IHN0YXJ0aW5nIHRoZSB3cml0ZXIgYXN5bmNocm9ub3VzbHkuCiAgICAgY2FsbE9uTWFpblRocmVh
ZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oKSBtdXRhYmxlIHsKLSAgICAg
ICAgYXV0byB3aGVuRmluaXNoZWQgPSBbdGhpc10gewotICAgICAgICAgICAgbV9pc1N0b3BwaW5n
ID0gZmFsc2U7Ci0gICAgICAgICAgICBpZiAobV9mZXRjaERhdGFDb21wbGV0aW9uSGFuZGxlcikg
ewotICAgICAgICAgICAgICAgIGF1dG8gYnVmZmVyID0gV1RGTW92ZShtX2RhdGEpOwotICAgICAg
ICAgICAgICAgIG1fZmV0Y2hEYXRhQ29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShidWZmZXIpKTsK
LSAgICAgICAgICAgIH0KKyAgICAgICAgYXV0byB3aGVuRmluaXNoZWQgPSBbdGhpcywgd2Vha1Ro
aXNdIHsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgcmV0dXJu
OwogCisgICAgICAgICAgICBtX2lzU3RvcHBpbmcgPSBmYWxzZTsKICAgICAgICAgICAgIG1faXNT
dG9wcGVkID0gZmFsc2U7CiAgICAgICAgICAgICBtX2hhc1N0YXJ0ZWRXcml0aW5nID0gZmFsc2U7
Ci0gICAgICAgICAgICBjbGVhcigpOworCisgICAgICAgICAgICBpZiAobV93cml0ZXIpCisgICAg
ICAgICAgICAgICAgbV93cml0ZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIGlmIChtX2ZldGNoRGF0
YUNvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICAgICAgICAgIG1fZmV0Y2hEYXRhQ29tcGxldGlv
bkhhbmRsZXIoc3RkOjpleGNoYW5nZShtX2RhdGEsIG51bGxwdHIpKTsKICAgICAgICAgfTsKIAog
ICAgICAgICBpZiAoIW1faGFzU3RhcnRlZFdyaXRpbmcpIHsKQEAgLTQ2MSwxMiArNDYzLDggQEAg
dm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6c3RvcFJlY29yZGluZygpCiAgICAgICAg
ICAgICBbbV93cml0ZXIgZmx1c2hdOwogICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAKLSAgICAgICAgICAgIFttX3dyaXRlciBmaW5pc2hXcml0aW5nV2l0aENv
bXBsZXRpb25IYW5kbGVyOlt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB3aGVuRmluaXNo
ZWQgPSBXVEZNb3ZlKHdoZW5GaW5pc2hlZCldKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgd2hlbkZpbmlz
aGVkID0gV1RGTW92ZSh3aGVuRmluaXNoZWQpXSgpIG11dGFibGUgewotICAgICAgICAgICAgICAg
ICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgICAgICAgICB3aGVuRmluaXNoZWQoKTsKLSAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIFttX3dyaXRlciBmaW5pc2hXcml0aW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOlt3
aGVuRmluaXNoZWQgPSBXVEZNb3ZlKHdoZW5GaW5pc2hlZCldKCkgbXV0YWJsZSB7CisgICAgICAg
ICAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdoZW5GaW5pc2hlZCkpOwogICAgICAg
ICAgICAgfV07CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCAxODVhZDEyODExNTljNzdjZGE0MjIyZTdh
OTIwZGNhY2EwY2QwODQ5Li44OWEyYTc4NzY1MmUxNzIwNzFkYjAyZGZhNGE2YjIyZTI2NmMzZWM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQpA
QCAtNTYsNiArNTYsMTAgQEAgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpWaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IoQ01WaWRlb0NvZGVjVHlwZSBvdXRwdXQKIFZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiB7CiAgICAgZGlz
cGF0Y2hfcmVsZWFzZShtX3NlcmlhbERpc3BhdGNoUXVldWUpOworICAgIGlmIChtX3Z0U2Vzc2lv
bikgeworICAgICAgICBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92dFNlc3Npb24u
Z2V0KCkpOworICAgICAgICBtX3Z0U2Vzc2lvbiA9IG51bGxwdHI7CisgICAgfQogfQogCiBib29s
IFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJp
Z2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRl
LmgKaW5kZXggZTYyOWYzNWZjMzc4NzU4M2NiYzM5NDA3MjQ4NWI0MzhkY2VhNzg3Ni4uMTUyNWNj
YzA0YjIzMGRiYmI1ODNkOTdiMzNiYjczZjYwZDg4ZDM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKQEAg
LTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1Qcml2YXRl
PiBjcmVhdGUoUmVmPGNvbnN0IExvZ2dlcj4mJiwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+
JiYgYXVkaW9Tb3VyY2UsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHZpZGVvU291cmNl
KTsKICAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlKFJlZjxjb25zdCBM
b2dnZXI+JiYgbG9nZ2VyLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYgdHJh
Y2tzLCBTdHJpbmcmJiBpZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBNZWRpYVN0cmVhbVByaXZhdGUoV1RGTW92ZShsb2dnZXIpLCB0cmFja3Ms
IFdURk1vdmUoaWQpKSk7IH0KIAotICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtUHJpdmF0ZSgpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfk1lZGlhU3RyZWFtUHJpdmF0ZSgpOwogCiAgICAg
dm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2Jz
ZXJ2ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKaW5kZXggN2Y0YzY2ZDZhMjM2MmU1
MmU2YTA3NjRlNzg5ZjZkMjBlOTE2NzJjOS4uZGM1YjdiNjEyZjZkYzUwZDIyNDBjNGJkODg4ZWMy
MGFhZWNhNDI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKQEAgLTY0LDcgKzY0LDYg
QEAgdm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Y3JlYXRlUmVjb3JkZXIoTWVkaWFS
ZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmkKIAogdm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyTWFu
YWdlcjo6cmVsZWFzZVJlY29yZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
CiB7Ci0gICAgQVNTRVJUKG1fcmVjb3JkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKICAgICBt
X3JlY29yZGVycy5yZW1vdmUoaWRlbnRpZmllcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNw
cAppbmRleCBmNWFjMzE4MWY1MzkwYmVlZDJmNDBjMWYxYzI4MGFkNDQ0MmNkOTA2Li42NjhlNjc1
ZjkyOGZjNGI1ZThiN2FiNzdlYjgwNjFhYTdkM2M5Zjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUu
Y3BwCkBAIC00NSwxMiArNDUsMTcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIE1lZGlh
UmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGUm
IHN0cmVhbSkKICAgICA6IG1faWRlbnRpZmllcihNZWRpYVJlY29yZGVySWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKSkKKyAgICAsIG1fc3RyZWFtKG1ha2VSZWYoc3RyZWFtKSkKICAgICAsIG1fY29ubmVj
dGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKSkKK3sKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RhcnRS
ZWNvcmRpbmcoRXJyb3JDYWxsYmFjayYmIGVycm9yQ2FsbGJhY2spCiB7CiAgICAgLy8gRklYTUU6
IHdlIHdpbGwgbmVlZCB0byBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgYXVkaW8vdmlk
ZW8gdHJhY2tzCiAgICAgLy8gQ3VycmVudGx5IHdlIG9ubHkgY2hvb3NlIHRoZSBmaXJzdCB0cmFj
ayBhcyB0aGUgcmVjb3JkZWQgdHJhY2suCiAKLSAgICBhdXRvIHNlbGVjdGVkVHJhY2tzID0gTWVk
aWFSZWNvcmRlclByaXZhdGU6OnNlbGVjdFRyYWNrcyhzdHJlYW0pOworICAgIGF1dG8gc2VsZWN0
ZWRUcmFja3MgPSBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2VsZWN0VHJhY2tzKG1fc3RyZWFtKTsK
ICAgICBpZiAoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaykgewogICAgICAgICBtX3JpbmdCdWZm
ZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZT4odGhpcykpOwogICAgICAgICBtX3JlY29yZGVkQXVkaW9UcmFja0lEID0gc2Vs
ZWN0ZWRUcmFja3MuYXVkaW9UcmFjay0+aWQoKTsKQEAgLTY0LDE1ICs2OSwyMCBAQCBNZWRpYVJl
Y29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBz
dHJlYW0pCiAgICAgICAgIHdpZHRoID0gc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjay0+c2V0dGlu
Z3MoKS53aWR0aCgpOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Q3JlYXRlUmVjb3JkZXIg
eyBtX2lkZW50aWZpZXIsICEhc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaywgd2lkdGgsIGhlaWdo
dCB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgYXVkaW9UcmFjayA9IG1h
a2VSZWZQdHIoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjayksIHZpZGVvVHJhY2sgPSBtYWtlUmVm
UHRyKHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2spXShhdXRvJiYgZXhjZXB0aW9uKSB7Ci0gICAg
ICAgIGlmICghd2Vha1RoaXMpCisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpDcmVhdGVSZWNvcmRlciB7IG1f
aWRlbnRpZmllciwgISFzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLCB3aWR0aCwgaGVpZ2h0IH0s
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBhdWRpb1RyYWNrID0gbWFrZVJl
ZlB0cihzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrKSwgdmlkZW9UcmFjayA9IG1ha2VSZWZQdHIo
c2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjayksIGVycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9y
Q2FsbGJhY2spXShhdXRvJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFr
VGhpcykgeworICAgICAgICAgICAgZXJyb3JDYWxsYmFjayh7IH0pOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIGVy
cm9yQ2FsbGJhY2soRXhjZXB0aW9uIHsgZXhjZXB0aW9uLT5jb2RlLCBXVEZNb3ZlKGV4Y2VwdGlv
bi0+bWVzc2FnZSkgfSk7CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChleGNlcHRp
b24pCi0gICAgICAgICAgICByZXR1cm4gbV9lcnJvckNhbGxiYWNrKEV4Y2VwdGlvbiB7IGV4Y2Vw
dGlvbi0+Y29kZSwgV1RGTW92ZShleGNlcHRpb24tPm1lc3NhZ2UpIH0pOworICAgICAgICB9CiAg
ICAgICAgIGlmIChhdWRpb1RyYWNrKQogICAgICAgICAgICAgc2V0QXVkaW9Tb3VyY2UoJmF1ZGlv
VHJhY2stPnNvdXJjZSgpKTsKICAgICAgICAgaWYgKHZpZGVvVHJhY2spCiAgICAgICAgICAgICBz
ZXRWaWRlb1NvdXJjZSgmdmlkZW9UcmFjay0+c291cmNlKCkpOworICAgICAgICBlcnJvckNhbGxi
YWNrKHsgfSk7CiAgICAgfSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCmluZGV4IDNkN2Jl
ZTI5NjQzYzk5YjUxMGU3YjhhNGUwNTQwYjdlZTIwN2E1ZDMuLjUyNjdhYmFmZTM4ZGY1MzUyMmZi
YzVhZWY2MDI1MDM5ZDUxMWZiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaApAQCAtNTgsMTQgKzU4
LDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpN
ZWRpYVNhbXBsZSYpIGZpbmFsOwogICAgIHZvaWQgZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSk+JiYpIGZpbmFsOwogICAgIHZvaWQgc3RvcFJlY29yZGluZygpIGZpbmFsOworICAgIHZv
aWQgc3RhcnRSZWNvcmRpbmcoRXJyb3JDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFdlYkNvcmU6OlBs
YXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYs
IHNpemVfdCkgZmluYWw7CiAKICAgICAvLyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50
CiAgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqKTsKIAogICAgIE1lZGlhUmVj
b3JkZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKLQorICAgIFJlZjxNZWRpYVN0cmVhbVByaXZh
dGU+IG1fc3RyZWFtOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKwog
ICAgIFN0cmluZyBtX3JlY29yZGVkQXVkaW9UcmFja0lEOwogICAgIFN0cmluZyBtX3JlY29yZGVk
VmlkZW9UcmFja0lEOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGYyNWMwYTZmZmRmMzM2YWM3Nzg2YTQ0Nzk1ODIxZGY4
MGI4NDA0MS4uMTMzYmQ0MmMzZmI3ZWU0NzI4ZDA3ZWQ1YzMxMGUyZDlhZGEzNGNiOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIwLTA2LTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHN0b3BSZWNvcmRlcigpIHJldHVybnMgZW1w
dHkgQmxvYiBhZnRlciBmaXJzdCB1c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMjI3NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM2MDEyOTg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRw
L3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItbXVsdGlwbGUtc3RhcnQtc3RvcC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA2LTI2ICBL
YXJsIFJhY2tsZXIgIDxyYWNrbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgZXhwZWN0
YXRpb25zIGZvciBpbXBvcnRlZC93M2MvY2FudmFzLzJkLmdyYWRpZW50LmxpbmVhci50cmFuc2Zv
cm0uMS5odG1sIGFuZCBpbXBvcnRlZC93M2MvY2FudmFzLzJkLmdyYWRpZW50LmxpbmVhci50cmFu
c2Zvcm0uMi5odG1sIGFuZCBpbXBvcnRlZC93M2MvY2FudmFzLzJkLmdyYWRpZW50LmxpbmVhci50
cmFuc2Zvcm0uMy5odG1sIGFzIHRoZXkgYXJlIHBhc3NpbmcuIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLW11bHRpcGxlLXN0YXJ0
LXN0b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9N
ZWRpYVJlY29yZGVyLW11bHRpcGxlLXN0YXJ0LXN0b3AtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJmNDU0YzJiYzgxMTgyZDhmOWRkM2Q0MmVhYzc1OGY0Yzk1OGMxNTIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItbXVs
dGlwbGUtc3RhcnQtc3RvcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgTWFr
ZSBzdXJlIHRoYXQgTWVkaWFSZWNvcmRlciBjYW4gYmUgdXNlZCBhZnRlciBzdG9wcGluZyBpdCBv
bmNlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXItbXVsdGlwbGUtc3RhcnQtc3RvcC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLW11bHRpcGxlLXN0YXJ0LXN0b3AuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iOTE2NjUwOGMyMmNlYmY2ZTMwYWVlMTZkNWJhYTNkNmRmNDYwMjU3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyLW11bHRpcGxlLXN0YXJ0LXN0b3AuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPk1lZGlhUmVjb3JkZXIgRGF0YWF2
YWlsYWJsZTwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5n
aXRodWIuaW8vbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLmh0bWwjbWVkaWFyZWNv
cmRlciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMjAw
IiBoZWlnaHQ9IjIwMCI+Cis8L2NhbnZhcz4KKzxzY3JpcHQ+CisgICAgcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4geworICAgICAgICBjb25zdCB2aWRlbyA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURl
dmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW8gOiB0cnVlLCB2aWRlbyA6IHRydWUgfSk7CisgICAg
ICAgIGNvbnN0IHJlY29yZGVyID0gbmV3IE1lZGlhUmVjb3JkZXIodmlkZW8pOworCisgICAgICAg
IGFzc2VydF9lcXVhbHMocmVjb3JkZXIuc3RyZWFtLCB2aWRlbyk7CisKKyAgICAgICAgbGV0IHBy
b21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHJlY29yZGVyLm9u
ZGF0YWF2YWlsYWJsZSA9IHQuc3RlcF9mdW5jKGJsb2JFdmVudCA9PiB7CisgICAgICAgICAgICAg
ICAgaWYgKGJsb2JFdmVudC5kYXRhLnNpemUpCisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICByZWNvcmRlci5zdGFy
dCgpOworICAgICAgICBsZXQgdGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiByZWNvcmRlci5yZXF1
ZXN0RGF0YSgpLCAxMCk7CisgICAgICAgIGF3YWl0IHByb21pc2U7CisgICAgICAgIGNsZWFySW50
ZXJ2YWwodGltZXIpOworCisgICAgICAgIHJlY29yZGVyLnN0b3AoKTsKKworICAgICAgICBwcm9t
aXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICByZWNvcmRlci5vbmRh
dGFhdmFpbGFibGUgPSB0LnN0ZXBfZnVuYyhibG9iRXZlbnQgPT4geworICAgICAgICAgICAgICAg
IGlmIChibG9iRXZlbnQuZGF0YS5zaXplKQorICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcmVjb3JkZXIuc3RhcnQo
KTsKKyAgICAgICAgdGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiByZWNvcmRlci5yZXF1ZXN0RGF0
YSgpLCAxMCk7CisgICAgICAgIGF3YWl0IHByb21pc2U7CisgICAgICAgIGNsZWFySW50ZXJ2YWwo
dGltZXIpOworCisgICAgICAgIHJlY29yZGVyLnN0b3AoKTsKKyAgICB9LCAnTWFrZSBzdXJlIHRo
YXQgTWVkaWFSZWNvcmRlciBjYW4gYmUgdXNlZCBhZnRlciBzdG9wcGluZyBpdCBvbmNlJyk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402988</attachid>
            <date>2020-06-28 02:46:26 -0700</date>
            <delta_ts>2020-07-03 02:53:09 -0700</delta_ts>
            <desc>Patch for relanding</desc>
            <filename>bug-212274-20200628114625.patch</filename>
            <type>text/plain</type>
            <size>35206</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZiODc2YWIwOTU1NmNi
MTVhNGMzMGUyY2VhNDU5MGFhNTg4YmE2Yy4uZDc3MTgyYmMwYTE4NGY5Nzk1N2NlNTZkOGMwNzQ2
YzAzOTgxOGY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTA2LTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHN0
b3BSZWNvcmRlcigpIHJldHVybnMgZW1wdHkgQmxvYiBhZnRlciBmaXJzdCB1c2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjI3NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNjM2MDEyOTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgorCisgICAgICAgIFJlZmFjdG9yIGNvZGUgdG8gY3JlYXRlL2Rlc3Ryb3kgTWVkaWFSZWNv
cmRlclByaXZhdGUgb24gTWVkaWFSZWNvcmRlciBzdGFydC9zdG9wLgorICAgICAgICBUaGlzIGFs
bG93cyByZXVzaW5nIGEgTWVkaWFSZWNvcmRlciBhZnRlciBhIHN0b3AgYW5kIHJlc3RhcnRpbmcg
d2l0aCBhIGNsZWFuIHN0YXRlLgorCisgICAgICAgIFdlIGludHJvZHVjZSBNZWRpYVJlY29yZGVy
UHJpdmF0ZTo6c3RhcnRSZWNvcmRpbmcgdG8gZG8gdGhlIGluaXRpYWxpemF0aW9uLAorICAgICAg
ICB3aGljaCBhbGxvd3MgdG8gZml4IGEgcG90ZW50aWFsIHJlZiBjeWNsZSBhcyBwYXJ0IG9mIHRo
ZSBlcnJvciBjYWxsYmFjayBoYW5kbGluZy4KKworICAgICAgICBNYWtlIHNvbWUgaW1wcm92ZW1l
bnRzIHRvIHRoZSBwbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbiwgaW4gcGFydGljdWxhciBhZGQgZGVm
YXVsdCBpbml0aWFsaXphdGlvbiB0byBhbGwgZmllbGRzLgorICAgICAgICBBbGlnbiB0aGUgY29k
ZSB1c2luZyBBdWRpb0NvbnZlcnRlclJlZiB0byB3aGF0IGlzIGRvbmUgaW4gQXVkaW9TYW1wbGVE
YXRhU291cmNlLgorICAgICAgICBBbHNvIGNhbGwgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlk
YXRlIHdoZW4gZGVzdHJveWluZyB0aGUgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLgorCisg
ICAgICAgIFRlc3Q6IGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBs
ZS1zdGFydC1zdG9wLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpNZWRpYVJlY29yZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6OnN0YXJ0UmVjb3JkaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXI6OnN0b3BSZWNvcmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFSZWNvcmRlcjo6cmVxdWVzdERhdGEpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9N
ZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVNb2NrOjpmZXRjaERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXJQcml2YXRlOjpzdGFydFJlY29yZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YXR0
YWNoUHJpbWluZ1RyaW1zSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpncmFkdWFsRGVjb2RlclJlZnJlc2hDb3VudCk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnNhbXBsZUJ1ZmZlcldpdGhOdW1Q
YWNrZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
cHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OnN0b3BSZWNvcmRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yKToKKwogMjAyMC0wNi0yNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMRkNdW0lGQ10gUmVwbGFjZWQgaW5saW5lIGJveGVzIHNpdCBvbiB0aGUgYmFzZWxp
bmUgd2l0aCB0aGVpciBtYXJnaW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk5YzI1NGU5NzMwYWE4MTk2MGFmZGUy
Y2E2OWM0OTA1MDFmZDRlMzEuLjA0YjZjNDE5YTAxZTZmYTg0M2E0YTU4MDNmYjgzMWEyNWNhMzE1
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDYtMjggIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhUmVjb3JkZXIgc3RvcFJlY29yZGVy
KCkgcmV0dXJucyBlbXB0eSBCbG9iIGFmdGVyIGZpcnN0IHVzZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMjc0CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS82MzYwMTI5OD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAg
ICAgICAgVXBkYXRlIGltcGxlbWVudGF0aW9uIHRvIGRvIGluaXRpYWxpemF0aW9uIGFzIHBhcnQg
b2Ygc3RhcnRSZWNvcmRpbmcuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVN
ZWRpYVJlY29yZGVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVj
b3JkZXJNYW5hZ2VyOjpyZWxlYXNlUmVjb3JkZXIpOgorICAgICAgICBSZW1vdmUgQVNTRVJUIGFz
IHJlY29yZGVyIGNyZWF0aW9uIGluIFdlYlByb2Nlc3MgaXMgYWx3YXlzIG9rIHdoaWxlIGNyZWF0
aW9uIGluIEdQVVByb2Nlc3MgbWF5IGZhaWwgYW5kIG1fcmVjb3JkZXJzIG1heSBub3QgYmUgcG9w
dWxhdGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJp
dmF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpz
dGFydFJlY29yZGluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVj
b3JkZXJQcml2YXRlLmg6CisKIDIwMjAtMDYtMjcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmVydCByMjYyNjU0IGJlY2F1c2UgaXQgY2F1c2VkIDxyZGFy
Oi8vcHJvYmxlbS82NDY2NDE1Nj4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKaW5kZXggODU4MWQ1Y2Q3Yjc5MDNjODNm
ZDhkMTE1NGVhMTU2MWEzMmQ4M2JhZS4uMTliOTZjZTJjMmU0OGEzMDhiNWFmODM5NGY0NjM4Yzk4
YWNmMTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyLmNwcApAQCAtNTEsMTEgKzUxLDggQEAgRXhjZXB0aW9uT3I8UmVm
PE1lZGlhUmVjb3JkZXI+PiBNZWRpYVJlY29yZGVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
LCBSZWY8TWUKICAgICBhdXRvIHByaXZhdGVJbnN0YW5jZSA9IE1lZGlhUmVjb3JkZXI6OmNyZWF0
ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGRvY3VtZW50LCBzdHJlYW0tPnByaXZhdGVTdHJlYW0oKSk7
CiAgICAgaWYgKCFwcml2YXRlSW5zdGFuY2UpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBNZWRpYVJlY29yZGVyIGlzIHVuc3VwcG9ydGVkIG9uIHRo
aXMgcGxhdGZvcm0iX3MgfTsKLSAgICBhdXRvIHJlY29yZGVyID0gYWRvcHRSZWYoKm5ldyBNZWRp
YVJlY29yZGVyKGRvY3VtZW50LCBXVEZNb3ZlKHN0cmVhbSksIFdURk1vdmUocHJpdmF0ZUluc3Rh
bmNlKSwgV1RGTW92ZShvcHRpb25zKSkpOworICAgIGF1dG8gcmVjb3JkZXIgPSBhZG9wdFJlZigq
bmV3IE1lZGlhUmVjb3JkZXIoZG9jdW1lbnQsIFdURk1vdmUoc3RyZWFtKSwgV1RGTW92ZShvcHRp
b25zKSkpOwogICAgIHJlY29yZGVyLT5zdXNwZW5kSWZOZWVkZWQoKTsKLSAgICByZWNvcmRlci0+
bV9wcml2YXRlLT5zZXRFcnJvckNhbGxiYWNrKFtyZWNvcmRlcl0oYXV0byYmIGV4Y2VwdGlvbikg
bXV0YWJsZSB7Ci0gICAgICAgIHJlY29yZGVyLT5kaXNwYXRjaEVycm9yKFdURk1vdmUoKmV4Y2Vw
dGlvbikpOwotICAgIH0pOwogICAgIHJldHVybiByZWNvcmRlcjsKIH0KIApAQCAtODIsMTEgKzc5
LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRl
cjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoCiAjZW5kaWYKIH0KIAotTWVkaWFSZWNvcmRl
cjo6TWVkaWFSZWNvcmRlcihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYVN0cmVhbT4mJiBz
dHJlYW0sIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4mJiBwcml2YXRlSW1w
bCwgT3B0aW9ucyYmIG9wdGlvbikKK01lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIoRG9jdW1l
bnQmIGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3RyZWFtLCBPcHRpb25zJiYgb3B0aW9u
KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogICAgICwgbV9vcHRpb25zKFdURk1v
dmUob3B0aW9uKSkKICAgICAsIG1fc3RyZWFtKFdURk1vdmUoc3RyZWFtKSkKLSAgICAsIG1fcHJp
dmF0ZShXVEZNb3ZlKHByaXZhdGVJbXBsKSkKIHsKICAgICBtX3RyYWNrcyA9IFdURjo6bWFwKG1f
c3RyZWFtLT5nZXRUcmFja3MoKSwgW10gKGF1dG8mJiB0cmFjaykgLT4gUmVmPE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlPiB7CiAgICAgICAgIHJldHVybiB0cmFjay0+cHJpdmF0ZVRyYWNrKCk7CkBA
IC0xMzIsOSArMTI4LDI2IEBAIGNvbnN0IGNoYXIqIE1lZGlhUmVjb3JkZXI6OmFjdGl2ZURPTU9i
amVjdE5hbWUoKSBjb25zdAogRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFSZWNvcmRlcjo6c3RhcnRS
ZWNvcmRpbmcoT3B0aW9uYWw8aW50PiB0aW1lc2xpY2UpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHRp
bWVzbGljZSk7CisgICAgaWYgKCFtX2lzQWN0aXZlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgTWVkaWFSZWNvcmRlciBpcyBub3QgYWN0aXZlIl9z
IH07CisKICAgICBpZiAoc3RhdGUoKSAhPSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmUpCiAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlRoZSBNZWRpYVJlY29y
ZGVyJ3Mgc3RhdGUgbXVzdCBiZSBpbmFjdGl2ZSBpbiBvcmRlciB0byBzdGFydCByZWNvcmRpbmci
X3MgfTsKLSAgICAKKworICAgIEFTU0VSVCghbV9wcml2YXRlKTsKKyAgICBtX3ByaXZhdGUgPSBj
cmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSgqZG9jdW1lbnQoKSwgbV9zdHJlYW0tPnByaXZhdGVT
dHJlYW0oKSk7CisKKyAgICBpZiAoIW1fcHJpdmF0ZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIE1lZGlhUmVjb3JkZXIgaXMgdW5zdXBwb3J0ZWQg
b24gdGhpcyBwbGF0Zm9ybSJfcyB9OworCisgICAgbV9wcml2YXRlLT5zdGFydFJlY29yZGluZyhb
dGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKGF1dG8m
JiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIW1faXNBY3RpdmUgfHwgIWV4Y2Vw
dGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBzdG9wUmVjb3JkaW5nSW50ZXJu
YWwoKTsKKyAgICAgICAgZGlzcGF0Y2hFcnJvcihXVEZNb3ZlKCpleGNlcHRpb24pKTsKKyAgICB9
KTsKKwogICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrcykKICAgICAgICAgdHJhY2stPmFk
ZE9ic2VydmVyKCp0aGlzKTsKIApAQCAtMTQ2LDIyICsxNTksMTcgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZygpCiB7CiAgICAgaWYgKHN0YXRlKCkgPT0g
UmVjb3JkaW5nU3RhdGU6OkluYWN0aXZlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJUaGUgTWVkaWFSZWNvcmRlcidzIHN0YXRlIGNhbm5vdCBiZSBpbmFj
dGl2ZSJfcyB9OwotICAgIAotICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywg
VGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXNdIHsKLSAgICAgICAgaWYgKCFtX2lzQWN0aXZl
IHx8IHN0YXRlKCkgPT0gUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZlKQotICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIHN0b3BSZWNvcmRpbmdJbnRlcm5hbCgpOwotICAgICAgICBBU1NFUlQo
bV9zdGF0ZSA9PSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmUpOwotICAgICAgICBtX3ByaXZhdGUt
PmZldGNoRGF0YShbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgq
dGhpcyldKGF1dG8mJiBidWZmZXIsIGF1dG8mIG1pbWVUeXBlKSB7CisgICAgc3RvcFJlY29yZGlu
Z0ludGVybmFsKCk7CisgICAgYXV0byYgcHJpdmF0ZVJlY29yZGVyID0gKm1fcHJpdmF0ZTsKKyAg
ICBwcml2YXRlUmVjb3JkZXIuZmV0Y2hEYXRhKFt0aGlzLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtl
UGVuZGluZ0FjdGl2aXR5KCp0aGlzKSwgcHJpdmF0ZVJlY29yZGVyID0gV1RGTW92ZShtX3ByaXZh
dGUpXShhdXRvJiYgYnVmZmVyLCBhdXRvJiBtaW1lVHlwZSkgeworICAgICAgICBxdWV1ZVRhc2tL
ZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzLCBi
dWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlciksIG1pbWVUeXBlXSgpIG11dGFibGUgewogICAgICAgICAg
ICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAKICAgICAg
ICAgICAgIGRpc3BhdGNoRXZlbnQoQmxvYkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmRhdGFh
dmFpbGFibGVFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vLCBidWZmZXIgPyBCbG9iOjpjcmVhdGUoYnVmZmVyLnJlbGVhc2VOb25OdWxsKCksIG1pbWVU
eXBlKSA6IEJsb2I6OmNyZWF0ZSgpKSk7CiAKICAgICAgICAgICAgIGlmICghbV9pc0FjdGl2ZSkK
ICAgICAgICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywg
RXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xNzQs
MTAgKzE4MiwxMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVJlY29yZGVyOjpyZXF1ZXN0RGF0
YSgpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlRoZSBN
ZWRpYVJlY29yZGVyJ3Mgc3RhdGUgY2Fubm90IGJlIGluYWN0aXZlIl9zIH07CiAKICAgICBtX3By
aXZhdGUtPmZldGNoRGF0YShbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rp
dml0eSgqdGhpcyldKGF1dG8mJiBidWZmZXIsIGF1dG8mIG1pbWVUeXBlKSB7Ci0gICAgICAgIGlm
ICghbV9pc0FjdGl2ZSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgcXVldWVUYXNrS2Vl
cGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgYnVm
ZmVyID0gV1RGTW92ZShidWZmZXIpLCBtaW1lVHlwZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IGlmICghbV9pc0FjdGl2ZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgZGlz
cGF0Y2hFdmVudChCbG9iRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGF0YWF2YWlsYWJsZUV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8sIGJ1ZmZl
ciA/IEJsb2I6OmNyZWF0ZShidWZmZXIucmVsZWFzZU5vbk51bGwoKSwgbWltZVR5cGUpIDogQmxv
Yjo6Y3JlYXRlKCkpKTsKKyAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQoQmxvYkV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLmRhdGFhdmFpbGFibGVFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8s
IEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vLCBidWZmZXIgPyBCbG9iOjpjcmVhdGUoYnVmZmVyLnJl
bGVhc2VOb25OdWxsKCksIG1pbWVUeXBlKSA6IEJsb2I6OmNyZWF0ZSgpKSk7CisgICAgICAgIH0p
OwogICAgIH0pOwogICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaAppbmRleCAyZmQ5ZWE1ODZjOWMw
ZTExYzAwMTJhZmI1NjI2YjYzM2FjMjNlY2EwLi44ZjY2MzRjODQ5MDM5M2I4YTA3NzcyYTQyN2E1
Y2Q5YjJmN2M3ODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogICAgIE1l
ZGlhU3RyZWFtJiBzdHJlYW0oKSB7IHJldHVybiBtX3N0cmVhbS5nZXQoKTsgfQogCiBwcml2YXRl
OgotICAgIE1lZGlhUmVjb3JkZXIoRG9jdW1lbnQmLCBSZWY8TWVkaWFTdHJlYW0+JiYsIHN0ZDo6
dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4mJiwgT3B0aW9ucyYmID0geyB9KTsKKyAg
ICBNZWRpYVJlY29yZGVyKERvY3VtZW50JiwgUmVmPE1lZGlhU3RyZWFtPiYmLCBPcHRpb25zJiYg
PSB7IH0pOwogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0
ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQmLCBNZWRpYVN0cmVhbVByaXZh
dGUmKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaAppbmRleCA5ZWE4MWM4YjE4ZjljMTVj
NzhjNGY2MzVjYjA3NjJlNzA1OWZlMWI4Li4wNGJhNmIwODRhZDIzZjQzMzJlZDRmZWU1NDVmZWY4
MTQ1ZDRhNGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCkBAIC02MCwxNiArNjAsMTMgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBmZXRjaERhdGEoRmV0Y2hEYXRhQ2FsbGJhY2smJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wUmVjb3JkaW5nKCkgPSAwOwogCi0gICAgdXNpbmcg
RXJyb3JDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT47Ci0g
ICAgdm9pZCBzZXRFcnJvckNhbGxiYWNrKEVycm9yQ2FsbGJhY2smJiBlcnJvckNhbGxiYWNrKSB7
IG1fZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayk7IH0KKyAgICB1c2luZyBF
cnJvckNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+
JiYpPjsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRSZWNvcmRpbmcoRXJyb3JDYWxsYmFjayYmIGNh
bGxiYWNrKSB7IGNhbGxiYWNrKHsgfSk7IH0KIAogcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0QXVk
aW9Tb3VyY2UoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwogICAgIHZvaWQgc2V0Vmlk
ZW9Tb3VyY2UoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwogCi1wcm90ZWN0ZWQ6Ci0g
ICAgRXJyb3JDYWxsYmFjayBtX2Vycm9yQ2FsbGJhY2s7Ci0KIHByaXZhdGU6CiAgICAgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fYXVkaW9Tb3VyY2U7CiAgICAgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2U+IG1fdmlkZW9Tb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9j
ay5jcHAKaW5kZXggNmE1MjI4ODVkMmNkZjNhYzk2NGUwMWYzNGY1NzZjYjRjZjhiMWVhOC4uZTQ5
Y2MyODk2MmE5NTc5NDhiNGI1ZmNiY2UwNGMwN2VlMjQ4NGYyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlclByaXZhdGVNb2NrLmNwcApAQCAtODMsMTEgKzgzLDE1IEBAIHZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGVNb2NrOjpnZW5lcmF0ZU1vY2tDb3VudGVyU3RyaW5nKCkKIAogdm9pZCBNZWRpYVJl
Y29yZGVyUHJpdmF0ZU1vY2s6OmZldGNoRGF0YShGZXRjaERhdGFDYWxsYmFjayYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9idWZmZXJMb2NrKTsK
LSAgICBWZWN0b3I8dWludDhfdD4gdmFsdWUobV9idWZmZXIubGVuZ3RoKCkpOwotICAgIG1lbWNw
eSh2YWx1ZS5kYXRhKCksIG1fYnVmZmVyLmNoYXJhY3RlcnM4KCksIG1fYnVmZmVyLmxlbmd0aCgp
KTsKLSAgICBtX2J1ZmZlci5jbGVhcigpOwotICAgIGNvbXBsZXRpb25IYW5kbGVyKFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKSwgbWltZVR5cGUoKSk7CisgICAgUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gYnVmZmVyOworICAgIHsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayhtX2J1ZmZlckxvY2spOworICAgICAgICBWZWN0b3I8dWludDhfdD4gdmFsdWUobV9idWZmZXIu
bGVuZ3RoKCkpOworICAgICAgICBtZW1jcHkodmFsdWUuZGF0YSgpLCBtX2J1ZmZlci5jaGFyYWN0
ZXJzOCgpLCBtX2J1ZmZlci5sZW5ndGgoKSk7CisgICAgICAgIG1fYnVmZmVyLmNsZWFyKCk7Cisg
ICAgICAgIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKTsKKyAg
ICB9CisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShidWZmZXIpLCBtaW1lVHlwZSgpKTsK
IH0KIAogY29uc3QgU3RyaW5nJiBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6Om1pbWVUeXBlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oCmluZGV4IDAz
NWNjYTMyYzU1MGFhMjU3NTYyNWU0OTkyMTQ1NzlhM2RiMWQ3MzYuLjY1Mjg2NmRkZGI5ZjlmMDQ4
YWEwZjY3Yzg2OTEzMjE5MjlhYjExMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IuaApAQCAtNjAsMTMgKzYwLDEzIEBAIHByaXZhdGU6CiAgICAgT1NT
dGF0dXMgcHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMiosIEF1ZGlvQnVm
ZmVyTGlzdCosIEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qKik7CiAKICAgICBkaXNwYXRj
aF9xdWV1ZV90IG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZTsKLSAgICBDTVRpbWUgbV9sb3dXYXRlclRp
bWU7CisgICAgQ01UaW1lIG1fbG93V2F0ZXJUaW1lIHsga0NNVGltZUludmFsaWQgfTsKIAogICAg
IFJldGFpblB0cjxDTUJ1ZmZlclF1ZXVlUmVmPiBtX291dHB1dEJ1ZmZlclF1ZXVlOwogICAgIFJl
dGFpblB0cjxDTUJ1ZmZlclF1ZXVlUmVmPiBtX2lucHV0QnVmZmVyUXVldWU7CiAgICAgYm9vbCBt
X2lzRW5jb2RpbmcgeyBmYWxzZSB9OwogCi0gICAgUmV0YWluUHRyPEF1ZGlvQ29udmVydGVyUmVm
PiBtX2NvbnZlcnRlcjsKKyAgICBBdWRpb0NvbnZlcnRlclJlZiBtX2NvbnZlcnRlciB7IG51bGxw
dHIgfTsKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbV9zb3VyY2VGb3JtYXQ7CiAg
ICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG1fZGVzdGluYXRpb25Gb3JtYXQ7CiAgICAg
UmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IG1fZGVzdGluYXRpb25Gb3JtYXREZXNj
cmlwdGlvbjsKQEAgLTc0LDkgKzc0LDkgQEAgcHJpdmF0ZToKICAgICBVSW50MzIgbV9tYXhPdXRw
dXRQYWNrZXRTaXplIHsgMCB9OwogICAgIFZlY3RvcjxBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0
aW9uPiBtX2Rlc3RpbmF0aW9uUGFja2V0RGVzY3JpcHRpb25zOwogCi0gICAgQ01UaW1lIG1fY3Vy
cmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFtcDsKLSAgICBDTVRpbWUgbV9jdXJyZW50T3V0
cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wOwotICAgIENNVGltZSBtX3JlbWFpbmluZ1ByaW1lRHVy
YXRpb247CisgICAgQ01UaW1lIG1fY3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFtcCB7
IGtDTVRpbWVJbnZhbGlkIH07CisgICAgQ01UaW1lIG1fY3VycmVudE91dHB1dFByZXNlbnRhdGlv
blRpbWVTdGFtcCB7IGtDTVRpbWVJbnZhbGlkIH07CisgICAgQ01UaW1lIG1fcmVtYWluaW5nUHJp
bWVEdXJhdGlvbiB7IGtDTVRpbWVJbnZhbGlkIH07CiAKICAgICBWZWN0b3I8Y2hhcj4gbV9zb3Vy
Y2VCdWZmZXI7CiAgICAgVmVjdG9yPGNoYXI+IG1fZGVzdGluYXRpb25CdWZmZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCmluZGV4IGM5YmZmNjQx
ZDJjMjZmZWFhZmExZGNjN2JjM2FjMjE2OWRmNmU1YTUuLjZkMDRkOGMzYjc4MWI2ZjM4N2I3N2Q4
ZjllMTVmMmNkNDI5YTU5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yLm1tCkBAIC01OCw2ICs1OCwxMCBAQCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiBBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6On5BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQogewogICAgIGRpc3BhdGNo
X3JlbGVhc2UobV9zZXJpYWxEaXNwYXRjaFF1ZXVlKTsKKyAgICBpZiAobV9jb252ZXJ0ZXIpIHsK
KyAgICAgICAgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgbV9j
b252ZXJ0ZXIgPSBudWxscHRyOworICAgIH0KIH0KIAogYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFj
aywgdm9pZCogY2FsbGJhY2tPYmplY3QpCkBAIC0xMTIsMTkgKzExNiwxOSBAQCBib29sIEF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0
RGVzY3JpcHRpb24oQwogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBBdWRpb0NvbnZlcnRlck5ldyBmYWlsZWQgd2l0aCAl
ZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBtX2NvbnZlcnRl
ciA9IGFkb3B0Q0YoY29udmVydGVyKTsKKyAgICBtX2NvbnZlcnRlciA9IGNvbnZlcnRlcjsKIAog
ICAgIHNpemVfdCBjb29raWVTaXplID0gMDsKICAgICBjb25zdCB2b2lkICpjb29raWUgPSBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZShmb3JtYXREZXNjcmlwdGlvbiwgJmNv
b2tpZVNpemUpOwogICAgIGlmIChjb29raWVTaXplKSB7Ci0gICAgICAgIGlmIChhdXRvIGVycm9y
ID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29u
dmVydGVyRGVjb21wcmVzc2lvbk1hZ2ljQ29va2llLCAoVUludDMyKWNvb2tpZVNpemUsIGNvb2tp
ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5
KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUsIChV
SW50MzIpY29va2llU2l6ZSwgY29va2llKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVk
aW9Db252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUgZmFpbGVkIHdpdGggJWQiLCBlcnJv
cik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBz
aXplID0gc2l6ZW9mKG1fc291cmNlRm9ybWF0KTsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlv
Q29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlckN1
cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0KSkgewor
ICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ciwga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAm
bV9zb3VyY2VGb3JtYXQpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3Vy
cmVudElucHV0U3RyZWFtRGVzY3JpcHRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xMzUsNyArMTM5LDcgQEAgYm9vbCBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERl
c2NyaXB0aW9uKEMKICAgICB9CiAKICAgICBzaXplID0gc2l6ZW9mKG1fZGVzdGluYXRpb25Gb3Jt
YXQpOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2Nv
bnZlcnRlci5nZXQoKSwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0
aW9uLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3Ig
PSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJD
dXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1h
dCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3Ry
ZWFtRGVzY3JpcHRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CkBAIC0xNDksNyArMTUzLDcgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKEMK
ICAgICAgICAgICAgIG91dHB1dEJpdFJhdGUgPSAzMjAwMDsKIAogICAgICAgICBzaXplID0gc2l6
ZW9mKG91dHB1dEJpdFJhdGUpOwotICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVy
dGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlckVuY29kZUJp
dFJhdGUsIHNpemUsICZvdXRwdXRCaXRSYXRlKSkgeworICAgICAgICBpZiAoYXV0byBlcnJvciA9
IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVu
Y29kZUJpdFJhdGUsIHNpemUsICZvdXRwdXRCaXRSYXRlKSkgewogICAgICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0
dGluZyBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3Ip
OwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0xNTksNyArMTYzLDcg
QEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZv
clNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKEMKICAgICAgICAgLy8gSWYgdGhlIGRlc3RpbmF0aW9u
IGZvcm1hdCBpcyBWQlIsIHdlIG5lZWQgdG8gZ2V0IG1heCBzaXplIHBlciBwYWNrZXQgZnJvbSB0
aGUgY29udmVydGVyLgogICAgICAgICBzaXplID0gc2l6ZW9mKG1fbWF4T3V0cHV0UGFja2V0U2l6
ZSk7CiAKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5
KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQ
YWNrZXRTaXplLCAmc2l6ZSwgJm1fbWF4T3V0cHV0UGFja2V0U2l6ZSkpIHsKKyAgICAgICAgaWYg
KGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVk
aW9Db252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplLCAmc2l6ZSwgJm1fbWF4
T3V0cHV0UGFja2V0U2l6ZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlh
U3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVy
dGVyUHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMTg5LDcgKzE5Myw3
IEBAIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjphdHRhY2hQcmltaW5nVHJpbXNJ
Zk5lZWRlZChDTVNhbXBsZUJ1ZmZlclJlZiBiCiAgICAgICAgIEF1ZGlvQ29udmVydGVyUHJpbWVJ
bmZvIHByaW1lSW5mbyB7IDAsIDAgfTsKICAgICAgICAgVUludDMyIHNpemUgPSBzaXplb2YocHJp
bWVJbmZvKTsKIAotICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJv
cGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlclByaW1lSW5mbywgJnNpemUs
ICZwcmltZUluZm8pKSB7CisgICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJH
ZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyUHJpbWVJbmZvLCAmc2l6ZSwg
JnByaW1lSW5mbykpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyUHJp
bWVJbmZvIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CkBAIC0yMTEsMjUgKzIxNSwyNSBAQCBSZXRhaW5QdHI8TlNOdW1iZXI+IEF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z3JhZHVhbERlY29kZXJSZWZyZXNoQ291bnQoKQogewogICAg
IFVJbnQzMiBkZWxheVNpemUgPSBzaXplb2YodWludDMyX3QpOwogICAgIHVpbnQzMl90IG9yaWdp
bmFsRGVsYXlNb2RlID0gMDsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0
UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUs
ICZkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9
IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVy
dHlEZWxheU1vZGUsICZkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IgZ2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIHVpbnQzMl90IG9wdGlt
YWxEZWxheU1vZGUgPSBrQXVkaW9Db2RlY0RlbGF5TW9kZV9PcHRpbWFsOwotICAgIGlmIChhdXRv
IGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1
ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5TW9kZSkp
IHsKKyAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252
ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9wdGltYWxE
ZWxheU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5
TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9
CiAKICAgICBVSW50MzIgcHJpbWVTaXplID0gc2l6ZW9mKEF1ZGlvQ29kZWNQcmltZUluZm8pOwog
ICAgIEF1ZGlvQ29kZWNQcmltZUluZm8gcHJpbWVJbmZvIHsgMCwgMCB9OwotICAgIGlmIChhdXRv
IGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1
ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbywgJnByaW1lU2l6ZSwgJnByaW1lSW5mbykpIHsKKyAg
ICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIs
IGtBdWRpb0NvZGVjUHJvcGVydHlQcmltZUluZm8sICZwcmltZVNpemUsICZwcmltZUluZm8pKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbyBmYWlsZWQg
d2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKLSAgICBpZiAo
YXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCks
IGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlN
b2RlKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eSht
X2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3Jp
Z2luYWxEZWxheU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0
eURlbGF5TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsK
ICAgICB9CkBAIC0yNDIsMTEgKzI0NiwxMSBAQCBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OnNhbXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKFVJbnQzMgogICAg
IGlmICghbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uKSB7CiAgICAgICAgIFVJbnQzMiBj
b29raWVTaXplID0gMDsKIAotICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQ
cm9wZXJ0eUluZm8obV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9u
TWFnaWNDb29raWUsICZjb29raWVTaXplLCBOVUxMKTsKKyAgICAgICAgYXV0byBlcnJvciA9IEF1
ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZvKG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJD
b21wcmVzc2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwgTlVMTCk7CiAgICAgICAgIGlmICgo
ZXJyb3IgPT0gbm9FcnIpICYmICEhY29va2llU2l6ZSkgewogICAgICAgICAgICAgY29va2llLnJl
c2l6ZShjb29raWVTaXplKTsKIAotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0Nv
bnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJDb21w
cmVzc2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwgY29va2llLmRhdGEoKSkpIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZl
cnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUs
IGNvb2tpZS5kYXRhKCkpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252
ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2llIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBuaWw7CiAgICAgICAgICAgICB9CkBAIC00MzksNyArNDQzLDcg
QEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXJz
VW50aWxMb3dXYXRlclRpbWUoQ01UaW1lIGwKICAgICAgICAgVUludDMyIG91dHB1dFBhY2tldFNp
emUgPSBtX2Rlc3RpbmF0aW9uRm9ybWF0Lm1CeXRlc1BlclBhY2tldCA/IG1fZGVzdGluYXRpb25G
b3JtYXQubUJ5dGVzUGVyUGFja2V0IDogbV9tYXhPdXRwdXRQYWNrZXRTaXplOwogICAgICAgICBV
SW50MzIgbnVtT3V0cHV0UGFja2V0cyA9IChVSW50MzIpbV9kZXN0aW5hdGlvbkJ1ZmZlci5jYXBh
Y2l0eSgpIC8gb3V0cHV0UGFja2V0U2l6ZTsKIAotICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9D
b252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlci5nZXQoKSwgYXVkaW9Db252ZXJ0
ZXJDb21wbGV4SW5wdXREYXRhUHJvYywgdGhpcywgJm51bU91dHB1dFBhY2tldHMsICZmaWxsQnVm
ZmVyTGlzdCwgbV9kZXN0aW5hdGlvblBhY2tldERlc2NyaXB0aW9ucy5kYXRhKCkpOworICAgICAg
ICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlcihtX2NvbnZlcnRl
ciwgYXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJvYywgdGhpcywgJm51bU91dHB1dFBh
Y2tldHMsICZmaWxsQnVmZmVyTGlzdCwgbV9kZXN0aW5hdGlvblBhY2tldERlc2NyaXB0aW9ucy5k
YXRhKCkpOwogICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIEF1ZGlvQ29udmVy
dGVyRmlsbENvbXBsZXhCdWZmZXIgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXJDb2NvYS5oCmluZGV4IGI3YTlkNzEyMzg3ZDcwNDBhZmE1YjhjZWE2MTFhNGRjZTQzNDY2YTgu
LjNkYTFiMjk1ZmNmMmUzNWFkOWEzMDYxYzZhZmY2MjExNDgzMjI2NmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCkBAIC0xMTQsOCAr
MTE0LDggQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4g
bV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I+IG1fdmlkZW9Db21wcmVzc29yOwogICAgIFJldGFpblB0cjxBVkFz
c2V0V3JpdGVySW5wdXQ+IG1fdmlkZW9Bc3NldFdyaXRlcklucHV0OwotICAgIENNVGltZSBtX2xh
c3RWaWRlb1ByZXNlbnRhdGlvblRpbWU7Ci0gICAgQ01UaW1lIG1fbGFzdFZpZGVvRGVjb2RpbmdU
aW1lOworICAgIENNVGltZSBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRpbWUgeyBrQ01UaW1lSW52
YWxpZCB9OworICAgIENNVGltZSBtX2xhc3RWaWRlb0RlY29kaW5nVGltZSB7IGtDTVRpbWVJbnZh
bGlkIH07CiAgICAgYm9vbCBtX2hhc0VuY29kZWRWaWRlb1NhbXBsZXMgeyBmYWxzZSB9OwogCiAg
ICAgUmV0YWluUHRyPFdlYkFWQXNzZXRXcml0ZXJEZWxlZ2F0ZT4gbV93cml0ZXJEZWxlZ2F0ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5t
bQppbmRleCA3ZjMwODdlMDFlMGMwMWI2NzdlZjQzNGUxMGI2NzllZGI0YThlOTA5Li42OGYwMjU0
MTEzMDlmM2IxYWRkNzdmNTRjNGEyMDFlZjA1M2JkZjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9j
b2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC00MzUsMTYgKzQzNSwx
OCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdG9wUmVjb3JkaW5nKCkKICAg
ICBtX2lzU3RvcHBpbmcgPSB0cnVlOwogICAgIC8vIFdlIGhvcCB0byB0aGUgbWFpbiB0aHJlYWQg
c2luY2UgZmluaXNoaW5nIHRoZSB2aWRlbyBjb21wcmVzc29yIG1pZ2h0IHRyaWdnZXIgc3RhcnRp
bmcgdGhlIHdyaXRlciBhc3luY2hyb25vdXNseS4KICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSgpIG11dGFibGUgewotICAgICAgICBhdXRv
IHdoZW5GaW5pc2hlZCA9IFt0aGlzXSB7Ci0gICAgICAgICAgICBtX2lzU3RvcHBpbmcgPSBmYWxz
ZTsKLSAgICAgICAgICAgIGlmIChtX2ZldGNoRGF0YUNvbXBsZXRpb25IYW5kbGVyKSB7Ci0gICAg
ICAgICAgICAgICAgYXV0byBidWZmZXIgPSBXVEZNb3ZlKG1fZGF0YSk7Ci0gICAgICAgICAgICAg
ICAgbV9mZXRjaERhdGFDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGJ1ZmZlcikpOwotICAgICAg
ICAgICAgfQorICAgICAgICBhdXRvIHdoZW5GaW5pc2hlZCA9IFt0aGlzLCB3ZWFrVGhpc10gewor
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKKyAg
ICAgICAgICAgIG1faXNTdG9wcGluZyA9IGZhbHNlOwogICAgICAgICAgICAgbV9pc1N0b3BwZWQg
PSBmYWxzZTsKICAgICAgICAgICAgIG1faGFzU3RhcnRlZFdyaXRpbmcgPSBmYWxzZTsKLSAgICAg
ICAgICAgIGNsZWFyKCk7CisKKyAgICAgICAgICAgIGlmIChtX3dyaXRlcikKKyAgICAgICAgICAg
ICAgICBtX3dyaXRlci5jbGVhcigpOworICAgICAgICAgICAgaWYgKG1fZmV0Y2hEYXRhQ29tcGxl
dGlvbkhhbmRsZXIpCisgICAgICAgICAgICAgICAgbV9mZXRjaERhdGFDb21wbGV0aW9uSGFuZGxl
cihzdGQ6OmV4Y2hhbmdlKG1fZGF0YSwgbnVsbHB0cikpOwogICAgICAgICB9OwogCiAgICAgICAg
IGlmICghbV9oYXNTdGFydGVkV3JpdGluZykgewpAQCAtNDYxLDEyICs0NjMsOCBAQCB2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdG9wUmVjb3JkaW5nKCkKICAgICAgICAgICAgIFtt
X3dyaXRlciBmbHVzaF07CiAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIAotICAgICAgICAgICAgW21fd3JpdGVyIGZpbmlzaFdyaXRpbmdXaXRoQ29tcGxldGlv
bkhhbmRsZXI6W3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIHdoZW5GaW5pc2hlZCA9IFdU
Rk1vdmUod2hlbkZpbmlzaGVkKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB3aGVuRmluaXNoZWQgPSBX
VEZNb3ZlKHdoZW5GaW5pc2hlZCldKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlm
ICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICAgICAgICAgIHdoZW5GaW5pc2hlZCgpOwotICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgW21fd3JpdGVyIGZpbmlzaFdyaXRpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6W3doZW5GaW5p
c2hlZCA9IFdURk1vdmUod2hlbkZpbmlzaGVkKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod2hlbkZpbmlzaGVkKSk7CiAgICAgICAgICAgICB9
XTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yLm1tCmluZGV4IDE4NWFkMTI4MTE1OWM3N2NkYTQyMjJlN2E5MjBkY2Fj
YTBjZDA4NDkuLjg5YTJhNzg3NjUyZTE3MjA3MWRiMDJkZmE0YTZiMjJlMjY2YzNlYzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCkBAIC01Niw2
ICs1NiwxMCBAQCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OlZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvcihDTVZpZGVvQ29kZWNUeXBlIG91dHB1dAogVmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjp+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBkaXNwYXRjaF9y
ZWxlYXNlKG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZSk7CisgICAgaWYgKG1fdnRTZXNzaW9uKSB7Cisg
ICAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZShtX3Z0U2Vzc2lvbi5nZXQoKSk7
CisgICAgICAgIG1fdnRTZXNzaW9uID0gbnVsbHB0cjsKKyAgICB9CiB9CiAKIGJvb2wgVmlkZW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0aWFsaXplKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2Fs
bGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAppbmRl
eCBlNjI5ZjM1ZmMzNzg3NTgzY2JjMzk0MDcyNDg1YjQzOGRjZWE3ODc2Li4xNTI1Y2NjMDRiMjMw
ZGJiYjU4M2Q5N2IzM2JiNzNmNjBkODhkMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAtNzMsNyAr
NzMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0
ZShSZWY8Y29uc3QgTG9nZ2VyPiYmLCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBhdWRp
b1NvdXJjZSwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgdmlkZW9Tb3VyY2UpOwogICAg
IHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1Qcml2YXRlPiBjcmVhdGUoUmVmPGNvbnN0IExvZ2dlcj4m
JiBsb2dnZXIsIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yJiB0cmFja3MsIFN0
cmluZyYmIGlkID0gY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IE1lZGlhU3RyZWFtUHJpdmF0ZShXVEZNb3ZlKGxvZ2dlciksIHRyYWNrcywgV1RGTW92
ZShpZCkpKTsgfQogCi0gICAgdmlydHVhbCB+TWVkaWFTdHJlYW1Qcml2YXRlKCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB+TWVkaWFTdHJlYW1Qcml2YXRlKCk7CiAKICAgICB2b2lkIGFk
ZE9ic2VydmVyKE9ic2VydmVyJik7CiAgICAgdm9pZCByZW1vdmVPYnNlcnZlcihPYnNlcnZlciYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmNwcAppbmRleCA3ZjRjNjZkNmEyMzYyZTUyZTZhMDc2
NGU3ODlmNmQyMGU5MTY3MmM5Li5kYzViN2I2MTJmNmRjNTBkMjI0MGM0YmQ4ODhlYzIwYWFlY2E0
Mjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1l
ZGlhUmVjb3JkZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmNwcApAQCAtNjQsNyArNjQsNiBAQCB2b2lk
IFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpjcmVhdGVSZWNvcmRlcihNZWRpYVJlY29yZGVy
SWRlbnRpZmllciBpZGVudGlmaQogCiB2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpy
ZWxlYXNlUmVjb3JkZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAg
ICBBU1NFUlQobV9yZWNvcmRlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOwogICAgIG1fcmVjb3Jk
ZXJzLnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCmluZGV4
IGY1YWMzMTgxZjUzOTBiZWVkMmY0MGMxZjFjMjgwYWQ0NDQyY2Q5MDYuLjY2OGU2NzVmOTI4ZmM0
YjVlOGI3YWI3N2ViODA2MWFhN2QzYzlmNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKQEAg
LTQ1LDEyICs0NSwxNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogTWVkaWFSZWNvcmRl
clByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFt
KQogICAgIDogbV9pZGVudGlmaWVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgp
KQorICAgICwgbV9zdHJlYW0obWFrZVJlZihzdHJlYW0pKQogICAgICwgbV9jb25uZWN0aW9uKFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpKQoreworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdGFydFJlY29yZGlu
ZyhFcnJvckNhbGxiYWNrJiYgZXJyb3JDYWxsYmFjaykKIHsKICAgICAvLyBGSVhNRTogd2Ugd2ls
bCBuZWVkIHRvIGltcGxlbWVudCBzdXBwb3J0IGZvciBtdWx0aXBsZSBhdWRpby92aWRlbyB0cmFj
a3MKICAgICAvLyBDdXJyZW50bHkgd2Ugb25seSBjaG9vc2UgdGhlIGZpcnN0IHRyYWNrIGFzIHRo
ZSByZWNvcmRlZCB0cmFjay4KIAotICAgIGF1dG8gc2VsZWN0ZWRUcmFja3MgPSBNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6c2VsZWN0VHJhY2tzKHN0cmVhbSk7CisgICAgYXV0byBzZWxlY3RlZFRyYWNr
cyA9IE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzZWxlY3RUcmFja3MobV9zdHJlYW0pOwogICAgIGlm
IChzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrKSB7CiAgICAgICAgIG1fcmluZ0J1ZmZlciA9IG1h
a2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlPih0aGlzKSk7CiAgICAgICAgIG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQgPSBzZWxlY3RlZFRy
YWNrcy5hdWRpb1RyYWNrLT5pZCgpOwpAQCAtNjQsMTUgKzY5LDIwIEBAIE1lZGlhUmVjb3JkZXJQ
cml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkK
ICAgICAgICAgd2lkdGggPSBzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrLT5zZXR0aW5ncygpLndp
ZHRoKCk7CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpDcmVhdGVSZWNvcmRlciB7IG1faWRl
bnRpZmllciwgISFzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLCB3aWR0aCwgaGVpZ2h0IH0sIFt0
aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBhdWRpb1RyYWNrID0gbWFrZVJlZlB0
cihzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrKSwgdmlkZW9UcmFjayA9IG1ha2VSZWZQdHIoc2Vs
ZWN0ZWRUcmFja3MudmlkZW9UcmFjayldKGF1dG8mJiBleGNlcHRpb24pIHsKLSAgICAgICAgaWYg
KCF3ZWFrVGhpcykKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6OkNyZWF0ZVJlY29yZGVyIHsgbV9pZGVudGlm
aWVyLCAhIXNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2ssIHdpZHRoLCBoZWlnaHQgfSwgW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGF1ZGlvVHJhY2sgPSBtYWtlUmVmUHRyKHNl
bGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2spLCB2aWRlb1RyYWNrID0gbWFrZVJlZlB0cihzZWxlY3Rl
ZFRyYWNrcy52aWRlb1RyYWNrKSwgZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFj
ayldKGF1dG8mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7
CisgICAgICAgICAgICBlcnJvckNhbGxiYWNrKHsgfSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgZXJyb3JDYWxs
YmFjayhFeGNlcHRpb24geyBleGNlcHRpb24tPmNvZGUsIFdURk1vdmUoZXhjZXB0aW9uLT5tZXNz
YWdlKSB9KTsKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGV4Y2VwdGlvbikKLSAg
ICAgICAgICAgIHJldHVybiBtX2Vycm9yQ2FsbGJhY2soRXhjZXB0aW9uIHsgZXhjZXB0aW9uLT5j
b2RlLCBXVEZNb3ZlKGV4Y2VwdGlvbi0+bWVzc2FnZSkgfSk7CisgICAgICAgIH0KICAgICAgICAg
aWYgKGF1ZGlvVHJhY2spCiAgICAgICAgICAgICBzZXRBdWRpb1NvdXJjZSgmYXVkaW9UcmFjay0+
c291cmNlKCkpOwogICAgICAgICBpZiAodmlkZW9UcmFjaykKICAgICAgICAgICAgIHNldFZpZGVv
U291cmNlKCZ2aWRlb1RyYWNrLT5zb3VyY2UoKSk7CisgICAgICAgIGVycm9yQ2FsbGJhY2soeyB9
KTsKICAgICB9LCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKaW5kZXggM2Q3YmVlMjk2NDNj
OTliNTEwZTdiOGE0ZTA1NDBiN2VlMjA3YTVkMy4uNTI2N2FiYWZlMzhkZjUzNTIyZmJjNWFlZjYw
MjUwMzlkNTExZmJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCkBAIC01OCwxNCArNTgsMTYgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlJikgZmluYWw7CiAgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChS
ZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4m
JikgZmluYWw7CiAgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCkgZmluYWw7CisgICAgdm9pZCBzdGFy
dFJlY29yZGluZyhFcnJvckNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgYXVkaW9TYW1wbGVz
QXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1B
dWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90
KSBmaW5hbDsKIAogICAgIC8vIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKICAgICB2
b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSopOwogCiAgICAgTWVkaWFSZWNvcmRlcklk
ZW50aWZpZXIgbV9pZGVudGlmaWVyOwotCisgICAgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gbV9z
dHJlYW07CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworCiAgICAgU3Ry
aW5nIG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQ7CiAgICAgU3RyaW5nIG1fcmVjb3JkZWRWaWRlb1Ry
YWNrSUQ7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBiYTk2ODkzOTMwYzYyNzA3ZTI2MzY4OTE1NjIzZWZhZWM2OTUxNjk2
Li42MTk2ZTI1NTljMjZmZTVlMDNiNmViMzkyYmNhZmI3ZDI3ODI4MjcyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMjAtMDYtMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIE1lZGlhUmVjb3JkZXIgc3RvcFJlY29yZGVyKCkgcmV0dXJucyBlbXB0eSBCbG9i
IGFmdGVyIGZpcnN0IHVzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjEyMjc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzYwMTI5OD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBodHRwL3dwdC9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXItbXVsdGlwbGUtc3RhcnQtc3RvcC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1t
dWx0aXBsZS1zdGFydC1zdG9wLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA2LTI3ICBaYWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBSZXBsYWNlZCBpbmxp
bmUgYm94ZXMgc2l0IG9uIHRoZSBiYXNlbGluZSB3aXRoIHRoZWlyIG1hcmdpbnMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0
aXBsZS1zdGFydC1zdG9wLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yZjQ1NGMyYmM4MTE4MmQ4ZjlkZDNkNDJlYWM3NThmNGM5NThjMTUyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyLW11bHRpcGxlLXN0YXJ0LXN0b3AtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIE1ha2Ugc3VyZSB0aGF0IE1lZGlhUmVjb3JkZXIgY2FuIGJlIHVzZWQgYWZ0ZXIgc3Rv
cHBpbmcgaXQgb25jZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLW11bHRpcGxlLXN0YXJ0LXN0b3AuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBsZS1zdGFydC1z
dG9wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjkxNjY1MDhjMjJjZWJmNmUzMGFlZTE2ZDViYWEzZDZkZjQ2
MDI1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLmh0bWwKQEAgLTAsMCArMSw0OSBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5NZWRpYVJlY29y
ZGVyIERhdGFhdmFpbGFibGU8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci5odG1s
I21lZGlhcmVjb3JkZXIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIg
d2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiPgorPC9jYW52YXM+Cis8c2NyaXB0PgorICAgIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgICAgY29uc3QgdmlkZW8gPSBhd2FpdCBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvIDogdHJ1ZSwgdmlkZW8gOiB0cnVl
IH0pOworICAgICAgICBjb25zdCByZWNvcmRlciA9IG5ldyBNZWRpYVJlY29yZGVyKHZpZGVvKTsK
KworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZGVyLnN0cmVhbSwgdmlkZW8pOworCisgICAg
ICAgIGxldCBwcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICBy
ZWNvcmRlci5vbmRhdGFhdmFpbGFibGUgPSB0LnN0ZXBfZnVuYyhibG9iRXZlbnQgPT4geworICAg
ICAgICAgICAgICAgIGlmIChibG9iRXZlbnQuZGF0YS5zaXplKQorICAgICAgICAgICAgICAgICAg
ICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcmVj
b3JkZXIuc3RhcnQoKTsKKyAgICAgICAgbGV0IHRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gcmVj
b3JkZXIucmVxdWVzdERhdGEoKSwgMTApOworICAgICAgICBhd2FpdCBwcm9taXNlOworICAgICAg
ICBjbGVhckludGVydmFsKHRpbWVyKTsKKworICAgICAgICByZWNvcmRlci5zdG9wKCk7CisKKyAg
ICAgICAgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgcmVj
b3JkZXIub25kYXRhYXZhaWxhYmxlID0gdC5zdGVwX2Z1bmMoYmxvYkV2ZW50ID0+IHsKKyAgICAg
ICAgICAgICAgICBpZiAoYmxvYkV2ZW50LmRhdGEuc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIHJlY29y
ZGVyLnN0YXJ0KCk7CisgICAgICAgIHRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gcmVjb3JkZXIu
cmVxdWVzdERhdGEoKSwgMTApOworICAgICAgICBhd2FpdCBwcm9taXNlOworICAgICAgICBjbGVh
ckludGVydmFsKHRpbWVyKTsKKworICAgICAgICByZWNvcmRlci5zdG9wKCk7CisgICAgfSwgJ01h
a2Ugc3VyZSB0aGF0IE1lZGlhUmVjb3JkZXIgY2FuIGJlIHVzZWQgYWZ0ZXIgc3RvcHBpbmcgaXQg
b25jZScpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403447</attachid>
            <date>2020-07-03 02:53:13 -0700</date>
            <delta_ts>2020-07-03 05:01:48 -0700</delta_ts>
            <desc>Patch for relanding</desc>
            <filename>bug-212274-20200703115311.patch</filename>
            <type>text/plain</type>
            <size>35231</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjk5MGExNmViNzlmZTQ0
ZDNlZTMwZjg3MDVmNDZkNDRlYWIzYmQ1Ni4uYTgxOWZmNjUxZDMwMWU3NWM0MDNmNzk2MTliZjgz
ZmUxOTQ2Zjc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTA3LTAzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHN0
b3BSZWNvcmRlcigpIHJldHVybnMgZW1wdHkgQmxvYiBhZnRlciBmaXJzdCB1c2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjI3NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNjM2MDEyOTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgorCisgICAgICAgIFJlZmFjdG9yIGNvZGUgdG8gY3JlYXRlL2Rlc3Ryb3kgTWVkaWFSZWNv
cmRlclByaXZhdGUgb24gTWVkaWFSZWNvcmRlciBzdGFydC9zdG9wLgorICAgICAgICBUaGlzIGFs
bG93cyByZXVzaW5nIGEgTWVkaWFSZWNvcmRlciBhZnRlciBhIHN0b3AgYW5kIHJlc3RhcnRpbmcg
d2l0aCBhIGNsZWFuIHN0YXRlLgorCisgICAgICAgIFdlIGludHJvZHVjZSBNZWRpYVJlY29yZGVy
UHJpdmF0ZTo6c3RhcnRSZWNvcmRpbmcgdG8gZG8gdGhlIGluaXRpYWxpemF0aW9uLAorICAgICAg
ICB3aGljaCBhbGxvd3MgdG8gZml4IGEgcG90ZW50aWFsIHJlZiBjeWNsZSBhcyBwYXJ0IG9mIHRo
ZSBlcnJvciBjYWxsYmFjayBoYW5kbGluZy4KKworICAgICAgICBNYWtlIHNvbWUgaW1wcm92ZW1l
bnRzIHRvIHRoZSBwbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbiwgaW4gcGFydGljdWxhciBhZGQgZGVm
YXVsdCBpbml0aWFsaXphdGlvbiB0byBhbGwgZmllbGRzLgorICAgICAgICBBbGlnbiB0aGUgY29k
ZSB1c2luZyBBdWRpb0NvbnZlcnRlclJlZiB0byB3aGF0IGlzIGRvbmUgaW4gQXVkaW9TYW1wbGVE
YXRhU291cmNlLgorICAgICAgICBBbHNvIGNhbGwgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlk
YXRlIHdoZW4gZGVzdHJveWluZyB0aGUgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLgorCisg
ICAgICAgIFRlc3Q6IGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBs
ZS1zdGFydC1zdG9wLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpNZWRpYVJlY29yZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6OnN0YXJ0UmVjb3JkaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXI6OnN0b3BSZWNvcmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFSZWNvcmRlcjo6cmVxdWVzdERhdGEpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9N
ZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVNb2NrOjpmZXRjaERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXJQcml2YXRlOjpzdGFydFJlY29yZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YXR0
YWNoUHJpbWluZ1RyaW1zSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpncmFkdWFsRGVjb2RlclJlZnJlc2hDb3VudCk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnNhbXBsZUJ1ZmZlcldpdGhOdW1Q
YWNrZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
cHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OnN0b3BSZWNvcmRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yKToKKwogMjAyMC0wNy0wMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0dUSzRdIEVuYWJsZSB0aHJlYWRlZCByZW5kZXJpbmcgYnkgZGVm
YXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBjMDJiMTJkNDJhYzc5NmFlY2Q0YWZkNmI0MTZlNDZiYjIyZTQwOTJm
Li4zMTA4ZjBhMDYzMTVhYTEyZWM1MzMzNzQ4OWVlMThlNzgwMzgwMzViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDIwLTA3LTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHN0b3BSZWNvcmRlcigpIHJldHVybnMgZW1wdHkg
QmxvYiBhZnRlciBmaXJzdCB1c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMjI3NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM2MDEyOTg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFVwZGF0ZSBpbXBs
ZW1lbnRhdGlvbiB0byBkbyBpbml0aWFsaXphdGlvbiBhcyBwYXJ0IG9mIHN0YXJ0UmVjb3JkaW5n
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6cmVs
ZWFzZVJlY29yZGVyKToKKyAgICAgICAgUmVtb3ZlIEFTU0VSVCBhcyByZWNvcmRlciBjcmVhdGlv
biBpbiBXZWJQcm9jZXNzIGlzIGFsd2F5cyBvayB3aGlsZSBjcmVhdGlvbiBpbiBHUFVQcm9jZXNz
IG1heSBmYWlsIGFuZCBtX3JlY29yZGVycyBtYXkgbm90IGJlIHBvcHVsYXRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RhcnRSZWNvcmRpbmcpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oOgor
CiAyMDIwLTA3LTAzICBBbGV4YW5kZXIgTWlraGF5bGVua28gIDxhbGV4bUBnbm9tZS5vcmc+CiAK
ICAgICAgICAgW0dUSzRdIFN1cHBvcnQga2luZXRpYyBzY3JvbGxpbmcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAppbmRl
eCA4NTgxZDVjZDdiNzkwM2M4M2ZkOGQxMTU0ZWExNTYxYTMyZDgzYmFlLi4xOWI5NmNlMmMyZTQ4
YTMwOGI1YWY4Mzk0ZjQ2MzhjOThhY2YxN2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCkBAIC01MSwxMSArNTEs
OCBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFSZWNvcmRlcj4+IE1lZGlhUmVjb3JkZXI6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZQogICAgIGF1dG8gcHJpdmF0ZUluc3RhbmNlID0g
TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoZG9jdW1lbnQsIHN0cmVh
bS0+cHJpdmF0ZVN0cmVhbSgpKTsKICAgICBpZiAoIXByaXZhdGVJbnN0YW5jZSkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIE1lZGlhUmVjb3JkZXIg
aXMgdW5zdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybSJfcyB9OwotICAgIGF1dG8gcmVjb3JkZXIg
PSBhZG9wdFJlZigqbmV3IE1lZGlhUmVjb3JkZXIoZG9jdW1lbnQsIFdURk1vdmUoc3RyZWFtKSwg
V1RGTW92ZShwcml2YXRlSW5zdGFuY2UpLCBXVEZNb3ZlKG9wdGlvbnMpKSk7CisgICAgYXV0byBy
ZWNvcmRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNvcmRlcihkb2N1bWVudCwgV1RGTW92ZShz
dHJlYW0pLCBXVEZNb3ZlKG9wdGlvbnMpKSk7CiAgICAgcmVjb3JkZXItPnN1c3BlbmRJZk5lZWRl
ZCgpOwotICAgIHJlY29yZGVyLT5tX3ByaXZhdGUtPnNldEVycm9yQ2FsbGJhY2soW3JlY29yZGVy
XShhdXRvJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKLSAgICAgICAgcmVjb3JkZXItPmRpc3BhdGNo
RXJyb3IoV1RGTW92ZSgqZXhjZXB0aW9uKSk7Ci0gICAgfSk7CiAgICAgcmV0dXJuIHJlY29yZGVy
OwogfQogCkBAIC04MiwxMSArNzksMTAgQEAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQ
cml2YXRlPiBNZWRpYVJlY29yZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSgKICNlbmRp
ZgogfQogCi1NZWRpYVJlY29yZGVyOjpNZWRpYVJlY29yZGVyKERvY3VtZW50JiBkb2N1bWVudCwg
UmVmPE1lZGlhU3RyZWFtPiYmIHN0cmVhbSwgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQ
cml2YXRlPiYmIHByaXZhdGVJbXBsLCBPcHRpb25zJiYgb3B0aW9uKQorTWVkaWFSZWNvcmRlcjo6
TWVkaWFSZWNvcmRlcihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYVN0cmVhbT4mJiBzdHJl
YW0sIE9wdGlvbnMmJiBvcHRpb24pCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCiAg
ICAgLCBtX29wdGlvbnMoV1RGTW92ZShvcHRpb24pKQogICAgICwgbV9zdHJlYW0oV1RGTW92ZShz
dHJlYW0pKQotICAgICwgbV9wcml2YXRlKFdURk1vdmUocHJpdmF0ZUltcGwpKQogewogICAgIG1f
dHJhY2tzID0gV1RGOjptYXAobV9zdHJlYW0tPmdldFRyYWNrcygpLCBbXSAoYXV0byYmIHRyYWNr
KSAtPiBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IHsKICAgICAgICAgcmV0dXJuIHRyYWNr
LT5wcml2YXRlVHJhY2soKTsKQEAgLTEzMiw5ICsxMjgsMjYgQEAgY29uc3QgY2hhciogTWVkaWFS
ZWNvcmRlcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiBFeGNlcHRpb25Pcjx2b2lkPiBN
ZWRpYVJlY29yZGVyOjpzdGFydFJlY29yZGluZyhPcHRpb25hbDxpbnQ+IHRpbWVzbGljZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0odGltZXNsaWNlKTsKKyAgICBpZiAoIW1faXNBY3RpdmUpCisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlRoZSBNZWRpYVJlY29y
ZGVyIGlzIG5vdCBhY3RpdmUiX3MgfTsKKwogICAgIGlmIChzdGF0ZSgpICE9IFJlY29yZGluZ1N0
YXRlOjpJbmFjdGl2ZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiVGhlIE1lZGlhUmVjb3JkZXIncyBzdGF0ZSBtdXN0IGJlIGluYWN0aXZlIGluIG9yZGVy
IHRvIHN0YXJ0IHJlY29yZGluZyJfcyB9OwotICAgIAorCisgICAgQVNTRVJUKCFtX3ByaXZhdGUp
OworICAgIG1fcHJpdmF0ZSA9IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKCpkb2N1bWVudCgp
LCBtX3N0cmVhbS0+cHJpdmF0ZVN0cmVhbSgpKTsKKworICAgIGlmICghbV9wcml2YXRlKQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJUaGUgTWVkaWFSZWNv
cmRlciBpcyB1bnN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtIl9zIH07CisKKyAgICBtX3ByaXZh
dGUtPnN0YXJ0UmVjb3JkaW5nKFt0aGlzLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0Fj
dGl2aXR5KCp0aGlzKV0oYXV0byYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICgh
bV9pc0FjdGl2ZSB8fCAhZXhjZXB0aW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IHN0b3BSZWNvcmRpbmdJbnRlcm5hbCgpOworICAgICAgICBkaXNwYXRjaEVycm9yKFdURk1vdmUo
KmV4Y2VwdGlvbikpOworICAgIH0pOworCiAgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tz
KQogICAgICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogCkBAIC0xNDYsMjIgKzE1OSwx
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVJlY29yZGVyOjpzdG9wUmVjb3JkaW5nKCkKIHsK
ICAgICBpZiAoc3RhdGUoKSA9PSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmUpCiAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlRoZSBNZWRpYVJlY29yZGVyJ3Mg
c3RhdGUgY2Fubm90IGJlIGluYWN0aXZlIl9zIH07Ci0gICAgCi0gICAgcXVldWVUYXNrS2VlcGlu
Z09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpc10gewotICAg
ICAgICBpZiAoIW1faXNBY3RpdmUgfHwgc3RhdGUoKSA9PSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3Rp
dmUpCi0gICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgc3RvcFJlY29yZGluZ0ludGVybmFs
KCk7Ci0gICAgICAgIEFTU0VSVChtX3N0YXRlID09IFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2ZSk7
Ci0gICAgICAgIG1fcHJpdmF0ZS0+ZmV0Y2hEYXRhKFt0aGlzLCBwZW5kaW5nQWN0aXZpdHkgPSBt
YWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKV0oYXV0byYmIGJ1ZmZlciwgYXV0byYgbWltZVR5cGUp
IHsKKyAgICBzdG9wUmVjb3JkaW5nSW50ZXJuYWwoKTsKKyAgICBhdXRvJiBwcml2YXRlUmVjb3Jk
ZXIgPSAqbV9wcml2YXRlOworICAgIHByaXZhdGVSZWNvcmRlci5mZXRjaERhdGEoW3RoaXMsIHBl
bmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBwcml2YXRlUmVjb3Jk
ZXIgPSBXVEZNb3ZlKG1fcHJpdmF0ZSldKGF1dG8mJiBidWZmZXIsIGF1dG8mIG1pbWVUeXBlKSB7
CisgICAgICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6
TmV0d29ya2luZywgW3RoaXMsIGJ1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgbWltZVR5cGVdKCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIW1faXNBY3RpdmUpCiAgICAgICAgICAgICAgICAg
cmV0dXJuOwotICAgIAogICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChCbG9iRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuZGF0YWF2YWlsYWJsZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywg
RXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8sIGJ1ZmZlciA/IEJsb2I6OmNyZWF0ZShidWZmZXIucmVs
ZWFzZU5vbk51bGwoKSwgbWltZVR5cGUpIDogQmxvYjo6Y3JlYXRlKCkpKTsKIAogICAgICAgICAg
ICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAgICAgICAgICAgIHJldHVybjsKLQogICAgICAgICAg
ICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9wRXZlbnQsIEV2
ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogICAgICAgICB9
KTsKICAgICB9KTsKQEAgLTE3NCwxMCArMTgyLDEyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlh
UmVjb3JkZXI6OnJlcXVlc3REYXRhKCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiVGhlIE1lZGlhUmVjb3JkZXIncyBzdGF0ZSBjYW5ub3QgYmUgaW5hY3Rp
dmUiX3MgfTsKIAogICAgIG1fcHJpdmF0ZS0+ZmV0Y2hEYXRhKFt0aGlzLCBwZW5kaW5nQWN0aXZp
dHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKV0oYXV0byYmIGJ1ZmZlciwgYXV0byYgbWlt
ZVR5cGUpIHsKLSAgICAgICAgaWYgKCFtX2lzQWN0aXZlKQotICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok5l
dHdvcmtpbmcsIFt0aGlzLCBidWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlciksIG1pbWVUeXBlXSgpIG11
dGFibGUgeworICAgICAgICAgICAgaWYgKCFtX2lzQWN0aXZlKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICBkaXNwYXRjaEV2ZW50KEJsb2JFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5kYXRhYXZhaWxhYmxlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXND
YW5jZWxhYmxlOjpObywgYnVmZmVyID8gQmxvYjo6Y3JlYXRlKGJ1ZmZlci5yZWxlYXNlTm9uTnVs
bCgpLCBtaW1lVHlwZSkgOiBCbG9iOjpjcmVhdGUoKSkpOworICAgICAgICAgICAgZGlzcGF0Y2hF
dmVudChCbG9iRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGF0YWF2YWlsYWJsZUV2ZW50LCBF
dmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8sIGJ1ZmZlciA/IEJs
b2I6OmNyZWF0ZShidWZmZXIucmVsZWFzZU5vbk51bGwoKSwgbWltZVR5cGUpIDogQmxvYjo6Y3Jl
YXRlKCkpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5o
CmluZGV4IDJmZDllYTU4NmM5YzBlMTFjMDAxMmFmYjU2MjZiNjMzYWMyM2VjYTAuLjhmNjYzNGM4
NDkwMzkzYjhhMDc3NzJhNDI3YTVjZDliMmY3Yzc4NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaApAQCAtNzUsNyArNzUs
NyBAQCBwdWJsaWM6CiAgICAgTWVkaWFTdHJlYW0mIHN0cmVhbSgpIHsgcmV0dXJuIG1fc3RyZWFt
LmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFSZWNvcmRlcihEb2N1bWVudCYsIFJlZjxN
ZWRpYVN0cmVhbT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiYmLCBP
cHRpb25zJiYgPSB7IH0pOworICAgIE1lZGlhUmVjb3JkZXIoRG9jdW1lbnQmLCBSZWY8TWVkaWFT
dHJlYW0+JiYsIE9wdGlvbnMmJiA9IHsgfSk7CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShEb2N1bWVu
dCYsIE1lZGlhU3RyZWFtUHJpdmF0ZSYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCmlu
ZGV4IDllYTgxYzhiMThmOWMxNWM3OGM0ZjYzNWNiMDc2MmU3MDU5ZmUxYjguLjA0YmE2YjA4NGFk
MjNmNDMzMmVkNGZlZTU0NWZlZjgxNDVkNGE0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgK
QEAgLTYwLDE2ICs2MCwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGZldGNoRGF0YShG
ZXRjaERhdGFDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BSZWNvcmRpbmco
KSA9IDA7CiAKLSAgICB1c2luZyBFcnJvckNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChPcHRpb25h
bDxFeGNlcHRpb24+JiYpPjsKLSAgICB2b2lkIHNldEVycm9yQ2FsbGJhY2soRXJyb3JDYWxsYmFj
ayYmIGVycm9yQ2FsbGJhY2spIHsgbV9lcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNhbGxi
YWNrKTsgfQorICAgIHVzaW5nIEVycm9yQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+OworICAgIHZpcnR1YWwgdm9pZCBzdGFydFJlY29yZGlu
ZyhFcnJvckNhbGxiYWNrJiYgY2FsbGJhY2spIHsgY2FsbGJhY2soeyB9KTsgfQogCiBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBzZXRBdWRpb1NvdXJjZShSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4m
Jik7CiAgICAgdm9pZCBzZXRWaWRlb1NvdXJjZShSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4m
Jik7CiAKLXByb3RlY3RlZDoKLSAgICBFcnJvckNhbGxiYWNrIG1fZXJyb3JDYWxsYmFjazsKLQog
cHJpdmF0ZToKICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9hdWRpb1NvdXJjZTsK
ICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV92aWRlb1NvdXJjZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGVNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcAppbmRleCA2YTUyMjg4NWQyY2RmM2FjOTY0ZTAxZjM0
ZjU3NmNiNGNmOGIxZWE4Li5lNDljYzI4OTYyYTk1Nzk0OGI0YjVmY2JjZTA0YzA3ZWUyNDg0ZjI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwCkBAIC04MywxMSArODMsMTUg
QEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OmdlbmVyYXRlTW9ja0NvdW50ZXJTdHJp
bmcoKQogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6ZmV0Y2hEYXRhKEZldGNoRGF0
YUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX2J1ZmZlckxvY2spOwotICAgIFZlY3Rvcjx1aW50OF90PiB2YWx1ZShtX2J1ZmZlci5s
ZW5ndGgoKSk7Ci0gICAgbWVtY3B5KHZhbHVlLmRhdGEoKSwgbV9idWZmZXIuY2hhcmFjdGVyczgo
KSwgbV9idWZmZXIubGVuZ3RoKCkpOwotICAgIG1fYnVmZmVyLmNsZWFyKCk7Ci0gICAgY29tcGxl
dGlvbkhhbmRsZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoV1RGTW92ZSh2YWx1ZSkpLCBtaW1lVHlw
ZSgpKTsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7CisgICAgeworICAgICAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYnVmZmVyTG9jayk7CisgICAgICAgIFZlY3Rvcjx1aW50
OF90PiB2YWx1ZShtX2J1ZmZlci5sZW5ndGgoKSk7CisgICAgICAgIG1lbWNweSh2YWx1ZS5kYXRh
KCksIG1fYnVmZmVyLmNoYXJhY3RlcnM4KCksIG1fYnVmZmVyLmxlbmd0aCgpKTsKKyAgICAgICAg
bV9idWZmZXIuY2xlYXIoKTsKKyAgICAgICAgYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
V1RGTW92ZSh2YWx1ZSkpOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGJ1
ZmZlciksIG1pbWVUeXBlKCkpOwogfQogCiBjb25zdCBTdHJpbmcmIE1lZGlhUmVjb3JkZXJQcml2
YXRlTW9jazo6bWltZVR5cGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yLmgKaW5kZXggMDM1Y2NhMzJjNTUwYWEyNTc1NjI1ZTQ5OTIxNDU3OWEzZGIxZDcz
Ni4uNjUyODY2ZGRkYjlmOWYwNDhhYTBmNjdjODY5MTMyMTkyOWFiMTEyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oCkBAIC02MCwxMyArNjAsMTMg
QEAgcHJpdmF0ZToKICAgICBPU1N0YXR1cyBwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tl
dHMoVUludDMyKiwgQXVkaW9CdWZmZXJMaXN0KiwgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlv
bioqKTsKIAogICAgIGRpc3BhdGNoX3F1ZXVlX3QgbV9zZXJpYWxEaXNwYXRjaFF1ZXVlOwotICAg
IENNVGltZSBtX2xvd1dhdGVyVGltZTsKKyAgICBDTVRpbWUgbV9sb3dXYXRlclRpbWUgeyBrQ01U
aW1lSW52YWxpZCB9OwogCiAgICAgUmV0YWluUHRyPENNQnVmZmVyUXVldWVSZWY+IG1fb3V0cHV0
QnVmZmVyUXVldWU7CiAgICAgUmV0YWluUHRyPENNQnVmZmVyUXVldWVSZWY+IG1faW5wdXRCdWZm
ZXJRdWV1ZTsKICAgICBib29sIG1faXNFbmNvZGluZyB7IGZhbHNlIH07CiAKLSAgICBSZXRhaW5Q
dHI8QXVkaW9Db252ZXJ0ZXJSZWY+IG1fY29udmVydGVyOworICAgIEF1ZGlvQ29udmVydGVyUmVm
IG1fY29udmVydGVyIHsgbnVsbHB0ciB9OwogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
biBtX3NvdXJjZUZvcm1hdDsKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbV9kZXN0
aW5hdGlvbkZvcm1hdDsKICAgICBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gbV9k
ZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uOwpAQCAtNzQsOSArNzQsOSBAQCBwcml2YXRlOgog
ICAgIFVJbnQzMiBtX21heE91dHB1dFBhY2tldFNpemUgeyAwIH07CiAgICAgVmVjdG9yPEF1ZGlv
U3RyZWFtUGFja2V0RGVzY3JpcHRpb24+IG1fZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnM7
CiAKLSAgICBDTVRpbWUgbV9jdXJyZW50TmF0aXZlUHJlc2VudGF0aW9uVGltZVN0YW1wOwotICAg
IENNVGltZSBtX2N1cnJlbnRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXA7Ci0gICAgQ01UaW1l
IG1fcmVtYWluaW5nUHJpbWVEdXJhdGlvbjsKKyAgICBDTVRpbWUgbV9jdXJyZW50TmF0aXZlUHJl
c2VudGF0aW9uVGltZVN0YW1wIHsga0NNVGltZUludmFsaWQgfTsKKyAgICBDTVRpbWUgbV9jdXJy
ZW50T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wIHsga0NNVGltZUludmFsaWQgfTsKKyAgICBD
TVRpbWUgbV9yZW1haW5pbmdQcmltZUR1cmF0aW9uIHsga0NNVGltZUludmFsaWQgfTsKIAogICAg
IFZlY3RvcjxjaGFyPiBtX3NvdXJjZUJ1ZmZlcjsKICAgICBWZWN0b3I8Y2hhcj4gbV9kZXN0aW5h
dGlvbkJ1ZmZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IubW0KaW5kZXggYzliZmY2NDFkMmMyNmZlYWFmYTFkY2M3YmMzYWMyMTY5ZGY2ZTVhNS4uNmQw
NGQ4YzNiNzgxYjZmMzg3Yjc3ZDhmOWUxNWYyY2Q0MjlhNTk4NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9j
b2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KQEAgLTU4LDYgKzU4LDEwIEBAIEF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkK
IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cigpCiB7CiAgICAgZGlzcGF0Y2hfcmVsZWFzZShtX3NlcmlhbERpc3BhdGNoUXVldWUpOworICAg
IGlmIChtX2NvbnZlcnRlcikgeworICAgICAgICBBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252
ZXJ0ZXIpOworICAgICAgICBtX2NvbnZlcnRlciA9IG51bGxwdHI7CisgICAgfQogfQogCiBib29s
IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJp
Z2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKQEAgLTExMiwxOSAr
MTE2LDE5IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252
ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIEF1ZGlvQ29udmVy
dGVyTmV3IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQotICAgIG1fY29udmVydGVyID0gYWRvcHRDRihjb252ZXJ0ZXIpOworICAgIG1fY29udmVy
dGVyID0gY29udmVydGVyOwogCiAgICAgc2l6ZV90IGNvb2tpZVNpemUgPSAwOwogICAgIGNvbnN0
IHZvaWQgKmNvb2tpZSA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llKGZv
cm1hdERlc2NyaXB0aW9uLCAmY29va2llU2l6ZSk7CiAgICAgaWYgKGNvb2tpZVNpemUpIHsKLSAg
ICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVy
dGVyLmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUsIChVSW50
MzIpY29va2llU2l6ZSwgY29va2llKSkgeworICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlv
Q29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckRlY29tcHJl
c3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29raWVTaXplLCBjb29raWUpKSB7CiAgICAgICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvbnZlcnRlckRlY29tcHJlc3Npb25NYWdpY0Nvb2tpZSBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgfQogICAgIH0KIAogICAgIHNpemUgPSBzaXplb2YobV9zb3VyY2VGb3JtYXQpOwotICAgIGlm
IChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQo
KSwga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAm
bV9zb3VyY2VGb3JtYXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1E
ZXNjcmlwdGlvbiwgJnNpemUsICZtX3NvdXJjZUZvcm1hdCkpIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGlu
ZyBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTEzNSw3ICsx
MzksNyBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVy
dGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgIH0KIAogICAgIHNpemUgPSBzaXpl
b2YobV9kZXN0aW5hdGlvbkZvcm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZl
cnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50
T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsK
KyAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0
ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUs
ICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZl
cnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE0OSw3ICsxNTMsNyBAQCBib29s
IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNl
Rm9ybWF0RGVzY3JpcHRpb24oQwogICAgICAgICAgICAgb3V0cHV0Qml0UmF0ZSA9IDMyMDAwOwog
CiAgICAgICAgIHNpemUgPSBzaXplb2Yob3V0cHV0Qml0UmF0ZSk7Ci0gICAgICAgIGlmIChhdXRv
IGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1
ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSwgc2l6ZSwgJm91dHB1dEJpdFJhdGUpKSB7CisgICAg
ICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ciwga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSwgc2l6ZSwgJm91dHB1dEJpdFJhdGUpKSB7
CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFp
bGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KQEAgLTE1OSw3ICsxNjMsNyBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgICAgICAv
LyBJZiB0aGUgZGVzdGluYXRpb24gZm9ybWF0IGlzIFZCUiwgd2UgbmVlZCB0byBnZXQgbWF4IHNp
emUgcGVyIHBhY2tldCBmcm9tIHRoZSBjb252ZXJ0ZXIuCiAgICAgICAgIHNpemUgPSBzaXplb2Yo
bV9tYXhPdXRwdXRQYWNrZXRTaXplKTsKIAotICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlv
Q29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlclBy
b3BlcnR5TWF4aW11bU91dHB1dFBhY2tldFNpemUsICZzaXplLCAmbV9tYXhPdXRwdXRQYWNrZXRT
aXplKSkgeworICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVy
dHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlclByb3BlcnR5TWF4aW11bU91dHB1dFBhY2tl
dFNpemUsICZzaXplLCAmbV9tYXhPdXRwdXRQYWNrZXRTaXplKSkgewogICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
Z2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICB9CkBAIC0xODksNyArMTkzLDcgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OmF0dGFjaFByaW1pbmdUcmltc0lmTmVlZGVkKENNU2FtcGxlQnVmZmVyUmVmIGIKICAgICAgICAg
QXVkaW9Db252ZXJ0ZXJQcmltZUluZm8gcHJpbWVJbmZvIHsgMCwgMCB9OwogICAgICAgICBVSW50
MzIgc2l6ZSA9IHNpemVvZihwcmltZUluZm8pOwogCi0gICAgICAgIGlmIChhdXRvIGVycm9yID0g
QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29udmVy
dGVyUHJpbWVJbmZvLCAmc2l6ZSwgJnByaW1lSW5mbykpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJy
b3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0
ZXJQcmltZUluZm8sICZzaXplLCAmcHJpbWVJbmZvKSkgewogICAgICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGlu
ZyBrQXVkaW9Db252ZXJ0ZXJQcmltZUluZm8gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTIxMSwyNSArMjE1LDI1IEBAIFJldGFpblB0
cjxOU051bWJlcj4gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpncmFkdWFsRGVjb2RlclJl
ZnJlc2hDb3VudCgpCiB7CiAgICAgVUludDMyIGRlbGF5U2l6ZSA9IHNpemVvZih1aW50MzJfdCk7
CiAgICAgdWludDMyX3Qgb3JpZ2luYWxEZWxheU1vZGUgPSAwOwotICAgIGlmIChhdXRvIGVycm9y
ID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29k
ZWNQcm9wZXJ0eURlbGF5TW9kZSwgJmRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgewor
ICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgJmRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVs
YXlNb2RlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1v
ZGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQog
CiAgICAgdWludDMyX3Qgb3B0aW1hbERlbGF5TW9kZSA9IGtBdWRpb0NvZGVjRGVsYXlNb2RlX09w
dGltYWw7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1f
Y29udmVydGVyLmdldCgpLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUs
ICZvcHRpbWFsRGVsYXlNb2RlKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0
ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwg
ZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5TW9kZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVk
aW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAg
ICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIFVJbnQzMiBwcmltZVNpemUgPSBzaXplb2YoQXVk
aW9Db2RlY1ByaW1lSW5mbyk7CiAgICAgQXVkaW9Db2RlY1ByaW1lSW5mbyBwcmltZUluZm8geyAw
LCAwIH07Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1f
Y29udmVydGVyLmdldCgpLCBrQXVkaW9Db2RlY1Byb3BlcnR5UHJpbWVJbmZvLCAmcHJpbWVTaXpl
LCAmcHJpbWVJbmZvKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQ
cm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbywgJnByaW1l
U2l6ZSwgJnByaW1lSW5mbykpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJl
YW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db2RlY1Byb3Bl
cnR5UHJpbWVJbmZvIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmls
OwogICAgIH0KIAotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0
eShtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlT
aXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0Nv
bnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlN
b2RlLCBkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGlu
ZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwog
ICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KQEAgLTI0MiwxMSArMjQ2LDExIEBAIENNU2FtcGxl
QnVmZmVyUmVmIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51
bVBhY2tldHMoVUludDMyCiAgICAgaWYgKCFtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24p
IHsKICAgICAgICAgVUludDMyIGNvb2tpZVNpemUgPSAwOwogCi0gICAgICAgIGF1dG8gZXJyb3Ig
PSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbyhtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlv
Q29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUsIE5VTEwpOworICAg
ICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8obV9jb252ZXJ0
ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBO
VUxMKTsKICAgICAgICAgaWYgKChlcnJvciA9PSBub0VycikgJiYgISFjb29raWVTaXplKSB7CiAg
ICAgICAgICAgICBjb29raWUucmVzaXplKGNvb2tpZVNpemUpOwogCi0gICAgICAgICAgICBpZiAo
YXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCks
IGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBjb29r
aWUuZGF0YSgpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRl
ckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1hZ2lj
Q29va2llLCAmY29va2llU2l6ZSwgY29va2llLmRhdGEoKSkpIHsKICAgICAgICAgICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgICAg
IH0KQEAgLTQzOSw3ICs0NDMsNyBAQCB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
cHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShDTVRpbWUgbAogICAgICAgICBV
SW50MzIgb3V0cHV0UGFja2V0U2l6ZSA9IG1fZGVzdGluYXRpb25Gb3JtYXQubUJ5dGVzUGVyUGFj
a2V0ID8gbV9kZXN0aW5hdGlvbkZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQgOiBtX21heE91dHB1dFBh
Y2tldFNpemU7CiAgICAgICAgIFVJbnQzMiBudW1PdXRwdXRQYWNrZXRzID0gKFVJbnQzMiltX2Rl
c3RpbmF0aW9uQnVmZmVyLmNhcGFjaXR5KCkgLyBvdXRwdXRQYWNrZXRTaXplOwogCi0gICAgICAg
IGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKG1fY29udmVydGVy
LmdldCgpLCBhdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jLCB0aGlzLCAmbnVtT3V0
cHV0UGFja2V0cywgJmZpbGxCdWZmZXJMaXN0LCBtX2Rlc3RpbmF0aW9uUGFja2V0RGVzY3JpcHRp
b25zLmRhdGEoKSk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckZpbGxDb21w
bGV4QnVmZmVyKG1fY29udmVydGVyLCBhdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9j
LCB0aGlzLCAmbnVtT3V0cHV0UGFja2V0cywgJmZpbGxCdWZmZXJMaXN0LCBtX2Rlc3RpbmF0aW9u
UGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSk7CiAgICAgICAgIGlmIChlcnJvcikgewogICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlciBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJD
b2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKaW5kZXggYjdhOWQ3MTIzODdkNzA0MGFmYTVi
OGNlYTYxMWE0ZGNlNDM0NjZhOC4uM2RhMWIyOTVmY2YyZTM1YWQ5YTMwNjFjNmFmZjYyMTE0ODMy
MjY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9j
b2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLmgKQEAgLTExNCw4ICsxMTQsOCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDTUZv
cm1hdERlc2NyaXB0aW9uUmVmPiBtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb247CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gbV92aWRlb0NvbXByZXNzb3I7
CiAgICAgUmV0YWluUHRyPEFWQXNzZXRXcml0ZXJJbnB1dD4gbV92aWRlb0Fzc2V0V3JpdGVySW5w
dXQ7Ci0gICAgQ01UaW1lIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZTsKLSAgICBDTVRpbWUg
bV9sYXN0VmlkZW9EZWNvZGluZ1RpbWU7CisgICAgQ01UaW1lIG1fbGFzdFZpZGVvUHJlc2VudGF0
aW9uVGltZSB7IGtDTVRpbWVJbnZhbGlkIH07CisgICAgQ01UaW1lIG1fbGFzdFZpZGVvRGVjb2Rp
bmdUaW1lIHsga0NNVGltZUludmFsaWQgfTsKICAgICBib29sIG1faGFzRW5jb2RlZFZpZGVvU2Ft
cGxlcyB7IGZhbHNlIH07CiAKICAgICBSZXRhaW5QdHI8V2ViQVZBc3NldFdyaXRlckRlbGVnYXRl
PiBtX3dyaXRlckRlbGVnYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlckNvY29hLm1tCmluZGV4IDdmMzA4N2UwMWUwYzAxYjY3N2VmNDM0ZTEwYjY3
OWVkYjRhOGU5MDkuLjQzZjY3MDJjNGRkMmE3OTcwYzUyYmYzNDIxOGMzZGQwN2QyMDAwMzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2Eu
bW0KQEAgLTQzNSwxNiArNDM1LDIxIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6
OnN0b3BSZWNvcmRpbmcoKQogICAgIG1faXNTdG9wcGluZyA9IHRydWU7CiAgICAgLy8gV2UgaG9w
IHRvIHRoZSBtYWluIHRocmVhZCBzaW5jZSBmaW5pc2hpbmcgdGhlIHZpZGVvIGNvbXByZXNzb3Ig
bWlnaHQgdHJpZ2dlciBzdGFydGluZyB0aGUgd3JpdGVyIGFzeW5jaHJvbm91c2x5LgogICAgIGNh
bGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKCkgbXV0
YWJsZSB7Ci0gICAgICAgIGF1dG8gd2hlbkZpbmlzaGVkID0gW3RoaXNdIHsKLSAgICAgICAgICAg
IG1faXNTdG9wcGluZyA9IGZhbHNlOwotICAgICAgICAgICAgaWYgKG1fZmV0Y2hEYXRhQ29tcGxl
dGlvbkhhbmRsZXIpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGJ1ZmZlciA9IFdURk1vdmUobV9k
YXRhKTsKLSAgICAgICAgICAgICAgICBtX2ZldGNoRGF0YUNvbXBsZXRpb25IYW5kbGVyKFdURk1v
dmUoYnVmZmVyKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byB3aGVuRmluaXNoZWQgPSBbdGhpcywgd2Vh
a1RoaXNdIHsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgcmV0
dXJuOwogCisgICAgICAgICAgICBtX2lzU3RvcHBpbmcgPSBmYWxzZTsKICAgICAgICAgICAgIG1f
aXNTdG9wcGVkID0gZmFsc2U7CiAgICAgICAgICAgICBtX2hhc1N0YXJ0ZWRXcml0aW5nID0gZmFs
c2U7Ci0gICAgICAgICAgICBjbGVhcigpOworCisgICAgICAgICAgICBpZiAobV93cml0ZXIpCisg
ICAgICAgICAgICAgICAgbV93cml0ZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIGlmIChtX2ZldGNo
RGF0YUNvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICAgICAgICAgIG1fZmV0Y2hEYXRhQ29tcGxl
dGlvbkhhbmRsZXIoc3RkOjpleGNoYW5nZShtX2RhdGEsIG51bGxwdHIpKTsKICAgICAgICAgfTsK
IAogICAgICAgICBpZiAoIW1faGFzU3RhcnRlZFdyaXRpbmcpIHsKQEAgLTQ2MSwxMiArNDY2LDgg
QEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6c3RvcFJlY29yZGluZygpCiAgICAg
ICAgICAgICBbbV93cml0ZXIgZmx1c2hdOwogICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAKLSAgICAgICAgICAgIFttX3dyaXRlciBmaW5pc2hXcml0aW5nV2l0
aENvbXBsZXRpb25IYW5kbGVyOlt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB3aGVuRmlu
aXNoZWQgPSBXVEZNb3ZlKHdoZW5GaW5pc2hlZCldKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAg
ICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgd2hlbkZp
bmlzaGVkID0gV1RGTW92ZSh3aGVuRmluaXNoZWQpXSgpIG11dGFibGUgewotICAgICAgICAgICAg
ICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgICAgICAgICB3aGVuRmluaXNoZWQoKTsKLSAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIFttX3dyaXRlciBmaW5pc2hXcml0aW5nV2l0aENvbXBsZXRpb25IYW5kbGVy
Olt3aGVuRmluaXNoZWQgPSBXVEZNb3ZlKHdoZW5GaW5pc2hlZCldKCkgbXV0YWJsZSB7CisgICAg
ICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdoZW5GaW5pc2hlZCkpOwogICAg
ICAgICAgICAgfV07CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1Zp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCAxODVhZDEyODExNTljNzdjZGE0MjIy
ZTdhOTIwZGNhY2EwY2QwODQ5Li44OWEyYTc4NzY1MmUxNzIwNzFkYjAyZGZhNGE2YjIyZTI2NmMz
ZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5t
bQpAQCAtNTYsNiArNTYsMTAgQEAgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpWaWRlb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IoQ01WaWRlb0NvZGVjVHlwZSBvdXRwdXQKIFZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiB7CiAgICAg
ZGlzcGF0Y2hfcmVsZWFzZShtX3NlcmlhbERpc3BhdGNoUXVldWUpOworICAgIGlmIChtX3Z0U2Vz
c2lvbikgeworICAgICAgICBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92dFNlc3Np
b24uZ2V0KCkpOworICAgICAgICBtX3Z0U2Vzc2lvbiA9IG51bGxwdHI7CisgICAgfQogfQogCiBi
b29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVl
VHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2
YXRlLmgKaW5kZXggZTYyOWYzNWZjMzc4NzU4M2NiYzM5NDA3MjQ4NWI0MzhkY2VhNzg3Ni4uMTUy
NWNjYzA0YjIzMGRiYmI1ODNkOTdiMzNiYjczZjYwZDg4ZDM5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgK
QEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1Qcml2
YXRlPiBjcmVhdGUoUmVmPGNvbnN0IExvZ2dlcj4mJiwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+JiYgYXVkaW9Tb3VyY2UsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHZpZGVvU291
cmNlKTsKICAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlKFJlZjxjb25z
dCBMb2dnZXI+JiYgbG9nZ2VyLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYg
dHJhY2tzLCBTdHJpbmcmJiBpZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVN0cmVhbVByaXZhdGUoV1RGTW92ZShsb2dnZXIpLCB0cmFj
a3MsIFdURk1vdmUoaWQpKSk7IH0KIAotICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtUHJpdmF0ZSgp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfk1lZGlhU3RyZWFtUHJpdmF0ZSgpOwogCiAg
ICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIo
T2JzZXJ2ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKaW5kZXggN2Y0YzY2ZDZhMjM2
MmU1MmU2YTA3NjRlNzg5ZjZkMjBlOTE2NzJjOS4uZGM1YjdiNjEyZjZkYzUwZDIyNDBjNGJkODg4
ZWMyMGFhZWNhNDI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKQEAgLTY0LDcgKzY0
LDYgQEAgdm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Y3JlYXRlUmVjb3JkZXIoTWVk
aWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmkKIAogdm9pZCBSZW1vdGVNZWRpYVJlY29yZGVy
TWFuYWdlcjo6cmVsZWFzZVJlY29yZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiB7Ci0gICAgQVNTRVJUKG1fcmVjb3JkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKICAg
ICBtX3JlY29yZGVycy5yZW1vdmUoaWRlbnRpZmllcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRl
LmNwcAppbmRleCBmNWFjMzE4MWY1MzkwYmVlZDJmNDBjMWYxYzI4MGFkNDQ0MmNkOTA2Li42Njhl
Njc1ZjkyOGZjNGI1ZThiN2FiNzdlYjgwNjFhYTdkM2M5Zjc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZh
dGUuY3BwCkBAIC00NSwxMiArNDUsMTcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIE1l
ZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZh
dGUmIHN0cmVhbSkKICAgICA6IG1faWRlbnRpZmllcihNZWRpYVJlY29yZGVySWRlbnRpZmllcjo6
Z2VuZXJhdGUoKSkKKyAgICAsIG1fc3RyZWFtKG1ha2VSZWYoc3RyZWFtKSkKICAgICAsIG1fY29u
bmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKSkKK3sKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3Rh
cnRSZWNvcmRpbmcoRXJyb3JDYWxsYmFjayYmIGVycm9yQ2FsbGJhY2spCiB7CiAgICAgLy8gRklY
TUU6IHdlIHdpbGwgbmVlZCB0byBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgYXVkaW8v
dmlkZW8gdHJhY2tzCiAgICAgLy8gQ3VycmVudGx5IHdlIG9ubHkgY2hvb3NlIHRoZSBmaXJzdCB0
cmFjayBhcyB0aGUgcmVjb3JkZWQgdHJhY2suCiAKLSAgICBhdXRvIHNlbGVjdGVkVHJhY2tzID0g
TWVkaWFSZWNvcmRlclByaXZhdGU6OnNlbGVjdFRyYWNrcyhzdHJlYW0pOworICAgIGF1dG8gc2Vs
ZWN0ZWRUcmFja3MgPSBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2VsZWN0VHJhY2tzKG1fc3RyZWFt
KTsKICAgICBpZiAoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaykgewogICAgICAgICBtX3JpbmdC
dWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZT4odGhpcykpOwogICAgICAgICBtX3JlY29yZGVkQXVkaW9UcmFja0lEID0g
c2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjay0+aWQoKTsKQEAgLTY0LDE1ICs2OSwyMCBAQCBNZWRp
YVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRl
JiBzdHJlYW0pCiAgICAgICAgIHdpZHRoID0gc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjay0+c2V0
dGluZ3MoKS53aWR0aCgpOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Q3JlYXRlUmVjb3Jk
ZXIgeyBtX2lkZW50aWZpZXIsICEhc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaywgd2lkdGgsIGhl
aWdodCB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgYXVkaW9UcmFjayA9
IG1ha2VSZWZQdHIoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjayksIHZpZGVvVHJhY2sgPSBtYWtl
UmVmUHRyKHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2spXShhdXRvJiYgZXhjZXB0aW9uKSB7Ci0g
ICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpDcmVhdGVSZWNvcmRlciB7
IG1faWRlbnRpZmllciwgISFzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLCB3aWR0aCwgaGVpZ2h0
IH0sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBhdWRpb1RyYWNrID0gbWFr
ZVJlZlB0cihzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrKSwgdmlkZW9UcmFjayA9IG1ha2VSZWZQ
dHIoc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjayksIGVycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVy
cm9yQ2FsbGJhY2spXShhdXRvJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3
ZWFrVGhpcykgeworICAgICAgICAgICAgZXJyb3JDYWxsYmFjayh7IH0pOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAg
IGVycm9yQ2FsbGJhY2soRXhjZXB0aW9uIHsgZXhjZXB0aW9uLT5jb2RlLCBXVEZNb3ZlKGV4Y2Vw
dGlvbi0+bWVzc2FnZSkgfSk7CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChleGNl
cHRpb24pCi0gICAgICAgICAgICByZXR1cm4gbV9lcnJvckNhbGxiYWNrKEV4Y2VwdGlvbiB7IGV4
Y2VwdGlvbi0+Y29kZSwgV1RGTW92ZShleGNlcHRpb24tPm1lc3NhZ2UpIH0pOworICAgICAgICB9
CiAgICAgICAgIGlmIChhdWRpb1RyYWNrKQogICAgICAgICAgICAgc2V0QXVkaW9Tb3VyY2UoJmF1
ZGlvVHJhY2stPnNvdXJjZSgpKTsKICAgICAgICAgaWYgKHZpZGVvVHJhY2spCiAgICAgICAgICAg
ICBzZXRWaWRlb1NvdXJjZSgmdmlkZW9UcmFjay0+c291cmNlKCkpOworICAgICAgICBlcnJvckNh
bGxiYWNrKHsgfSk7CiAgICAgfSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCmluZGV4IDNk
N2JlZTI5NjQzYzk5YjUxMGU3YjhhNGUwNTQwYjdlZTIwN2E1ZDMuLjUyNjdhYmFmZTM4ZGY1MzUy
MmZiYzVhZWY2MDI1MDM5ZDUxMWZiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaApAQCAtNTgsMTQg
KzU4LDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3Jl
OjpNZWRpYVNhbXBsZSYpIGZpbmFsOwogICAgIHZvaWQgZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSk+JiYpIGZpbmFsOwogICAgIHZvaWQgc3RvcFJlY29yZGluZygpIGZpbmFsOworICAg
IHZvaWQgc3RhcnRSZWNvcmRpbmcoRXJyb3JDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFdlYkNvcmU6
OlBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYsIHNpemVfdCkgZmluYWw7CiAKICAgICAvLyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xp
ZW50CiAgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqKTsKIAogICAgIE1lZGlh
UmVjb3JkZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKLQorICAgIFJlZjxNZWRpYVN0cmVhbVBy
aXZhdGU+IG1fc3RyZWFtOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsK
KwogICAgIFN0cmluZyBtX3JlY29yZGVkQXVkaW9UcmFja0lEOwogICAgIFN0cmluZyBtX3JlY29y
ZGVkVmlkZW9UcmFja0lEOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjRlNGY2ZWRhNTFlYjhlYmJkNmRiMjBiOWM3MTZj
NjI0MWViNjczMC4uOTI1OWZhODk3MDhmNDQwYzdkYTU3ZmFkMzU1NzFkZjViZTU0ZTFmNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA3LTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHN0b3BSZWNvcmRlcigpIHJldHVybnMg
ZW1wdHkgQmxvYiBhZnRlciBmaXJzdCB1c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMjI3NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM2MDEy
OTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogaHR0
cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLW11bHRpcGxlLXN0YXJ0LXN0b3AtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXItbXVsdGlwbGUtc3RhcnQtc3RvcC5odG1sOiBBZGRlZC4KKwogMjAyMC0wNy0wMyAg
RGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgdGVzdCBnYXJkZW5pbmcuIFVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9ucyBhbmQgYmFzZWxpbmVz
IGFmdGVyIHIyNjM4NTguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXItbXVsdGlwbGUtc3RhcnQtc3RvcC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItbXVsdGlwbGUt
c3RhcnQtc3RvcC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY0NTRjMmJjODExODJkOGY5ZGQz
ZDQyZWFjNzU4ZjRjOTU4YzE1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBNYWtlIHN1cmUgdGhhdCBNZWRpYVJlY29y
ZGVyIGNhbiBiZSB1c2VkIGFmdGVyIHN0b3BwaW5nIGl0IG9uY2UgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBsZS1z
dGFydC1zdG9wLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXItbXVsdGlwbGUtc3RhcnQtc3RvcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5MTY2NTA4YzIy
Y2ViZjZlMzBhZWUxNmQ1YmFhM2Q2ZGY0NjAyNTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItbXVsdGlwbGUtc3RhcnQt
c3RvcC5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8dGl0bGU+TWVkaWFSZWNvcmRlciBEYXRhYXZhaWxhYmxlPC90aXRsZT4KKyAgICA8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUt
cmVjb3JkL01lZGlhUmVjb3JkZXIuaHRtbCNtZWRpYXJlY29yZGVyIj4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj4KKzwvY2Fu
dmFzPgorPHNjcmlwdD4KKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICAgIGNv
bnN0IHZpZGVvID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBh
dWRpbyA6IHRydWUsIHZpZGVvIDogdHJ1ZSB9KTsKKyAgICAgICAgY29uc3QgcmVjb3JkZXIgPSBu
ZXcgTWVkaWFSZWNvcmRlcih2aWRlbyk7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmRl
ci5zdHJlYW0sIHZpZGVvKTsKKworICAgICAgICBsZXQgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJl
c29sdmUgPT4geworICAgICAgICAgICAgcmVjb3JkZXIub25kYXRhYXZhaWxhYmxlID0gdC5zdGVw
X2Z1bmMoYmxvYkV2ZW50ID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoYmxvYkV2ZW50LmRhdGEu
c2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworCisgICAgICAgIHJlY29yZGVyLnN0YXJ0KCk7CisgICAgICAgIGxldCB0aW1l
ciA9IHNldEludGVydmFsKCgpID0+IHJlY29yZGVyLnJlcXVlc3REYXRhKCksIDEwKTsKKyAgICAg
ICAgYXdhaXQgcHJvbWlzZTsKKyAgICAgICAgY2xlYXJJbnRlcnZhbCh0aW1lcik7CisKKyAgICAg
ICAgcmVjb3JkZXIuc3RvcCgpOworCisgICAgICAgIHByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKKyAgICAgICAgICAgIHJlY29yZGVyLm9uZGF0YWF2YWlsYWJsZSA9IHQuc3RlcF9m
dW5jKGJsb2JFdmVudCA9PiB7CisgICAgICAgICAgICAgICAgaWYgKGJsb2JFdmVudC5kYXRhLnNp
emUpCisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKworICAgICAgICByZWNvcmRlci5zdGFydCgpOworICAgICAgICB0aW1lciA9IHNl
dEludGVydmFsKCgpID0+IHJlY29yZGVyLnJlcXVlc3REYXRhKCksIDEwKTsKKyAgICAgICAgYXdh
aXQgcHJvbWlzZTsKKyAgICAgICAgY2xlYXJJbnRlcnZhbCh0aW1lcik7CisKKyAgICAgICAgcmVj
b3JkZXIuc3RvcCgpOworICAgIH0sICdNYWtlIHN1cmUgdGhhdCBNZWRpYVJlY29yZGVyIGNhbiBi
ZSB1c2VkIGFmdGVyIHN0b3BwaW5nIGl0IG9uY2UnKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>