<?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>222260</bug_id>
          
          <creation_ts>2021-02-21 20:33:16 -0800</creation_ts>
          <short_desc>[MSE] Media segment is incorrectly dropped when using negative timestampOffset</short_desc>
          <delta_ts>2021-04-01 12:22:04 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=224067</see_also>
          <bug_file_loc>https://jyavenard.github.io/htmltests/tests/mse_mp4/test_audiooffset.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jean-Yves Avenard [:jya]">jean-yves.avenard</reporter>
          <assigned_to name="Jean-Yves Avenard [:jya]">jean-yves.avenard</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jean-yves.avenard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1732032</commentid>
    <comment_count>0</comment_count>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-02-21 20:33:16 -0800</bug_when>
    <thetext>Here is a small test:
https://jyavenard.github.io/htmltests/tests/mse_mp4/test_audiooffset.html

This adds roughly 1s of audio (975ms), the media segment is made of 21 samples ranging from [0.9752380952380952, 1.9504761904761905); each sample is 46.44ms long.

When adding them to an audio source buffer with timestampOffset set to -1; you would expect to see [0, 0.9504761904761905] (as both Firefox and Chrome do) now being buffered, but you get instead: [0.4860770975056689, 0.9504761904761905)


Per spec:
https://w3c.github.io/media-source/#sourcebuffer-coded-frame-processing
&quot;8. If presentation timestamp is less than appendWindowStart, then set the need random access point flag to true, drop the coded frame, and jump to the top of the loop to start processing the next coded frame.&quot;
&quot;Some implementations MAY choose to collect coded frames with presentation timestamp less than appendWindowEnd and frame end timestamp greater than appendWindowEnd and use them to generate a splice across the portion of the collected coded frames within the append window at time of collection, and the beginning portion of later processed frames which only partially overlap the end of the collected coded frames. Supporting this requires multiple decoders or faster than real-time decoding so for now this behavior will not be a normative requirement. In conjunction with collecting coded frames that span appendWindowStart, implementations MAY thus support gapless audio splicing. &quot;

Now, even if audio splicing isn&apos;t supported; the only audio frame that should be dropped per the description above is the one with time [-0.024762,0.021678], but webkit drops 10 samples from 0.021678s to 0.486077s that shouldn&apos;t be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732043</commentid>
    <comment_count>1</comment_count>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-02-21 23:08:20 -0800</bug_when>
    <thetext>SourceBufferPrivateAVFObjC seems to pack the samples in block of 10 samples. So the first block of 10 samples is dropped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732452</commentid>
    <comment_count>2</comment_count>
      <attachid>421288</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-02-22 23:09:06 -0800</bug_when>
    <thetext>Created attachment 421288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732485</commentid>
    <comment_count>3</comment_count>
      <attachid>421300</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-02-23 04:17:29 -0800</bug_when>
    <thetext>Created attachment 421300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732877</commentid>
    <comment_count>4</comment_count>
      <attachid>421300</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-24 08:26:24 -0800</bug_when>
    <thetext>Comment on attachment 421300
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        CoreMedia packs multiple audio frames together into a single CMSampleBuffer, this allows for faster processing and easier insertion into the track buffer tree.
&gt; +        However, per mediasoure spec [1], a frame is to be dropped according to its start time and duration. So if only the beginning of the MediaSample was to be dropped, we would have incorrectly dropped the lot.

Since there is a typo to fix, please wrap these overly long lines people won&apos;t need to scroll to read the ChangeLog.

&gt; Source/WebCore/ChangeLog:13
&gt; +        Audio splicing isn&apos;t done yet, but this gets us closeer to it.

s/closeer/closer/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733130</commentid>
    <comment_count>5</comment_count>
      <attachid>421477</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-02-24 16:02:05 -0800</bug_when>
    <thetext>Created attachment 421477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733145</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-24 16:57:59 -0800</bug_when>
    <thetext>Committed r273461: &lt;https://commits.webkit.org/r273461&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421477.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733146</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-24 16:59:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/74721039&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421288</attachid>
            <date>2021-02-22 23:09:06 -0800</date>
            <delta_ts>2021-02-23 04:17:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222260-20210223180904.patch</filename>
            <type>text/plain</type>
            <size>15439</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTIyM2ZjNmEyZGZjMDAx
