Re: date.php patch

Bill Shirley <[email protected]> Mon, 9 Aug 2021 04:25:36 -0400
Newsgroups gmane.mail.squirrelmail.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------7D6B3363763A1EC10D44B701
Content-Type: multipart/alternative;
 boundary="------------3B655BDCCC15C3FE17B692C6"


--------------3B655BDCCC15C3FE17B692C6
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

I left the line number off the error message because since I've added code, the
line numbers won't be accurate.

Two files are attached: date.php is the patched program. date.php.patch is the
'diff -u'; diff -u  date.php.orig  date.php >  date.php.patch

[0 12:47:56 root@yoda33 functions]$ cat /etc/redhat-release
Fedora release 33 (Thirty Three)
[0 12:51:13 root@yoda33 functions]$ rpm -q httpd dovecot postfix php
httpd-2.4.46-9.fc33.x86_64
dovecot-2.3.14-1.fc33.x86_64
postfix-3.5.10-1.fc33.x86_64
php-7.4.19-1.fc33.x86_64

I added some debugging code in function getGMTSeconds starting at line 91 to see
what the problem is (I've changed the username):
[02-Aug-2021 06:49:56 America/Los_Angeles] Unrecognized time zone=+22:27 username=kermit
[02-Aug-2021 06:49:56 America/Los_Angeles] PHP Warning:  A non-numeric value encountered in 
/usr/local/src/squirrelmail-20210707_0200-SVN.stable/functions/date.php on line 96
[02-Aug-2021 06:49:57 America/Los_Angeles] Unrecognized time zone=+28 username=kermit
[02-Aug-2021 06:49:57 America/Los_Angeles] PHP Warning:  A non-numeric value encountered in 
/usr/local/src/squirrelmail-20210707_0200-SVN.stable/functions/date.php on line 96
[02-Aug-2021 06:49:57 America/Los_Angeles] Unrecognized time zone=+JULY username=kermit
[02-Aug-2021 06:49:57 America/Los_Angeles] PHP Warning:  A non-numeric value encountered in 
/usr/local/src/squirrelmail-20210707_0200-SVN.sta
I realized something has gone wrong before getGMTSeconds is called.

I added debugging code to function getTimeStamp starting at line 427:
[05-Aug-2021 18:02:29 America/Los_Angeles] saveDateParts=
Array
(
     [0] => TUESDAY
     [1] =>
     [2] =>
     [3] =>
     [4] => JUNE
     [5] => 23
     [6] => 2020
     [7] => 21:50
)
Some of the array entries are empty.  Added two lines of code to correct this;
lines 428 & 429.  It removes the empty array entries.
[05-Aug-2021 19:09:41 America/Los_Angeles] saveDateParts=
Array
(
     [0] => WEDNESDAY
     [1] =>
     [2] =>
     [3] => JUNE
     [4] => 17
     [5] => 2020
     [6] => 16:32
)
dateParts=
Array
(
     [0] => WEDNESDAY
     [1] => JUNE
     [2] => 17
     [3] => 2020
     [4] => 16:32
)
The errors are gone now.

I'm thinking this has something to do with this user's display preferences:


Bill


On 8/9/2021 12:49 AM, Paul Lesniewski wrote:
> Hi Bill,
>
> On Mon, August 9, 2021 3:02 am, Bill Shirley wrote:
>> I have a patch that fixes some invalid dates in date.php.  Is this the
>> place to post it?
> Sure, thanks!
>
>> [02-Aug-2021 06:49:56 America/Los_Angeles] PHP Warning:  A non-numeric
>> value encountered in
>> /usr/local/src/squirrelmail-20210707_0200-SVN.stable/functions/date.php
> The error message should also say what the line number is, can you share
> that?  Also, what is the date string that caused this?
>
> Thanks!
>

--------------3B655BDCCC15C3FE17B692C6
Content-Type: multipart/related;
 boundary="------------186DC9DD18287412802B16CC"


--------------186DC9DD18287412802B16CC
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>I left the line number off the error message because since I've
      added code, the<br>
      line numbers won't be accurate.</p>
    <p>Two files are attached: date.php is the patched program. 
      date.php.patch is the<br>
      'diff -u'; <font color="brown">diff -u  date.php.orig  date.php 
        &gt;  date.php.patch</font><br>
      <br>
      [0 12:47:56 root@yoda33 functions]$ cat /etc/redhat-release <br>
      <font face="monospace" color="brown"><font size="+1">Fedora
          release 33 (Thirty Three)</font><br>
      </font>[0 12:51:13 root@yoda33 functions]$ rpm -q httpd dovecot
      postfix php<br>
      <font size="+1" face="monospace" color="brown">httpd-2.4.46-9.fc33.x86_64<br>
        dovecot-2.3.14-1.fc33.x86_64<br>
        postfix-3.5.10-1.fc33.x86_64<br>
        php-7.4.19-1.fc33.x86_64</font><br>
    </p>
    <p>I added some debugging code in <font color="brown">function
        getGMTSeconds</font> starting at line 91 to see<br>
      what the problem is (I've changed the username):<br>
      <font size="+1" face="monospace" color="brown">[02-Aug-2021
        06:49:56 America/Los_Angeles] Unrecognized time zone=+22:27
        username=kermit<br>
        [02-Aug-2021 06:49:56 America/Los_Angeles] PHP Warning:  A
        non-numeric value encountered in
        /usr/local/src/squirrelmail-20210707_0200-SVN.stable/functions/date.php
        on line 96<br>
        [02-Aug-2021 06:49:57 America/Los_Angeles] Unrecognized time
        zone=+28 username=kermit<br>
        [02-Aug-2021 06:49:57 America/Los_Angeles] PHP Warning:  A
        non-numeric value encountered in
        /usr/local/src/squirrelmail-20210707_0200-SVN.stable/functions/date.php
        on line 96<br>
        [02-Aug-2021 06:49:57 America/Los_Angeles] Unrecognized time
        zone=+JULY username=kermit<br>
        [02-Aug-2021 06:49:57 America/Los_Angeles] PHP Warning:  A
        non-numeric value encountered in
        /usr/local/src/squirrelmail-20210707_0200-SVN.sta<br>
      </font>I realized something has gone wrong before <font
        color="brown">getGMTSeconds</font> is called.</p>
    <p>I added debugging code to <font color="brown">function
        getTimeStamp</font> starting at line 427:<br>
      <font size="+1" face="monospace" color="brown">[05-Aug-2021
        18:02:29 America/Los_Angeles] saveDateParts=<br>
        Array<br>
        (<br>
            [0] =&gt; TUESDAY<br>
            [1] =&gt; <br>
            [2] =&gt; <br>
            [3] =&gt; <br>
            [4] =&gt; JUNE<br>
            [5] =&gt; 23<br>
            [6] =&gt; 2020<br>
            [7] =&gt; 21:50<br>
        )</font><br>
      Some of the array entries are empty.  Added two lines of code to
      correct this;<br>
      lines 428 &amp; 429.  It removes the empty array entries.<br>
      <font size="+1" face="monospace" color="brown">[05-Aug-2021
        19:09:41 America/Los_Angeles] saveDateParts=<br>
        Array<br>
        (<br>
            [0] =&gt; WEDNESDAY<br>
            [1] =&gt; <br>
            [2] =&gt; <br>
            [3] =&gt; JUNE<br>
            [4] =&gt; 17<br>
            [5] =&gt; 2020<br>
            [6] =&gt; 16:32<br>
        )<br>
        dateParts=<br>
        Array<br>
        (<br>
            [0] =&gt; WEDNESDAY<br>
            [1] =&gt; JUNE<br>
            [2] =&gt; 17<br>
            [3] =&gt; 2020<br>
            [4] =&gt; 16:32<br>
        )<br>
      </font>The errors are gone now.<br>
      <br>
      I'm thinking this has something to do with this user's display
      preferences:<br>
      <img src="cid:[email protected]" alt=""><br>
      <br>
      Bill</p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/9/2021 12:49 AM, Paul Lesniewski
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:[email protected]">
      <pre class="moz-quote-pre" wrap="">Hi Bill,

On Mon, August 9, 2021 3:02 am, Bill Shirley wrote:
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">I have a patch that fixes some invalid dates in date.php.  Is this the
place to post it?
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
Sure, thanks!

</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">[02-Aug-2021 06:49:56 America/Los_Angeles] PHP Warning:  A non-numeric
value encountered in
/usr/local/src/squirrelmail-20210707_0200-SVN.stable/functions/date.php
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
The error message should also say what the line number is, can you share
that?  Also, what is the date string that caused this?

Thanks!

</pre>
    </blockquote>
  </body>
</html>

--------------186DC9DD18287412802B16CC
Content-Type: image/png;
 name="hglfhpnedbhaebdo.png"
Content-Transfer-Encoding: base64
Content-ID: <[email protected]>
Content-Disposition: inline;
 filename="hglfhpnedbhaebdo.png"

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
4NerdAAAAABJRU5ErkJggg==
--------------186DC9DD18287412802B16CC--

--------------3B655BDCCC15C3FE17B692C6--

--------------7D6B3363763A1EC10D44B701
Content-Type: text/plain; charset=UTF-8;
 name="date.php.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="date.php.patch"

LS0tIGRhdGUucGhwLm9yaWcJMjAyMS0wMi0wNSAxMToxOTozMi4wMDAwMDAwMDAgLTA4MDAK
KysrIGRhdGUucGhwCTIwMjEtMDgtMDUgMTk6MzE6MDcuMDAwMDAwMDAwIC0wNzAwCkBAIC04
OCw2ICs4OCwxMSBAQAogICAgIH0KICAgICAkaGggPSBzdWJzdHIoJHR6YywxLDIpOwogICAg
ICRtbSA9IHN1YnN0cigkdHpjLDMsMik7CisgICAgZ2xvYmFsICR1c2VybmFtZTsKKyAgICBp
ZiAoKCRoaCA8ICcwMCcpIG9yICgkbW0gPCAnMDAnKSkJLy8gbm90IG51bWVyaWM/CisgICAg
ICAgICAgICBlcnJvcl9sb2coIlVucmVjb2duaXplZCB0aW1lIHpvbmU9JHR6YyB1c2VybmFt
ZT0kdXNlcm5hbWUiKTsKKyAgICBpZiAoKCRoaCA+ICc5OScpIG9yICgkbW0gPiAnOTknKSkJ
Ly8gbm90IG51bWVyaWM/CisgICAgICAgICAgICBlcnJvcl9sb2coIlVucmVjb2duaXplZCB0
aW1lIHpvbmU9JHR6YyB1c2VybmFtZT0kdXNlcm5hbWUiKTsKICAgICAkaVR6YyA9ICgkaGgg
KiA2MCArICRtbSkgKiA2MDsKICAgICBpZiAoJG5lZykgJGlUemMgPSAtMSAqIChpbnQpICRp
VHpjOwogICAgIC8qIHN0YW1wIGluIGdtdCAqLwpAQCAtNDE5LDYgKzQyNCwxNiBAQAogICAg
ICoqICAgICAgICBJbiB0aGF0IGNhc2UsIGRhdGVQYXJ0c1swXSB3b3VsZCBiZSB0aGUgPGRh
eSBvZiBtb250aD4KICAgICAqKiAgICAgICAgYW5kIGV2ZXJ5dGhpbmcgd291bGQgYmUgYnVt
cGVkIHVwIG9uZS4KICAgICAqKi8KKyAgICAkc2F2ZURhdGVQYXJ0cyA9ICRkYXRlUGFydHM7
CisgICAgZm9yZWFjaCAoJHNhdmVEYXRlUGFydHMgYXMgJGluZGV4PT4kdmFsdWUpIGlmIChl
bXB0eSgkdmFsdWUpKSB1bnNldCgkZGF0ZVBhcnRzWyRpbmRleF0pOyAgLy8gcmVtb3ZlIGVt
cHR5IGFycmF5IGVsZW1lbnRzCisgICAgJGRhdGVQYXJ0cyA9IGFycmF5X3ZhbHVlcygkZGF0
ZVBhcnRzKTsgIC8vIHJlLWluZGV4IHN0YXJ0aW5nIHdpdGggemVybworCisvLyBzdGF0aWMg
JGxvZ19jb3VudCA9IDEwOworLy8gaWYgKCgkbG9nX2NvdW50ID4gMCkgYW5kIChjb3VudCgk
c2F2ZURhdGVQYXJ0cykgIT0gY291bnQoJGRhdGVQYXJ0cykpKSB7CisvLyBlcnJvcl9sb2co
InNhdmVEYXRlUGFydHM9XG4iIC4gcHJpbnRfcigkc2F2ZURhdGVQYXJ0cyx0cnVlKSAuICJk
YXRlUGFydHM9XG4iIC4gcHJpbnRfcigkZGF0ZVBhcnRzLHRydWUpKTsKKy8vICRsb2dfY291
bnQtLTsKKy8vIH0KKwogICAgIGlmIChjb3VudCgkZGF0ZVBhcnRzKSA8MikgewogICAgICAg
ICByZXR1cm4gLTE7CiAgICAgfSBlbHNlIGlmIChjb3VudCgkZGF0ZVBhcnRzKSA9PTMpIHsK

--------------7D6B3363763A1EC10D44B701
Content-Type: text/html; charset=UTF-8;
 name="date.php"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="date.php"

PD9waHANCg0KLyoqDQogKiBkYXRlLnBocA0KICoNCiAqIFRha2VzIGEgZGF0ZSBhbmQgcGFy
c2VzIGl0IGludG8gYSB1c2FibGUgZm9ybWF0LiAgVGhlIGZvcm0gdGhhdCBhDQogKiBkYXRl
IFNIT1VMRCBhcnJpdmUgaW4gaXM6DQogKiAgICAgICA8VHVlLD4gMjkgSnVuIDE5OTkgMDk6
NTI6MTEgLTA1MDAgKEVEVCkNCiAqIChhcyBzcGVjaWZpZWQgaW4gUkZDIDgyMikgLS0gJ1R1
ZScgaXMgb3B0aW9uYWwNCiAqDQogKiBAY29weXJpZ2h0IDE5OTktMjAyMSBUaGUgU3F1aXJy
ZWxNYWlsIFByb2plY3QgVGVhbQ0KICogQGxpY2Vuc2UgaHR0cDovL29wZW5zb3VyY2Uub3Jn
L2xpY2Vuc2VzL2dwbC1saWNlbnNlLnBocCBHTlUgUHVibGljIExpY2Vuc2UNCiAqIEB2ZXJz
aW9uICRJZDogZGF0ZS5waHAgMTQ4ODUgMjAyMS0wMi0wNSAxOToxOTozMlogcGRvbnR0aGlu
ayAkDQogKiBAcGFja2FnZSBzcXVpcnJlbG1haWwNCiAqIEBzdWJwYWNrYWdlIGRhdGUNCiAq
Lw0KDQovKiogTG9hZCB1cCBzb21lIHVzZWZ1bCBjb25zdGFudHMgKi8NCnJlcXVpcmVfb25j
ZShTTV9QQVRIIC4gJ2Z1bmN0aW9ucy9jb25zdGFudHMucGhwJyk7DQoNCi8qKg0KICogQ29y
cmVjdHMgYSB0aW1lIHN0YW1wIHRvIGJlIHRoZSBsb2NhbCB0aW1lLg0KICoNCiAqIEBwYXJh
bSBpbnQgc3RhbXAgdGhlIHRpbWVzdGFtcCB0byBhZGp1c3QNCiAqIEBwYXJhbSBzdHJpbmcg
dHpjIHRoZSB0aW1lem9uZSBjb3JyZWN0aW9uDQogKiBAcmV0dXJuIGludCB0aGUgY29ycmVj
dGVkIHRpbWVzdGFtcA0KICovDQpmdW5jdGlvbiBnZXRHTVRTZWNvbmRzKCRzdGFtcCwgJHR6
Yykgew0KICAgIC8qIGRhdGUgY291bGRuJ3QgYmUgcGFyc2VkICovDQogICAgaWYgKCRzdGFt
cCA9PSAtMSkgew0KICAgICAgICByZXR1cm4gLTE7DQogICAgfQ0KICAgIC8qIHRpbWV6b25l
IGNvcnJlY3Rpb24sIGV4cHJlc3NlZCBhcyBgc2hobW0nICovDQogICAgc3dpdGNoKCR0emMp
DQogICAgew0KICAgICAgICBjYXNlICdQYWNpZmljJzoNCiAgICAgICAgY2FzZSAnUFNUJzoN
CiAgICAgICAgICAgICR0emMgPSAnLTA4MDAnOw0KICAgICAgICAgICAgYnJlYWs7DQogICAg
ICAgIGNhc2UgJ01vdW50YWluJzoNCiAgICAgICAgY2FzZSAnTVNUJzoNCiAgICAgICAgY2Fz
ZSAnUERUJzoNCiAgICAgICAgICAgICR0emMgPSAnLTA3MDAnOw0KICAgICAgICAgICAgYnJl
YWs7DQogICAgICAgIGNhc2UgJ0NlbnRyYWwnOg0KICAgICAgICBjYXNlICdDU1QnOg0KICAg
ICAgICBjYXNlICdNRFQnOg0KICAgICAgICAgICAgJHR6YyA9ICctMDYwMCc7DQogICAgICAg
ICAgICBicmVhazsNCiAgICAgICAgY2FzZSAnRWFzdGVybic6DQogICAgICAgIGNhc2UgJ0VT
VCc6DQogICAgICAgIGNhc2UgJ0NEVCc6DQogICAgICAgICAgICAkdHpjID0gJy0wNTAwJzsN
CiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICdFRFQnOg0KICAgICAgICAgICAg
JHR6YyA9ICctMDQwMCc7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAnR01U
JzoNCiAgICAgICAgY2FzZSAnVVRDJzoNCiAgICAgICAgICAgICR0emMgPSAnKzAwMDAnOw0K
ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgJ0JTVCc6DQogICAgICAgIGNhc2Ug
J01FVCc6DQogICAgICAgIGNhc2UgJ0NFVCc6DQogICAgICAgICAgICAkdHpjID0gJyswMTAw
JzsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICdFRVQnOg0KICAgICAgICBj
YXNlICdJU1QnOg0KICAgICAgICBjYXNlICdNRVQgRFNUJzoNCiAgICAgICAgY2FzZSAnTUVU
RFNUJzoNCgljYXNlICdDRVNUJzoNCgljYXNlICdNRVNUJzoNCiAgICAgICAgICAgICR0emMg
PSAnKzAyMDAnOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgJ0hLVCc6DQog
ICAgICAgICAgICAkdHpjID0gJyswODAwJzsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAg
ICBjYXNlICdKU1QnOg0KICAgICAgICBjYXNlICdLU1QnOg0KICAgICAgICAgICAgJHR6YyA9
ICcrMDkwMCc7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgJG5lZyA9IGZhbHNl
Ow0KICAgIGlmIChzdWJzdHIoJHR6YywgMCwgMSkgPT0gJy0nKSB7DQogICAgICAgICRuZWcg
PSB0cnVlOw0KICAgIH0gZWxzZSBpZiAoc3Vic3RyKCR0emMsIDAsIDEpICE9ICcrJykgew0K
ICAgICAgICAkdHpjID0gJysnLiR0emM7DQogICAgfQ0KICAgICRoaCA9IHN1YnN0cigkdHpj
LDEsMik7DQogICAgJG1tID0gc3Vic3RyKCR0emMsMywyKTsNCiAgICBnbG9iYWwgJHVzZXJu
YW1lOw0KICAgIGlmICgoJGhoIDwgJzAwJykgb3IgKCRtbSA8ICcwMCcpKQkvLyBub3QgbnVt
ZXJpYz8NCiAgICAgICAgICAgIGVycm9yX2xvZygiVW5yZWNvZ25pemVkIHRpbWUgem9uZT0k
dHpjIHVzZXJuYW1lPSR1c2VybmFtZSIpOw0KICAgIGlmICgoJGhoID4gJzk5Jykgb3IgKCRt
bSA+ICc5OScpKQkvLyBub3QgbnVtZXJpYz8NCiAgICAgICAgICAgIGVycm9yX2xvZygiVW5y
ZWNvZ25pemVkIHRpbWUgem9uZT0kdHpjIHVzZXJuYW1lPSR1c2VybmFtZSIpOw0KICAgICRp
VHpjID0gKCRoaCAqIDYwICsgJG1tKSAqIDYwOw0KICAgIGlmICgkbmVnKSAkaVR6YyA9IC0x
ICogKGludCkgJGlUemM7DQogICAgLyogc3RhbXAgaW4gZ210ICovDQogICAgJHN0YW1wIC09
ICRpVHpjOw0KICAgIC8qKiBub3cgZmluZCB3aGF0IHRoZSBzZXJ2ZXIgaXMgYXQgKiovDQog
ICAgJGN1cnJlbnQgPSBkYXRlKCdaJywgdGltZSgpKTsNCiAgICAvKiBzdGFtcCBpbiBsb2Nh
bCB0aW1lem9uZSAqLw0KICAgICRzdGFtcCArPSAkY3VycmVudDsNCg0KICAgIHJldHVybiAk
c3RhbXA7DQp9DQoNCi8qKg0KICogUmV0dXJucyB0aGUgKGxvY2FsaXplZCkgc3RyaW5nIGZv
ciBhIGdpdmVuIGRheSBudW1iZXIuDQogKiBTd2l0Y2ggc3lzdGVtIGhhcyBiZWVuIGludGVu
dGlvbmFseSBjaG9zZW4gZm9yIHRoZQ0KICogaW50ZXJuYXRpb25hbGl6YXRpb24gb2YgbW9u
dGggYW5kIGRheSBuYW1lcy4gVGhlIHJlYXNvbg0KICogaXMgdG8gbWFrZSBzdXJlIHRoYXQg
XygiIikgc3RyaW5ncyB3aWxsIGdvIGludG8gdGhlDQogKiBtYWluIHBvLg0KICoNCiAqIEBw
YXJhbSBpbnQgZGF5X251bWJlciB0aGUgZGF5IG51bWJlcg0KICogQHJldHVybiBzdHJpbmcg
dGhlIGRheSBpbiBodW1hbiByZWFkYWJsZSBmb3JtDQogKi8NCmZ1bmN0aW9uIGdldERheU5h
bWUoICRkYXlfbnVtYmVyICkgew0KDQogICAgc3dpdGNoKCAkZGF5X251bWJlciApIHsNCiAg
ICBjYXNlIDA6DQogICAgICAgICRyZXQgPSBfKCJTdW5kYXkiKTsNCiAgICAgICAgYnJlYWs7
DQogICAgY2FzZSAxOg0KICAgICAgICAkcmV0ID0gXygiTW9uZGF5Iik7DQogICAgICAgIGJy
ZWFrOw0KICAgIGNhc2UgMjoNCiAgICAgICAgJHJldCA9IF8oIlR1ZXNkYXkiKTsNCiAgICAg
ICAgYnJlYWs7DQogICAgY2FzZSAzOg0KICAgICAgICAkcmV0ID0gXygiV2VkbmVzZGF5Iik7
DQogICAgICAgIGJyZWFrOw0KICAgIGNhc2UgNDoNCiAgICAgICAgJHJldCA9IF8oIlRodXJz
ZGF5Iik7DQogICAgICAgIGJyZWFrOw0KICAgIGNhc2UgNToNCiAgICAgICAgJHJldCA9IF8o
IkZyaWRheSIpOw0KICAgICAgICBicmVhazsNCiAgICBjYXNlIDY6DQogICAgICAgICRyZXQg
PSBfKCJTYXR1cmRheSIpOw0KICAgICAgICBicmVhazsNCiAgICBkZWZhdWx0Og0KICAgICAg
ICAkcmV0ID0gJyc7DQogICAgfQ0KICAgIHJldHVybiggJHJldCApOw0KfQ0KDQovKioNCiAq
IExpa2UgZ2V0RGF5TmFtZSwgYnV0IHJldHVybnMgdGhlIHNob3J0IGZvcm0NCiAqIEBwYXJh
bSBpbnQgZGF5X251bWJlciB0aGUgZGF5IG51bWJlcg0KICogQHJldHVybiBzdHJpbmcgdGhl
IGRheSBpbiBzaG9ydCBodW1hbiByZWFkYWJsZSBmb3JtDQogKi8NCmZ1bmN0aW9uIGdldERh
eUFicnYoICRkYXlfbnVtYmVyICkgew0KDQogICAgc3dpdGNoKCAkZGF5X251bWJlciApIHsN
CiAgICBjYXNlIDA6DQogICAgICAgICRyZXQgPSBfKCJTdW4iKTsNCiAgICAgICAgYnJlYWs7
DQogICAgY2FzZSAxOg0KICAgICAgICAkcmV0ID0gXygiTW9uIik7DQogICAgICAgIGJyZWFr
Ow0KICAgIGNhc2UgMjoNCiAgICAgICAgJHJldCA9IF8oIlR1ZSIpOw0KICAgICAgICBicmVh
azsNCiAgICBjYXNlIDM6DQogICAgICAgICRyZXQgPSBfKCJXZWQiKTsNCiAgICAgICAgYnJl
YWs7DQogICAgY2FzZSA0Og0KICAgICAgICAkcmV0ID0gXygiVGh1Iik7DQogICAgICAgIGJy
ZWFrOw0KICAgIGNhc2UgNToNCiAgICAgICAgJHJldCA9IF8oIkZyaSIpOw0KICAgICAgICBi
cmVhazsNCiAgICBjYXNlIDY6DQogICAgICAgICRyZXQgPSBfKCJTYXQiKTsNCiAgICAgICAg
YnJlYWs7DQogICAgZGVmYXVsdDoNCiAgICAgICAgJHJldCA9ICcnOw0KICAgIH0NCiAgICBy
ZXR1cm4oICRyZXQgKTsNCn0NCg0KDQovKioNCiAqIFJldHVybnMgdGhlIChsb2NhbGl6ZWQp
IHN0cmluZyBmb3IgYSBnaXZlbiBtb250aCBudW1iZXIuDQogKg0KICogQHBhcmFtIHN0cmlu
ZyBtb250aF9udW1iZXIgdGhlIG1vbnRoIG51bWJlciAoMDEuLjEyKQ0KICogQHJldHVybiBz
dHJpbmcgdGhlIG1vbnRoIG5hbWUgaW4gaHVtYW4gcmVhZGFibGUgZm9ybQ0KICovDQpmdW5j
dGlvbiBnZXRNb250aE5hbWUoICRtb250aF9udW1iZXIgKSB7DQogICAgc3dpdGNoKCAkbW9u
dGhfbnVtYmVyICkgew0KICAgICBjYXNlICcwMSc6DQogICAgICAgICRyZXQgPSBfKCJKYW51
YXJ5Iik7DQogICAgICAgIGJyZWFrOw0KICAgICBjYXNlICcwMic6DQogICAgICAgICRyZXQg
PSBfKCJGZWJydWFyeSIpOw0KICAgICAgICBicmVhazsNCiAgICAgY2FzZSAnMDMnOg0KICAg
ICAgICAkcmV0ID0gXygiTWFyY2giKTsNCiAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgJzA0
JzoNCiAgICAgICAgJHJldCA9IF8oIkFwcmlsIik7DQogICAgICAgIGJyZWFrOw0KICAgICBj
YXNlICcwNSc6DQogICAgICAgICRyZXQgPSBfKCJNYXkiKTsNCiAgICAgICAgYnJlYWs7DQog
ICAgIGNhc2UgJzA2JzoNCiAgICAgICAgJHJldCA9IF8oIkp1bmUiKTsNCiAgICAgICAgYnJl
YWs7DQogICAgIGNhc2UgJzA3JzoNCiAgICAgICAgJHJldCA9IF8oIkp1bHkiKTsNCiAgICAg
ICAgYnJlYWs7DQogICAgIGNhc2UgJzA4JzoNCiAgICAgICAgJHJldCA9IF8oIkF1Z3VzdCIp
Ow0KICAgICAgICBicmVhazsNCiAgICAgY2FzZSAnMDknOg0KICAgICAgICAkcmV0ID0gXygi
U2VwdGVtYmVyIik7DQogICAgICAgIGJyZWFrOw0KICAgICBjYXNlICcxMCc6DQogICAgICAg
ICRyZXQgPSBfKCJPY3RvYmVyIik7DQogICAgICAgIGJyZWFrOw0KICAgICBjYXNlICcxMSc6
DQogICAgICAgICRyZXQgPSBfKCJOb3ZlbWJlciIpOw0KICAgICAgICBicmVhazsNCiAgICAg
Y2FzZSAnMTInOg0KICAgICAgICAkcmV0ID0gXygiRGVjZW1iZXIiKTsNCiAgICAgICAgYnJl
YWs7DQogICAgIGRlZmF1bHQ6DQogICAgICAgICRyZXQgPSAnJzsNCiAgICB9DQogICAgcmV0
dXJuKCAkcmV0ICk7DQp9DQoNCi8qKg0KICogUmV0dXJucyB0aGUgKGxvY2FsaXplZCkgc3Ry
aW5nIGZvciBhIGdpdmVuIG1vbnRoIG51bWJlciwNCiAqIHNob3J0IHJlcHJlc2VudGF0aW9u
Lg0KICoNCiAqIEBwYXJhbSBzdHJpbmcgbW9udGhfbnVtYmVyIHRoZSBtb250aCBudW1iZXIg
KDAxLi4xMikNCiAqIEByZXR1cm4gc3RyaW5nIHRoZSBzaG9ydGVuZWQgbW9udGggaW4gaHVt
YW4gcmVhZGFibGUgZm9ybQ0KICovDQpmdW5jdGlvbiBnZXRNb250aEFicnYoICRtb250aF9u
dW1iZXIgKSB7DQogICAgc3dpdGNoKCAkbW9udGhfbnVtYmVyICkgew0KICAgICBjYXNlICcw
MSc6DQogICAgICAgICRyZXQgPSBfKCJKYW4iKTsNCiAgICAgICAgYnJlYWs7DQogICAgIGNh
c2UgJzAyJzoNCiAgICAgICAgJHJldCA9IF8oIkZlYiIpOw0KICAgICAgICBicmVhazsNCiAg
ICAgY2FzZSAnMDMnOg0KICAgICAgICAkcmV0ID0gXygiTWFyIik7DQogICAgICAgIGJyZWFr
Ow0KICAgICBjYXNlICcwNCc6DQogICAgICAgICRyZXQgPSBfKCJBcHIiKTsNCiAgICAgICAg
YnJlYWs7DQogICAgIGNhc2UgJzA1JzoNCiAgICAgICAgJHJldCA9IF8oIk1hJiMxMjE7Iik7
DQogICAgICAgIGJyZWFrOw0KICAgICBjYXNlICcwNic6DQogICAgICAgICRyZXQgPSBfKCJK
dW4iKTsNCiAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgJzA3JzoNCiAgICAgICAgJHJldCA9
IF8oIkp1bCIpOw0KICAgICAgICBicmVhazsNCiAgICAgY2FzZSAnMDgnOg0KICAgICAgICAk
cmV0ID0gXygiQXVnIik7DQogICAgICAgIGJyZWFrOw0KICAgICBjYXNlICcwOSc6DQogICAg
ICAgICRyZXQgPSBfKCJTZXAiKTsNCiAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgJzEwJzoN
CiAgICAgICAgJHJldCA9IF8oIk9jdCIpOw0KICAgICAgICBicmVhazsNCiAgICAgY2FzZSAn
MTEnOg0KICAgICAgICAkcmV0ID0gXygiTm92Iik7DQogICAgICAgIGJyZWFrOw0KICAgICBj
YXNlICcxMic6DQogICAgICAgICRyZXQgPSBfKCJEZWMiKTsNCiAgICAgICAgYnJlYWs7DQog
ICAgIGRlZmF1bHQ6DQogICAgICAgICRyZXQgPSAnJzsNCiAgICB9DQogICAgcmV0dXJuKCAk
cmV0ICk7DQp9DQoNCi8qKg0KICogUmV0dXJucyB0aGUgbG9jYWxpemVkIHJlcHJlc2VudGF0
aW9uIG9mIHRoZSBkYXRlL3RpbWUuDQogKg0KICogQHBhcmFtIHN0cmluZyBkYXRlX2Zvcm1h
dCBUaGUgZm9ybWF0IGZvciB0aGUgZGF0ZSwgbGlrZSB0aGUgaW5wdXQgZm9yIHRoZSBQSFAg
ZGF0ZSgpIGZ1bmN0aW9uLg0KICogQHBhcmFtIGludCBzdGFtcCB0aGUgdGltZXN0YW1wIHRv
IGNvbnZlcnQNCiAqIEByZXR1cm4gc3RyaW5nIGEgZnVsbCBkYXRlIHJlcHJlc2VudGF0aW9u
DQogKi8NCmZ1bmN0aW9uIGRhdGVfaW50bCggJGRhdGVfZm9ybWF0LCAkc3RhbXAgKSB7DQog
ICAgJHJldCA9IHN0cl9yZXBsYWNlKCBhcnJheSgnRCcsJ0YnLCdsJywnTScpLCBhcnJheSgn
JDEnLCckMicsJyQzJywnJDQnKSwgJGRhdGVfZm9ybWF0ICk7DQogICAgLy8gdG8gcmVkdWNl
IHRoZSBkYXRlIGNhbGxzIHdlIHJldHJpZXZlIG0gYW5kIHcgaW4gdGhlIHNhbWUgY2FsbA0K
ICAgICRyZXQgPSBkYXRlKCd3I20jJy4gJHJldCwgJHN0YW1wICk7DQogICAgLy8gZXh0cmFj
dCBkYXkgYW5kIG1vbnRoIGluIG9yZGVyIHRvIHJlcGxhY2UgbGF0ZXIgYnkgaW50bCBkYXkg
YW5kIG1vbnRoDQogICAgJGFQYXJ0cyA9IGV4cGxvZGUoJyMnLCRyZXQpOw0KICAgICRyZXQg
PSBzdHJfcmVwbGFjZShhcnJheSgnJDEnLCckNCcsJyQyJywnJDMnLCksIGFycmF5KGdldERh
eUFicnYoJGFQYXJ0c1swXSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TW9udGhBYnJ2KCRhUGFydHNbMV0pLA0KICAg
ICAgICAgICAgICAgICAgIAkJCQkgICAgICAgICAgZ2V0TW9udGhOYW1lKCRhUGFydHNbMV0p
LA0KCQkJCQkJICAgICAgICAgIGdldERheU5hbWUoJGFQYXJ0c1swXSkpLA0KCQkJCQkJICAg
ICAgICAgICRhUGFydHNbMl0pOw0KICAgIHJldHVybiggJHJldCApOw0KfQ0KDQovKioNCiAq
IFRoaXMgcmV0dXJucyBhIGRhdGUgb2YgdGhlIGZvcm1hdCAiV2VkLCBPY3QgMjksIDIwMDMg
OTo1MiBhbSIsDQogKiBvciB0aGUgc2FtZSBpbiAyNEggZm9ybWF0IChkZXBlbmRpbmcgb24g
dGhlIHVzZXIncyBzZXR0aW5ncyksDQogKiBhbmQgdGFraW5nIGxvY2FsaXphdGlvbiBpbnRv
IGFjY291dC4NCiAqDQogKiBAcGFyYW0gaW50IHN0YW1wIHRoZSB0aW1lc3RhbXANCiAqIEBw
YXJhbSBzdHJpbmcgZmFsbGJhY2sgc3RyaW5nIHRvIHVzZSB3aGVuIHN0YW1wIG5vdCB2YWxp
ZA0KICogQHJldHVybiBzdHJpbmcgdGhlIGxvbmcgZGF0ZSBzdHJpbmcNCiAqLw0KZnVuY3Rp
b24gZ2V0TG9uZ0RhdGVTdHJpbmcoICRzdGFtcCwgJGZhbGxiYWNrID0gJycgKSB7DQoNCiAg
ICBnbG9iYWwgJGhvdXJfZm9ybWF0Ow0KDQogICAgaWYgKCRzdGFtcCA9PSAtMSkgew0KICAg
ICAgICByZXR1cm4gJGZhbGxiYWNrOw0KICAgIH0NCg0KICAgIGlmICggJGhvdXJfZm9ybWF0
ID09IFNNUFJFRl9USU1FXzEySFIgKSB7DQogICAgICAgICRkYXRlX2Zvcm1hdCA9IF8oIkQs
IEYgaiwgWSBnOmkgYSIpOw0KICAgIH0gZWxzZSB7DQogICAgICAgICRkYXRlX2Zvcm1hdCA9
IF8oIkQsIEYgaiwgWSBIOmkiKTsNCiAgICB9DQoNCiAgICByZXR1cm4oIGRhdGVfaW50bCgg
JGRhdGVfZm9ybWF0LCAkc3RhbXAgKSApOw0KDQp9DQoNCi8qKg0KICogUmV0dXJucyBhIHNo
b3J0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkYXRlLA0KICogdGFraW5nIHRpbWV6b25lcyBh
bmQgbG9jYWxpemF0aW9uIGludG8gYWNjb3VudC4NCiAqIERlcGVuZGluZyBvbiB1c2VyJ3Mg
c2V0dGluZ3MsIHRoaXMgc3RyaW5nIGNhbiBiZQ0KICogb2YgdGhlIGZvcm06ICIxNDoyMyIg
b3IgIkp1biAxNCwgMjAwMyIgZGVwZW5kaW5nDQogKiBvbiB3aGV0aGVyIHRoZSBzdGFtcCBp
cyAidG9kYXkiIG9yIG5vdC4NCiAqDQogKiBAcGFyYW0gaW50ICRzdGFtcCBUaGUgdGltZXN0
YW1wDQogKiBAcGFyYW0gYm9vbGVhbiAkcmV0dXJuX2Z1bGxfZGF0ZV9hbmRfdGltZSBXaGVu
IFRSVUUsDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
Z25vcmUgYWxsDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1c2VyIHNldHRpbmdzDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhbmQgdXNlIGZ1bGwNCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRhdGUgYW5kIHRpbWUNCiAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChPUFRJT05BTDsNCiAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgRkFMU0UpDQogKiBAcmV0dXJuIHN0cmlu
ZyB0aGUgZGF0ZSBzdHJpbmcNCiAqLw0KZnVuY3Rpb24gZ2V0RGF0ZVN0cmluZyggJHN0YW1w
LCAkcmV0dXJuX2Z1bGxfZGF0ZV9hbmRfdGltZT1GQUxTRSApIHsNCg0KICAgIGdsb2JhbCAk
aW52ZXJ0X3RpbWUsICRob3VyX2Zvcm1hdCwgJHNob3dfZnVsbF9kYXRlOw0KDQogICAgaWYg
KCAkc3RhbXAgPT0gLTEgKSB7DQogICAgICAgcmV0dXJuICcnOw0KICAgIH0NCg0KICAgICRu
b3cgPSB0aW1lKCk7DQoNCiAgICAkZGF0ZVogPSBkYXRlKCdaJywgJG5vdyApOw0KDQogICAg
Ly8gRklYTUU6IGlzbid0IHRoaXMgb2Jzb2xldGUgYW5kIGludHJvZHVjZWQgYXMgYSB0ZXJy
aWJsZSB3b3JrYXJvdW5kDQogICAgLy8gZm9yIGJ1Z3MgYXQgb3RoZXIgcGxhY2VzIHdoaWNo
IGFyZSBmaXhlZCBhIGxvbmcgdGltZSBhZ28/DQogICAgaWYgKCRpbnZlcnRfdGltZSkgew0K
ICAgICAgICAkZGF0ZVogPSAtICRkYXRlWjsNCiAgICB9DQoNCiAgICAvLyBjYWxjdWxhdGUg
d2hlbiBpdCB3YXMgbWlkbmlnaHQgYW5kIHdoZW4gaXQgd2lsbCBiZSwNCiAgICAvLyBpbiBv
cmRlciB0byBkaXNwbGF5IGRhdGVzIGRpZmZlcmVudGx5IGlmIHRoZXkncmUgJ3RvZGF5Jw0K
ICAgICRtaWRuaWdodCA9ICRub3cgLSAoJG5vdyAlIDg2NDAwKSAtICRkYXRlWjsNCiAgICAv
LyB0aGlzIGlzIHRvIGNvcnJlY3QgaWYgYWZ0ZXIgY2FsY3VsYXRpb25zIG1pZG5pZ2h0IGlz
IG1vcmUgdGhhbg0KICAgIC8vIG9uZSB3aG9sZSBkYXkgYXdheS4NCiAgICBpZiAoJG5vdyAt
ICRtaWRuaWdodCA+IDg2NDAwKSB7DQogICAgICAgICRtaWRuaWdodCArPSA4NjQwMDsNCiAg
ICB9DQogICAgJG5leHRtaWQgPSAkbWlkbmlnaHQgKyA4NjQwMDsNCg0KICAgIGlmICgkcmV0
dXJuX2Z1bGxfZGF0ZV9hbmRfdGltZSkgew0KICAgICAgICBpZiAoICRob3VyX2Zvcm1hdCA9
PSBTTVBSRUZfVElNRV8xMkhSICkgew0KICAgICAgICAgICAgJGRhdGVfZm9ybWF0ID0gXygi
RCwgRiBqLCBZIGc6aSBhIik7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkZGF0
ZV9mb3JtYXQgPSBfKCJELCBGIGosIFkgSDppIik7DQogICAgICAgIH0NCiAgICB9IGVsc2Ug
aWYgKCgkc2hvd19mdWxsX2RhdGUgPT0gMSkgfHwgKCRuZXh0bWlkIDwgJHN0YW1wKSkgew0K
ICAgICAgICAkZGF0ZV9mb3JtYXQgPSBfKCJNIGosIFkiKTsNCiAgICB9IGVsc2UgaWYgKCRt
aWRuaWdodCA8ICRzdGFtcCkgew0KICAgICAgICAvKiBUb2RheSAqLw0KICAgICAgICBpZiAo
ICRob3VyX2Zvcm1hdCA9PSBTTVBSRUZfVElNRV8xMkhSICkgew0KICAgICAgICAgICAgJGRh
dGVfZm9ybWF0ID0gXygiZzppIGEiKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAg
ICRkYXRlX2Zvcm1hdCA9IF8oIkg6aSIpOw0KICAgICAgICB9DQogICAgfSBlbHNlIGlmICgk
bWlkbmlnaHQgLSA1MTg0MDAgPCAkc3RhbXApIHsNCiAgICAgICAgLyogVGhpcyB3ZWVrICov
DQogICAgICAgIGlmICggJGhvdXJfZm9ybWF0ID09IFNNUFJFRl9USU1FXzEySFIgKSB7DQog
ICAgICAgICAgICAkZGF0ZV9mb3JtYXQgPSBfKCJELCBnOmkgYSIpOw0KICAgICAgICB9IGVs
c2Ugew0KICAgICAgICAgICAgJGRhdGVfZm9ybWF0ID0gXygiRCwgSDppIik7DQogICAgICAg
IH0NCiAgICB9IGVsc2Ugew0KICAgICAgICAvKiBiZWZvcmUgdGhpcyB3ZWVrICovDQogICAg
ICAgICRkYXRlX2Zvcm1hdCA9IF8oIk0gaiwgWSIpOw0KICAgIH0NCg0KICAgIHJldHVybigg
ZGF0ZV9pbnRsKCAkZGF0ZV9mb3JtYXQsICRzdGFtcCApICk7DQp9DQoNCi8qKg0KICogRGVj
b2RlcyBhIFJGQyA4MjIgRGF0ZS1oZWFkZXIgaW50byBhIHRpbWVzdGFtcA0KICoNCiAqIEBw
YXJhbSBhcnJheSBkYXRlUGFydHMgdGhlIERhdGUtaGVhZGVyIHNwbGl0IGJ5IHdoaXRlc3Bh
Y2UNCiAqIEByZXR1cm4gaW50IHRoZSB0aW1lc3RhbXAgY2FsY3VsYXRlZCBmcm9tIHRoZSBo
ZWFkZXINCiAqLw0KZnVuY3Rpb24gZ2V0VGltZVN0YW1wKCRkYXRlUGFydHMpIHsNCiAgICAv
KiogJGRhdGVQYXJ0c1swXSA9PSA8ZGF5IG9mIHdlZWs+ICAgTW9uLCBUdWUsIFdlZA0KICAg
ICoqICRkYXRlUGFydHNbMV0gPT0gPGRheSBvZiBtb250aD4gIDIzDQogICAgKiogJGRhdGVQ
YXJ0c1syXSA9PSA8bW9udGg+ICAgICAgICAgSmFuLCBGZWIsIE1hcg0KICAgICoqICRkYXRl
UGFydHNbM10gPT0gPHllYXI+ICAgICAgICAgIDE5OTkNCiAgICAqKiAkZGF0ZVBhcnRzWzRd
ID09IDx0aW1lPiAgICAgICAgICAxODo1NDoyMyAoSEg6TU06U1MpDQogICAgKiogJGRhdGVQ
YXJ0c1s1XSA9PSA8ZnJvbSBHTVQ+ICAgICAgKzAxMDANCiAgICAqKiAkZGF0ZVBhcnRzWzZd
ID09IDx6b25lPiAgICAgICAgICAoRURUKQ0KICAgICoqDQogICAgKiogTk9URTogIEluIFJG
QyA4MjIsIGl0IHN0YXRlcyB0aGF0IDxkYXkgb2Ygd2Vlaz4gaXMgb3B0aW9uYWwuDQogICAg
KiogICAgICAgIEluIHRoYXQgY2FzZSwgZGF0ZVBhcnRzWzBdIHdvdWxkIGJlIHRoZSA8ZGF5
IG9mIG1vbnRoPg0KICAgICoqICAgICAgICBhbmQgZXZlcnl0aGluZyB3b3VsZCBiZSBidW1w
ZWQgdXAgb25lLg0KICAgICoqLw0KICAgICRzYXZlRGF0ZVBhcnRzID0gJGRhdGVQYXJ0czsN
CiAgICBmb3JlYWNoICgkc2F2ZURhdGVQYXJ0cyBhcyAkaW5kZXg9PiR2YWx1ZSkgaWYgKGVt
cHR5KCR2YWx1ZSkpIHVuc2V0KCRkYXRlUGFydHNbJGluZGV4XSk7ICAvLyByZW1vdmUgZW1w
dHkgYXJyYXkgZWxlbWVudHMNCiAgICAkZGF0ZVBhcnRzID0gYXJyYXlfdmFsdWVzKCRkYXRl
UGFydHMpOyAgLy8gcmUtaW5kZXggc3RhcnRpbmcgd2l0aCB6ZXJvDQoNCi8vIHN0YXRpYyAk
bG9nX2NvdW50ID0gMTA7DQovLyBpZiAoKCRsb2dfY291bnQgPiAwKSBhbmQgKGNvdW50KCRz
YXZlRGF0ZVBhcnRzKSAhPSBjb3VudCgkZGF0ZVBhcnRzKSkpIHsNCi8vIGVycm9yX2xvZygi
c2F2ZURhdGVQYXJ0cz1cbiIgLiBwcmludF9yKCRzYXZlRGF0ZVBhcnRzLHRydWUpIC4gImRh
dGVQYXJ0cz1cbiIgLiBwcmludF9yKCRkYXRlUGFydHMsdHJ1ZSkpOw0KLy8gJGxvZ19jb3Vu
dC0tOw0KLy8gfQ0KDQogICAgaWYgKGNvdW50KCRkYXRlUGFydHMpIDwyKSB7DQogICAgICAg
IHJldHVybiAtMTsNCiAgICB9IGVsc2UgaWYgKGNvdW50KCRkYXRlUGFydHMpID09Mykgew0K
ICAgICAgICBpZiAoc3Vic3RyX2NvdW50KCRkYXRlUGFydHNbMF0sJy0nKSA9PSAyICYmDQog
ICAgICAgICAgICBzdWJzdHJfY291bnQoJGRhdGVQYXJ0c1sxXSwnOicpID09IDIpIHsNCiAg
ICAgICAgICAgIC8vICBkZC1Nb250aC15eXl5IDIzOjE5OjA1ICswMjAwDQogICAgICAgICAg
ICAvLyAgcmVkZWZpbmUgdGhlIGRhdGUNCiAgICAgICAgICAgICRhRGF0ZSA9IGV4cGxvZGUo
Jy0nLCRkYXRlUGFydHNbMF0pOw0KICAgICAgICAgICAgJG5ld0RhdGUgPSBhcnJheSgkYURh
dGVbMF0sJGFEYXRlWzFdLCRhRGF0ZVsyXSwkZGF0ZVBhcnRzWzFdLCRkYXRlUGFydHNbMl0p
Ow0KICAgICAgICAgICAgJGRhdGVQYXJ0cyA9ICRuZXdEYXRlOw0KICAgICAgICB9DQogICAg
fQ0KDQogICAgLyoNCiAgICAgKiBTaW1wbHkgY2hlY2sgdG8gc2VlIGlmIHRoZSBmaXJzdCBl
bGVtZW50IGluIHRoZSBkYXRlUGFydHMNCiAgICAgKiBhcnJheSBpcyBhbiBpbnRlZ2VyIG9y
IG5vdC4NCiAgICAgKiBTaW5jZSB0aGUgZGF5IG9mIHdlZWsgaXMgb3B0aW9uYWwsIHRoaXMg
Y2hlY2sgaXMgbmVlZGVkLg0KICAgICAqLw0KICAgIGlmICghaXNfbnVtZXJpYyh0cmltKCRk
YXRlUGFydHNbMF0pKSkgew0KICAgICAgICAvKiBjb3BlIHdpdGggYnJva2VuIG1haWxlcnMg
dGhhdCBzZW5kICJUdWUsMjMiIHdpdGhvdXQgc3BhY2UgKi8NCiAgICAgICAgaWYgKCBwcmVn
X21hdGNoICgnL15cdyssKFxkezEsMn0pJC8nLCAkZGF0ZVBhcnRzWzBdLCAkbWF0Y2gpICkg
ew0KICAgICAgICAgICAgLyogcmVwbGFjZSBUdWUsMjMgd2l0aCAyMyAqLw0KICAgICAgICAg
ICAgJGRhdGVQYXJ0c1swXSA9ICRtYXRjaFsxXTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAg
ICAgICAgIC8qIGp1c3QgZHJvcCB0aGUgZGF5IG9mIHRoZSB3ZWVrICovDQogICAgICAgICAg
ICBhcnJheV9zaGlmdCgkZGF0ZVBhcnRzKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICAvKiBj
YWxjdWxhdGUgdGltZXN0YW1wIHNlcGFyYXRlZCBmcm9tIHRoZSB6b25lIGFuZCBvYnMtem9u
ZSAqLw0KICAgICRzdGFtcCA9IHN0cnRvdGltZShpbXBsb2RlICgnICcsIGFycmF5X3NwbGlj
ZSAoJGRhdGVQYXJ0cywwLDQpKSk7DQogICAgaWYgKCFpc3NldCgkZGF0ZVBhcnRzWzBdKSkg
ew0KICAgICAgICAkZGF0ZVBhcnRzWzBdID0gJyswMDAwJzsNCiAgICB9DQoNCiAgICBpZiAo
IXByZWdfbWF0Y2goJy9eWystXXsxfVswLTldezR9JC8nLCRkYXRlUGFydHNbMF0pKSB7DQog
ICAgICAgIC8qIHpvbmUgaW4gb2JzLXpvbmUgZm9ybWF0ICovDQogICAgICAgIGlmIChwcmVn
X21hdGNoKCcvXCgoLispXCkvJywkZGF0ZVBhcnRzWzBdLCRyZWdzKSkgew0KICAgICAgICAg
ICAgJG9ic196b25lID0gJHJlZ3NbMV07DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAg
ICAkb2JzX3pvbmUgPSAkZGF0ZVBhcnRzWzBdOw0KICAgICAgICB9DQogICAgICAgIHJldHVy
biBnZXRHTVRTZWNvbmRzKCRzdGFtcCwgJG9ic196b25lKTsNCiAgICB9IGVsc2Ugew0KICAg
ICAgICByZXR1cm4gZ2V0R01UU2Vjb25kcygkc3RhbXAsICRkYXRlUGFydHNbMF0pOw0KICAg
IH0NCn0NCg0KLyogSSB1c2UgdGhpcyBmdW5jdGlvbiBmb3IgcHJvZmlsaW5nLiBTaG91bGQg
bmV2ZXIgYmUgY2FsbGVkIGluDQogICBhY3R1YWwgdmVyc2lvbnMgb2Ygc3F1aXJyZWxtYWls
IHJlbGVhc2VkIHRvIHB1YmxpYy4gKi8NCi8qDQogICBmdW5jdGlvbiBnZXRtaWNyb3RpbWUo
KSB7DQogICAgICAkbXRpbWUgPSBtaWNyb3RpbWUoKTsNCiAgICAgICRtdGltZSA9IGV4cGxv
ZGUoJyAnLCRtdGltZSk7DQogICAgICAkbXRpbWUgPSAkbXRpbWVbMV0gKyAkbXRpbWVbMF07
DQogICAgICByZXR1cm4gKCRtdGltZSk7DQogICB9DQoqLw0K
--------------7D6B3363763A1EC10D44B701
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--------------7D6B3363763A1EC10D44B701
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

-----
squirrelmail-devel mailing list
Posting guidelines: http://squirrelmail.org/postingguidelines
List address: [email protected]
List archives: http://news.gmane.org/gmane.mail.squirrelmail.devel
List info (subscribe/unsubscribe/change options): https://lists.sourceforge.net/lists/listinfo/squirrelmail-devel
--------------7D6B3363763A1EC10D44B701--