<?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>32876</bug_id>
          
          <creation_ts>2009-12-22 12:18:51 -0800</creation_ts>
          <short_desc>HTMLInputElement::valueAsDate getter support</short_desc>
          <delta_ts>2009-12-23 11:11:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>32697</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ian</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>174327</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-12-22 12:18:51 -0800</bug_when>
    <thetext>The getter part of Bug#32697.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174330</commentid>
    <comment_count>1</comment_count>
      <attachid>45395</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-12-22 12:32:44 -0800</bug_when>
    <thetext>Created attachment 45395
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174331</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-22 12:34:54 -0800</bug_when>
    <thetext>Attachment 45395 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/html/HTMLInputElement.cpp:1389:  One line control clauses should not use braces.  [whitespace/braces] [4]
WebCore/html/HTMLInputElement.cpp:2147:  Missing space before {  [whitespace/braces] [5]
WebCore/html/HTMLInputElement.cpp:2149:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174332</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-22 12:35:03 -0800</bug_when>
    <thetext>Attachment 45395 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/138451</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174333</commentid>
    <comment_count>4</comment_count>
      <attachid>45396</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-12-22 12:35:45 -0800</bug_when>
    <thetext>Created attachment 45396
Proposed patch (rev.2)

- Fix style errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174334</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-22 12:40:18 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45396 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174335</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-22 12:41:09 -0800</bug_when>
    <thetext>Attachment 45396 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/139189</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174346</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-22 13:07:06 -0800</bug_when>
    <thetext>@tkent: What&apos;s the deal with the compile warning?  Is that a real problem with the patch?

 94     static inline double invalidTotalMillisecond() { return std::numeric_limits&lt;double&gt;::quiet_NaN(); }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174348</commentid>
    <comment_count>8</comment_count>
      <attachid>45396</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-22 13:08:18 -0800</bug_when>
    <thetext>Comment on attachment 45396
Proposed patch (rev.2)

In general, for times WTF and WebCore use doubles that are in seconds since the Unix epoch. I probably would suggest that ISODateTime do the same thing, and then have the valueAsDate function multiply by 1000, because it&apos;s HTML5 that does things in milliseconds. I like how the other code uses seconds, because that works well with world standards. Things like milliseconds and microseconds are derived from the base unit, &quot;second&quot;. And I like having only one type of time.

WebCore::Timer and WebCore::SharedTimer are good examples of this.

I&apos;m not so happy with the term &quot;total millisecond&quot;. I see how it came from the fact that the millisecond part of the ISODateTime was in a field named &quot;millisecond&quot;. But if I wanted to use the word total I would probably call it &quot;total in milliseconds&quot;. I&apos;m not sure I&apos;d use &quot;total&quot; to mean the entire date. Note that the comment above about using seconds instead. I think a better term for the function would probably be secondsSinceEpoch(). Or if you really want to have the 1000 multiplier then I&apos;d call it millisecondsSinceEpoch().

The enum in ISODateTime should just be called Type since it is a member of ISODateTime. If it was at namespace scope, then DateTimeType would be a good name for it.

Patch seems fine. r=me as is</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174353</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-22 13:14:04 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; @tkent: What&apos;s the deal with the compile warning?  Is that a real problem with
&gt; the patch?

To me it seems like #include &lt;limits&gt; needs to be added to that header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174354</commentid>
    <comment_count>10</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-12-22 13:17:38 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; @tkent: What&apos;s the deal with the compile warning?  Is that a real problem with
&gt; the patch?
&gt; 
&gt;  94     static inline double invalidTotalMillisecond() { return
&gt; std::numeric_limits&lt;double&gt;::quiet_NaN(); }

I think Chromium needs `#include &lt;limits&gt;&apos; explicitly for std::numeri_limits and other ports implicitly include &lt;limits&gt;.
I&apos;ll check it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174388</commentid>
    <comment_count>11</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2009-12-22 14:17:19 -0800</bug_when>
    <thetext>The use of milliseconds is for compatibility with JS Date, btw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174562</commentid>
    <comment_count>12</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-12-23 03:30:17 -0800</bug_when>
    <thetext>I committed the patch as r52524 with some modifications.

Thank you for reviewing.

(In reply to comment #8)
&gt; In general, for times WTF and WebCore use doubles that are in seconds since the
&gt; Unix epoch. I probably would suggest that ISODateTime do the same thing, and
&gt; then have the valueAsDate function multiply by 1000, because it&apos;s HTML5 that
&gt; does things in milliseconds. I like how the other code uses seconds, because
&gt; that works well with world standards. Things like milliseconds and microseconds
&gt; are derived from the base unit, &quot;second&quot;. And I like having only one type of
&gt; time.

The comment is understandable, but I didn&apos;t change so.
I feel the merit of the only-one-time-type for WebKit developers is not more important than the millisecond precision for world-wide users.
And Date in V8 supports millisecond precision.

&gt; I&apos;m not so happy with the term &quot;total millisecond&quot;. I see how it came from the
&gt; fact that the millisecond part of the ISODateTime was in a field named
&gt; &quot;millisecond&quot;. But if I wanted to use the word total I would probably call it
&gt; &quot;total in milliseconds&quot;. I&apos;m not sure I&apos;d use &quot;total&quot; to mean the entire date.
&gt; Note that the comment above about using seconds instead. I think a better term
&gt; for the function would probably be secondsSinceEpoch(). Or if you really want
&gt; to have the 1000 multiplier then I&apos;d call it millisecondsSinceEpoch().

Ok, I renamed it to millisecondsSinceEpoch().

&gt; The enum in ISODateTime should just be called Type since it is a member of
&gt; ISODateTime. If it was at namespace scope, then DateTimeType would be a good
&gt; name for it.

Renamed to just `Type&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174564</commentid>
    <comment_count>13</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-12-23 04:04:55 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; In general, for times WTF and WebCore use doubles that are in seconds since the
&gt; &gt; Unix epoch. I probably would suggest that ISODateTime do the same thing, and
&gt; &gt; then have the valueAsDate function multiply by 1000, because it&apos;s HTML5 that
&gt; &gt; does things in milliseconds. I like how the other code uses seconds, because
&gt; &gt; that works well with world standards. Things like milliseconds and microseconds
&gt; &gt; are derived from the base unit, &quot;second&quot;. And I like having only one type of
&gt; &gt; time.
&gt; 
&gt; The comment is understandable, but I didn&apos;t change so.
&gt; I feel the merit of the only-one-time-type for WebKit developers is not more
&gt; important than the millisecond precision for world-wide users.

Ah, Darin meant representing a millisecond part as a fractional number, not removing a millisecond part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174598</commentid>
    <comment_count>14</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-12-23 08:58:37 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Ah, Darin meant representing a millisecond part as a fractional number, not
&gt; removing a millisecond part.

On my Mac, floor((2002.0 / 1000.0) * 1000.0) is 2001.0, not 2002.0.
We would need extra rounding code to avoid such problems if we represented milliseconds as fractional numbers.  I don&apos;t think it&apos;s reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174614</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-23 11:11:13 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; On my Mac, floor((2002.0 / 1000.0) * 1000.0) is 2001.0, not 2002.0.
&gt; We would need extra rounding code to avoid such problems if we represented
&gt; milliseconds as fractional numbers.  I don&apos;t think it&apos;s reasonable.

Yes, it&apos;s a problem to use floor rather than round. But I don&apos;t agree that the basic approach is not reasonable. You should do it!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45395</attachid>
            <date>2009-12-22 12:32:44 -0800</date>
            <delta_ts>2009-12-22 12:35:45 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001-valueAsDate-1.patch</filename>
            <type>text/plain</type>
            <size>30389</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSAzYTg2ODRkNThkOGM0OGEzNWEzZjdlNmE5NzY1OTgyODQxZjNlNzNmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBXZWQsIDkgRGVjIDIwMDkgMTE6MzA6MDkgKzA5MDAKU3ViamVjdDogW1BBVENIXSB2YWx1ZUFz
RGF0ZS0xCgotLS0KIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxNCArKysrKysKIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCAg
ICAgICAgICAgICAgICAgIHwgICAgMSArCiBKYXZhU2NyaXB0Q29yZS93dGYvRGF0ZU1hdGguY3Bw
ICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIEphdmFTY3JpcHRDb3JlL3d0Zi9EYXRlTWF0
aC5oICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSArKysrCiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjggKysrKysrKysrKysKIC4uLi9m
YXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGUtZXhwZWN0ZWQudHh0IHwgICAxMyArKysr
KwogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRlLmh0bWwgfCAg
IDEzICsrKysrCiAuLi4vZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWUtZXhwZWN0ZWQu
dHh0ICB8ICAgMTMgKysrKysKIC4uLi9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0
aW1lLmh0bWwgICAgIHwgICAxMyArKysrKwogLi4uL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1l
bG9jYWwtZXhwZWN0ZWQudHh0ICAgfCAgIDEzICsrKysrCiAuLi4vZm9ybXMvaW5wdXQtdmFsdWVh
c2RhdGUtZGF0ZXRpbWVsb2NhbC5odG1sICAgICB8ICAgMTMgKysrKysKIC4uLi9mb3Jtcy9pbnB1
dC12YWx1ZWFzZGF0ZS1tb250aC1leHBlY3RlZC50eHQgICAgIHwgICAxMyArKysrKwogLi4uL2Zh
c3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtbW9udGguaHRtbCAgICAgICAgfCAgIDEzICsrKysr
CiAuLi4vZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS10aW1lLWV4cGVjdGVkLnR4dCB8ICAg
MTMgKysrKysKIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtdGltZS5o
dG1sIHwgICAxMyArKysrKwogLi4uL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtd2Vlay1l
eHBlY3RlZC50eHQgfCAgIDE3ICsrKysrKysKIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
dmFsdWVhc2RhdGUtd2Vlay5odG1sIHwgICAxMyArKysrKwogLi4uL2Zvcm1zL3NjcmlwdC10ZXN0
cy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRlLmpzICAgfCAgIDE2ICsrKysrKysKIC4uLi9zY3JpcHQt
dGVzdHMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWUuanMgICAgIHwgICAxNiArKysrKysrCiAu
Li4vaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWVsb2NhbC5qcyAgICAgICAgICAgICB8ICAgMTYg
KysrKysrKwogLi4uL2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS1tb250aC5q
cyAgfCAgIDE2ICsrKysrKysKIC4uLi9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtdmFsdWVhc2Rh
dGUtdGltZS5qcyAgIHwgICAxNiArKysrKysrCiAuLi4vZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0
LXZhbHVlYXNkYXRlLXdlZWsuanMgICB8ICAgMjcgKysrKysrKysrKysKIFdlYkNvcmUvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNyArKysrKysrKysrKysr
KysKIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCAgICAgICAgICAgICAgICAgIHwg
ICAyMyArKysrKysrKy0tCiBXZWJDb3JlL2h0bWwvSVNPRGF0ZVRpbWUuY3BwICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgNDggKysrKysrKysrKysrKysrKysrKy0KIFdlYkNvcmUvaHRtbC9JU09E
YXRlVGltZS5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMCArKysrKysrKwogMjcgZmls
ZXMgY2hhbmdlZCwgNDQyIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRlLWV4
cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtdmFsdWVhc2RhdGUtZGF0ZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGltZS1leHBlY3RlZC50eHQKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRh
dGV0aW1lLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lbG9jYWwtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGltZWxv
Y2FsLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXZhbHVlYXNkYXRlLW1vbnRoLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtbW9udGguaHRtbAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtdGltZS1l
eHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXZhbHVlYXNkYXRlLXRpbWUuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtd2Vlay1leHBlY3RlZC50eHQKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLXdlZWsu
aHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRl
c3RzL2lucHV0LXZhbHVlYXNkYXRlLWRhdGUuanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGltZS5q
cwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3Rz
L2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lbG9jYWwuanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS1tb250
aC5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRl
c3RzL2lucHV0LXZhbHVlYXNkYXRlLXRpbWUuanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS13ZWVrLmpzCgpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCmluZGV4IDFmYTRkYmYuLjg5M2JlMzMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAwOS0xMi0yMiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSFRNTElucHV0RWxlbWVu
dDo6dmFsdWVBc0RhdGUgZ2V0dGVyIHN1cHBvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjg3NgorCisgICAgICAgIEV4cG9zZSBkYXRlVG9EYXlz
RnJvbTE5NzAoKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiB3
dGYvRGF0ZU1hdGguY3BwOgorICAgICAgICAoV1RGOjpkYXRlVG9EYXlzRnJvbTE5NzApOgorICAg
ICAgICAqIHd0Zi9EYXRlTWF0aC5oOgorCiAyMDA5LTEyLTIxICBTaW1vbiBIYXVzbWFubiAgPHNp
bW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBQcm9zcGVjdGl2ZSBHVEsgYnVpbGQg
Zml4OiBBZGQgVVN0cmluZ0ltcGwuY3BwL2ggdG8gdGhlIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZXhwCmluZGV4IDZhMDYyMTUuLjMwYjE3NGMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKQEAgLTMxNiw2ICszMTYsNyBAQCBfX1pOM1dURjE1VGhyZWFkQ29uZGl0aW9uQzFFdgog
X19aTjNXVEYxNVRocmVhZENvbmRpdGlvbkQxRXYKIF9fWk4zV1RGMTZjYWxsT25NYWluVGhyZWFk
RVBGdlB2RVMwXwogX19aTjNXVEYxNmZhc3RaZXJvZWRNYWxsb2NFbQorX19aTjNXVEYxOGRhdGVU
b0RheXNGcm9tMTk3MEVpaWkKIF9fWk4zV1RGMTlpbml0aWFsaXplVGhyZWFkaW5nRXYKIF9fWk4z
V1RGMjBmYXN0TWFsbG9jU3RhdGlzdGljc0V2CiBfX1pOM1dURjIxUmVmQ291bnRlZExlYWtDb3Vu
dGVyMTZzdXBwcmVzc01lc3NhZ2VzRVBLYwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3Rm
L0RhdGVNYXRoLmNwcCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9EYXRlTWF0aC5jcHAKaW5kZXggZGY0
MTZkMS4uMWY5YzBlNCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL0RhdGVNYXRoLmNw
cAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvRGF0ZU1hdGguY3BwCkBAIC0zMTAsNyArMzEwLDcg
QEAgc3RhdGljIGlubGluZSBkb3VibGUgdGltZVRvTVMoZG91YmxlIGhvdXIsIGRvdWJsZSBtaW4s
IGRvdWJsZSBzZWMsIGRvdWJsZSBtcykKICAgICByZXR1cm4gKCgoaG91ciAqIG1pbnV0ZXNQZXJI
b3VyICsgbWluKSAqIHNlY29uZHNQZXJNaW51dGUgKyBzZWMpICogbXNQZXJTZWNvbmQgKyBtcyk7
CiB9CiAKLXN0YXRpYyBkb3VibGUgZGF0ZVRvRGF5c0Zyb20xOTcwKGludCB5ZWFyLCBpbnQgbW9u
dGgsIGludCBkYXkpCitkb3VibGUgZGF0ZVRvRGF5c0Zyb20xOTcwKGludCB5ZWFyLCBpbnQgbW9u
dGgsIGludCBkYXkpCiB7CiAgICAgeWVhciArPSBtb250aCAvIDEyOwogCmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS93dGYvRGF0ZU1hdGguaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9EYXRlTWF0
aC5oCmluZGV4IDZkNGFjMWUuLjNhOWRlMjIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0
Zi9EYXRlTWF0aC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9EYXRlTWF0aC5oCkBAIC03Niw4
ICs3NiwxNyBAQCBjb25zdCBkb3VibGUgbXNQZXJIb3VyID0gNjAuMCAqIDYwLjAgKiAxMDAwLjA7
CiBjb25zdCBkb3VibGUgbXNQZXJEYXkgPSAyNC4wICogNjAuMCAqIDYwLjAgKiAxMDAwLjA7CiBj
b25zdCBkb3VibGUgbXNQZXJNb250aCA9IDI1OTIwMDAwMDAuMDsKIAorLy8gUmV0dXJucyB0aGUg
bnVtYmVyIG9mIGRheXMgZnJvbSAxOTcwLTAxLTAxIHRvIHRoZSBzcGVjaWZpZWQgZGF0ZS4KK2Rv
dWJsZSBkYXRlVG9EYXlzRnJvbTE5NzAoaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSk7CisK
IH0gLy8gbmFtZXNwYWNlIFdURgogCit1c2luZyBXVEY6OmRhdGVUb0RheXNGcm9tMTk3MDsKK3Vz
aW5nIFdURjo6bWludXRlc1BlckhvdXI7Cit1c2luZyBXVEY6Om1zUGVyRGF5OwordXNpbmcgV1RG
Ojptc1BlclNlY29uZDsKK3VzaW5nIFdURjo6c2Vjb25kc1Blck1pbnV0ZTsKKwogI2lmIFVTRShK
U0MpCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEV4ZWNTdGF0ZTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MDdjYjdkLi4w
ZmU2MjQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMDktMTItMjIgIEtlbnQgVGFtdXJhICA8
dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVlQXNEYXRlIGdldHRlciBzdXBwb3J0
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI4NzYK
KworICAgICAgICBUZXN0cyBmb3IgdGhlIHZhbHVlQXNEYXRlIGdldHRlciB3aXRoIHZhcmlvdXMg
dHlwZXMuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRl
LWRhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0
ZS1kYXRldGltZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5w
dXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jt
cy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGltZWxvY2FsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGltZWxvY2FsLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtbW9udGgtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRl
LW1vbnRoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2Rh
dGUtdGltZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQt
dmFsdWVhc2RhdGUtdGltZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0
LXZhbHVlYXNkYXRlLXdlZWstZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL2lucHV0LXZhbHVlYXNkYXRlLXdlZWsuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZS5qczogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWUu
anM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXZhbHVl
YXNkYXRlLWRhdGV0aW1lbG9jYWwuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2Ny
aXB0LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLW1vbnRoLmpzOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS10aW1lLmpzOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS13ZWVr
LmpzOiBBZGRlZC4KKwogMjAwOS0xMi0yMSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFtRdF0gU2tpcCBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCkgcmVsYXRlZCB0ZXN0IHVudGlsIGZpeC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwOGRlOGIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIGZvciAudmFsdWVBc0RhdGUgd2l0aCA8aW5wdXQgdHlw
ZT1kYXRlPi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFsdWVBc0Rh
dGVGb3IoIiIpIGlzIG51bGwKK1BBU1MgdmFsdWVBc0RhdGVGb3IoIjE5NjktMTItMzEiKS5nZXRU
aW1lKCkgaXMgRGF0ZS5VVEMoMTk2OSwgMTEsIDMxKQorUEFTUyB2YWx1ZUFzRGF0ZUZvcigiMTk3
MC0wMS0wMSIpLmdldFRpbWUoKSBpcyBEYXRlLlVUQygxOTcwLCAwLCAxKQorUEFTUyB2YWx1ZUFz
RGF0ZUZvcigiMjAwOS0xMi0yMiIpLmdldFRpbWUoKSBpcyBEYXRlLlVUQygyMDA5LCAxMSwgMjIp
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTAxYTYzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRlLmh0bWwK
QEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGltZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVlNWZlOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0
ZXRpbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIGZvciAudmFsdWVBc0Rh
dGUgd2l0aCA8aW5wdXQgdHlwZT1kYXRldGltZT4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHZhbHVlQXNEYXRlRm9yKCIiKSBpcyBudWxsCitQQVNTIHZhbHVlQXNEYXRl
Rm9yKCIxOTY5LTEyLTMxVDEyOjM0OjU2Ljc4OVoiKS5nZXRUaW1lKCkgaXMgRGF0ZS5VVEMoMTk2
OSwgMTEsIDMxLCAxMiwgMzQsIDU2LCA3ODkpCitQQVNTIHZhbHVlQXNEYXRlRm9yKCIxOTcwLTAx
LTAxVDAwOjAwOjAwLjAwMFoiKS5nZXRUaW1lKCkgaXMgRGF0ZS5VVEMoMTk3MCwgMCwgMSwgMCwg
MCwgMCkKK1BBU1MgdmFsdWVBc0RhdGVGb3IoIjIwMDktMTItMjJUMTE6MzI6MTFaIikuZ2V0VGlt
ZSgpIGlzIERhdGUuVVRDKDIwMDksIDExLCAyMiwgMTEsIDMyLCAxMSkKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjFhOWI4YwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWUuaHRtbApAQCAt
MCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGltZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWVsb2NhbC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lbG9j
YWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhYjlm
MTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVl
YXNkYXRlLWRhdGV0aW1lbG9jYWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3Rz
IGZvciAudmFsdWVBc0RhdGUgd2l0aCA8aW5wdXQgdHlwZT1kYXRldGltZWxvY2FsPi4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFsdWVBc0RhdGVGb3IoIiIpIGlzIG51
bGwKK1BBU1MgdmFsdWVBc0RhdGVGb3IoIjE5NjktMTItMzFUMTI6MzQ6NTYuNzg5IikgaXMgbnVs
bAorUEFTUyB2YWx1ZUFzRGF0ZUZvcigiMTk3MC0wMS0wMVQwMDowMDowMC4wMDAiKSBpcyBudWxs
CitQQVNTIHZhbHVlQXNEYXRlRm9yKCIyMDA5LTEyLTIyVDExOjMyOjExIikgaXMgbnVsbAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWVsb2Nh
bC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGlt
ZWxvY2FsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVlYjJmNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2Rh
dGUtZGF0ZXRpbWVsb2NhbC5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2lucHV0
LXZhbHVlYXNkYXRlLWRhdGV0aW1lbG9jYWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVl
YXNkYXRlLW1vbnRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
dmFsdWVhc2RhdGUtbW9udGgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjhkZDcxZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lucHV0LXZhbHVlYXNkYXRlLW1vbnRoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBA
CitUZXN0cyBmb3IgLnZhbHVlQXNEYXRlIHdpdGggPGlucHV0IHR5cGU9bW9udGg+LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB2YWx1ZUFzRGF0ZUZvcigiIikgaXMgbnVs
bAorUEFTUyB2YWx1ZUFzRGF0ZUZvcigiMTk2OS0xMiIpLmdldFRpbWUoKSBpcyBEYXRlLlVUQygx
OTY5LCAxMSwgMSwgMCwgMCwgMCwgMCkKK1BBU1MgdmFsdWVBc0RhdGVGb3IoIjE5NzAtMDEiKS5n
ZXRUaW1lKCkgaXMgRGF0ZS5VVEMoMTk3MCwgMCwgMSkKK1BBU1MgdmFsdWVBc0RhdGVGb3IoIjIw
MDktMTIiKS5nZXRUaW1lKCkgaXMgRGF0ZS5VVEMoMjAwOSwgMTEsIDEpCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1tb250aC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1tb250aC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiY2QwNTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLW1vbnRoLmh0bWwKQEAgLTAsMCArMSwx
MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvaW5wdXQtdmFsdWVhc2RhdGUtbW9udGguanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lucHV0LXZhbHVlYXNkYXRlLXRpbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS10aW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODllOGNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS10aW1lLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEzIEBACitUZXN0cyBmb3IgLnZhbHVlQXNEYXRlIHdpdGggPGlucHV0IHR5cGU9dGlt
ZT4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHZhbHVlQXNEYXRlRm9y
KCIiKSBpcyBudWxsCitQQVNTIHZhbHVlQXNEYXRlRm9yKCIwMDowMDowMC4wMDAiKS5nZXRUaW1l
KCkgaXMgRGF0ZS5VVEMoMTk3MCwgMCwgMSwgMCwgMCwgMCwgMCkKK1BBU1MgdmFsdWVBc0RhdGVG
b3IoIjA0OjM1IikuZ2V0VGltZSgpIGlzIERhdGUuVVRDKDE5NzAsIDAsIDEsIDQsIDM1LCAwLCAw
KQorUEFTUyB2YWx1ZUFzRGF0ZUZvcigiMjM6NTk6NTkuOTk5IikuZ2V0VGltZSgpIGlzIERhdGUu
VVRDKDE5NzAsIDAsIDEsIDIzLCA1OSwgNTksIDk5OSkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLXRpbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtdmFsdWVhc2RhdGUtdGltZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmRiZWRhMWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lucHV0LXZhbHVlYXNkYXRlLXRpbWUuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS10aW1lLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1
ZWFzZGF0ZS13ZWVrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
dmFsdWVhc2RhdGUtd2Vlay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYTRlOWM4YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtdmFsdWVhc2RhdGUtd2Vlay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAor
VGVzdHMgZm9yIC52YWx1ZUFzRGF0ZSB3aXRoIDxpbnB1dCB0eXBlPXdlZWs+LgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB2YWx1ZUFzRGF0ZUZvcigiIikgaXMgbnVsbAor
UEFTUyB2YWx1ZUFzRGF0ZUZvcigiMjAwNy1XMDEiKS5nZXRUaW1lKCkgaXMgRGF0ZS5VVEMoMjAw
NywgMCwgMSkKK1BBU1MgdmFsdWVBc0RhdGVGb3IoIjIwMDgtVzAxIikuZ2V0VGltZSgpIGlzIERh
dGUuVVRDKDIwMDcsIDExLCAzMSkKK1BBU1MgdmFsdWVBc0RhdGVGb3IoIjIwMDMtVzAxIikuZ2V0
VGltZSgpIGlzIERhdGUuVVRDKDIwMDIsIDExLCAzMCkKK1BBU1MgdmFsdWVBc0RhdGVGb3IoIjIw
MDQtVzAxIikuZ2V0VGltZSgpIGlzIERhdGUuVVRDKDIwMDMsIDExLCAyOSwgMCwgMCwgMCwgMCkK
K1BBU1MgdmFsdWVBc0RhdGVGb3IoIjIwMTAtVzAxIikuZ2V0VGltZSgpIGlzIERhdGUuVVRDKDIw
MTAsIDAsIDQpCitQQVNTIHZhbHVlQXNEYXRlRm9yKCIyMDA1LVcwMSIpLmdldFRpbWUoKSBpcyBE
YXRlLlVUQygyMDA1LCAwLCAzKQorUEFTUyB2YWx1ZUFzRGF0ZUZvcigiMjAwNi1XMDEiKS5nZXRU
aW1lKCkgaXMgRGF0ZS5VVEMoMjAwNiwgMCwgMikKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lucHV0LXZhbHVlYXNkYXRlLXdlZWsuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtdmFsdWVhc2RhdGUtd2Vlay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmVhOGJjZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXZhbHVlYXNkYXRlLXdlZWsuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9pbnB1dC12YWx1ZWFzZGF0ZS13ZWVrLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMv
aW5wdXQtdmFsdWVhc2RhdGUtZGF0ZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0
LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLWRhdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZjA3Zjc3MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLWRhdGUuanMKQEAgLTAsMCArMSwx
NiBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIGZvciAudmFsdWVBc0RhdGUgd2l0aCAmbHQ7aW5wdXQg
dHlwZT1kYXRlPi4nKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5w
dXQnKTsKK2lucHV0LnR5cGUgPSAnZGF0ZSc7CisKK2Z1bmN0aW9uIHZhbHVlQXNEYXRlRm9yKHN0
cmluZ1ZhbHVlKSB7CisgICAgaW5wdXQudmFsdWUgPSBzdHJpbmdWYWx1ZTsKKyAgICByZXR1cm4g
aW5wdXQudmFsdWVBc0RhdGU7Cit9CisKK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZvcigiIiknLCAn
bnVsbCcpOworc2hvdWxkQmUoJ3ZhbHVlQXNEYXRlRm9yKCIxOTY5LTEyLTMxIikuZ2V0VGltZSgp
JywgJ0RhdGUuVVRDKDE5NjksIDExLCAzMSknKTsKK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZvcigi
MTk3MC0wMS0wMSIpLmdldFRpbWUoKScsICdEYXRlLlVUQygxOTcwLCAwLCAxKScpOworc2hvdWxk
QmUoJ3ZhbHVlQXNEYXRlRm9yKCIyMDA5LTEyLTIyIikuZ2V0VGltZSgpJywgJ0RhdGUuVVRDKDIw
MDksIDExLCAyMiknKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0
ZS1kYXRldGltZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0
LXZhbHVlYXNkYXRlLWRhdGV0aW1lLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmMyNjRmODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nj
cmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGltZS5qcwpAQCAtMCwwICsxLDE2IEBA
CitkZXNjcmlwdGlvbignVGVzdHMgZm9yIC52YWx1ZUFzRGF0ZSB3aXRoICZsdDtpbnB1dCB0eXBl
PWRhdGV0aW1lPi4nKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5w
dXQnKTsKK2lucHV0LnR5cGUgPSAnZGF0ZXRpbWUnOworCitmdW5jdGlvbiB2YWx1ZUFzRGF0ZUZv
cihzdHJpbmdWYWx1ZSkgeworICAgIGlucHV0LnZhbHVlID0gc3RyaW5nVmFsdWU7CisgICAgcmV0
dXJuIGlucHV0LnZhbHVlQXNEYXRlOworfQorCitzaG91bGRCZSgndmFsdWVBc0RhdGVGb3IoIiIp
JywgJ251bGwnKTsKK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZvcigiMTk2OS0xMi0zMVQxMjozNDo1
Ni43ODlaIikuZ2V0VGltZSgpJywgJ0RhdGUuVVRDKDE5NjksIDExLCAzMSwgMTIsIDM0LCA1Niwg
Nzg5KScpOworc2hvdWxkQmUoJ3ZhbHVlQXNEYXRlRm9yKCIxOTcwLTAxLTAxVDAwOjAwOjAwLjAw
MFoiKS5nZXRUaW1lKCknLCAnRGF0ZS5VVEMoMTk3MCwgMCwgMSwgMCwgMCwgMCknKTsKK3Nob3Vs
ZEJlKCd2YWx1ZUFzRGF0ZUZvcigiMjAwOS0xMi0yMlQxMTozMjoxMVoiKS5nZXRUaW1lKCknLCAn
RGF0ZS5VVEMoMjAwOSwgMTEsIDIyLCAxMSwgMzIsIDExKScpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0
LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lbG9jYWwuanMgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGltZWxvY2FsLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMmNjNzEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFz
ZGF0ZS1kYXRldGltZWxvY2FsLmpzCkBAIC0wLDAgKzEsMTYgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0
cyBmb3IgLnZhbHVlQXNEYXRlIHdpdGggJmx0O2lucHV0IHR5cGU9ZGF0ZXRpbWVsb2NhbD4uJyk7
CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CitpbnB1dC50
eXBlID0gJ2RhdGV0aW1lLWxvY2FsJzsKKworZnVuY3Rpb24gdmFsdWVBc0RhdGVGb3Ioc3RyaW5n
VmFsdWUpIHsKKyAgICBpbnB1dC52YWx1ZSA9IHN0cmluZ1ZhbHVlOworICAgIHJldHVybiBpbnB1
dC52YWx1ZUFzRGF0ZTsKK30KKworc2hvdWxkQmUoJ3ZhbHVlQXNEYXRlRm9yKCIiKScsICdudWxs
Jyk7CitzaG91bGRCZSgndmFsdWVBc0RhdGVGb3IoIjE5NjktMTItMzFUMTI6MzQ6NTYuNzg5Iikn
LCAnbnVsbCcpOworc2hvdWxkQmUoJ3ZhbHVlQXNEYXRlRm9yKCIxOTcwLTAxLTAxVDAwOjAwOjAw
LjAwMCIpJywgJ251bGwnKTsKK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZvcigiMjAwOS0xMi0yMlQx
MTozMjoxMSIpJywgJ251bGwnKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1
ZWFzZGF0ZS1tb250aC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lu
cHV0LXZhbHVlYXNkYXRlLW1vbnRoLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjYzY2IyODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nj
cmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS1tb250aC5qcwpAQCAtMCwwICsxLDE2IEBACitk
ZXNjcmlwdGlvbignVGVzdHMgZm9yIC52YWx1ZUFzRGF0ZSB3aXRoICZsdDtpbnB1dCB0eXBlPW1v
bnRoPi4nKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsK
K2lucHV0LnR5cGUgPSAnbW9udGgnOworCitmdW5jdGlvbiB2YWx1ZUFzRGF0ZUZvcihzdHJpbmdW
YWx1ZSkgeworICAgIGlucHV0LnZhbHVlID0gc3RyaW5nVmFsdWU7CisgICAgcmV0dXJuIGlucHV0
LnZhbHVlQXNEYXRlOworfQorCitzaG91bGRCZSgndmFsdWVBc0RhdGVGb3IoIiIpJywgJ251bGwn
KTsKK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZvcigiMTk2OS0xMiIpLmdldFRpbWUoKScsICdEYXRl
LlVUQygxOTY5LCAxMSwgMSwgMCwgMCwgMCwgMCknKTsKK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZv
cigiMTk3MC0wMSIpLmdldFRpbWUoKScsICdEYXRlLlVUQygxOTcwLCAwLCAxKScpOworc2hvdWxk
QmUoJ3ZhbHVlQXNEYXRlRm9yKCIyMDA5LTEyIikuZ2V0VGltZSgpJywgJ0RhdGUuVVRDKDIwMDks
IDExLCAxKScpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLXRp
bWUuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFz
ZGF0ZS10aW1lLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5MTQ0Y2IK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9p
bnB1dC12YWx1ZWFzZGF0ZS10aW1lLmpzCkBAIC0wLDAgKzEsMTYgQEAKK2Rlc2NyaXB0aW9uKCdU
ZXN0cyBmb3IgLnZhbHVlQXNEYXRlIHdpdGggJmx0O2lucHV0IHR5cGU9dGltZT4uJyk7CisKK3Zh
ciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CitpbnB1dC50eXBlID0g
J3RpbWUnOworCitmdW5jdGlvbiB2YWx1ZUFzRGF0ZUZvcihzdHJpbmdWYWx1ZSkgeworICAgIGlu
cHV0LnZhbHVlID0gc3RyaW5nVmFsdWU7CisgICAgcmV0dXJuIGlucHV0LnZhbHVlQXNEYXRlOwor
fQorCitzaG91bGRCZSgndmFsdWVBc0RhdGVGb3IoIiIpJywgJ251bGwnKTsKK3Nob3VsZEJlKCd2
YWx1ZUFzRGF0ZUZvcigiMDA6MDA6MDAuMDAwIikuZ2V0VGltZSgpJywgJ0RhdGUuVVRDKDE5NzAs
IDAsIDEsIDAsIDAsIDAsIDApJyk7CitzaG91bGRCZSgndmFsdWVBc0RhdGVGb3IoIjA0OjM1Iiku
Z2V0VGltZSgpJywgJ0RhdGUuVVRDKDE5NzAsIDAsIDEsIDQsIDM1LCAwLCAwKScpOworc2hvdWxk
QmUoJ3ZhbHVlQXNEYXRlRm9yKCIyMzo1OTo1OS45OTkiKS5nZXRUaW1lKCknLCAnRGF0ZS5VVEMo
MTk3MCwgMCwgMSwgMjMsIDU5LCA1OSwgOTk5KScpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3Rz
L2lucHV0LXZhbHVlYXNkYXRlLXdlZWsuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Njcmlw
dC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS13ZWVrLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmY5YzQ2OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS13ZWVrLmpzCkBAIC0wLDAgKzEs
MjcgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyBmb3IgLnZhbHVlQXNEYXRlIHdpdGggJmx0O2lucHV0
IHR5cGU9d2Vlaz4uJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lu
cHV0Jyk7CitpbnB1dC50eXBlID0gJ3dlZWsnOworCitmdW5jdGlvbiB2YWx1ZUFzRGF0ZUZvcihz
dHJpbmdWYWx1ZSkgeworICAgIGlucHV0LnZhbHVlID0gc3RyaW5nVmFsdWU7CisgICAgcmV0dXJu
IGlucHV0LnZhbHVlQXNEYXRlOworfQorCitzaG91bGRCZSgndmFsdWVBc0RhdGVGb3IoIiIpJywg
J251bGwnKTsKKy8vIEphbnVhcnkgMXN0IGlzIE1vbmRheS4gVzAxIHN0YXJ0cyBvbiBKYW51YXJ5
IDFuZC4KK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZvcigiMjAwNy1XMDEiKS5nZXRUaW1lKCknLCAn
RGF0ZS5VVEMoMjAwNywgMCwgMSknKTsKKy8vIEphbnVhcnkgMXN0IGlzIFR1ZXNkYXkuIFcwMSBz
dGFydHMgb24gRGVjZW1iZXIgMzF0aC4KK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZvcigiMjAwOC1X
MDEiKS5nZXRUaW1lKCknLCAnRGF0ZS5VVEMoMjAwNywgMTEsIDMxKScpOworLy8gSmFudWFyeSAx
c3QgaXMgV2VkbmVzZGF5LiBXMDEgc3RhcnRzIG9uIERlY2VtYmVyIDI5dGguCitzaG91bGRCZSgn
dmFsdWVBc0RhdGVGb3IoIjIwMDMtVzAxIikuZ2V0VGltZSgpJywgJ0RhdGUuVVRDKDIwMDIsIDEx
LCAzMCknKTsKKy8vIEphbnVhcnkgMXN0IGlzIFRodXJzZGF5LiBXMDEgc3RhcnRzIG9uIERlY2Vt
YmVyIDI5dGguCitzaG91bGRCZSgndmFsdWVBc0RhdGVGb3IoIjIwMDQtVzAxIikuZ2V0VGltZSgp
JywgJ0RhdGUuVVRDKDIwMDMsIDExLCAyOSwgMCwgMCwgMCwgMCknKTsKKy8vIEphbnVhcnkgMXN0
IGlzIEZyaWRheS4gVzAxIHN0YXJ0cyBvbiBKYW51YXJ5IDR0aC4KK3Nob3VsZEJlKCd2YWx1ZUFz
RGF0ZUZvcigiMjAxMC1XMDEiKS5nZXRUaW1lKCknLCAnRGF0ZS5VVEMoMjAxMCwgMCwgNCknKTsK
Ky8vIEphbnVhcnkgMXN0IGlzIFNhdHVyZGF5LiBXMDEgc3RhcnRzIG9uIEphbnVhcnkgM3JkLgor
c2hvdWxkQmUoJ3ZhbHVlQXNEYXRlRm9yKCIyMDA1LVcwMSIpLmdldFRpbWUoKScsICdEYXRlLlVU
QygyMDA1LCAwLCAzKScpOworLy8gSmFudWFyeSAxc3QgaXMgU3VuZGF5LiBXMDEgc3RhcnRzIG9u
IEphbnVhcnkgMm5kLgorc2hvdWxkQmUoJ3ZhbHVlQXNEYXRlRm9yKCIyMDA2LVcwMSIpLmdldFRp
bWUoKScsICdEYXRlLlVUQygyMDA2LCAwLCAyKScpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZTIzYWIyOS4uYjhlZjU1MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAwOS0xMi0yMiAgS2Vu
dCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSFRNTElucHV0RWxlbWVudDo6dmFsdWVBc0RhdGUgZ2V0
dGVyIHN1cHBvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMjg3NgorCisgICAgICAgIFRvIGltcGxlbWVudCB0aGUgdmFsdWVBc0RhdGUgZ2V0dGVy
LAorICAgICAgICAtIEFkZCBhIG1ldGhvZCB0byBjYWxjdWxhdGUgbWlsbGlzZWNvbmRzIGZyb20g
MTk3MC0wMS0wMSB0byBJU09EYXRlVGltZS4KKyAgICAgICAgLSBJbnRyb2R1Y2UgbV90eXBlIGZp
ZWxkIHRvIElTT0RhdGVUaW1lLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL2lucHV0LXZh
bHVlYXNkYXRlLWRhdGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9pbnB1dC12YWx1
ZWFzZGF0ZS1kYXRldGltZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0LXZh
bHVlYXNkYXRlLWRhdGV0aW1lbG9jYWwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9p
bnB1dC12YWx1ZWFzZGF0ZS1tb250aC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lu
cHV0LXZhbHVlYXNkYXRlLXRpbWUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9pbnB1
dC12YWx1ZWFzZGF0ZS13ZWVrLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZSk6
CisgICAgICAgICAgSW1wbGVlbW50IGl0IHdpdGggSVNPRGF0ZVRpbWU6OnRvdGFsTWlsbGlzZWNv
bmRGb3JUaW1lKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojpmb3JtU3Ry
aW5nVG9JU09EYXRlVGltZSk6CisgICAgICAgICAgRWFybHkgZXhpdCBmb3IgYSBudWxsIFN0cmlu
Zy4gVGhpcyBhdm9pZCBhc3NlcnRpb24gZmFpbHVyZXMgaW4gSVNPRGF0ZVRpbWU6OnBhcnNlKigp
LgorICAgICAgICAqIGh0bWwvSVNPRGF0ZVRpbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SVNP
RGF0ZVRpbWU6OnBhcnNlTW9udGgpOiBTZXRzIG1fdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OklT
T0RhdGVUaW1lOjpwYXJzZURhdGUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OklTT0RhdGVU
aW1lOjpwYXJzZVdlZWspOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OklTT0RhdGVUaW1lOjpw
YXJzZVRpbWUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OklTT0RhdGVUaW1lOjpwYXJzZURh
dGVUaW1lTG9jYWwpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OklTT0RhdGVUaW1lOjpwYXJz
ZURhdGVUaW1lKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJU09EYXRlVGltZTo6dG90YWxN
aWxsaXNlY29uZEZvclRpbWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklTT0RhdGVUaW1l
Ojp0b3RhbE1pbGxpc2Vjb25kKTogQWRkZWQuCisgICAgICAgICogaHRtbC9JU09EYXRlVGltZS5o
OgorICAgICAgICAoV2ViQ29yZTo6SVNPRGF0ZVRpbWU6OklTT0RhdGVUaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OklTT0RhdGVUaW1lOjppbnZhbGlkVG90YWxNaWxsaXNlY29uZCk6CisgICAgICAg
IChXZWJDb3JlOjpJU09EYXRlVGltZTo6KToKKwogMjAwOS0xMi0yMSAgS3dhbmcgWXVsIFNlbyAg
PHNreXVsQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVs
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGIzYjliOWMuLmI4YmQ1MTYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTEzNzYsMTAgKzEzNzYsMjIgQEAgdm9pZCBIVE1M
SW5wdXRFbGVtZW50OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHNlbmRDaGFu
Z2VFdmVudCkKIAogZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVlQXNEYXRlKCkgY29uc3QK
IHsKLSAgICAvLyBGSVhNRTogVGhpcyBpcyBhIHRlbXBvcmFyeSBpbXBsZW1lbnRhdGlvbiB0byBj
aGVjayBEYXRlIGJpbmRpbmcuCi0gICAgaWYgKGlucHV0VHlwZSgpID09IE1PTlRIKQotICAgICAg
ICByZXR1cm4gMC4wOwotICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1
aWV0X05hTigpOworICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKKyAgICAvLyB2YWx1ZUFzRGF0
ZSBkb2Vzbid0IHdvcmsgZm9yIHRoZSBEQVRFVElNRUxPQ0FMIHR5cGUgYWNjb3JkaW5nIHRvIHRo
ZSBzdGFuZGFyZC4KKyAgICBjYXNlIERBVEU6CisgICAgY2FzZSBEQVRFVElNRToKKyAgICBjYXNl
IE1PTlRIOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFdFRUs6IHsKKyAgICAgICAgSVNPRGF0
ZVRpbWUgZGF0ZVRpbWU7CisgICAgICAgIGlmICghZm9ybVN0cmluZ1RvSVNPRGF0ZVRpbWUoaW5w
dXRUeXBlKCksIHZhbHVlKCksICZkYXRlVGltZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBJU09E
YXRlVGltZTo6aW52YWxpZFRvdGFsTWlsbGlzZWNvbmQoKTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gZGF0ZVRpbWUudG90YWxNaWxsaXNlY29uZCgpOworICAgIH0KKyAgICBkZWZhdWx0Ogor
ICAgICAgICByZXR1cm4gSVNPRGF0ZVRpbWU6OmludmFsaWRUb3RhbE1pbGxpc2Vjb25kKCk7Cisg
ICAgfQogfQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGRvdWJsZSB2
YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0yMTMyLDYgKzIxNDQsOSBAQCBib29sIEhUTUxJ
bnB1dEVsZW1lbnQ6OmZvcm1TdHJpbmdUb0lTT0RhdGVUaW1lKElucHV0VHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIGZvcgogICAgIElTT0RhdGVUaW1lIGlnbm9yZWRSZXN1bHQ7CiAgICAgaWYgKCFv
dXQpCiAgICAgICAgIG91dCA9ICZpZ25vcmVkUmVzdWx0OworICAgIGlmIChmb3JtU3RyaW5nLmlz
RW1wdHkoKSl7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgY29uc3QgVUNoYXIq
IGNoYXJhY3RlcnMgPSBmb3JtU3RyaW5nLmNoYXJhY3RlcnMoKTsKICAgICB1bnNpZ25lZCBsZW5n
dGggPSBmb3JtU3RyaW5nLmxlbmd0aCgpOwogICAgIHVuc2lnbmVkIGVuZDsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9JU09EYXRlVGltZS5jcHAgYi9XZWJDb3JlL2h0bWwvSVNPRGF0ZVRpbWUu
Y3BwCmluZGV4IDRjMjhhYzAuLjY5ZmJhNzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9JU09E
YXRlVGltZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0lTT0RhdGVUaW1lLmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogCiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUu
aD4KKyNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0yOTMsNiArMjk0LDcgQEAgYm9vbCBJU09EYXRlVGltZTo6cGFyc2VNb250aChjb25zdCBVQ2hh
ciogc3JjLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIHN0YXJ0LAogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgbV9tb250aCA9IG1vbnRoOwogICAgIGVuZCA9IGluZGV4ICsgMjsKKyAgICBt
X3R5cGUgPSBNb250aDsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMzE3LDYgKzMxOSw3IEBA
IGJvb2wgSVNPRGF0ZVRpbWU6OnBhcnNlRGF0ZShjb25zdCBVQ2hhciogc3JjLCB1bnNpZ25lZCBs
ZW5ndGgsIHVuc2lnbmVkIHN0YXJ0LCB1CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBtX21v
bnRoRGF5ID0gZGF5OwogICAgIGVuZCA9IGluZGV4ICsgMjsKKyAgICBtX3R5cGUgPSBEYXRlOwog
ICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0zNDUsNiArMzQ4LDcgQEAgYm9vbCBJU09EYXRlVGlt
ZTo6cGFyc2VXZWVrKGNvbnN0IFVDaGFyKiBzcmMsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQg
c3RhcnQsIHUKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIG1fd2VlayA9IHdlZWs7CiAgICAg
ZW5kID0gaW5kZXggKyAyOworICAgIG1fdHlwZSA9IFdlZWs7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKQEAgLTM5OSw2ICs0MDMsNyBAQCBib29sIElTT0RhdGVUaW1lOjpwYXJzZVRpbWUoY29uc3Qg
VUNoYXIqIHNyYywgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBzdGFydCwgdQogICAgIG1fc2Vj
b25kID0gc2Vjb25kOwogICAgIG1fbWlsbGlzZWNvbmQgPSBtaWxsaXNlY29uZDsKICAgICBlbmQg
PSBpbmRleDsKKyAgICBtX3R5cGUgPSBUaW1lOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC00
MTMsNyArNDE4LDEwIEBAIGJvb2wgSVNPRGF0ZVRpbWU6OnBhcnNlRGF0ZVRpbWVMb2NhbChjb25z
dCBVQ2hhciogc3JjLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkCiAgICAgaWYgKHNyY1tpbmRl
eF0gIT0gJ1QnKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgKytpbmRleDsKLSAgICByZXR1
cm4gcGFyc2VUaW1lKHNyYywgbGVuZ3RoLCBpbmRleCwgZW5kKTsKKyAgICBpZiAoIXBhcnNlVGlt
ZShzcmMsIGxlbmd0aCwgaW5kZXgsIGVuZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBt
X3R5cGUgPSBEYXRlVGltZUxvY2FsOworICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIElTT0Rh
dGVUaW1lOjpwYXJzZURhdGVUaW1lKGNvbnN0IFVDaGFyKiBzcmMsIHVuc2lnbmVkIGxlbmd0aCwg
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkJiBlbmQpCkBAIC00MjksNyArNDM3LDQzIEBAIGJvb2wg
SVNPRGF0ZVRpbWU6OnBhcnNlRGF0ZVRpbWUoY29uc3QgVUNoYXIqIHNyYywgdW5zaWduZWQgbGVu
Z3RoLCB1bnNpZ25lZCBzdGFyCiAgICAgKytpbmRleDsKICAgICBpZiAoIXBhcnNlVGltZShzcmMs
IGxlbmd0aCwgaW5kZXgsIGluZGV4KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVy
biBwYXJzZVRpbWVab25lKHNyYywgbGVuZ3RoLCBpbmRleCwgZW5kKTsKKyAgICBpZiAoIXBhcnNl
VGltZVpvbmUoc3JjLCBsZW5ndGgsIGluZGV4LCBlbmQpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgbV90eXBlID0gRGF0ZVRpbWU7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2RvdWJsZSBJ
U09EYXRlVGltZTo6dG90YWxNaWxsaXNlY29uZEZvclRpbWUoKSBjb25zdAoreworICAgIEFTU0VS
VChtX3R5cGUgPT0gVGltZSB8fCBtX3R5cGUgPT0gRGF0ZVRpbWUpOworICAgIHJldHVybiAoKG1f
aG91ciAqIG1pbnV0ZXNQZXJIb3VyICsgbV9taW51dGUpICogc2Vjb25kc1Blck1pbnV0ZSArIG1f
c2Vjb25kKSAqIG1zUGVyU2Vjb25kICsgbV9taWxsaXNlY29uZDsKK30KKworZG91YmxlIElTT0Rh
dGVUaW1lOjp0b3RhbE1pbGxpc2Vjb25kKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fdHlwZSkg
eworICAgIGNhc2UgRGF0ZToKKyAgICAgICAgcmV0dXJuIGRhdGVUb0RheXNGcm9tMTk3MChtX3ll
YXIsIG1fbW9udGgsIG1fbW9udGhEYXkpICogbXNQZXJEYXk7CisgICAgY2FzZSBEYXRlVGltZToK
KyAgICBjYXNlIERhdGVUaW1lTG9jYWw6CisgICAgICAgIHJldHVybiBkYXRlVG9EYXlzRnJvbTE5
NzAobV95ZWFyLCBtX21vbnRoLCBtX21vbnRoRGF5KSAqIG1zUGVyRGF5ICsgdG90YWxNaWxsaXNl
Y29uZEZvclRpbWUoKTsKKyAgICBjYXNlIE1vbnRoOgorICAgICAgICByZXR1cm4gZGF0ZVRvRGF5
c0Zyb20xOTcwKG1feWVhciwgbV9tb250aCwgMSkgKiBtc1BlckRheTsKKyAgICBjYXNlIFRpbWU6
CisgICAgICAgIHJldHVybiB0b3RhbE1pbGxpc2Vjb25kRm9yVGltZSgpOworICAgIGNhc2UgV2Vl
azogeworICAgICAgICAvLyBPZmZzZXQgZnJvbSBKYW51YXJ5IDFzdCB0byBNb25kYXkgb2YgdGhl
IElTTyA4NjAxJ3MgZmlyc3Qgd2Vlay4KKyAgICAgICAgLy8gICBleC4gSWYgSmFudWFyeSAxc3Qg
aXMgRnJpZGF5LCBzdWNoIE1vbmRheSBpcyAzIGRheXMgbGF0ZXIuCisgICAgICAgIGludCBvZmZz
ZXRUbzFzdFdlZWtTdGFydCA9IDEgLSBkYXlPZldlZWsobV95ZWFyLCAwLCAxKTsKKyAgICAgICAg
aWYgKG9mZnNldFRvMXN0V2Vla1N0YXJ0IDw9IC00KQorICAgICAgICAgICAgb2Zmc2V0VG8xc3RX
ZWVrU3RhcnQgKz0gNzsKKyAgICAgICAgcmV0dXJuIChkYXRlVG9EYXlzRnJvbTE5NzAobV95ZWFy
LCAwLCAxKSArIG9mZnNldFRvMXN0V2Vla1N0YXJ0ICsgKG1fd2VlayAtIDEpICogNykgKiBtc1Bl
ckRheTsKKyAgICB9CisgICAgY2FzZSBJbnZhbGlkOgorICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGludmFsaWRUb3RhbE1pbGxpc2Vj
b25kKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9JU09EYXRlVGltZS5oIGIvV2ViQ29yZS9odG1sL0lTT0RhdGVUaW1lLmgKaW5kZXggZWU0
Y2ZiOS4uMzNhODExZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0lTT0RhdGVUaW1lLmgKKysr
IGIvV2ViQ29yZS9odG1sL0lTT0RhdGVUaW1lLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgog
ICAgICAgICAsIG1fbW9udGgoMCkKICAgICAgICAgLCBtX3llYXIoMCkKICAgICAgICAgLCBtX3dl
ZWsoMCkKKyAgICAgICAgLCBtX3R5cGUoSW52YWxpZCkKICAgICB7CiAgICAgfQogCkBAIC04Niw2
ICs4NywxMiBAQCBwdWJsaWM6CiAgICAgLy8gU2V0cyB5ZWFyLCBtb250aCwgbW9udGhEYXksIGhv
dXIsIG1pbnV0ZSwgc2Vjb25kIGFuZCBtaWxsaXNlY29uZCwgYW5kIGFkanVzdHMgdGltZXpvbmUu
CiAgICAgYm9vbCBwYXJzZURhdGVUaW1lKGNvbnN0IFVDaGFyKiBzcmMsIHVuc2lnbmVkIGxlbmd0
aCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkJiBlbmQpOwogCisgICAgLy8gUmV0dXJucyB0aGUg
bnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBmcm9tIDE5NzAtMDEtMDEgMDA6MDA6MDAgVVRDLCBVTklY
CisgICAgLy8gZXBvY2ggdGltZS4gRm9yIGFuIElTT0RhdGVUaW1lIGluaXRpYWxpemVkIHdpdGgg
cGFyc2VEYXRlVGltZUxvY2FsKCksCisgICAgLy8gdG90YWxNaWxsaXNlY29uZCgpIHJldHVybnMg
YSB2YWx1ZSBmb3IgVVRDIHRpbWV6b25lLgorICAgIGRvdWJsZSB0b3RhbE1pbGxpc2Vjb25kKCkg
Y29uc3Q7CisgICAgc3RhdGljIGlubGluZSBkb3VibGUgaW52YWxpZFRvdGFsTWlsbGlzZWNvbmQo
KSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOyB9CisK
IHByaXZhdGU6CiAgICAgLy8gUmV0dXJucyB0aGUgbWF4aW11bSB3ZWVrIG51bWJlciBpbiB0aGlz
IElTT0RhdGVUaW1lJ3MgeWVhci4KICAgICAvLyBUaGUgcmVzdWx0IGlzIGVpdGhlciBvZiA1MiBh
bmQgNTMuCkBAIC05NCw2ICsxMDEsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgYWRkRGF5KGludCk7
CiAgICAgYm9vbCBhZGRNaW51dGUoaW50KTsKICAgICBib29sIHBhcnNlVGltZVpvbmUoY29uc3Qg
VUNoYXIqIHNyYywgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQmIGVu
ZCk7CisgICAgLy8gSGVscGVyIGZvciB0b3RhbE1pbGxpc2Vjb25kKCkuCisgICAgZG91YmxlIHRv
dGFsTWlsbGlzZWNvbmRGb3JUaW1lKCkgY29uc3Q7CiAKICAgICAvLyBtX3dlZWtEYXkgdmFsdWVz
CiAgICAgZW51bSB7CkBAIC0xMTQsNiArMTIzLDE3IEBAIHByaXZhdGU6CiAgICAgaW50IG1fbW9u
dGg7ICAvLyAwOkphbnVhcnkgLSAxMTpEZWNlbWJlcgogICAgIGludCBtX3llYXI7ICAvLyAgMTU4
MiAtCiAgICAgaW50IG1fd2VlazsgIC8vIDEgLSA1MworCisgICAgZW51bSBEYXRlVGltZVR5cGUg
eworICAgICAgICBJbnZhbGlkLAorICAgICAgICBEYXRlLAorICAgICAgICBEYXRlVGltZSwKKyAg
ICAgICAgRGF0ZVRpbWVMb2NhbCwKKyAgICAgICAgTW9udGgsCisgICAgICAgIFRpbWUsCisgICAg
ICAgIFdlZWssCisgICAgfTsKKyAgICBEYXRlVGltZVR5cGUgbV90eXBlOwogfTsKIAogCi0tIAox
LjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45396</attachid>
            <date>2009-12-22 12:35:45 -0800</date>
            <delta_ts>2009-12-22 13:08:18 -0800</delta_ts>
            <desc>Proposed patch (rev.2)</desc>
            <filename>0001-valueAsDate-2.patch</filename>
            <type>text/plain</type>
            <size>30354</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSA3NWMyMDg4YTRmNjI1ODE0ZTJmN2E2MjEyYjk5ZTkyZWVkODk4MmVkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBXZWQsIDkgRGVjIDIwMDkgMTE6MzA6MDkgKzA5MDAKU3ViamVjdDogW1BBVENIXSB2YWx1ZUFz
RGF0ZS0yCgotLS0KIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxNCArKysrKysKIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCAg
ICAgICAgICAgICAgICAgIHwgICAgMSArCiBKYXZhU2NyaXB0Q29yZS93dGYvRGF0ZU1hdGguY3Bw
ICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIEphdmFTY3JpcHRDb3JlL3d0Zi9EYXRlTWF0
aC5oICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSArKysrCiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjggKysrKysrKysrKysKIC4uLi9m
YXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGUtZXhwZWN0ZWQudHh0IHwgICAxMyArKysr
KwogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRlLmh0bWwgfCAg
IDEzICsrKysrCiAuLi4vZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWUtZXhwZWN0ZWQu
dHh0ICB8ICAgMTMgKysrKysKIC4uLi9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0
aW1lLmh0bWwgICAgIHwgICAxMyArKysrKwogLi4uL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1l
bG9jYWwtZXhwZWN0ZWQudHh0ICAgfCAgIDEzICsrKysrCiAuLi4vZm9ybXMvaW5wdXQtdmFsdWVh
c2RhdGUtZGF0ZXRpbWVsb2NhbC5odG1sICAgICB8ICAgMTMgKysrKysKIC4uLi9mb3Jtcy9pbnB1
dC12YWx1ZWFzZGF0ZS1tb250aC1leHBlY3RlZC50eHQgICAgIHwgICAxMyArKysrKwogLi4uL2Zh
c3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtbW9udGguaHRtbCAgICAgICAgfCAgIDEzICsrKysr
CiAuLi4vZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS10aW1lLWV4cGVjdGVkLnR4dCB8ICAg
MTMgKysrKysKIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtdGltZS5o
dG1sIHwgICAxMyArKysrKwogLi4uL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtd2Vlay1l
eHBlY3RlZC50eHQgfCAgIDE3ICsrKysrKysKIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
dmFsdWVhc2RhdGUtd2Vlay5odG1sIHwgICAxMyArKysrKwogLi4uL2Zvcm1zL3NjcmlwdC10ZXN0
cy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRlLmpzICAgfCAgIDE2ICsrKysrKysKIC4uLi9zY3JpcHQt
dGVzdHMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWUuanMgICAgIHwgICAxNiArKysrKysrCiAu
Li4vaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWVsb2NhbC5qcyAgICAgICAgICAgICB8ICAgMTYg
KysrKysrKwogLi4uL2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS1tb250aC5q
cyAgfCAgIDE2ICsrKysrKysKIC4uLi9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtdmFsdWVhc2Rh
dGUtdGltZS5qcyAgIHwgICAxNiArKysrKysrCiAuLi4vZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0
LXZhbHVlYXNkYXRlLXdlZWsuanMgICB8ICAgMjcgKysrKysrKysrKysKIFdlYkNvcmUvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNyArKysrKysrKysrKysr
KysKIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCAgICAgICAgICAgICAgICAgIHwg
ICAyMSArKysrKysrLS0KIFdlYkNvcmUvaHRtbC9JU09EYXRlVGltZS5jcHAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICA0OCArKysrKysrKysrKysrKysrKysrLQogV2ViQ29yZS9odG1sL0lTT0Rh
dGVUaW1lLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIwICsrKysrKysrCiAyNyBmaWxl
cyBjaGFuZ2VkLCA0NDAgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGUtZXhw
ZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1
dC12YWx1ZWFzZGF0ZS1kYXRlLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lLWV4cGVjdGVkLnR4dAogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0
ZXRpbWUuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWVsb2NhbC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lbG9j
YWwuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
dmFsdWVhc2RhdGUtbW9udGgtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1tb250aC5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS10aW1lLWV4
cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtdmFsdWVhc2RhdGUtdGltZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS13ZWVrLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtd2Vlay5o
dG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZS5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lLmpz
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMv
aW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWVsb2NhbC5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLW1vbnRo
LmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvaW5wdXQtdmFsdWVhc2RhdGUtdGltZS5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLXdlZWsuanMKCmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggMWZhNGRiZi4uODkzYmUzMyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDA5LTEyLTIyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIVE1MSW5wdXRFbGVtZW50
Ojp2YWx1ZUFzRGF0ZSBnZXR0ZXIgc3VwcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMyODc2CisKKyAgICAgICAgRXhwb3NlIGRhdGVUb0RheXNG
cm9tMTk3MCgpLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIHd0
Zi9EYXRlTWF0aC5jcHA6CisgICAgICAgIChXVEY6OmRhdGVUb0RheXNGcm9tMTk3MCk6CisgICAg
ICAgICogd3RmL0RhdGVNYXRoLmg6CisKIDIwMDktMTItMjEgIFNpbW9uIEhhdXNtYW5uICA8c2lt
b24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFByb3NwZWN0aXZlIEdUSyBidWlsZCBm
aXg6IEFkZCBVU3RyaW5nSW1wbC5jcHAvaCB0byB0aGUgYnVpbGQuCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5leHAKaW5kZXggNmEwNjIxNS4uMzBiMTc0YyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmV4cApAQCAtMzE2LDYgKzMxNiw3IEBAIF9fWk4zV1RGMTVUaHJlYWRDb25kaXRpb25DMUV2CiBf
X1pOM1dURjE1VGhyZWFkQ29uZGl0aW9uRDFFdgogX19aTjNXVEYxNmNhbGxPbk1haW5UaHJlYWRF
UEZ2UHZFUzBfCiBfX1pOM1dURjE2ZmFzdFplcm9lZE1hbGxvY0VtCitfX1pOM1dURjE4ZGF0ZVRv
RGF5c0Zyb20xOTcwRWlpaQogX19aTjNXVEYxOWluaXRpYWxpemVUaHJlYWRpbmdFdgogX19aTjNX
VEYyMGZhc3RNYWxsb2NTdGF0aXN0aWNzRXYKIF9fWk4zV1RGMjFSZWZDb3VudGVkTGVha0NvdW50
ZXIxNnN1cHByZXNzTWVzc2FnZXNFUEtjCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYv
RGF0ZU1hdGguY3BwIGIvSmF2YVNjcmlwdENvcmUvd3RmL0RhdGVNYXRoLmNwcAppbmRleCBkZjQx
NmQxLi4xZjljMGU0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvRGF0ZU1hdGguY3Bw
CisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTMxMCw3ICszMTAsNyBA
QCBzdGF0aWMgaW5saW5lIGRvdWJsZSB0aW1lVG9NUyhkb3VibGUgaG91ciwgZG91YmxlIG1pbiwg
ZG91YmxlIHNlYywgZG91YmxlIG1zKQogICAgIHJldHVybiAoKChob3VyICogbWludXRlc1Blckhv
dXIgKyBtaW4pICogc2Vjb25kc1Blck1pbnV0ZSArIHNlYykgKiBtc1BlclNlY29uZCArIG1zKTsK
IH0KIAotc3RhdGljIGRvdWJsZSBkYXRlVG9EYXlzRnJvbTE5NzAoaW50IHllYXIsIGludCBtb250
aCwgaW50IGRheSkKK2RvdWJsZSBkYXRlVG9EYXlzRnJvbTE5NzAoaW50IHllYXIsIGludCBtb250
aCwgaW50IGRheSkKIHsKICAgICB5ZWFyICs9IG1vbnRoIC8gMTI7CiAKZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL3d0Zi9EYXRlTWF0aC5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL0RhdGVNYXRo
LmgKaW5kZXggNmQ0YWMxZS4uM2E5ZGUyMiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3Rm
L0RhdGVNYXRoLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL0RhdGVNYXRoLmgKQEAgLTc2LDgg
Kzc2LDE3IEBAIGNvbnN0IGRvdWJsZSBtc1BlckhvdXIgPSA2MC4wICogNjAuMCAqIDEwMDAuMDsK
IGNvbnN0IGRvdWJsZSBtc1BlckRheSA9IDI0LjAgKiA2MC4wICogNjAuMCAqIDEwMDAuMDsKIGNv
bnN0IGRvdWJsZSBtc1Blck1vbnRoID0gMjU5MjAwMDAwMC4wOwogCisvLyBSZXR1cm5zIHRoZSBu
dW1iZXIgb2YgZGF5cyBmcm9tIDE5NzAtMDEtMDEgdG8gdGhlIHNwZWNpZmllZCBkYXRlLgorZG91
YmxlIGRhdGVUb0RheXNGcm9tMTk3MChpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5KTsKKwog
fSAvLyBuYW1lc3BhY2UgV1RGCiAKK3VzaW5nIFdURjo6ZGF0ZVRvRGF5c0Zyb20xOTcwOwordXNp
bmcgV1RGOjptaW51dGVzUGVySG91cjsKK3VzaW5nIFdURjo6bXNQZXJEYXk7Cit1c2luZyBXVEY6
Om1zUGVyU2Vjb25kOwordXNpbmcgV1RGOjpzZWNvbmRzUGVyTWludXRlOworCiAjaWYgVVNFKEpT
QykKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRXhlY1N0YXRlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUwN2NiN2QuLjBm
ZTYyNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAwOS0xMi0yMiAgS2VudCBUYW11cmEgIDx0
a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSFRNTElucHV0RWxlbWVudDo6dmFsdWVBc0RhdGUgZ2V0dGVyIHN1cHBvcnQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjg3Ngor
CisgICAgICAgIFRlc3RzIGZvciB0aGUgdmFsdWVBc0RhdGUgZ2V0dGVyIHdpdGggdmFyaW91cyB0
eXBlcy4KKworICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUt
ZGF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRl
LWRhdGV0aW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1
dC12YWx1ZWFzZGF0ZS1kYXRldGltZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1z
L2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lbG9jYWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lbG9jYWwuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1tb250aC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUt
bW9udGguaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0
ZS10aW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC12
YWx1ZWFzZGF0ZS10aW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQt
dmFsdWVhc2RhdGUtd2Vlay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvaW5wdXQtdmFsdWVhc2RhdGUtd2Vlay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGltZS5q
czogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtdmFsdWVh
c2RhdGUtZGF0ZXRpbWVsb2NhbC5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvaW5wdXQtdmFsdWVhc2RhdGUtbW9udGguanM6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLXRpbWUuanM6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLXdlZWsu
anM6IEFkZGVkLgorCiAyMDA5LTEyLTIxICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW1F0XSBTa2lwIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKSByZWxhdGVkIHRlc3QgdW50aWwgZml4LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA4ZGU4YgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMyBAQAorVGVzdHMgZm9yIC52YWx1ZUFzRGF0ZSB3aXRoIDxpbnB1dCB0eXBl
PWRhdGU+LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB2YWx1ZUFzRGF0
ZUZvcigiIikgaXMgbnVsbAorUEFTUyB2YWx1ZUFzRGF0ZUZvcigiMTk2OS0xMi0zMSIpLmdldFRp
bWUoKSBpcyBEYXRlLlVUQygxOTY5LCAxMSwgMzEpCitQQVNTIHZhbHVlQXNEYXRlRm9yKCIxOTcw
LTAxLTAxIikuZ2V0VGltZSgpIGlzIERhdGUuVVRDKDE5NzAsIDAsIDEpCitQQVNTIHZhbHVlQXNE
YXRlRm9yKCIyMDA5LTEyLTIyIikuZ2V0VGltZSgpIGlzIERhdGUuVVRDKDIwMDksIDExLCAyMikK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMDFhNjMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGUuaHRtbApA
QCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGltZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWU1ZmU4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRl
dGltZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgZm9yIC52YWx1ZUFzRGF0
ZSB3aXRoIDxpbnB1dCB0eXBlPWRhdGV0aW1lPi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgdmFsdWVBc0RhdGVGb3IoIiIpIGlzIG51bGwKK1BBU1MgdmFsdWVBc0RhdGVG
b3IoIjE5NjktMTItMzFUMTI6MzQ6NTYuNzg5WiIpLmdldFRpbWUoKSBpcyBEYXRlLlVUQygxOTY5
LCAxMSwgMzEsIDEyLCAzNCwgNTYsIDc4OSkKK1BBU1MgdmFsdWVBc0RhdGVGb3IoIjE5NzAtMDEt
MDFUMDA6MDA6MDAuMDAwWiIpLmdldFRpbWUoKSBpcyBEYXRlLlVUQygxOTcwLCAwLCAxLCAwLCAw
LCAwKQorUEFTUyB2YWx1ZUFzRGF0ZUZvcigiMjAwOS0xMi0yMlQxMTozMjoxMVoiKS5nZXRUaW1l
KCkgaXMgRGF0ZS5VVEMoMjAwOSwgMTEsIDIyLCAxMSwgMzIsIDExKQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMWE5YjhjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGltZS5odG1sCkBAIC0w
LDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGltZWxvY2FsLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWVsb2Nh
bC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FiOWYx
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVh
c2RhdGUtZGF0ZXRpbWVsb2NhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMg
Zm9yIC52YWx1ZUFzRGF0ZSB3aXRoIDxpbnB1dCB0eXBlPWRhdGV0aW1lbG9jYWw+LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB2YWx1ZUFzRGF0ZUZvcigiIikgaXMgbnVs
bAorUEFTUyB2YWx1ZUFzRGF0ZUZvcigiMTk2OS0xMi0zMVQxMjozNDo1Ni43ODkiKSBpcyBudWxs
CitQQVNTIHZhbHVlQXNEYXRlRm9yKCIxOTcwLTAxLTAxVDAwOjAwOjAwLjAwMCIpIGlzIG51bGwK
K1BBU1MgdmFsdWVBc0RhdGVGb3IoIjIwMDktMTItMjJUMTE6MzI6MTEiKSBpcyBudWxsCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0ZS1kYXRldGltZWxvY2Fs
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1l
bG9jYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWViMmY3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12YWx1ZWFzZGF0
ZS1kYXRldGltZWxvY2FsLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5wdXQt
dmFsdWVhc2RhdGUtZGF0ZXRpbWVsb2NhbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVh
c2RhdGUtbW9udGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12
YWx1ZWFzZGF0ZS1tb250aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOGRkNzFlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtdmFsdWVhc2RhdGUtbW9udGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAK
K1Rlc3RzIGZvciAudmFsdWVBc0RhdGUgd2l0aCA8aW5wdXQgdHlwZT1tb250aD4uCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHZhbHVlQXNEYXRlRm9yKCIiKSBpcyBudWxs
CitQQVNTIHZhbHVlQXNEYXRlRm9yKCIxOTY5LTEyIikuZ2V0VGltZSgpIGlzIERhdGUuVVRDKDE5
NjksIDExLCAxLCAwLCAwLCAwLCAwKQorUEFTUyB2YWx1ZUFzRGF0ZUZvcigiMTk3MC0wMSIpLmdl
dFRpbWUoKSBpcyBEYXRlLlVUQygxOTcwLCAwLCAxKQorUEFTUyB2YWx1ZUFzRGF0ZUZvcigiMjAw
OS0xMiIpLmdldFRpbWUoKSBpcyBEYXRlLlVUQygyMDA5LCAxMSwgMSkKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLW1vbnRoLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLW1vbnRoLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMGJjZDA1NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtbW9udGguaHRtbApAQCAtMCwwICsxLDEz
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9pbnB1dC12YWx1ZWFzZGF0ZS1tb250aC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtdmFsdWVhc2RhdGUtdGltZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLXRpbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4OWU4Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVlYXNkYXRlLXRpbWUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTMgQEAKK1Rlc3RzIGZvciAudmFsdWVBc0RhdGUgd2l0aCA8aW5wdXQgdHlwZT10aW1l
Pi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFsdWVBc0RhdGVGb3Io
IiIpIGlzIG51bGwKK1BBU1MgdmFsdWVBc0RhdGVGb3IoIjAwOjAwOjAwLjAwMCIpLmdldFRpbWUo
KSBpcyBEYXRlLlVUQygxOTcwLCAwLCAxLCAwLCAwLCAwLCAwKQorUEFTUyB2YWx1ZUFzRGF0ZUZv
cigiMDQ6MzUiKS5nZXRUaW1lKCkgaXMgRGF0ZS5VVEMoMTk3MCwgMCwgMSwgNCwgMzUsIDAsIDAp
CitQQVNTIHZhbHVlQXNEYXRlRm9yKCIyMzo1OTo1OS45OTkiKS5nZXRUaW1lKCkgaXMgRGF0ZS5V
VEMoMTk3MCwgMCwgMSwgMjMsIDU5LCA1OSwgOTk5KQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtdmFsdWVhc2RhdGUtdGltZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC12YWx1ZWFzZGF0ZS10aW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZGJlZGExYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtdmFsdWVhc2RhdGUtdGltZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2lucHV0LXZhbHVlYXNkYXRlLXRpbWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXZhbHVl
YXNkYXRlLXdlZWstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC12
YWx1ZWFzZGF0ZS13ZWVrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5hNGU5YzhiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC12YWx1ZWFzZGF0ZS13ZWVrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitU
ZXN0cyBmb3IgLnZhbHVlQXNEYXRlIHdpdGggPGlucHV0IHR5cGU9d2Vlaz4uCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHZhbHVlQXNEYXRlRm9yKCIiKSBpcyBudWxsCitQ
QVNTIHZhbHVlQXNEYXRlRm9yKCIyMDA3LVcwMSIpLmdldFRpbWUoKSBpcyBEYXRlLlVUQygyMDA3
LCAwLCAxKQorUEFTUyB2YWx1ZUFzRGF0ZUZvcigiMjAwOC1XMDEiKS5nZXRUaW1lKCkgaXMgRGF0
ZS5VVEMoMjAwNywgMTEsIDMxKQorUEFTUyB2YWx1ZUFzRGF0ZUZvcigiMjAwMy1XMDEiKS5nZXRU
aW1lKCkgaXMgRGF0ZS5VVEMoMjAwMiwgMTEsIDMwKQorUEFTUyB2YWx1ZUFzRGF0ZUZvcigiMjAw
NC1XMDEiKS5nZXRUaW1lKCkgaXMgRGF0ZS5VVEMoMjAwMywgMTEsIDI5LCAwLCAwLCAwLCAwKQor
UEFTUyB2YWx1ZUFzRGF0ZUZvcigiMjAxMC1XMDEiKS5nZXRUaW1lKCkgaXMgRGF0ZS5VVEMoMjAx
MCwgMCwgNCkKK1BBU1MgdmFsdWVBc0RhdGVGb3IoIjIwMDUtVzAxIikuZ2V0VGltZSgpIGlzIERh
dGUuVVRDKDIwMDUsIDAsIDMpCitQQVNTIHZhbHVlQXNEYXRlRm9yKCIyMDA2LVcwMSIpLmdldFRp
bWUoKSBpcyBEYXRlLlVUQygyMDA2LCAwLCAyKQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtdmFsdWVhc2RhdGUtd2Vlay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
bnB1dC12YWx1ZWFzZGF0ZS13ZWVrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZWE4YmNkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtdmFsdWVhc2RhdGUtd2Vlay5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2lucHV0LXZhbHVlYXNkYXRlLXdlZWsuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9p
bnB1dC12YWx1ZWFzZGF0ZS1kYXRlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQt
dGVzdHMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5mMDdmNzczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZS5qcwpAQCAtMCwwICsxLDE2
IEBACitkZXNjcmlwdGlvbignVGVzdHMgZm9yIC52YWx1ZUFzRGF0ZSB3aXRoICZsdDtpbnB1dCB0
eXBlPWRhdGU+LicpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1
dCcpOworaW5wdXQudHlwZSA9ICdkYXRlJzsKKworZnVuY3Rpb24gdmFsdWVBc0RhdGVGb3Ioc3Ry
aW5nVmFsdWUpIHsKKyAgICBpbnB1dC52YWx1ZSA9IHN0cmluZ1ZhbHVlOworICAgIHJldHVybiBp
bnB1dC52YWx1ZUFzRGF0ZTsKK30KKworc2hvdWxkQmUoJ3ZhbHVlQXNEYXRlRm9yKCIiKScsICdu
dWxsJyk7CitzaG91bGRCZSgndmFsdWVBc0RhdGVGb3IoIjE5NjktMTItMzEiKS5nZXRUaW1lKCkn
LCAnRGF0ZS5VVEMoMTk2OSwgMTEsIDMxKScpOworc2hvdWxkQmUoJ3ZhbHVlQXNEYXRlRm9yKCIx
OTcwLTAxLTAxIikuZ2V0VGltZSgpJywgJ0RhdGUuVVRDKDE5NzAsIDAsIDEpJyk7CitzaG91bGRC
ZSgndmFsdWVBc0RhdGVGb3IoIjIwMDktMTItMjIiKS5nZXRUaW1lKCknLCAnRGF0ZS5VVEMoMjAw
OSwgMTEsIDIyKScpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRl
LWRhdGV0aW1lLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQt
dmFsdWVhc2RhdGUtZGF0ZXRpbWUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYzI2NGY4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2Ny
aXB0LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lLmpzCkBAIC0wLDAgKzEsMTYgQEAK
K2Rlc2NyaXB0aW9uKCdUZXN0cyBmb3IgLnZhbHVlQXNEYXRlIHdpdGggJmx0O2lucHV0IHR5cGU9
ZGF0ZXRpbWU+LicpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1
dCcpOworaW5wdXQudHlwZSA9ICdkYXRldGltZSc7CisKK2Z1bmN0aW9uIHZhbHVlQXNEYXRlRm9y
KHN0cmluZ1ZhbHVlKSB7CisgICAgaW5wdXQudmFsdWUgPSBzdHJpbmdWYWx1ZTsKKyAgICByZXR1
cm4gaW5wdXQudmFsdWVBc0RhdGU7Cit9CisKK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZvcigiIikn
LCAnbnVsbCcpOworc2hvdWxkQmUoJ3ZhbHVlQXNEYXRlRm9yKCIxOTY5LTEyLTMxVDEyOjM0OjU2
Ljc4OVoiKS5nZXRUaW1lKCknLCAnRGF0ZS5VVEMoMTk2OSwgMTEsIDMxLCAxMiwgMzQsIDU2LCA3
ODkpJyk7CitzaG91bGRCZSgndmFsdWVBc0RhdGVGb3IoIjE5NzAtMDEtMDFUMDA6MDA6MDAuMDAw
WiIpLmdldFRpbWUoKScsICdEYXRlLlVUQygxOTcwLCAwLCAxLCAwLCAwLCAwKScpOworc2hvdWxk
QmUoJ3ZhbHVlQXNEYXRlRm9yKCIyMDA5LTEyLTIyVDExOjMyOjExWiIpLmdldFRpbWUoKScsICdE
YXRlLlVUQygyMDA5LCAxMSwgMjIsIDExLCAzMiwgMTEpJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQt
dGVzdHMvaW5wdXQtdmFsdWVhc2RhdGUtZGF0ZXRpbWVsb2NhbC5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLWRhdGV0aW1lbG9jYWwuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjEyY2M3MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXZhbHVlYXNk
YXRlLWRhdGV0aW1lbG9jYWwuanMKQEAgLTAsMCArMSwxNiBAQAorZGVzY3JpcHRpb24oJ1Rlc3Rz
IGZvciAudmFsdWVBc0RhdGUgd2l0aCAmbHQ7aW5wdXQgdHlwZT1kYXRldGltZWxvY2FsPi4nKTsK
KwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKK2lucHV0LnR5
cGUgPSAnZGF0ZXRpbWUtbG9jYWwnOworCitmdW5jdGlvbiB2YWx1ZUFzRGF0ZUZvcihzdHJpbmdW
YWx1ZSkgeworICAgIGlucHV0LnZhbHVlID0gc3RyaW5nVmFsdWU7CisgICAgcmV0dXJuIGlucHV0
LnZhbHVlQXNEYXRlOworfQorCitzaG91bGRCZSgndmFsdWVBc0RhdGVGb3IoIiIpJywgJ251bGwn
KTsKK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZvcigiMTk2OS0xMi0zMVQxMjozNDo1Ni43ODkiKScs
ICdudWxsJyk7CitzaG91bGRCZSgndmFsdWVBc0RhdGVGb3IoIjE5NzAtMDEtMDFUMDA6MDA6MDAu
MDAwIiknLCAnbnVsbCcpOworc2hvdWxkQmUoJ3ZhbHVlQXNEYXRlRm9yKCIyMDA5LTEyLTIyVDEx
OjMyOjExIiknLCAnbnVsbCcpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXZhbHVl
YXNkYXRlLW1vbnRoLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5w
dXQtdmFsdWVhc2RhdGUtbW9udGguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNjNjYjI4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2Ny
aXB0LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLW1vbnRoLmpzCkBAIC0wLDAgKzEsMTYgQEAKK2Rl
c2NyaXB0aW9uKCdUZXN0cyBmb3IgLnZhbHVlQXNEYXRlIHdpdGggJmx0O2lucHV0IHR5cGU9bW9u
dGg+LicpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwor
aW5wdXQudHlwZSA9ICdtb250aCc7CisKK2Z1bmN0aW9uIHZhbHVlQXNEYXRlRm9yKHN0cmluZ1Zh
bHVlKSB7CisgICAgaW5wdXQudmFsdWUgPSBzdHJpbmdWYWx1ZTsKKyAgICByZXR1cm4gaW5wdXQu
dmFsdWVBc0RhdGU7Cit9CisKK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZvcigiIiknLCAnbnVsbCcp
Oworc2hvdWxkQmUoJ3ZhbHVlQXNEYXRlRm9yKCIxOTY5LTEyIikuZ2V0VGltZSgpJywgJ0RhdGUu
VVRDKDE5NjksIDExLCAxLCAwLCAwLCAwLCAwKScpOworc2hvdWxkQmUoJ3ZhbHVlQXNEYXRlRm9y
KCIxOTcwLTAxIikuZ2V0VGltZSgpJywgJ0RhdGUuVVRDKDE5NzAsIDAsIDEpJyk7CitzaG91bGRC
ZSgndmFsdWVBc0RhdGVGb3IoIjIwMDktMTIiKS5nZXRUaW1lKCknLCAnRGF0ZS5VVEMoMjAwOSwg
MTEsIDEpJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtdmFsdWVhc2RhdGUtdGlt
ZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXZhbHVlYXNk
YXRlLXRpbWUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkxNDRjYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lu
cHV0LXZhbHVlYXNkYXRlLXRpbWUuanMKQEAgLTAsMCArMSwxNiBAQAorZGVzY3JpcHRpb24oJ1Rl
c3RzIGZvciAudmFsdWVBc0RhdGUgd2l0aCAmbHQ7aW5wdXQgdHlwZT10aW1lPi4nKTsKKwordmFy
IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKK2lucHV0LnR5cGUgPSAn
dGltZSc7CisKK2Z1bmN0aW9uIHZhbHVlQXNEYXRlRm9yKHN0cmluZ1ZhbHVlKSB7CisgICAgaW5w
dXQudmFsdWUgPSBzdHJpbmdWYWx1ZTsKKyAgICByZXR1cm4gaW5wdXQudmFsdWVBc0RhdGU7Cit9
CisKK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZvcigiIiknLCAnbnVsbCcpOworc2hvdWxkQmUoJ3Zh
bHVlQXNEYXRlRm9yKCIwMDowMDowMC4wMDAiKS5nZXRUaW1lKCknLCAnRGF0ZS5VVEMoMTk3MCwg
MCwgMSwgMCwgMCwgMCwgMCknKTsKK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZvcigiMDQ6MzUiKS5n
ZXRUaW1lKCknLCAnRGF0ZS5VVEMoMTk3MCwgMCwgMSwgNCwgMzUsIDAsIDApJyk7CitzaG91bGRC
ZSgndmFsdWVBc0RhdGVGb3IoIjIzOjU5OjU5Ljk5OSIpLmdldFRpbWUoKScsICdEYXRlLlVUQygx
OTcwLCAwLCAxLCAyMywgNTksIDU5LCA5OTkpJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMv
aW5wdXQtdmFsdWVhc2RhdGUtd2Vlay5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0
LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLXdlZWsuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZjljNDY5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXZhbHVlYXNkYXRlLXdlZWsuanMKQEAgLTAsMCArMSwy
NyBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIGZvciAudmFsdWVBc0RhdGUgd2l0aCAmbHQ7aW5wdXQg
dHlwZT13ZWVrPi4nKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5w
dXQnKTsKK2lucHV0LnR5cGUgPSAnd2Vlayc7CisKK2Z1bmN0aW9uIHZhbHVlQXNEYXRlRm9yKHN0
cmluZ1ZhbHVlKSB7CisgICAgaW5wdXQudmFsdWUgPSBzdHJpbmdWYWx1ZTsKKyAgICByZXR1cm4g
aW5wdXQudmFsdWVBc0RhdGU7Cit9CisKK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZvcigiIiknLCAn
bnVsbCcpOworLy8gSmFudWFyeSAxc3QgaXMgTW9uZGF5LiBXMDEgc3RhcnRzIG9uIEphbnVhcnkg
MW5kLgorc2hvdWxkQmUoJ3ZhbHVlQXNEYXRlRm9yKCIyMDA3LVcwMSIpLmdldFRpbWUoKScsICdE
YXRlLlVUQygyMDA3LCAwLCAxKScpOworLy8gSmFudWFyeSAxc3QgaXMgVHVlc2RheS4gVzAxIHN0
YXJ0cyBvbiBEZWNlbWJlciAzMXRoLgorc2hvdWxkQmUoJ3ZhbHVlQXNEYXRlRm9yKCIyMDA4LVcw
MSIpLmdldFRpbWUoKScsICdEYXRlLlVUQygyMDA3LCAxMSwgMzEpJyk7CisvLyBKYW51YXJ5IDFz
dCBpcyBXZWRuZXNkYXkuIFcwMSBzdGFydHMgb24gRGVjZW1iZXIgMjl0aC4KK3Nob3VsZEJlKCd2
YWx1ZUFzRGF0ZUZvcigiMjAwMy1XMDEiKS5nZXRUaW1lKCknLCAnRGF0ZS5VVEMoMjAwMiwgMTEs
IDMwKScpOworLy8gSmFudWFyeSAxc3QgaXMgVGh1cnNkYXkuIFcwMSBzdGFydHMgb24gRGVjZW1i
ZXIgMjl0aC4KK3Nob3VsZEJlKCd2YWx1ZUFzRGF0ZUZvcigiMjAwNC1XMDEiKS5nZXRUaW1lKCkn
LCAnRGF0ZS5VVEMoMjAwMywgMTEsIDI5LCAwLCAwLCAwLCAwKScpOworLy8gSmFudWFyeSAxc3Qg
aXMgRnJpZGF5LiBXMDEgc3RhcnRzIG9uIEphbnVhcnkgNHRoLgorc2hvdWxkQmUoJ3ZhbHVlQXNE
YXRlRm9yKCIyMDEwLVcwMSIpLmdldFRpbWUoKScsICdEYXRlLlVUQygyMDEwLCAwLCA0KScpOwor
Ly8gSmFudWFyeSAxc3QgaXMgU2F0dXJkYXkuIFcwMSBzdGFydHMgb24gSmFudWFyeSAzcmQuCitz
aG91bGRCZSgndmFsdWVBc0RhdGVGb3IoIjIwMDUtVzAxIikuZ2V0VGltZSgpJywgJ0RhdGUuVVRD
KDIwMDUsIDAsIDMpJyk7CisvLyBKYW51YXJ5IDFzdCBpcyBTdW5kYXkuIFcwMSBzdGFydHMgb24g
SmFudWFyeSAybmQuCitzaG91bGRCZSgndmFsdWVBc0RhdGVGb3IoIjIwMDYtVzAxIikuZ2V0VGlt
ZSgpJywgJ0RhdGUuVVRDKDIwMDYsIDAsIDIpJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBlMjNhYjI5Li5iOGVmNTUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDA5LTEyLTIyICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZSBnZXR0
ZXIgc3VwcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTMyODc2CisKKyAgICAgICAgVG8gaW1wbGVtZW50IHRoZSB2YWx1ZUFzRGF0ZSBnZXR0ZXIs
CisgICAgICAgIC0gQWRkIGEgbWV0aG9kIHRvIGNhbGN1bGF0ZSBtaWxsaXNlY29uZHMgZnJvbSAx
OTcwLTAxLTAxIHRvIElTT0RhdGVUaW1lLgorICAgICAgICAtIEludHJvZHVjZSBtX3R5cGUgZmll
bGQgdG8gSVNPRGF0ZVRpbWUuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvaW5wdXQtdmFs
dWVhc2RhdGUtZGF0ZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0LXZhbHVl
YXNkYXRlLWRhdGV0aW1lLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvaW5wdXQtdmFs
dWVhc2RhdGUtZGF0ZXRpbWVsb2NhbC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lu
cHV0LXZhbHVlYXNkYXRlLW1vbnRoLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvaW5w
dXQtdmFsdWVhc2RhdGUtdGltZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0
LXZhbHVlYXNkYXRlLXdlZWsuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVlQXNEYXRlKToK
KyAgICAgICAgICBJbXBsZWVtbnQgaXQgd2l0aCBJU09EYXRlVGltZTo6dG90YWxNaWxsaXNlY29u
ZEZvclRpbWUoKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmZvcm1TdHJp
bmdUb0lTT0RhdGVUaW1lKToKKyAgICAgICAgICBFYXJseSBleGl0IGZvciBhIG51bGwgU3RyaW5n
LiBUaGlzIGF2b2lkIGFzc2VydGlvbiBmYWlsdXJlcyBpbiBJU09EYXRlVGltZTo6cGFyc2UqKCku
CisgICAgICAgICogaHRtbC9JU09EYXRlVGltZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJU09E
YXRlVGltZTo6cGFyc2VNb250aCk6IFNldHMgbV90eXBlLgorICAgICAgICAoV2ViQ29yZTo6SVNP
RGF0ZVRpbWU6OnBhcnNlRGF0ZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SVNPRGF0ZVRp
bWU6OnBhcnNlV2Vlayk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SVNPRGF0ZVRpbWU6OnBh
cnNlVGltZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SVNPRGF0ZVRpbWU6OnBhcnNlRGF0
ZVRpbWVMb2NhbCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SVNPRGF0ZVRpbWU6OnBhcnNl
RGF0ZVRpbWUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OklTT0RhdGVUaW1lOjp0b3RhbE1p
bGxpc2Vjb25kRm9yVGltZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SVNPRGF0ZVRpbWU6
OnRvdGFsTWlsbGlzZWNvbmQpOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0lTT0RhdGVUaW1lLmg6
CisgICAgICAgIChXZWJDb3JlOjpJU09EYXRlVGltZTo6SVNPRGF0ZVRpbWUpOgorICAgICAgICAo
V2ViQ29yZTo6SVNPRGF0ZVRpbWU6OmludmFsaWRUb3RhbE1pbGxpc2Vjb25kKToKKyAgICAgICAg
KFdlYkNvcmU6OklTT0RhdGVUaW1lOjopOgorCiAyMDA5LTEyLTIxICBLd2FuZyBZdWwgU2VvICA8
c2t5dWxAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggYjNiOWI5Yy4uOGZhNjY0YSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTM3NiwxMCArMTM3NiwyMSBAQCB2b2lkIEhUTUxJ
bnB1dEVsZW1lbnQ6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgc2VuZENoYW5n
ZUV2ZW50KQogCiBkb3VibGUgSFRNTElucHV0RWxlbWVudDo6dmFsdWVBc0RhdGUoKSBjb25zdAog
ewotICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGltcGxlbWVudGF0aW9uIHRvIGNo
ZWNrIERhdGUgYmluZGluZy4KLSAgICBpZiAoaW5wdXRUeXBlKCkgPT0gTU9OVEgpCi0gICAgICAg
IHJldHVybiAwLjA7Ci0gICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVp
ZXRfTmFOKCk7CisgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgeworICAgIC8vIHZhbHVlQXNEYXRl
IGRvZXNuJ3Qgd29yayBmb3IgdGhlIERBVEVUSU1FTE9DQUwgdHlwZSBhY2NvcmRpbmcgdG8gdGhl
IHN0YW5kYXJkLgorICAgIGNhc2UgREFURToKKyAgICBjYXNlIERBVEVUSU1FOgorICAgIGNhc2Ug
TU9OVEg6CisgICAgY2FzZSBUSU1FOgorICAgIGNhc2UgV0VFSzogeworICAgICAgICBJU09EYXRl
VGltZSBkYXRlVGltZTsKKyAgICAgICAgaWYgKCFmb3JtU3RyaW5nVG9JU09EYXRlVGltZShpbnB1
dFR5cGUoKSwgdmFsdWUoKSwgJmRhdGVUaW1lKSkKKyAgICAgICAgICAgIHJldHVybiBJU09EYXRl
VGltZTo6aW52YWxpZFRvdGFsTWlsbGlzZWNvbmQoKTsKKyAgICAgICAgcmV0dXJuIGRhdGVUaW1l
LnRvdGFsTWlsbGlzZWNvbmQoKTsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu
IElTT0RhdGVUaW1lOjppbnZhbGlkVG90YWxNaWxsaXNlY29uZCgpOworICAgIH0KIH0KIAogdm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUgdmFsdWUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQpAQCAtMjEyOSw2ICsyMTQwLDggQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojpm
b3JtU3RyaW5nVG9Eb3VibGUoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSogb3V0KQogCiBib29s
IEhUTUxJbnB1dEVsZW1lbnQ6OmZvcm1TdHJpbmdUb0lTT0RhdGVUaW1lKElucHV0VHlwZSB0eXBl
LCBjb25zdCBTdHJpbmcmIGZvcm1TdHJpbmcsIElTT0RhdGVUaW1lKiBvdXQpCiB7CisgICAgaWYg
KGZvcm1TdHJpbmcuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgSVNPRGF0
ZVRpbWUgaWdub3JlZFJlc3VsdDsKICAgICBpZiAoIW91dCkKICAgICAgICAgb3V0ID0gJmlnbm9y
ZWRSZXN1bHQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSVNPRGF0ZVRpbWUuY3BwIGIvV2Vi
Q29yZS9odG1sL0lTT0RhdGVUaW1lLmNwcAppbmRleCA0YzI4YWMwLi42OWZiYTc3IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSVNPRGF0ZVRpbWUuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9JU09E
YXRlVGltZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2lu
Y2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CisjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjkzLDYgKzI5NCw3IEBAIGJvb2wgSVNPRGF0ZVRpbWU6
OnBhcnNlTW9udGgoY29uc3QgVUNoYXIqIHNyYywgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBz
dGFydCwKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIG1fbW9udGggPSBtb250aDsKICAgICBl
bmQgPSBpbmRleCArIDI7CisgICAgbV90eXBlID0gTW9udGg7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKQEAgLTMxNyw2ICszMTksNyBAQCBib29sIElTT0RhdGVUaW1lOjpwYXJzZURhdGUoY29uc3Qg
VUNoYXIqIHNyYywgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBzdGFydCwgdQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgbV9tb250aERheSA9IGRheTsKICAgICBlbmQgPSBpbmRleCArIDI7
CisgICAgbV90eXBlID0gRGF0ZTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMzQ1LDYgKzM0
OCw3IEBAIGJvb2wgSVNPRGF0ZVRpbWU6OnBhcnNlV2Vlayhjb25zdCBVQ2hhciogc3JjLCB1bnNp
Z25lZCBsZW5ndGgsIHVuc2lnbmVkIHN0YXJ0LCB1CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICBtX3dlZWsgPSB3ZWVrOwogICAgIGVuZCA9IGluZGV4ICsgMjsKKyAgICBtX3R5cGUgPSBXZWVr
OwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0zOTksNiArNDAzLDcgQEAgYm9vbCBJU09EYXRl
VGltZTo6cGFyc2VUaW1lKGNvbnN0IFVDaGFyKiBzcmMsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWdu
ZWQgc3RhcnQsIHUKICAgICBtX3NlY29uZCA9IHNlY29uZDsKICAgICBtX21pbGxpc2Vjb25kID0g
bWlsbGlzZWNvbmQ7CiAgICAgZW5kID0gaW5kZXg7CisgICAgbV90eXBlID0gVGltZTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNDEzLDcgKzQxOCwxMCBAQCBib29sIElTT0RhdGVUaW1lOjpw
YXJzZURhdGVUaW1lTG9jYWwoY29uc3QgVUNoYXIqIHNyYywgdW5zaWduZWQgbGVuZ3RoLCB1bnNp
Z25lZAogICAgIGlmIChzcmNbaW5kZXhdICE9ICdUJykKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICsraW5kZXg7Ci0gICAgcmV0dXJuIHBhcnNlVGltZShzcmMsIGxlbmd0aCwgaW5kZXgsIGVu
ZCk7CisgICAgaWYgKCFwYXJzZVRpbWUoc3JjLCBsZW5ndGgsIGluZGV4LCBlbmQpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgbV90eXBlID0gRGF0ZVRpbWVMb2NhbDsKKyAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogYm9vbCBJU09EYXRlVGltZTo6cGFyc2VEYXRlVGltZShjb25zdCBVQ2hhciog
c3JjLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCYgZW5kKQpAQCAt
NDI5LDcgKzQzNyw0MyBAQCBib29sIElTT0RhdGVUaW1lOjpwYXJzZURhdGVUaW1lKGNvbnN0IFVD
aGFyKiBzcmMsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgc3RhcgogICAgICsraW5kZXg7CiAg
ICAgaWYgKCFwYXJzZVRpbWUoc3JjLCBsZW5ndGgsIGluZGV4LCBpbmRleCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICByZXR1cm4gcGFyc2VUaW1lWm9uZShzcmMsIGxlbmd0aCwgaW5kZXgs
IGVuZCk7CisgICAgaWYgKCFwYXJzZVRpbWVab25lKHNyYywgbGVuZ3RoLCBpbmRleCwgZW5kKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIG1fdHlwZSA9IERhdGVUaW1lOworICAgIHJldHVy
biB0cnVlOworfQorCitkb3VibGUgSVNPRGF0ZVRpbWU6OnRvdGFsTWlsbGlzZWNvbmRGb3JUaW1l
KCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV90eXBlID09IFRpbWUgfHwgbV90eXBlID09IERhdGVU
aW1lKTsKKyAgICByZXR1cm4gKChtX2hvdXIgKiBtaW51dGVzUGVySG91ciArIG1fbWludXRlKSAq
IHNlY29uZHNQZXJNaW51dGUgKyBtX3NlY29uZCkgKiBtc1BlclNlY29uZCArIG1fbWlsbGlzZWNv
bmQ7Cit9CisKK2RvdWJsZSBJU09EYXRlVGltZTo6dG90YWxNaWxsaXNlY29uZCgpIGNvbnN0Cit7
CisgICAgc3dpdGNoIChtX3R5cGUpIHsKKyAgICBjYXNlIERhdGU6CisgICAgICAgIHJldHVybiBk
YXRlVG9EYXlzRnJvbTE5NzAobV95ZWFyLCBtX21vbnRoLCBtX21vbnRoRGF5KSAqIG1zUGVyRGF5
OworICAgIGNhc2UgRGF0ZVRpbWU6CisgICAgY2FzZSBEYXRlVGltZUxvY2FsOgorICAgICAgICBy
ZXR1cm4gZGF0ZVRvRGF5c0Zyb20xOTcwKG1feWVhciwgbV9tb250aCwgbV9tb250aERheSkgKiBt
c1BlckRheSArIHRvdGFsTWlsbGlzZWNvbmRGb3JUaW1lKCk7CisgICAgY2FzZSBNb250aDoKKyAg
ICAgICAgcmV0dXJuIGRhdGVUb0RheXNGcm9tMTk3MChtX3llYXIsIG1fbW9udGgsIDEpICogbXNQ
ZXJEYXk7CisgICAgY2FzZSBUaW1lOgorICAgICAgICByZXR1cm4gdG90YWxNaWxsaXNlY29uZEZv
clRpbWUoKTsKKyAgICBjYXNlIFdlZWs6IHsKKyAgICAgICAgLy8gT2Zmc2V0IGZyb20gSmFudWFy
eSAxc3QgdG8gTW9uZGF5IG9mIHRoZSBJU08gODYwMSdzIGZpcnN0IHdlZWsuCisgICAgICAgIC8v
ICAgZXguIElmIEphbnVhcnkgMXN0IGlzIEZyaWRheSwgc3VjaCBNb25kYXkgaXMgMyBkYXlzIGxh
dGVyLgorICAgICAgICBpbnQgb2Zmc2V0VG8xc3RXZWVrU3RhcnQgPSAxIC0gZGF5T2ZXZWVrKG1f
eWVhciwgMCwgMSk7CisgICAgICAgIGlmIChvZmZzZXRUbzFzdFdlZWtTdGFydCA8PSAtNCkKKyAg
ICAgICAgICAgIG9mZnNldFRvMXN0V2Vla1N0YXJ0ICs9IDc7CisgICAgICAgIHJldHVybiAoZGF0
ZVRvRGF5c0Zyb20xOTcwKG1feWVhciwgMCwgMSkgKyBvZmZzZXRUbzFzdFdlZWtTdGFydCArICht
X3dlZWsgLSAxKSAqIDcpICogbXNQZXJEYXk7CisgICAgfQorICAgIGNhc2UgSW52YWxpZDoKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biBpbnZhbGlkVG90YWxNaWxsaXNlY29uZCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSVNPRGF0ZVRpbWUuaCBiL1dlYkNvcmUvaHRtbC9J
U09EYXRlVGltZS5oCmluZGV4IGVlNGNmYjkuLjMzYTgxMWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9JU09EYXRlVGltZS5oCisrKyBiL1dlYkNvcmUvaHRtbC9JU09EYXRlVGltZS5oCkBAIC01
Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX21vbnRoKDApCiAgICAgICAgICwgbV95
ZWFyKDApCiAgICAgICAgICwgbV93ZWVrKDApCisgICAgICAgICwgbV90eXBlKEludmFsaWQpCiAg
ICAgewogICAgIH0KIApAQCAtODYsNiArODcsMTIgQEAgcHVibGljOgogICAgIC8vIFNldHMgeWVh
ciwgbW9udGgsIG1vbnRoRGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCBhbmQgbWlsbGlzZWNvbmQs
IGFuZCBhZGp1c3RzIHRpbWV6b25lLgogICAgIGJvb2wgcGFyc2VEYXRlVGltZShjb25zdCBVQ2hh
ciogc3JjLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCYgZW5kKTsK
IAorICAgIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgZnJvbSAxOTcwLTAx
LTAxIDAwOjAwOjAwIFVUQywgVU5JWAorICAgIC8vIGVwb2NoIHRpbWUuIEZvciBhbiBJU09EYXRl
VGltZSBpbml0aWFsaXplZCB3aXRoIHBhcnNlRGF0ZVRpbWVMb2NhbCgpLAorICAgIC8vIHRvdGFs
TWlsbGlzZWNvbmQoKSByZXR1cm5zIGEgdmFsdWUgZm9yIFVUQyB0aW1lem9uZS4KKyAgICBkb3Vi
bGUgdG90YWxNaWxsaXNlY29uZCgpIGNvbnN0OworICAgIHN0YXRpYyBpbmxpbmUgZG91YmxlIGlu
dmFsaWRUb3RhbE1pbGxpc2Vjb25kKCkgeyByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjpxdWlldF9OYU4oKTsgfQorCiBwcml2YXRlOgogICAgIC8vIFJldHVybnMgdGhlIG1heGlt
dW0gd2VlayBudW1iZXIgaW4gdGhpcyBJU09EYXRlVGltZSdzIHllYXIuCiAgICAgLy8gVGhlIHJl
c3VsdCBpcyBlaXRoZXIgb2YgNTIgYW5kIDUzLgpAQCAtOTQsNiArMTAxLDggQEAgcHJpdmF0ZToK
ICAgICBib29sIGFkZERheShpbnQpOwogICAgIGJvb2wgYWRkTWludXRlKGludCk7CiAgICAgYm9v
bCBwYXJzZVRpbWVab25lKGNvbnN0IFVDaGFyKiBzcmMsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWdu
ZWQgc3RhcnQsIHVuc2lnbmVkJiBlbmQpOworICAgIC8vIEhlbHBlciBmb3IgdG90YWxNaWxsaXNl
Y29uZCgpLgorICAgIGRvdWJsZSB0b3RhbE1pbGxpc2Vjb25kRm9yVGltZSgpIGNvbnN0OwogCiAg
ICAgLy8gbV93ZWVrRGF5IHZhbHVlcwogICAgIGVudW0gewpAQCAtMTE0LDYgKzEyMywxNyBAQCBw
cml2YXRlOgogICAgIGludCBtX21vbnRoOyAgLy8gMDpKYW51YXJ5IC0gMTE6RGVjZW1iZXIKICAg
ICBpbnQgbV95ZWFyOyAgLy8gIDE1ODIgLQogICAgIGludCBtX3dlZWs7ICAvLyAxIC0gNTMKKwor
ICAgIGVudW0gRGF0ZVRpbWVUeXBlIHsKKyAgICAgICAgSW52YWxpZCwKKyAgICAgICAgRGF0ZSwK
KyAgICAgICAgRGF0ZVRpbWUsCisgICAgICAgIERhdGVUaW1lTG9jYWwsCisgICAgICAgIE1vbnRo
LAorICAgICAgICBUaW1lLAorICAgICAgICBXZWVrLAorICAgIH07CisgICAgRGF0ZVRpbWVUeXBl
IG1fdHlwZTsKIH07CiAKIAotLSAKMS42LjMuMwoK
</data>
<flag name="review"
          id="27423"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>