<?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>214475</bug_id>
          
          <creation_ts>2020-07-17 07:34:39 -0700</creation_ts>
          <short_desc>[webkitcorepy] Add mocks.Time</short_desc>
          <delta_ts>2020-08-07 12:24:32 -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>Tools / Tests</component>
          <version>Safari 13</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=214378</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1672478</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-07-17 07:34:39 -0700</bug_when>
    <thetext>Add a class which allows timeouts and time.sleep to function during unit testing without actually waiting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672479</commentid>
    <comment_count>1</comment_count>
      <attachid>404560</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-07-17 07:44:35 -0700</bug_when>
    <thetext>Created attachment 404560
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673924</commentid>
    <comment_count>2</comment_count>
      <attachid>404946</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-07-22 12:17:28 -0700</bug_when>
    <thetext>Created attachment 404946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674633</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-24 07:35:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/66052539&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676410</commentid>
    <comment_count>4</comment_count>
      <attachid>405578</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-07-30 09:17:45 -0700</bug_when>
    <thetext>Created attachment 405578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676711</commentid>
    <comment_count>5</comment_count>
      <attachid>405663</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-07-30 21:18:31 -0700</bug_when>
    <thetext>Created attachment 405663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677704</commentid>
    <comment_count>6</comment_count>
      <attachid>405937</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-04 12:56:48 -0700</bug_when>
    <thetext>Created attachment 405937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677887</commentid>
    <comment_count>7</comment_count>
      <attachid>405986</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-04 22:23:14 -0700</bug_when>
    <thetext>Created attachment 405986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678592</commentid>
    <comment_count>8</comment_count>
      <attachid>406176</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-07 08:15:53 -0700</bug_when>
    <thetext>Created attachment 406176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678660</commentid>
    <comment_count>9</comment_count>
      <attachid>406176</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2020-08-07 11:12:37 -0700</bug_when>
    <thetext>Comment on attachment 406176