ZGE1NzI3ZGUwOGUzMGE5ZGNkZGNiM2FmNy4uYWRhMGI4ZTVjZGZlZTcwOTZjYWRlYmY4YjIwZjli
MWQyMDBkOGY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTAyLTIyICBKZWFu
LVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgW01TRV0gTWVkaWEgc2Vn
bWVudCBpcyBpbmNvcnJlY3RseSBkcm9wcGVkIHdoZW4gdXNpbmcgbmVnYXRpdmUgdGltZXN0YW1w
T2Zmc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjIyNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
byBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NvdXJj
ZUJ1ZmZlclByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZTo6ZGlkUmVjZWl2ZVNhbXBsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNl
QnVmZmVyUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlSW5pdGlhbGl6YXRpb25EYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRl
TWVkaWFEYXRhRm9yVHJhY2tJZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVTYW1wbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5oOgorCiAyMDIxLTAyLTIwICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBtb2R1bGVzIGluIHNlcnZpY2Ugd29ya2VycwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJp
dmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQ
cml2YXRlLmNwcAppbmRleCAwNWNhNTNlMmZkNDM3M2M0NDkyMTAwZDFkMTg3YzU4ZTMxNWJmYTAw
Li41YzI2NGFiNzYzZDU4MjM2MjY1MGMxNTM2NDEwMzE4YjBiNzg4ZjI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRl
LmNwcApAQCAtODE2LDcgKzgxNiw3IEBAIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZTo6dmFsaWRh
dGVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgU291cmNlQnVmZmVyUHJpdmF0CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZVNhbXBs
ZShNZWRpYVNhbXBsZSYgc2FtcGxlKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNl
aXZlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBvcmlnaW5hbFNhbXBsZSkKIHsKICAgICBpZiAo
IW1faXNBdHRhY2hlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtODQyLDYgKzg0Miw5IEBAIHZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxl
KQogICAgIC8vIGFyZSBydW46CiAgICAgLy8gMS4gRm9yIGVhY2ggY29kZWQgZnJhbWUgaW4gdGhl
IG1lZGlhIHNlZ21lbnQgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CiAgICAgLy8gMS4xLiBMb29w
IFRvcAorCisgICAgUmVmPE1lZGlhU2FtcGxlPiBzYW1wbGUgPSBXVEZNb3ZlKG9yaWdpbmFsU2Ft
cGxlKTsKKwogICAgIGRvIHsKICAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFt
cDsKICAgICAgICAgTWVkaWFUaW1lIGRlY29kZVRpbWVzdGFtcDsKQEAgLTg1MCw3ICs4NTMsNyBA
QCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUm
IHNhbXBsZSkKICAgICAgICAgLy8gc2FtcGxlJ3MgZHVyYXRpb24gZm9yIHRpbWVzdGFtcCBnZW5l
cmF0aW9uLgogICAgICAgICAvLyAxLjIgTGV0IGZyYW1lIGR1cmF0aW9uIGJlIGEgZG91YmxlIHBy
ZWNpc2lvbiBmbG9hdGluZyBwb2ludCByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29kZWQgZnJhbWUn
cwogICAgICAgICAvLyBkdXJhdGlvbiBpbiBzZWNvbmRzLgotICAgICAgICBNZWRpYVRpbWUgZnJh
bWVEdXJhdGlvbiA9IHNhbXBsZS5kdXJhdGlvbigpOworICAgICAgICBNZWRpYVRpbWUgZnJhbWVE
dXJhdGlvbiA9IHNhbXBsZS0+ZHVyYXRpb24oKTsKIAogICAgICAgICBpZiAobV9zaG91bGRHZW5l
cmF0ZVRpbWVzdGFtcHMpIHsKICAgICAgICAgICAgIC8vIOKGsyBJZiBnZW5lcmF0ZSB0aW1lc3Rh
bXBzIGZsYWcgZXF1YWxzIHRydWU6CkBAIC04NjUsMTEgKzg2OCwxMSBAQCB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICAg
ICAgICAgIC8vIOKGsyBPdGhlcndpc2U6CiAgICAgICAgICAgICAvLyAxLiBMZXQgcHJlc2VudGF0
aW9uIHRpbWVzdGFtcCBiZSBhIGRvdWJsZSBwcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgcmVwcmVz
ZW50YXRpb24gb2YKICAgICAgICAgICAgIC8vIHRoZSBjb2RlZCBmcmFtZSdzIHByZXNlbnRhdGlv
biB0aW1lc3RhbXAgaW4gc2Vjb25kcy4KLSAgICAgICAgICAgIHByZXNlbnRhdGlvblRpbWVzdGFt
cCA9IHNhbXBsZS5wcmVzZW50YXRpb25UaW1lKCk7CisgICAgICAgICAgICBwcmVzZW50YXRpb25U
aW1lc3RhbXAgPSBzYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKTsKIAogICAgICAgICAgICAgLy8g
Mi4gTGV0IGRlY29kZSB0aW1lc3RhbXAgYmUgYSBkb3VibGUgcHJlY2lzaW9uIGZsb2F0aW5nIHBv
aW50IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb2RlZCBmcmFtZSdzCiAgICAgICAgICAgICAvLyBk
ZWNvZGUgdGltZXN0YW1wIGluIHNlY29uZHMuCi0gICAgICAgICAgICBkZWNvZGVUaW1lc3RhbXAg
PSBzYW1wbGUuZGVjb2RlVGltZSgpOworICAgICAgICAgICAgZGVjb2RlVGltZXN0YW1wID0gc2Ft
cGxlLT5kZWNvZGVUaW1lKCk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyAxLjMgSWYgbW9kZSBl
cXVhbHMgInNlcXVlbmNlIiBhbmQgZ3JvdXAgc3RhcnQgdGltZXN0YW1wIGlzIHNldCwgdGhlbiBy
dW4gdGhlIGZvbGxvd2luZyBzdGVwczoKQEAgLTg5NSw3ICs4OTgsNyBAQCB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIAogICAg
ICAgICAvLyBOT1RFOiB0aGlzIGlzIG91dC1vZi1vcmRlciwgYnV0IHdlIG5lZWQgVHJhY2tCdWZm
ZXIgdG8gYmUgYWJsZSB0byBjYWNoZSB0aGUgcmVzdWx0cyBvZiB0aW1lc3RhbXAgb2Zmc2V0IHJv
dW5kaW5nCiAgICAgICAgIC8vIDEuNSBMZXQgdHJhY2sgYnVmZmVyIGVxdWFsIHRoZSB0cmFjayBi
dWZmZXIgdGhhdCB0aGUgY29kZWQgZnJhbWUgd2lsbCBiZSBhZGRlZCB0by4KLSAgICAgICAgQXRv
bVN0cmluZyB0cmFja0lEID0gc2FtcGxlLnRyYWNrSUQoKTsKKyAgICAgICAgQXRvbVN0cmluZyB0
cmFja0lEID0gc2FtcGxlLT50cmFja0lEKCk7CiAgICAgICAgIGF1dG8gaXQgPSBtX3RyYWNrQnVm
ZmVyTWFwLmZpbmQodHJhY2tJRCk7CiAgICAgICAgIGlmIChpdCA9PSBtX3RyYWNrQnVmZmVyTWFw
LmVuZCgpKSB7CiAgICAgICAgICAgICAvLyBUaGUgY2xpZW50IG1hbmFnZWQgdG8gYXBwZW5kIGEg
c2FtcGxlIHdpdGggYSB0cmFja0lEIG5vdCBwcmVzZW50IGluIHRoZSBpbml0aWFsaXphdGlvbgpA
QCAtOTc1LDEzICs5NzgsMTMgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZl
U2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAKICAgICAgICAgaWYgKG1fYXBwZW5kTW9kZSA9
PSBTb3VyY2VCdWZmZXJBcHBlbmRNb2RlOjpTZXF1ZW5jZSkgewogICAgICAgICAgICAgLy8gVXNl
IHRoZSBnZW5lcmF0ZWQgdGltZXN0YW1wcyBpbnN0ZWFkIG9mIHRoZSBzYW1wbGUncyB0aW1lc3Rh
bXBzLgotICAgICAgICAgICAgc2FtcGxlLnNldFRpbWVzdGFtcHMocHJlc2VudGF0aW9uVGltZXN0
YW1wLCBkZWNvZGVUaW1lc3RhbXApOworICAgICAgICAgICAgc2FtcGxlLT5zZXRUaW1lc3RhbXBz
KHByZXNlbnRhdGlvblRpbWVzdGFtcCwgZGVjb2RlVGltZXN0YW1wKTsKICAgICAgICAgfSBlbHNl
IGlmICh0cmFja0J1ZmZlci5yb3VuZGVkVGltZXN0YW1wT2Zmc2V0KSB7CiAgICAgICAgICAgICAv
LyBSZWZsZWN0IHRoZSB0aW1lc3RhbXAgb2Zmc2V0IGludG8gdGhlIHNhbXBsZS4KLSAgICAgICAg
ICAgIHNhbXBsZS5vZmZzZXRUaW1lc3RhbXBzQnkodHJhY2tCdWZmZXIucm91bmRlZFRpbWVzdGFt
cE9mZnNldCk7CisgICAgICAgICAgICBzYW1wbGUtPm9mZnNldFRpbWVzdGFtcHNCeSh0cmFja0J1
ZmZlci5yb3VuZGVkVGltZXN0YW1wT2Zmc2V0KTsKICAgICAgICAgfQogCi0gICAgICAgIERFQlVH
X0xPRyhMT0dJREVOVElGSUVSLCBzYW1wbGUpOworICAgICAgICBERUJVR19MT0coTE9HSURFTlRJ
RklFUiwgc2FtcGxlLmdldCgpKTsKIAogICAgICAgICAvLyAxLjcgTGV0IGZyYW1lIGVuZCB0aW1l
c3RhbXAgZXF1YWwgdGhlIHN1bSBvZiBwcmVzZW50YXRpb24gdGltZXN0YW1wIGFuZCBmcmFtZSBk
dXJhdGlvbi4KICAgICAgICAgTWVkaWFUaW1lIGZyYW1lRW5kVGltZXN0YW1wID0gcHJlc2VudGF0
aW9uVGltZXN0YW1wICsgZnJhbWVEdXJhdGlvbjsKQEAgLTk5Myw2ICs5OTYsMzUgQEAgdm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUp
CiAgICAgICAgIC8vIHBvaW50IGZsYWcgdG8gdHJ1ZSwgZHJvcCB0aGUgY29kZWQgZnJhbWUsIGFu
ZCBqdW1wIHRvIHRoZSB0b3Agb2YgdGhlIGxvb3AgdG8gc3RhcnQgcHJvY2Vzc2luZwogICAgICAg
ICAvLyB0aGUgbmV4dCBjb2RlZCBmcmFtZS4KICAgICAgICAgaWYgKHByZXNlbnRhdGlvblRpbWVz
dGFtcCA8IG1fYXBwZW5kV2luZG93U3RhcnQgfHwgZnJhbWVFbmRUaW1lc3RhbXAgPiBtX2FwcGVu
ZFdpbmRvd0VuZCkgeworICAgICAgICAgICAgLy8gMS44IE5vdGUuCisgICAgICAgICAgICAvLyBT
b21lIGltcGxlbWVudGF0aW9ucyBNQVkgY2hvb3NlIHRvIGNvbGxlY3Qgc29tZSBvZiB0aGVzZSBj
b2RlZCBmcmFtZXMgd2l0aCBwcmVzZW50YXRpb24KKyAgICAgICAgICAgIC8vIHRpbWVzdGFtcCBs
ZXNzIHRoYW4gYXBwZW5kV2luZG93U3RhcnQgYW5kIHVzZSB0aGVtIHRvIGdlbmVyYXRlIGEgc3Bs
aWNlIGF0IHRoZSBmaXJzdCBjb2RlZAorICAgICAgICAgICAgLy8gZnJhbWUgdGhhdCBoYXMgYSBw
cmVzZW50YXRpb24gdGltZXN0YW1wIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBhcHBlbmRXaW5k
b3dTdGFydCBldmVuIGlmCisgICAgICAgICAgICAvLyB0aGF0IGZyYW1lIGlzIG5vdCBhIHJhbmRv
bSBhY2Nlc3MgcG9pbnQuIFN1cHBvcnRpbmcgdGhpcyByZXF1aXJlcyBtdWx0aXBsZSBkZWNvZGVy
cyBvcgorICAgICAgICAgICAgLy8gZmFzdGVyIHRoYW4gcmVhbC10aW1lIGRlY29kaW5nIHNvIGZv
ciBub3cgdGhpcyBiZWhhdmlvciB3aWxsIG5vdCBiZSBhIG5vcm1hdGl2ZQorICAgICAgICAgICAg
Ly8gcmVxdWlyZW1lbnQuCisgICAgICAgICAgICAvLyAxLjkgTm90ZS4KKyAgICAgICAgICAgIC8v
IFNvbWUgaW1wbGVtZW50YXRpb25zIE1BWSBjaG9vc2UgdG8gY29sbGVjdCBjb2RlZCBmcmFtZXMg
d2l0aCBwcmVzZW50YXRpb24gdGltZXN0YW1wIGxlc3MKKyAgICAgICAgICAgIC8vIHRoYW4gYXBw
ZW5kV2luZG93RW5kIGFuZCBmcmFtZSBlbmQgdGltZXN0YW1wIGdyZWF0ZXIgdGhhbiBhcHBlbmRX
aW5kb3dFbmQgYW5kIHVzZSB0aGVtIHRvCisgICAgICAgICAgICAvLyBnZW5lcmF0ZSBhIHNwbGlj
ZSBhY3Jvc3MgdGhlIHBvcnRpb24gb2YgdGhlIGNvbGxlY3RlZCBjb2RlZCBmcmFtZXMgd2l0aGlu
IHRoZSBhcHBlbmQKKyAgICAgICAgICAgIC8vIHdpbmRvdyBhdCB0aW1lIG9mIGNvbGxlY3Rpb24s
IGFuZCB0aGUgYmVnaW5uaW5nIHBvcnRpb24gb2YgbGF0ZXIgcHJvY2Vzc2VkIGZyYW1lcyB3aGlj
aAorICAgICAgICAgICAgLy8gb25seSBwYXJ0aWFsbHkgb3ZlcmxhcCB0aGUgZW5kIG9mIHRoZSBj
b2xsZWN0ZWQgY29kZWQgZnJhbWVzLiBTdXBwb3J0aW5nIHRoaXMgcmVxdWlyZXMKKyAgICAgICAg
ICAgIC8vIG11bHRpcGxlIGRlY29kZXJzIG9yIGZhc3RlciB0aGFuIHJlYWwtdGltZSBkZWNvZGlu
ZyBzbyBmb3Igbm93IHRoaXMgYmVoYXZpb3Igd2lsbCBub3QgYmUgYQorICAgICAgICAgICAgLy8g
bm9ybWF0aXZlIHJlcXVpcmVtZW50LiBJbiBjb25qdW5jdGlvbiB3aXRoIGNvbGxlY3RpbmcgY29k
ZWQgZnJhbWVzIHRoYXQgc3BhbgorICAgICAgICAgICAgLy8gYXBwZW5kV2luZG93U3RhcnQsIGlt
cGxlbWVudGF0aW9ucyBNQVkgdGh1cyBzdXBwb3J0IGdhcGxlc3MgYXVkaW8gc3BsaWNpbmcuCisg
ICAgICAgICAgICAvLyBBdWRpbyBNZWRpYVNhbXBsZXMgYXJlIHR5cGljYWxseSBtYWRlIG9mIHBh
Y2tlZCBhdWRpbyBzYW1wbGVzLiBUcmltIHNhbXBsZSB0byBtYWtlIGl0IGZpdCB3aXRoaW4gdGhl
IGFwcGVuZFdpbmRvdy4KKyAgICAgICAgICAgIGlmIChzYW1wbGUtPmlzRGl2aXNhYmxlKCkpIHsK
KyAgICAgICAgICAgICAgICBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwgUmVmUHRyPE1l
ZGlhU2FtcGxlPj4gcmVwbGFjZW1lbnRTYW1wbGVzID0gc2FtcGxlLT5kaXZpZGUobV9hcHBlbmRX
aW5kb3dTdGFydCk7CisgICAgICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50U2FtcGxlcy5zZWNv
bmQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnRTYW1wbGVzID0gcmVwbGFjZW1l
bnRTYW1wbGVzLnNlY29uZC0+ZGl2aWRlKG1fYXBwZW5kV2luZG93RW5kKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlcGxhY2VtZW50U2FtcGxlcy5maXJzdCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgc2FtcGxlID0gcmVwbGFjZW1lbnRTYW1wbGVzLmZpcnN0LnJlbGVhc2VOb25OdWxs
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9hcHBlbmRNb2RlICE9IFNvdXJjZUJ1
ZmZlckFwcGVuZE1vZGU6OlNlcXVlbmNlICYmIHRyYWNrQnVmZmVyLnJvdW5kZWRUaW1lc3RhbXBP
ZmZzZXQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlLT5vZmZzZXRUaW1lc3Rh
bXBzQnkoLXRyYWNrQnVmZmVyLnJvdW5kZWRUaW1lc3RhbXBPZmZzZXQpOworICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB0cmFja0J1ZmZlci5uZWVkUmFuZG9t
QWNjZXNzRmxhZyA9IHRydWU7CiAgICAgICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJp
dmF0ZURpZERyb3BTYW1wbGUoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwMTMsNyArMTA0
NSw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNh
bXBsZSYgc2FtcGxlKQogICAgICAgICBpZiAodHJhY2tCdWZmZXIubmVlZFJhbmRvbUFjY2Vzc0Zs
YWcpIHsKICAgICAgICAgICAgIC8vIDEuMTEuMSBJZiB0aGUgY29kZWQgZnJhbWUgaXMgbm90IGEg
cmFuZG9tIGFjY2VzcyBwb2ludCwgdGhlbiBkcm9wIHRoZSBjb2RlZCBmcmFtZSBhbmQganVtcAog
ICAgICAgICAgICAgLy8gdG8gdGhlIHRvcCBvZiB0aGUgbG9vcCB0byBzdGFydCBwcm9jZXNzaW5n
IHRoZSBuZXh0IGNvZGVkIGZyYW1lLgotICAgICAgICAgICAgaWYgKCFzYW1wbGUuaXNTeW5jKCkp
IHsKKyAgICAgICAgICAgIGlmICghc2FtcGxlLT5pc1N5bmMoKSkgewogICAgICAgICAgICAgICAg
IG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkRHJvcFNhbXBsZSgpOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTEwODEsMTAgKzExMTMsMTAgQEAgdm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1w
bGUpCiAgICAgICAgIC8vIG5leHQgSS1mcmFtZS4gU2VlIDxodHRwczovL2dpdGh1Yi5jb20vdzNj
L21lZGlhLXNvdXJjZS9pc3N1ZXMvMTg3PiBmb3IgYSBkaXNjdXNzaW9uIG9mIHdoYXQKICAgICAg
ICAgLy8gdGhlIGhvdyB0aGUgTVNFIHNwZWNpZmljYXRpb24gc2hvdWxkIGhhbmRsaWUgdGhpcyBz
ZWNuYXJpby4KICAgICAgICAgZG8gewotICAgICAgICAgICAgaWYgKCFzYW1wbGUuaXNTeW5jKCkp
CisgICAgICAgICAgICBpZiAoIXNhbXBsZS0+aXNTeW5jKCkpCiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAKLSAgICAgICAgICAgIERlY29kZU9yZGVyU2FtcGxlTWFwOjpLZXlUeXBlIGRlY29kZUtl
eShzYW1wbGUuZGVjb2RlVGltZSgpLCBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpKTsKKyAgICAg
ICAgICAgIERlY29kZU9yZGVyU2FtcGxlTWFwOjpLZXlUeXBlIGRlY29kZUtleShzYW1wbGUtPmRl
Y29kZVRpbWUoKSwgc2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCkpOwogICAgICAgICAgICAgYXV0
byBuZXh0U2FtcGxlSW5EZWNvZGVPcmRlciA9IHRyYWNrQnVmZmVyLnNhbXBsZXMuZGVjb2RlT3Jk
ZXIoKS5maW5kU2FtcGxlQWZ0ZXJEZWNvZGVLZXkoZGVjb2RlS2V5KTsKICAgICAgICAgICAgIGlm
IChuZXh0U2FtcGxlSW5EZWNvZGVPcmRlciA9PSB0cmFja0J1ZmZlci5zYW1wbGVzLmRlY29kZU9y
ZGVyKCkuZW5kKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMTUxLDcgKzExODMsNyBA
QCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUm
IHNhbXBsZSkKICAgICAgICAgICAgIC8vIE5PVEU6IGluIHRoZSBjYXNlIG9mIGItZnJhbWVzLCB0
aGUgcHJldmlvdXMgc3RlcCBtYXkgbGVhdmUgaW4gcGxhY2Ugc2FtcGxlcyB3aG9zZSBwcmVzZW50
YXRpb24KICAgICAgICAgICAgIC8vIHRpbWVzdGFtcCA8IHByZXNlbnRhdGlvblRpbWUsIGJ1dCB3
aG9zZSBkZWNvZGUgdGltZXN0YW1wID49IGRlY29kZVRpbWUuIFRoZXNlIHdpbGwgZXZlbnR1YWxs
eSBjYXVzZQogICAgICAgICAgICAgLy8gYSBkZWNvZGUgZXJyb3IgaWYgbGVmdCBpbiBwbGFjZSwg
c28gcmVtb3ZlIHRoZXNlIHNhbXBsZXMgYXMgd2VsbC4KLSAgICAgICAgICAgIERlY29kZU9yZGVy
U2FtcGxlTWFwOjpLZXlUeXBlIGRlY29kZUtleShzYW1wbGUuZGVjb2RlVGltZSgpLCBzYW1wbGUu
cHJlc2VudGF0aW9uVGltZSgpKTsKKyAgICAgICAgICAgIERlY29kZU9yZGVyU2FtcGxlTWFwOjpL
ZXlUeXBlIGRlY29kZUtleShzYW1wbGUtPmRlY29kZVRpbWUoKSwgc2FtcGxlLT5wcmVzZW50YXRp
b25UaW1lKCkpOwogICAgICAgICAgICAgYXV0byBzYW1wbGVzV2l0aEhpZ2hlckRlY29kZVRpbWVz
ID0gdHJhY2tCdWZmZXIuc2FtcGxlcy5kZWNvZGVPcmRlcigpLmZpbmRTYW1wbGVzQmV0d2VlbkRl
Y29kZUtleXMoZGVjb2RlS2V5LCBlcmFzZWRTYW1wbGVzLmRlY29kZU9yZGVyKCkuYmVnaW4oKS0+
Zmlyc3QpOwogICAgICAgICAgICAgaWYgKHNhbXBsZXNXaXRoSGlnaGVyRGVjb2RlVGltZXMuZmly
c3QgIT0gc2FtcGxlc1dpdGhIaWdoZXJEZWNvZGVUaW1lcy5zZWNvbmQpCiAgICAgICAgICAgICAg
ICAgZGVwZW5kZW50U2FtcGxlcy5pbnNlcnQoc2FtcGxlc1dpdGhIaWdoZXJEZWNvZGVUaW1lcy5m
aXJzdCwgc2FtcGxlc1dpdGhIaWdoZXJEZWNvZGVUaW1lcy5zZWNvbmQpOwpAQCAtMTE5NywxMSAr
MTIyOSwxMSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoTWVk
aWFTYW1wbGUmIHNhbXBsZSkKICAgICAgICAgLy8gTm90ZSB0aGF0IGFkZGluZyBhIGZyYW1lIHRv
IHRoZSBkZWNvZGUgcXVldWUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgaXQgd2lsbCBiZSBhY3R1YWxs
eSBlbnF1ZXVlZCBhdCB0aGF0IHBvaW50LgogICAgICAgICAvLyBJZiB0aGUgZnJhbWUgaXMgYWZ0
ZXIgdGhlIGRpc2NvbnRpbnVpdHkgYm91bmRhcnksIHRoZSBlbnF1ZXVlaW5nIGFsZ29yaXRobSB3
aWxsIGhvbGQgaXQgdGhlcmUgdW50aWwgc2FtcGxlcwogICAgICAgICAvLyB3aXRoIGVhcmxpZXIg
dGltZXN0YW1wcyBhcmUgZW5xdWV1ZWQuIFRoZSBkZWNvZGUgcXVldWUgaXMgbm90IEZJRk8sIGJ1
dCByYXRoZXIgYW4gb3JkZXJlZCBtYXAuCi0gICAgICAgIERlY29kZU9yZGVyU2FtcGxlTWFwOjpL
ZXlUeXBlIGRlY29kZUtleShzYW1wbGUuZGVjb2RlVGltZSgpLCBzYW1wbGUucHJlc2VudGF0aW9u
VGltZSgpKTsKKyAgICAgICAgRGVjb2RlT3JkZXJTYW1wbGVNYXA6OktleVR5cGUgZGVjb2RlS2V5
KHNhbXBsZS0+ZGVjb2RlVGltZSgpLCBzYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSk7CiAgICAg
ICAgIGlmICh0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVLZXkuZmlyc3QuaXNJbnZhbGlk
KCkgfHwgZGVjb2RlS2V5ID4gdHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2RlS2V5KSB7Ci0g
ICAgICAgICAgICB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5pbnNlcnQoRGVjb2RlT3JkZXJTYW1w
bGVNYXA6Ok1hcFR5cGU6OnZhbHVlX3R5cGUoZGVjb2RlS2V5LCAmc2FtcGxlKSk7CisgICAgICAg
ICAgICB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5pbnNlcnQoRGVjb2RlT3JkZXJTYW1wbGVNYXA6
Ok1hcFR5cGU6OnZhbHVlX3R5cGUoZGVjb2RlS2V5LCAmc2FtcGxlLmdldCgpKSk7CiAKLSAgICAg
ICAgICAgIGlmICh0cmFja0J1ZmZlci5taW5pbXVtRW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lLmlz
VmFsaWQoKSAmJiBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpIDwgdHJhY2tCdWZmZXIubWluaW11
bUVucXVldWVkUHJlc2VudGF0aW9uVGltZSkKKyAgICAgICAgICAgIGlmICh0cmFja0J1ZmZlci5t
aW5pbXVtRW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lLmlzVmFsaWQoKSAmJiBzYW1wbGUtPnByZXNl
bnRhdGlvblRpbWUoKSA8IHRyYWNrQnVmZmVyLm1pbmltdW1FbnF1ZXVlZFByZXNlbnRhdGlvblRp
bWUpCiAgICAgICAgICAgICAgICAgdHJhY2tCdWZmZXIubmVlZHNNaW5pbXVtVXBjb21pbmdQcmVz
ZW50YXRpb25UaW1lVXBkYXRpbmcgPSB0cnVlOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaAppbmRl
eCA1MmFiN2U1ZTYwMTY0OGY0NDNlNjc3NzJmYzIzZGZkNDMyMjNlNTkyLi41Mzk1NDBiM2RiNjM1
MmIyZWFkOThjN2M3NWI1NTQ0OWZjNDkzYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCkBAIC0xNjEsNyArMTYx
LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgYXBwZW5kQ29tcGxldGVkKGJvb2wgcGFyc2luZ1N1
Y2NlZWRlZCwgYm9vbCBpc0VuZGVkKTsKICAgICB2b2lkIHJlZW5xdWVTYW1wbGVzKGNvbnN0IEF0
b21TdHJpbmcmIHRyYWNrSUQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkUmVjZWl2ZUlu
aXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXph
dGlvblNlZ21lbnQmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRpZFJlY2VpdmVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmKTsKICAgICB2
b2lkIHByb3ZpZGVNZWRpYURhdGEoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRCk7CiAgICAgdWlu
dDY0X3QgdG90YWxUcmFja0J1ZmZlclNpemVJbkJ5dGVzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXgg
ZDRiODRkMzJkNjMyZmZmMzFmMGU5Y2E3OTQzMmJjMTQ4YjE3MWI5Yy4uYmYxNGYxNjlhNDBmOWE2
ZTlhOTM4YTI5MmNkYmUyODMwMzc4ODNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTQwOSw3ICs0MDksNyBAQCB2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQYXJzZUluaXRpYWxpemF0aW9uRGF0
YShJbml0aWFsaXphdGlvblNlZ21lbgogICAgICAgICAgICAgICAgIGF1dG8mIG1lZGlhU2FtcGxl
ID0gdHJhY2tJZE1lZGlhU2FtcGxlUGFpci5zZWNvbmQ7CiAgICAgICAgICAgICAgICAgaWYgKHRy
YWNrSWQgPT0gbV9lbmFibGVkVmlkZW9UcmFja0lEIHx8IG1fYXVkaW9SZW5kZXJlcnMuY29udGFp
bnModHJhY2tJZCkpIHsKICAgICAgICAgICAgICAgICAgICAgREVCVUdfTE9HKExPR0lERU5USUZJ
RVIsIG1lZGlhU2FtcGxlLmdldCgpKTsKLSAgICAgICAgICAgICAgICAgICAgZGlkUmVjZWl2ZVNh
bXBsZShtZWRpYVNhbXBsZSk7CisgICAgICAgICAgICAgICAgICAgIGRpZFJlY2VpdmVTYW1wbGUo
V1RGTW92ZShtZWRpYVNhbXBsZSkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
IApAQCAtNDUwLDcgKzQ1MCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRp
ZFByb3ZpZGVNZWRpYURhdGFGb3JUcmFja0lkKFJlZjxNZWRpYVNhbXBsZT4mCiAgICAgfQogCiAg
ICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsIG1lZGlhU2FtcGxlLmdldCgpKTsKLSAgICBkaWRS
ZWNlaXZlU2FtcGxlKG1lZGlhU2FtcGxlKTsKKyAgICBkaWRSZWNlaXZlU2FtcGxlKFdURk1vdmUo
bWVkaWFTYW1wbGUpKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6d2ls
bFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQodWlu
dDY0X3QgdHJhY2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGE3NWFiZjU2YzIxZWIyYmQxMDZhMjc5YTYxMGYwN2M2
NGI5NDUxY2QuLmIxNWZjNDkxZTRkNDQ1ZTM4MDEyZWI1NmRmNjkzNmU2NTc2MjIyZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNw
cApAQCAtMTg2LDkgKzE4Niw5IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6
ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmZXJQCiAgICAgU291cmNl
QnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChXVEZNb3ZlKGlu
aXRpYWxpemF0aW9uU2VnbWVudCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAot
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlh
U2FtcGxlJiBzYW1wbGUpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJl
Y2VpdmVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSkKIHsKLSAgICBTb3VyY2VCdWZm
ZXJQcml2YXRlOjpkaWRSZWNlaXZlU2FtcGxlKHNhbXBsZSk7CisgICAgU291cmNlQnVmZmVyUHJp
dmF0ZTo6ZGlkUmVjZWl2ZVNhbXBsZShXVEZNb3ZlKHNhbXBsZSkpOwogfQogCiB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVBbGxQZW5kaW5nU2FtcGxlcygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCmlu
ZGV4IGRkMmYxYWY2ZDhlM2NkOGU0MjQ0NGRkNzM5YzllYzNjNmJjZTRlMjUuLmNjMmFjYzA1N2Ni
NGE4ZDg5ZjA2ZjhiNzExNjMxYzA2ZWIwZWJkOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJl
YW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC03Myw3ICs3Myw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIG5vdGlmeVJlYWR5Rm9yTW9yZVNhbXBsZXMoKTsKIAogICAgIHZvaWQgZGlk
UmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJ
bml0aWFsaXphdGlvblNlZ21lbnQmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAg
ICB2b2lkIGRpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmKTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBbGxQZW5k
aW5nU2FtcGxlcygpOwogICAgIHZvaWQgYXBwZW5kUGFyc2luZ0ZhaWxlZCgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421300</attachid>
            <date>2021-02-23 04:17:29 -0800</date>
            <delta_ts>2021-02-24 22:32:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222260-20210223231728.patch</filename>
            <type>text/plain</type>
            <size>23501</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTIyM2ZjNmEyZGZjMDAx
