<?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>22550</bug_id>
          
          <creation_ts>2008-11-28 19:22:09 -0800</creation_ts>
          <short_desc>Add WML &lt;timer&gt; element support</short_desc>
          <delta_ts>2008-11-28 20:00:38 -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>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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>20393</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>100662</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-28 19:22:09 -0800</bug_when>
    <thetext>Add WML &lt;timer&gt; element support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100663</commentid>
    <comment_count>1</comment_count>
      <attachid>25581</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-28 19:32:17 -0800</bug_when>
    <thetext>Created attachment 25581
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100664</commentid>
    <comment_count>2</comment_count>
      <attachid>25582</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-28 19:32:38 -0800</bug_when>
    <thetext>Created attachment 25582
Layout test results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100665</commentid>
    <comment_count>3</comment_count>
      <attachid>25581</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-28 19:43:37 -0800</bug_when>
    <thetext>Comment on attachment 25581
Initial patch

The comment

// The value of timeout must be a positive integral number, or ignore it

would probably be more clear as

// If the value of timeout is not a positive integer, ignore it

In WMLTimerElement::insertedIntoDocument(), you have both

     ASSERT(parent);

and

    if (!parent || !parent-&gt;isWMLElement())

You should decide if parent should ever be null and make a decision accordingly. 

+    if (interval &lt;= 0)
+        interval = m_value.toInt();
+
+    if (interval &gt; 0)
+        m_timer.startOneShot(interval / 10.0f);

Can&apos;t the second conditional be an else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100666</commentid>
    <comment_count>4</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-28 19:44:02 -0800</bug_when>
    <thetext>Oops, I forgot to say: if you address those comments, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100667</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-28 19:53:40 -0800</bug_when>
    <thetext>&gt; 
&gt; // If the value of timeout is not a positive integer, ignore it
Fixed.

&gt; 
&gt; In WMLTimerElement::insertedIntoDocument(), you have both
&gt; 
&gt;      ASSERT(parent);
&gt; 
&gt; and
&gt; 
&gt;     if (!parent || !parent-&gt;isWMLElement())
&gt; 
&gt; You should decide if parent should ever be null and make a decision
&gt; accordingly. 
Yeah, Holger also noted this while reviewing the &lt;do&gt; patch. I&apos;ll come up with a follow-up patch fixing these, as there are 7 other places which use the same piece of code.

&gt; 
&gt; +    if (interval &lt;= 0)
&gt; +        interval = m_value.toInt();
&gt; +
&gt; +    if (interval &gt; 0)
&gt; +        m_timer.startOneShot(interval / 10.0f);
&gt; 
&gt; Can&apos;t the second conditional be an else?
The interval may change inbetween?

Thanks for the first review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100668</commentid>
    <comment_count>6</comment_count>
      <attachid>25583</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-28 19:55:40 -0800</bug_when>
    <thetext>Created attachment 25583
Updated layout test results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100669</commentid>
    <comment_count>7</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-28 19:57:15 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; In WMLTimerElement::insertedIntoDocument(), you have both
&gt; &gt; 
&gt; &gt;      ASSERT(parent);
&gt; &gt; 
&gt; &gt; and
&gt; &gt; 
&gt; &gt;     if (!parent || !parent-&gt;isWMLElement())
&gt; &gt; 
&gt; &gt; You should decide if parent should ever be null and make a decision
&gt; &gt; accordingly. 
&gt; Yeah, Holger also noted this while reviewing the &lt;do&gt; patch. I&apos;ll come up with
&gt; a follow-up patch fixing these, as there are 7 other places which use the same
&gt; piece of code.

If it occurs elsewhere, a followup patch is okay. Be sure to do it soon, though.

&gt; &gt; +    if (interval &lt;= 0)
&gt; &gt; +        interval = m_value.toInt();
&gt; &gt; +
&gt; &gt; +    if (interval &gt; 0)
&gt; &gt; +        m_timer.startOneShot(interval / 10.0f);
&gt; &gt; 
&gt; &gt; Can&apos;t the second conditional be an else?
&gt; The interval may change inbetween?

Wow, I&apos;m stupid. Sorry about that. ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100670</commentid>
    <comment_count>8</comment_count>
      <attachid>25584</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-28 19:57:23 -0800</bug_when>
    <thetext>Created attachment 25584
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100671</commentid>
    <comment_count>9</comment_count>
      <attachid>25584</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-28 19:58:22 -0800</bug_when>
    <thetext>Comment on attachment 25584
Updated patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100672</commentid>
    <comment_count>10</comment_count>
      <attachid>25583</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-28 19:58:32 -0800</bug_when>
    <thetext>Comment on attachment 25583
Updated layout test results

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100673</commentid>
    <comment_count>11</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-28 20:00:38 -0800</bug_when>
    <thetext>Landed in r38838.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25581</attachid>
            <date>2008-11-28 19:32:17 -0800</date>
            <delta_ts>2008-11-28 19:57:23 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>AddTimerElement.diff</filename>
            <type>text/plain</type>
            <size>15572</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM4ODM3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDgtMTEt
MjggIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4
ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU1MAorCisgICAg
ICAgIEFkZCA8dGltZXI+IGVsZW1lbnQgc3VwcG9ydC4gSXQgcHJvdmlkZXMgYSB3YXkgdG8gZXhl
Y3V0ZSBhIHRhc2sgd2l0aCBhIGRlbGF5LgorICAgICAgICBUaGUgdXNlciBpcyBub3RpZmllZCBi
eSBmaXJpbmcgdGhlIHRhc2sgYXNzb2NpYXRlZCB3aXRoIHRoZSA8Y2FyZD4ncyBvbnRpbWVyIGF0
dHJpYnV0ZS4KKyAgICAgICAgT25seSBvbmUgdGltZXIgZWxlbWVudCBpcyBhbGxvd2VkIHBlciA8
Y2FyZD4gKGZpeCB3cm9uZyBlcnJvciBtZXNzYWdlIGluIHJlcG9ydFdNTEVycm9yKQorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdtbC9X
TUxDYXJkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXTUxDYXJkRWxlbWVudDo6V01M
Q2FyZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6V01MQ2FyZEVsZW1lbnQ6OnNldEludHJp
bnNpY0V2ZW50VGltZXIpOgorICAgICAgICAqIHdtbC9XTUxDYXJkRWxlbWVudC5oOgorICAgICAg
ICAqIHdtbC9XTUxFcnJvckhhbmRsaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9ydFdN
TEVycm9yKToKKyAgICAgICAgKiB3bWwvV01MUGFnZVN0YXRlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpXTUxQYWdlU3RhdGU6OmdldFZhcmlhYmxlKToKKyAgICAgICAgKiB3bWwvV01MVGFnTmFtZXMu
aW46CisgICAgICAgICogd21sL1dNTFRpbWVyRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6V01MVGltZXJFbGVtZW50OjpXTUxUaW1lckVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6V01MVGltZXJFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXTUxUaW1lckVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OldNTFRpbWVyRWxlbWVudDo6dGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpXTUxUaW1lckVsZW1lbnQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OldNTFRpbWVyRWxl
bWVudDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxUaW1lckVsZW1lbnQ6OnN0b3JlSW50
ZXJ2YWxUb1BhZ2VTdGF0ZSk6CisgICAgICAgICogd21sL1dNTFRpbWVyRWxlbWVudC5oOiBBZGRl
ZC4KKwogMjAwOC0xMS0yOCAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bmlrb2xhcy56aW1tZXJtYW5u
QHRvcmNobW9iaWxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIu
CkluZGV4OiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAzODgzNykKKysrIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDUsNiAr
NDUsOCBAQAogCQkwODBBRUM4NDBFRDg3MDhCMDBERjRDQ0UgLyogV01MSW50cmluc2ljRXZlbnRI
YW5kbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
ODBBRUM4MDBFRDg3MDhCMDBERjRDQ0UgLyogV01MSW50cmluc2ljRXZlbnRIYW5kbGVyLmggKi87
IH07CiAJCTA4MThBRUUyMEVEQjg2QkMwMDY0N0I2NiAvKiBXTUxFdmVudEhhbmRsaW5nRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODE4
QUVFMDBFREI4NkJDMDA2NDdCNjYgLyogV01MRXZlbnRIYW5kbGluZ0VsZW1lbnQuY3BwICovOyB9
OwogCQkwODE4QUVFMzBFREI4NkJDMDA2NDdCNjYgLyogV01MRXZlbnRIYW5kbGluZ0VsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4MThBRUUx
MEVEQjg2QkMwMDY0N0I2NiAvKiBXTUxFdmVudEhhbmRsaW5nRWxlbWVudC5oICovOyB9OworCQkw
ODFEODEzMTBFRTBFNzREMDBENzM2ODkgLyogV01MVGltZXJFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4MUQ4MTJGMEVFMEU3NEQwMEQ3
MzY4OSAvKiBXTUxUaW1lckVsZW1lbnQuY3BwICovOyB9OworCQkwODFEODEzMjBFRTBFNzREMDBE
NzM2ODkgLyogV01MVGltZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwODFEODEzMDBFRTBFNzREMDBENzM2ODkgLyogV01MVGltZXJFbGVt
ZW50LmggKi87IH07CiAJCTA4MjAzQTlGMEVEOEMzNTMwMEI4QjYxQSAvKiBXTUxBY2Nlc3NFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4
MjAzQTlEMEVEOEMzNTMwMEI4QjYxQSAvKiBXTUxBY2Nlc3NFbGVtZW50LmNwcCAqLzsgfTsKIAkJ
MDgyMDNBQTAwRUQ4QzM1MzAwQjhCNjFBIC8qIFdNTEFjY2Vzc0VsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4MjAzQTlFMEVEOEMzNTMwMEI4
QjYxQSAvKiBXTUxBY2Nlc3NFbGVtZW50LmggKi87IH07CiAJCTA4Mzk0NzZDMEVDRTRCRDYwMDAy
NzM1MCAvKiBXTUxFbGVtZW50RmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwOEZCODRCMDBFQ0UzNzMzMDBEQzA2NEUgLyogV01MRWxlbWVu
dEZhY3RvcnkuY3BwICovOyB9OwpAQCAtNDgyMyw2ICs0ODI1LDggQEAKIAkJMDgwQUVDODAwRUQ4
NzA4QjAwREY0Q0NFIC8qIFdNTEludHJpbnNpY0V2ZW50SGFuZGxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXTUxJbnRyaW5zaWNFdmVudEhhbmRsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgxOEFFRTAwRURCODZCQzAwNjQ3QjY2IC8qIFdNTEV2ZW50
SGFuZGxpbmdFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdNTEV2ZW50SGFuZGxpbmdFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDgxOEFFRTEwRURCODZCQzAwNjQ3QjY2IC8qIFdNTEV2ZW50SGFuZGxpbmdFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdNTEV2ZW50SGFuZGxpbmdFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4MUQ4MTJGMEVFMEU3NEQwMEQ3MzY4
OSAvKiBXTUxUaW1lckVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV01MVGltZXJFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MDgxRDgxMzAwRUUwRTc0RDAwRDczNjg5IC8qIFdNTFRpbWVyRWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXTUxUaW1lckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDgyMDNBOUQwRUQ4QzM1MzAwQjhCNjFBIC8qIFdNTEFjY2Vzc0VsZW1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV01MQWNjZXNzRWxl
bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4MjAzQTlFMEVEOEMzNTMw
MEI4QjYxQSAvKiBXTUxBY2Nlc3NFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdNTEFjY2Vzc0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDg0REJBOUQwRUQzOUQzNTAwMzhDMjI2IC8qIFdNTFZhcmlhYmxlcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXTUxWYXJpYWJsZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtOTU1OCw2ICs5NTYyLDggQEAKIAkJCQk0QzZCOTk0MzBFNTJFMzcz
MDA0ODdCQjcgLyogV01MVGFnTmFtZXMuaW4gKi8sCiAJCQkJMDhDRDYxQjgwRUQzOTI5QzAwMkRE
RjUxIC8qIFdNTFRhc2tFbGVtZW50LmNwcCAqLywKIAkJCQkwOENENjFCOTBFRDM5MjlDMDAyRERG
NTEgLyogV01MVGFza0VsZW1lbnQuaCAqLywKKwkJCQkwODFEODEyRjBFRTBFNzREMDBENzM2ODkg
LyogV01MVGltZXJFbGVtZW50LmNwcCAqLywKKwkJCQkwODFEODEzMDBFRTBFNzREMDBENzM2ODkg
LyogV01MVGltZXJFbGVtZW50LmggKi8sCiAJCQkJMDg0REJBOUQwRUQzOUQzNTAwMzhDMjI2IC8q
IFdNTFZhcmlhYmxlcy5jcHAgKi8sCiAJCQkJMDg0REJBOUUwRUQzOUQzNjAwMzhDMjI2IC8qIFdN
TFZhcmlhYmxlcy5oICovLAogCQkJKTsKQEAgLTE2NDUyLDYgKzE2NDU4LDcgQEAKIAkJCQkwODY1
Q0NFNzBFRERGNTFCMDBERjlFQzMgLyogV01MTm9vcEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA4RTE5MjU0MEVERTBDM0EwMDg3Qjc4MCAvKiBXTUxFcnJvckhhbmRsaW5nLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwODA0QkY2RjBFRTA5QzNCMDAwNkMwMDAgLyogV01MRG9FbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwODFEODEzMjBFRTBFNzREMDBENzM2ODkgLyogV01MVGltZXJF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE4MzkwLDYgKzE4Mzk3LDcgQEAKIAkJCQkwODY1
Q0NFNjBFRERGNTFCMDBERjlFQzMgLyogV01MTm9vcEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMDhFMTkyNTMwRURFMEMzQTAwODdCNzgwIC8qIFdNTEVycm9ySGFuZGxpbmcuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMDgwNEJGNkUwRUUwOUMzQjAwMDZDMDAwIC8qIFdNTERvRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwODFEODEzMTBFRTBFNzREMDBENzM2ODkgLyogV01M
VGltZXJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogd21sL1dNTENhcmRFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSB3bWwvV01MQ2FyZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAzODgz
NykKKysrIHdtbC9XTUxDYXJkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJXTUxJbnRyaW5zaWNFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJX
TUxOYW1lcy5oIgogI2luY2x1ZGUgIldNTFBhZ2VTdGF0ZS5oIgorI2luY2x1ZGUgIldNTFRpbWVy
RWxlbWVudC5oIgogI2luY2x1ZGUgIldNTFZhcmlhYmxlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00Nyw2ICs0OCw3IEBAIFdNTENhcmRFbGVtZW50OjpXTUxDYXJkRWxlbWVudChjb25z
dCBRdWEKICAgICAsIG1faXNOZXdDb250ZXh0KGZhbHNlKQogICAgICwgbV9pc09yZGVyZWQoZmFs
c2UpCiAgICAgLCBtX2lzVmlzaWJsZShmYWxzZSkKKyAgICAsIG1fZXZlbnRUaW1lcigwKQogewog
fQogCkBAIC03MCw2ICs3MiwxOCBAQCB2b2lkIFdNTENhcmRFbGVtZW50OjpyZWdpc3RlckRvRWxl
bWVudChXCiAgICAgZG9FbGVtZW50LT5zZXRBY3RpdmUodHJ1ZSk7CiB9CiAKK3ZvaWQgV01MQ2Fy
ZEVsZW1lbnQ6OnNldEludHJpbnNpY0V2ZW50VGltZXIoV01MVGltZXJFbGVtZW50KiB0aW1lcikK
K3sKKyAgICAvLyBPbmx5IG9uZSB0aW1lciBpcyBhbGxvd2VkIGluIGEgY2FyZCAKKyAgICBpZiAo
bV9ldmVudFRpbWVyKSB7CisgICAgICAgIG1fZXZlbnRUaW1lciA9IDA7ICAgICAKKyAgICAgICAg
cmVwb3J0V01MRXJyb3IoZG9jdW1lbnQoKSwgV01MRXJyb3JNdWx0aXBsZVRpbWVyRWxlbWVudHMp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9ldmVudFRpbWVyID0gdGltZXI7Cit9
CisKIHZvaWQgV01MQ2FyZEVsZW1lbnQ6OmhhbmRsZUludHJpbnNpY0V2ZW50SWZOZWVkZWQoKQog
ewogICAgIFdNTFBhZ2VTdGF0ZSogcGFnZVN0YXRlID0gd21sUGFnZVN0YXRlRm9yRG9jdW1lbnQo
ZG9jdW1lbnQoKSk7CkluZGV4OiB3bWwvV01MQ2FyZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3
bWwvV01MQ2FyZEVsZW1lbnQuaAkocmV2aXNpb24gMzg4MzcpCisrKyB3bWwvV01MQ2FyZEVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBXTUxEb0VsZW1lbnQ7CitjbGFzcyBXTUxUaW1lckVsZW1lbnQ7CiAKIGNsYXNz
IFdNTENhcmRFbGVtZW50IDogcHVibGljIFdNTEV2ZW50SGFuZGxpbmdFbGVtZW50IHsKIHB1Ymxp
YzoKQEAgLTQwLDYgKzQxLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNPcmRlcmVkKCkgY29uc3Qg
eyByZXR1cm4gbV9pc09yZGVyZWQ7IH0KIAogICAgIHZvaWQgcmVnaXN0ZXJEb0VsZW1lbnQoV01M
RG9FbGVtZW50Kik7CisgICAgdm9pZCBzZXRJbnRyaW5zaWNFdmVudFRpbWVyKFdNTFRpbWVyRWxl
bWVudCopOwogICAgIHZvaWQgaGFuZGxlSW50cmluc2ljRXZlbnRJZk5lZWRlZCgpOwogCiAgICAg
dmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOwpAQCAt
NTgsNiArNjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc09yZGVyZWQ7CiAgICAgYm9vbCBt
X2lzVmlzaWJsZTsKIAorICAgIFdNTFRpbWVyRWxlbWVudCogbV9ldmVudFRpbWVyOwogICAgIFZl
Y3RvcjxXTUxEb0VsZW1lbnQqPiBtX2RvRWxlbWVudHM7CiB9OwogCkluZGV4OiB3bWwvV01MRXJy
b3JIYW5kbGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gd21sL1dNTEVycm9ySGFuZGxpbmcuY3BwCShy
ZXZpc2lvbiAzODgzNykKKysrIHdtbC9XTUxFcnJvckhhbmRsaW5nLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzYsNyArNzYsNyBAQCB2b2lkIHJlcG9ydFdNTEVycm9yKERvY3VtZW50KiBkb2MsIFdN
TEVyCiAgICAgICAgIGVycm9yTWVzc2FnZSA9ICJObyBjYXJkIGNvbnRhaW5lZCBpbiBkb2N1bWVu
dC4iOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdNTEVycm9yTXVsdGlwbGVUaW1lckVsZW1l
bnRzOgotICAgICAgICBlcnJvck1lc3NhZ2UgPSAiT25seSBvbmUgYWNjZXNzIGVsZW1lbnQgaXMg
YWxsb3dlZCBpbiBhIGNhcmQuIjsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gIk9ubHkgb25lIHRp
bWVyIGVsZW1lbnQgaXMgYWxsb3dlZCBpbiBhIGNhcmQuIjsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBXTUxFcnJvclVua25vd246IAogICAgIGRlZmF1bHQ6CkluZGV4OiB3bWwvV01MUGFnZVN0
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gd21sL1dNTFBhZ2VTdGF0ZS5oCShyZXZpc2lvbiAzODgzNykK
KysrIHdtbC9XTUxQYWdlU3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBw
dWJsaWM6CiAgICAgLy8gdmFyaWFibGVzIG9wZXJhdGlvbnMgCiAgICAgdm9pZCBzdG9yZVZhcmlh
YmxlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgeyBtX3ZhcmlhYmxl
cy5zZXQobmFtZSwgdmFsdWUpOyB9CiAgICAgdm9pZCBzdG9yZVZhcmlhYmxlcyhXTUxWYXJpYWJs
ZU1hcCYgdmFyaWFibGVzKSB7IG1fdmFyaWFibGVzID0gdmFyaWFibGVzOyB9Ci0gICAgU3RyaW5n
IGdldFZhcmliYWxlKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QgeyByZXR1cm4gbV92YXJpYWJs
ZXMuZ2V0KG5hbWUpOyB9CisgICAgU3RyaW5nIGdldFZhcmlhYmxlKGNvbnN0IFN0cmluZyYgbmFt
ZSkgY29uc3QgeyByZXR1cm4gbV92YXJpYWJsZXMuZ2V0KG5hbWUpOyB9CiAgICAgYm9vbCBoYXNW
YXJpYWJsZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhcmlhYmxlcy5zaXplKCk7IH0KIAogICAgIGlu
dCBoaXN0b3J5TGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9oaXN0b3J5TGVuZ3RoOyB9CkluZGV4
OiB3bWwvV01MVGFnTmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gd21sL1dNTFRhZ05hbWVzLmluCShy
ZXZpc2lvbiAzODgzNykKKysrIHdtbC9XTUxUYWdOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAt
MTUsNiArMTUsNyBAQCBwCiBwcmV2CiByZWZyZXNoCiBzZXR2YXIKK3RpbWVyCiAKICNpZiAwCiAj
IFRoZXNlIGVsZW1lbnRzIGRvbid0IG5lZWQgYSBjb3JyZXBvbnNwb25kaW5nIFdNTCpFbGVtZW50
IGNsYXNzLgpAQCAtMzAsNSArMzEsNCBAQCBzZXR2YXIKICMgRklYTUU6IEltcGxlbWVudCB0aGVz
ZSBlbGVtZW50cwogcG9zdGZpZWxkCiB0ZW1wbGF0ZQotdGltZXIKICNlbmRpZgpJbmRleDogd21s
L1dNTFRpbWVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gd21sL1dNTFRpbWVyRWxlbWVudC5j
cHAJKHJldmlzaW9uIDApCisrKyB3bWwvV01MVGltZXJFbGVtZW50LmNwcAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxNTEgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmls
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgICAgIGh0dHA6Ly93d3cu
dG9yY2htb2JpbGUuY29tLworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdN
TCkKKyNpbmNsdWRlICJXTUxUaW1lckVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgorI2luY2x1ZGUgIldNTENhcmRFbGVtZW50LmgiCisjaW5jbHVkZSAiV01MRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJXTUxFcnJvckhhbmRsaW5nLmgiCisjaW5jbHVkZSAiV01MTmFtZXMuaCIKKyNp
bmNsdWRlICJXTUxQYWdlU3RhdGUuaCIKKyNpbmNsdWRlICJXTUxWYXJpYWJsZXMuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgV01MTmFtZXM7CisKK1dNTFRpbWVy
RWxlbWVudDo6V01MVGltZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2MpCisgICAgOiBXTUxFbGVtZW50KHRhZ05hbWUsIGRvYykKKyAgICAsIG1fdGlt
ZXIodGhpcywgJldNTFRpbWVyRWxlbWVudDo6dGltZXJGaXJlZCkKK3sKK30KKwordm9pZCBXTUxU
aW1lckVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikK
K3sKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IEhUTUxOYW1lczo6bmFtZUF0dHIpIHsKKyAgICAg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSA9IGF0dHItPnZhbHVlKCk7CisgICAgICAgIGlm
ICghaXNWYWxpZFZhcmlhYmxlTmFtZSh2YWx1ZSwgdHJ1ZSkpIHsKKyAgICAgICAgICAgIHJlcG9y
dFdNTEVycm9yKGRvY3VtZW50KCksIFdNTEVycm9ySW52YWxpZFZhcmlhYmxlTmFtZSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBtX25hbWUgPSB2YWx1ZTsKKyAg
ICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBIVE1MTmFtZXM6OnZhbHVlQXR0cikKKyAgICAg
ICAgbV92YWx1ZSA9IHN1YnN0aXR1dGVWYXJpYWJsZVJlZmVyZW5jZXMoYXR0ci0+dmFsdWUoKSwg
ZG9jdW1lbnQoKSk7CisgICAgZWxzZQorICAgICAgICBXTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZShhdHRyKTsKK30KKwordm9pZCBXTUxUaW1lckVsZW1lbnQ6Omluc2VydGVkSW50b0Rv
Y3VtZW50KCkKK3sKKyAgICBXTUxFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpOworCisg
ICAgLy8gVGhlIHZhbHVlIG9mIHRpbWVvdXQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVncmFsIG51
bWJlciwgb3IgaWdub3JlIGl0CisgICAgaWYgKG1fdmFsdWUudG9JbnQoKSA8PSAwKQorICAgICAg
ICByZXR1cm47CisKKyAgICBOb2RlKiBwYXJlbnQgPSBwYXJlbnROb2RlKCk7CisgICAgQVNTRVJU
KHBhcmVudCk7CisKKyAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5pc1dNTEVsZW1lbnQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHBhcmVudC0+aGFzVGFnTmFtZShjYXJkVGFnKSkg
eworICAgICAgICBtX2NhcmQgPSBzdGF0aWNfY2FzdDxXTUxDYXJkRWxlbWVudCo+KHBhcmVudCk7
CisgICAgICAgIG1fY2FyZC0+c2V0SW50cmluc2ljRXZlbnRUaW1lcih0aGlzKTsKKyAgICB9Cit9
CisKK3ZvaWQgV01MVGltZXJFbGVtZW50Ojp0aW1lckZpcmVkKFRpbWVyPFdNTFRpbWVyRWxlbWVu
dD4qKQoreworICAgIGlmICghbV9jYXJkKQorICAgICAgICByZXR1cm47CisKKyAgICBXTUxQYWdl
U3RhdGUqIHBhZ2VTdGF0ZSA9IHdtbFBhZ2VTdGF0ZUZvckRvY3VtZW50KGRvY3VtZW50KCkpOwor
ICAgIGlmICghcGFnZVN0YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXaGVuIHRoZSB0
aW1lciBleHBpcmVzLCBzZXQgdGhlIG5hbWUgdmFyaWFsYmUgb2YgdGltZXIgdG8gJzAnCisgICAg
aWYgKCFtX25hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fdmFsdWUgPSAiMCI7CisgICAgICAg
IHBhZ2VTdGF0ZS0+c3RvcmVWYXJpYWJsZShtX25hbWUsIG1fdmFsdWUpOworICAgIH0KKworICAg
IFdNTEludHJpbnNpY0V2ZW50VHlwZSBldmVudFR5cGUgPSBXTUxJbnRyaW5zaWNFdmVudE9uVGlt
ZXI7CisgICAgV01MSW50cmluc2ljRXZlbnRIYW5kbGVyKiBldmVudEhhbmRsZXIgPSBtX2NhcmQt
PmV2ZW50SGFuZGxlcigpOworCisgICAgYm9vbCBoYXNJbnRyaW5zaWNFdmVudCA9IGZhbHNlOwor
ICAgIGlmIChldmVudEhhbmRsZXIgJiYgZXZlbnRIYW5kbGVyLT5oYXNJbnRyaW5zaWNFdmVudChl
dmVudFR5cGUpKQorICAgICAgICBoYXNJbnRyaW5zaWNFdmVudCA9IHRydWU7CisKKy8qIEZJWE1F
CisgICAgZWxzZSBpZiAobV9jYXJkLT50ZW1wbGF0ZUVsZW1lbnQoKSkgeworICAgICAgICBldmVu
dEhhbmRsZXIgPSBtX2NhcmQtPnRlbXBsYXRlRWxlbWVudCgpLT5ldmVudEhhbmRsZXIoKTsKKyAg
ICAgICAgaWYgKGV2ZW50SGFuZGxlciAmJiBldmVudEhhbmRsZXItPmhhc0ludHJpbnNpY0V2ZW50
KGV2ZW50VHlwZSkpCisgICAgICAgICAgICBoYXNJbnRyaW5zaWNFdmVudCA9IHRydWU7CisgICAg
fQorKi8KKworICAgIGlmIChoYXNJbnRyaW5zaWNFdmVudCkKKyAgICAgICAgZXZlbnRIYW5kbGVy
LT50cmlnZ2VySW50cmluc2ljRXZlbnQoZXZlbnRUeXBlKTsKK30KKwordm9pZCBXTUxUaW1lckVs
ZW1lbnQ6OnN0YXJ0KGludCBpbnRlcnZhbCkKK3sKKyAgICBpZiAoIW1fY2FyZCB8fCBtX3RpbWVy
LmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChpbnRlcnZhbCA8PSAwICYm
ICFtX25hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChXTUxQYWdlU3RhdGUqIHBhZ2VTdGF0
ZSA9IHdtbFBhZ2VTdGF0ZUZvckRvY3VtZW50KGRvY3VtZW50KCkpKQorICAgICAgICAgICAgaW50
ZXJ2YWwgPSBwYWdlU3RhdGUtPmdldFZhcmlhYmxlKG1fbmFtZSkudG9JbnQoKTsKKyAgICB9CisK
KyAgICBpZiAoaW50ZXJ2YWwgPD0gMCkKKyAgICAgICAgaW50ZXJ2YWwgPSBtX3ZhbHVlLnRvSW50
KCk7CisKKyAgICBpZiAoaW50ZXJ2YWwgPiAwKQorICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hv
dChpbnRlcnZhbCAvIDEwLjBmKTsKK30KKwordm9pZCBXTUxUaW1lckVsZW1lbnQ6OnN0b3AoKQor
eworICAgIGlmIChtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fdGltZXIuc3RvcCgpOwor
fQorCit2b2lkIFdNTFRpbWVyRWxlbWVudDo6c3RvcmVJbnRlcnZhbFRvUGFnZVN0YXRlKCkKK3sK
KyAgICBpZiAoIW1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW50
IGludGVydmFsID0gc3RhdGljX2Nhc3Q8aW50PihtX3RpbWVyLm5leHRGaXJlSW50ZXJ2YWwoKSkg
KiAxMDsKKworICAgIGlmIChXTUxQYWdlU3RhdGUqIHBhZ2VTdGF0ZSA9IHdtbFBhZ2VTdGF0ZUZv
ckRvY3VtZW50KGRvY3VtZW50KCkpKQorICAgICAgICBwYWdlU3RhdGUtPnN0b3JlVmFyaWFibGUo
bV9uYW1lLCBTdHJpbmc6Om51bWJlcihpbnRlcnZhbCkpOworfQorCit9CisKKyNlbmRpZgpJbmRl
eDogd21sL1dNTFRpbWVyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHdtbC9XTUxUaW1lckVsZW1l
bnQuaAkocmV2aXNpb24gMCkKKysrIHdtbC9XTUxUaW1lckVsZW1lbnQuaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw1NiBAQAorLyoqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICAgICAgICAgICAgICAgaHR0cDovL3d3dy50
b3JjaG1vYmlsZS5jb20vCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFdNTFRpbWVyRWxlbWVudF9oCisjZGVmaW5lIFdN
TFRpbWVyRWxlbWVudF9oCisKKyNpZiBFTkFCTEUoV01MKQorI2luY2x1ZGUgIlRpbWVyLmgiCisj
aW5jbHVkZSAiV01MRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdN
TENhcmRFbGVtZW50OworCitjbGFzcyBXTUxUaW1lckVsZW1lbnQgOiBwdWJsaWMgV01MRWxlbWVu
dCB7CitwdWJsaWM6CisgICAgV01MVGltZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1
dGUoTWFwcGVkQXR0cmlidXRlKik7CisgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3Vt
ZW50KCk7CisKKyAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8V01MVGltZXJFbGVtZW50PiopOwor
CisgICAgdm9pZCBzdGFydChpbnQgaW50ZXJ2YWwgPSAtMSk7CisgICAgdm9pZCBzdG9wKCk7Cisg
ICAgdm9pZCBzdG9yZUludGVydmFsVG9QYWdlU3RhdGUoKTsKKworcHJpdmF0ZToKKyAgICBXTUxD
YXJkRWxlbWVudCogbV9jYXJkOworICAgIFN0cmluZyBtX25hbWU7CisgICAgU3RyaW5nIG1fdmFs
dWU7CisgICAgVGltZXI8V01MVGltZXJFbGVtZW50PiBtX3RpbWVyOworfTsKKworfQorCisjZW5k
aWYKKyNlbmRpZgo=
</data>
<flag name="review"
          id="11908"
          type_id="1"
          status="+"
          setter="zwarich"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25582</attachid>
            <date>2008-11-28 19:32:38 -0800</date>
            <delta_ts>2008-11-28 19:55:40 -0800</delta_ts>
            <desc>Layout test results</desc>
            <filename>AddTimerElementTestResults.diff</filename>
            <type>text/plain</type>
            <size>53</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">PyAgICAgIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3dtbC9pbnRlcmFjdGl2ZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25583</attachid>
            <date>2008-11-28 19:55:40 -0800</date>
            <delta_ts>2008-11-28 19:58:32 -0800</delta_ts>
            <desc>Updated layout test results</desc>
            <filename>AddTimerElementTestResults.diff</filename>
            <type>text/plain</type>
            <size>3817</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM4ODM3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsMTUgQEAKIDIwMDgtMTEt
MjggIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5j
b20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBk
YXRlIFdNTCBsYXlvdXQgdGVzdCByZXN1bHRzIGFmdGVyIGFkZGluZyA8dGltZXI+IGVsZW1lbnQg
c3VwcG9ydC4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3dtbC9lcnItbXVsdGktdGlt
ZXItZXhwZWN0ZWQuY2hlY2tzdW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvd21sL2Vy
ci1tdWx0aS10aW1lci1leHBlY3RlZC5wbmc6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qv
d21sL2Vyci1tdWx0aS10aW1lci1leHBlY3RlZC50eHQ6CisKKzIwMDgtMTEtMjggIE5pa29sYXMg
WmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5jb20+CisKICAgICAg
ICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgogCiAgICAgICAgIFVwZGF0ZSBXTUwgbGF5
b3V0IHRlc3QgcmVzdWx0cyBhZnRlciBhZGRpbmcgPGRvPiBlbGVtZW50IHN1cHBvcnQuCkluZGV4
OiBwbGF0Zm9ybS9tYWMvZmFzdC93bWwvZXJyLW11bHRpLXRpbWVyLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBwbGF0Zm9ybS9tYWMvZmFzdC93bWwvZXJyLW11bHRpLXRpbWVyLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMzg4MzcpCisrKyBwbGF0Zm9ybS9tYWMvZmFzdC93bWwvZXJyLW11bHRp
LXRpbWVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNiArMSwyNSBAQAogbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg3NgotICBSZW5kZXJCbG9jayB7d21sfSBhdCAo
MCwwKSBzaXplIDgwMHg3NgotICAgIFJlbmRlckJsb2NrIHtjYXJkfSBhdCAoOCwxNikgc2l6ZSA3
ODR4NTIKLSAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNzg0eDAK
LSAgICAgICAgUmVuZGVySW5saW5lIHt0aW1lcn0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgIFJlbmRlcklubGlu
ZSB7dGltZXJ9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDB4MAotICAgICAgUmVuZGVyQmxvY2sge3B9IGF0ICgwLDApIHNpemUgNzg0
eDE4Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4MXgxOAotICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4MTogIlRlc3QgZm9yIGVycm9yIG9mIG1l
dGEgbXVsdGktdGltZXIgaW4gb25lIGNhcmQiCi0gICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3Vz
KSBhdCAoMCwzNCkgc2l6ZSA3ODR4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNTg1eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTg1OiAi
WW91IHNob3VsZCBOT1Qgc2VlIHRoaXMgdGV4dCwgYmVjYXVzZSBvZiB0aGUgZXJyb3IgdGhhdCBt
b3JlIHRoYW4gb25lIHRpbWVyIGV4aXN0IGluIG9uZSBjYXJkIgorbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4MTY2CisgIFJlbmRlckJsb2NrIHtodG1sfSBhdCAoMCwwKSBzaXplIDgwMHgxNjYKKyAg
ICBSZW5kZXJCb2R5IHtib2R5fSBhdCAoOCwxNikgc2l6ZSA3ODR4MTM0CisgICAgICBSZW5kZXJC
bG9jayB7cGFyc2VyZXJyb3J9IGF0ICgxNiwwKSBzaXplIDc1MngxMzQgW2JnY29sb3I9I0ZGRERE
RF0gW2JvcmRlcjogKDJweCBzb2xpZCAjQ0M3Nzc3KV0KKyAgICAgICAgUmVuZGVyQmxvY2sge2gz
fSBhdCAoMTgsMjApIHNpemUgNzE2eDIyCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMzI0eDIyCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAz
MjQ6ICJUaGlzIHBhZ2UgY29udGFpbnMgdGhlIGZvbGxvd2luZyBlcnJvcnM6IgorICAgICAgICBS
ZW5kZXJCbG9jayB7ZGl2fSBhdCAoMTgsNjApIHNpemUgNzE2eDE0CisgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTE4eDE0CisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA1MTg6ICJlcnJvciBvbiBsaW5lIDYgYXQgY29sdW1uIDY1OiBPbmx5IG9u
ZSB0aW1lciBlbGVtZW50IGlzIGFsbG93ZWQgaW4gYSBjYXJkLiIKKyAgICAgICAgUmVuZGVyQmxv
Y2sge2gzfSBhdCAoMTgsOTIpIHNpemUgNzE2eDIyCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgNDI5eDIyCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA0Mjk6ICJCZWxvdyBpcyBhIHJlbmRlcmluZyBvZiB0aGUgcGFnZSB1cCB0byB0aGUgZmly
c3QgZXJyb3IuIgorICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMTUwKSBzaXpl
IDc4NHgwCisgICAgICAgIFJlbmRlcklubGluZSB7d21sfSBhdCAoMCwwKSBzaXplIDB4MAorICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVy
QmxvY2sgKGFub255bW91cykgYXQgKDAsMTUwKSBzaXplIDc4NHgwCisgICAgICAgIFJlbmRlckJs
b2NrIHtjYXJkfSBhdCAoOCwwKSBzaXplIDc2OHgwCisgICAgICAgICAgUmVuZGVySW5saW5lIHt0
aW1lcn0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSAweDAKKyAgICAgICAgICBSZW5kZXJJbmxpbmUge3RpbWVyfSBhdCAoMCwwKSBz
aXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMTUwKSBzaXplIDc4
NHgwCisgICAgICAgIFJlbmRlcklubGluZSB7d21sfSBhdCAoMCwwKSBzaXplIDB4MApJbmRleDog
cGxhdGZvcm0vbWFjL2Zhc3Qvd21sL2Vyci1tdWx0aS10aW1lci1leHBlY3RlZC5wbmcKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1p
bWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQpJbmRleDogcGxhdGZvcm0vbWFjL2Zh
c3Qvd21sL2Vyci1tdWx0aS10aW1lci1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBw
bGF0Zm9ybS9tYWMvZmFzdC93bWwvZXJyLW11bHRpLXRpbWVyLWV4cGVjdGVkLmNoZWNrc3VtCShy
ZXZpc2lvbiAzODgzNykKKysrIHBsYXRmb3JtL21hYy9mYXN0L3dtbC9lcnItbXVsdGktdGltZXIt
ZXhwZWN0ZWQuY2hlY2tzdW0JKHdvcmtpbmcgY29weSkKQEAgLTEgKzEgQEAKLWVjMzI1ZTEyNWM3
ZDE0NzMxOGJjN2Q1MTk0NDA5MTRjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorMGI2Mzdj
YWY3YWMzYTdhZjkzZmUwZTc4N2EwOTZlZmEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="review"
          id="11910"
          type_id="1"
          status="+"
          setter="zwarich"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25584</attachid>
            <date>2008-11-28 19:57:23 -0800</date>
            <delta_ts>2008-11-28 19:58:22 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>AddTimerElement.diff</filename>
            <type>text/plain</type>
            <size>19287</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM4ODM3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDAgQEAKKzIwMDgtMTEt
MjggIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4
ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU1MAorCisgICAg
ICAgIEFkZCA8dGltZXI+IGVsZW1lbnQgc3VwcG9ydC4gSXQgcHJvdmlkZXMgYSB3YXkgdG8gZXhl
Y3V0ZSBhIHRhc2sgd2l0aCBhIGRlbGF5LgorICAgICAgICBUaGUgdXNlciBpcyBub3RpZmllZCBi
eSBmaXJpbmcgdGhlIHRhc2sgYXNzb2NpYXRlZCB3aXRoIHRoZSA8Y2FyZD4ncyBvbnRpbWVyIGF0
dHJpYnV0ZS4KKyAgICAgICAgT25seSBvbmUgdGltZXIgZWxlbWVudCBpcyBhbGxvd2VkIHBlciA8
Y2FyZD4gKGZpeCB3cm9uZyBlcnJvciBtZXNzYWdlIGluIHJlcG9ydFdNTEVycm9yKQorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdtbC9X
TUxDYXJkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXTUxDYXJkRWxlbWVudDo6V01M
Q2FyZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6V01MQ2FyZEVsZW1lbnQ6OnNldEludHJp
bnNpY0V2ZW50VGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6V01MQ2FyZEVsZW1lbnQ6OmhhbmRs
ZUludHJpbnNpY0V2ZW50SWZOZWVkZWQpOgorICAgICAgICAqIHdtbC9XTUxDYXJkRWxlbWVudC5o
OgorICAgICAgICAqIHdtbC9XTUxEb0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V01M
RG9FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiB3bWwvV01MRXJyb3JI
YW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBvcnRXTUxFcnJvcik6CisgICAgICAg
ICogd21sL1dNTFBhZ2VTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6V01MUGFnZVN0YXRlOjpn
ZXRWYXJpYWJsZSk6CisgICAgICAgICogd21sL1dNTFByZXZFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldNTFByZXZFbGVtZW50OjpleGVjdXRlVGFzayk6CisgICAgICAgICogd21sL1dN
TFJlZnJlc2hFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldNTFJlZnJlc2hFbGVtZW50
OjpleGVjdXRlVGFzayk6CisgICAgICAgICogd21sL1dNTFRhZ05hbWVzLmluOgorICAgICAgICAq
IHdtbC9XTUxUaW1lckVsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldNTFRp
bWVyRWxlbWVudDo6V01MVGltZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldNTFRpbWVy
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6V01MVGlt
ZXJFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxU
aW1lckVsZW1lbnQ6OnRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6V01MVGltZXJFbGVt
ZW50OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxUaW1lckVsZW1lbnQ6OnN0b3ApOgor
ICAgICAgICAoV2ViQ29yZTo6V01MVGltZXJFbGVtZW50OjpzdG9yZUludGVydmFsVG9QYWdlU3Rh
dGUpOgorICAgICAgICAqIHdtbC9XTUxUaW1lckVsZW1lbnQuaDogQWRkZWQuCisKIDIwMDgtMTEt
MjggIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgpJbmRleDogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMzg4MzcpCisrKyBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDggQEAKIAkJMDgw
QUVDODQwRUQ4NzA4QjAwREY0Q0NFIC8qIFdNTEludHJpbnNpY0V2ZW50SGFuZGxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgwQUVDODAwRUQ4NzA4
QjAwREY0Q0NFIC8qIFdNTEludHJpbnNpY0V2ZW50SGFuZGxlci5oICovOyB9OwogCQkwODE4QUVF
MjBFREI4NkJDMDA2NDdCNjYgLyogV01MRXZlbnRIYW5kbGluZ0VsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgxOEFFRTAwRURCODZCQzAw
NjQ3QjY2IC8qIFdNTEV2ZW50SGFuZGxpbmdFbGVtZW50LmNwcCAqLzsgfTsKIAkJMDgxOEFFRTMw
RURCODZCQzAwNjQ3QjY2IC8qIFdNTEV2ZW50SGFuZGxpbmdFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODE4QUVFMTBFREI4NkJDMDA2NDdC
NjYgLyogV01MRXZlbnRIYW5kbGluZ0VsZW1lbnQuaCAqLzsgfTsKKwkJMDgxRDgxMzEwRUUwRTc0
RDAwRDczNjg5IC8qIFdNTFRpbWVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODFEODEyRjBFRTBFNzREMDBENzM2ODkgLyogV01MVGlt
ZXJFbGVtZW50LmNwcCAqLzsgfTsKKwkJMDgxRDgxMzIwRUUwRTc0RDAwRDczNjg5IC8qIFdNTFRp
bWVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDgxRDgxMzAwRUUwRTc0RDAwRDczNjg5IC8qIFdNTFRpbWVyRWxlbWVudC5oICovOyB9Owog
CQkwODIwM0E5RjBFRDhDMzUzMDBCOEI2MUEgLyogV01MQWNjZXNzRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODIwM0E5RDBFRDhDMzUz
MDBCOEI2MUEgLyogV01MQWNjZXNzRWxlbWVudC5jcHAgKi87IH07CiAJCTA4MjAzQUEwMEVEOEMz
NTMwMEI4QjYxQSAvKiBXTUxBY2Nlc3NFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODIwM0E5RTBFRDhDMzUzMDBCOEI2MUEgLyogV01MQWNj
ZXNzRWxlbWVudC5oICovOyB9OwogCQkwODM5NDc2QzBFQ0U0QkQ2MDAwMjczNTAgLyogV01MRWxl
bWVudEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDhGQjg0QjAwRUNFMzczMzAwREMwNjRFIC8qIFdNTEVsZW1lbnRGYWN0b3J5LmNwcCAq
LzsgfTsKQEAgLTQ4MjMsNiArNDgyNSw4IEBACiAJCTA4MEFFQzgwMEVEODcwOEIwMERGNENDRSAv
KiBXTUxJbnRyaW5zaWNFdmVudEhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV01MSW50cmluc2ljRXZlbnRIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA4MThBRUUwMEVEQjg2QkMwMDY0N0I2NiAvKiBXTUxFdmVudEhhbmRsaW5nRWxlbWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXTUxFdmVudEhhbmRs
aW5nRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4MThBRUUxMEVE
Qjg2QkMwMDY0N0I2NiAvKiBXTUxFdmVudEhhbmRsaW5nRWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXTUxFdmVudEhhbmRsaW5nRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwODFEODEyRjBFRTBFNzREMDBENzM2ODkgLyogV01MVGltZXJF
bGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdNTFRpbWVy
RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4MUQ4MTMwMEVFMEU3
NEQwMEQ3MzY4OSAvKiBXTUxUaW1lckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV01MVGltZXJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA4MjAzQTlEMEVEOEMzNTMwMEI4QjYxQSAvKiBXTUxBY2Nlc3NFbGVtZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdNTEFjY2Vzc0VsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODIwM0E5RTBFRDhDMzUzMDBCOEI2MUEgLyogV01M
QWNjZXNzRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXTUxBY2Nl
c3NFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NERCQTlEMEVEMzlE
MzUwMDM4QzIyNiAvKiBXTUxWYXJpYWJsZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV01MVmFyaWFibGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTk1NTgsNiArOTU2Miw4IEBACiAJCQkJNEM2Qjk5NDMwRTUyRTM3MzAwNDg3QkI3IC8qIFdN
TFRhZ05hbWVzLmluICovLAogCQkJCTA4Q0Q2MUI4MEVEMzkyOUMwMDJEREY1MSAvKiBXTUxUYXNr
RWxlbWVudC5jcHAgKi8sCiAJCQkJMDhDRDYxQjkwRUQzOTI5QzAwMkRERjUxIC8qIFdNTFRhc2tF
bGVtZW50LmggKi8sCisJCQkJMDgxRDgxMkYwRUUwRTc0RDAwRDczNjg5IC8qIFdNTFRpbWVyRWxl
bWVudC5jcHAgKi8sCisJCQkJMDgxRDgxMzAwRUUwRTc0RDAwRDczNjg5IC8qIFdNTFRpbWVyRWxl
bWVudC5oICovLAogCQkJCTA4NERCQTlEMEVEMzlEMzUwMDM4QzIyNiAvKiBXTUxWYXJpYWJsZXMu
Y3BwICovLAogCQkJCTA4NERCQTlFMEVEMzlEMzYwMDM4QzIyNiAvKiBXTUxWYXJpYWJsZXMuaCAq
LywKIAkJCSk7CkBAIC0xNjQ1Miw2ICsxNjQ1OCw3IEBACiAJCQkJMDg2NUNDRTcwRURERjUxQjAw
REY5RUMzIC8qIFdNTE5vb3BFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEUxOTI1NDBF
REUwQzNBMDA4N0I3ODAgLyogV01MRXJyb3JIYW5kbGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDgwNEJGNkYwRUUwOUMzQjAwMDZDMDAwIC8qIFdNTERvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMDgxRDgxMzIwRUUwRTc0RDAwRDczNjg5IC8qIFdNTFRpbWVyRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC0xODM5MCw2ICsxODM5Nyw3IEBACiAJCQkJMDg2NUNDRTYwRURERjUxQjAw
REY5RUMzIC8qIFdNTE5vb3BFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4RTE5MjUz
MEVERTBDM0EwMDg3Qjc4MCAvKiBXTUxFcnJvckhhbmRsaW5nLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA4MDRCRjZFMEVFMDlDM0IwMDA2QzAwMCAvKiBXTUxEb0VsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMDgxRDgxMzEwRUUwRTc0RDAwRDczNjg5IC8qIFdNTFRpbWVyRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IHdtbC9XTUxDYXJkRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gd21sL1dNTENhcmRFbGVtZW50LmNwcAkocmV2aXNpb24gMzg4MzcpCisrKyB3bWwvV01M
Q2FyZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVk
ZSAiV01MSW50cmluc2ljRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV01MTmFtZXMuaCIKICNp
bmNsdWRlICJXTUxQYWdlU3RhdGUuaCIKKyNpbmNsdWRlICJXTUxUaW1lckVsZW1lbnQuaCIKICNp
bmNsdWRlICJXTUxWYXJpYWJsZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDcsNiAr
NDgsNyBAQCBXTUxDYXJkRWxlbWVudDo6V01MQ2FyZEVsZW1lbnQoY29uc3QgUXVhCiAgICAgLCBt
X2lzTmV3Q29udGV4dChmYWxzZSkKICAgICAsIG1faXNPcmRlcmVkKGZhbHNlKQogICAgICwgbV9p
c1Zpc2libGUoZmFsc2UpCisgICAgLCBtX2V2ZW50VGltZXIoMCkKIHsKIH0KIApAQCAtNzAsNiAr
NzIsMTggQEAgdm9pZCBXTUxDYXJkRWxlbWVudDo6cmVnaXN0ZXJEb0VsZW1lbnQoVwogICAgIGRv
RWxlbWVudC0+c2V0QWN0aXZlKHRydWUpOwogfQogCit2b2lkIFdNTENhcmRFbGVtZW50OjpzZXRJ
bnRyaW5zaWNFdmVudFRpbWVyKFdNTFRpbWVyRWxlbWVudCogdGltZXIpCit7CisgICAgLy8gT25s
eSBvbmUgdGltZXIgaXMgYWxsb3dlZCBpbiBhIGNhcmQgCisgICAgaWYgKG1fZXZlbnRUaW1lcikg
eworICAgICAgICBtX2V2ZW50VGltZXIgPSAwOyAgICAgCisgICAgICAgIHJlcG9ydFdNTEVycm9y
KGRvY3VtZW50KCksIFdNTEVycm9yTXVsdGlwbGVUaW1lckVsZW1lbnRzKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIG1fZXZlbnRUaW1lciA9IHRpbWVyOworfQorCiB2b2lkIFdNTENh
cmRFbGVtZW50OjpoYW5kbGVJbnRyaW5zaWNFdmVudElmTmVlZGVkKCkKIHsKICAgICBXTUxQYWdl
U3RhdGUqIHBhZ2VTdGF0ZSA9IHdtbFBhZ2VTdGF0ZUZvckRvY3VtZW50KGRvY3VtZW50KCkpOwpA
QCAtMTE3LDExICsxMzEsOSBAQCB2b2lkIFdNTENhcmRFbGVtZW50OjpoYW5kbGVJbnRyaW5zaWNF
dmVuCiAgICAgaWYgKGhhc0ludHJpbnNpY0V2ZW50KQogICAgICAgICBldmVudEhhbmRsZXItPnRy
aWdnZXJJbnRyaW5zaWNFdmVudChldmVudFR5cGUpOwogCi0gICAgLy8gRklYTUUgU3RhcnQgdGhl
IHRpbWVyIGlmIGl0IGV4aXN0cyBpbiBjdXJyZW50IGNhcmQKLSAgICAvKgotICAgIGlmIChldmVu
dFRpbWVyKQotICAgICAgICBldmVudFRpbWVyLT5zdGFydCgpOwotICAgICovCisgICAgLy8gU3Rh
cnQgdGhlIHRpbWVyIGlmIGl0IGV4aXN0cyBpbiBjdXJyZW50IGNhcmQKKyAgICBpZiAobV9ldmVu
dFRpbWVyKQorICAgICAgICBtX2V2ZW50VGltZXItPnN0YXJ0KCk7CiAKICAgICAvLyBGSVhNRTog
SW5pdGlhbGl6ZSBpbnB1dC9zZWxlY3QgIGVsZW1lbnRzIGluIHRoaXMgY2FyZAogICAgIC8qCklu
ZGV4OiB3bWwvV01MQ2FyZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3bWwvV01MQ2FyZEVsZW1l
bnQuaAkocmV2aXNpb24gMzg4MzcpCisrKyB3bWwvV01MQ2FyZEVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXTUxE
b0VsZW1lbnQ7CitjbGFzcyBXTUxUaW1lckVsZW1lbnQ7CiAKIGNsYXNzIFdNTENhcmRFbGVtZW50
IDogcHVibGljIFdNTEV2ZW50SGFuZGxpbmdFbGVtZW50IHsKIHB1YmxpYzoKQEAgLTM4LDggKzM5
LDEwIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNOZXdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4g
bV9pc05ld0NvbnRleHQ7IH0KICAgICBib29sIGlzT3JkZXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNPcmRlcmVkOyB9CisgICAgV01MVGltZXJFbGVtZW50KiBldmVudFRpbWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9ldmVudFRpbWVyOyB9CiAKICAgICB2b2lkIHJlZ2lzdGVyRG9FbGVtZW50KFdNTERv
RWxlbWVudCopOworICAgIHZvaWQgc2V0SW50cmluc2ljRXZlbnRUaW1lcihXTUxUaW1lckVsZW1l
bnQqKTsKICAgICB2b2lkIGhhbmRsZUludHJpbnNpY0V2ZW50SWZOZWVkZWQoKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqKTsKQEAgLTU4
LDYgKzYxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNPcmRlcmVkOwogICAgIGJvb2wgbV9p
c1Zpc2libGU7CiAKKyAgICBXTUxUaW1lckVsZW1lbnQqIG1fZXZlbnRUaW1lcjsKICAgICBWZWN0
b3I8V01MRG9FbGVtZW50Kj4gbV9kb0VsZW1lbnRzOwogfTsKIApJbmRleDogd21sL1dNTERvRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gd21sL1dNTERvRWxlbWVudC5jcHAJKHJldmlzaW9uIDM4
ODM3KQorKysgd21sL1dNTERvRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlICJXTUxEb2N1bWVudC5oIgogI2luY2x1ZGUgIldNTEVycm9ySGFuZGxp
bmcuaCIKICNpbmNsdWRlICJXTUxUYXNrRWxlbWVudC5oIgorI2luY2x1ZGUgIldNTFRpbWVyRWxl
bWVudC5oIgogI2luY2x1ZGUgIldNTE5hbWVzLmgiCiAjaW5jbHVkZSAiV01MUGFnZVN0YXRlLmgi
CiAjaW5jbHVkZSAiV01MVmFyaWFibGVzLmgiCkBAIC03NiwxMSArNzcsMTAgQEAgdm9pZCBXTUxE
b0VsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRQogICAgICAgICBpZiAoIXBhZ2VTdGF0ZSkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAvKiBGSVhNRTogU3RvcCB0aGUgdGltZXIg
b2YgdGhlIGN1cnJlbnQgY2FyZCBpZiBpdCBpcyBhY3RpdmUKKyAgICAgICAgLy8gU3RvcCB0aGUg
dGltZXIgb2YgdGhlIGN1cnJlbnQgY2FyZCBpZiBpdCBpcyBhY3RpdmUKICAgICAgICAgV01MQ2Fy
ZEVsZW1lbnQqIGNhcmQgPSBwYWdlU3RhdGUtPmFjdGl2ZUNhcmQoKTsKICAgICAgICAgaWYgKGNh
cmQgJiYgY2FyZC0+ZXZlbnRUaW1lcigpKQogICAgICAgICAgICAgY2FyZC0+ZXZlbnRUaW1lcigp
LT5zdG9wKCk7Ci0gICAgICAgICovCiAKICAgICAgICAgcGFnZVN0YXRlLT5wYWdlKCktPmdvQmFj
aygpOwogICAgIH0gZWxzZSBpZiAobV90eXBlID09ICJyZXNldCIpIHsKSW5kZXg6IHdtbC9XTUxF
cnJvckhhbmRsaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3bWwvV01MRXJyb3JIYW5kbGluZy5jcHAJ
KHJldmlzaW9uIDM4ODM3KQorKysgd21sL1dNTEVycm9ySGFuZGxpbmcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgcmVwb3J0V01MRXJyb3IoRG9jdW1lbnQqIGRvYywg
V01MRXIKICAgICAgICAgZXJyb3JNZXNzYWdlID0gIk5vIGNhcmQgY29udGFpbmVkIGluIGRvY3Vt
ZW50LiI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV01MRXJyb3JNdWx0aXBsZVRpbWVyRWxl
bWVudHM6Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9ICJPbmx5IG9uZSBhY2Nlc3MgZWxlbWVudCBp
cyBhbGxvd2VkIGluIGEgY2FyZC4iOworICAgICAgICBlcnJvck1lc3NhZ2UgPSAiT25seSBvbmUg
dGltZXIgZWxlbWVudCBpcyBhbGxvd2VkIGluIGEgY2FyZC4iOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdNTEVycm9yVW5rbm93bjogCiAgICAgZGVmYXVsdDoKSW5kZXg6IHdtbC9XTUxQYWdl
U3RhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSB3bWwvV01MUGFnZVN0YXRlLmgJKHJldmlzaW9uIDM4ODM3
KQorKysgd21sL1dNTFBhZ2VTdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBA
IHB1YmxpYzoKICAgICAvLyB2YXJpYWJsZXMgb3BlcmF0aW9ucyAKICAgICB2b2lkIHN0b3JlVmFy
aWFibGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKSB7IG1fdmFyaWFi
bGVzLnNldChuYW1lLCB2YWx1ZSk7IH0KICAgICB2b2lkIHN0b3JlVmFyaWFibGVzKFdNTFZhcmlh
YmxlTWFwJiB2YXJpYWJsZXMpIHsgbV92YXJpYWJsZXMgPSB2YXJpYWJsZXM7IH0KLSAgICBTdHJp
bmcgZ2V0VmFyaWJhbGUoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdCB7IHJldHVybiBtX3Zhcmlh
Ymxlcy5nZXQobmFtZSk7IH0KKyAgICBTdHJpbmcgZ2V0VmFyaWFibGUoY29uc3QgU3RyaW5nJiBu
YW1lKSBjb25zdCB7IHJldHVybiBtX3ZhcmlhYmxlcy5nZXQobmFtZSk7IH0KICAgICBib29sIGhh
c1ZhcmlhYmxlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmFyaWFibGVzLnNpemUoKTsgfQogCiAgICAg
aW50IGhpc3RvcnlMZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2hpc3RvcnlMZW5ndGg7IH0KSW5k
ZXg6IHdtbC9XTUxQcmV2RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gd21sL1dNTFByZXZFbGVt
ZW50LmNwcAkocmV2aXNpb24gMzg4MzcpCisrKyB3bWwvV01MUHJldkVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSw4ICsyNSwxMCBAQAogI2luY2x1ZGUgIldNTFByZXZFbGVtZW50Lmgi
CiAKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiV01MQ2FyZEVsZW1lbnQuaCIKICNpbmNs
dWRlICJXTUxEb2N1bWVudC5oIgogI2luY2x1ZGUgIldNTFBhZ2VTdGF0ZS5oIgorI2luY2x1ZGUg
IldNTFRpbWVyRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUxLDExICs1
Myw5IEBAIHZvaWQgV01MUHJldkVsZW1lbnQ6OmV4ZWN1dGVUYXNrKEV2ZW50KikKIAogICAgIHN0
b3JlVmFyaWFibGVTdGF0ZShwYWdlU3RhdGUpOwogCi0vKiBGSVhNRQogICAgIC8vIFN0b3AgdGhl
IHRpbWVyIG9mIHRoZSBjdXJyZW50IGNhcmQgaWYgaXQgaXMgYWN0aXZlCiAgICAgaWYgKFdNTFRp
bWVyRWxlbWVudCogdGltZXIgPSBjYXJkLT5ldmVudFRpbWVyKCkpCiAgICAgICAgIHRpbWVyLT5z
dG9wKCk7Ci0qLwogCiAgICAgcGFnZVN0YXRlLT5wYWdlKCktPmdvQmFjaygpOwogfQpJbmRleDog
d21sL1dNTFJlZnJlc2hFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3bWwvV01MUmVmcmVzaEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAzODgzNykKKysrIHdtbC9XTUxSZWZyZXNoRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDEwIEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJXTUxD
YXJkRWxlbWVudC5oIgogI2luY2x1ZGUgIldNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiV01MUGFn
ZVN0YXRlLmgiCisjaW5jbHVkZSAiV01MVGltZXJFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTEsMjcgKzUzLDI1IEBAIHZvaWQgV01MUmVmcmVzaEVsZW1lbnQ6OmV4ZWN1
dGVUYXNrKEV2ZW4KICAgICBpZiAoIWNhcmQpCiAgICAgICAgIHJldHVybjsKIAotLyogRklYTUUK
ICAgICAvLyBCZWZvcmUgcGVyZm9ybSByZWZyZXNoIHRhc2ssIHdlIHN0b3JlIHRoZSBjdXJyZW50
IHRpbWVvdXQKICAgICAvLyB2YWx1ZSBpbiB0aGUgcGFnZSBzdGF0ZSBhbmQgdGhlbiBzdG9wIHRo
ZSB0aW1lcgotICAgIGlmIChXTUxUaW1lckVsZW1lbnQqIHRpbWVyID0gY2FyZC0+ZXZlbnRUaW1l
cigpKSB7CisgICAgV01MVGltZXJFbGVtZW50KiB0aW1lciA9IGNhcmQtPmV2ZW50VGltZXIoKTsK
KyAgICBpZiAodGltZXIpIHsKICAgICAgICAgdGltZXItPnN0b3JlSW50ZXJ2YWxUb1BhZ2VTdGF0
ZSgpOwogICAgICAgICB0aW1lci0+c3RvcCgpOwogICAgIH0KLSovCiAKICAgICBzdG9yZVZhcmlh
YmxlU3RhdGUocGFnZVN0YXRlKTsKIAogICAgIC8vIFJlZGlzcGxheSBjdXJyZW10IGNhcmQgd2l0
aCBjdXJyZW50IHZhcmlhYmxlIHN0YXRlCi0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2VTdGF0
ZS0+cGFnZSgpLT5tYWluRnJhbWUoKSkKKyAgICBpZiAoRnJhbWUqIGZyYW1lID0gcGFnZVN0YXRl
LT5wYWdlKCktPm1haW5GcmFtZSgpKSB7CiAgICAgICAgIGlmIChGcmFtZUxvYWRlciogbG9hZGVy
ID0gZnJhbWUtPmxvYWRlcigpKQogICAgICAgICAgICAgbG9hZGVyLT5yZWxvYWQoKTsKKyAgICB9
CiAKLS8qIEZJWE1FCiAgICAgLy8gQWZ0ZXIgcmVmcmVzaGluZyB0YXNrLCByZXN1bWUgdGhlIHRp
bWVyIGlmIGl0IGV4c2l0cyAKICAgICBpZiAodGltZXIpCiAgICAgICAgIHRpbWVyLT5zdGFydCgp
OwotKi8KIH0KIAogfQpJbmRleDogd21sL1dNTFRhZ05hbWVzLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHdt
bC9XTUxUYWdOYW1lcy5pbgkocmV2aXNpb24gMzg4MzcpCisrKyB3bWwvV01MVGFnTmFtZXMuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTE1LDYgKzE1LDcgQEAgcAogcHJldgogcmVmcmVzaAogc2V0dmFy
Cit0aW1lcgogCiAjaWYgMAogIyBUaGVzZSBlbGVtZW50cyBkb24ndCBuZWVkIGEgY29ycmVwb25z
cG9uZGluZyBXTUwqRWxlbWVudCBjbGFzcy4KQEAgLTMwLDUgKzMxLDQgQEAgc2V0dmFyCiAjIEZJ
WE1FOiBJbXBsZW1lbnQgdGhlc2UgZWxlbWVudHMKIHBvc3RmaWVsZAogdGVtcGxhdGUKLXRpbWVy
CiAjZW5kaWYKSW5kZXg6IHdtbC9XTUxUaW1lckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHdt
bC9XTUxUaW1lckVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQorKysgd21sL1dNTFRpbWVyRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUxIEBACisvKioKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogICAgICAg
ICAgICAgICBodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShXTUwpCisjaW5jbHVkZSAiV01MVGltZXJFbGVtZW50LmgiCisKKyNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJXTUxDYXJkRWxlbWVudC5oIgorI2luY2x1
ZGUgIldNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiV01MRXJyb3JIYW5kbGluZy5oIgorI2luY2x1
ZGUgIldNTE5hbWVzLmgiCisjaW5jbHVkZSAiV01MUGFnZVN0YXRlLmgiCisjaW5jbHVkZSAiV01M
VmFyaWFibGVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIFdN
TE5hbWVzOworCitXTUxUaW1lckVsZW1lbnQ6OldNTFRpbWVyRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jKQorICAgIDogV01MRWxlbWVudCh0YWdOYW1l
LCBkb2MpCisgICAgLCBtX3RpbWVyKHRoaXMsICZXTUxUaW1lckVsZW1lbnQ6OnRpbWVyRmlyZWQp
Cit7Cit9CisKK3ZvaWQgV01MVGltZXJFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBw
ZWRBdHRyaWJ1dGUqIGF0dHIpCit7CisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBIVE1MTmFtZXM6
Om5hbWVBdHRyKSB7CisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBhdHRyLT52
YWx1ZSgpOworICAgICAgICBpZiAoIWlzVmFsaWRWYXJpYWJsZU5hbWUodmFsdWUsIHRydWUpKSB7
CisgICAgICAgICAgICByZXBvcnRXTUxFcnJvcihkb2N1bWVudCgpLCBXTUxFcnJvckludmFsaWRW
YXJpYWJsZU5hbWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
bV9uYW1lID0gdmFsdWU7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gSFRNTE5hbWVz
Ojp2YWx1ZUF0dHIpCisgICAgICAgIG1fdmFsdWUgPSBzdWJzdGl0dXRlVmFyaWFibGVSZWZlcmVu
Y2VzKGF0dHItPnZhbHVlKCksIGRvY3VtZW50KCkpOworICAgIGVsc2UKKyAgICAgICAgV01MRWxl
bWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7Cit9CisKK3ZvaWQgV01MVGltZXJFbGVt
ZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCit7CisgICAgV01MRWxlbWVudDo6aW5zZXJ0ZWRJ
bnRvRG9jdW1lbnQoKTsKKworICAgIC8vIElmIHRoZSB2YWx1ZSBvZiB0aW1lb3V0IGlzIG5vdCBh
IHBvc2l0aXZlIGludGVnZXIsIGlnbm9yZSBpdAorICAgIGlmIChtX3ZhbHVlLnRvSW50KCkgPD0g
MCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTm9kZSogcGFyZW50ID0gcGFyZW50Tm9kZSgpOwor
ICAgIEFTU0VSVChwYXJlbnQpOworCisgICAgaWYgKCFwYXJlbnQgfHwgIXBhcmVudC0+aXNXTUxF
bGVtZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChwYXJlbnQtPmhhc1RhZ05hbWUo
Y2FyZFRhZykpIHsKKyAgICAgICAgbV9jYXJkID0gc3RhdGljX2Nhc3Q8V01MQ2FyZEVsZW1lbnQq
PihwYXJlbnQpOworICAgICAgICBtX2NhcmQtPnNldEludHJpbnNpY0V2ZW50VGltZXIodGhpcyk7
CisgICAgfQorfQorCit2b2lkIFdNTFRpbWVyRWxlbWVudDo6dGltZXJGaXJlZChUaW1lcjxXTUxU
aW1lckVsZW1lbnQ+KikKK3sKKyAgICBpZiAoIW1fY2FyZCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgV01MUGFnZVN0YXRlKiBwYWdlU3RhdGUgPSB3bWxQYWdlU3RhdGVGb3JEb2N1bWVudChkb2N1
bWVudCgpKTsKKyAgICBpZiAoIXBhZ2VTdGF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8g
V2hlbiB0aGUgdGltZXIgZXhwaXJlcywgc2V0IHRoZSBuYW1lIHZhcmlhbGJlIG9mIHRpbWVyIHRv
ICcwJworICAgIGlmICghbV9uYW1lLmlzRW1wdHkoKSkgeworICAgICAgICBtX3ZhbHVlID0gIjAi
OworICAgICAgICBwYWdlU3RhdGUtPnN0b3JlVmFyaWFibGUobV9uYW1lLCBtX3ZhbHVlKTsKKyAg
ICB9CisKKyAgICBXTUxJbnRyaW5zaWNFdmVudFR5cGUgZXZlbnRUeXBlID0gV01MSW50cmluc2lj
RXZlbnRPblRpbWVyOworICAgIFdNTEludHJpbnNpY0V2ZW50SGFuZGxlciogZXZlbnRIYW5kbGVy
ID0gbV9jYXJkLT5ldmVudEhhbmRsZXIoKTsKKworICAgIGJvb2wgaGFzSW50cmluc2ljRXZlbnQg
PSBmYWxzZTsKKyAgICBpZiAoZXZlbnRIYW5kbGVyICYmIGV2ZW50SGFuZGxlci0+aGFzSW50cmlu
c2ljRXZlbnQoZXZlbnRUeXBlKSkKKyAgICAgICAgaGFzSW50cmluc2ljRXZlbnQgPSB0cnVlOwor
CisvKiBGSVhNRQorICAgIGVsc2UgaWYgKG1fY2FyZC0+dGVtcGxhdGVFbGVtZW50KCkpIHsKKyAg
ICAgICAgZXZlbnRIYW5kbGVyID0gbV9jYXJkLT50ZW1wbGF0ZUVsZW1lbnQoKS0+ZXZlbnRIYW5k
bGVyKCk7CisgICAgICAgIGlmIChldmVudEhhbmRsZXIgJiYgZXZlbnRIYW5kbGVyLT5oYXNJbnRy
aW5zaWNFdmVudChldmVudFR5cGUpKQorICAgICAgICAgICAgaGFzSW50cmluc2ljRXZlbnQgPSB0
cnVlOworICAgIH0KKyovCisKKyAgICBpZiAoaGFzSW50cmluc2ljRXZlbnQpCisgICAgICAgIGV2
ZW50SGFuZGxlci0+dHJpZ2dlckludHJpbnNpY0V2ZW50KGV2ZW50VHlwZSk7Cit9CisKK3ZvaWQg
V01MVGltZXJFbGVtZW50OjpzdGFydChpbnQgaW50ZXJ2YWwpCit7CisgICAgaWYgKCFtX2NhcmQg
fHwgbV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoaW50ZXJ2
YWwgPD0gMCAmJiAhbV9uYW1lLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoV01MUGFnZVN0YXRl
KiBwYWdlU3RhdGUgPSB3bWxQYWdlU3RhdGVGb3JEb2N1bWVudChkb2N1bWVudCgpKSkKKyAgICAg
ICAgICAgIGludGVydmFsID0gcGFnZVN0YXRlLT5nZXRWYXJpYWJsZShtX25hbWUpLnRvSW50KCk7
CisgICAgfQorCisgICAgaWYgKGludGVydmFsIDw9IDApCisgICAgICAgIGludGVydmFsID0gbV92
YWx1ZS50b0ludCgpOworCisgICAgaWYgKGludGVydmFsID4gMCkKKyAgICAgICAgbV90aW1lci5z
dGFydE9uZVNob3QoaW50ZXJ2YWwgLyAxMC4wZik7Cit9CisKK3ZvaWQgV01MVGltZXJFbGVtZW50
OjpzdG9wKCkKK3sKKyAgICBpZiAobV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3RpbWVy
LnN0b3AoKTsKK30KKwordm9pZCBXTUxUaW1lckVsZW1lbnQ6OnN0b3JlSW50ZXJ2YWxUb1BhZ2VT
dGF0ZSgpCit7CisgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGludCBpbnRlcnZhbCA9IHN0YXRpY19jYXN0PGludD4obV90aW1lci5uZXh0RmlyZUlu
dGVydmFsKCkpICogMTA7CisKKyAgICBpZiAoV01MUGFnZVN0YXRlKiBwYWdlU3RhdGUgPSB3bWxQ
YWdlU3RhdGVGb3JEb2N1bWVudChkb2N1bWVudCgpKSkKKyAgICAgICAgcGFnZVN0YXRlLT5zdG9y
ZVZhcmlhYmxlKG1fbmFtZSwgU3RyaW5nOjpudW1iZXIoaW50ZXJ2YWwpKTsKK30KKworfQorCisj
ZW5kaWYKSW5kZXg6IHdtbC9XTUxUaW1lckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3bWwvV01M
VGltZXJFbGVtZW50LmgJKHJldmlzaW9uIDApCisrKyB3bWwvV01MVGltZXJFbGVtZW50LmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNTYgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFRv
cmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgICAgIGh0
dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBXTUxUaW1lckVsZW1lbnRfaAor
I2RlZmluZSBXTUxUaW1lckVsZW1lbnRfaAorCisjaWYgRU5BQkxFKFdNTCkKKyNpbmNsdWRlICJU
aW1lci5oIgorI2luY2x1ZGUgIldNTEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBXTUxDYXJkRWxlbWVudDsKKworY2xhc3MgV01MVGltZXJFbGVtZW50IDogcHVibGlj
IFdNTEVsZW1lbnQgeworcHVibGljOgorICAgIFdNTFRpbWVyRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOworCisgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFw
cGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOworICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRl
ZEludG9Eb2N1bWVudCgpOworCisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPFdNTFRpbWVyRWxl
bWVudD4qKTsKKworICAgIHZvaWQgc3RhcnQoaW50IGludGVydmFsID0gLTEpOworICAgIHZvaWQg
c3RvcCgpOworICAgIHZvaWQgc3RvcmVJbnRlcnZhbFRvUGFnZVN0YXRlKCk7CisKK3ByaXZhdGU6
CisgICAgV01MQ2FyZEVsZW1lbnQqIG1fY2FyZDsKKyAgICBTdHJpbmcgbV9uYW1lOworICAgIFN0
cmluZyBtX3ZhbHVlOworICAgIFRpbWVyPFdNTFRpbWVyRWxlbWVudD4gbV90aW1lcjsKK307CisK
K30KKworI2VuZGlmCisjZW5kaWYK
</data>
<flag name="review"
          id="11911"
          type_id="1"
          status="+"
          setter="zwarich"
    />
          </attachment>
      

    </bug>

</bugzilla>