Patch

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

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/mocks/time_.py:53
&gt; +        self.patches.append([

Interesting, I thought patches is a list of patch, but it&apos;s actually a list of patch list. Correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678664</commentid>
    <comment_count>10</comment_count>
      <attachid>406176</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-07 11:24:12 -0700</bug_when>
    <thetext>Comment on attachment 406176
Patch

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

&gt;&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/mocks/time_.py:53
&gt;&gt; +        self.patches.append([
&gt; 
&gt; Interesting, I thought patches is a list of patch, but it&apos;s actually a list of patch list. Correct?

Yes! That lets us stack this context, so something like this:

with mocks.Time:
    with mocks.Time:
         pass

Not something generally want to do, but a caller may not know what it&apos;s callees are doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678677</commentid>
    <comment_count>11</comment_count>
      <attachid>406196</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-07 11:56:23 -0700</bug_when>
    <thetext>Created attachment 406196
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678687</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-07 12:24:31 -0700</bug_when>
    <thetext>Committed r265386: &lt;https://trac.webkit.org/changeset/265386&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406196.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404560</attachid>
            <date>2020-07-17 07:44:35 -0700</date>
            <delta_ts>2020-07-22 12:17:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214475-20200717074434.patch</filename>
            <type>text/plain</type>
            <size>12364</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NDUwNykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTA3LTE3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBBZGQgbW9ja3MuVGltZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NDc1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIG1vY2sgY29uc3Ry
dWN0IHdoaWNoIGFsbG93cyBiYXNpYyB0aW1lIHV0aWxpdGllcyB0byBiZSB1c2VkIHdpdGhvdXQK
KyAgICAgICAgYWN0dWFsbHkgd2FpdGluZy4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdGNvcmVweS9SRUFETUUubWQ6IEFkZCBkb2N1bWVudGF0aW9uIG9mIG1vY2tzLlRpbWUu
CisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9t
b2NrczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dl
YmtpdGNvcmVweS9tb2Nrcy9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1lXy5weTogQWRkZWQu
CisgICAgICAgIChfTWV0YVRpbWUpOiBNZXRhLWNsYXNzIGZvciBUaW1lIG9iamVjdC4KKyAgICAg
ICAgKGFkZF9tZXRhY2xhc3MpOiBQeXRob24gMi8zIGNvbXBhdGlibGUgZnVuY3Rpb24gdG8gYWRk
IG1ldGEtY2xhc3MgdG8gY2xhc3MuCisgICAgICAgIChUaW1lKTogTW9jayBUaW1lIGRlY29yYXRv
ci4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5
L3Rlc3RzL21vY2tzOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRj
b3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21vY2tzL19faW5pdF9fLnB5OiBBZGRlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21v
Y2tzL3RpbWVfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoTW9ja1RpbWUpOiBWZXJpZnkg
dGhlIGZ1bmN0aW9uYWxpdHkgb2YgbW9ja3MuVGltZS4KKwogMjAyMC0wNy0xNiAgWGFiaWVyIFJv
ZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbmFtZSBj
cmVhdGVCb3hQdHIgaW50byBhZG9wdEJveFB0cgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0Y29yZXB5L1JFQURNRS5tZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCShyZXZpc2lvbiAyNjQ0ODIpCisrKyBUb29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCSh3b3JraW5nIGNvcHkp
CkBAIC0yLDYgKzIsOSBAQAogCiBQcm92aWRlcyBhIG51bWJlciBvZiB1dGlsaXRpZXMgaW50ZW5k
ZWQgdG8gc3VwcG9ydCBpbnRlcm1lZGlhdGUgdG8gYWR2YW5jZWQgUHl0aG9uIHByb2dyYW1taW5n
LgogCisjIyBSZXF1aXJlbWVudHMKKworVGhlIG1vY2sgYW5kIHJlcXVlc3RzIGxpYnJhcmllcy4K
IAogIyMgVXNhZ2UKIApAQCAtMTAsMyArMTMsMTQgQEAgVmVyc2lvbiByZXByZXNlbnRhdGlvbgog
ZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IFZlcnNpb24KIHZlcnNpb24gPSBWZXJzaW9uKDEsIDIs
IDMpCiBgYGAKKworTW9ja2luZyBiYXNpYyB0aW1lIGFuZCBzbGVlcCAgY2FsbHMKK2BgYAoraW1w
b3J0IHRpbWUKKworZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IG1vY2tzCisKK3dpdGggbW9ja3Mu
VGltZToKKyAgICBzdGFtcCA9IHRpbWUudGltZSgpCisgICAgdGltZS5zbGVlcCg1KQorYGBgCklu
ZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L21v
Y2tzL19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3MvX19pbml0X18ucHkJKG5vbmV4aXN0ZW50KQor
KysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nr
cy9fX2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACisjIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zyb20gd2Via2l0Y29yZXB5Lm1vY2tzLnRpbWVf
IGltcG9ydCBUaW1lCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkv
d2Via2l0Y29yZXB5L21vY2tzL3RpbWVfLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3MvdGltZV8ucHkJKG5vbmV4
aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNv
cmVweS9tb2Nrcy90aW1lXy5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExNCBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgZGF0ZXRpbWUKK2ltcG9y
dCBmdW5jdG9vbHMKK2ltcG9ydCB0aW1lCisKKworIyBXaXRob3V0IHRoZSBtZXRhLWNsYXNzLCBt
b2NrLlRpbWUgbXVzdCBlaXRoZXIgYmUgYSBkZWNvcmF0b3Igb3IgYSBjb250ZXh0bWFuYWdlci4K
KyMgV2l0aCB0aGUgbWV0YS1jbGFzcywgbW9jay5UaW1lIGNhbiBiZSBib3RoLiBOb3RlIHRoYXQg
aXQgaXMgdGhlIG1ldGEtY2xhc3Mgd2hpY2gKKyMgYWN0dWFsbHkgb3ducyBtb2NraW5nIGxvZ2lj
CitjbGFzcyBfTWV0YVRpbWUodHlwZSk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3Ms
ICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoX01ldGFUaW1lLCBzZWxmKS5fX2luaXRfXygqYXJn
cywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYucGF0Y2hlcyA9IFtdCisgICAgICAgIHNlbGYuc3Rh
Y2sgPSBbXQorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgIyBBbGxvdyBtb2Nr
IHRvIGJlIG1hbmFnZWQgdmlhIGF1dG9pbnN0YWxsCisgICAgICAgIGZyb20gbW9jayBpbXBvcnQg
cGF0Y2gKKyAgICAgICAgc2VsZi5zdGFjay5hcHBlbmQodGltZS50aW1lKCkpCisKKyAgICAgICAg
ZGVmIHNsZWVwX2Z1bmModCk6CisgICAgICAgICAgICBzZWxmLnN0YWNrWy0xXSArPSB0CisKKyAg
ICAgICAgIyBkYXRldGltZS5kYXRldGltZS5ub3cgaXMgY29uc2lkZXJlZCBhIFB5dGhvbiBidWls
dGluLCBzbyBpdCBjYW4ndCBiZSBtb2NrZWQuCisgICAgICAgICMgV2UgbmVlZCB0byAibW9jayIg
dGhlIHdob2xlIGNsYXNzIHRvIHJlcGxhY2UgYSBzaW5nbGUgZnVuY3Rpb24uCisgICAgICAgIGNs
YXNzIEZha2VEYXRlVGltZShkYXRldGltZS5kYXRldGltZSk6CisgICAgICAgICAgICBAY2xhc3Nt
ZXRob2QKKyAgICAgICAgICAgIGRlZiBub3coY2xzLCB0ej1Ob25lKToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gY2xzLmZyb210aW1lc3RhbXAoc2VsZi5zdGFja1stMV0sIHR6PXR6KQorCisgICAg
ICAgIHNlbGYucGF0Y2hlcy5hcHBlbmQoWworICAgICAgICAgICAgcGF0Y2goJ3RpbWUudGltZScs
IG5ldz1sYW1iZGE6IHNlbGYuc3RhY2tbLTFdKSwKKyAgICAgICAgICAgIHBhdGNoKCd0aW1lLnNs
ZWVwJywgbmV3PXNsZWVwX2Z1bmMpLAorICAgICAgICAgICAgcGF0Y2goJ2RhdGV0aW1lLmRhdGV0
aW1lJywgbmV3PUZha2VEYXRlVGltZSksCisgICAgICAgIF0pCisKKyAgICAgICAgZm9yIHBhdGNo
IGluIHNlbGYucGF0Y2hlc1stMV06CisgICAgICAgICAgICBwYXRjaC5fX2VudGVyX18oKQorCisg
ICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFsdWUsIHRyYWNlYmFjayk6Cisg
ICAgICAgIGZvciBwYXRjaCBpbiBzZWxmLnBhdGNoZXNbLTFdOgorICAgICAgICAgICAgcGF0Y2gu
X19leGl0X18oZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKQorICAgICAgICBzZWxmLnN0
YWNrID0gc2VsZi5zdGFja1s6LTFdCisgICAgICAgIHNlbGYucGF0Y2hlcyA9IHNlbGYucGF0Y2hl
c1s6LTFdCisKKworIyBQeXRob24gMi8zIGNvbXBhdGlibGUgbWV0YWNsYXNzIGFzc2lnbmVyIGZy
b20gc2l4CitkZWYgYWRkX21ldGFjbGFzcyhtZXRhY2xhc3MpOgorICAgIGRlZiB3cmFwcGVyKGNs
cyk6CisgICAgICAgIG9yaWdfdmFycyA9IGNscy5fX2RpY3RfXy5jb3B5KCkKKyAgICAgICAgc2xv
dHMgPSBvcmlnX3ZhcnMuZ2V0KCdfX3Nsb3RzX18nKQorICAgICAgICBpZiBzbG90cyBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2xvdHMsIHN0cik6CisgICAgICAgICAg
ICAgICAgc2xvdHMgPSBbc2xvdHNdCisgICAgICAgICAgICBmb3Igc2xvdHNfdmFyIGluIHNsb3Rz
OgorICAgICAgICAgICAgICAgIG9yaWdfdmFycy5wb3Aoc2xvdHNfdmFyKQorICAgICAgICBvcmln
X3ZhcnMucG9wKCdfX2RpY3RfXycsIE5vbmUpCisgICAgICAgIG9yaWdfdmFycy5wb3AoJ19fd2Vh
a3JlZl9fJywgTm9uZSkKKyAgICAgICAgaWYgaGFzYXR0cihjbHMsICdfX3F1YWxuYW1lX18nKToK
KyAgICAgICAgICAgIG9yaWdfdmFyc1snX19xdWFsbmFtZV9fJ10gPSBjbHMuX19xdWFsbmFtZV9f
CisgICAgICAgIHJldHVybiBtZXRhY2xhc3MoY2xzLl9fbmFtZV9fLCBjbHMuX19iYXNlc19fLCBv
cmlnX3ZhcnMpCisgICAgcmV0dXJuIHdyYXBwZXIKKworCitjbGFzcyBUaW1lKG9iamVjdCk6Cisg
ICAgIiIiCisgICAgTW9jayBvdXQgdGltZS5zbGVlcCwgdGltZS50aW1lIGFuZCBkYXRldGltZS5k
YXRldGltZSBmb3IgdGVzdGluZy4KKyAgICBMaWtlIG1vY2sucGF0Y2gsIHRoaXMgY2xhc3MgY2Fu
IGJlIHVzZWQgYXMgYm90aCBhIGRlY29yYXRvciBhbmQgYSBjb250ZXh0IG1hbmFnZXIuCisKKyAg
ICBFeGFtcGxlIHVzYWdlOgorICAgICAgICBAbW9ja3MuVGltZQorICAgICAgICBkZWYgc29tZV9m
dW5jdGlvbigpOgorICAgICAgICAgICAgLi4uLgorCisgICAgICAgIC4uLgorICAgICAgICB3aXRo
IG1vY2tzLlRpbWU6CisgICAgICAgICAgICAuLi4KKyAgICAgICAgLi4uCisgICAgIiIiCisgICAg
X19tZXRhY2xhc3NfXyA9IF9NZXRhVGltZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9iaik6
CisgICAgICAgIHNlbGYuX2NhbGxhYmxlID0gb2JqCisKKyAgICBkZWYgX19nZXRfXyhzZWxmLCBp
bnN0YW5jZSwgb3duZXIpOgorICAgICAgICByZXR1cm4gZnVuY3Rvb2xzLnBhcnRpYWwoc2VsZi5f
X2NhbGxfXywgaW5zdGFuY2UpCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgKmFyZ3MsICoqa3dh
cmdzKToKKyAgICAgICAgd2l0aCBUaW1lOgorICAgICAgICAgICAgc2VsZi5fY2FsbGFibGUoKmFy
Z3MsICoqa3dhcmdzKQorCitUaW1lID0gYWRkX21ldGFjbGFzcyhfTWV0YVRpbWUpKFRpbWUpCklu
ZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rl
c3RzL21vY2tzL19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGVzdHMvbW9ja3MvX19pbml0X18ucHkJKG5v
bmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtp
dGNvcmVweS90ZXN0cy9tb2Nrcy9fX2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDIxIEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCkluZGV4OiBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21vY2tzL3Rp
bWVfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0cy9tb2Nrcy90aW1lX3VuaXR0ZXN0LnB5CShub25l
eGlzdGVudCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRj
b3JlcHkvdGVzdHMvbW9ja3MvdGltZV91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDQ2IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMg
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCB0
aW1lCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IG1vY2tzCisK
KworY2xhc3MgTW9ja1RpbWUodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X2RlY29y
YXRvcihzZWxmKToKKyAgICAgICAgQG1vY2tzLlRpbWUKKyAgICAgICAgZGVmIGFjdGlvbigpOgor
ICAgICAgICAgICAgb3JpZ2luYWwgPSB0aW1lLnRpbWUoKQorICAgICAgICAgICAgdGltZS5zbGVl
cCgxMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKHRpbWUudGltZSgpLCBv
cmlnaW5hbCArIDEwKQorCisgICAgICAgIGFjdGlvbigpCisKKyAgICBkZWYgdGVzdF9jb250ZXh0
X21hbmFnZXIoc2VsZik6CisgICAgICAgIG9yaWdpbmFsID0gdGltZS50aW1lKCkKKworICAgICAg
ICB3aXRoIG1vY2tzLlRpbWU6CisgICAgICAgICAgICB0aW1lLnNsZWVwKDEwKQorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwodGltZS50aW1lKCksIG9yaWdpbmFsICsgMTApCisK
KyAgICAgICAgc2VsZi5hc3NlcnRMZXNzKHRpbWUudGltZSgpLCBvcmlnaW5hbCArIDEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404946</attachid>
            <date>2020-07-22 12:17:28 -0700</date>
            <delta_ts>2020-07-30 09:17:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214475-20200722121727.patch</filename>
            <type>text/plain</type>
            <size>12920</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NDcxOCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTA3LTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBBZGQgbW9ja3MuVGltZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NDc1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIG1vY2sgY29uc3Ry
dWN0IHdoaWNoIGFsbG93cyBiYXNpYyB0aW1lIHV0aWxpdGllcyB0byBiZSB1c2VkIHdpdGhvdXQK
KyAgICAgICAgYWN0dWFsbHkgd2FpdGluZy4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdGNvcmVweS9SRUFETUUubWQ6IEFkZCBkb2N1bWVudGF0aW9uIG9mIG1vY2tzLlRpbWUu
CisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9t
b2NrczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dl
YmtpdGNvcmVweS9tb2Nrcy9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1lXy5weTogQWRkZWQu
CisgICAgICAgIChfTWV0YVRpbWUpOiBNZXRhLWNsYXNzIGZvciBUaW1lIG9iamVjdC4KKyAgICAg
ICAgKGFkZF9tZXRhY2xhc3MpOiBQeXRob24gMi8zIGNvbXBhdGlibGUgZnVuY3Rpb24gdG8gYWRk
IG1ldGEtY2xhc3MgdG8gY2xhc3MuCisgICAgICAgIChUaW1lKTogTW9jayBUaW1lIGRlY29yYXRv
ci4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5
L3Rlc3RzL21vY2tzOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRj
b3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21vY2tzL19faW5pdF9fLnB5OiBBZGRlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21v
Y2tzL3RpbWVfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoTW9ja1RpbWUpOiBWZXJpZnkg
dGhlIGZ1bmN0aW9uYWxpdHkgb2YgbW9ja3MuVGltZS4KKwogMjAyMC0wNy0yMiAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFRlc3RXVEYuV1RGX1BhY2tlZC5Q
YWNrZWRBbGlnbmVkUHRyIHNob3VsZCBiZSBhZGp1c3RlZCBiZWNhdXNlIEFSTSBtYWNPUyBpcyB1
c2luZyA0OCBiaXRzIGZvciBlZmZlY3RpdmUgYWRkcmVzcyB3aWR0aApJbmRleDogVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L1JFQURNRS5tZAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCShyZXZpc2lvbiAyNjQ3
MTgpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCSh3
b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsOSBAQAogCiBQcm92aWRlcyBhIG51bWJlciBvZiB1dGls
aXRpZXMgaW50ZW5kZWQgdG8gc3VwcG9ydCBpbnRlcm1lZGlhdGUgdG8gYWR2YW5jZWQgUHl0aG9u
IHByb2dyYW1taW5nLgogCisjIyBSZXF1aXJlbWVudHMKKworVGhlIG1vY2sgbGlicmFyeS4KIAog
IyMgVXNhZ2UKIApAQCAtMjMsMyArMjYsMTMgQEAgZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IHN0
cmluZ191dGlscwogc3RyaW5nX3V0aWxzLmVuY29kZSguLi4pCiBzdHJpbmdfdXRpbHMuZGVjb2Rl
KC4uLikKIGBgYAorCitNb2NraW5nIGJhc2ljIHRpbWUgYW5kIHNsZWVwICBjYWxscworYGBgCitp
bXBvcnQgdGltZQorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IG1vY2tzCisKK3dpdGggbW9ja3Mu
VGltZToKKyAgICBzdGFtcCA9IHRpbWUudGltZSgpCisgICAgdGltZS5zbGVlcCg1KQorYGBgCklu
ZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19f
aW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNv
cmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkJKHJldmlzaW9uIDI2NDcxOCkKKysrIFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTIzLDQgKzIzLDQgQEAKIGZyb20gd2Via2l0Y29yZXB5LnZlcnNp
b24gaW1wb3J0IFZlcnNpb24KIGZyb20gd2Via2l0Y29yZXB5LnN0cmluZ191dGlscyBpbXBvcnQg
Qnl0ZXNJTywgU3RyaW5nSU8sIFVuaWNvZGVJTywgdW5pY29kZQogCi12ZXJzaW9uID0gVmVyc2lv
bigwLCAwLCAyKQordmVyc2lvbiA9IFZlcnNpb24oMCwgMCwgMykKSW5kZXg6IFRvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3MvX19pbml0X18ucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtp
dGNvcmVweS9tb2Nrcy9fX2luaXRfXy5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L21vY2tzL19faW5pdF9fLnB5CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkK
KyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworZnJvbSB3ZWJraXRjb3JlcHkubW9ja3MudGltZV8gaW1wb3J0IFRpbWUKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9j
a3MvdGltZV8ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1lXy5weQkobm9uZXhpc3RlbnQpCisrKyBUb29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L21vY2tzL3RpbWVf
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTE1IEBACisjIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
IyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBkYXRldGltZQoraW1wb3J0IGZ1bmN0b29scworaW1w
b3J0IHRpbWUKKworCisjIFdpdGhvdXQgdGhlIG1ldGEtY2xhc3MsIG1vY2suVGltZSBtdXN0IGVp
dGhlciBiZSBhIGRlY29yYXRvciBvciBhIGNvbnRleHRtYW5hZ2VyLgorIyBXaXRoIHRoZSBtZXRh
LWNsYXNzLCBtb2NrLlRpbWUgY2FuIGJlIGJvdGguIE5vdGUgdGhhdCBpdCBpcyB0aGUgbWV0YS1j
bGFzcyB3aGljaAorIyBhY3R1YWxseSBvd25zIG1vY2tpbmcgbG9naWMKK2NsYXNzIF9NZXRhVGlt
ZSh0eXBlKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAg
ICAgICBzdXBlcihfTWV0YVRpbWUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKyAg
ICAgICAgc2VsZi5wYXRjaGVzID0gW10KKyAgICAgICAgc2VsZi5zdGFjayA9IFtdCisKKyAgICBk
ZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICAjIEFsbG93IG1vY2sgdG8gYmUgbWFuYWdlZCB2
aWEgYXV0b2luc3RhbGwKKyAgICAgICAgZnJvbSBtb2NrIGltcG9ydCBwYXRjaAorICAgICAgICBz
ZWxmLnN0YWNrLmFwcGVuZCh0aW1lLnRpbWUoKSkKKworICAgICAgICBkZWYgc2xlZXBfZnVuYyh0
KToKKyAgICAgICAgICAgIHNlbGYuc3RhY2tbLTFdICs9IHQKKworICAgICAgICAjIGRhdGV0aW1l
LmRhdGV0aW1lLm5vdyBpcyBjb25zaWRlcmVkIGEgUHl0aG9uIGJ1aWx0aW4sIHNvIGl0IGNhbid0
IGJlIG1vY2tlZC4KKyAgICAgICAgIyBXZSBuZWVkIHRvICJtb2NrIiB0aGUgd2hvbGUgY2xhc3Mg
dG8gcmVwbGFjZSBhIHNpbmdsZSBmdW5jdGlvbi4KKyAgICAgICAgY2xhc3MgRmFrZURhdGVUaW1l
KGRhdGV0aW1lLmRhdGV0aW1lKToKKyAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICAg
ICAgZGVmIG5vdyhjbHMsIHR6PU5vbmUpOgorICAgICAgICAgICAgICAgIHJldHVybiBjbHMuZnJv
bXRpbWVzdGFtcChzZWxmLnN0YWNrWy0xXSwgdHo9dHopCisKKyAgICAgICAgc2VsZi5wYXRjaGVz
LmFwcGVuZChbCisgICAgICAgICAgICBwYXRjaCgndGltZS50aW1lJywgbmV3PWxhbWJkYTogc2Vs
Zi5zdGFja1stMV0pLAorICAgICAgICAgICAgcGF0Y2goJ3RpbWUuc2xlZXAnLCBuZXc9c2xlZXBf
ZnVuYyksCisgICAgICAgICAgICBwYXRjaCgnZGF0ZXRpbWUuZGF0ZXRpbWUnLCBuZXc9RmFrZURh
dGVUaW1lKSwKKyAgICAgICAgXSkKKworICAgICAgICBmb3IgcGF0Y2ggaW4gc2VsZi5wYXRjaGVz
Wy0xXToKKyAgICAgICAgICAgIHBhdGNoLl9fZW50ZXJfXygpCisKKyAgICBkZWYgX19leGl0X18o
c2VsZiwgZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKToKKyAgICAgICAgZm9yIHBhdGNo
IGluIHNlbGYucGF0Y2hlc1stMV06CisgICAgICAgICAgICBwYXRjaC5fX2V4aXRfXyhleGNfdHlw
ZSwgZXhjX3ZhbHVlLCB0cmFjZWJhY2spCisgICAgICAgIHNlbGYuc3RhY2sgPSBzZWxmLnN0YWNr
WzotMV0KKyAgICAgICAgc2VsZi5wYXRjaGVzID0gc2VsZi5wYXRjaGVzWzotMV0KKworCisjIFB5
dGhvbiAyLzMgY29tcGF0aWJsZSBtZXRhY2xhc3MgYXNzaWduZXIgZnJvbSBzaXgKK2RlZiBhZGRf
bWV0YWNsYXNzKG1ldGFjbGFzcyk6CisgICAgZGVmIHdyYXBwZXIoY2xzKToKKyAgICAgICAgb3Jp
Z192YXJzID0gY2xzLl9fZGljdF9fLmNvcHkoKQorICAgICAgICBzbG90cyA9IG9yaWdfdmFycy5n
ZXQoJ19fc2xvdHNfXycpCisgICAgICAgIGlmIHNsb3RzIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgaWYgaXNpbnN0YW5jZShzbG90cywgc3RyKToKKyAgICAgICAgICAgICAgICBzbG90cyA9IFtz
bG90c10KKyAgICAgICAgICAgIGZvciBzbG90c192YXIgaW4gc2xvdHM6CisgICAgICAgICAgICAg
ICAgb3JpZ192YXJzLnBvcChzbG90c192YXIpCisgICAgICAgIG9yaWdfdmFycy5wb3AoJ19fZGlj
dF9fJywgTm9uZSkKKyAgICAgICAgb3JpZ192YXJzLnBvcCgnX193ZWFrcmVmX18nLCBOb25lKQor
ICAgICAgICBpZiBoYXNhdHRyKGNscywgJ19fcXVhbG5hbWVfXycpOgorICAgICAgICAgICAgb3Jp
Z192YXJzWydfX3F1YWxuYW1lX18nXSA9IGNscy5fX3F1YWxuYW1lX18KKyAgICAgICAgcmV0dXJu
IG1ldGFjbGFzcyhjbHMuX19uYW1lX18sIGNscy5fX2Jhc2VzX18sIG9yaWdfdmFycykKKyAgICBy
ZXR1cm4gd3JhcHBlcgorCisKK2NsYXNzIFRpbWUob2JqZWN0KToKKyAgICAiIiIKKyAgICBNb2Nr
IG91dCB0aW1lLnNsZWVwLCB0aW1lLnRpbWUgYW5kIGRhdGV0aW1lLmRhdGV0aW1lIGZvciB0ZXN0
aW5nLgorICAgIExpa2UgbW9jay5wYXRjaCwgdGhpcyBjbGFzcyBjYW4gYmUgdXNlZCBhcyBib3Ro
IGEgZGVjb3JhdG9yIGFuZCBhIGNvbnRleHQgbWFuYWdlci4KKworICAgIEV4YW1wbGUgdXNhZ2U6
CisgICAgICAgIEBtb2Nrcy5UaW1lCisgICAgICAgIGRlZiBzb21lX2Z1bmN0aW9uKCk6CisgICAg
ICAgICAgICAuLi4uCisKKyAgICAgICAgLi4uCisgICAgICAgIHdpdGggbW9ja3MuVGltZToKKyAg
ICAgICAgICAgIC4uLgorICAgICAgICAuLi4KKyAgICAiIiIKKyAgICBfX21ldGFjbGFzc19fID0g
X01ldGFUaW1lCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb2JqKToKKyAgICAgICAgc2VsZi5f
Y2FsbGFibGUgPSBvYmoKKworICAgIGRlZiBfX2dldF9fKHNlbGYsIGluc3RhbmNlLCBvd25lcik6
CisgICAgICAgIHJldHVybiBmdW5jdG9vbHMucGFydGlhbChzZWxmLl9fY2FsbF9fLCBpbnN0YW5j
ZSkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICB3
aXRoIFRpbWU6CisgICAgICAgICAgICBzZWxmLl9jYWxsYWJsZSgqYXJncywgKiprd2FyZ3MpCisK
KworVGltZSA9IGFkZF9tZXRhY2xhc3MoX01ldGFUaW1lKShUaW1lKQpJbmRleDogVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0cy9tb2Nrcy9fX2lu
aXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3Jl
cHkvd2Via2l0Y29yZXB5L3Rlc3RzL21vY2tzL19faW5pdF9fLnB5CShub25leGlzdGVudCkKKysr
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGVzdHMv
bW9ja3MvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMSBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0cy9tb2Nrcy90aW1lX3VuaXR0ZXN0LnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJr
aXRjb3JlcHkvdGVzdHMvbW9ja3MvdGltZV91bml0dGVzdC5weQkobm9uZXhpc3RlbnQpCisrKyBU
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21v
Y2tzL3RpbWVfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgdGltZQoraW1wb3J0IHVu
aXR0ZXN0CisKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBtb2NrcworCisKK2NsYXNzIE1vY2tU
aW1lKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9kZWNvcmF0b3Ioc2VsZik6Cisg
ICAgICAgIEBtb2Nrcy5UaW1lCisgICAgICAgIGRlZiBhY3Rpb24oKToKKyAgICAgICAgICAgIG9y
aWdpbmFsID0gdGltZS50aW1lKCkKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoMTApCisgICAgICAg
ICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbCh0aW1lLnRpbWUoKSwgb3JpZ2luYWwgKyAxMCkK
KworICAgICAgICBhY3Rpb24oKQorCisgICAgZGVmIHRlc3RfY29udGV4dF9tYW5hZ2VyKHNlbGYp
OgorICAgICAgICBvcmlnaW5hbCA9IHRpbWUudGltZSgpCisKKyAgICAgICAgd2l0aCBtb2Nrcy5U
aW1lOgorICAgICAgICAgICAgdGltZS5zbGVlcCgxMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
R3JlYXRlckVxdWFsKHRpbWUudGltZSgpLCBvcmlnaW5hbCArIDEwKQorCisgICAgICAgIHNlbGYu
YXNzZXJ0TGVzcyh0aW1lLnRpbWUoKSwgb3JpZ2luYWwgKyAxKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405578</attachid>
            <date>2020-07-30 09:17:45 -0700</date>
            <delta_ts>2020-07-30 21:18:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214475-20200730091744.patch</filename>
            <type>text/plain</type>
            <size>12834</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTA4MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTA3LTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBBZGQgbW9ja3MuVGltZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NDc1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIG1vY2sgY29uc3Ry
dWN0IHdoaWNoIGFsbG93cyBiYXNpYyB0aW1lIHV0aWxpdGllcyB0byBiZSB1c2VkIHdpdGhvdXQK
KyAgICAgICAgYWN0dWFsbHkgd2FpdGluZy4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdGNvcmVweS9SRUFETUUubWQ6IEFkZCBkb2N1bWVudGF0aW9uIG9mIG1vY2tzLlRpbWUu
CisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9t
b2NrczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dl
YmtpdGNvcmVweS9tb2Nrcy9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1lXy5weTogQWRkZWQu
CisgICAgICAgIChfTWV0YVRpbWUpOiBNZXRhLWNsYXNzIGZvciBUaW1lIG9iamVjdC4KKyAgICAg
ICAgKGFkZF9tZXRhY2xhc3MpOiBQeXRob24gMi8zIGNvbXBhdGlibGUgZnVuY3Rpb24gdG8gYWRk
IG1ldGEtY2xhc3MgdG8gY2xhc3MuCisgICAgICAgIChUaW1lKTogTW9jayBUaW1lIGRlY29yYXRv
ci4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5
L3Rlc3RzL21vY2tzOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRj
b3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21vY2tzL19faW5pdF9fLnB5OiBBZGRlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21v
Y2tzL3RpbWVfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoTW9ja1RpbWUpOiBWZXJpZnkg
dGhlIGZ1bmN0aW9uYWxpdHkgb2YgbW9ja3MuVGltZS4KKwogMjAyMC0wNy0zMCAgSm9uYXRoYW4g
QmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0JpZyBTdXJdIEFkZCBsaW1p
dGVkIFNlZWQgMyBzdXBwb3J0IHRvIEVXUwpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0Y29yZXB5L1JFQURNRS5tZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCShyZXZpc2lvbiAyNjUwODMpCisrKyBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCSh3b3JraW5nIGNvcHkpCkBA
IC0zMywzICszMywxMyBAQCBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgQXV0b0luc3RhbGwKIEF1
dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3JlcXVlc3RzJywgVmVyc2lvbigyLCAyNCkpKQog
aW1wb3J0IHJlcXVlc3RzCiBgYGAKKworTW9ja2luZyBiYXNpYyB0aW1lIGFuZCBzbGVlcCAgY2Fs
bHMKK2BgYAoraW1wb3J0IHRpbWUKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBtb2NrcworCit3
aXRoIG1vY2tzLlRpbWU6CisgICAgc3RhbXAgPSB0aW1lLnRpbWUoKQorICAgIHRpbWUuc2xlZXAo
NSkKK2BgYApJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtp
dGNvcmVweS9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5CShyZXZpc2lvbiAyNjUwODMp
CisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19f
aW5pdF9fLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBAIGxvZyA9IGxvZ2dpbmcu
Z2V0TG9nZ2VyKCd3ZWJraXRjb3JlcHknKQogZnJvbSB3ZWJraXRjb3JlcHkudmVyc2lvbiBpbXBv
cnQgVmVyc2lvbgogZnJvbSB3ZWJraXRjb3JlcHkuc3RyaW5nX3V0aWxzIGltcG9ydCBCeXRlc0lP
LCBTdHJpbmdJTywgVW5pY29kZUlPLCB1bmljb2RlCiAKLXZlcnNpb24gPSBWZXJzaW9uKDAsIDAs
IDMpCit2ZXJzaW9uID0gVmVyc2lvbigwLCAwLCA0KQogCiBmcm9tIHdlYmtpdGNvcmVweS5hdXRv
aW5zdGFsbCBpbXBvcnQgUGFja2FnZSwgQXV0b0luc3RhbGwKIGlmIHN5cy52ZXJzaW9uX2luZm8g
PiAoMywgMCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Vi
a2l0Y29yZXB5L21vY2tzL19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3MvX19pbml0X18ucHkJKG5v
bmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtp
dGNvcmVweS9tb2Nrcy9fX2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBA
CisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zyb20gd2Via2l0Y29yZXB5
Lm1vY2tzLnRpbWVfIGltcG9ydCBUaW1lCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L21vY2tzL3RpbWVfLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3MvdGlt
ZV8ucHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29y
ZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1lXy5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDExNSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisj
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgZGF0
ZXRpbWUKK2ltcG9ydCBmdW5jdG9vbHMKK2ltcG9ydCB0aW1lCisKKworIyBXaXRob3V0IHRoZSBt
ZXRhLWNsYXNzLCBtb2NrLlRpbWUgbXVzdCBlaXRoZXIgYmUgYSBkZWNvcmF0b3Igb3IgYSBjb250
ZXh0bWFuYWdlci4KKyMgV2l0aCB0aGUgbWV0YS1jbGFzcywgbW9jay5UaW1lIGNhbiBiZSBib3Ro
LiBOb3RlIHRoYXQgaXQgaXMgdGhlIG1ldGEtY2xhc3Mgd2hpY2gKKyMgYWN0dWFsbHkgb3ducyBt
b2NraW5nIGxvZ2ljCitjbGFzcyBfTWV0YVRpbWUodHlwZSk6CisKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoX01ldGFUaW1lLCBzZWxmKS5f
X2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYucGF0Y2hlcyA9IFtdCisgICAg
ICAgIHNlbGYuc3RhY2sgPSBbXQorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAg
IyBBbGxvdyBtb2NrIHRvIGJlIG1hbmFnZWQgdmlhIGF1dG9pbnN0YWxsCisgICAgICAgIGZyb20g
bW9jayBpbXBvcnQgcGF0Y2gKKyAgICAgICAgc2VsZi5zdGFjay5hcHBlbmQodGltZS50aW1lKCkp
CisKKyAgICAgICAgZGVmIHNsZWVwX2Z1bmModCk6CisgICAgICAgICAgICBzZWxmLnN0YWNrWy0x
XSArPSB0CisKKyAgICAgICAgIyBkYXRldGltZS5kYXRldGltZS5ub3cgaXMgY29uc2lkZXJlZCBh
IFB5dGhvbiBidWlsdGluLCBzbyBpdCBjYW4ndCBiZSBtb2NrZWQuCisgICAgICAgICMgV2UgbmVl
ZCB0byAibW9jayIgdGhlIHdob2xlIGNsYXNzIHRvIHJlcGxhY2UgYSBzaW5nbGUgZnVuY3Rpb24u
CisgICAgICAgIGNsYXNzIEZha2VEYXRlVGltZShkYXRldGltZS5kYXRldGltZSk6CisgICAgICAg
ICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgIGRlZiBub3coY2xzLCB0ej1Ob25lKToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gY2xzLmZyb210aW1lc3RhbXAoc2VsZi5zdGFja1stMV0sIHR6
PXR6KQorCisgICAgICAgIHNlbGYucGF0Y2hlcy5hcHBlbmQoWworICAgICAgICAgICAgcGF0Y2go
J3RpbWUudGltZScsIG5ldz1sYW1iZGE6IHNlbGYuc3RhY2tbLTFdKSwKKyAgICAgICAgICAgIHBh
dGNoKCd0aW1lLnNsZWVwJywgbmV3PXNsZWVwX2Z1bmMpLAorICAgICAgICAgICAgcGF0Y2goJ2Rh
dGV0aW1lLmRhdGV0aW1lJywgbmV3PUZha2VEYXRlVGltZSksCisgICAgICAgIF0pCisKKyAgICAg
ICAgZm9yIHBhdGNoIGluIHNlbGYucGF0Y2hlc1stMV06CisgICAgICAgICAgICBwYXRjaC5fX2Vu
dGVyX18oKQorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFsdWUsIHRy
YWNlYmFjayk6CisgICAgICAgIGZvciBwYXRjaCBpbiBzZWxmLnBhdGNoZXNbLTFdOgorICAgICAg
ICAgICAgcGF0Y2guX19leGl0X18oZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKQorICAg
ICAgICBzZWxmLnN0YWNrID0gc2VsZi5zdGFja1s6LTFdCisgICAgICAgIHNlbGYucGF0Y2hlcyA9
IHNlbGYucGF0Y2hlc1s6LTFdCisKKworIyBQeXRob24gMi8zIGNvbXBhdGlibGUgbWV0YWNsYXNz
IGFzc2lnbmVyIGZyb20gc2l4CitkZWYgYWRkX21ldGFjbGFzcyhtZXRhY2xhc3MpOgorICAgIGRl
ZiB3cmFwcGVyKGNscyk6CisgICAgICAgIG9yaWdfdmFycyA9IGNscy5fX2RpY3RfXy5jb3B5KCkK
KyAgICAgICAgc2xvdHMgPSBvcmlnX3ZhcnMuZ2V0KCdfX3Nsb3RzX18nKQorICAgICAgICBpZiBz
bG90cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2xvdHMsIHN0cik6
CisgICAgICAgICAgICAgICAgc2xvdHMgPSBbc2xvdHNdCisgICAgICAgICAgICBmb3Igc2xvdHNf
dmFyIGluIHNsb3RzOgorICAgICAgICAgICAgICAgIG9yaWdfdmFycy5wb3Aoc2xvdHNfdmFyKQor
ICAgICAgICBvcmlnX3ZhcnMucG9wKCdfX2RpY3RfXycsIE5vbmUpCisgICAgICAgIG9yaWdfdmFy
cy5wb3AoJ19fd2Vha3JlZl9fJywgTm9uZSkKKyAgICAgICAgaWYgaGFzYXR0cihjbHMsICdfX3F1
YWxuYW1lX18nKToKKyAgICAgICAgICAgIG9yaWdfdmFyc1snX19xdWFsbmFtZV9fJ10gPSBjbHMu
X19xdWFsbmFtZV9fCisgICAgICAgIHJldHVybiBtZXRhY2xhc3MoY2xzLl9fbmFtZV9fLCBjbHMu
X19iYXNlc19fLCBvcmlnX3ZhcnMpCisgICAgcmV0dXJuIHdyYXBwZXIKKworCitjbGFzcyBUaW1l
KG9iamVjdCk6CisgICAgIiIiCisgICAgTW9jayBvdXQgdGltZS5zbGVlcCwgdGltZS50aW1lIGFu
ZCBkYXRldGltZS5kYXRldGltZSBmb3IgdGVzdGluZy4KKyAgICBMaWtlIG1vY2sucGF0Y2gsIHRo
aXMgY2xhc3MgY2FuIGJlIHVzZWQgYXMgYm90aCBhIGRlY29yYXRvciBhbmQgYSBjb250ZXh0IG1h
bmFnZXIuCisKKyAgICBFeGFtcGxlIHVzYWdlOgorICAgICAgICBAbW9ja3MuVGltZQorICAgICAg
ICBkZWYgc29tZV9mdW5jdGlvbigpOgorICAgICAgICAgICAgLi4uLgorCisgICAgICAgIC4uLgor
ICAgICAgICB3aXRoIG1vY2tzLlRpbWU6CisgICAgICAgICAgICAuLi4KKyAgICAgICAgLi4uCisg
ICAgIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IF9NZXRhVGltZQorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIG9iaik6CisgICAgICAgIHNlbGYuX2NhbGxhYmxlID0gb2JqCisKKyAgICBkZWYgX19n
ZXRfXyhzZWxmLCBpbnN0YW5jZSwgb3duZXIpOgorICAgICAgICByZXR1cm4gZnVuY3Rvb2xzLnBh
cnRpYWwoc2VsZi5fX2NhbGxfXywgaW5zdGFuY2UpCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwg
KmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgd2l0aCBUaW1lOgorICAgICAgICAgICAgc2VsZi5f
Y2FsbGFibGUoKmFyZ3MsICoqa3dhcmdzKQorCisKK1RpbWUgPSBhZGRfbWV0YWNsYXNzKF9NZXRh
VGltZSkoVGltZSkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93
ZWJraXRjb3JlcHkvdGVzdHMvbW9ja3MvX19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0cy9tb2Nrcy9f
X2luaXRfXy5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21vY2tzL19faW5pdF9fLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMjEgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworIyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
SW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkv
dGVzdHMvbW9ja3MvdGltZV91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21vY2tzL3RpbWVfdW5p
dHRlc3QucHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0cy9tb2Nrcy90aW1lX3VuaXR0ZXN0LnB5CSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
IyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworIyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworaW1wb3J0IHRpbWUKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtpdGNvcmVweSBp
bXBvcnQgbW9ja3MKKworCitjbGFzcyBNb2NrVGltZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAg
ZGVmIHRlc3RfZGVjb3JhdG9yKHNlbGYpOgorICAgICAgICBAbW9ja3MuVGltZQorICAgICAgICBk
ZWYgYWN0aW9uKCk6CisgICAgICAgICAgICBvcmlnaW5hbCA9IHRpbWUudGltZSgpCisgICAgICAg
ICAgICB0aW1lLnNsZWVwKDEwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwo
dGltZS50aW1lKCksIG9yaWdpbmFsICsgMTApCisKKyAgICAgICAgYWN0aW9uKCkKKworICAgIGRl
ZiB0ZXN0X2NvbnRleHRfbWFuYWdlcihzZWxmKToKKyAgICAgICAgb3JpZ2luYWwgPSB0aW1lLnRp
bWUoKQorCisgICAgICAgIHdpdGggbW9ja3MuVGltZToKKyAgICAgICAgICAgIHRpbWUuc2xlZXAo
MTApCisgICAgICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbCh0aW1lLnRpbWUoKSwgb3Jp
Z2luYWwgKyAxMCkKKworICAgICAgICBzZWxmLmFzc2VydExlc3ModGltZS50aW1lKCksIG9yaWdp
bmFsICsgMSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405663</attachid>
            <date>2020-07-30 21:18:31 -0700</date>
            <delta_ts>2020-08-04 12:56:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214475-20200730211830.patch</filename>
            <type>text/plain</type>
            <size>12854</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTEyOSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTA3LTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBBZGQgbW9ja3MuVGltZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NDc1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIG1vY2sgY29uc3Ry
dWN0IHdoaWNoIGFsbG93cyBiYXNpYyB0aW1lIHV0aWxpdGllcyB0byBiZSB1c2VkIHdpdGhvdXQK
KyAgICAgICAgYWN0dWFsbHkgd2FpdGluZy4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdGNvcmVweS9SRUFETUUubWQ6IEFkZCBkb2N1bWVudGF0aW9uIG9mIG1vY2tzLlRpbWUu
CisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9t
b2NrczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dl
YmtpdGNvcmVweS9tb2Nrcy9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1lXy5weTogQWRkZWQu
CisgICAgICAgIChfTWV0YVRpbWUpOiBNZXRhLWNsYXNzIGZvciBUaW1lIG9iamVjdC4KKyAgICAg
ICAgKGFkZF9tZXRhY2xhc3MpOiBQeXRob24gMi8zIGNvbXBhdGlibGUgZnVuY3Rpb24gdG8gYWRk
IG1ldGEtY2xhc3MgdG8gY2xhc3MuCisgICAgICAgIChUaW1lKTogTW9jayBUaW1lIGRlY29yYXRv
ci4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5
L3Rlc3RzL21vY2tzOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRj
b3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21vY2tzL19faW5pdF9fLnB5OiBBZGRlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21v
Y2tzL3RpbWVfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoTW9ja1RpbWUpOiBWZXJpZnkg
dGhlIGZ1bmN0aW9uYWxpdHkgb2YgbW9ja3MuVGltZS4KKwogMjAyMC0wNy0zMCAgSm9uYXRoYW4g
QmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW3dlYmtpdGNvcmVweV0gQWRk
IGFuIGF1dG8taW5zdGFsbGVyIChVbnJldmlld2VkIGZvbGxvdy11cCBmaXgpCkluZGV4OiBUb29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9SRUFETUUubWQJKHJldmlzaW9u
IDI2NTEyOSkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9SRUFETUUu
bWQJKHdvcmtpbmcgY29weSkKQEAgLTMzLDMgKzMzLDEzIEBAIGZyb20gd2Via2l0Y29yZXB5IGlt
cG9ydCBBdXRvSW5zdGFsbAogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncmVxdWVzdHMn
LCBWZXJzaW9uKDIsIDI0KSkpCiBpbXBvcnQgcmVxdWVzdHMKIGBgYAorCitNb2NraW5nIGJhc2lj
IHRpbWUgYW5kIHNsZWVwICBjYWxscworYGBgCitpbXBvcnQgdGltZQorZnJvbSB3ZWJraXRjb3Jl
cHkgaW1wb3J0IG1vY2tzCisKK3dpdGggbW9ja3MuVGltZToKKyAgICBzdGFtcCA9IHRpbWUudGlt
ZSgpCisgICAgdGltZS5zbGVlcCg1KQorYGBgCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18u
cHkJKHJldmlzaW9uIDI2NTEyOSkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNv
cmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4
LDcgQEAgbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ3dlYmtpdGNvcmVweScpCiBmcm9tIHdlYmtp
dGNvcmVweS52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCiBmcm9tIHdlYmtpdGNvcmVweS5zdHJpbmdf
dXRpbHMgaW1wb3J0IEJ5dGVzSU8sIFN0cmluZ0lPLCBVbmljb2RlSU8sIHVuaWNvZGUKIAotdmVy
c2lvbiA9IFZlcnNpb24oMCwgMCwgNCkKK3ZlcnNpb24gPSBWZXJzaW9uKDAsIDAsIDUpCiAKIGZy
b20gd2Via2l0Y29yZXB5LmF1dG9pbnN0YWxsIGltcG9ydCBQYWNrYWdlLCBBdXRvSW5zdGFsbAog
aWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3MvX19pbml0X18ucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9t
b2Nrcy9fX2luaXRfXy5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L21vY2tzL19faW5pdF9fLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMjMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworIyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworZnJvbSB3ZWJraXRjb3JlcHkubW9ja3MudGltZV8gaW1wb3J0IFRpbWUKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3MvdGltZV8u
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dl
YmtpdGNvcmVweS9tb2Nrcy90aW1lXy5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L21vY2tzL3RpbWVfLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTE1IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisj
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
KyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKK2ltcG9ydCBkYXRldGltZQoraW1wb3J0IGZ1bmN0b29scworaW1wb3J0IHRpbWUK
KworCisjIFdpdGhvdXQgdGhlIG1ldGEtY2xhc3MsIG1vY2suVGltZSBtdXN0IGVpdGhlciBiZSBh
IGRlY29yYXRvciBvciBhIGNvbnRleHRtYW5hZ2VyLgorIyBXaXRoIHRoZSBtZXRhLWNsYXNzLCBt
b2NrLlRpbWUgY2FuIGJlIGJvdGguIE5vdGUgdGhhdCBpdCBpcyB0aGUgbWV0YS1jbGFzcyB3aGlj
aAorIyBhY3R1YWxseSBvd25zIG1vY2tpbmcgbG9naWMKK2NsYXNzIF9NZXRhVGltZSh0eXBlKToK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzdXBl
cihfTWV0YVRpbWUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2Vs
Zi5wYXRjaGVzID0gW10KKyAgICAgICAgc2VsZi5zdGFjayA9IFtdCisKKyAgICBkZWYgX19lbnRl
cl9fKHNlbGYpOgorICAgICAgICAjIEFsbG93IG1vY2sgdG8gYmUgbWFuYWdlZCB2aWEgYXV0b2lu
c3RhbGwKKyAgICAgICAgZnJvbSBtb2NrIGltcG9ydCBwYXRjaAorICAgICAgICBzZWxmLnN0YWNr
LmFwcGVuZCh0aW1lLnRpbWUoKSkKKworICAgICAgICBkZWYgc2xlZXBfZnVuYyh0KToKKyAgICAg
ICAgICAgIHNlbGYuc3RhY2tbLTFdICs9IHQKKworICAgICAgICAjIGRhdGV0aW1lLmRhdGV0aW1l
Lm5vdyBpcyBjb25zaWRlcmVkIGEgUHl0aG9uIGJ1aWx0aW4sIHNvIGl0IGNhbid0IGJlIG1vY2tl
ZC4KKyAgICAgICAgIyBXZSBuZWVkIHRvICJtb2NrIiB0aGUgd2hvbGUgY2xhc3MgdG8gcmVwbGFj
ZSBhIHNpbmdsZSBmdW5jdGlvbi4KKyAgICAgICAgY2xhc3MgRmFrZURhdGVUaW1lKGRhdGV0aW1l
LmRhdGV0aW1lKToKKyAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICAgICAgZGVmIG5v
dyhjbHMsIHR6PU5vbmUpOgorICAgICAgICAgICAgICAgIHJldHVybiBjbHMuZnJvbXRpbWVzdGFt
cChzZWxmLnN0YWNrWy0xXSwgdHo9dHopCisKKyAgICAgICAgc2VsZi5wYXRjaGVzLmFwcGVuZChb
CisgICAgICAgICAgICBwYXRjaCgndGltZS50aW1lJywgbmV3PWxhbWJkYTogc2VsZi5zdGFja1st
MV0pLAorICAgICAgICAgICAgcGF0Y2goJ3RpbWUuc2xlZXAnLCBuZXc9c2xlZXBfZnVuYyksCisg
ICAgICAgICAgICBwYXRjaCgnZGF0ZXRpbWUuZGF0ZXRpbWUnLCBuZXc9RmFrZURhdGVUaW1lKSwK
KyAgICAgICAgXSkKKworICAgICAgICBmb3IgcGF0Y2ggaW4gc2VsZi5wYXRjaGVzWy0xXToKKyAg
ICAgICAgICAgIHBhdGNoLl9fZW50ZXJfXygpCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgZXhj
X3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKToKKyAgICAgICAgZm9yIHBhdGNoIGluIHNlbGYu
cGF0Y2hlc1stMV06CisgICAgICAgICAgICBwYXRjaC5fX2V4aXRfXyhleGNfdHlwZSwgZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCisgICAgICAgIHNlbGYuc3RhY2sgPSBzZWxmLnN0YWNrWzotMV0KKyAg
ICAgICAgc2VsZi5wYXRjaGVzID0gc2VsZi5wYXRjaGVzWzotMV0KKworCisjIFB5dGhvbiAyLzMg
Y29tcGF0aWJsZSBtZXRhY2xhc3MgYXNzaWduZXIgZnJvbSBzaXgKK2RlZiBhZGRfbWV0YWNsYXNz
KG1ldGFjbGFzcyk6CisgICAgZGVmIHdyYXBwZXIoY2xzKToKKyAgICAgICAgb3JpZ192YXJzID0g
Y2xzLl9fZGljdF9fLmNvcHkoKQorICAgICAgICBzbG90cyA9IG9yaWdfdmFycy5nZXQoJ19fc2xv
dHNfXycpCisgICAgICAgIGlmIHNsb3RzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgaXNp
bnN0YW5jZShzbG90cywgc3RyKToKKyAgICAgICAgICAgICAgICBzbG90cyA9IFtzbG90c10KKyAg
ICAgICAgICAgIGZvciBzbG90c192YXIgaW4gc2xvdHM6CisgICAgICAgICAgICAgICAgb3JpZ192
YXJzLnBvcChzbG90c192YXIpCisgICAgICAgIG9yaWdfdmFycy5wb3AoJ19fZGljdF9fJywgTm9u
ZSkKKyAgICAgICAgb3JpZ192YXJzLnBvcCgnX193ZWFrcmVmX18nLCBOb25lKQorICAgICAgICBp
ZiBoYXNhdHRyKGNscywgJ19fcXVhbG5hbWVfXycpOgorICAgICAgICAgICAgb3JpZ192YXJzWydf
X3F1YWxuYW1lX18nXSA9IGNscy5fX3F1YWxuYW1lX18KKyAgICAgICAgcmV0dXJuIG1ldGFjbGFz
cyhjbHMuX19uYW1lX18sIGNscy5fX2Jhc2VzX18sIG9yaWdfdmFycykKKyAgICByZXR1cm4gd3Jh
cHBlcgorCisKK2NsYXNzIFRpbWUob2JqZWN0KToKKyAgICAiIiIKKyAgICBNb2NrIG91dCB0aW1l
LnNsZWVwLCB0aW1lLnRpbWUgYW5kIGRhdGV0aW1lLmRhdGV0aW1lIGZvciB0ZXN0aW5nLgorICAg
IExpa2UgbW9jay5wYXRjaCwgdGhpcyBjbGFzcyBjYW4gYmUgdXNlZCBhcyBib3RoIGEgZGVjb3Jh
dG9yIGFuZCBhIGNvbnRleHQgbWFuYWdlci4KKworICAgIEV4YW1wbGUgdXNhZ2U6CisgICAgICAg
IEBtb2Nrcy5UaW1lCisgICAgICAgIGRlZiBzb21lX2Z1bmN0aW9uKCk6CisgICAgICAgICAgICAu
Li4uCisKKyAgICAgICAgLi4uCisgICAgICAgIHdpdGggbW9ja3MuVGltZToKKyAgICAgICAgICAg
IC4uLgorICAgICAgICAuLi4KKyAgICAiIiIKKyAgICBfX21ldGFjbGFzc19fID0gX01ldGFUaW1l
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb2JqKToKKyAgICAgICAgc2VsZi5fY2FsbGFibGUg
PSBvYmoKKworICAgIGRlZiBfX2dldF9fKHNlbGYsIGluc3RhbmNlLCBvd25lcik6CisgICAgICAg
IHJldHVybiBmdW5jdG9vbHMucGFydGlhbChzZWxmLl9fY2FsbF9fLCBpbnN0YW5jZSkKKworICAg
IGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICB3aXRoIFRpbWU6
CisgICAgICAgICAgICBzZWxmLl9jYWxsYWJsZSgqYXJncywgKiprd2FyZ3MpCisKKworVGltZSA9
IGFkZF9tZXRhY2xhc3MoX01ldGFUaW1lKShUaW1lKQpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0cy9tb2Nrcy9fX2luaXRfXy5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0
Y29yZXB5L3Rlc3RzL21vY2tzL19faW5pdF9fLnB5CShub25leGlzdGVudCkKKysrIFRvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGVzdHMvbW9ja3MvX19p
bml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMSBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0cy9tb2Nrcy90aW1lX3VuaXR0ZXN0LnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkv
dGVzdHMvbW9ja3MvdGltZV91bml0dGVzdC5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21vY2tzL3RpbWVf
dW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgdGltZQoraW1wb3J0IHVuaXR0ZXN0CisK
K2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBtb2NrcworCisKK2NsYXNzIE1vY2tUaW1lKHVuaXR0
ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9kZWNvcmF0b3Ioc2VsZik6CisgICAgICAgIEBt
b2Nrcy5UaW1lCisgICAgICAgIGRlZiBhY3Rpb24oKToKKyAgICAgICAgICAgIG9yaWdpbmFsID0g
dGltZS50aW1lKCkKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoMTApCisgICAgICAgICAgICBzZWxm
LmFzc2VydEdyZWF0ZXJFcXVhbCh0aW1lLnRpbWUoKSwgb3JpZ2luYWwgKyAxMCkKKworICAgICAg
ICBhY3Rpb24oKQorCisgICAgZGVmIHRlc3RfY29udGV4dF9tYW5hZ2VyKHNlbGYpOgorICAgICAg
ICBvcmlnaW5hbCA9IHRpbWUudGltZSgpCisKKyAgICAgICAgd2l0aCBtb2Nrcy5UaW1lOgorICAg
ICAgICAgICAgdGltZS5zbGVlcCgxMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVx
dWFsKHRpbWUudGltZSgpLCBvcmlnaW5hbCArIDEwKQorCisgICAgICAgIHNlbGYuYXNzZXJ0TGVz
cyh0aW1lLnRpbWUoKSwgb3JpZ2luYWwgKyAxKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405937</attachid>
            <date>2020-08-04 12:56:48 -0700</date>
            <delta_ts>2020-08-04 22:23:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214475-20200804125647.patch</filename>
            <type>text/plain</type>
            <size>12840</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTI1NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTA4LTA0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBBZGQgbW9ja3MuVGltZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NDc1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIG1vY2sgY29uc3Ry
dWN0IHdoaWNoIGFsbG93cyBiYXNpYyB0aW1lIHV0aWxpdGllcyB0byBiZSB1c2VkIHdpdGhvdXQK
KyAgICAgICAgYWN0dWFsbHkgd2FpdGluZy4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdGNvcmVweS9SRUFETUUubWQ6IEFkZCBkb2N1bWVudGF0aW9uIG9mIG1vY2tzLlRpbWUu
CisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9t
b2NrczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dl
YmtpdGNvcmVweS9tb2Nrcy9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1lXy5weTogQWRkZWQu
CisgICAgICAgIChfTWV0YVRpbWUpOiBNZXRhLWNsYXNzIGZvciBUaW1lIG9iamVjdC4KKyAgICAg
ICAgKGFkZF9tZXRhY2xhc3MpOiBQeXRob24gMi8zIGNvbXBhdGlibGUgZnVuY3Rpb24gdG8gYWRk
IG1ldGEtY2xhc3MgdG8gY2xhc3MuCisgICAgICAgIChUaW1lKTogTW9jayBUaW1lIGRlY29yYXRv
ci4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5
L3Rlc3RzL21vY2tzOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRj
b3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21vY2tzL19faW5pdF9fLnB5OiBBZGRlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21v
Y2tzL3RpbWVfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoTW9ja1RpbWUpOiBWZXJpZnkg
dGhlIGZ1bmN0aW9uYWxpdHkgb2YgbW9ja3MuVGltZS4KKwogMjAyMC0wOC0wNCAgSm9uYXRoYW4g
QmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW3dlYmtpdGNvcmVweV0gVXNl
IHNldHVwLnB5IGZvciB0aGUgYXV0b2luc3RhbGxlcgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0Y29yZXB5L1JFQURNRS5tZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCShyZXZpc2lvbiAyNjUyNTYpCisrKyBU
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCSh3b3JraW5nIGNv
cHkpCkBAIC0zMywzICszMywxMyBAQCBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgQXV0b0luc3Rh
bGwKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3JlcXVlc3RzJywgVmVyc2lvbigyLCAy
NCkpKQogaW1wb3J0IHJlcXVlc3RzCiBgYGAKKworTW9ja2luZyBiYXNpYyB0aW1lIGFuZCBzbGVl
cCAgY2FsbHMKK2BgYAoraW1wb3J0IHRpbWUKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBtb2Nr
cworCit3aXRoIG1vY2tzLlRpbWU6CisgICAgc3RhbXAgPSB0aW1lLnRpbWUoKQorICAgIHRpbWUu
c2xlZXAoNSkKK2BgYApJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5
L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5CShyZXZpc2lvbiAy
NjUyNTYpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29y
ZXB5L19faW5pdF9fLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGxvZyA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKCd3ZWJraXRjb3JlcHknKQogZnJvbSB3ZWJraXRjb3JlcHkudmVyc2lv
biBpbXBvcnQgVmVyc2lvbgogZnJvbSB3ZWJraXRjb3JlcHkuc3RyaW5nX3V0aWxzIGltcG9ydCBC
eXRlc0lPLCBTdHJpbmdJTywgVW5pY29kZUlPLCB1bmljb2RlCiAKLXZlcnNpb24gPSBWZXJzaW9u
KDAsIDEsIDApCit2ZXJzaW9uID0gVmVyc2lvbigwLCAxLCAxKQogCiBmcm9tIHdlYmtpdGNvcmVw
eS5hdXRvaW5zdGFsbCBpbXBvcnQgUGFja2FnZSwgQXV0b0luc3RhbGwKIGlmIHN5cy52ZXJzaW9u
X2luZm8gPiAoMywgMCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3Jl
cHkvd2Via2l0Y29yZXB5L21vY2tzL19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3MvX19pbml0X18u
cHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5
L3dlYmtpdGNvcmVweS9tb2Nrcy9fX2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDIzIEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zyb20gd2Via2l0
Y29yZXB5Lm1vY2tzLnRpbWVfIGltcG9ydCBUaW1lCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L21vY2tzL3RpbWVfLnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9j
a3MvdGltZV8ucHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1lXy5weQkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDExNSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
CisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBv
cnQgZGF0ZXRpbWUKK2ltcG9ydCBmdW5jdG9vbHMKK2ltcG9ydCB0aW1lCisKKworIyBXaXRob3V0
IHRoZSBtZXRhLWNsYXNzLCBtb2NrLlRpbWUgbXVzdCBlaXRoZXIgYmUgYSBkZWNvcmF0b3Igb3Ig
YSBjb250ZXh0bWFuYWdlci4KKyMgV2l0aCB0aGUgbWV0YS1jbGFzcywgbW9jay5UaW1lIGNhbiBi
ZSBib3RoLiBOb3RlIHRoYXQgaXQgaXMgdGhlIG1ldGEtY2xhc3Mgd2hpY2gKKyMgYWN0dWFsbHkg
b3ducyBtb2NraW5nIGxvZ2ljCitjbGFzcyBfTWV0YVRpbWUodHlwZSk6CisKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoX01ldGFUaW1lLCBz
ZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYucGF0Y2hlcyA9IFtd
CisgICAgICAgIHNlbGYuc3RhY2sgPSBbXQorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAg
ICAgICAgIyBBbGxvdyBtb2NrIHRvIGJlIG1hbmFnZWQgdmlhIGF1dG9pbnN0YWxsCisgICAgICAg
IGZyb20gbW9jayBpbXBvcnQgcGF0Y2gKKyAgICAgICAgc2VsZi5zdGFjay5hcHBlbmQodGltZS50
aW1lKCkpCisKKyAgICAgICAgZGVmIHNsZWVwX2Z1bmModCk6CisgICAgICAgICAgICBzZWxmLnN0
YWNrWy0xXSArPSB0CisKKyAgICAgICAgIyBkYXRldGltZS5kYXRldGltZS5ub3cgaXMgY29uc2lk
ZXJlZCBhIFB5dGhvbiBidWlsdGluLCBzbyBpdCBjYW4ndCBiZSBtb2NrZWQuCisgICAgICAgICMg
V2UgbmVlZCB0byAibW9jayIgdGhlIHdob2xlIGNsYXNzIHRvIHJlcGxhY2UgYSBzaW5nbGUgZnVu
Y3Rpb24uCisgICAgICAgIGNsYXNzIEZha2VEYXRlVGltZShkYXRldGltZS5kYXRldGltZSk6Cisg
ICAgICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgIGRlZiBub3coY2xzLCB0ej1Ob25l
KToKKyAgICAgICAgICAgICAgICByZXR1cm4gY2xzLmZyb210aW1lc3RhbXAoc2VsZi5zdGFja1st
MV0sIHR6PXR6KQorCisgICAgICAgIHNlbGYucGF0Y2hlcy5hcHBlbmQoWworICAgICAgICAgICAg
cGF0Y2goJ3RpbWUudGltZScsIG5ldz1sYW1iZGE6IHNlbGYuc3RhY2tbLTFdKSwKKyAgICAgICAg
ICAgIHBhdGNoKCd0aW1lLnNsZWVwJywgbmV3PXNsZWVwX2Z1bmMpLAorICAgICAgICAgICAgcGF0
Y2goJ2RhdGV0aW1lLmRhdGV0aW1lJywgbmV3PUZha2VEYXRlVGltZSksCisgICAgICAgIF0pCisK
KyAgICAgICAgZm9yIHBhdGNoIGluIHNlbGYucGF0Y2hlc1stMV06CisgICAgICAgICAgICBwYXRj
aC5fX2VudGVyX18oKQorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFs
dWUsIHRyYWNlYmFjayk6CisgICAgICAgIGZvciBwYXRjaCBpbiBzZWxmLnBhdGNoZXNbLTFdOgor
ICAgICAgICAgICAgcGF0Y2guX19leGl0X18oZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNr
KQorICAgICAgICBzZWxmLnN0YWNrID0gc2VsZi5zdGFja1s6LTFdCisgICAgICAgIHNlbGYucGF0
Y2hlcyA9IHNlbGYucGF0Y2hlc1s6LTFdCisKKworIyBQeXRob24gMi8zIGNvbXBhdGlibGUgbWV0
YWNsYXNzIGFzc2lnbmVyIGZyb20gc2l4CitkZWYgYWRkX21ldGFjbGFzcyhtZXRhY2xhc3MpOgor
ICAgIGRlZiB3cmFwcGVyKGNscyk6CisgICAgICAgIG9yaWdfdmFycyA9IGNscy5fX2RpY3RfXy5j
b3B5KCkKKyAgICAgICAgc2xvdHMgPSBvcmlnX3ZhcnMuZ2V0KCdfX3Nsb3RzX18nKQorICAgICAg
ICBpZiBzbG90cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2xvdHMs
IHN0cik6CisgICAgICAgICAgICAgICAgc2xvdHMgPSBbc2xvdHNdCisgICAgICAgICAgICBmb3Ig
c2xvdHNfdmFyIGluIHNsb3RzOgorICAgICAgICAgICAgICAgIG9yaWdfdmFycy5wb3Aoc2xvdHNf
dmFyKQorICAgICAgICBvcmlnX3ZhcnMucG9wKCdfX2RpY3RfXycsIE5vbmUpCisgICAgICAgIG9y
aWdfdmFycy5wb3AoJ19fd2Vha3JlZl9fJywgTm9uZSkKKyAgICAgICAgaWYgaGFzYXR0cihjbHMs
ICdfX3F1YWxuYW1lX18nKToKKyAgICAgICAgICAgIG9yaWdfdmFyc1snX19xdWFsbmFtZV9fJ10g
PSBjbHMuX19xdWFsbmFtZV9fCisgICAgICAgIHJldHVybiBtZXRhY2xhc3MoY2xzLl9fbmFtZV9f
LCBjbHMuX19iYXNlc19fLCBvcmlnX3ZhcnMpCisgICAgcmV0dXJuIHdyYXBwZXIKKworCitjbGFz
cyBUaW1lKG9iamVjdCk6CisgICAgIiIiCisgICAgTW9jayBvdXQgdGltZS5zbGVlcCwgdGltZS50
aW1lIGFuZCBkYXRldGltZS5kYXRldGltZSBmb3IgdGVzdGluZy4KKyAgICBMaWtlIG1vY2sucGF0
Y2gsIHRoaXMgY2xhc3MgY2FuIGJlIHVzZWQgYXMgYm90aCBhIGRlY29yYXRvciBhbmQgYSBjb250
ZXh0IG1hbmFnZXIuCisKKyAgICBFeGFtcGxlIHVzYWdlOgorICAgICAgICBAbW9ja3MuVGltZQor
ICAgICAgICBkZWYgc29tZV9mdW5jdGlvbigpOgorICAgICAgICAgICAgLi4uLgorCisgICAgICAg
IC4uLgorICAgICAgICB3aXRoIG1vY2tzLlRpbWU6CisgICAgICAgICAgICAuLi4KKyAgICAgICAg
Li4uCisgICAgIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IF9NZXRhVGltZQorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIG9iaik6CisgICAgICAgIHNlbGYuX2NhbGxhYmxlID0gb2JqCisKKyAgICBk
ZWYgX19nZXRfXyhzZWxmLCBpbnN0YW5jZSwgb3duZXIpOgorICAgICAgICByZXR1cm4gZnVuY3Rv
b2xzLnBhcnRpYWwoc2VsZi5fX2NhbGxfXywgaW5zdGFuY2UpCisKKyAgICBkZWYgX19jYWxsX18o
c2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgd2l0aCBUaW1lOgorICAgICAgICAgICAg
c2VsZi5fY2FsbGFibGUoKmFyZ3MsICoqa3dhcmdzKQorCisKK1RpbWUgPSBhZGRfbWV0YWNsYXNz
KF9NZXRhVGltZSkoVGltZSkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNv
cmVweS93ZWJraXRjb3JlcHkvdGVzdHMvbW9ja3MvX19pbml0X18ucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0cy9t
b2Nrcy9fX2luaXRfXy5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21vY2tzL19faW5pdF9fLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjEgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyMg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwor
IyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRj
b3JlcHkvdGVzdHMvbW9ja3MvdGltZV91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21vY2tzL3Rp
bWVfdW5pdHRlc3QucHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0cy9tb2Nrcy90aW1lX3VuaXR0ZXN0LnB5CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkK
KyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworaW1wb3J0IHRpbWUKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtpdGNv
cmVweSBpbXBvcnQgbW9ja3MKKworCitjbGFzcyBNb2NrVGltZSh1bml0dGVzdC5UZXN0Q2FzZSk6
CisgICAgZGVmIHRlc3RfZGVjb3JhdG9yKHNlbGYpOgorICAgICAgICBAbW9ja3MuVGltZQorICAg
ICAgICBkZWYgYWN0aW9uKCk6CisgICAgICAgICAgICBvcmlnaW5hbCA9IHRpbWUudGltZSgpCisg
ICAgICAgICAgICB0aW1lLnNsZWVwKDEwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVy
RXF1YWwodGltZS50aW1lKCksIG9yaWdpbmFsICsgMTApCisKKyAgICAgICAgYWN0aW9uKCkKKwor
ICAgIGRlZiB0ZXN0X2NvbnRleHRfbWFuYWdlcihzZWxmKToKKyAgICAgICAgb3JpZ2luYWwgPSB0
aW1lLnRpbWUoKQorCisgICAgICAgIHdpdGggbW9ja3MuVGltZToKKyAgICAgICAgICAgIHRpbWUu
c2xlZXAoMTApCisgICAgICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbCh0aW1lLnRpbWUo
KSwgb3JpZ2luYWwgKyAxMCkKKworICAgICAgICBzZWxmLmFzc2VydExlc3ModGltZS50aW1lKCks
IG9yaWdpbmFsICsgMSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405986</attachid>
            <date>2020-08-04 22:23:14 -0700</date>
            <delta_ts>2020-08-07 08:15:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214475-20200804222313.patch</filename>
            <type>text/plain</type>
            <size>9911</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTI3NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTA4LTA0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBBZGQgbW9ja3MuVGltZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NDc1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIG1vY2sgY29uc3Ry
dWN0IHdoaWNoIGFsbG93cyBiYXNpYyB0aW1lIHV0aWxpdGllcyB0byBiZSB1c2VkIHdpdGhvdXQK
KyAgICAgICAgYWN0dWFsbHkgd2FpdGluZy4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdGNvcmVweS9SRUFETUUubWQ6IEFkZCBkb2N1bWVudGF0aW9uIG9mIG1vY2tzLlRpbWUu
CisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9t
b2NrczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dl
YmtpdGNvcmVweS9tb2Nrcy9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1lXy5weTogQWRkZWQu
CisgICAgICAgIChfTWV0YVRpbWUpOiBNZXRhLWNsYXNzIGZvciBUaW1lIG9iamVjdC4KKyAgICAg
ICAgKGFkZF9tZXRhY2xhc3MpOiBQeXRob24gMi8zIGNvbXBhdGlibGUgZnVuY3Rpb24gdG8gYWRk
IG1ldGEtY2xhc3MgdG8gY2xhc3MuCisgICAgICAgIChUaW1lKTogTW9jayBUaW1lIGRlY29yYXRv
ci4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5
L3Rlc3RzL21vY2tzOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRj
b3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21vY2tzL19faW5pdF9fLnB5OiBBZGRlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21v
Y2tzL3RpbWVfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoTW9ja1RpbWUpOiBWZXJpZnkg
dGhlIGZ1bmN0aW9uYWxpdHkgb2YgbW9ja3MuVGltZS4KKwogMjAyMC0wOC0wNCAgSm9uYXRoYW4g
QmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW3dlYmtpdGNvcmVweV0gQWRk
IG1vY2tzLkNvbnRleHRTdGFjawpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
Y29yZXB5L1JFQURNRS5tZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRjb3JlcHkvUkVBRE1FLm1kCShyZXZpc2lvbiAyNjUyNzcpCisrKyBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCSh3b3JraW5nIGNvcHkpCkBAIC0zMywz
ICszMywxMyBAQCBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgQXV0b0luc3RhbGwKIEF1dG9JbnN0
YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3JlcXVlc3RzJywgVmVyc2lvbigyLCAyNCkpKQogaW1wb3J0
IHJlcXVlc3RzCiBgYGAKKworTW9ja2luZyBiYXNpYyB0aW1lIGFuZCBzbGVlcCAgY2FsbHMKK2Bg
YAoraW1wb3J0IHRpbWUKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBtb2NrcworCit3aXRoIG1v
Y2tzLlRpbWU6CisgICAgc3RhbXAgPSB0aW1lLnRpbWUoKQorICAgIHRpbWUuc2xlZXAoNSkKK2Bg
YApJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVw
eS9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5CShyZXZpc2lvbiAyNjUyNzcpCisrKyBU
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9f
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGxvZyA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKCd3ZWJraXRjb3JlcHknKQogZnJvbSB3ZWJraXRjb3JlcHkudmVyc2lvbiBpbXBvcnQgVmVy
c2lvbgogZnJvbSB3ZWJraXRjb3JlcHkuc3RyaW5nX3V0aWxzIGltcG9ydCBCeXRlc0lPLCBTdHJp
bmdJTywgVW5pY29kZUlPLCB1bmljb2RlCiAKLXZlcnNpb24gPSBWZXJzaW9uKDAsIDEsIDEpCit2
ZXJzaW9uID0gVmVyc2lvbigwLCAxLCAyKQogCiBmcm9tIHdlYmtpdGNvcmVweS5hdXRvaW5zdGFs
bCBpbXBvcnQgUGFja2FnZSwgQXV0b0luc3RhbGwKIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywg
MCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29y
ZXB5L21vY2tzL19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3MvX19pbml0X18ucHkJKHJldmlzaW9u
IDI2NTI3NykKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRj
b3JlcHkvbW9ja3MvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTIxLDMgKzIxLDQgQEAK
ICMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKIGZyb20gd2Via2l0Y29yZXB5Lm1vY2tzLmNvbnRleHRfc3RhY2sgaW1wb3J0IENv
bnRleHRTdGFjaworZnJvbSB3ZWJraXRjb3JlcHkubW9ja3MudGltZV8gaW1wb3J0IFRpbWUKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9j
a3MvdGltZV8ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1lXy5weQkobm9uZXhpc3RlbnQpCisrKyBUb29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L21vY2tzL3RpbWVf
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTE1IEBACisjIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
IyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBkYXRldGltZQoraW1wb3J0IGZ1bmN0b29scworaW1w
b3J0IHRpbWUKKworCisjIFdpdGhvdXQgdGhlIG1ldGEtY2xhc3MsIG1vY2suVGltZSBtdXN0IGVp
dGhlciBiZSBhIGRlY29yYXRvciBvciBhIGNvbnRleHRtYW5hZ2VyLgorIyBXaXRoIHRoZSBtZXRh
LWNsYXNzLCBtb2NrLlRpbWUgY2FuIGJlIGJvdGguIE5vdGUgdGhhdCBpdCBpcyB0aGUgbWV0YS1j
bGFzcyB3aGljaAorIyBhY3R1YWxseSBvd25zIG1vY2tpbmcgbG9naWMKK2NsYXNzIF9NZXRhVGlt
ZSh0eXBlKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAg
ICAgICBzdXBlcihfTWV0YVRpbWUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKyAg
ICAgICAgc2VsZi5wYXRjaGVzID0gW10KKyAgICAgICAgc2VsZi5zdGFjayA9IFtdCisKKyAgICBk
ZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICAjIEFsbG93IG1vY2sgdG8gYmUgbWFuYWdlZCB2
aWEgYXV0b2luc3RhbGwKKyAgICAgICAgZnJvbSBtb2NrIGltcG9ydCBwYXRjaAorICAgICAgICBz
ZWxmLnN0YWNrLmFwcGVuZCh0aW1lLnRpbWUoKSkKKworICAgICAgICBkZWYgc2xlZXBfZnVuYyh0
KToKKyAgICAgICAgICAgIHNlbGYuc3RhY2tbLTFdICs9IHQKKworICAgICAgICAjIGRhdGV0aW1l
LmRhdGV0aW1lLm5vdyBpcyBjb25zaWRlcmVkIGEgUHl0aG9uIGJ1aWx0aW4sIHNvIGl0IGNhbid0
IGJlIG1vY2tlZC4KKyAgICAgICAgIyBXZSBuZWVkIHRvICJtb2NrIiB0aGUgd2hvbGUgY2xhc3Mg
dG8gcmVwbGFjZSBhIHNpbmdsZSBmdW5jdGlvbi4KKyAgICAgICAgY2xhc3MgRmFrZURhdGVUaW1l
KGRhdGV0aW1lLmRhdGV0aW1lKToKKyAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICAg
ICAgZGVmIG5vdyhjbHMsIHR6PU5vbmUpOgorICAgICAgICAgICAgICAgIHJldHVybiBjbHMuZnJv
bXRpbWVzdGFtcChzZWxmLnN0YWNrWy0xXSwgdHo9dHopCisKKyAgICAgICAgc2VsZi5wYXRjaGVz
LmFwcGVuZChbCisgICAgICAgICAgICBwYXRjaCgndGltZS50aW1lJywgbmV3PWxhbWJkYTogc2Vs
Zi5zdGFja1stMV0pLAorICAgICAgICAgICAgcGF0Y2goJ3RpbWUuc2xlZXAnLCBuZXc9c2xlZXBf
ZnVuYyksCisgICAgICAgICAgICBwYXRjaCgnZGF0ZXRpbWUuZGF0ZXRpbWUnLCBuZXc9RmFrZURh
dGVUaW1lKSwKKyAgICAgICAgXSkKKworICAgICAgICBmb3IgcGF0Y2ggaW4gc2VsZi5wYXRjaGVz
Wy0xXToKKyAgICAgICAgICAgIHBhdGNoLl9fZW50ZXJfXygpCisKKyAgICBkZWYgX19leGl0X18o
c2VsZiwgZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKToKKyAgICAgICAgZm9yIHBhdGNo
IGluIHNlbGYucGF0Y2hlc1stMV06CisgICAgICAgICAgICBwYXRjaC5fX2V4aXRfXyhleGNfdHlw
ZSwgZXhjX3ZhbHVlLCB0cmFjZWJhY2spCisgICAgICAgIHNlbGYuc3RhY2sgPSBzZWxmLnN0YWNr
WzotMV0KKyAgICAgICAgc2VsZi5wYXRjaGVzID0gc2VsZi5wYXRjaGVzWzotMV0KKworCisjIFB5
dGhvbiAyLzMgY29tcGF0aWJsZSBtZXRhY2xhc3MgYXNzaWduZXIgZnJvbSBzaXgKK2RlZiBhZGRf
bWV0YWNsYXNzKG1ldGFjbGFzcyk6CisgICAgZGVmIHdyYXBwZXIoY2xzKToKKyAgICAgICAgb3Jp
Z192YXJzID0gY2xzLl9fZGljdF9fLmNvcHkoKQorICAgICAgICBzbG90cyA9IG9yaWdfdmFycy5n
ZXQoJ19fc2xvdHNfXycpCisgICAgICAgIGlmIHNsb3RzIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgaWYgaXNpbnN0YW5jZShzbG90cywgc3RyKToKKyAgICAgICAgICAgICAgICBzbG90cyA9IFtz
bG90c10KKyAgICAgICAgICAgIGZvciBzbG90c192YXIgaW4gc2xvdHM6CisgICAgICAgICAgICAg
ICAgb3JpZ192YXJzLnBvcChzbG90c192YXIpCisgICAgICAgIG9yaWdfdmFycy5wb3AoJ19fZGlj
dF9fJywgTm9uZSkKKyAgICAgICAgb3JpZ192YXJzLnBvcCgnX193ZWFrcmVmX18nLCBOb25lKQor
ICAgICAgICBpZiBoYXNhdHRyKGNscywgJ19fcXVhbG5hbWVfXycpOgorICAgICAgICAgICAgb3Jp
Z192YXJzWydfX3F1YWxuYW1lX18nXSA9IGNscy5fX3F1YWxuYW1lX18KKyAgICAgICAgcmV0dXJu
IG1ldGFjbGFzcyhjbHMuX19uYW1lX18sIGNscy5fX2Jhc2VzX18sIG9yaWdfdmFycykKKyAgICBy
ZXR1cm4gd3JhcHBlcgorCisKK2NsYXNzIFRpbWUob2JqZWN0KToKKyAgICAiIiIKKyAgICBNb2Nr
IG91dCB0aW1lLnNsZWVwLCB0aW1lLnRpbWUgYW5kIGRhdGV0aW1lLmRhdGV0aW1lIGZvciB0ZXN0
aW5nLgorICAgIExpa2UgbW9jay5wYXRjaCwgdGhpcyBjbGFzcyBjYW4gYmUgdXNlZCBhcyBib3Ro
IGEgZGVjb3JhdG9yIGFuZCBhIGNvbnRleHQgbWFuYWdlci4KKworICAgIEV4YW1wbGUgdXNhZ2U6
CisgICAgICAgIEBtb2Nrcy5UaW1lCisgICAgICAgIGRlZiBzb21lX2Z1bmN0aW9uKCk6CisgICAg
ICAgICAgICAuLi4uCisKKyAgICAgICAgLi4uCisgICAgICAgIHdpdGggbW9ja3MuVGltZToKKyAg
ICAgICAgICAgIC4uLgorICAgICAgICAuLi4KKyAgICAiIiIKKyAgICBfX21ldGFjbGFzc19fID0g
X01ldGFUaW1lCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb2JqKToKKyAgICAgICAgc2VsZi5f
Y2FsbGFibGUgPSBvYmoKKworICAgIGRlZiBfX2dldF9fKHNlbGYsIGluc3RhbmNlLCBvd25lcik6
CisgICAgICAgIHJldHVybiBmdW5jdG9vbHMucGFydGlhbChzZWxmLl9fY2FsbF9fLCBpbnN0YW5j
ZSkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICB3
aXRoIFRpbWU6CisgICAgICAgICAgICBzZWxmLl9jYWxsYWJsZSgqYXJncywgKiprd2FyZ3MpCisK
KworVGltZSA9IGFkZF9tZXRhY2xhc3MoX01ldGFUaW1lKShUaW1lKQpJbmRleDogVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0cy9tb2Nrcy90aW1l
X3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dGNvcmVweS93ZWJraXRjb3JlcHkvdGVzdHMvbW9ja3MvdGltZV91bml0dGVzdC5weQkobm9uZXhp
c3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29y
ZXB5L3Rlc3RzL21vY2tzL3RpbWVfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw0NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisj
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgdGlt
ZQoraW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBtb2NrcworCisK
K2NsYXNzIE1vY2tUaW1lKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9kZWNvcmF0
b3Ioc2VsZik6CisgICAgICAgIEBtb2Nrcy5UaW1lCisgICAgICAgIGRlZiBhY3Rpb24oKToKKyAg
ICAgICAgICAgIG9yaWdpbmFsID0gdGltZS50aW1lKCkKKyAgICAgICAgICAgIHRpbWUuc2xlZXAo
MTApCisgICAgICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbCh0aW1lLnRpbWUoKSwgb3Jp
Z2luYWwgKyAxMCkKKworICAgICAgICBhY3Rpb24oKQorCisgICAgZGVmIHRlc3RfY29udGV4dF9t
YW5hZ2VyKHNlbGYpOgorICAgICAgICBvcmlnaW5hbCA9IHRpbWUudGltZSgpCisKKyAgICAgICAg
d2l0aCBtb2Nrcy5UaW1lOgorICAgICAgICAgICAgdGltZS5zbGVlcCgxMCkKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKHRpbWUudGltZSgpLCBvcmlnaW5hbCArIDEwKQorCisg
ICAgICAgIHNlbGYuYXNzZXJ0TGVzcyh0aW1lLnRpbWUoKSwgb3JpZ2luYWwgKyAxKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406176</attachid>
            <date>2020-08-07 08:15:53 -0700</date>
            <delta_ts>2020-08-07 11:56:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214475-20200807081552.patch</filename>
            <type>text/plain</type>
            <size>9917</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTM3MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTA4LTA3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBBZGQgbW9ja3MuVGltZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NDc1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIG1vY2sgY29uc3Ry
dWN0IHdoaWNoIGFsbG93cyBiYXNpYyB0aW1lIHV0aWxpdGllcyB0byBiZSB1c2VkIHdpdGhvdXQK
KyAgICAgICAgYWN0dWFsbHkgd2FpdGluZy4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdGNvcmVweS9SRUFETUUubWQ6IEFkZCBkb2N1bWVudGF0aW9uIG9mIG1vY2tzLlRpbWUu
CisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9t
b2NrczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dl
YmtpdGNvcmVweS9tb2Nrcy9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1lXy5weTogQWRkZWQu
CisgICAgICAgIChfTWV0YVRpbWUpOiBNZXRhLWNsYXNzIGZvciBUaW1lIG9iamVjdC4KKyAgICAg
ICAgKGFkZF9tZXRhY2xhc3MpOiBQeXRob24gMi8zIGNvbXBhdGlibGUgZnVuY3Rpb24gdG8gYWRk
IG1ldGEtY2xhc3MgdG8gY2xhc3MuCisgICAgICAgIChUaW1lKTogTW9jayBUaW1lIGRlY29yYXRv
ci4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5
L3Rlc3RzL21vY2tzOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRj
b3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21vY2tzL19faW5pdF9fLnB5OiBBZGRlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21v
Y2tzL3RpbWVfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoTW9ja1RpbWUpOiBWZXJpZnkg
dGhlIGZ1bmN0aW9uYWxpdHkgb2YgbW9ja3MuVGltZS4KKwogMjAyMC0wOC0wNyAgUm9iaW4gTW9y
aXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgogCiAgICAgICAgIEluZGV4U3BhcnNlU2V0Ojpz
b3J0KCkgc2hvdWxkIHVwZGF0ZSBtX21hcApJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0Y29yZXB5L1JFQURNRS5tZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCShyZXZpc2lvbiAyNjUzNzIpCisrKyBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCSh3b3JraW5nIGNvcHkpCkBA
IC0zMywzICszMywxMyBAQCBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgQXV0b0luc3RhbGwKIEF1
dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3JlcXVlc3RzJywgVmVyc2lvbigyLCAyNCkpKQog
aW1wb3J0IHJlcXVlc3RzCiBgYGAKKworTW9ja2luZyBiYXNpYyB0aW1lIGFuZCBzbGVlcCAgY2Fs
bHMKK2BgYAoraW1wb3J0IHRpbWUKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBtb2NrcworCit3
aXRoIG1vY2tzLlRpbWU6CisgICAgc3RhbXAgPSB0aW1lLnRpbWUoKQorICAgIHRpbWUuc2xlZXAo
NSkKK2BgYApJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtp
dGNvcmVweS9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5CShyZXZpc2lvbiAyNjUzNzIp
CisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19f
aW5pdF9fLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGxvZyA9IGxvZ2dpbmcu
Z2V0TG9nZ2VyKCd3ZWJraXRjb3JlcHknKQogZnJvbSB3ZWJraXRjb3JlcHkudmVyc2lvbiBpbXBv
cnQgVmVyc2lvbgogZnJvbSB3ZWJraXRjb3JlcHkuc3RyaW5nX3V0aWxzIGltcG9ydCBCeXRlc0lP
LCBTdHJpbmdJTywgVW5pY29kZUlPLCB1bmljb2RlCiAKLXZlcnNpb24gPSBWZXJzaW9uKDAsIDEs
IDIpCit2ZXJzaW9uID0gVmVyc2lvbigwLCAxLCAzKQogCiBmcm9tIHdlYmtpdGNvcmVweS5hdXRv
aW5zdGFsbCBpbXBvcnQgUGFja2FnZSwgQXV0b0luc3RhbGwKIGlmIHN5cy52ZXJzaW9uX2luZm8g
PiAoMywgMCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Vi
a2l0Y29yZXB5L21vY2tzL19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3MvX19pbml0X18ucHkJKHJl
dmlzaW9uIDI2NTM3MikKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93
ZWJraXRjb3JlcHkvbW9ja3MvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTIxLDMgKzIx
LDQgQEAKICMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAKIGZyb20gd2Via2l0Y29yZXB5Lm1vY2tzLmNvbnRleHRfc3RhY2sgaW1w
b3J0IENvbnRleHRTdGFjaworZnJvbSB3ZWJraXRjb3JlcHkubW9ja3MudGltZV8gaW1wb3J0IFRp
bWUKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3Jl
cHkvbW9ja3MvdGltZV8ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1lXy5weQkobm9uZXhpc3RlbnQpCisr
KyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L21vY2tz
L3RpbWVfLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTE1IEBACisjIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBkYXRldGltZQoraW1wb3J0IGZ1bmN0b29s
cworaW1wb3J0IHRpbWUKKworCisjIFdpdGhvdXQgdGhlIG1ldGEtY2xhc3MsIG1vY2suVGltZSBt
dXN0IGVpdGhlciBiZSBhIGRlY29yYXRvciBvciBhIGNvbnRleHRtYW5hZ2VyLgorIyBXaXRoIHRo
ZSBtZXRhLWNsYXNzLCBtb2NrLlRpbWUgY2FuIGJlIGJvdGguIE5vdGUgdGhhdCBpdCBpcyB0aGUg
bWV0YS1jbGFzcyB3aGljaAorIyBhY3R1YWxseSBvd25zIG1vY2tpbmcgbG9naWMKK2NsYXNzIF9N
ZXRhVGltZSh0eXBlKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3Mp
OgorICAgICAgICBzdXBlcihfTWV0YVRpbWUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJn
cykKKyAgICAgICAgc2VsZi5wYXRjaGVzID0gW10KKyAgICAgICAgc2VsZi5zdGFjayA9IFtdCisK
KyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICAjIEFsbG93IG1vY2sgdG8gYmUgbWFu
YWdlZCB2aWEgYXV0b2luc3RhbGwKKyAgICAgICAgZnJvbSBtb2NrIGltcG9ydCBwYXRjaAorICAg
ICAgICBzZWxmLnN0YWNrLmFwcGVuZCh0aW1lLnRpbWUoKSkKKworICAgICAgICBkZWYgc2xlZXBf
ZnVuYyh0KToKKyAgICAgICAgICAgIHNlbGYuc3RhY2tbLTFdICs9IHQKKworICAgICAgICAjIGRh
dGV0aW1lLmRhdGV0aW1lLm5vdyBpcyBjb25zaWRlcmVkIGEgUHl0aG9uIGJ1aWx0aW4sIHNvIGl0
IGNhbid0IGJlIG1vY2tlZC4KKyAgICAgICAgIyBXZSBuZWVkIHRvICJtb2NrIiB0aGUgd2hvbGUg
Y2xhc3MgdG8gcmVwbGFjZSBhIHNpbmdsZSBmdW5jdGlvbi4KKyAgICAgICAgY2xhc3MgRmFrZURh
dGVUaW1lKGRhdGV0aW1lLmRhdGV0aW1lKToKKyAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAg
ICAgICAgICAgZGVmIG5vdyhjbHMsIHR6PU5vbmUpOgorICAgICAgICAgICAgICAgIHJldHVybiBj
bHMuZnJvbXRpbWVzdGFtcChzZWxmLnN0YWNrWy0xXSwgdHo9dHopCisKKyAgICAgICAgc2VsZi5w
YXRjaGVzLmFwcGVuZChbCisgICAgICAgICAgICBwYXRjaCgndGltZS50aW1lJywgbmV3PWxhbWJk
YTogc2VsZi5zdGFja1stMV0pLAorICAgICAgICAgICAgcGF0Y2goJ3RpbWUuc2xlZXAnLCBuZXc9
c2xlZXBfZnVuYyksCisgICAgICAgICAgICBwYXRjaCgnZGF0ZXRpbWUuZGF0ZXRpbWUnLCBuZXc9
RmFrZURhdGVUaW1lKSwKKyAgICAgICAgXSkKKworICAgICAgICBmb3IgcGF0Y2ggaW4gc2VsZi5w
YXRjaGVzWy0xXToKKyAgICAgICAgICAgIHBhdGNoLl9fZW50ZXJfXygpCisKKyAgICBkZWYgX19l
eGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKToKKyAgICAgICAgZm9y
IHBhdGNoIGluIHNlbGYucGF0Y2hlc1stMV06CisgICAgICAgICAgICBwYXRjaC5fX2V4aXRfXyhl
eGNfdHlwZSwgZXhjX3ZhbHVlLCB0cmFjZWJhY2spCisgICAgICAgIHNlbGYuc3RhY2sgPSBzZWxm
LnN0YWNrWzotMV0KKyAgICAgICAgc2VsZi5wYXRjaGVzID0gc2VsZi5wYXRjaGVzWzotMV0KKwor
CisjIFB5dGhvbiAyLzMgY29tcGF0aWJsZSBtZXRhY2xhc3MgYXNzaWduZXIgZnJvbSBzaXgKK2Rl
ZiBhZGRfbWV0YWNsYXNzKG1ldGFjbGFzcyk6CisgICAgZGVmIHdyYXBwZXIoY2xzKToKKyAgICAg
ICAgb3JpZ192YXJzID0gY2xzLl9fZGljdF9fLmNvcHkoKQorICAgICAgICBzbG90cyA9IG9yaWdf
dmFycy5nZXQoJ19fc2xvdHNfXycpCisgICAgICAgIGlmIHNsb3RzIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgaWYgaXNpbnN0YW5jZShzbG90cywgc3RyKToKKyAgICAgICAgICAgICAgICBzbG90
cyA9IFtzbG90c10KKyAgICAgICAgICAgIGZvciBzbG90c192YXIgaW4gc2xvdHM6CisgICAgICAg
ICAgICAgICAgb3JpZ192YXJzLnBvcChzbG90c192YXIpCisgICAgICAgIG9yaWdfdmFycy5wb3Ao
J19fZGljdF9fJywgTm9uZSkKKyAgICAgICAgb3JpZ192YXJzLnBvcCgnX193ZWFrcmVmX18nLCBO
b25lKQorICAgICAgICBpZiBoYXNhdHRyKGNscywgJ19fcXVhbG5hbWVfXycpOgorICAgICAgICAg
ICAgb3JpZ192YXJzWydfX3F1YWxuYW1lX18nXSA9IGNscy5fX3F1YWxuYW1lX18KKyAgICAgICAg
cmV0dXJuIG1ldGFjbGFzcyhjbHMuX19uYW1lX18sIGNscy5fX2Jhc2VzX18sIG9yaWdfdmFycykK
KyAgICByZXR1cm4gd3JhcHBlcgorCisKK2NsYXNzIFRpbWUob2JqZWN0KToKKyAgICAiIiIKKyAg
ICBNb2NrIG91dCB0aW1lLnNsZWVwLCB0aW1lLnRpbWUgYW5kIGRhdGV0aW1lLmRhdGV0aW1lIGZv
ciB0ZXN0aW5nLgorICAgIExpa2UgbW9jay5wYXRjaCwgdGhpcyBjbGFzcyBjYW4gYmUgdXNlZCBh
cyBib3RoIGEgZGVjb3JhdG9yIGFuZCBhIGNvbnRleHQgbWFuYWdlci4KKworICAgIEV4YW1wbGUg
dXNhZ2U6CisgICAgICAgIEBtb2Nrcy5UaW1lCisgICAgICAgIGRlZiBzb21lX2Z1bmN0aW9uKCk6
CisgICAgICAgICAgICAuLi4uCisKKyAgICAgICAgLi4uCisgICAgICAgIHdpdGggbW9ja3MuVGlt
ZToKKyAgICAgICAgICAgIC4uLgorICAgICAgICAuLi4KKyAgICAiIiIKKyAgICBfX21ldGFjbGFz
c19fID0gX01ldGFUaW1lCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb2JqKToKKyAgICAgICAg
c2VsZi5fY2FsbGFibGUgPSBvYmoKKworICAgIGRlZiBfX2dldF9fKHNlbGYsIGluc3RhbmNlLCBv
d25lcik6CisgICAgICAgIHJldHVybiBmdW5jdG9vbHMucGFydGlhbChzZWxmLl9fY2FsbF9fLCBp
bnN0YW5jZSkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAg
ICAgICB3aXRoIFRpbWU6CisgICAgICAgICAgICBzZWxmLl9jYWxsYWJsZSgqYXJncywgKiprd2Fy
Z3MpCisKKworVGltZSA9IGFkZF9tZXRhY2xhc3MoX01ldGFUaW1lKShUaW1lKQpJbmRleDogVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0cy9tb2Nr
cy90aW1lX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGVzdHMvbW9ja3MvdGltZV91bml0dGVzdC5weQko
bm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Vi
a2l0Y29yZXB5L3Rlc3RzL21vY2tzL3RpbWVfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
CisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBv
cnQgdGltZQoraW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBtb2Nr
cworCisKK2NsYXNzIE1vY2tUaW1lKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9k
ZWNvcmF0b3Ioc2VsZik6CisgICAgICAgIEBtb2Nrcy5UaW1lCisgICAgICAgIGRlZiBhY3Rpb24o
KToKKyAgICAgICAgICAgIG9yaWdpbmFsID0gdGltZS50aW1lKCkKKyAgICAgICAgICAgIHRpbWUu
c2xlZXAoMTApCisgICAgICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbCh0aW1lLnRpbWUo
KSwgb3JpZ2luYWwgKyAxMCkKKworICAgICAgICBhY3Rpb24oKQorCisgICAgZGVmIHRlc3RfY29u
dGV4dF9tYW5hZ2VyKHNlbGYpOgorICAgICAgICBvcmlnaW5hbCA9IHRpbWUudGltZSgpCisKKyAg
ICAgICAgd2l0aCBtb2Nrcy5UaW1lOgorICAgICAgICAgICAgdGltZS5zbGVlcCgxMCkKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKHRpbWUudGltZSgpLCBvcmlnaW5hbCArIDEw
KQorCisgICAgICAgIHNlbGYuYXNzZXJ0TGVzcyh0aW1lLnRpbWUoKSwgb3JpZ2luYWwgKyAxKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406196</attachid>
            <date>2020-08-07 11:56:23 -0700</date>
            <delta_ts>2020-08-07 12:24:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-214475-20200807115622.patch</filename>
            <type>text/plain</type>
            <size>9919</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTM4NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTA4LTA3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBBZGQgbW9ja3MuVGltZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NDc1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGV3ZWkgWmh1LgorCisgICAgICAgIFByb3ZpZGUgYSBtb2NrIGNvbnN0cnVjdCB3
aGljaCBhbGxvd3MgYmFzaWMgdGltZSB1dGlsaXRpZXMgdG8gYmUgdXNlZCB3aXRob3V0CisgICAg
ICAgIGFjdHVhbGx5IHdhaXRpbmcuCisKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRjb3JlcHkvUkVBRE1FLm1kOiBBZGQgZG9jdW1lbnRhdGlvbiBvZiBtb2Nrcy5UaW1lLgorICAg
ICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3M6
IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRj
b3JlcHkvbW9ja3MvX19pbml0X18ucHk6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3MvdGltZV8ucHk6IEFkZGVkLgorICAg
ICAgICAoX01ldGFUaW1lKTogTWV0YS1jbGFzcyBmb3IgVGltZSBvYmplY3QuCisgICAgICAgIChh
ZGRfbWV0YWNsYXNzKTogUHl0aG9uIDIvMyBjb21wYXRpYmxlIGZ1bmN0aW9uIHRvIGFkZCBtZXRh
LWNsYXNzIHRvIGNsYXNzLgorICAgICAgICAoVGltZSk6IE1vY2sgVGltZSBkZWNvcmF0b3IuCisg
ICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0
cy9tb2NrczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5
L3dlYmtpdGNvcmVweS90ZXN0cy9tb2Nrcy9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICog
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0cy9tb2Nrcy90
aW1lX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKE1vY2tUaW1lKTogVmVyaWZ5IHRoZSBm
dW5jdGlvbmFsaXR5IG9mIG1vY2tzLlRpbWUuCisKIDIwMjAtMDgtMDcgIEpvbmF0aGFuIEJlZGFy
ZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFt3ZWJraXRjb3JlcHldIEFkZCBhbGlh
c2VzIHRvIEF1dG9pbnN0YWxsIHBhY2thZ2VzCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdGNvcmVweS9SRUFETUUubWQJKHJldmlzaW9uIDI2NTM4NCkKKysrIFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9SRUFETUUubWQJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDMgKzMzLDEzIEBAIGZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBBdXRvSW5zdGFsbAog
QXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncmVxdWVzdHMnLCBWZXJzaW9uKDIsIDI0KSkp
CiBpbXBvcnQgcmVxdWVzdHMKIGBgYAorCitNb2NraW5nIGJhc2ljIHRpbWUgYW5kIHNsZWVwICBj
YWxscworYGBgCitpbXBvcnQgdGltZQorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IG1vY2tzCisK
K3dpdGggbW9ja3MuVGltZToKKyAgICBzdGFtcCA9IHRpbWUudGltZSgpCisgICAgdGltZS5zbGVl
cCg1KQorYGBgCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Vi
a2l0Y29yZXB5L19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkJKHJldmlzaW9uIDI2NTM4
NCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkv
X19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbG9nID0gbG9nZ2lu
Zy5nZXRMb2dnZXIoJ3dlYmtpdGNvcmVweScpCiBmcm9tIHdlYmtpdGNvcmVweS52ZXJzaW9uIGlt
cG9ydCBWZXJzaW9uCiBmcm9tIHdlYmtpdGNvcmVweS5zdHJpbmdfdXRpbHMgaW1wb3J0IEJ5dGVz
SU8sIFN0cmluZ0lPLCBVbmljb2RlSU8sIHVuaWNvZGUKIAotdmVyc2lvbiA9IFZlcnNpb24oMCwg
MiwgMSkKK3ZlcnNpb24gPSBWZXJzaW9uKDAsIDIsIDIpCiAKIGZyb20gd2Via2l0Y29yZXB5LmF1
dG9pbnN0YWxsIGltcG9ydCBQYWNrYWdlLCBBdXRvSW5zdGFsbAogaWYgc3lzLnZlcnNpb25faW5m
byA+ICgzLCAwKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93
ZWJraXRjb3JlcHkvbW9ja3MvX19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy9fX2luaXRfXy5weQko
cmV2aXNpb24gMjY1Mzg0KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5
L3dlYmtpdGNvcmVweS9tb2Nrcy9fX2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtMjEsMyAr
MjEsNCBAQAogIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAogZnJvbSB3ZWJraXRjb3JlcHkubW9ja3MuY29udGV4dF9zdGFjayBp
bXBvcnQgQ29udGV4dFN0YWNrCitmcm9tIHdlYmtpdGNvcmVweS5tb2Nrcy50aW1lXyBpbXBvcnQg
VGltZQpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNv
cmVweS9tb2Nrcy90aW1lXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L21vY2tzL3RpbWVfLnB5CShub25leGlzdGVudCkK
KysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9j
a3MvdGltZV8ucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMTUgQEAKKyMgQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGRhdGV0aW1lCitpbXBvcnQgZnVuY3Rv
b2xzCitpbXBvcnQgdGltZQorCisKKyMgV2l0aG91dCB0aGUgbWV0YS1jbGFzcywgbW9jay5UaW1l
IG11c3QgZWl0aGVyIGJlIGEgZGVjb3JhdG9yIG9yIGEgY29udGV4dG1hbmFnZXIuCisjIFdpdGgg
dGhlIG1ldGEtY2xhc3MsIG1vY2suVGltZSBjYW4gYmUgYm90aC4gTm90ZSB0aGF0IGl0IGlzIHRo
ZSBtZXRhLWNsYXNzIHdoaWNoCisjIGFjdHVhbGx5IG93bnMgbW9ja2luZyBsb2dpYworY2xhc3Mg
X01ldGFUaW1lKHR5cGUpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJn
cyk6CisgICAgICAgIHN1cGVyKF9NZXRhVGltZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dh
cmdzKQorICAgICAgICBzZWxmLnBhdGNoZXMgPSBbXQorICAgICAgICBzZWxmLnN0YWNrID0gW10K
KworICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgICMgQWxsb3cgbW9jayB0byBiZSBt
YW5hZ2VkIHZpYSBhdXRvaW5zdGFsbAorICAgICAgICBmcm9tIG1vY2sgaW1wb3J0IHBhdGNoCisg
ICAgICAgIHNlbGYuc3RhY2suYXBwZW5kKHRpbWUudGltZSgpKQorCisgICAgICAgIGRlZiBzbGVl
cF9mdW5jKHQpOgorICAgICAgICAgICAgc2VsZi5zdGFja1stMV0gKz0gdAorCisgICAgICAgICMg
ZGF0ZXRpbWUuZGF0ZXRpbWUubm93IGlzIGNvbnNpZGVyZWQgYSBQeXRob24gYnVpbHRpbiwgc28g
aXQgY2FuJ3QgYmUgbW9ja2VkLgorICAgICAgICAjIFdlIG5lZWQgdG8gIm1vY2siIHRoZSB3aG9s
ZSBjbGFzcyB0byByZXBsYWNlIGEgc2luZ2xlIGZ1bmN0aW9uLgorICAgICAgICBjbGFzcyBGYWtl
RGF0ZVRpbWUoZGF0ZXRpbWUuZGF0ZXRpbWUpOgorICAgICAgICAgICAgQGNsYXNzbWV0aG9kCisg
ICAgICAgICAgICBkZWYgbm93KGNscywgdHo9Tm9uZSk6CisgICAgICAgICAgICAgICAgcmV0dXJu
IGNscy5mcm9tdGltZXN0YW1wKHNlbGYuc3RhY2tbLTFdLCB0ej10eikKKworICAgICAgICBzZWxm
LnBhdGNoZXMuYXBwZW5kKFsKKyAgICAgICAgICAgIHBhdGNoKCd0aW1lLnRpbWUnLCBuZXc9bGFt
YmRhOiBzZWxmLnN0YWNrWy0xXSksCisgICAgICAgICAgICBwYXRjaCgndGltZS5zbGVlcCcsIG5l
dz1zbGVlcF9mdW5jKSwKKyAgICAgICAgICAgIHBhdGNoKCdkYXRldGltZS5kYXRldGltZScsIG5l
dz1GYWtlRGF0ZVRpbWUpLAorICAgICAgICBdKQorCisgICAgICAgIGZvciBwYXRjaCBpbiBzZWxm
LnBhdGNoZXNbLTFdOgorICAgICAgICAgICAgcGF0Y2guX19lbnRlcl9fKCkKKworICAgIGRlZiBf
X2V4aXRfXyhzZWxmLCBleGNfdHlwZSwgZXhjX3ZhbHVlLCB0cmFjZWJhY2spOgorICAgICAgICBm
b3IgcGF0Y2ggaW4gc2VsZi5wYXRjaGVzWy0xXToKKyAgICAgICAgICAgIHBhdGNoLl9fZXhpdF9f
KGV4Y190eXBlLCBleGNfdmFsdWUsIHRyYWNlYmFjaykKKyAgICAgICAgc2VsZi5zdGFjayA9IHNl
bGYuc3RhY2tbOi0xXQorICAgICAgICBzZWxmLnBhdGNoZXMgPSBzZWxmLnBhdGNoZXNbOi0xXQor
CisKKyMgUHl0aG9uIDIvMyBjb21wYXRpYmxlIG1ldGFjbGFzcyBhc3NpZ25lciBmcm9tIHNpeAor
ZGVmIGFkZF9tZXRhY2xhc3MobWV0YWNsYXNzKToKKyAgICBkZWYgd3JhcHBlcihjbHMpOgorICAg
ICAgICBvcmlnX3ZhcnMgPSBjbHMuX19kaWN0X18uY29weSgpCisgICAgICAgIHNsb3RzID0gb3Jp
Z192YXJzLmdldCgnX19zbG90c19fJykKKyAgICAgICAgaWYgc2xvdHMgaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICBpZiBpc2luc3RhbmNlKHNsb3RzLCBzdHIpOgorICAgICAgICAgICAgICAgIHNs
b3RzID0gW3Nsb3RzXQorICAgICAgICAgICAgZm9yIHNsb3RzX3ZhciBpbiBzbG90czoKKyAgICAg
ICAgICAgICAgICBvcmlnX3ZhcnMucG9wKHNsb3RzX3ZhcikKKyAgICAgICAgb3JpZ192YXJzLnBv
cCgnX19kaWN0X18nLCBOb25lKQorICAgICAgICBvcmlnX3ZhcnMucG9wKCdfX3dlYWtyZWZfXycs
IE5vbmUpCisgICAgICAgIGlmIGhhc2F0dHIoY2xzLCAnX19xdWFsbmFtZV9fJyk6CisgICAgICAg
ICAgICBvcmlnX3ZhcnNbJ19fcXVhbG5hbWVfXyddID0gY2xzLl9fcXVhbG5hbWVfXworICAgICAg
ICByZXR1cm4gbWV0YWNsYXNzKGNscy5fX25hbWVfXywgY2xzLl9fYmFzZXNfXywgb3JpZ192YXJz
KQorICAgIHJldHVybiB3cmFwcGVyCisKKworY2xhc3MgVGltZShvYmplY3QpOgorICAgICIiIgor
ICAgIE1vY2sgb3V0IHRpbWUuc2xlZXAsIHRpbWUudGltZSBhbmQgZGF0ZXRpbWUuZGF0ZXRpbWUg
Zm9yIHRlc3RpbmcuCisgICAgTGlrZSBtb2NrLnBhdGNoLCB0aGlzIGNsYXNzIGNhbiBiZSB1c2Vk
IGFzIGJvdGggYSBkZWNvcmF0b3IgYW5kIGEgY29udGV4dCBtYW5hZ2VyLgorCisgICAgRXhhbXBs
ZSB1c2FnZToKKyAgICAgICAgQG1vY2tzLlRpbWUKKyAgICAgICAgZGVmIHNvbWVfZnVuY3Rpb24o
KToKKyAgICAgICAgICAgIC4uLi4KKworICAgICAgICAuLi4KKyAgICAgICAgd2l0aCBtb2Nrcy5U
aW1lOgorICAgICAgICAgICAgLi4uCisgICAgICAgIC4uLgorICAgICIiIgorICAgIF9fbWV0YWNs
YXNzX18gPSBfTWV0YVRpbWUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvYmopOgorICAgICAg
ICBzZWxmLl9jYWxsYWJsZSA9IG9iagorCisgICAgZGVmIF9fZ2V0X18oc2VsZiwgaW5zdGFuY2Us
IG93bmVyKToKKyAgICAgICAgcmV0dXJuIGZ1bmN0b29scy5wYXJ0aWFsKHNlbGYuX19jYWxsX18s
IGluc3RhbmNlKQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Cisg
ICAgICAgIHdpdGggVGltZToKKyAgICAgICAgICAgIHNlbGYuX2NhbGxhYmxlKCphcmdzLCAqKmt3
YXJncykKKworCitUaW1lID0gYWRkX21ldGFjbGFzcyhfTWV0YVRpbWUpKFRpbWUpCkluZGV4OiBU
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL21v
Y2tzL3RpbWVfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0cy9tb2Nrcy90aW1lX3VuaXR0ZXN0LnB5
CShub25leGlzdGVudCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93
ZWJraXRjb3JlcHkvdGVzdHMvbW9ja3MvdGltZV91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDQ2IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2lt
cG9ydCB0aW1lCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IG1v
Y2tzCisKKworY2xhc3MgTW9ja1RpbWUodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0
X2RlY29yYXRvcihzZWxmKToKKyAgICAgICAgQG1vY2tzLlRpbWUKKyAgICAgICAgZGVmIGFjdGlv
bigpOgorICAgICAgICAgICAgb3JpZ2luYWwgPSB0aW1lLnRpbWUoKQorICAgICAgICAgICAgdGlt
ZS5zbGVlcCgxMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKHRpbWUudGlt
ZSgpLCBvcmlnaW5hbCArIDEwKQorCisgICAgICAgIGFjdGlvbigpCisKKyAgICBkZWYgdGVzdF9j
b250ZXh0X21hbmFnZXIoc2VsZik6CisgICAgICAgIG9yaWdpbmFsID0gdGltZS50aW1lKCkKKwor
ICAgICAgICB3aXRoIG1vY2tzLlRpbWU6CisgICAgICAgICAgICB0aW1lLnNsZWVwKDEwKQorICAg
ICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwodGltZS50aW1lKCksIG9yaWdpbmFsICsg
MTApCisKKyAgICAgICAgc2VsZi5hc3NlcnRMZXNzKHRpbWUudGltZSgpLCBvcmlnaW5hbCArIDEp
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>