ZGE1NzI3ZGUwOGUzMGE5ZGNkZGNiM2FmNy4uODRiNjM1MTIyNjE2YTkxNzZmYWIxNTI2YTA5NmNm
MGMxMzU1ZTZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTAyLTIzICBKZWFu
LVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgW01TRV0gTWVkaWEgc2Vn
bWVudCBpcyBpbmNvcnJlY3RseSBkcm9wcGVkIHdoZW4gdXNpbmcgbmVnYXRpdmUgdGltZXN0YW1w
T2Zmc2V0IG9yIHdoZW4gc291cmNlIGJ1ZmZlciBhcHBlbmRXaW5kb3cgaXMgc2V0LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMjYwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS10aW1lc3RhbXBvZmZzZXQtdHJpbS5odG1sCisKKyAgICAg
ICAgQ29yZU1lZGlhIHBhY2tzIG11bHRpcGxlIGF1ZGlvIGZyYW1lcyB0b2dldGhlciBpbnRvIGEg
c2luZ2xlIENNU2FtcGxlQnVmZmVyLCB0aGlzIGFsbG93cyBmb3IgZmFzdGVyIHByb2Nlc3Npbmcg
YW5kIGVhc2llciBpbnNlcnRpb24gaW50byB0aGUgdHJhY2sgYnVmZmVyIHRyZWUuCisgICAgICAg
IEhvd2V2ZXIsIHBlciBtZWRpYXNvdXJlIHNwZWMgWzFdLCBhIGZyYW1lIGlzIHRvIGJlIGRyb3Bw
ZWQgYWNjb3JkaW5nIHRvIGl0cyBzdGFydCB0aW1lIGFuZCBkdXJhdGlvbi4gU28gaWYgb25seSB0
aGUgYmVnaW5uaW5nIG9mIHRoZSBNZWRpYVNhbXBsZSB3YXMgdG8gYmUgZHJvcHBlZCwgd2Ugd291
bGQgaGF2ZSBpbmNvcnJlY3RseSBkcm9wcGVkIHRoZSBsb3QuCisgICAgICAgIFdlIG5vdyBzcGxp
dCB0aGUgTWVkaWFTYW1wbGUgaWYgaXQgaXMgZ29pbmcgdG8gYmUgZHJvcHBlZCB0byBlbnN1cmUg
dGhhdCBhbGwgdXNhYmxlIGNvbnRlbnQgaXMgaW5zZXJ0ZWQgaW50byB0aGUgdHJhY2sgYnVmZmVy
LgorICAgICAgICBBdWRpbyBzcGxpY2luZyBpc24ndCBkb25lIHlldCwgYnV0IHRoaXMgZ2V0cyB1
cyBjbG9zZWVyIHRvIGl0LgorCisgICAgICAgIFsxXSBodHRwczovL3czYy5naXRodWIuaW8vbWVk
aWEtc291cmNlLyNzb3VyY2VidWZmZXItY29kZWQtZnJhbWUtcHJvY2Vzc2luZworCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlU2FtcGxlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMubW06CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlk
UGFyc2VJbml0aWFsaXphdGlvbkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVNZWRpYURhdGFGb3JUcmFja0lkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
cjo6ZGlkUmVjZWl2ZVNhbXBsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmg6CisKIDIwMjEtMDItMjAgIFl1
c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IG1vZHVs
ZXMgaW4gc2VydmljZSB3b3JrZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCmluZGV4IDA1Y2E1M2UyZmQ0Mzcz
YzQ0OTIxMDBkMWQxODdjNThlMzE1YmZhMDAuLjVjMjY0YWI3NjNkNTgyMzYyNjUwYzE1MzY0MTAz
MThiMGI3ODhmMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCkBAIC04MTYsNyArODE2LDcgQEAgYm9vbCBT
b3VyY2VCdWZmZXJQcml2YXRlOjp2YWxpZGF0ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBT
b3VyY2VCdWZmZXJQcml2YXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlOjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCit2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIG9y
aWdpbmFsU2FtcGxlKQogewogICAgIGlmICghbV9pc0F0dGFjaGVkKQogICAgICAgICByZXR1cm47
CkBAIC04NDIsNiArODQyLDkgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZl
U2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgLy8gYXJlIHJ1bjoKICAgICAvLyAxLiBG
b3IgZWFjaCBjb2RlZCBmcmFtZSBpbiB0aGUgbWVkaWEgc2VnbWVudCBydW4gdGhlIGZvbGxvd2lu
ZyBzdGVwczoKICAgICAvLyAxLjEuIExvb3AgVG9wCisKKyAgICBSZWY8TWVkaWFTYW1wbGU+IHNh
bXBsZSA9IFdURk1vdmUob3JpZ2luYWxTYW1wbGUpOworCiAgICAgZG8gewogICAgICAgICBNZWRp
YVRpbWUgcHJlc2VudGF0aW9uVGltZXN0YW1wOwogICAgICAgICBNZWRpYVRpbWUgZGVjb2RlVGlt
ZXN0YW1wOwpAQCAtODUwLDcgKzg1Myw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlk
UmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgICAgICAvLyBzYW1wbGUncyBk
dXJhdGlvbiBmb3IgdGltZXN0YW1wIGdlbmVyYXRpb24uCiAgICAgICAgIC8vIDEuMiBMZXQgZnJh
bWUgZHVyYXRpb24gYmUgYSBkb3VibGUgcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IHJlcHJlc2Vu
dGF0aW9uIG9mIHRoZSBjb2RlZCBmcmFtZSdzCiAgICAgICAgIC8vIGR1cmF0aW9uIGluIHNlY29u
ZHMuCi0gICAgICAgIE1lZGlhVGltZSBmcmFtZUR1cmF0aW9uID0gc2FtcGxlLmR1cmF0aW9uKCk7
CisgICAgICAgIE1lZGlhVGltZSBmcmFtZUR1cmF0aW9uID0gc2FtcGxlLT5kdXJhdGlvbigpOwog
CiAgICAgICAgIGlmIChtX3Nob3VsZEdlbmVyYXRlVGltZXN0YW1wcykgewogICAgICAgICAgICAg
Ly8g4oazIElmIGdlbmVyYXRlIHRpbWVzdGFtcHMgZmxhZyBlcXVhbHMgdHJ1ZToKQEAgLTg2NSwx
MSArODY4LDExIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZVNhbXBsZShN
ZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgICAgICAgICAgLy8g4oazIE90aGVyd2lzZToKICAgICAg
ICAgICAgIC8vIDEuIExldCBwcmVzZW50YXRpb24gdGltZXN0YW1wIGJlIGEgZG91YmxlIHByZWNp
c2lvbiBmbG9hdGluZyBwb2ludCByZXByZXNlbnRhdGlvbiBvZgogICAgICAgICAgICAgLy8gdGhl
IGNvZGVkIGZyYW1lJ3MgcHJlc2VudGF0aW9uIHRpbWVzdGFtcCBpbiBzZWNvbmRzLgotICAgICAg
ICAgICAgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gc2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKTsK
KyAgICAgICAgICAgIHByZXNlbnRhdGlvblRpbWVzdGFtcCA9IHNhbXBsZS0+cHJlc2VudGF0aW9u
VGltZSgpOwogCiAgICAgICAgICAgICAvLyAyLiBMZXQgZGVjb2RlIHRpbWVzdGFtcCBiZSBhIGRv
dWJsZSBwcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvZGVk
IGZyYW1lJ3MKICAgICAgICAgICAgIC8vIGRlY29kZSB0aW1lc3RhbXAgaW4gc2Vjb25kcy4KLSAg
ICAgICAgICAgIGRlY29kZVRpbWVzdGFtcCA9IHNhbXBsZS5kZWNvZGVUaW1lKCk7CisgICAgICAg
ICAgICBkZWNvZGVUaW1lc3RhbXAgPSBzYW1wbGUtPmRlY29kZVRpbWUoKTsKICAgICAgICAgfQog
CiAgICAgICAgIC8vIDEuMyBJZiBtb2RlIGVxdWFscyAic2VxdWVuY2UiIGFuZCBncm91cCBzdGFy
dCB0aW1lc3RhbXAgaXMgc2V0LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgpAQCAtODk1
LDcgKzg5OCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZVNhbXBsZShN
ZWRpYVNhbXBsZSYgc2FtcGxlKQogCiAgICAgICAgIC8vIE5PVEU6IHRoaXMgaXMgb3V0LW9mLW9y
ZGVyLCBidXQgd2UgbmVlZCBUcmFja0J1ZmZlciB0byBiZSBhYmxlIHRvIGNhY2hlIHRoZSByZXN1
bHRzIG9mIHRpbWVzdGFtcCBvZmZzZXQgcm91bmRpbmcKICAgICAgICAgLy8gMS41IExldCB0cmFj
ayBidWZmZXIgZXF1YWwgdGhlIHRyYWNrIGJ1ZmZlciB0aGF0IHRoZSBjb2RlZCBmcmFtZSB3aWxs
IGJlIGFkZGVkIHRvLgotICAgICAgICBBdG9tU3RyaW5nIHRyYWNrSUQgPSBzYW1wbGUudHJhY2tJ
RCgpOworICAgICAgICBBdG9tU3RyaW5nIHRyYWNrSUQgPSBzYW1wbGUtPnRyYWNrSUQoKTsKICAg
ICAgICAgYXV0byBpdCA9IG1fdHJhY2tCdWZmZXJNYXAuZmluZCh0cmFja0lEKTsKICAgICAgICAg
aWYgKGl0ID09IG1fdHJhY2tCdWZmZXJNYXAuZW5kKCkpIHsKICAgICAgICAgICAgIC8vIFRoZSBj
bGllbnQgbWFuYWdlZCB0byBhcHBlbmQgYSBzYW1wbGUgd2l0aCBhIHRyYWNrSUQgbm90IHByZXNl
bnQgaW4gdGhlIGluaXRpYWxpemF0aW9uCkBAIC05NzUsMTMgKzk3OCwxMyBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIAog
ICAgICAgICBpZiAobV9hcHBlbmRNb2RlID09IFNvdXJjZUJ1ZmZlckFwcGVuZE1vZGU6OlNlcXVl
bmNlKSB7CiAgICAgICAgICAgICAvLyBVc2UgdGhlIGdlbmVyYXRlZCB0aW1lc3RhbXBzIGluc3Rl
YWQgb2YgdGhlIHNhbXBsZSdzIHRpbWVzdGFtcHMuCi0gICAgICAgICAgICBzYW1wbGUuc2V0VGlt
ZXN0YW1wcyhwcmVzZW50YXRpb25UaW1lc3RhbXAsIGRlY29kZVRpbWVzdGFtcCk7CisgICAgICAg
ICAgICBzYW1wbGUtPnNldFRpbWVzdGFtcHMocHJlc2VudGF0aW9uVGltZXN0YW1wLCBkZWNvZGVU
aW1lc3RhbXApOwogICAgICAgICB9IGVsc2UgaWYgKHRyYWNrQnVmZmVyLnJvdW5kZWRUaW1lc3Rh
bXBPZmZzZXQpIHsKICAgICAgICAgICAgIC8vIFJlZmxlY3QgdGhlIHRpbWVzdGFtcCBvZmZzZXQg
aW50byB0aGUgc2FtcGxlLgotICAgICAgICAgICAgc2FtcGxlLm9mZnNldFRpbWVzdGFtcHNCeSh0
cmFja0J1ZmZlci5yb3VuZGVkVGltZXN0YW1wT2Zmc2V0KTsKKyAgICAgICAgICAgIHNhbXBsZS0+
b2Zmc2V0VGltZXN0YW1wc0J5KHRyYWNrQnVmZmVyLnJvdW5kZWRUaW1lc3RhbXBPZmZzZXQpOwog
ICAgICAgICB9CiAKLSAgICAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsIHNhbXBsZSk7Cisg
ICAgICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCBzYW1wbGUuZ2V0KCkpOwogCiAgICAgICAg
IC8vIDEuNyBMZXQgZnJhbWUgZW5kIHRpbWVzdGFtcCBlcXVhbCB0aGUgc3VtIG9mIHByZXNlbnRh
dGlvbiB0aW1lc3RhbXAgYW5kIGZyYW1lIGR1cmF0aW9uLgogICAgICAgICBNZWRpYVRpbWUgZnJh
bWVFbmRUaW1lc3RhbXAgPSBwcmVzZW50YXRpb25UaW1lc3RhbXAgKyBmcmFtZUR1cmF0aW9uOwpA
QCAtOTkzLDYgKzk5NiwzNSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVT
YW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICAgICAgLy8gcG9pbnQgZmxhZyB0byB0cnVl
LCBkcm9wIHRoZSBjb2RlZCBmcmFtZSwgYW5kIGp1bXAgdG8gdGhlIHRvcCBvZiB0aGUgbG9vcCB0
byBzdGFydCBwcm9jZXNzaW5nCiAgICAgICAgIC8vIHRoZSBuZXh0IGNvZGVkIGZyYW1lLgogICAg
ICAgICBpZiAocHJlc2VudGF0aW9uVGltZXN0YW1wIDwgbV9hcHBlbmRXaW5kb3dTdGFydCB8fCBm
cmFtZUVuZFRpbWVzdGFtcCA+IG1fYXBwZW5kV2luZG93RW5kKSB7CisgICAgICAgICAgICAvLyAx
LjggTm90ZS4KKyAgICAgICAgICAgIC8vIFNvbWUgaW1wbGVtZW50YXRpb25zIE1BWSBjaG9vc2Ug
dG8gY29sbGVjdCBzb21lIG9mIHRoZXNlIGNvZGVkIGZyYW1lcyB3aXRoIHByZXNlbnRhdGlvbgor
ICAgICAgICAgICAgLy8gdGltZXN0YW1wIGxlc3MgdGhhbiBhcHBlbmRXaW5kb3dTdGFydCBhbmQg
dXNlIHRoZW0gdG8gZ2VuZXJhdGUgYSBzcGxpY2UgYXQgdGhlIGZpcnN0IGNvZGVkCisgICAgICAg
ICAgICAvLyBmcmFtZSB0aGF0IGhhcyBhIHByZXNlbnRhdGlvbiB0aW1lc3RhbXAgZ3JlYXRlciB0
aGFuIG9yIGVxdWFsIHRvIGFwcGVuZFdpbmRvd1N0YXJ0IGV2ZW4gaWYKKyAgICAgICAgICAgIC8v
IHRoYXQgZnJhbWUgaXMgbm90IGEgcmFuZG9tIGFjY2VzcyBwb2ludC4gU3VwcG9ydGluZyB0aGlz
IHJlcXVpcmVzIG11bHRpcGxlIGRlY29kZXJzIG9yCisgICAgICAgICAgICAvLyBmYXN0ZXIgdGhh
biByZWFsLXRpbWUgZGVjb2Rpbmcgc28gZm9yIG5vdyB0aGlzIGJlaGF2aW9yIHdpbGwgbm90IGJl
IGEgbm9ybWF0aXZlCisgICAgICAgICAgICAvLyByZXF1aXJlbWVudC4KKyAgICAgICAgICAgIC8v
IDEuOSBOb3RlLgorICAgICAgICAgICAgLy8gU29tZSBpbXBsZW1lbnRhdGlvbnMgTUFZIGNob29z
ZSB0byBjb2xsZWN0IGNvZGVkIGZyYW1lcyB3aXRoIHByZXNlbnRhdGlvbiB0aW1lc3RhbXAgbGVz
cworICAgICAgICAgICAgLy8gdGhhbiBhcHBlbmRXaW5kb3dFbmQgYW5kIGZyYW1lIGVuZCB0aW1l
c3RhbXAgZ3JlYXRlciB0aGFuIGFwcGVuZFdpbmRvd0VuZCBhbmQgdXNlIHRoZW0gdG8KKyAgICAg
ICAgICAgIC8vIGdlbmVyYXRlIGEgc3BsaWNlIGFjcm9zcyB0aGUgcG9ydGlvbiBvZiB0aGUgY29s
bGVjdGVkIGNvZGVkIGZyYW1lcyB3aXRoaW4gdGhlIGFwcGVuZAorICAgICAgICAgICAgLy8gd2lu
ZG93IGF0IHRpbWUgb2YgY29sbGVjdGlvbiwgYW5kIHRoZSBiZWdpbm5pbmcgcG9ydGlvbiBvZiBs
YXRlciBwcm9jZXNzZWQgZnJhbWVzIHdoaWNoCisgICAgICAgICAgICAvLyBvbmx5IHBhcnRpYWxs
eSBvdmVybGFwIHRoZSBlbmQgb2YgdGhlIGNvbGxlY3RlZCBjb2RlZCBmcmFtZXMuIFN1cHBvcnRp
bmcgdGhpcyByZXF1aXJlcworICAgICAgICAgICAgLy8gbXVsdGlwbGUgZGVjb2RlcnMgb3IgZmFz
dGVyIHRoYW4gcmVhbC10aW1lIGRlY29kaW5nIHNvIGZvciBub3cgdGhpcyBiZWhhdmlvciB3aWxs
IG5vdCBiZSBhCisgICAgICAgICAgICAvLyBub3JtYXRpdmUgcmVxdWlyZW1lbnQuIEluIGNvbmp1
bmN0aW9uIHdpdGggY29sbGVjdGluZyBjb2RlZCBmcmFtZXMgdGhhdCBzcGFuCisgICAgICAgICAg
ICAvLyBhcHBlbmRXaW5kb3dTdGFydCwgaW1wbGVtZW50YXRpb25zIE1BWSB0aHVzIHN1cHBvcnQg
Z2FwbGVzcyBhdWRpbyBzcGxpY2luZy4KKyAgICAgICAgICAgIC8vIEF1ZGlvIE1lZGlhU2FtcGxl
cyBhcmUgdHlwaWNhbGx5IG1hZGUgb2YgcGFja2VkIGF1ZGlvIHNhbXBsZXMuIFRyaW0gc2FtcGxl
IHRvIG1ha2UgaXQgZml0IHdpdGhpbiB0aGUgYXBwZW5kV2luZG93LgorICAgICAgICAgICAgaWYg
KHNhbXBsZS0+aXNEaXZpc2FibGUoKSkgeworICAgICAgICAgICAgICAgIHN0ZDo6cGFpcjxSZWZQ
dHI8TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiByZXBsYWNlbWVudFNhbXBsZXMg
PSBzYW1wbGUtPmRpdmlkZShtX2FwcGVuZFdpbmRvd1N0YXJ0KTsKKyAgICAgICAgICAgICAgICBp
ZiAocmVwbGFjZW1lbnRTYW1wbGVzLnNlY29uZCkgeworICAgICAgICAgICAgICAgICAgICByZXBs
YWNlbWVudFNhbXBsZXMgPSByZXBsYWNlbWVudFNhbXBsZXMuc2Vjb25kLT5kaXZpZGUobV9hcHBl
bmRXaW5kb3dFbmQpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnRTYW1wbGVz
LmZpcnN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGUgPSByZXBsYWNlbWVudFNh
bXBsZXMuZmlyc3QucmVsZWFzZU5vbk51bGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChtX2FwcGVuZE1vZGUgIT0gU291cmNlQnVmZmVyQXBwZW5kTW9kZTo6U2VxdWVuY2UgJiYgdHJh
Y2tCdWZmZXIucm91bmRlZFRpbWVzdGFtcE9mZnNldCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzYW1wbGUtPm9mZnNldFRpbWVzdGFtcHNCeSgtdHJhY2tCdWZmZXIucm91bmRlZFRpbWVz
dGFtcE9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHRyYWNrQnVmZmVyLm5lZWRSYW5kb21BY2Nlc3NGbGFnID0gdHJ1ZTsKICAgICAgICAgICAg
IG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkRHJvcFNhbXBsZSgpOwogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMTAxMyw3ICsxMDQ1LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
OjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgICAgIGlmICh0cmFj
a0J1ZmZlci5uZWVkUmFuZG9tQWNjZXNzRmxhZykgewogICAgICAgICAgICAgLy8gMS4xMS4xIElm
IHRoZSBjb2RlZCBmcmFtZSBpcyBub3QgYSByYW5kb20gYWNjZXNzIHBvaW50LCB0aGVuIGRyb3Ag
dGhlIGNvZGVkIGZyYW1lIGFuZCBqdW1wCiAgICAgICAgICAgICAvLyB0byB0aGUgdG9wIG9mIHRo
ZSBsb29wIHRvIHN0YXJ0IHByb2Nlc3NpbmcgdGhlIG5leHQgY29kZWQgZnJhbWUuCi0gICAgICAg
ICAgICBpZiAoIXNhbXBsZS5pc1N5bmMoKSkgeworICAgICAgICAgICAgaWYgKCFzYW1wbGUtPmlz
U3luYygpKSB7CiAgICAgICAgICAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVE
aWREcm9wU2FtcGxlKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpA
QCAtMTA4MSwxMCArMTExMywxMCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2Vp
dmVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICAgICAgLy8gbmV4dCBJLWZyYW1lLiBT
ZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvbWVkaWEtc291cmNlL2lzc3Vlcy8xODc+IGZvciBh
IGRpc2N1c3Npb24gb2Ygd2hhdAogICAgICAgICAvLyB0aGUgaG93IHRoZSBNU0Ugc3BlY2lmaWNh
dGlvbiBzaG91bGQgaGFuZGxpZSB0aGlzIHNlY25hcmlvLgogICAgICAgICBkbyB7Ci0gICAgICAg
ICAgICBpZiAoIXNhbXBsZS5pc1N5bmMoKSkKKyAgICAgICAgICAgIGlmICghc2FtcGxlLT5pc1N5
bmMoKSkKICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgRGVjb2RlT3JkZXJT
YW1wbGVNYXA6OktleVR5cGUgZGVjb2RlS2V5KHNhbXBsZS5kZWNvZGVUaW1lKCksIHNhbXBsZS5w
cmVzZW50YXRpb25UaW1lKCkpOworICAgICAgICAgICAgRGVjb2RlT3JkZXJTYW1wbGVNYXA6Oktl
eVR5cGUgZGVjb2RlS2V5KHNhbXBsZS0+ZGVjb2RlVGltZSgpLCBzYW1wbGUtPnByZXNlbnRhdGlv
blRpbWUoKSk7CiAgICAgICAgICAgICBhdXRvIG5leHRTYW1wbGVJbkRlY29kZU9yZGVyID0gdHJh
Y2tCdWZmZXIuc2FtcGxlcy5kZWNvZGVPcmRlcigpLmZpbmRTYW1wbGVBZnRlckRlY29kZUtleShk
ZWNvZGVLZXkpOwogICAgICAgICAgICAgaWYgKG5leHRTYW1wbGVJbkRlY29kZU9yZGVyID09IHRy
YWNrQnVmZmVyLnNhbXBsZXMuZGVjb2RlT3JkZXIoKS5lbmQoKSkKICAgICAgICAgICAgICAgICBi
cmVhazsKQEAgLTExNTEsNyArMTE4Myw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlk
UmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgICAgICAgICAgLy8gTk9URTog
aW4gdGhlIGNhc2Ugb2YgYi1mcmFtZXMsIHRoZSBwcmV2aW91cyBzdGVwIG1heSBsZWF2ZSBpbiBw
bGFjZSBzYW1wbGVzIHdob3NlIHByZXNlbnRhdGlvbgogICAgICAgICAgICAgLy8gdGltZXN0YW1w
IDwgcHJlc2VudGF0aW9uVGltZSwgYnV0IHdob3NlIGRlY29kZSB0aW1lc3RhbXAgPj0gZGVjb2Rl
VGltZS4gVGhlc2Ugd2lsbCBldmVudHVhbGx5IGNhdXNlCiAgICAgICAgICAgICAvLyBhIGRlY29k
ZSBlcnJvciBpZiBsZWZ0IGluIHBsYWNlLCBzbyByZW1vdmUgdGhlc2Ugc2FtcGxlcyBhcyB3ZWxs
LgotICAgICAgICAgICAgRGVjb2RlT3JkZXJTYW1wbGVNYXA6OktleVR5cGUgZGVjb2RlS2V5KHNh
bXBsZS5kZWNvZGVUaW1lKCksIHNhbXBsZS5wcmVzZW50YXRpb25UaW1lKCkpOworICAgICAgICAg
ICAgRGVjb2RlT3JkZXJTYW1wbGVNYXA6OktleVR5cGUgZGVjb2RlS2V5KHNhbXBsZS0+ZGVjb2Rl
VGltZSgpLCBzYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSk7CiAgICAgICAgICAgICBhdXRvIHNh
bXBsZXNXaXRoSGlnaGVyRGVjb2RlVGltZXMgPSB0cmFja0J1ZmZlci5zYW1wbGVzLmRlY29kZU9y
ZGVyKCkuZmluZFNhbXBsZXNCZXR3ZWVuRGVjb2RlS2V5cyhkZWNvZGVLZXksIGVyYXNlZFNhbXBs
ZXMuZGVjb2RlT3JkZXIoKS5iZWdpbigpLT5maXJzdCk7CiAgICAgICAgICAgICBpZiAoc2FtcGxl
c1dpdGhIaWdoZXJEZWNvZGVUaW1lcy5maXJzdCAhPSBzYW1wbGVzV2l0aEhpZ2hlckRlY29kZVRp
bWVzLnNlY29uZCkKICAgICAgICAgICAgICAgICBkZXBlbmRlbnRTYW1wbGVzLmluc2VydChzYW1w
bGVzV2l0aEhpZ2hlckRlY29kZVRpbWVzLmZpcnN0LCBzYW1wbGVzV2l0aEhpZ2hlckRlY29kZVRp
bWVzLnNlY29uZCk7CkBAIC0xMTk3LDExICsxMjI5LDExIEBAIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZTo6ZGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgICAgICAvLyBO
b3RlIHRoYXQgYWRkaW5nIGEgZnJhbWUgdG8gdGhlIGRlY29kZSBxdWV1ZSBpcyBubyBndWFyYW50
ZWUgdGhhdCBpdCB3aWxsIGJlIGFjdHVhbGx5IGVucXVldWVkIGF0IHRoYXQgcG9pbnQuCiAgICAg
ICAgIC8vIElmIHRoZSBmcmFtZSBpcyBhZnRlciB0aGUgZGlzY29udGludWl0eSBib3VuZGFyeSwg
dGhlIGVucXVldWVpbmcgYWxnb3JpdGhtIHdpbGwgaG9sZCBpdCB0aGVyZSB1bnRpbCBzYW1wbGVz
CiAgICAgICAgIC8vIHdpdGggZWFybGllciB0aW1lc3RhbXBzIGFyZSBlbnF1ZXVlZC4gVGhlIGRl
Y29kZSBxdWV1ZSBpcyBub3QgRklGTywgYnV0IHJhdGhlciBhbiBvcmRlcmVkIG1hcC4KLSAgICAg
ICAgRGVjb2RlT3JkZXJTYW1wbGVNYXA6OktleVR5cGUgZGVjb2RlS2V5KHNhbXBsZS5kZWNvZGVU
aW1lKCksIHNhbXBsZS5wcmVzZW50YXRpb25UaW1lKCkpOworICAgICAgICBEZWNvZGVPcmRlclNh
bXBsZU1hcDo6S2V5VHlwZSBkZWNvZGVLZXkoc2FtcGxlLT5kZWNvZGVUaW1lKCksIHNhbXBsZS0+
cHJlc2VudGF0aW9uVGltZSgpKTsKICAgICAgICAgaWYgKHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVl
ZERlY29kZUtleS5maXJzdC5pc0ludmFsaWQoKSB8fCBkZWNvZGVLZXkgPiB0cmFja0J1ZmZlci5s
YXN0RW5xdWV1ZWREZWNvZGVLZXkpIHsKLSAgICAgICAgICAgIHRyYWNrQnVmZmVyLmRlY29kZVF1
ZXVlLmluc2VydChEZWNvZGVPcmRlclNhbXBsZU1hcDo6TWFwVHlwZTo6dmFsdWVfdHlwZShkZWNv
ZGVLZXksICZzYW1wbGUpKTsKKyAgICAgICAgICAgIHRyYWNrQnVmZmVyLmRlY29kZVF1ZXVlLmlu
c2VydChEZWNvZGVPcmRlclNhbXBsZU1hcDo6TWFwVHlwZTo6dmFsdWVfdHlwZShkZWNvZGVLZXks
ICZzYW1wbGUuZ2V0KCkpKTsKIAotICAgICAgICAgICAgaWYgKHRyYWNrQnVmZmVyLm1pbmltdW1F
bnF1ZXVlZFByZXNlbnRhdGlvblRpbWUuaXNWYWxpZCgpICYmIHNhbXBsZS5wcmVzZW50YXRpb25U
aW1lKCkgPCB0cmFja0J1ZmZlci5taW5pbXVtRW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lKQorICAg
ICAgICAgICAgaWYgKHRyYWNrQnVmZmVyLm1pbmltdW1FbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUu
aXNWYWxpZCgpICYmIHNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpIDwgdHJhY2tCdWZmZXIubWlu
aW11bUVucXVldWVkUHJlc2VudGF0aW9uVGltZSkKICAgICAgICAgICAgICAgICB0cmFja0J1ZmZl
ci5uZWVkc01pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWVVcGRhdGluZyA9IHRydWU7CiAg
ICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
U291cmNlQnVmZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
U291cmNlQnVmZmVyUHJpdmF0ZS5oCmluZGV4IDUyYWI3ZTVlNjAxNjQ4ZjQ0M2U2Nzc3MmZjMjNk
ZmQ0MzIyM2U1OTIuLjUzOTU0MGIzZGI2MzUyYjJlYWQ5OGM3Yzc1YjU1NDQ5ZmM0OTNjMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZm
ZXJQcml2YXRlLmgKQEAgLTE2MSw3ICsxNjEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhcHBl
bmRDb21wbGV0ZWQoYm9vbCBwYXJzaW5nU3VjY2VlZGVkLCBib29sIGlzRW5kZWQpOwogICAgIHZv
aWQgcmVlbnF1ZVNhbXBsZXMoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRCk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmZl
clByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudCYmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkUmVjZWl2ZVNhbXBsZShN
ZWRpYVNhbXBsZSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkUmVjZWl2ZVNhbXBsZShS
ZWY8TWVkaWFTYW1wbGU+JiYpOwogICAgIHZvaWQgcHJvdmlkZU1lZGlhRGF0YShjb25zdCBBdG9t
U3RyaW5nJiB0cmFja0lEKTsKICAgICB1aW50NjRfdCB0b3RhbFRyYWNrQnVmZmVyU2l6ZUluQnl0
ZXMoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCBkNGI4NGQzMmQ2MzJmZmYzMWYwZTljYTc5NDMyYmMx
NDhiMTcxYjljLi5iZjE0ZjE2OWE0MGY5YTZlOWE5MzhhMjkyY2RiZTI4MzAzNzg4M2VhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbQpAQCAtNDA5LDcgKzQwOSw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OmRpZFBhcnNlSW5pdGlhbGl6YXRpb25EYXRhKEluaXRpYWxpemF0aW9uU2VnbWVuCiAgICAgICAg
ICAgICAgICAgYXV0byYgbWVkaWFTYW1wbGUgPSB0cmFja0lkTWVkaWFTYW1wbGVQYWlyLnNlY29u
ZDsKICAgICAgICAgICAgICAgICBpZiAodHJhY2tJZCA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQg
fHwgbV9hdWRpb1JlbmRlcmVycy5jb250YWlucyh0cmFja0lkKSkgewogICAgICAgICAgICAgICAg
ICAgICBERUJVR19MT0coTE9HSURFTlRJRklFUiwgbWVkaWFTYW1wbGUuZ2V0KCkpOwotICAgICAg
ICAgICAgICAgICAgICBkaWRSZWNlaXZlU2FtcGxlKG1lZGlhU2FtcGxlKTsKKyAgICAgICAgICAg
ICAgICAgICAgZGlkUmVjZWl2ZVNhbXBsZShXVEZNb3ZlKG1lZGlhU2FtcGxlKSk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogCkBAIC00NTAsNyArNDUwLDcgQEAgdm9pZCBTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZU1lZGlhRGF0YUZvclRyYWNrSWQoUmVm
PE1lZGlhU2FtcGxlPiYKICAgICB9CiAKICAgICBERUJVR19MT0coTE9HSURFTlRJRklFUiwgbWVk
aWFTYW1wbGUuZ2V0KCkpOwotICAgIGRpZFJlY2VpdmVTYW1wbGUobWVkaWFTYW1wbGUpOworICAg
IGRpZFJlY2VpdmVTYW1wbGUoV1RGTW92ZShtZWRpYVNhbXBsZSkpOwogfQogCiB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp3aWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlh
bGl6YXRpb25EYXRhRm9yVHJhY2tJRCh1aW50NjRfdCB0cmFja0lEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYTc1YWJm
NTZjMjFlYjJiZDEwNmEyNzlhNjEwZjA3YzY0Yjk0NTFjZC4uYjE1ZmM0OTFlNGQ0NDVlMzgwMTJl
YjU2ZGY2OTM2ZTY1NzYyMjJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xODYsOSArMTg2LDkgQEAgdm9pZCBTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50
KFNvdXJjZUJ1ZmZlclAKICAgICBTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KFdURk1vdmUoaW5pdGlhbGl6YXRpb25TZWdtZW50KSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXI6OmRpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKK3ZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkUmVjZWl2ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYg
c2FtcGxlKQogewotICAgIFNvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoc2Ft
cGxlKTsKKyAgICBTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlU2FtcGxlKFdURk1vdmUo
c2FtcGxlKSk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkUmVj
ZWl2ZUFsbFBlbmRpbmdTYW1wbGVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggZGQyZjFhZjZkOGUzY2Q4ZTQyNDQ0ZGQ3Mzlj
OWVjM2M2YmNlNGUyNS4uY2MyYWNjMDU3Y2I0YThkODlmMDZmOGI3MTE2MzFjMDZlYjBlYmQ5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIHZvaWQgbm90aWZ5UmVhZHlGb3JNb3Jl
U2FtcGxlcygpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNv
dXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudCYmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNh
bXBsZSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYpOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZUFsbFBlbmRpbmdTYW1wbGVzKCk7CiAgICAgdm9pZCBhcHBlbmRQ
YXJzaW5nRmFpbGVkKCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNzE1MmM3MGIyM2I4MjViZDI4ZDU3N2RmZDZlMzE5
YjU5NmZlMThiLi5iYzQwOTVjODU5ZTEwODlkN2YxYjNjOTU1MjViZDI0ZmNmMDgzZjhlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDItMjMgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFw
cGxlLmNvbT4KKworICAgICAgICBbTVNFXSBNZWRpYSBzZWdtZW50IGlzIGluY29ycmVjdGx5IGRy
b3BwZWQgd2hlbiB1c2luZyBuZWdhdGl2ZSB0aW1lc3RhbXBPZmZzZXQgb3Igd2hlbiBzb3VyY2Ug
YnVmZmVyIGFwcGVuZFdpbmRvdyBpcyBzZXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtdGlt
ZXN0YW1wb2Zmc2V0LXRyaW0uaHRtbDoKKwogMjAyMS0wMi0yMCAgQ2hyaXMgRmxlaXphY2ggIDxj
ZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBJbWFnZSBzaG91bGQgcmVwb3J0IHRo
ZSBlbWJlZGRlZCBhY2Nlc3NpYmlsaXR5IGRlc2NyaXB0aW9uIGlmIGF2YWlsYWJsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS10aW1lc3Rh
bXBvZmZzZXQtdHJpbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWEtc291cmNlLXRpbWVzdGFtcG9mZnNldC10cmltLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yYzJiMWY3MGY3ZmZkMGJkNzhlMzI5ODVjM2VmNmI2OGZhYmFlNmQ5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS10aW1l
c3RhbXBvZmZzZXQtdHJpbS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MCBAQAorVGhpcyB0ZXN0
cyB0aGF0IGF1ZGlvIHNhbXBsZXMgb3V0c2lkZSB0aGUgYXBwZW5kV2luZG93J3MgaW50ZXJ2YWwg
YXJlIHByb3Blcmx5IGlnbm9yZWQuCisKK1JVTih2aWRlby5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0
VVJMKHNvdXJjZSkpCitFVkVOVChzb3VyY2VvcGVuKQorUlVOKHNvdXJjZUJ1ZmZlciA9IHNvdXJj
ZS5hZGRTb3VyY2VCdWZmZXIobG9hZGVyLnR5cGUoKSkpCitSVU4oc291cmNlQnVmZmVyLmFwcGVu
ZEJ1ZmZlcihsb2FkZXIuaW5pdFNlZ21lbnQoKSkpCitFVkVOVCh1cGRhdGUpCitSVU4oc291cmNl
QnVmZmVyLnRpbWVzdGFtcE9mZnNldCA9IC0oZnJhbWVzVG9CZURyb3BwZWRCZWdpbm5pbmcgKiBm
cmFtZXNJbkFBQ1BhY2tldCkgLyBzYW1wbGVSYXRlKQorQXBwZW5kIGEgbWVkaWEgc2VnbWVudCBu
ZWdhdGl2ZSBvZmZzZXQuCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIubWVk
aWFTZWdtZW50KDApKSkKK0VWRU5UKHVwZGF0ZSkKK0VYUEVDVEVEIChzb3VyY2VCdWZmZXIuYnVm
ZmVyZWQubGVuZ3RoID09ICcxJykgT0sKK0VYUEVDVEVEIChzb3VyY2VCdWZmZXIuYnVmZmVyZWQu
c3RhcnQoMCkgPT0gJzAnKSBPSworRVhQRUNURUQgKHNvdXJjZUJ1ZmZlci5idWZmZXJlZC5lbmQo
MCkgPT0gJzAuODk2JykgT0sKK1JVTihzb3VyY2VCdWZmZXIucmVtb3ZlKDAsIEluZmluaXR5KSkK
K0VWRU5UKHVwZGF0ZSkKK1JVTihzb3VyY2VCdWZmZXIudGltZXN0YW1wT2Zmc2V0ID0gMCkKK1JV
Tihzb3VyY2VCdWZmZXIuYXBwZW5kV2luZG93U3RhcnQgPSAwKQorUlVOKHNvdXJjZUJ1ZmZlci5h
cHBlbmRXaW5kb3dFbmQgPSBJbmZpbml0eSkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kV2luZG93
U3RhcnQgPSAoZnJhbWVzVG9CZURyb3BwZWRCZWdpbm5pbmcgKiBmcmFtZXNJbkFBQ1BhY2tldCkg
LyBzYW1wbGVSYXRlKQorQXBwZW5kIGEgbWVkaWEgc2VnbWVudCB3aXRoIGFwcGVuZFdpbmRvd1N0
YXJ0IHNldC4KK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5tZWRpYVNlZ21l
bnQoMCkpKQorRVZFTlQodXBkYXRlKQorRVhQRUNURUQgKHNvdXJjZUJ1ZmZlci5idWZmZXJlZC5s
ZW5ndGggPT0gJzEnKSBPSworRVhQRUNURUQgKHNvdXJjZUJ1ZmZlci5idWZmZXJlZC5zdGFydCgw
KSA9PSAnMC4xMDY2NjY2NjY2NjY2NjY2NycpIE9LCitFWFBFQ1RFRCAoc291cmNlQnVmZmVyLmJ1
ZmZlcmVkLmVuZCgwKSA9PSAnMS4wMDI2NjY2NjY2NjY2NjY2JykgT0sKK1JVTihzb3VyY2VCdWZm
ZXIucmVtb3ZlKDAsIEluZmluaXR5KSkKK0VWRU5UKHVwZGF0ZSkKK1JVTihzb3VyY2VCdWZmZXIu
dGltZXN0YW1wT2Zmc2V0ID0gMCkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kV2luZG93U3RhcnQg
PSAwKQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRXaW5kb3dFbmQgPSBJbmZpbml0eSkKK1JVTihz
b3VyY2VCdWZmZXIuYXBwZW5kV2luZG93RW5kID0gKCh0b3RhbEZyYW1lc0luU2VnbWVudCAtIGZy
YW1lc1RvQmVEcm9wcGVkRW5kKSAqIGZyYW1lc0luQUFDUGFja2V0KSAvIHNhbXBsZVJhdGUpCitB
cHBlbmQgYSBtZWRpYSBzZWdtZW50IHdpdGggYXBwZW5kV2luZG93RW5kIHNldC4KK1JVTihzb3Vy
Y2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5tZWRpYVNlZ21lbnQoMCkpKQorRVZFTlQodXBk
YXRlKQorRVhQRUNURUQgKHNvdXJjZUJ1ZmZlci5idWZmZXJlZC5sZW5ndGggPT0gJzEnKSBPSwor
RVhQRUNURUQgKHNvdXJjZUJ1ZmZlci5idWZmZXJlZC5zdGFydCgwKSA9PSAnMCcpIE9LCitFWFBF
Q1RFRCAoc291cmNlQnVmZmVyLmJ1ZmZlcmVkLmVuZCgwKSA9PSAnMC44OTYnKSBPSworRU5EIE9G
IFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS10aW1lc3RhbXBvZmZzZXQtdHJpbS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS10aW1lc3RhbXBvZmZzZXQtdHJpbS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE5ZGUwZjYyYjBiYWIxOTVlOTI3ZjUwMmU5NjM5ZjIxYzcwZjk1OWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXRpbWVz
dGFtcG9mZnNldC10cmltLmh0bWwKQEAgLTAsMCArMSw4OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1zb3VyY2UtdGltZXN0YW1wb2Zmc2V0LXRy
aW08L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSJtZWRpYS1zb3VyY2UtbG9hZGVyLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdD4KKyAgICB2YXIgbG9hZGVyOworICAgIHZhciBzb3VyY2U7CisgICAgdmFyIHNvdXJj
ZUJ1ZmZlcjsKKworICAgIGNvbnN0IGZyYW1lc0luQUFDUGFja2V0ID0gMTAyNDsKKyAgICBjb25z
dCBzYW1wbGVSYXRlID0gNDgwMDA7CisgICAgY29uc3QgdG90YWxGcmFtZXNJblNlZ21lbnQgPSA0
NzsKKyAgICBjb25zdCBmcmFtZXNUb0JlRHJvcHBlZEJlZ2lubmluZyA9IDU7CisgICAgY29uc3Qg
ZnJhbWVzVG9CZURyb3BwZWRFbmQgPSA1OworCisgICAgZnVuY3Rpb24gcmVzZXRTb3VyY2VCdWZm
ZXIoKSB7CisgICAgICAgIHJ1bignc291cmNlQnVmZmVyLnRpbWVzdGFtcE9mZnNldCA9IDAnKTsK
KyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kV2luZG93U3RhcnQgPSAwJyk7CisgICAg
ICAgIHJ1bignc291cmNlQnVmZmVyLmFwcGVuZFdpbmRvd0VuZCA9IEluZmluaXR5Jyk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgZmluZE1lZGlhRWxlbWVudCgp
OworCisgICAgICAgIGxvYWRlciA9IG5ldyBNZWRpYVNvdXJjZUxvYWRlcignY29udGVudC90ZXN0
LTQ4a2h6LW1hbmlmZXN0Lmpzb24nKTsKKyAgICAgICAgbG9hZGVyLm9uZXJyb3IgPSAoKSA9PiB7
CisgICAgICAgICAgICBmYWlsVGVzdCgnTWVkaWEgZGF0YSBsb2FkaW5nIGZhaWxlZCcpOworICAg
ICAgICB9OworICAgICAgICBsb2FkZXIub25sb2FkID0gYXN5bmMgKCkgPT4geworICAgICAgICAg
ICAgd2FpdEZvckV2ZW50QW5kRmFpbCgnZXJyb3InKTsKKworICAgICAgICAgICAgc291cmNlID0g
bmV3IE1lZGlhU291cmNlKCk7CisgICAgICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9IFVSTC5jcmVh
dGVPYmplY3RVUkwoc291cmNlKScpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcihzb3VyY2Us
ICdzb3VyY2VvcGVuJyk7CisKKyAgICAgICAgICAgIHJ1bignc291cmNlQnVmZmVyID0gc291cmNl
LmFkZFNvdXJjZUJ1ZmZlcihsb2FkZXIudHlwZSgpKScpOworICAgICAgICAgICAgcnVuKCdzb3Vy
Y2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5pbml0U2VnbWVudCgpKScpOworICAgICAgICAg
ICAgYXdhaXQgd2FpdEZvcihzb3VyY2VCdWZmZXIsICd1cGRhdGUnKTsKKworICAgICAgICAgICAg
Ly8gV2Ugd2FudCB0aGUgZmlyc3QgZnJhbWVzVG9CZURyb3BwZWRCZWdpbm5pbmcgZnJhbWVzIHRv
IGJlIGRyb3BwZWQsIGFuZCBvbmx5IHRob3NlLgorICAgICAgICAgICAgcnVuKCdzb3VyY2VCdWZm
ZXIudGltZXN0YW1wT2Zmc2V0ID0gLShmcmFtZXNUb0JlRHJvcHBlZEJlZ2lubmluZyAqIGZyYW1l
c0luQUFDUGFja2V0KSAvIHNhbXBsZVJhdGUnKTsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgn
QXBwZW5kIGEgbWVkaWEgc2VnbWVudCBuZWdhdGl2ZSBvZmZzZXQuJykKKyAgICAgICAgICAgIHJ1
bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDApKScpOwor
ICAgICAgICAgICAgYXdhaXQgd2FpdEZvcihzb3VyY2VCdWZmZXIsICd1cGRhdGUnKTsKKworICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCdzb3VyY2VCdWZmZXIuYnVmZmVyZWQubGVuZ3RoJywgMSk7
CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3NvdXJjZUJ1ZmZlci5idWZmZXJlZC5zdGFydCgw
KScsIDApOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCdzb3VyY2VCdWZmZXIuYnVmZmVyZWQu
ZW5kKDApJyAgLCAoKHRvdGFsRnJhbWVzSW5TZWdtZW50IC0gZnJhbWVzVG9CZURyb3BwZWRCZWdp
bm5pbmcpICogZnJhbWVzSW5BQUNQYWNrZXQpIC8gc2FtcGxlUmF0ZSk7CisgICAgICAgICAgICBy
dW4oJ3NvdXJjZUJ1ZmZlci5yZW1vdmUoMCwgSW5maW5pdHkpJyk7CisgICAgICAgICAgICBhd2Fp
dCB3YWl0Rm9yKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZScpOworCisgICAgICAgICAgICByZXNldFNv
dXJjZUJ1ZmZlcigpOworICAgICAgICAgICAgLy8gV2Ugd2FudCB0aGUgZmlyc3QgZnJhbWVzVG9C
ZURyb3BwZWRCZWdpbm5pbmcgZnJhbWVzIHRvIGJlIGRyb3BwZWQsIGFuZCBvbmx5IHRob3NlLgor
ICAgICAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kV2luZG93U3RhcnQgPSAoZnJhbWVz
VG9CZURyb3BwZWRCZWdpbm5pbmcgKiBmcmFtZXNJbkFBQ1BhY2tldCkgLyBzYW1wbGVSYXRlJyk7
CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJ0FwcGVuZCBhIG1lZGlhIHNlZ21lbnQgd2l0aCBh
cHBlbmRXaW5kb3dTdGFydCBzZXQuJykKKyAgICAgICAgICAgIHJ1bignc291cmNlQnVmZmVyLmFw
cGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDApKScpOworICAgICAgICAgICAgYXdhaXQg
d2FpdEZvcihzb3VyY2VCdWZmZXIsICd1cGRhdGUnKTsKKworICAgICAgICAgICAgdGVzdEV4cGVj
dGVkKCdzb3VyY2VCdWZmZXIuYnVmZmVyZWQubGVuZ3RoJywgMSk7CisgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ3NvdXJjZUJ1ZmZlci5idWZmZXJlZC5zdGFydCgwKScsIChmcmFtZXNUb0JlRHJv
cHBlZEJlZ2lubmluZyAqIGZyYW1lc0luQUFDUGFja2V0KSAvIHNhbXBsZVJhdGUpOworICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCdzb3VyY2VCdWZmZXIuYnVmZmVyZWQuZW5kKDApJyAgLCAodG90
YWxGcmFtZXNJblNlZ21lbnQgKiBmcmFtZXNJbkFBQ1BhY2tldCkgLyBzYW1wbGVSYXRlKTsKKyAg
ICAgICAgICAgIHJ1bignc291cmNlQnVmZmVyLnJlbW92ZSgwLCBJbmZpbml0eSknKTsKKyAgICAg
ICAgICAgIGF3YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBkYXRlJyk7CisKKyAgICAgICAg
ICAgIHJlc2V0U291cmNlQnVmZmVyKCk7CisgICAgICAgICAgICAvLyBXZSB3YW50IHRoZSBsYXN0
IGZyYW1lc1RvQmVEcm9wcGVkRW5kIGZyYW1lcyB0byBiZSBkcm9wcGVkLCBhbmQgb25seSB0aG9z
ZS4KKyAgICAgICAgICAgIHJ1bignc291cmNlQnVmZmVyLmFwcGVuZFdpbmRvd0VuZCA9ICgodG90
YWxGcmFtZXNJblNlZ21lbnQgLSBmcmFtZXNUb0JlRHJvcHBlZEVuZCkgKiBmcmFtZXNJbkFBQ1Bh
Y2tldCkgLyBzYW1wbGVSYXRlJyk7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJ0FwcGVuZCBh
IG1lZGlhIHNlZ21lbnQgd2l0aCBhcHBlbmRXaW5kb3dFbmQgc2V0LicpCisgICAgICAgICAgICBy
dW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobG9hZGVyLm1lZGlhU2VnbWVudCgwKSknKTsK
KyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBkYXRlJyk7CisKKyAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgnc291cmNlQnVmZmVyLmJ1ZmZlcmVkLmxlbmd0aCcsIDEp
OworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCdzb3VyY2VCdWZmZXIuYnVmZmVyZWQuc3RhcnQo
MCknLCAwKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnc291cmNlQnVmZmVyLmJ1ZmZlcmVk
LmVuZCgwKScgICwgKCh0b3RhbEZyYW1lc0luU2VnbWVudCAtIGZyYW1lc1RvQmVEcm9wcGVkRW5k
KSAqIGZyYW1lc0luQUFDUGFja2V0KSAvIHNhbXBsZVJhdGUpOworCisgICAgICAgICAgICBlbmRU
ZXN0KCk7CisgICAgICAgIH07CisgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxkaXY+CisgICAgICAgIFRoaXMgdGVzdHMgdGhhdCBh
dWRpbyBzYW1wbGVzIG91dHNpZGUgdGhlIGFwcGVuZFdpbmRvdydzIGludGVydmFsIGFyZSBwcm9w
ZXJseSBpZ25vcmVkLgorICAgIDwvZGl2PgorICAgIDx2aWRlbyBjb250cm9scz48L3ZpZGVvPgor
PC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="440101"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421477</attachid>
            <date>2021-02-24 16:02:05 -0800</date>
            <delta_ts>2021-02-24 16:58:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222260-20210225110202.patch</filename>
            <type>text/plain</type>
            <size>23536</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTIyM2ZjNmEyZGZjMDAx
ZGE1NzI3ZGUwOGUzMGE5ZGNkZGNiM2FmNy4uOTZkODVjZWNmMWIwZGI4MmEwOTZlMmIwYWI2Mzg4
ODM4Mzg0MjI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTAyLTIzICBKZWFu
LVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgW01TRV0gTWVkaWEgc2Vn
bWVudCBpcyBpbmNvcnJlY3RseSBkcm9wcGVkIHdoZW4gdXNpbmcgbmVnYXRpdmUgdGltZXN0YW1w
T2Zmc2V0IG9yIHdoZW4gc291cmNlIGJ1ZmZlciBhcHBlbmRXaW5kb3cgaXMgc2V0LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMjYwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS10aW1lc3RhbXBvZmZzZXQtdHJpbS5odG1sCisKKyAgICAg
ICAgQ29yZU1lZGlhIHBhY2tzIG11bHRpcGxlIGF1ZGlvIGZyYW1lcyB0b2dldGhlciBpbnRvIGEg
c2luZ2xlIENNU2FtcGxlQnVmZmVyLAorICAgICAgICB0aGlzIGFsbG93cyBmb3IgZmFzdGVyIHBy
b2Nlc3NpbmcgYW5kIGVhc2llciBpbnNlcnRpb24gaW50byB0aGUgdHJhY2sgYnVmZmVyIHRyZWUu
CisgICAgICAgIEhvd2V2ZXIsIHBlciBtZWRpYXNvdXJlIHNwZWMgWzFdLCBhIGZyYW1lIGlzIHRv
IGJlIGRyb3BwZWQgYWNjb3JkaW5nIHRvCisgICAgICAgIGl0cyBzdGFydCB0aW1lIGFuZCBkdXJh
dGlvbi4gU28gaWYgb25seSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBNZWRpYVNhbXBsZQorICAgICAg
ICB3YXMgdG8gYmUgZHJvcHBlZCwgd2Ugd291bGQgaGF2ZSBpbmNvcnJlY3RseSBkcm9wcGVkIHRo
ZSBsb3QuCisgICAgICAgIFdlIG5vdyBzcGxpdCB0aGUgTWVkaWFTYW1wbGUgaWYgaXQgaXMgZ29p
bmcgdG8gYmUgZHJvcHBlZCB0byBlbnN1cmUgdGhhdAorICAgICAgICBhbGwgdXNhYmxlIGNvbnRl
bnQgaXMgaW5zZXJ0ZWQgaW50byB0aGUgdHJhY2sgYnVmZmVyLgorICAgICAgICBBdWRpbyBzcGxp
Y2luZyBpc24ndCBkb25lIHlldCwgYnV0IHRoaXMgZ2V0cyB1cyBjbG9zZXIgdG8gaXQuCisKKyAg
ICAgICAgWzFdIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYS1zb3VyY2UvI3NvdXJjZWJ1ZmZl
ci1jb2RlZC1mcmFtZS1wcm9jZXNzaW5nCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9T
b3VyY2VCdWZmZXJQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Nv
dXJjZUJ1ZmZlclByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQYXJzZUluaXRpYWxpemF0aW9uRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJv
dmlkZU1lZGlhRGF0YUZvclRyYWNrSWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlU2FtcGxlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuaDoKKwogMjAyMS0wMi0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lA
YXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQgbW9kdWxlcyBpbiBzZXJ2aWNlIHdvcmtlcnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZl
clByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVm
ZmVyUHJpdmF0ZS5jcHAKaW5kZXggMDVjYTUzZTJmZDQzNzNjNDQ5MjEwMGQxZDE4N2M1OGUzMTVi
ZmEwMC4uNWMyNjRhYjc2M2Q1ODIzNjI2NTBjMTUzNjQxMDMxOGIwYjc4OGYyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJp
dmF0ZS5jcHAKQEAgLTgxNiw3ICs4MTYsNyBAQCBib29sIFNvdXJjZUJ1ZmZlclByaXZhdGU6OnZh
bGlkYXRlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZhdAogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVT
YW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlk
UmVjZWl2ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgb3JpZ2luYWxTYW1wbGUpCiB7CiAgICAg
aWYgKCFtX2lzQXR0YWNoZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTg0Miw2ICs4NDIsOSBAQCB2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKICAgICAvLyBhcmUgcnVuOgogICAgIC8vIDEuIEZvciBlYWNoIGNvZGVkIGZyYW1lIGlu
IHRoZSBtZWRpYSBzZWdtZW50IHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgogICAgIC8vIDEuMS4g
TG9vcCBUb3AKKworICAgIFJlZjxNZWRpYVNhbXBsZT4gc2FtcGxlID0gV1RGTW92ZShvcmlnaW5h
bFNhbXBsZSk7CisKICAgICBkbyB7CiAgICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1l
c3RhbXA7CiAgICAgICAgIE1lZGlhVGltZSBkZWNvZGVUaW1lc3RhbXA7CkBAIC04NTAsNyArODUz
LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2Ft
cGxlJiBzYW1wbGUpCiAgICAgICAgIC8vIHNhbXBsZSdzIGR1cmF0aW9uIGZvciB0aW1lc3RhbXAg
Z2VuZXJhdGlvbi4KICAgICAgICAgLy8gMS4yIExldCBmcmFtZSBkdXJhdGlvbiBiZSBhIGRvdWJs
ZSBwcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvZGVkIGZy
YW1lJ3MKICAgICAgICAgLy8gZHVyYXRpb24gaW4gc2Vjb25kcy4KLSAgICAgICAgTWVkaWFUaW1l
IGZyYW1lRHVyYXRpb24gPSBzYW1wbGUuZHVyYXRpb24oKTsKKyAgICAgICAgTWVkaWFUaW1lIGZy
YW1lRHVyYXRpb24gPSBzYW1wbGUtPmR1cmF0aW9uKCk7CiAKICAgICAgICAgaWYgKG1fc2hvdWxk
R2VuZXJhdGVUaW1lc3RhbXBzKSB7CiAgICAgICAgICAgICAvLyDihrMgSWYgZ2VuZXJhdGUgdGlt
ZXN0YW1wcyBmbGFnIGVxdWFscyB0cnVlOgpAQCAtODY1LDExICs4NjgsMTEgQEAgdm9pZCBTb3Vy
Y2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAg
ICAgICAgICAgICAvLyDihrMgT3RoZXJ3aXNlOgogICAgICAgICAgICAgLy8gMS4gTGV0IHByZXNl
bnRhdGlvbiB0aW1lc3RhbXAgYmUgYSBkb3VibGUgcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IHJl
cHJlc2VudGF0aW9uIG9mCiAgICAgICAgICAgICAvLyB0aGUgY29kZWQgZnJhbWUncyBwcmVzZW50
YXRpb24gdGltZXN0YW1wIGluIHNlY29uZHMuCi0gICAgICAgICAgICBwcmVzZW50YXRpb25UaW1l
c3RhbXAgPSBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpOworICAgICAgICAgICAgcHJlc2VudGF0
aW9uVGltZXN0YW1wID0gc2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCk7CiAKICAgICAgICAgICAg
IC8vIDIuIExldCBkZWNvZGUgdGltZXN0YW1wIGJlIGEgZG91YmxlIHByZWNpc2lvbiBmbG9hdGlu
ZyBwb2ludCByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29kZWQgZnJhbWUncwogICAgICAgICAgICAg
Ly8gZGVjb2RlIHRpbWVzdGFtcCBpbiBzZWNvbmRzLgotICAgICAgICAgICAgZGVjb2RlVGltZXN0
YW1wID0gc2FtcGxlLmRlY29kZVRpbWUoKTsKKyAgICAgICAgICAgIGRlY29kZVRpbWVzdGFtcCA9
IHNhbXBsZS0+ZGVjb2RlVGltZSgpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gMS4zIElmIG1v
ZGUgZXF1YWxzICJzZXF1ZW5jZSIgYW5kIGdyb3VwIHN0YXJ0IHRpbWVzdGFtcCBpcyBzZXQsIHRo
ZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CkBAIC04OTUsNyArODk4LDcgQEAgdm9pZCBTb3Vy
Y2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAK
ICAgICAgICAgLy8gTk9URTogdGhpcyBpcyBvdXQtb2Ytb3JkZXIsIGJ1dCB3ZSBuZWVkIFRyYWNr
QnVmZmVyIHRvIGJlIGFibGUgdG8gY2FjaGUgdGhlIHJlc3VsdHMgb2YgdGltZXN0YW1wIG9mZnNl
dCByb3VuZGluZwogICAgICAgICAvLyAxLjUgTGV0IHRyYWNrIGJ1ZmZlciBlcXVhbCB0aGUgdHJh
Y2sgYnVmZmVyIHRoYXQgdGhlIGNvZGVkIGZyYW1lIHdpbGwgYmUgYWRkZWQgdG8uCi0gICAgICAg
IEF0b21TdHJpbmcgdHJhY2tJRCA9IHNhbXBsZS50cmFja0lEKCk7CisgICAgICAgIEF0b21TdHJp
bmcgdHJhY2tJRCA9IHNhbXBsZS0+dHJhY2tJRCgpOwogICAgICAgICBhdXRvIGl0ID0gbV90cmFj
a0J1ZmZlck1hcC5maW5kKHRyYWNrSUQpOwogICAgICAgICBpZiAoaXQgPT0gbV90cmFja0J1ZmZl
ck1hcC5lbmQoKSkgewogICAgICAgICAgICAgLy8gVGhlIGNsaWVudCBtYW5hZ2VkIHRvIGFwcGVu
ZCBhIHNhbXBsZSB3aXRoIGEgdHJhY2tJRCBub3QgcHJlc2VudCBpbiB0aGUgaW5pdGlhbGl6YXRp
b24KQEAgLTk3NSwxMyArOTc4LDEzIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVj
ZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogCiAgICAgICAgIGlmIChtX2FwcGVuZE1v
ZGUgPT0gU291cmNlQnVmZmVyQXBwZW5kTW9kZTo6U2VxdWVuY2UpIHsKICAgICAgICAgICAgIC8v
IFVzZSB0aGUgZ2VuZXJhdGVkIHRpbWVzdGFtcHMgaW5zdGVhZCBvZiB0aGUgc2FtcGxlJ3MgdGlt
ZXN0YW1wcy4KLSAgICAgICAgICAgIHNhbXBsZS5zZXRUaW1lc3RhbXBzKHByZXNlbnRhdGlvblRp
bWVzdGFtcCwgZGVjb2RlVGltZXN0YW1wKTsKKyAgICAgICAgICAgIHNhbXBsZS0+c2V0VGltZXN0
YW1wcyhwcmVzZW50YXRpb25UaW1lc3RhbXAsIGRlY29kZVRpbWVzdGFtcCk7CiAgICAgICAgIH0g
ZWxzZSBpZiAodHJhY2tCdWZmZXIucm91bmRlZFRpbWVzdGFtcE9mZnNldCkgewogICAgICAgICAg
ICAgLy8gUmVmbGVjdCB0aGUgdGltZXN0YW1wIG9mZnNldCBpbnRvIHRoZSBzYW1wbGUuCi0gICAg
ICAgICAgICBzYW1wbGUub2Zmc2V0VGltZXN0YW1wc0J5KHRyYWNrQnVmZmVyLnJvdW5kZWRUaW1l
c3RhbXBPZmZzZXQpOworICAgICAgICAgICAgc2FtcGxlLT5vZmZzZXRUaW1lc3RhbXBzQnkodHJh
Y2tCdWZmZXIucm91bmRlZFRpbWVzdGFtcE9mZnNldCk7CiAgICAgICAgIH0KIAotICAgICAgICBE
RUJVR19MT0coTE9HSURFTlRJRklFUiwgc2FtcGxlKTsKKyAgICAgICAgREVCVUdfTE9HKExPR0lE
RU5USUZJRVIsIHNhbXBsZS5nZXQoKSk7CiAKICAgICAgICAgLy8gMS43IExldCBmcmFtZSBlbmQg
dGltZXN0YW1wIGVxdWFsIHRoZSBzdW0gb2YgcHJlc2VudGF0aW9uIHRpbWVzdGFtcCBhbmQgZnJh
bWUgZHVyYXRpb24uCiAgICAgICAgIE1lZGlhVGltZSBmcmFtZUVuZFRpbWVzdGFtcCA9IHByZXNl
bnRhdGlvblRpbWVzdGFtcCArIGZyYW1lRHVyYXRpb247CkBAIC05OTMsNiArOTk2LDM1IEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2Ft
cGxlKQogICAgICAgICAvLyBwb2ludCBmbGFnIHRvIHRydWUsIGRyb3AgdGhlIGNvZGVkIGZyYW1l
LCBhbmQganVtcCB0byB0aGUgdG9wIG9mIHRoZSBsb29wIHRvIHN0YXJ0IHByb2Nlc3NpbmcKICAg
ICAgICAgLy8gdGhlIG5leHQgY29kZWQgZnJhbWUuCiAgICAgICAgIGlmIChwcmVzZW50YXRpb25U
aW1lc3RhbXAgPCBtX2FwcGVuZFdpbmRvd1N0YXJ0IHx8IGZyYW1lRW5kVGltZXN0YW1wID4gbV9h
cHBlbmRXaW5kb3dFbmQpIHsKKyAgICAgICAgICAgIC8vIDEuOCBOb3RlLgorICAgICAgICAgICAg
Ly8gU29tZSBpbXBsZW1lbnRhdGlvbnMgTUFZIGNob29zZSB0byBjb2xsZWN0IHNvbWUgb2YgdGhl
c2UgY29kZWQgZnJhbWVzIHdpdGggcHJlc2VudGF0aW9uCisgICAgICAgICAgICAvLyB0aW1lc3Rh
bXAgbGVzcyB0aGFuIGFwcGVuZFdpbmRvd1N0YXJ0IGFuZCB1c2UgdGhlbSB0byBnZW5lcmF0ZSBh
IHNwbGljZSBhdCB0aGUgZmlyc3QgY29kZWQKKyAgICAgICAgICAgIC8vIGZyYW1lIHRoYXQgaGFz
IGEgcHJlc2VudGF0aW9uIHRpbWVzdGFtcCBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYXBwZW5k
V2luZG93U3RhcnQgZXZlbiBpZgorICAgICAgICAgICAgLy8gdGhhdCBmcmFtZSBpcyBub3QgYSBy
YW5kb20gYWNjZXNzIHBvaW50LiBTdXBwb3J0aW5nIHRoaXMgcmVxdWlyZXMgbXVsdGlwbGUgZGVj
b2RlcnMgb3IKKyAgICAgICAgICAgIC8vIGZhc3RlciB0aGFuIHJlYWwtdGltZSBkZWNvZGluZyBz
byBmb3Igbm93IHRoaXMgYmVoYXZpb3Igd2lsbCBub3QgYmUgYSBub3JtYXRpdmUKKyAgICAgICAg
ICAgIC8vIHJlcXVpcmVtZW50LgorICAgICAgICAgICAgLy8gMS45IE5vdGUuCisgICAgICAgICAg
ICAvLyBTb21lIGltcGxlbWVudGF0aW9ucyBNQVkgY2hvb3NlIHRvIGNvbGxlY3QgY29kZWQgZnJh
bWVzIHdpdGggcHJlc2VudGF0aW9uIHRpbWVzdGFtcCBsZXNzCisgICAgICAgICAgICAvLyB0aGFu
IGFwcGVuZFdpbmRvd0VuZCBhbmQgZnJhbWUgZW5kIHRpbWVzdGFtcCBncmVhdGVyIHRoYW4gYXBw
ZW5kV2luZG93RW5kIGFuZCB1c2UgdGhlbSB0bworICAgICAgICAgICAgLy8gZ2VuZXJhdGUgYSBz
cGxpY2UgYWNyb3NzIHRoZSBwb3J0aW9uIG9mIHRoZSBjb2xsZWN0ZWQgY29kZWQgZnJhbWVzIHdp
dGhpbiB0aGUgYXBwZW5kCisgICAgICAgICAgICAvLyB3aW5kb3cgYXQgdGltZSBvZiBjb2xsZWN0
aW9uLCBhbmQgdGhlIGJlZ2lubmluZyBwb3J0aW9uIG9mIGxhdGVyIHByb2Nlc3NlZCBmcmFtZXMg
d2hpY2gKKyAgICAgICAgICAgIC8vIG9ubHkgcGFydGlhbGx5IG92ZXJsYXAgdGhlIGVuZCBvZiB0
aGUgY29sbGVjdGVkIGNvZGVkIGZyYW1lcy4gU3VwcG9ydGluZyB0aGlzIHJlcXVpcmVzCisgICAg
ICAgICAgICAvLyBtdWx0aXBsZSBkZWNvZGVycyBvciBmYXN0ZXIgdGhhbiByZWFsLXRpbWUgZGVj
b2Rpbmcgc28gZm9yIG5vdyB0aGlzIGJlaGF2aW9yIHdpbGwgbm90IGJlIGEKKyAgICAgICAgICAg
IC8vIG5vcm1hdGl2ZSByZXF1aXJlbWVudC4gSW4gY29uanVuY3Rpb24gd2l0aCBjb2xsZWN0aW5n
IGNvZGVkIGZyYW1lcyB0aGF0IHNwYW4KKyAgICAgICAgICAgIC8vIGFwcGVuZFdpbmRvd1N0YXJ0
LCBpbXBsZW1lbnRhdGlvbnMgTUFZIHRodXMgc3VwcG9ydCBnYXBsZXNzIGF1ZGlvIHNwbGljaW5n
LgorICAgICAgICAgICAgLy8gQXVkaW8gTWVkaWFTYW1wbGVzIGFyZSB0eXBpY2FsbHkgbWFkZSBv
ZiBwYWNrZWQgYXVkaW8gc2FtcGxlcy4gVHJpbSBzYW1wbGUgdG8gbWFrZSBpdCBmaXQgd2l0aGlu
IHRoZSBhcHBlbmRXaW5kb3cuCisgICAgICAgICAgICBpZiAoc2FtcGxlLT5pc0RpdmlzYWJsZSgp
KSB7CisgICAgICAgICAgICAgICAgc3RkOjpwYWlyPFJlZlB0cjxNZWRpYVNhbXBsZT4sIFJlZlB0
cjxNZWRpYVNhbXBsZT4+IHJlcGxhY2VtZW50U2FtcGxlcyA9IHNhbXBsZS0+ZGl2aWRlKG1fYXBw
ZW5kV2luZG93U3RhcnQpOworICAgICAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudFNhbXBsZXMu
c2Vjb25kKSB7CisgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50U2FtcGxlcyA9IHJlcGxh
Y2VtZW50U2FtcGxlcy5zZWNvbmQtPmRpdmlkZShtX2FwcGVuZFdpbmRvd0VuZCk7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudFNhbXBsZXMuZmlyc3QpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHNhbXBsZSA9IHJlcGxhY2VtZW50U2FtcGxlcy5maXJzdC5yZWxlYXNlTm9u
TnVsbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fYXBwZW5kTW9kZSAhPSBTb3Vy
Y2VCdWZmZXJBcHBlbmRNb2RlOjpTZXF1ZW5jZSAmJiB0cmFja0J1ZmZlci5yb3VuZGVkVGltZXN0
YW1wT2Zmc2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZS0+b2Zmc2V0VGlt
ZXN0YW1wc0J5KC10cmFja0J1ZmZlci5yb3VuZGVkVGltZXN0YW1wT2Zmc2V0KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICAgICAgdHJhY2tCdWZmZXIubmVlZFJh
bmRvbUFjY2Vzc0ZsYWcgPSB0cnVlOwogICAgICAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWREcm9wU2FtcGxlKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMDEzLDcg
KzEwNDUsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoTWVk
aWFTYW1wbGUmIHNhbXBsZSkKICAgICAgICAgaWYgKHRyYWNrQnVmZmVyLm5lZWRSYW5kb21BY2Nl
c3NGbGFnKSB7CiAgICAgICAgICAgICAvLyAxLjExLjEgSWYgdGhlIGNvZGVkIGZyYW1lIGlzIG5v
dCBhIHJhbmRvbSBhY2Nlc3MgcG9pbnQsIHRoZW4gZHJvcCB0aGUgY29kZWQgZnJhbWUgYW5kIGp1
bXAKICAgICAgICAgICAgIC8vIHRvIHRoZSB0b3Agb2YgdGhlIGxvb3AgdG8gc3RhcnQgcHJvY2Vz
c2luZyB0aGUgbmV4dCBjb2RlZCBmcmFtZS4KLSAgICAgICAgICAgIGlmICghc2FtcGxlLmlzU3lu
YygpKSB7CisgICAgICAgICAgICBpZiAoIXNhbXBsZS0+aXNTeW5jKCkpIHsKICAgICAgICAgICAg
ICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZERyb3BTYW1wbGUoKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC0xMDgxLDEwICsxMTEzLDEwIEBA
IHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYg
c2FtcGxlKQogICAgICAgICAvLyBuZXh0IEktZnJhbWUuIFNlZSA8aHR0cHM6Ly9naXRodWIuY29t
L3czYy9tZWRpYS1zb3VyY2UvaXNzdWVzLzE4Nz4gZm9yIGEgZGlzY3Vzc2lvbiBvZiB3aGF0CiAg
ICAgICAgIC8vIHRoZSBob3cgdGhlIE1TRSBzcGVjaWZpY2F0aW9uIHNob3VsZCBoYW5kbGllIHRo
aXMgc2VjbmFyaW8uCiAgICAgICAgIGRvIHsKLSAgICAgICAgICAgIGlmICghc2FtcGxlLmlzU3lu
YygpKQorICAgICAgICAgICAgaWYgKCFzYW1wbGUtPmlzU3luYygpKQogICAgICAgICAgICAgICAg
IGJyZWFrOwogCi0gICAgICAgICAgICBEZWNvZGVPcmRlclNhbXBsZU1hcDo6S2V5VHlwZSBkZWNv
ZGVLZXkoc2FtcGxlLmRlY29kZVRpbWUoKSwgc2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKSk7Cisg
ICAgICAgICAgICBEZWNvZGVPcmRlclNhbXBsZU1hcDo6S2V5VHlwZSBkZWNvZGVLZXkoc2FtcGxl
LT5kZWNvZGVUaW1lKCksIHNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpKTsKICAgICAgICAgICAg
IGF1dG8gbmV4dFNhbXBsZUluRGVjb2RlT3JkZXIgPSB0cmFja0J1ZmZlci5zYW1wbGVzLmRlY29k
ZU9yZGVyKCkuZmluZFNhbXBsZUFmdGVyRGVjb2RlS2V5KGRlY29kZUtleSk7CiAgICAgICAgICAg
ICBpZiAobmV4dFNhbXBsZUluRGVjb2RlT3JkZXIgPT0gdHJhY2tCdWZmZXIuc2FtcGxlcy5kZWNv
ZGVPcmRlcigpLmVuZCgpKQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTE1MSw3ICsxMTgz
LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2Ft
cGxlJiBzYW1wbGUpCiAgICAgICAgICAgICAvLyBOT1RFOiBpbiB0aGUgY2FzZSBvZiBiLWZyYW1l
cywgdGhlIHByZXZpb3VzIHN0ZXAgbWF5IGxlYXZlIGluIHBsYWNlIHNhbXBsZXMgd2hvc2UgcHJl
c2VudGF0aW9uCiAgICAgICAgICAgICAvLyB0aW1lc3RhbXAgPCBwcmVzZW50YXRpb25UaW1lLCBi
dXQgd2hvc2UgZGVjb2RlIHRpbWVzdGFtcCA+PSBkZWNvZGVUaW1lLiBUaGVzZSB3aWxsIGV2ZW50
dWFsbHkgY2F1c2UKICAgICAgICAgICAgIC8vIGEgZGVjb2RlIGVycm9yIGlmIGxlZnQgaW4gcGxh
Y2UsIHNvIHJlbW92ZSB0aGVzZSBzYW1wbGVzIGFzIHdlbGwuCi0gICAgICAgICAgICBEZWNvZGVP
cmRlclNhbXBsZU1hcDo6S2V5VHlwZSBkZWNvZGVLZXkoc2FtcGxlLmRlY29kZVRpbWUoKSwgc2Ft
cGxlLnByZXNlbnRhdGlvblRpbWUoKSk7CisgICAgICAgICAgICBEZWNvZGVPcmRlclNhbXBsZU1h
cDo6S2V5VHlwZSBkZWNvZGVLZXkoc2FtcGxlLT5kZWNvZGVUaW1lKCksIHNhbXBsZS0+cHJlc2Vu
dGF0aW9uVGltZSgpKTsKICAgICAgICAgICAgIGF1dG8gc2FtcGxlc1dpdGhIaWdoZXJEZWNvZGVU
aW1lcyA9IHRyYWNrQnVmZmVyLnNhbXBsZXMuZGVjb2RlT3JkZXIoKS5maW5kU2FtcGxlc0JldHdl
ZW5EZWNvZGVLZXlzKGRlY29kZUtleSwgZXJhc2VkU2FtcGxlcy5kZWNvZGVPcmRlcigpLmJlZ2lu
KCktPmZpcnN0KTsKICAgICAgICAgICAgIGlmIChzYW1wbGVzV2l0aEhpZ2hlckRlY29kZVRpbWVz
LmZpcnN0ICE9IHNhbXBsZXNXaXRoSGlnaGVyRGVjb2RlVGltZXMuc2Vjb25kKQogICAgICAgICAg
ICAgICAgIGRlcGVuZGVudFNhbXBsZXMuaW5zZXJ0KHNhbXBsZXNXaXRoSGlnaGVyRGVjb2RlVGlt
ZXMuZmlyc3QsIHNhbXBsZXNXaXRoSGlnaGVyRGVjb2RlVGltZXMuc2Vjb25kKTsKQEAgLTExOTcs
MTEgKzEyMjksMTEgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlU2FtcGxl
KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgICAgIC8vIE5vdGUgdGhhdCBhZGRpbmcgYSBmcmFt
ZSB0byB0aGUgZGVjb2RlIHF1ZXVlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGl0IHdpbGwgYmUgYWN0
dWFsbHkgZW5xdWV1ZWQgYXQgdGhhdCBwb2ludC4KICAgICAgICAgLy8gSWYgdGhlIGZyYW1lIGlz
IGFmdGVyIHRoZSBkaXNjb250aW51aXR5IGJvdW5kYXJ5LCB0aGUgZW5xdWV1ZWluZyBhbGdvcml0
aG0gd2lsbCBob2xkIGl0IHRoZXJlIHVudGlsIHNhbXBsZXMKICAgICAgICAgLy8gd2l0aCBlYXJs
aWVyIHRpbWVzdGFtcHMgYXJlIGVucXVldWVkLiBUaGUgZGVjb2RlIHF1ZXVlIGlzIG5vdCBGSUZP
LCBidXQgcmF0aGVyIGFuIG9yZGVyZWQgbWFwLgotICAgICAgICBEZWNvZGVPcmRlclNhbXBsZU1h
cDo6S2V5VHlwZSBkZWNvZGVLZXkoc2FtcGxlLmRlY29kZVRpbWUoKSwgc2FtcGxlLnByZXNlbnRh
dGlvblRpbWUoKSk7CisgICAgICAgIERlY29kZU9yZGVyU2FtcGxlTWFwOjpLZXlUeXBlIGRlY29k
ZUtleShzYW1wbGUtPmRlY29kZVRpbWUoKSwgc2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCkpOwog
ICAgICAgICBpZiAodHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2RlS2V5LmZpcnN0LmlzSW52
YWxpZCgpIHx8IGRlY29kZUtleSA+IHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERlY29kZUtleSkg
ewotICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVjb2RlUXVldWUuaW5zZXJ0KERlY29kZU9yZGVy
U2FtcGxlTWFwOjpNYXBUeXBlOjp2YWx1ZV90eXBlKGRlY29kZUtleSwgJnNhbXBsZSkpOworICAg
ICAgICAgICAgdHJhY2tCdWZmZXIuZGVjb2RlUXVldWUuaW5zZXJ0KERlY29kZU9yZGVyU2FtcGxl
TWFwOjpNYXBUeXBlOjp2YWx1ZV90eXBlKGRlY29kZUtleSwgJnNhbXBsZS5nZXQoKSkpOwogCi0g
ICAgICAgICAgICBpZiAodHJhY2tCdWZmZXIubWluaW11bUVucXVldWVkUHJlc2VudGF0aW9uVGlt
ZS5pc1ZhbGlkKCkgJiYgc2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKSA8IHRyYWNrQnVmZmVyLm1p
bmltdW1FbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpCisgICAgICAgICAgICBpZiAodHJhY2tCdWZm
ZXIubWluaW11bUVucXVldWVkUHJlc2VudGF0aW9uVGltZS5pc1ZhbGlkKCkgJiYgc2FtcGxlLT5w
cmVzZW50YXRpb25UaW1lKCkgPCB0cmFja0J1ZmZlci5taW5pbXVtRW5xdWV1ZWRQcmVzZW50YXRp
b25UaW1lKQogICAgICAgICAgICAgICAgIHRyYWNrQnVmZmVyLm5lZWRzTWluaW11bVVwY29taW5n
UHJlc2VudGF0aW9uVGltZVVwZGF0aW5nID0gdHJ1ZTsKICAgICAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgK
aW5kZXggNTJhYjdlNWU2MDE2NDhmNDQzZTY3NzcyZmMyM2RmZDQzMjIzZTU5Mi4uNTM5NTQwYjNk
YjYzNTJiMmVhZDk4YzdjNzViNTU0NDlmYzQ5M2MyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaApAQCAtMTYxLDcg
KzE2MSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFwcGVuZENvbXBsZXRlZChib29sIHBhcnNp
bmdTdWNjZWVkZWQsIGJvb2wgaXNFbmRlZCk7CiAgICAgdm9pZCByZWVucXVlU2FtcGxlcyhjb25z
dCBBdG9tU3RyaW5nJiB0cmFja0lEKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFJlY2Vp
dmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6SW5pdGlh
bGl6YXRpb25TZWdtZW50JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkaWRSZWNlaXZlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJik7CiAg
ICAgdm9pZCBwcm92aWRlTWVkaWFEYXRhKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSUQpOwogICAg
IHVpbnQ2NF90IHRvdGFsVHJhY2tCdWZmZXJTaXplSW5CeXRlcygpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9T
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmlu
ZGV4IGQ0Yjg0ZDMyZDYzMmZmZjMxZjBlOWNhNzk0MzJiYzE0OGIxNzFiOWMuLmJmMTRmMTY5YTQw
ZjlhNmU5YTkzOGEyOTJjZGJlMjgzMDM3ODgzZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC00MDksNyArNDA5LDcg
QEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUGFyc2VJbml0aWFsaXphdGlv
bkRhdGEoSW5pdGlhbGl6YXRpb25TZWdtZW4KICAgICAgICAgICAgICAgICBhdXRvJiBtZWRpYVNh
bXBsZSA9IHRyYWNrSWRNZWRpYVNhbXBsZVBhaXIuc2Vjb25kOwogICAgICAgICAgICAgICAgIGlm
ICh0cmFja0lkID09IG1fZW5hYmxlZFZpZGVvVHJhY2tJRCB8fCBtX2F1ZGlvUmVuZGVyZXJzLmNv
bnRhaW5zKHRyYWNrSWQpKSB7CiAgICAgICAgICAgICAgICAgICAgIERFQlVHX0xPRyhMT0dJREVO
VElGSUVSLCBtZWRpYVNhbXBsZS5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGRpZFJlY2Vp
dmVTYW1wbGUobWVkaWFTYW1wbGUpOworICAgICAgICAgICAgICAgICAgICBkaWRSZWNlaXZlU2Ft
cGxlKFdURk1vdmUobWVkaWFTYW1wbGUpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9CiAKQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpkaWRQcm92aWRlTWVkaWFEYXRhRm9yVHJhY2tJZChSZWY8TWVkaWFTYW1wbGU+JgogICAgIH0K
IAogICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCBtZWRpYVNhbXBsZS5nZXQoKSk7Ci0gICAg
ZGlkUmVjZWl2ZVNhbXBsZShtZWRpYVNhbXBsZSk7CisgICAgZGlkUmVjZWl2ZVNhbXBsZShXVEZN
b3ZlKG1lZGlhU2FtcGxlKSk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OndpbGxQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lE
KHVpbnQ2NF90IHRyYWNrSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBhNzVhYmY1NmMyMWViMmJkMTA2YTI3OWE2MTBm
MDdjNjRiOTQ1MWNkLi5iMTVmYzQ5MWU0ZDQ0NWUzODAxMmViNTZkZjY5MzZlNjU3NjIyMmQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKQEAgLTE4Niw5ICsxODYsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXI6OmRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUAogICAgIFNv
dXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoV1RGTW92
ZShpbml0aWFsaXphdGlvblNlZ21lbnQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkUmVjZWl2ZVNhbXBsZShN
ZWRpYVNhbXBsZSYgc2FtcGxlKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpk
aWRSZWNlaXZlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUpCiB7Ci0gICAgU291cmNl
QnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZVNhbXBsZShzYW1wbGUpOworICAgIFNvdXJjZUJ1ZmZl
clByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoV1RGTW92ZShzYW1wbGUpKTsKIH0KIAogdm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlQWxsUGVuZGluZ1NhbXBsZXMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIu
aAppbmRleCBkZDJmMWFmNmQ4ZTNjZDhlNDI0NDRkZDczOWM5ZWMzYzZiY2U0ZTI1Li5jYzJhY2Mw
NTdjYjRhOGQ4OWYwNmY4YjcxMTYzMWMwNmViMGViZDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNzMsNyArNzMsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBub3RpZnlSZWFkeUZvck1vcmVTYW1wbGVzKCk7CiAKICAgICB2b2lk
IGRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVu
dDo6SW5pdGlhbGl6YXRpb25TZWdtZW50JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJik7CisgICAgdm9pZCBkaWRS
ZWNlaXZlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlQWxs
UGVuZGluZ1NhbXBsZXMoKTsKICAgICB2b2lkIGFwcGVuZFBhcnNpbmdGYWlsZWQoKTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGY3MTUyYzcwYjIzYjgyNWJkMjhkNTc3ZGZkNmUzMTliNTk2ZmUxOGIuLmJjNDA5NWM4NTll
MTA4OWQ3ZjFiM2M5NTUyNWJkMjRmY2YwODNmOGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAy
MS0wMi0yMyAgSmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIFtN
U0VdIE1lZGlhIHNlZ21lbnQgaXMgaW5jb3JyZWN0bHkgZHJvcHBlZCB3aGVuIHVzaW5nIG5lZ2F0
aXZlIHRpbWVzdGFtcE9mZnNldCBvciB3aGVuIHNvdXJjZSBidWZmZXIgYXBwZW5kV2luZG93IGlz
IHNldC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MjI2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS10aW1lc3RhbXBvZmZzZXQtdHJpbS5odG1s
OgorCiAyMDIxLTAyLTIwICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgQVg6IEltYWdlIHNob3VsZCByZXBvcnQgdGhlIGVtYmVkZGVkIGFjY2Vzc2liaWxp
dHkgZGVzY3JpcHRpb24gaWYgYXZhaWxhYmxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXRpbWVzdGFtcG9mZnNldC10cmltLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtdGltZXN0
YW1wb2Zmc2V0LXRyaW0tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjMmIxZjcwZjdmZmQwYmQ3
OGUzMjk4NWMzZWY2YjY4ZmFiYWU2ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXRpbWVzdGFtcG9mZnNldC10cmltLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQwIEBACitUaGlzIHRlc3RzIHRoYXQgYXVkaW8gc2FtcGxlcyBv
dXRzaWRlIHRoZSBhcHBlbmRXaW5kb3cncyBpbnRlcnZhbCBhcmUgcHJvcGVybHkgaWdub3JlZC4K
KworUlVOKHZpZGVvLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoc291cmNlKSkKK0VWRU5UKHNv
dXJjZW9wZW4pCitSVU4oc291cmNlQnVmZmVyID0gc291cmNlLmFkZFNvdXJjZUJ1ZmZlcihsb2Fk
ZXIudHlwZSgpKSkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5pbml0U2Vn
bWVudCgpKSkKK0VWRU5UKHVwZGF0ZSkKK1JVTihzb3VyY2VCdWZmZXIudGltZXN0YW1wT2Zmc2V0
ID0gLShmcmFtZXNUb0JlRHJvcHBlZEJlZ2lubmluZyAqIGZyYW1lc0luQUFDUGFja2V0KSAvIHNh
bXBsZVJhdGUpCitBcHBlbmQgYSBtZWRpYSBzZWdtZW50IG5lZ2F0aXZlIG9mZnNldC4KK1JVTihz
b3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5tZWRpYVNlZ21lbnQoMCkpKQorRVZFTlQo
dXBkYXRlKQorRVhQRUNURUQgKHNvdXJjZUJ1ZmZlci5idWZmZXJlZC5sZW5ndGggPT0gJzEnKSBP
SworRVhQRUNURUQgKHNvdXJjZUJ1ZmZlci5idWZmZXJlZC5zdGFydCgwKSA9PSAnMCcpIE9LCitF
WFBFQ1RFRCAoc291cmNlQnVmZmVyLmJ1ZmZlcmVkLmVuZCgwKSA9PSAnMC44OTYnKSBPSworUlVO
KHNvdXJjZUJ1ZmZlci5yZW1vdmUoMCwgSW5maW5pdHkpKQorRVZFTlQodXBkYXRlKQorUlVOKHNv
dXJjZUJ1ZmZlci50aW1lc3RhbXBPZmZzZXQgPSAwKQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRX
aW5kb3dTdGFydCA9IDApCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZFdpbmRvd0VuZCA9IEluZmlu
aXR5KQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRXaW5kb3dTdGFydCA9IChmcmFtZXNUb0JlRHJv
cHBlZEJlZ2lubmluZyAqIGZyYW1lc0luQUFDUGFja2V0KSAvIHNhbXBsZVJhdGUpCitBcHBlbmQg
YSBtZWRpYSBzZWdtZW50IHdpdGggYXBwZW5kV2luZG93U3RhcnQgc2V0LgorUlVOKHNvdXJjZUJ1
ZmZlci5hcHBlbmRCdWZmZXIobG9hZGVyLm1lZGlhU2VnbWVudCgwKSkpCitFVkVOVCh1cGRhdGUp
CitFWFBFQ1RFRCAoc291cmNlQnVmZmVyLmJ1ZmZlcmVkLmxlbmd0aCA9PSAnMScpIE9LCitFWFBF
Q1RFRCAoc291cmNlQnVmZmVyLmJ1ZmZlcmVkLnN0YXJ0KDApID09ICcwLjEwNjY2NjY2NjY2NjY2
NjY3JykgT0sKK0VYUEVDVEVEIChzb3VyY2VCdWZmZXIuYnVmZmVyZWQuZW5kKDApID09ICcxLjAw
MjY2NjY2NjY2NjY2NjYnKSBPSworUlVOKHNvdXJjZUJ1ZmZlci5yZW1vdmUoMCwgSW5maW5pdHkp
KQorRVZFTlQodXBkYXRlKQorUlVOKHNvdXJjZUJ1ZmZlci50aW1lc3RhbXBPZmZzZXQgPSAwKQor
UlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRXaW5kb3dTdGFydCA9IDApCitSVU4oc291cmNlQnVmZmVy
LmFwcGVuZFdpbmRvd0VuZCA9IEluZmluaXR5KQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRXaW5k
b3dFbmQgPSAoKHRvdGFsRnJhbWVzSW5TZWdtZW50IC0gZnJhbWVzVG9CZURyb3BwZWRFbmQpICog
ZnJhbWVzSW5BQUNQYWNrZXQpIC8gc2FtcGxlUmF0ZSkKK0FwcGVuZCBhIG1lZGlhIHNlZ21lbnQg
d2l0aCBhcHBlbmRXaW5kb3dFbmQgc2V0LgorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIo
bG9hZGVyLm1lZGlhU2VnbWVudCgwKSkpCitFVkVOVCh1cGRhdGUpCitFWFBFQ1RFRCAoc291cmNl
QnVmZmVyLmJ1ZmZlcmVkLmxlbmd0aCA9PSAnMScpIE9LCitFWFBFQ1RFRCAoc291cmNlQnVmZmVy
LmJ1ZmZlcmVkLnN0YXJ0KDApID09ICcwJykgT0sKK0VYUEVDVEVEIChzb3VyY2VCdWZmZXIuYnVm
ZmVyZWQuZW5kKDApID09ICcwLjg5NicpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXRpbWVzdGFtcG9mZnNl
dC10cmltLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNl
LXRpbWVzdGFtcG9mZnNldC10cmltLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlkZTBmNjJiMGJhYjE5NWU5
MjdmNTAyZTk2MzlmMjFjNzBmOTU5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtdGltZXN0YW1wb2Zmc2V0LXRyaW0uaHRtbApA
QCAtMCwwICsxLDg5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRp
dGxlPm1lZGlhLXNvdXJjZS10aW1lc3RhbXBvZmZzZXQtdHJpbTwvdGl0bGU+CisgICAgPHNjcmlw
dCBzcmM9Im1lZGlhLXNvdXJjZS1sb2FkZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIHZhciBsb2Fk
ZXI7CisgICAgdmFyIHNvdXJjZTsKKyAgICB2YXIgc291cmNlQnVmZmVyOworCisgICAgY29uc3Qg
ZnJhbWVzSW5BQUNQYWNrZXQgPSAxMDI0OworICAgIGNvbnN0IHNhbXBsZVJhdGUgPSA0ODAwMDsK
KyAgICBjb25zdCB0b3RhbEZyYW1lc0luU2VnbWVudCA9IDQ3OworICAgIGNvbnN0IGZyYW1lc1Rv
QmVEcm9wcGVkQmVnaW5uaW5nID0gNTsKKyAgICBjb25zdCBmcmFtZXNUb0JlRHJvcHBlZEVuZCA9
IDU7CisKKyAgICBmdW5jdGlvbiByZXNldFNvdXJjZUJ1ZmZlcigpIHsKKyAgICAgICAgcnVuKCdz
b3VyY2VCdWZmZXIudGltZXN0YW1wT2Zmc2V0ID0gMCcpOworICAgICAgICBydW4oJ3NvdXJjZUJ1
ZmZlci5hcHBlbmRXaW5kb3dTdGFydCA9IDAnKTsKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIu
YXBwZW5kV2luZG93RW5kID0gSW5maW5pdHknKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisKKyAgICAgICAgbG9hZGVyID0g
bmV3IE1lZGlhU291cmNlTG9hZGVyKCdjb250ZW50L3Rlc3QtNDhraHotbWFuaWZlc3QuanNvbicp
OworICAgICAgICBsb2FkZXIub25lcnJvciA9ICgpID0+IHsKKyAgICAgICAgICAgIGZhaWxUZXN0
KCdNZWRpYSBkYXRhIGxvYWRpbmcgZmFpbGVkJyk7CisgICAgICAgIH07CisgICAgICAgIGxvYWRl
ci5vbmxvYWQgPSBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICB3YWl0Rm9yRXZlbnRBbmRGYWls
KCdlcnJvcicpOworCisgICAgICAgICAgICBzb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsKKyAg
ICAgICAgICAgIHJ1bigndmlkZW8uc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChzb3VyY2UpJyk7
CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKHNvdXJjZSwgJ3NvdXJjZW9wZW4nKTsKKworICAg
ICAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIgPSBzb3VyY2UuYWRkU291cmNlQnVmZmVyKGxvYWRl
ci50eXBlKCkpJyk7CisgICAgICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIo
bG9hZGVyLmluaXRTZWdtZW50KCkpJyk7CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKHNvdXJj
ZUJ1ZmZlciwgJ3VwZGF0ZScpOworCisgICAgICAgICAgICAvLyBXZSB3YW50IHRoZSBmaXJzdCBm
cmFtZXNUb0JlRHJvcHBlZEJlZ2lubmluZyBmcmFtZXMgdG8gYmUgZHJvcHBlZCwgYW5kIG9ubHkg
dGhvc2UuCisgICAgICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci50aW1lc3RhbXBPZmZzZXQgPSAt
KGZyYW1lc1RvQmVEcm9wcGVkQmVnaW5uaW5nICogZnJhbWVzSW5BQUNQYWNrZXQpIC8gc2FtcGxl
UmF0ZScpOworICAgICAgICAgICAgY29uc29sZVdyaXRlKCdBcHBlbmQgYSBtZWRpYSBzZWdtZW50
IG5lZ2F0aXZlIG9mZnNldC4nKQorICAgICAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5k
QnVmZmVyKGxvYWRlci5tZWRpYVNlZ21lbnQoMCkpJyk7CisgICAgICAgICAgICBhd2FpdCB3YWl0
Rm9yKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZScpOworCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
J3NvdXJjZUJ1ZmZlci5idWZmZXJlZC5sZW5ndGgnLCAxKTsKKyAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgnc291cmNlQnVmZmVyLmJ1ZmZlcmVkLnN0YXJ0KDApJywgMCk7CisgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ3NvdXJjZUJ1ZmZlci5idWZmZXJlZC5lbmQoMCknICAsICgodG90YWxGcmFt
ZXNJblNlZ21lbnQgLSBmcmFtZXNUb0JlRHJvcHBlZEJlZ2lubmluZykgKiBmcmFtZXNJbkFBQ1Bh
Y2tldCkgLyBzYW1wbGVSYXRlKTsKKyAgICAgICAgICAgIHJ1bignc291cmNlQnVmZmVyLnJlbW92
ZSgwLCBJbmZpbml0eSknKTsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVy
LCAndXBkYXRlJyk7CisKKyAgICAgICAgICAgIHJlc2V0U291cmNlQnVmZmVyKCk7CisgICAgICAg
ICAgICAvLyBXZSB3YW50IHRoZSBmaXJzdCBmcmFtZXNUb0JlRHJvcHBlZEJlZ2lubmluZyBmcmFt
ZXMgdG8gYmUgZHJvcHBlZCwgYW5kIG9ubHkgdGhvc2UuCisgICAgICAgICAgICBydW4oJ3NvdXJj
ZUJ1ZmZlci5hcHBlbmRXaW5kb3dTdGFydCA9IChmcmFtZXNUb0JlRHJvcHBlZEJlZ2lubmluZyAq
IGZyYW1lc0luQUFDUGFja2V0KSAvIHNhbXBsZVJhdGUnKTsKKyAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgnQXBwZW5kIGEgbWVkaWEgc2VnbWVudCB3aXRoIGFwcGVuZFdpbmRvd1N0YXJ0IHNldC4n
KQorICAgICAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5tZWRp
YVNlZ21lbnQoMCkpJyk7CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKHNvdXJjZUJ1ZmZlciwg
J3VwZGF0ZScpOworCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3NvdXJjZUJ1ZmZlci5idWZm
ZXJlZC5sZW5ndGgnLCAxKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnc291cmNlQnVmZmVy
LmJ1ZmZlcmVkLnN0YXJ0KDApJywgKGZyYW1lc1RvQmVEcm9wcGVkQmVnaW5uaW5nICogZnJhbWVz
SW5BQUNQYWNrZXQpIC8gc2FtcGxlUmF0ZSk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3Nv
dXJjZUJ1ZmZlci5idWZmZXJlZC5lbmQoMCknICAsICh0b3RhbEZyYW1lc0luU2VnbWVudCAqIGZy
YW1lc0luQUFDUGFja2V0KSAvIHNhbXBsZVJhdGUpOworICAgICAgICAgICAgcnVuKCdzb3VyY2VC
dWZmZXIucmVtb3ZlKDAsIEluZmluaXR5KScpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcihz
b3VyY2VCdWZmZXIsICd1cGRhdGUnKTsKKworICAgICAgICAgICAgcmVzZXRTb3VyY2VCdWZmZXIo
KTsKKyAgICAgICAgICAgIC8vIFdlIHdhbnQgdGhlIGxhc3QgZnJhbWVzVG9CZURyb3BwZWRFbmQg
ZnJhbWVzIHRvIGJlIGRyb3BwZWQsIGFuZCBvbmx5IHRob3NlLgorICAgICAgICAgICAgcnVuKCdz
b3VyY2VCdWZmZXIuYXBwZW5kV2luZG93RW5kID0gKCh0b3RhbEZyYW1lc0luU2VnbWVudCAtIGZy
YW1lc1RvQmVEcm9wcGVkRW5kKSAqIGZyYW1lc0luQUFDUGFja2V0KSAvIHNhbXBsZVJhdGUnKTsK
KyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgnQXBwZW5kIGEgbWVkaWEgc2VnbWVudCB3aXRoIGFw
cGVuZFdpbmRvd0VuZCBzZXQuJykKKyAgICAgICAgICAgIHJ1bignc291cmNlQnVmZmVyLmFwcGVu
ZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDApKScpOworICAgICAgICAgICAgYXdhaXQgd2Fp
dEZvcihzb3VyY2VCdWZmZXIsICd1cGRhdGUnKTsKKworICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCdzb3VyY2VCdWZmZXIuYnVmZmVyZWQubGVuZ3RoJywgMSk7CisgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ3NvdXJjZUJ1ZmZlci5idWZmZXJlZC5zdGFydCgwKScsIDApOworICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCdzb3VyY2VCdWZmZXIuYnVmZmVyZWQuZW5kKDApJyAgLCAoKHRvdGFsRnJh
bWVzSW5TZWdtZW50IC0gZnJhbWVzVG9CZURyb3BwZWRFbmQpICogZnJhbWVzSW5BQUNQYWNrZXQp
IC8gc2FtcGxlUmF0ZSk7CisKKyAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgfTsKKyAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cisg
ICAgPGRpdj4KKyAgICAgICAgVGhpcyB0ZXN0cyB0aGF0IGF1ZGlvIHNhbXBsZXMgb3V0c2lkZSB0
aGUgYXBwZW5kV2luZG93J3MgaW50ZXJ2YWwgYXJlIHByb3Blcmx5IGlnbm9yZWQuCisgICAgPC9k
aXY+CisgICAgPHZpZGVvIGNvbnRyb2xzPjwvdmlkZW8+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>