public inbox for gnats-prs@sourceware.org
help / color / mirror / Atom feed
* Re: gnats/30
@ 1999-12-01  1:34 jsm
  0 siblings, 0 replies; only message in thread
From: jsm @ 1999-12-01  1:34 UTC (permalink / raw)
  To: nobody; +Cc: gnats-prs

The following reply was made to PR gnats/30; it has been noted by GNATS.

From: jsm@cygnus.com
To: crash@cygnus.com, gnats-gnats@sourceware.cygnus.com,
  nobody@sourceware.cygnus.com
Cc:  
Subject: Re: gnats/30
Date: 1 Dec 1999 09:30:36 -0000

 Synopsis: Test PR.
 
 State-Changed-From-To: open->closed
 State-Changed-By: jsm
 State-Changed-When: Wed Dec  1 01:30:36 1999
 State-Changed-Why:
     test done
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=30&database=gnats
>From jsm@cygnus.com Wed Dec 01 01:34:00 1999
From: jsm@cygnus.com
To: nobody@sourceware.cygnus.com
Cc: gnats-prs@sourceware.cygnus.com
Subject: Re: gnats/32
Date: Wed, 01 Dec 1999 01:34:00 -0000
Message-id: <19991201093400.26982.qmail@sourceware.cygnus.com>
X-SW-Source: 1999-q4/msg00059.html
Content-length: 489

The following reply was made to PR gnats/32; it has been noted by GNATS.

From: jsm@cygnus.com
To: gnats-gnats@sourceware.cygnus.com, jsm@cygnus.com,
  nobody@sourceware.cygnus.com
Cc:  
Subject: Re: gnats/32
Date: 1 Dec 1999 09:31:05 -0000

 Synopsis: Test PR #3
 
 State-Changed-From-To: open->closed
 State-Changed-By: jsm
 State-Changed-When: Wed Dec  1 01:31:05 1999
 State-Changed-Why:
     test done
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=32&database=gnats
>From jsm@cygnus.com Wed Dec 01 01:34:00 1999
From: jsm@cygnus.com
To: nobody@sourceware.cygnus.com
Cc: gnats-prs@sourceware.cygnus.com
Subject: Re: gnats/31
Date: Wed, 01 Dec 1999 01:34:00 -0000
Message-id: <19991201093400.26973.qmail@sourceware.cygnus.com>
X-SW-Source: 1999-q4/msg00060.html
Content-length: 489

The following reply was made to PR gnats/31; it has been noted by GNATS.

From: jsm@cygnus.com
To: gnats-gnats@sourceware.cygnus.com, jsm@cygnus.com,
  nobody@sourceware.cygnus.com
Cc:  
Subject: Re: gnats/31
Date: 1 Dec 1999 09:30:52 -0000

 Synopsis: Test PR #2
 
 State-Changed-From-To: open->closed
 State-Changed-By: jsm
 State-Changed-When: Wed Dec  1 01:30:52 1999
 State-Changed-Why:
     test done
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=31&database=gnats
>From luik@s.orthogon.de Thu Dec 02 05:14:00 1999
From: luik@s.orthogon.de
To: gnats-gnats@sourceware.cygnus.com
Cc: hofmann@s.orthogon.de
Subject: gnats/33: lines starting with greater (>) confuse GNATS
Date: Thu, 02 Dec 1999 05:14:00 -0000
Message-id: <19991202130733.25974.qmail@sourceware.cygnus.com>
X-SW-Source: 1999-q4/msg00061.html
Content-length: 1341

>Number:         33
>Category:       gnats
>Synopsis:       lines starting with greater (>) confuse GNATS
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Dec 02 05:14:00 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     Andreas Luik
>Release:        gnats-3.113
>Organization:
>Environment:
all
>Description:
If a line of a PR description (or any other multi-line
text field) starts with a greater sign (>), GNATS seems
to interpret this a field tag, but since it does not
understand the tag, it moves the line (and all following
lines up to the next tag) to the >Unformatted section.

This happens both with send-pr.el and gnatsweb.

Possible solutions:

(a) protect > with a backslash
(b) ignore unknown tags, i.e. keep them at the current
    position in the PR.

Solution (b) would be prefered, because it would allow
projects to introduce their own "pseudo"-tags, like
>How-To-Repeat:
Use send-pr and submit a PR with a description line
starting with >.
Example:
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
 ">Deadline:" or something like that.
 >This is from the example entered in the How-To-Repeat section.
 See that the above line and this one are moved to the
 Unformatted section.
>From bhoule@airfiberinc.com Tue Dec 07 19:44:00 1999
From: bhoule@airfiberinc.com
To: gnats-gnats@sourceware.cygnus.com
Subject: gnats/34: $GNATS_ROOT not updated via Configure
Date: Tue, 07 Dec 1999 19:44:00 -0000
Message-id: <19991208033652.20674.qmail@sourceware.cygnus.com>
X-SW-Source: 1999-q4/msg00062.html
Content-length: 780

>Number:         34
>Category:       gnats
>Synopsis:       $GNATS_ROOT not updated via Configure
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Dec 07 19:44:00 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     bhoule@airfiberinc.com
>Release:        3.113
>Organization:
>Environment:
Solaris 2.6
>Description:
Ran ./configure --prefix, but gnats-adm location within gnats/Makefile did not get properly updated to reflect the new GNATS_ROOT. Assuming the docs are correct, GNATS_ROOT should have changed per my prefix rather than sticking at /usr/local/share/gnats.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From nobody@localhost.com Wed Dec 08 08:04:00 1999
From: nobody@localhost.com
To: gnats-gnats@sourceware.cygnus.com
Subject: gnats/35: Coffee Can Empty
Date: Wed, 08 Dec 1999 08:04:00 -0000
Message-id: <19991208155856.2634.qmail@sourceware.cygnus.com>
X-SW-Source: 1999-q4/msg00063.html
Content-length: 538

>Number:         35
>Category:       gnats
>Synopsis:       Coffee Can Empty
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          support
>Submitter-Id:   net
>Arrival-Date:   Wed Dec 08 08:04:00 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     nobody@localhost.com
>Release:        unknown-1.0
>Organization:
>Environment:

>Description:
It seems the coffy can is empty again
>How-To-Repeat:
duh
>Fix:
duh
>Release-Note:
>Audit-Trail:
>Unformatted:
>From mdunn@marconi-is.com Thu Dec 09 12:04:00 1999
From: mdunn@marconi-is.com
To: gnats-gnats@sourceware.cygnus.com
Cc: mdunn@marconi-is.com
Subject: gnats/36: Need to add category for gnatsweb
Date: Thu, 09 Dec 1999 12:04:00 -0000
Message-id: <19991209195917.21587.qmail@sourceware.cygnus.com>
X-SW-Source: 1999-q4/msg00064.html
Content-length: 719

>Number:         36
>Category:       gnats
>Synopsis:       Need to add category for gnatsweb
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          support
>Submitter-Id:   net
>Arrival-Date:   Thu Dec 09 12:04:00 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     Mark
>Release:        3.113
>Organization:
>Environment:
Solaris 2.6
>Description:
There needs to be a category added to your database for gnatsweb.

I believe gnatsweb won't work if you don't have an alias defined for your db. If you're operating with only one db, you don't need to define an alias.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From bhoule@airfiberinc.com Thu Dec 09 22:14:00 1999
From: "Bill Houle" <bhoule@airfiberinc.com>
To: nobody@sourceware.cygnus.com
Cc: gnats-prs@sourceware.cygnus.com
Subject: Re: gnats/34
Date: Thu, 09 Dec 1999 22:14:00 -0000
Message-id: <19991210061401.7891.qmail@sourceware.cygnus.com>
X-SW-Source: 1999-q4/msg00065.html
Content-length: 821

The following reply was made to PR gnats/34; it has been noted by GNATS.

From: "Bill Houle" <bhoule@airfiberinc.com>
To: bhoule@airfiberinc.com, gnats-gnats@sourceware.cygnus.com,
	 nobody@sourceware.cygnus.com
Cc:  
Subject: Re: gnats/34
Date: Thu, 09 Dec 1999 22:08:52 -0800

 Upon further consideration, this may not be a bug in the sense that I
 had thought. There was a 1998 installation of GNATS already on the
 system (which I did not realize). It looks like 'configure' looks within
 old script files to get values for certain variables, so it was
 overriding whatever I had specified on the configure command line. This
 is not sane behavior -- the command line should overrule all -- but it
 is not exactly a "bug".
 
 --bill
 
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=34&database=gnats
>From bhoule@airfiberinc.com Thu Dec 09 22:24:00 1999
From: bhoule@airfiberinc.com
To: gnats-gnats@sourceware.cygnus.com
Subject: gnats/37: send-pr values for CLASSES is static
Date: Thu, 09 Dec 1999 22:24:00 -0000
Message-id: <19991210061415.8023.qmail@sourceware.cygnus.com>
X-SW-Source: 1999-q4/msg00066.html
Content-length: 916

>Number:         37
>Category:       gnats
>Synopsis:       send-pr values for CLASSES is static
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Thu Dec 09 22:24:01 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     bhoule@airfiberinc.com
>Release:        3.113
>Organization:
>Environment:
Solaris 2.6
>Description:
While the CATEGORIES support in send-pr is dynamic, the CLASSES is static.

Thus, if you change the classes file, send-pr still looks for the default classes and won't let you enter your 'local' definitions.
>How-To-Repeat:
Change your classes file and run send-pr. Still uses defaults of: sw-bug, doc-bug, etc.
>Fix:
Make it read $GNATS_ROOT/gnats-adm/classes.
If I come up with something, I'll let you know.
>Release-Note:
>Audit-Trail:
>Unformatted:
>From bhoule@airfiberinc.com Thu Dec 09 23:24:00 1999
From: "Bill Houle" <bhoule@airfiberinc.com>
To: nobody@sourceware.cygnus.com
Cc: gnats-prs@sourceware.cygnus.com
Subject: Re: gnats/37
Date: Thu, 09 Dec 1999 23:24:00 -0000
Message-id: <19991210072400.27314.qmail@sourceware.cygnus.com>
X-SW-Source: 1999-q4/msg00067.html
Content-length: 2533

The following reply was made to PR gnats/37; it has been noted by GNATS.

From: "Bill Houle" <bhoule@airfiberinc.com>
To: bhoule@airfiberinc.com, gnats-gnats@sourceware.cygnus.com,
	 nobody@sourceware.cygnus.com
Cc:  
Subject: Re: gnats/37
Date: Thu, 09 Dec 1999 23:16:54 -0800

 Here's a fix:
 
 
 *** send-pr.sh  Thu Dec  9 15:08:43 1999
 --- send-pr.sh.orig     Thu Dec  9 14:33:24 1999
 ***************
 *** 244,261 ****
           ;;
   esac
   
 - CLASSES=`grep -v '^#' $GNATS_ROOT/gnats-adm/classes | grep -v '^$' |
 sed -n 's/:.*//gp`
 - if [ -z "$CLASSES" ]; then
 -   echo "$COMMAND: there are no classes defined for $GNATS_SITE!"
 -   exit 1
 - fi
 - 
 - # Format the class list
 - #CLASS_C='<[ sw-bug | doc-bug | change-request | support ] (one
 line)>'
 - CLASS_C=`echo $CLASSES | awk -F: '{ printf " %s |", $1 }'`
 - CLASS_C=`echo $CLASS_C | sed -n 's/|$//p'`
 - CLASS_C="<[ $CLASS_C ] (one line)>"
 - 
   ORIGINATOR_C='<name of the PR author (one line)>'
   ORGANIZATION_C='<organization of PR author (multiple lines)>'
   CONFIDENTIAL_C='<[ yes | no ] (one line)>'
 --- 244,249 ----
 ***************
 *** 265,270 ****
 --- 253,259 ----
   fi
   PRIORITY_C='<[ low | medium | high ] (one line)>'
   CATEGORY_C='<choose from the list of categories above (one line)>'
 + CLASS_C='<[ sw-bug | doc-bug | change-request | support ] (one line)>'
   RELEASE_C='<release number or tag (one line)>'
   ENVIRONMENT_C='<machine, os, target, libraries (multiple lines)>'
   DESCRIPTION_C='<precise description of the problem (multiple lines)>'
 ***************
 *** 464,483 ****
     #
     PATTERN=">Class:"
     CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
 !   FOUND=
 !   for C in $CLASSES
 !   do
 !     if [ "$C" = "$CLASS" ]; then FOUND=true ; break ; fi
 !   done
 !   if [ -n "$FOUND" ]; then
 !     CNT=`expr $CNT + 1`       
 !   else
 !     if [ -z "$CLASS" ]; then
 !       echo "$COMMAND: you must include a Class: field in your report."
 !     else
 !       echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'."
 !     fi
 !   fi
     #
     # 6) Check that synopsis is not empty
     #
 --- 453,462 ----
     #
     PATTERN=">Class:"
     CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
 !   case "$CLASS" in
 !     ""|sw-bug|doc-bug|change-request|support) CNT=`expr $CNT + 1` ;;
 !     *)  echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'."
 !   esac
     #
     # 6) Check that synopsis is not empty
     #
 
 
 
 
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=37&database=gnats
>From ehealy@planetout.com Thu Dec 16 11:04:00 1999
From: ehealy@planetout.com
To: gnats-gnats@sourceware.cygnus.com
Subject: gnats/39: test
Date: Thu, 16 Dec 1999 11:04:00 -0000
Message-id: <19991216190047.30481.qmail@sourceware.cygnus.com>
X-SW-Source: 1999-q4/msg00068.html
Content-length: 488

>Number:         39
>Category:       gnats
>Synopsis:       test
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Dec 16 11:04:00 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     ehealy@planetout.com
>Release:        unknown-1.0
>Organization:
>Environment:

>Description:
test
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From firefly@reksoft.ru Tue Dec 21 05:44:00 1999
From: firefly@reksoft.ru
To: gnats-gnats@sourceware.cygnus.com
Cc: drone@reksoft.ru
Subject: gnats/40: Two important timezones (MSK and W-SU, which are set by Solaris) are missing in getdate.y
Date: Tue, 21 Dec 1999 05:44:00 -0000
Message-id: <19991221133654.28987.qmail@sourceware.cygnus.com>
X-SW-Source: 1999-q4/msg00069.html
Content-length: 34036

>Number:         40
>Category:       gnats
>Synopsis:       Two important timezones (MSK and W-SU, which are set by Solaris) are missing in getdate.y
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Dec 21 05:44:00 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     Fedor Drizhinin
>Release:        gnats-3.113
>Organization:
>Environment:
SunOS firefly 5.7 Generic_106541-04 sun4u sparc SUNW,Ultra-5_10


>Description:
When user tries to edit the report either using gnatsweb 
or with tkgnats, it gets the error "Couldn't parse the 
ARRIVAL_DATE: <date>". 
Error occurs only when timezone is set to W-SU or MSK 
(timezones for western part of Russia - Moscow/St.Petersburg
timezone, GMT+3).
>How-To-Repeat:
Stable error
>Fix:
Fix is attached to this PR:
into the definition of 
static TABLE const TimezoneTable[]
in getdate.y

following lines should be added:
    { "msk",    tZONE,     -HOUR (3) },  
    { "w-su",   tZONE,     -HOUR (3) }, /* Russia, Zone 2 */
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="getdate.y"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="getdate.y"

JXsKLyoKKiogIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBTdGV2ZW4gTS4gQmVsbG92aW4gPHNtYkBy
ZXNlYXJjaC5hdHQuY29tPiB3aGlsZQoqKiAgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTm9ydGggQ2Fy
b2xpbmEgYXQgQ2hhcGVsIEhpbGwuICBMYXRlciB0d2Vha2VkIGJ5CioqICBhIGNvdXBsZSBvZiBw
ZW9wbGUgb24gVXNlbmV0LiAgQ29tcGxldGVseSBvdmVyaGF1bGVkIGJ5IFJpY2ggJGFsegoqKiAg
PHJzYWx6QGJibi5jb20+IGFuZCBKaW0gQmVyZXRzIDxqYmVyZXRzQGJibi5jb20+IGluIEF1Z3Vz
dCwgMTk5MDsKKiogIHNlbmQgYW55IGVtYWlsIHRvIFJpY2guCioqCioqICBUaGlzIGdyYW1tYXIg
aGFzIDEwIHNoaWZ0L3JlZHVjZSBjb25mbGljdHMuCioqCioqICBUaGlzIGNvZGUgaXMgaW4gdGhl
IHB1YmxpYyBkb21haW4gYW5kIGhhcyBubyBjb3B5cmlnaHQuCiovCi8qIFNVUFBSRVNTIDI4NyBv
biB5YWNjcGFyX3NjY3NpZCAqLy8qIFVudXNlZCBzdGF0aWMgdmFyaWFibGUgKi8KLyogU1VQUFJF
U1MgMjg4IG9uIHl5ZXJybGFiICovLyogTGFiZWwgdW51c2VkICovCgojaW5jbHVkZSA8YW5zaWRl
Y2wuaD4KCiNpZmRlZiBIQVZFX0NPTkZJR19ICiNpbmNsdWRlIDxjb25maWcuaD4KI2VuZGlmCgov
KiBTaW5jZSB0aGUgY29kZSBvZiBnZXRkYXRlLnkgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBFbWFj
cyBleGVjdXRhYmxlCiAgIGl0c2VsZiwgdGhlcmUgaXMgbm8gbmVlZCB0byAjZGVmaW5lIHN0YXRp
YyBpbiB0aGlzIGZpbGUuICBFdmVuIGlmCiAgIHRoZSBjb2RlIHdlcmUgaW5jbHVkZWQgaW4gdGhl
IEVtYWNzIGV4ZWN1dGFibGUsIGl0IHByb2JhYmx5CiAgIHdvdWxkbid0IGRvIGFueSBoYXJtIHRv
ICN1bmRlZiBpdCBoZXJlOyB0aGlzIHdpbGwgb25seSBjYXVzZQogICBwcm9ibGVtcyBpZiB3ZSB0
cnkgdG8gd3JpdGUgdG8gYSBzdGF0aWMgdmFyaWFibGUsIHdoaWNoIEkgZG9uJ3QKICAgdGhpbmsg
dGhpcyBjb2RlIG5lZWRzIHRvIGRvLiAgKi8KI2lmZGVmIGVtYWNzCiN1bmRlZiBzdGF0aWMKI2Vu
ZGlmCgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPGN0eXBlLmg+CgojaWYJZGVmaW5lZCAo
dm1zKQojaW5jbHVkZSA8dHlwZXMuaD4KI2luY2x1ZGUgPHRpbWUuaD4KI2Vsc2UKI2luY2x1ZGUg
PHN5cy90eXBlcy5oPgojaWZkZWYgVElNRV9XSVRIX1NZU19USU1FCiNpbmNsdWRlIDxzeXMvdGlt
ZS5oPgojaW5jbHVkZSA8dGltZS5oPgojZWxzZQojaWZkZWYgSEFWRV9TWVNfVElNRV9ICiNpbmNs
dWRlIDxzeXMvdGltZS5oPgojZWxzZQojaW5jbHVkZSA8dGltZS5oPgojZW5kaWYKI2VuZGlmCgoj
aWZkZWYgdGltZXpvbmUKI3VuZGVmIHRpbWV6b25lIC8qIG5lZWRlZCBmb3Igc2dpICovCiNlbmRp
ZgoKI2lmIGRlZmluZWQgKEhBVkVfU1lTX1RJTUVCX0gpCiNpbmNsdWRlIDxzeXMvdGltZWIuaD4K
I2Vsc2UKCi8qIGdldF9kYXRlIHVzZXMgdGhlIG9ic29sZXRlIGBzdHJ1Y3QgdGltZWInIGluIGl0
cyBpbnRlcmZhY2UhICBGSVhNRS4KICAgU2luY2Ugc29tZSBzeXN0ZW1zIGRvbid0IGhhdmUgaXQs
IHdlIGRlZmluZSBpdCBoZXJlOwogICBjYWxsZXJzIG11c3QgZG8gbGlrZXdpc2UuICAqLwpzdHJ1
Y3QgdGltZWIKICB7CiAgICB0aW1lX3QJCXRpbWU7CQkvKiBTZWNvbmRzIHNpbmNlIHRoZSBlcG9j
aAkqLwogICAgdW5zaWduZWQgc2hvcnQJbWlsbGl0bTsJLyogRmllbGQgbm90IHVzZWQJCSovCiAg
ICBzaG9ydAkJdGltZXpvbmU7CS8qIE1pbnV0ZXMgd2VzdCBvZiBHTVQJCSovCiAgICBzaG9ydAkJ
ZHN0ZmxhZzsJLyogRmllbGQgbm90IHVzZWQJCSovCn07CiNlbmRpZiAvKiBkZWZpbmVkIChIQVZF
X1NZU19USU1FQl9IKSAqLwoKI2VuZGlmCS8qIGRlZmluZWQgKHZtcykgKi8KCiNpZiBkZWZpbmVk
IChTVERDX0hFQURFUlMpIHx8IGRlZmluZWQgKFVTRykKI2luY2x1ZGUgPHN0cmluZy5oPgojZW5k
aWYKCi8qIFNvbWUgb2xkIHZlcnNpb25zIG9mIGJpc29uIGdlbmVyYXRlIHBhcnNlcnMgdGhhdCB1
c2UgYmNvcHkuCiAgIFRoYXQgbG9zZXMgb24gc3lzdGVtcyB0aGF0IGRvbid0IHByb3ZpZGUgdGhl
IGZ1bmN0aW9uLCBzbyB3ZSBoYXZlCiAgIHRvIHJlZGVmaW5lIGl0IGhlcmUuICAqLwojaWYgIWRl
ZmluZWQgKEhBVkVfQkNPUFkpICYmIGRlZmluZWQgKEhBVkVfTUVNQ1BZKSAmJiAhZGVmaW5lZCAo
YmNvcHkpCiNkZWZpbmUgYmNvcHkoZnJvbSwgdG8sIGxlbikgbWVtY3B5ICgodG8pLCAoZnJvbSks
IChsZW4pKQojZW5kaWYKCmV4dGVybiBzdHJ1Y3QgdG0JKmdtdGltZSAoKTsKZXh0ZXJuIHN0cnVj
dCB0bQkqbG9jYWx0aW1lICgpOwoKI2RlZmluZSB5eXBhcnNlIGdldGRhdGVfeXlwYXJzZQojZGVm
aW5lIHl5bGV4IGdldGRhdGVfeXlsZXgKI2RlZmluZSB5eWVycm9yIGdldGRhdGVfeXllcnJvcgoK
c3RhdGljIGludCB5eWxleCAoKTsKc3RhdGljIGludCB5eWVycm9yICgpOwoKI2RlZmluZSBFUE9D
SAkJMTk3MAojZGVmaW5lIEhPVVIoeCkJCSgodGltZV90KSh4KSAqIDYwKQojZGVmaW5lIFNFQ1NQ
RVJEQVkJKDI0TCAqIDYwTCAqIDYwTCkKCiNkZWZpbmUgTUFYX0JVRkZfTEVOICAgIDEyOCAgIC8q
IHNpemUgb2YgYnVmZmVyIHRvIHJlYWQgdGhlIGRhdGUgaW50byAqLwoKLyoKKiogIEFuIGVudHJ5
IGluIHRoZSBsZXhpY2FsIGxvb2t1cCB0YWJsZS4KKi8KdHlwZWRlZiBzdHJ1Y3QgX1RBQkxFIHsK
ICAgIGNvbnN0IGNoYXIJKm5hbWU7CiAgICBpbnQJCXR5cGU7CiAgICB0aW1lX3QJdmFsdWU7Cn0g
VEFCTEU7CgoKLyoKKiogIERheWxpZ2h0LXNhdmluZ3MgbW9kZTogIG9uLCBvZmYsIG9yIG5vdCB5
ZXQga25vd24uCiovCnR5cGVkZWYgZW51bSBfRFNUTU9ERSB7CiAgICBEU1RvbiwgRFNUb2ZmLCBE
U1RtYXliZQp9IERTVE1PREU7CgovKgoqKiAgTWVyaWRpYW46ICBhbSwgcG0sIG9yIDI0LWhvdXIg
c3R5bGUuCiovCnR5cGVkZWYgZW51bSBfTUVSSURJQU4gewogICAgTUVSYW0sIE1FUnBtLCBNRVIy
NAp9IE1FUklESUFOOwoKCi8qCioqICBHbG9iYWwgdmFyaWFibGVzLiAgV2UgY291bGQgZ2V0IHJp
ZCBvZiBtb3N0IG9mIHRoZXNlIGJ5IHVzaW5nIGEgZ29vZAoqKiAgdW5pb24gYXMgdGhlIHlhY2Mg
c3RhY2suICAoVGhpcyByb3V0aW5lIHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gYmVmb3JlCioqICB5
YWNjIGhhZCB0aGUgJXVuaW9uIGNvbnN0cnVjdC4pICBNYXliZSBzb21lZGF5OyByaWdodCBub3cg
d2Ugb25seSB1c2UKKiogIHRoZSAldW5pb24gdmVyeSByYXJlbHkuCiovCnN0YXRpYyBjaGFyCSp5
eUlucHV0OwpzdGF0aWMgRFNUTU9ERQl5eURTVG1vZGU7CnN0YXRpYyB0aW1lX3QJeXlEYXlPcmRp
bmFsOwpzdGF0aWMgdGltZV90CXl5RGF5TnVtYmVyOwpzdGF0aWMgaW50CXl5SGF2ZURhdGU7CnN0
YXRpYyBpbnQJeXlIYXZlRGF5OwpzdGF0aWMgaW50CXl5SGF2ZVJlbDsKc3RhdGljIGludAl5eUhh
dmVUaW1lOwpzdGF0aWMgaW50CXl5SGF2ZVpvbmU7CnN0YXRpYyB0aW1lX3QJeXlUaW1lem9uZTsK
c3RhdGljIHRpbWVfdAl5eURheTsKc3RhdGljIHRpbWVfdAl5eUhvdXI7CnN0YXRpYyB0aW1lX3QJ
eXlNaW51dGVzOwpzdGF0aWMgdGltZV90CXl5TW9udGg7CnN0YXRpYyB0aW1lX3QJeXlTZWNvbmRz
OwpzdGF0aWMgdGltZV90CXl5WWVhcjsKc3RhdGljIE1FUklESUFOCXl5TWVyaWRpYW47CnN0YXRp
YyB0aW1lX3QJeXlSZWxNb250aDsKc3RhdGljIHRpbWVfdAl5eVJlbFNlY29uZHM7CgolfQoKJXVu
aW9uIHsKICAgIHRpbWVfdAkJTnVtYmVyOwogICAgZW51bSBfTUVSSURJQU4JTWVyaWRpYW47Cn0K
CiV0b2tlbgl0QUdPIHREQVkgdERBWVpPTkUgdElEIHRNRVJJRElBTiB0TUlOVVRFX1VOSVQgdE1P
TlRIIHRNT05USF9VTklUCiV0b2tlbgl0U0VDX1VOSVQgdFNOVU1CRVIgdFVOVU1CRVIgdFpPTkUg
dERTVAoKJXR5cGUJPE51bWJlcj4JdERBWSB0REFZWk9ORSB0TUlOVVRFX1VOSVQgdE1PTlRIIHRN
T05USF9VTklUCiV0eXBlCTxOdW1iZXI+CXRTRUNfVU5JVCB0U05VTUJFUiB0VU5VTUJFUiB0Wk9O
RQoldHlwZQk8TWVyaWRpYW4+CXRNRVJJRElBTiBvX21lcmlkCgolJQoKc3BlYwk6IC8qIE5VTEwg
Ki8KCXwgc3BlYyBpdGVtCgk7CgppdGVtCTogdGltZSB7CgkgICAgeXlIYXZlVGltZSsrOwoJfQoJ
fCB6b25lIHsKCSAgICB5eUhhdmVab25lKys7Cgl9Cgl8IGRhdGUgewoJICAgIHl5SGF2ZURhdGUr
KzsKCX0KCXwgZGF5IHsKCSAgICB5eUhhdmVEYXkrKzsKCX0KCXwgcmVsIHsKCSAgICB5eUhhdmVS
ZWwrKzsKCX0KCXwgbnVtYmVyCgk7Cgp0aW1lCTogdFVOVU1CRVIgdE1FUklESUFOIHsKCSAgICB5
eUhvdXIgPSAkMTsKCSAgICB5eU1pbnV0ZXMgPSAwOwoJICAgIHl5U2Vjb25kcyA9IDA7CgkgICAg
eXlNZXJpZGlhbiA9ICQyOwoJfQoJfCB0VU5VTUJFUiAnOicgdFVOVU1CRVIgb19tZXJpZCB7Cgkg
ICAgeXlIb3VyID0gJDE7CgkgICAgeXlNaW51dGVzID0gJDM7CgkgICAgeXlTZWNvbmRzID0gMDsK
CSAgICB5eU1lcmlkaWFuID0gJDQ7Cgl9Cgl8IHRVTlVNQkVSICc6JyB0VU5VTUJFUiB0U05VTUJF
UiB7CgkgICAgeXlIb3VyID0gJDE7CgkgICAgeXlNaW51dGVzID0gJDM7CgkgICAgeXlNZXJpZGlh
biA9IE1FUjI0OwoJICAgIHl5RFNUbW9kZSA9IERTVG9mZjsKCSAgICB5eVRpbWV6b25lID0gLSAo
JDQgJSAxMDAgKyAoJDQgLyAxMDApICogNjApOwoJfQoJfCB0VU5VTUJFUiAnOicgdFVOVU1CRVIg
JzonIHRVTlVNQkVSIG9fbWVyaWQgewoJICAgIHl5SG91ciA9ICQxOwoJICAgIHl5TWludXRlcyA9
ICQzOwoJICAgIHl5U2Vjb25kcyA9ICQ1OwoJICAgIHl5TWVyaWRpYW4gPSAkNjsKCX0KCXwgdFVO
VU1CRVIgJzonIHRVTlVNQkVSICc6JyB0VU5VTUJFUiB0U05VTUJFUiB7CgkgICAgeXlIb3VyID0g
JDE7CgkgICAgeXlNaW51dGVzID0gJDM7CgkgICAgeXlTZWNvbmRzID0gJDU7CgkgICAgeXlNZXJp
ZGlhbiA9IE1FUjI0OwoJICAgIHl5RFNUbW9kZSA9IERTVG9mZjsKCSAgICB5eVRpbWV6b25lID0g
LSAoJDYgJSAxMDAgKyAoJDYgLyAxMDApICogNjApOwoJfQoJOwoKem9uZQk6IHRaT05FIHsKCSAg
ICB5eVRpbWV6b25lID0gJDE7CgkgICAgeXlEU1Rtb2RlID0gRFNUb2ZmOwoJfQoJfCB0REFZWk9O
RSB7CgkgICAgeXlUaW1lem9uZSA9ICQxOwoJICAgIHl5RFNUbW9kZSA9IERTVG9uOwoJfQoJfAoJ
ICB0Wk9ORSB0RFNUIHsKCSAgICB5eVRpbWV6b25lID0gJDE7CgkgICAgeXlEU1Rtb2RlID0gRFNU
b247Cgl9Cgk7CgpkYXkJOiB0REFZIHsKCSAgICB5eURheU9yZGluYWwgPSAxOwoJICAgIHl5RGF5
TnVtYmVyID0gJDE7Cgl9Cgl8IHREQVkgJywnIHsKCSAgICB5eURheU9yZGluYWwgPSAxOwoJICAg
IHl5RGF5TnVtYmVyID0gJDE7Cgl9Cgl8IHRVTlVNQkVSIHREQVkgewoJICAgIHl5RGF5T3JkaW5h
bCA9ICQxOwoJICAgIHl5RGF5TnVtYmVyID0gJDI7Cgl9Cgk7CgpkYXRlCTogdFVOVU1CRVIgJy8n
IHRVTlVNQkVSIHsKCSAgICB5eU1vbnRoID0gJDE7CgkgICAgeXlEYXkgPSAkMzsKCX0KCXwgdFVO
VU1CRVIgJy8nIHRVTlVNQkVSICcvJyB0VU5VTUJFUiB7CgkgICAgeXlNb250aCA9ICQxOwoJICAg
IHl5RGF5ID0gJDM7CgkgICAgeXlZZWFyID0gJDU7Cgl9Cgl8IHRVTlVNQkVSIHRTTlVNQkVSIHRT
TlVNQkVSIHsKCSAgICAvKiBJU08gODYwMSBmb3JtYXQuICB5eXl5LW1tLWRkLiAgKi8KCSAgICB5
eVllYXIgPSAkMTsKCSAgICB5eU1vbnRoID0gLSQyOwoJICAgIHl5RGF5ID0gLSQzOwoJfQoJfCB0
VU5VTUJFUiB0TU9OVEggdFNOVU1CRVIgewoJICAgIC8qIGUuZy4gMTctSlVOLTE5OTIuICAqLwoJ
ICAgIHl5RGF5ID0gJDE7CgkgICAgeXlNb250aCA9ICQyOwoJICAgIHl5WWVhciA9IC0kMzsKCX0K
CXwgdE1PTlRIIHRVTlVNQkVSIHsKCSAgICB5eU1vbnRoID0gJDE7CgkgICAgeXlEYXkgPSAkMjsK
CX0KCXwgdE1PTlRIIHRVTlVNQkVSICcsJyB0VU5VTUJFUiB7CgkgICAgeXlNb250aCA9ICQxOwoJ
ICAgIHl5RGF5ID0gJDI7CgkgICAgeXlZZWFyID0gJDQ7Cgl9Cgl8IHRVTlVNQkVSIHRNT05USCB7
CgkgICAgeXlNb250aCA9ICQyOwoJICAgIHl5RGF5ID0gJDE7Cgl9Cgl8IHRVTlVNQkVSIHRNT05U
SCB0VU5VTUJFUiB7CgkgICAgeXlNb250aCA9ICQyOwoJICAgIHl5RGF5ID0gJDE7CgkgICAgeXlZ
ZWFyID0gJDM7Cgl9Cgk7CgpyZWwJOiByZWx1bml0IHRBR08gewoJICAgIHl5UmVsU2Vjb25kcyA9
IC15eVJlbFNlY29uZHM7CgkgICAgeXlSZWxNb250aCA9IC15eVJlbE1vbnRoOwoJfQoJfCByZWx1
bml0Cgk7CgpyZWx1bml0CTogdFVOVU1CRVIgdE1JTlVURV9VTklUIHsKCSAgICB5eVJlbFNlY29u
ZHMgKz0gJDEgKiAkMiAqIDYwTDsKCX0KCXwgdFNOVU1CRVIgdE1JTlVURV9VTklUIHsKCSAgICB5
eVJlbFNlY29uZHMgKz0gJDEgKiAkMiAqIDYwTDsKCX0KCXwgdE1JTlVURV9VTklUIHsKCSAgICB5
eVJlbFNlY29uZHMgKz0gJDEgKiA2MEw7Cgl9Cgl8IHRTTlVNQkVSIHRTRUNfVU5JVCB7CgkgICAg
eXlSZWxTZWNvbmRzICs9ICQxOwoJfQoJfCB0VU5VTUJFUiB0U0VDX1VOSVQgewoJICAgIHl5UmVs
U2Vjb25kcyArPSAkMTsKCX0KCXwgdFNFQ19VTklUIHsKCSAgICB5eVJlbFNlY29uZHMrKzsKCX0K
CXwgdFNOVU1CRVIgdE1PTlRIX1VOSVQgewoJICAgIHl5UmVsTW9udGggKz0gJDEgKiAkMjsKCX0K
CXwgdFVOVU1CRVIgdE1PTlRIX1VOSVQgewoJICAgIHl5UmVsTW9udGggKz0gJDEgKiAkMjsKCX0K
CXwgdE1PTlRIX1VOSVQgewoJICAgIHl5UmVsTW9udGggKz0gJDE7Cgl9Cgk7CgpudW1iZXIJOiB0
VU5VTUJFUiB7CgkgICAgaWYgKHl5SGF2ZVRpbWUgJiYgeXlIYXZlRGF0ZSAmJiAheXlIYXZlUmVs
KQoJCXl5WWVhciA9ICQxOwoJICAgIGVsc2UgewoJCWlmICgkMT4xMDAwMCkgewoJCSAgICB5eUhh
dmVEYXRlKys7CgkJICAgIHl5RGF5PSAoJDEpJTEwMDsKCQkgICAgeXlNb250aD0gKCQxLzEwMCkl
MTAwOwoJCSAgICB5eVllYXIgPSAkMS8xMDAwMDsKCQl9CgkJZWxzZSB7CgkJICAgIHl5SGF2ZVRp
bWUrKzsKCQkgICAgaWYgKCQxIDwgMTAwKSB7CgkJCXl5SG91ciA9ICQxOwoJCQl5eU1pbnV0ZXMg
PSAwOwoJCSAgICB9CgkJICAgIGVsc2UgewoJCSAgICAJeXlIb3VyID0gJDEgLyAxMDA7CgkJICAg
IAl5eU1pbnV0ZXMgPSAkMSAlIDEwMDsKCQkgICAgfQoJCSAgICB5eVNlY29uZHMgPSAwOwoJCSAg
ICB5eU1lcmlkaWFuID0gTUVSMjQ7CgkgICAgICAgIH0KCSAgICB9Cgl9Cgk7CgpvX21lcmlkCTog
LyogTlVMTCAqLyB7CgkgICAgJCQgPSBNRVIyNDsKCX0KCXwgdE1FUklESUFOIHsKCSAgICAkJCA9
ICQxOwoJfQoJOwoKJSUKCi8qIE1vbnRoIGFuZCBkYXkgdGFibGUuICovCnN0YXRpYyBUQUJMRSBj
b25zdCBNb250aERheVRhYmxlW10gPSB7CiAgICB7ICJqYW51YXJ5IiwJdE1PTlRILCAgMSB9LAog
ICAgeyAiZmVicnVhcnkiLAl0TU9OVEgsICAyIH0sCiAgICB7ICJtYXJjaCIsCQl0TU9OVEgsICAz
IH0sCiAgICB7ICJhcHJpbCIsCQl0TU9OVEgsICA0IH0sCiAgICB7ICJtYXkiLAkJdE1PTlRILCAg
NSB9LAogICAgeyAianVuZSIsCQl0TU9OVEgsICA2IH0sCiAgICB7ICJqdWx5IiwJCXRNT05USCwg
IDcgfSwKICAgIHsgImF1Z3VzdCIsCQl0TU9OVEgsICA4IH0sCiAgICB7ICJzZXB0ZW1iZXIiLAl0
TU9OVEgsICA5IH0sCiAgICB7ICJzZXB0IiwJCXRNT05USCwgIDkgfSwKICAgIHsgIm9jdG9iZXIi
LAl0TU9OVEgsIDEwIH0sCiAgICB7ICJub3ZlbWJlciIsCXRNT05USCwgMTEgfSwKICAgIHsgImRl
Y2VtYmVyIiwJdE1PTlRILCAxMiB9LAogICAgeyAic3VuZGF5IiwJCXREQVksIDAgfSwKICAgIHsg
Im1vbmRheSIsCQl0REFZLCAxIH0sCiAgICB7ICJ0dWVzZGF5IiwJdERBWSwgMiB9LAogICAgeyAi
dHVlcyIsCQl0REFZLCAyIH0sCiAgICB7ICJ3ZWRuZXNkYXkiLAl0REFZLCAzIH0sCiAgICB7ICJ3
ZWRuZXMiLAkJdERBWSwgMyB9LAogICAgeyAidGh1cnNkYXkiLAl0REFZLCA0IH0sCiAgICB7ICJ0
aHVyIiwJCXREQVksIDQgfSwKICAgIHsgInRodXJzIiwJCXREQVksIDQgfSwKICAgIHsgImZyaWRh
eSIsCQl0REFZLCA1IH0sCiAgICB7ICJzYXR1cmRheSIsCXREQVksIDYgfSwKICAgIHsgTlVMTCB9
Cn07CgovKiBUaW1lIHVuaXRzIHRhYmxlLiAqLwpzdGF0aWMgVEFCTEUgY29uc3QgVW5pdHNUYWJs
ZVtdID0gewogICAgeyAieWVhciIsCQl0TU9OVEhfVU5JVCwJMTIgfSwKICAgIHsgIm1vbnRoIiwJ
CXRNT05USF9VTklULAkxIH0sCiAgICB7ICJmb3J0bmlnaHQiLAl0TUlOVVRFX1VOSVQsCTE0ICog
MjQgKiA2MCB9LAogICAgeyAid2VlayIsCQl0TUlOVVRFX1VOSVQsCTcgKiAyNCAqIDYwIH0sCiAg
ICB7ICJkYXkiLAkJdE1JTlVURV9VTklULAkxICogMjQgKiA2MCB9LAogICAgeyAiaG91ciIsCQl0
TUlOVVRFX1VOSVQsCTYwIH0sCiAgICB7ICJtaW51dGUiLAkJdE1JTlVURV9VTklULAkxIH0sCiAg
ICB7ICJtaW4iLAkJdE1JTlVURV9VTklULAkxIH0sCiAgICB7ICJzZWNvbmQiLAkJdFNFQ19VTklU
LAkxIH0sCiAgICB7ICJzZWMiLAkJdFNFQ19VTklULAkxIH0sCiAgICB7IE5VTEwgfQp9OwoKLyog
QXNzb3J0ZWQgcmVsYXRpdmUtdGltZSB3b3Jkcy4gKi8Kc3RhdGljIFRBQkxFIGNvbnN0IE90aGVy
VGFibGVbXSA9IHsKICAgIHsgInRvbW9ycm93IiwJdE1JTlVURV9VTklULAkxICogMjQgKiA2MCB9
LAogICAgeyAieWVzdGVyZGF5IiwJdE1JTlVURV9VTklULAktMSAqIDI0ICogNjAgfSwKICAgIHsg
InRvZGF5IiwJCXRNSU5VVEVfVU5JVCwJMCB9LAogICAgeyAibm93IiwJCXRNSU5VVEVfVU5JVCwJ
MCB9LAogICAgeyAibGFzdCIsCQl0VU5VTUJFUiwJLTEgfSwKICAgIHsgInRoaXMiLAkJdE1JTlVU
RV9VTklULAkwIH0sCiAgICB7ICJuZXh0IiwJCXRVTlVNQkVSLAkyIH0sCiAgICB7ICJmaXJzdCIs
CQl0VU5VTUJFUiwJMSB9LAovKiAgeyAic2Vjb25kIiwJCXRVTlVNQkVSLAkyIH0sICovCiAgICB7
ICJ0aGlyZCIsCQl0VU5VTUJFUiwJMyB9LAogICAgeyAiZm91cnRoIiwJCXRVTlVNQkVSLAk0IH0s
CiAgICB7ICJmaWZ0aCIsCQl0VU5VTUJFUiwJNSB9LAogICAgeyAic2l4dGgiLAkJdFVOVU1CRVIs
CTYgfSwKICAgIHsgInNldmVudGgiLAl0VU5VTUJFUiwJNyB9LAogICAgeyAiZWlnaHRoIiwJCXRV
TlVNQkVSLAk4IH0sCiAgICB7ICJuaW50aCIsCQl0VU5VTUJFUiwJOSB9LAogICAgeyAidGVudGgi
LAkJdFVOVU1CRVIsCTEwIH0sCiAgICB7ICJlbGV2ZW50aCIsCXRVTlVNQkVSLAkxMSB9LAogICAg
eyAidHdlbGZ0aCIsCXRVTlVNQkVSLAkxMiB9LAogICAgeyAiYWdvIiwJCXRBR08sCTEgfSwKICAg
IHsgTlVMTCB9Cn07CgovKiBUaGUgdGltZXpvbmUgdGFibGUuICovCi8qIFNvbWUgb2YgdGhlc2Ug
YXJlIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBhIHRpbWVfdCBjYW4ndCBzdG9yZSBhIGZsb2F0LiAq
LwpzdGF0aWMgVEFCTEUgY29uc3QgVGltZXpvbmVUYWJsZVtdID0gewogICAgeyAiZ210IiwJdFpP
TkUsICAgICBIT1VSICggMCkgfSwJLyogR3JlZW53aWNoIE1lYW4gKi8KICAgIHsgInV0IiwJdFpP
TkUsICAgICBIT1VSICggMCkgfSwJLyogVW5pdmVyc2FsIChDb29yZGluYXRlZCkgKi8KICAgIHsg
InV0YyIsCXRaT05FLCAgICAgSE9VUiAoIDApIH0sCiAgICB7ICJ3ZXQiLAl0Wk9ORSwgICAgIEhP
VVIgKCAwKSB9LAkvKiBXZXN0ZXJuIEV1cm9wZWFuICovCiAgICB7ICJic3QiLAl0REFZWk9ORSwg
IEhPVVIgKCAwKSB9LAkvKiBCcml0aXNoIFN1bW1lciAqLwogICAgeyAid2F0IiwJdFpPTkUsICAg
ICBIT1VSICggMSkgfSwJLyogV2VzdCBBZnJpY2EgKi8KICAgIHsgImF0IiwJdFpPTkUsICAgICBI
T1VSICggMikgfSwJLyogQXpvcmVzICovCiNpZgkwCiAgICAvKiBGb3IgY29tcGxldGVuZXNzLiAg
QlNUIGlzIGFsc28gQnJpdGlzaCBTdW1tZXIsIGFuZCBHU1QgaXMKICAgICAqIGFsc28gR3VhbSBT
dGFuZGFyZC4gKi8KICAgIHsgImJzdCIsCXRaT05FLCAgICAgSE9VUiAoIDMpIH0sCS8qIEJyYXpp
bCBTdGFuZGFyZCAqLwogICAgeyAiZ3N0IiwJdFpPTkUsICAgICBIT1VSICggMykgfSwJLyogR3Jl
ZW5sYW5kIFN0YW5kYXJkICovCiNlbmRpZgojaWYgMAogICAgeyAibmZ0IiwJdFpPTkUsICAgICBI
T1VSICgzLjUpIH0sCS8qIE5ld2ZvdW5kbGFuZCAqLwogICAgeyAibnN0IiwJdFpPTkUsICAgICBI
T1VSICgzLjUpIH0sCS8qIE5ld2ZvdW5kbGFuZCBTdGFuZGFyZCAqLwogICAgeyAibmR0IiwJdERB
WVpPTkUsICBIT1VSICgzLjUpIH0sCS8qIE5ld2ZvdW5kbGFuZCBEYXlsaWdodCAqLwojZW5kaWYK
ICAgIHsgImFzdCIsCXRaT05FLCAgICAgSE9VUiAoIDQpIH0sCS8qIEF0bGFudGljIFN0YW5kYXJk
ICovCiAgICB7ICJhZHQiLAl0REFZWk9ORSwgIEhPVVIgKCA0KSB9LAkvKiBBdGxhbnRpYyBEYXls
aWdodCAqLwogICAgeyAiZWVzdCIsICAgdFpPTkUsICAgICAtSE9VUiAoMikgfSwgLyogRWFzdGVy
biBFdXJvcGVhbiBTdGFuZGFyZCBUaW1lICovCiAgICB7ICJlc3QiLAl0Wk9ORSwgICAgIEhPVVIg
KCA1KSB9LAkvKiBFYXN0ZXJuIFN0YW5kYXJkICovCiAgICB7ICJlZHQiLAl0REFZWk9ORSwgIEhP
VVIgKCA1KSB9LAkvKiBFYXN0ZXJuIERheWxpZ2h0ICovCiAgICB7ICJjc3QiLAl0Wk9ORSwgICAg
IEhPVVIgKCA2KSB9LAkvKiBDZW50cmFsIFN0YW5kYXJkICovCiAgICB7ICJjZHQiLAl0REFZWk9O
RSwgIEhPVVIgKCA2KSB9LAkvKiBDZW50cmFsIERheWxpZ2h0ICovCiAgICB7ICJtc3QiLAl0Wk9O
RSwgICAgIEhPVVIgKCA3KSB9LAkvKiBNb3VudGFpbiBTdGFuZGFyZCAqLwogICAgeyAibWR0IiwJ
dERBWVpPTkUsICBIT1VSICggNykgfSwJLyogTW91bnRhaW4gRGF5bGlnaHQgKi8KICAgIHsgInBz
dCIsCXRaT05FLCAgICAgSE9VUiAoIDgpIH0sCS8qIFBhY2lmaWMgU3RhbmRhcmQgKi8KICAgIHsg
InBkdCIsCXREQVlaT05FLCAgSE9VUiAoIDgpIH0sCS8qIFBhY2lmaWMgRGF5bGlnaHQgKi8KICAg
IHsgInlzdCIsCXRaT05FLCAgICAgSE9VUiAoIDkpIH0sCS8qIFl1a29uIFN0YW5kYXJkICovCiAg
ICB7ICJ5ZHQiLAl0REFZWk9ORSwgIEhPVVIgKCA5KSB9LAkvKiBZdWtvbiBEYXlsaWdodCAqLwog
ICAgeyAiaHN0IiwJdFpPTkUsICAgICBIT1VSICgxMCkgfSwJLyogSGF3YWlpIFN0YW5kYXJkICov
CiAgICB7ICJoZHQiLAl0REFZWk9ORSwgIEhPVVIgKDEwKSB9LAkvKiBIYXdhaWkgRGF5bGlnaHQg
Ki8KICAgIHsgImNhdCIsCXRaT05FLCAgICAgSE9VUiAoMTApIH0sCS8qIENlbnRyYWwgQWxhc2th
ICovCiAgICB7ICJhaHN0IiwJdFpPTkUsICAgICBIT1VSICgxMCkgfSwJLyogQWxhc2thLUhhd2Fp
aSBTdGFuZGFyZCAqLwogICAgeyAibnQiLAl0Wk9ORSwgICAgIEhPVVIgKDExKSB9LAkvKiBOb21l
ICovCiAgICB7ICJpZGx3IiwJdFpPTkUsICAgICBIT1VSICgxMikgfSwJLyogSW50ZXJuYXRpb25h
bCBEYXRlIExpbmUgV2VzdCAqLwogICAgeyAiY2V0IiwJdFpPTkUsICAgICAtSE9VUiAoMSkgfSwJ
LyogQ2VudHJhbCBFdXJvcGVhbiAqLwogICAgeyAiY2VzIiwgICAgdERBWVpPTkUsICAtSE9VUiAo
MSkgfSwgLyogQ2VudHJhbCBFdXJvcGVhbiBTdW1tZXIgKi8KICAgIHsgImNlc3QiLCAgIHREQVla
T05FLCAgLUhPVVIgKDEpIH0sIC8qIENlbnRyYWwgRXVyb3BlYW4gU3VtbWVyICovCiAgICB7ICJt
ZXQiLAl0Wk9ORSwgICAgIC1IT1VSICgxKSB9LAkvKiBNaWRkbGUgRXVyb3BlYW4gKi8KICAgIHsg
Im1ld3QiLAl0Wk9ORSwgICAgIC1IT1VSICgxKSB9LAkvKiBNaWRkbGUgRXVyb3BlYW4gV2ludGVy
ICovCiAgICB7ICJtZXN0IiwJdERBWVpPTkUsICAtSE9VUiAoMSkgfSwJLyogTWlkZGxlIEV1cm9w
ZWFuIFN1bW1lciAqLwogICAgeyAibWVzeiIsCXREQVlaT05FLCAgLUhPVVIgKDEpIH0sCS8qIE1p
ZGRsZSBFdXJvcGVhbiBTdW1tZXIgKi8KICAgIHsgInN3dCIsCXRaT05FLCAgICAgLUhPVVIgKDEp
IH0sCS8qIFN3ZWRpc2ggV2ludGVyICovCiAgICB7ICJzc3QiLAl0REFZWk9ORSwgIC1IT1VSICgx
KSB9LAkvKiBTd2VkaXNoIFN1bW1lciAqLwogICAgeyAiZnd0IiwJdFpPTkUsICAgICAtSE9VUiAo
MSkgfSwJLyogRnJlbmNoIFdpbnRlciAqLwogICAgeyAiZnN0IiwJdERBWVpPTkUsICAtSE9VUiAo
MSkgfSwJLyogRnJlbmNoIFN1bW1lciAqLwogICAgeyAiZWV0IiwJdFpPTkUsICAgICAtSE9VUiAo
MikgfSwJLyogRWFzdGVybiBFdXJvcGUsIFVTU1IgWm9uZSAxICovCiAgICB7ICJidCIsCXRaT05F
LCAgICAgLUhPVVIgKDMpIH0sCS8qIEJhZ2hkYWQsIFVTU1IgWm9uZSAyICovCiAgICB7ICJtc2si
LCAgICB0Wk9ORSwgICAgIC1IT1VSICgzKSB9LCAgCiAgICB7ICJ3LXN1IiwgICB0Wk9ORSwgICAg
IC1IT1VSICgzKSB9LCAvKiBCVUdGSVggISEhICovCiNpZiAwCiAgICB7ICJpdCIsCXRaT05FLCAg
ICAgLUhPVVIgKDMuNSkgfSwvKiBJcmFuICovCiNlbmRpZgogICAgeyAienA0IiwJdFpPTkUsICAg
ICAtSE9VUiAoNCkgfSwJLyogVVNTUiBab25lIDMgKi8KICAgIHsgInpwNSIsCXRaT05FLCAgICAg
LUhPVVIgKDUpIH0sCS8qIFVTU1IgWm9uZSA0ICovCiNpZiAwCiAgICB7ICJpc3QiLAl0Wk9ORSwg
ICAgIC1IT1VSICg1LjUpIH0sLyogSW5kaWFuIFN0YW5kYXJkICovCiNlbmRpZgogICAgeyAienA2
IiwJdFpPTkUsICAgICAtSE9VUiAoNikgfSwJLyogVVNTUiBab25lIDUgKi8KI2lmCTAKICAgIC8q
IEZvciBjb21wbGV0ZW5lc3MuICBOU1QgaXMgYWxzbyBOZXdmb3VuZGxhbmQgU3RhbmRhcmQsIGFu
ZCBTU1QgaXMKICAgICAqIGFsc28gU3dlZGlzaCBTdW1tZXIuICovCiAgICB7ICJuc3QiLAl0Wk9O
RSwgICAgIC1IT1VSICg2LjUpIH0sLyogTm9ydGggU3VtYXRyYSAqLwogICAgeyAic3N0IiwJdFpP
TkUsICAgICAtSE9VUiAoNykgfSwJLyogU291dGggU3VtYXRyYSwgVVNTUiBab25lIDYgKi8KI2Vu
ZGlmCS8qIDAgKi8KICAgIHsgIndhc3QiLAl0Wk9ORSwgICAgIC1IT1VSICg3KSB9LAkvKiBXZXN0
IEF1c3RyYWxpYW4gU3RhbmRhcmQgKi8KICAgIHsgIndhZHQiLAl0REFZWk9ORSwgIC1IT1VSICg3
KSB9LAkvKiBXZXN0IEF1c3RyYWxpYW4gRGF5bGlnaHQgKi8KI2lmIDAKICAgIHsgImp0IiwJdFpP
TkUsICAgICAtSE9VUiAoNy41KSB9LC8qIEphdmEgKDNwbSBpbiBDcm9udXNsYW5kISkgKi8KI2Vu
ZGlmCiAgICB7ICJjY3QiLAl0Wk9ORSwgICAgIC1IT1VSICg4KSB9LAkvKiBDaGluYSBDb2FzdCwg
VVNTUiBab25lIDcgKi8KICAgIHsgImpzdCIsCXRaT05FLCAgICAgLUhPVVIgKDkpIH0sCS8qIEph
cGFuIFN0YW5kYXJkLCBVU1NSIFpvbmUgOCAqLwojaWYgMAogICAgeyAiY2FzdCIsCXRaT05FLCAg
ICAgLUhPVVIgKDkuNSkgfSwvKiBDZW50cmFsIEF1c3RyYWxpYW4gU3RhbmRhcmQgKi8KICAgIHsg
ImNhZHQiLAl0REFZWk9ORSwgIC1IT1VSICg5LjUpIH0sLyogQ2VudHJhbCBBdXN0cmFsaWFuIERh
eWxpZ2h0ICovCiNlbmRpZgogICAgeyAiZWFzdCIsCXRaT05FLCAgICAgLUhPVVIgKDEwKSB9LAkv
KiBFYXN0ZXJuIEF1c3RyYWxpYW4gU3RhbmRhcmQgKi8KICAgIHsgImVhZHQiLAl0REFZWk9ORSwg
IC1IT1VSICgxMCkgfSwJLyogRWFzdGVybiBBdXN0cmFsaWFuIERheWxpZ2h0ICovCiAgICB7ICJn
c3QiLAl0Wk9ORSwgICAgIC1IT1VSICgxMCkgfSwJLyogR3VhbSBTdGFuZGFyZCwgVVNTUiBab25l
IDkgKi8KICAgIHsgIm56dCIsCXRaT05FLCAgICAgLUhPVVIgKDEyKSB9LAkvKiBOZXcgWmVhbGFu
ZCAqLwogICAgeyAibnpzdCIsCXRaT05FLCAgICAgLUhPVVIgKDEyKSB9LAkvKiBOZXcgWmVhbGFu
ZCBTdGFuZGFyZCAqLwogICAgeyAibnpkdCIsCXREQVlaT05FLCAgLUhPVVIgKDEyKSB9LAkvKiBO
ZXcgWmVhbGFuZCBEYXlsaWdodCAqLwogICAgeyAiaWRsZSIsCXRaT05FLCAgICAgLUhPVVIgKDEy
KSB9LAkvKiBJbnRlcm5hdGlvbmFsIERhdGUgTGluZSBFYXN0ICovCiAgICB7ICBOVUxMICB9Cn07
CgovKiBNaWxpdGFyeSB0aW1lem9uZSB0YWJsZS4gKi8Kc3RhdGljIFRBQkxFIGNvbnN0IE1pbGl0
YXJ5VGFibGVbXSA9IHsKICAgIHsgImEiLAl0Wk9ORSwJSE9VUiAoICAxKSB9LAogICAgeyAiYiIs
CXRaT05FLAlIT1VSICggIDIpIH0sCiAgICB7ICJjIiwJdFpPTkUsCUhPVVIgKCAgMykgfSwKICAg
IHsgImQiLAl0Wk9ORSwJSE9VUiAoICA0KSB9LAogICAgeyAiZSIsCXRaT05FLAlIT1VSICggIDUp
IH0sCiAgICB7ICJmIiwJdFpPTkUsCUhPVVIgKCAgNikgfSwKICAgIHsgImciLAl0Wk9ORSwJSE9V
UiAoICA3KSB9LAogICAgeyAiaCIsCXRaT05FLAlIT1VSICggIDgpIH0sCiAgICB7ICJpIiwJdFpP
TkUsCUhPVVIgKCAgOSkgfSwKICAgIHsgImsiLAl0Wk9ORSwJSE9VUiAoIDEwKSB9LAogICAgeyAi
bCIsCXRaT05FLAlIT1VSICggMTEpIH0sCiAgICB7ICJtIiwJdFpPTkUsCUhPVVIgKCAxMikgfSwK
ICAgIHsgIm4iLAl0Wk9ORSwJSE9VUiAoLSAxKSB9LAogICAgeyAibyIsCXRaT05FLAlIT1VSICgt
IDIpIH0sCiAgICB7ICJwIiwJdFpPTkUsCUhPVVIgKC0gMykgfSwKICAgIHsgInEiLAl0Wk9ORSwJ
SE9VUiAoLSA0KSB9LAogICAgeyAiciIsCXRaT05FLAlIT1VSICgtIDUpIH0sCiAgICB7ICJzIiwJ
dFpPTkUsCUhPVVIgKC0gNikgfSwKICAgIHsgInQiLAl0Wk9ORSwJSE9VUiAoLSA3KSB9LAogICAg
eyAidSIsCXRaT05FLAlIT1VSICgtIDgpIH0sCiAgICB7ICJ2IiwJdFpPTkUsCUhPVVIgKC0gOSkg
fSwKICAgIHsgInciLAl0Wk9ORSwJSE9VUiAoLTEwKSB9LAogICAgeyAieCIsCXRaT05FLAlIT1VS
ICgtMTEpIH0sCiAgICB7ICJ5IiwJdFpPTkUsCUhPVVIgKC0xMikgfSwKICAgIHsgInoiLAl0Wk9O
RSwJSE9VUiAoICAwKSB9LAogICAgeyBOVUxMIH0KfTsKCgwKCgovKiBBUkdTVVNFRCAqLwpzdGF0
aWMgaW50Cnl5ZXJyb3IgKHMpCiAgICBjaGFyCSpzOwp7CiAgcmV0dXJuIDA7Cn0KCgpzdGF0aWMg
dGltZV90ClRvU2Vjb25kcyAoSG91cnMsIE1pbnV0ZXMsIFNlY29uZHMsIE1lcmlkaWFuKQogICAg
dGltZV90CUhvdXJzOwogICAgdGltZV90CU1pbnV0ZXM7CiAgICB0aW1lX3QJU2Vjb25kczsKICAg
IE1FUklESUFOCU1lcmlkaWFuOwp7CiAgaWYgKE1pbnV0ZXMgPCAwIHx8IE1pbnV0ZXMgPiA1OSB8
fCBTZWNvbmRzIDwgMCB8fCBTZWNvbmRzID4gNTkpCiAgICByZXR1cm4gLTE7CiAgc3dpdGNoIChN
ZXJpZGlhbikgewogIGNhc2UgTUVSMjQ6CiAgICBpZiAoSG91cnMgPCAwIHx8IEhvdXJzID4gMjMp
CiAgICAgIHJldHVybiAtMTsKICAgIHJldHVybiAoSG91cnMgKiA2MEwgKyBNaW51dGVzKSAqIDYw
TCArIFNlY29uZHM7CiAgY2FzZSBNRVJhbToKICAgIGlmIChIb3VycyA8IDEgfHwgSG91cnMgPiAx
MikKICAgICAgcmV0dXJuIC0xOwogICAgaWYgKEhvdXJzID09IDEyKQogICAgICBIb3VycyA9IDA7
CiAgICByZXR1cm4gKEhvdXJzICogNjBMICsgTWludXRlcykgKiA2MEwgKyBTZWNvbmRzOwogIGNh
c2UgTUVScG06CiAgICBpZiAoSG91cnMgPCAxIHx8IEhvdXJzID4gMTIpCiAgICAgIHJldHVybiAt
MTsKICAgIGlmIChIb3VycyA9PSAxMikKICAgICAgSG91cnMgPSAwOwogICAgcmV0dXJuICgoSG91
cnMgKyAxMikgKiA2MEwgKyBNaW51dGVzKSAqIDYwTCArIFNlY29uZHM7CiAgZGVmYXVsdDoKICAg
IGFib3J0ICgpOwogIH0KICAvKiBOT1RSRUFDSEVEICovCn0KCgpzdGF0aWMgdGltZV90CkNvbnZl
cnQgKE1vbnRoLCBEYXksIFllYXIsIEhvdXJzLCBNaW51dGVzLCBTZWNvbmRzLCBNZXJpZGlhbiwg
RFNUbW9kZSkKICAgIHRpbWVfdAlNb250aDsKICAgIHRpbWVfdAlEYXk7CiAgICB0aW1lX3QJWWVh
cjsKICAgIHRpbWVfdAlIb3VyczsKICAgIHRpbWVfdAlNaW51dGVzOwogICAgdGltZV90CVNlY29u
ZHM7CiAgICBNRVJJRElBTglNZXJpZGlhbjsKICAgIERTVE1PREUJRFNUbW9kZTsKewogIHN0YXRp
YyBpbnQgRGF5c0luTW9udGhbMTJdID0gewogICAgMzEsIDAsIDMxLCAzMCwgMzEsIDMwLCAzMSwg
MzEsIDMwLCAzMSwgMzAsIDMxCiAgfTsKICB0aW1lX3QJdG9kOwogIHRpbWVfdAlKdWxpYW47CiAg
aW50CQlpOwoKICBpZiAoWWVhciA8IDApCiAgICBZZWFyID0gLVllYXI7CiAgaWYgKFllYXIgPCAx
MDApIHsKICAgIGlmIChZZWFyID4gMzgpCiAgICAgIFllYXIgKz0gMTkwMDsKICAgIGVsc2UKICAg
ICAgWWVhciArPSAyMDAwOwogIH0KICBEYXlzSW5Nb250aFsxXSA9IFllYXIgJSA0ID09IDAgJiYg
KFllYXIgJSAxMDAgIT0gMCB8fCBZZWFyICUgNDAwID09IDApCiAgICA/IDI5IDogMjg7CiAgaWYg
KFllYXIgPCBFUE9DSCB8fCBZZWFyID4gMjAzNwogICAgICB8fCBNb250aCA8IDEgfHwgTW9udGgg
PiAxMgogICAgICAvKiBMaW50IGZsdWZmOiAgImNvbnZlcnNpb24gZnJvbSBsb25nIG1heSBsb3Nl
IGFjY3VyYWN5IiAqLwogICAgICB8fCBEYXkgPCAxIHx8IERheSA+IERheXNJbk1vbnRoWyhpbnQp
LS1Nb250aF0pCiAgICByZXR1cm4gLTE7CgogIGZvciAoSnVsaWFuID0gRGF5IC0gMSwgaSA9IDA7
IGkgPCBNb250aDsgaSsrKQogICAgSnVsaWFuICs9IERheXNJbk1vbnRoW2ldOwogIGZvciAoaSA9
IEVQT0NIOyBpIDwgWWVhcjsgaSsrKQogICAgSnVsaWFuICs9IDM2NSArIChpICUgNCA9PSAwICYm
IChpICUgMTAwICE9IDAgfHwgaSAlIDQwMCA9PSAwKSk7CiAgSnVsaWFuICo9IFNFQ1NQRVJEQVk7
CiAgSnVsaWFuICs9IHl5VGltZXpvbmUgKiA2MEw7CiAgaWYgKCh0b2QgPSBUb1NlY29uZHMgKEhv
dXJzLCBNaW51dGVzLCBTZWNvbmRzLCBNZXJpZGlhbikpIDwgMCkKICAgIHJldHVybiAtMTsKICBK
dWxpYW4gKz0gdG9kOwogIGlmIChEU1Rtb2RlID09IERTVG9uCiAgICAgIHx8IChEU1Rtb2RlID09
IERTVG1heWJlICYmIGxvY2FsdGltZSAoJkp1bGlhbiktPnRtX2lzZHN0KSkKICAgIEp1bGlhbiAt
PSA2MCAqIDYwOwogIHJldHVybiBKdWxpYW47Cn0KCgpzdGF0aWMgdGltZV90CkRTVGNvcnJlY3Qg
KFN0YXJ0LCBGdXR1cmUpCiAgICB0aW1lX3QJU3RhcnQ7CiAgICB0aW1lX3QJRnV0dXJlOwp7CiAg
dGltZV90CVN0YXJ0RGF5OwogIHRpbWVfdAlGdXR1cmVEYXk7CgogIFN0YXJ0RGF5ID0gKGxvY2Fs
dGltZSAoJlN0YXJ0KS0+dG1faG91ciArIDEpICUgMjQ7CiAgRnV0dXJlRGF5ID0gKGxvY2FsdGlt
ZSAoJkZ1dHVyZSktPnRtX2hvdXIgKyAxKSAlIDI0OwogIHJldHVybiAoRnV0dXJlIC0gU3RhcnQp
ICsgKFN0YXJ0RGF5IC0gRnV0dXJlRGF5KSAqIDYwTCAqIDYwTDsKfQoKCnN0YXRpYyB0aW1lX3QK
UmVsYXRpdmVEYXRlIChTdGFydCwgRGF5T3JkaW5hbCwgRGF5TnVtYmVyKQogICAgdGltZV90CVN0
YXJ0OwogICAgdGltZV90CURheU9yZGluYWw7CiAgICB0aW1lX3QJRGF5TnVtYmVyOwp7CiAgc3Ry
dWN0IHRtCSp0bTsKICB0aW1lX3QJbm93OwoKICBub3cgPSBTdGFydDsKICB0bSA9IGxvY2FsdGlt
ZSAoJm5vdyk7CiAgbm93ICs9IFNFQ1NQRVJEQVkgKiAoKERheU51bWJlciAtIHRtLT50bV93ZGF5
ICsgNykgJSA3KTsKICBub3cgKz0gNyAqIFNFQ1NQRVJEQVkgKiAoRGF5T3JkaW5hbCA8PSAwID8g
RGF5T3JkaW5hbCA6IERheU9yZGluYWwgLSAxKTsKICByZXR1cm4gRFNUY29ycmVjdCAoU3RhcnQs
IG5vdyk7Cn0KCgpzdGF0aWMgdGltZV90ClJlbGF0aXZlTW9udGggKFN0YXJ0LCBSZWxNb250aCkK
ICAgIHRpbWVfdAlTdGFydDsKICAgIHRpbWVfdAlSZWxNb250aDsKewogIHN0cnVjdCB0bQkqdG07
CiAgdGltZV90CU1vbnRoOwogIHRpbWVfdAlZZWFyOwoKICBpZiAoUmVsTW9udGggPT0gMCkKICAg
IHJldHVybiAwOwogIHRtID0gbG9jYWx0aW1lICgmU3RhcnQpOwogIE1vbnRoID0gMTIgKiB0bS0+
dG1feWVhciArIHRtLT50bV9tb24gKyBSZWxNb250aDsKICBZZWFyID0gTW9udGggLyAxMjsKICBN
b250aCA9IE1vbnRoICUgMTIgKyAxOwogIHJldHVybiBEU1Rjb3JyZWN0IChTdGFydCwKCQkgICAg
IENvbnZlcnQgKE1vbnRoLCAodGltZV90KXRtLT50bV9tZGF5LCBZZWFyLAoJCQkgICAgICAodGlt
ZV90KXRtLT50bV9ob3VyLCAodGltZV90KXRtLT50bV9taW4sICh0aW1lX3QpdG0tPnRtX3NlYywK
CQkJICAgICAgTUVSMjQsIERTVG1heWJlKSk7Cn0KCgpzdGF0aWMgaW50Ckxvb2t1cFdvcmQgKGJ1
ZmYpCiAgICBjaGFyCQkqYnVmZjsKewogIHJlZ2lzdGVyIGNoYXIJKnA7CiAgcmVnaXN0ZXIgY2hh
cgkqcTsKICByZWdpc3RlciBjb25zdCBUQUJMRQkqdHA7CiAgaW50CQkJaTsKICBpbnQJCQlhYmJy
ZXY7CgogIC8qIE1ha2UgaXQgbG93ZXJjYXNlLiAqLwogIGZvciAocCA9IGJ1ZmY7ICpwOyBwKysp
CiAgICBpZiAoaXN1cHBlciAoKnApKQogICAgICAqcCA9IHRvbG93ZXIgKCpwKTsKCiAgaWYgKHN0
cmNtcCAoYnVmZiwgImFtIikgPT0gMCB8fCBzdHJjbXAgKGJ1ZmYsICJhLm0uIikgPT0gMCkgewog
ICAgeXlsdmFsLk1lcmlkaWFuID0gTUVSYW07CiAgICByZXR1cm4gdE1FUklESUFOOwogIH0KICBp
ZiAoc3RyY21wIChidWZmLCAicG0iKSA9PSAwIHx8IHN0cmNtcCAoYnVmZiwgInAubS4iKSA9PSAw
KSB7CiAgICB5eWx2YWwuTWVyaWRpYW4gPSBNRVJwbTsKICAgIHJldHVybiB0TUVSSURJQU47CiAg
fQoKICAvKiBTZWUgaWYgd2UgaGF2ZSBhbiBhYmJyZXZpYXRpb24gZm9yIGEgbW9udGguICovCiAg
aWYgKHN0cmxlbiAoYnVmZikgPT0gMykKICAgIGFiYnJldiA9IDE7CiAgZWxzZSBpZiAoc3RybGVu
IChidWZmKSA9PSA0ICYmIGJ1ZmZbM10gPT0gJy4nKSB7CiAgICBhYmJyZXYgPSAxOwogICAgYnVm
ZlszXSA9ICdcMCc7CiAgfQogIGVsc2UKICAgIGFiYnJldiA9IDA7CgogIGZvciAodHAgPSBNb250
aERheVRhYmxlOyB0cC0+bmFtZTsgdHArKykgewogICAgaWYgKGFiYnJldikgewogICAgICBpZiAo
c3RybmNtcCAoYnVmZiwgdHAtPm5hbWUsIDMpID09IDApIHsKCXl5bHZhbC5OdW1iZXIgPSB0cC0+
dmFsdWU7CglyZXR1cm4gdHAtPnR5cGU7CiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKHN0cmNt
cCAoYnVmZiwgdHAtPm5hbWUpID09IDApIHsKICAgICAgeXlsdmFsLk51bWJlciA9IHRwLT52YWx1
ZTsKICAgICAgcmV0dXJuIHRwLT50eXBlOwogICAgfQogIH0KCiAgZm9yICh0cCA9IFRpbWV6b25l
VGFibGU7IHRwLT5uYW1lOyB0cCsrKQogICAgaWYgKHN0cmNtcCAoYnVmZiwgdHAtPm5hbWUpID09
IDApIHsKICAgICAgeXlsdmFsLk51bWJlciA9IHRwLT52YWx1ZTsKICAgICAgcmV0dXJuIHRwLT50
eXBlOwogICAgfQoKICBpZiAoc3RyY21wIChidWZmLCAiZHN0IikgPT0gMCkgCiAgICByZXR1cm4g
dERTVDsKCiAgZm9yICh0cCA9IFVuaXRzVGFibGU7IHRwLT5uYW1lOyB0cCsrKQogICAgaWYgKHN0
cmNtcCAoYnVmZiwgdHAtPm5hbWUpID09IDApIHsKICAgICAgeXlsdmFsLk51bWJlciA9IHRwLT52
YWx1ZTsKICAgICAgcmV0dXJuIHRwLT50eXBlOwogICAgfQoKICAvKiBTdHJpcCBvZmYgYW55IHBs
dXJhbCBhbmQgdHJ5IHRoZSB1bml0cyB0YWJsZSBhZ2Fpbi4gKi8KICBpID0gc3RybGVuIChidWZm
KSAtIDE7CiAgaWYgKGJ1ZmZbaV0gPT0gJ3MnKSB7CiAgICBidWZmW2ldID0gJ1wwJzsKICAgIGZv
ciAodHAgPSBVbml0c1RhYmxlOyB0cC0+bmFtZTsgdHArKykKICAgICAgaWYgKHN0cmNtcCAoYnVm
ZiwgdHAtPm5hbWUpID09IDApIHsKCXl5bHZhbC5OdW1iZXIgPSB0cC0+dmFsdWU7CglyZXR1cm4g
dHAtPnR5cGU7CiAgICAgIH0KICAgIGJ1ZmZbaV0gPSAncyc7CQkvKiBQdXQgYmFjayBmb3IgInRo
aXMiIGluIE90aGVyVGFibGUuICovCiAgfQoKICBmb3IgKHRwID0gT3RoZXJUYWJsZTsgdHAtPm5h
bWU7IHRwKyspCiAgICBpZiAoc3RyY21wIChidWZmLCB0cC0+bmFtZSkgPT0gMCkgewogICAgICB5
eWx2YWwuTnVtYmVyID0gdHAtPnZhbHVlOwogICAgICByZXR1cm4gdHAtPnR5cGU7CiAgICB9Cgog
IC8qIE1pbGl0YXJ5IHRpbWV6b25lcy4gKi8KICBpZiAoYnVmZlsxXSA9PSAnXDAnICYmIGlzYWxw
aGEgKCpidWZmKSkgewogICAgZm9yICh0cCA9IE1pbGl0YXJ5VGFibGU7IHRwLT5uYW1lOyB0cCsr
KQogICAgICBpZiAoc3RyY21wIChidWZmLCB0cC0+bmFtZSkgPT0gMCkgewoJeXlsdmFsLk51bWJl
ciA9IHRwLT52YWx1ZTsKCXJldHVybiB0cC0+dHlwZTsKICAgICAgfQogIH0KCiAgLyogRHJvcCBv
dXQgYW55IHBlcmlvZHMgYW5kIHRyeSB0aGUgdGltZXpvbmUgdGFibGUgYWdhaW4uICovCiAgZm9y
IChpID0gMCwgcCA9IHEgPSBidWZmOyAqcTsgcSsrKQogICAgaWYgKCpxICE9ICcuJykKICAgICAg
KnArKyA9ICpxOwogICAgZWxzZQogICAgICBpKys7CiAgKnAgPSAnXDAnOwogIGlmIChpKQogICAg
Zm9yICh0cCA9IFRpbWV6b25lVGFibGU7IHRwLT5uYW1lOyB0cCsrKQogICAgICBpZiAoc3RyY21w
IChidWZmLCB0cC0+bmFtZSkgPT0gMCkgewoJeXlsdmFsLk51bWJlciA9IHRwLT52YWx1ZTsKCXJl
dHVybiB0cC0+dHlwZTsKICAgICAgfQoKICByZXR1cm4gdElEOwp9CgoKc3RhdGljIGludAp5eWxl
eCAoKQp7CiAgcmVnaXN0ZXIgY2hhcgljOwogIHJlZ2lzdGVyIGNoYXIJKnA7CiAgY2hhcgkJYnVm
ZlsyMF07CiAgaW50CQkJQ291bnQ7CiAgaW50CQkJc2lnbjsKCiAgZm9yICggOyA7ICkgewogICAg
d2hpbGUgKGlzc3BhY2UgKCp5eUlucHV0KSkKICAgICAgeXlJbnB1dCsrOwoKICAgIGlmIChpc2Rp
Z2l0IChjID0gKnl5SW5wdXQpIHx8IGMgPT0gJy0nIHx8IGMgPT0gJysnKSB7CiAgICAgIGlmIChj
ID09ICctJyB8fCBjID09ICcrJykgewoJc2lnbiA9IGMgPT0gJy0nID8gLTEgOiAxOwoJaWYgKCFp
c2RpZ2l0ICgqKyt5eUlucHV0KSkKCSAgLyogc2tpcCB0aGUgJy0nIHNpZ24gKi8KCSAgY29udGlu
dWU7CiAgICAgIH0KICAgICAgZWxzZQoJc2lnbiA9IDA7CiAgICAgIGZvciAoeXlsdmFsLk51bWJl
ciA9IDA7IGlzZGlnaXQgKGMgPSAqeXlJbnB1dCsrKTsgKQoJeXlsdmFsLk51bWJlciA9IDEwICog
eXlsdmFsLk51bWJlciArIGMgLSAnMCc7CiAgICAgIHl5SW5wdXQtLTsKICAgICAgaWYgKHNpZ24g
PCAwKQoJeXlsdmFsLk51bWJlciA9IC15eWx2YWwuTnVtYmVyOwogICAgICByZXR1cm4gc2lnbiA/
IHRTTlVNQkVSIDogdFVOVU1CRVI7CiAgICB9CiAgICBpZiAoaXNhbHBoYSAoYykpIHsKICAgICAg
Zm9yIChwID0gYnVmZjsgaXNhbHBoYSAoYyA9ICp5eUlucHV0KyspIHx8IGMgPT0gJy4nOyApCglp
ZiAocCA8ICZidWZmW3NpemVvZiBidWZmIC0gMV0pCgkgICpwKysgPSBjOwogICAgICAqcCA9ICdc
MCc7CiAgICAgIHl5SW5wdXQtLTsKICAgICAgcmV0dXJuIExvb2t1cFdvcmQgKGJ1ZmYpOwogICAg
fQogICAgaWYgKGMgIT0gJygnKQogICAgICByZXR1cm4gKnl5SW5wdXQrKzsKICAgIENvdW50ID0g
MDsKICAgIGRvIHsKICAgICAgYyA9ICp5eUlucHV0Kys7CiAgICAgIGlmIChjID09ICdcMCcpCgly
ZXR1cm4gYzsKICAgICAgaWYgKGMgPT0gJygnKQoJQ291bnQrKzsKICAgICAgZWxzZSBpZiAoYyA9
PSAnKScpCglDb3VudC0tOwogICAgfSB3aGlsZSAoQ291bnQgPiAwKTsKICB9Cn0KCiNkZWZpbmUg
VE1fWUVBUl9PUklHSU4gMTkwMAoKLyogWWllbGQgQSAtIEIsIG1lYXN1cmVkIGluIHNlY29uZHMu
ICAqLwpzdGF0aWMgbG9uZwpkaWZmdG0gKGEsIGIpCiAgICAgc3RydWN0IHRtICphLCAqYjsKewog
IGludCBheSA9IGEtPnRtX3llYXIgKyAoVE1fWUVBUl9PUklHSU4gLSAxKTsKICBpbnQgYnkgPSBi
LT50bV95ZWFyICsgKFRNX1lFQVJfT1JJR0lOIC0gMSk7CiAgbG9uZyBkYXlzID0gKAoJICAgICAg
IC8qIGRpZmZlcmVuY2UgaW4gZGF5IG9mIHllYXIgKi8KCSAgICAgICBhLT50bV95ZGF5IC0gYi0+
dG1feWRheQoJICAgICAgIC8qICsgaW50ZXJ2ZW5pbmcgbGVhcCBkYXlzICovCgkgICAgICAgKyAg
KChheSA+PiAyKSAtIChieSA+PiAyKSkKCSAgICAgICAtICAoYXkvMTAwIC0gYnkvMTAwKQoJICAg
ICAgICsgICgoYXkvMTAwID4+IDIpIC0gKGJ5LzEwMCA+PiAyKSkKCSAgICAgICAvKiArIGRpZmZl
cmVuY2UgaW4geWVhcnMgKiAzNjUgKi8KCSAgICAgICArICAobG9uZykoYXktYnkpICogMzY1Cgkg
ICAgICAgKTsKICByZXR1cm4gKDYwKig2MCooMjQqZGF5cyArIChhLT50bV9ob3VyIC0gYi0+dG1f
aG91cikpCgkgICAgICArIChhLT50bV9taW4gLSBiLT50bV9taW4pKQoJICArIChhLT50bV9zZWMg
LSBiLT50bV9zZWMpKTsKfQoKdGltZV90CmdldF9kYXRlIChwLCBub3cpCiAgICBjaGFyCQkqcDsK
ICAgIHN0cnVjdCB0aW1lYgkqbm93Owp7CiAgc3RydWN0IHRtCQkqdG0sIGdtdDsKICBzdHJ1Y3Qg
dGltZWIJZnR6OwogIHRpbWVfdAkJU3RhcnQ7CiAgdGltZV90CQl0b2Q7CgogIHl5SW5wdXQgPSBw
OwogIGlmIChub3cgPT0gTlVMTCkgewogICAgbm93ID0gJmZ0ejsKICAgICh2b2lkKXRpbWUgKCZm
dHoudGltZSk7CgogICAgaWYgKCEgKHRtID0gZ210aW1lICgmZnR6LnRpbWUpKSkKICAgICAgcmV0
dXJuIC0xOwogICAgZ210ID0gKnRtOwkJCS8qIE1ha2UgYSBjb3B5LCBpbiBjYXNlIGxvY2FsdGlt
ZSBtb2RpZmllcyAqdG0uICAqLwoKICAgIGlmICghICh0bSA9IGxvY2FsdGltZSAoJmZ0ei50aW1l
KSkpCiAgICAgIHJldHVybiAtMTsKCQogICAgZnR6LnRpbWV6b25lID0gZGlmZnRtICgmZ210LCB0
bSkgLyA2MDsKICAgIGlmICh0bS0+dG1faXNkc3QpCiAgICAgIGZ0ei50aW1lem9uZSArPSA2MDsK
ICB9CgogIHRtID0gbG9jYWx0aW1lICgmbm93LT50aW1lKTsKICB5eVllYXIgPSB0bS0+dG1feWVh
cjsKICB5eU1vbnRoID0gdG0tPnRtX21vbiArIDE7CiAgeXlEYXkgPSB0bS0+dG1fbWRheTsKICB5
eVRpbWV6b25lID0gbm93LT50aW1lem9uZTsKICB5eURTVG1vZGUgPSBEU1RtYXliZTsKICB5eUhv
dXIgPSAwOwogIHl5TWludXRlcyA9IDA7CiAgeXlTZWNvbmRzID0gMDsKICB5eU1lcmlkaWFuID0g
TUVSMjQ7CiAgeXlSZWxTZWNvbmRzID0gMDsKICB5eVJlbE1vbnRoID0gMDsKICB5eUhhdmVEYXRl
ID0gMDsKICB5eUhhdmVEYXkgPSAwOwogIHl5SGF2ZVJlbCA9IDA7CiAgeXlIYXZlVGltZSA9IDA7
CiAgeXlIYXZlWm9uZSA9IDA7CgogIGlmICh5eXBhcnNlICgpCiAgICAgIHx8IHl5SGF2ZVRpbWUg
PiAxIHx8IHl5SGF2ZVpvbmUgPiAxIHx8IHl5SGF2ZURhdGUgPiAxIHx8IHl5SGF2ZURheSA+IDEp
CiAgICByZXR1cm4gLTE7CgogIGlmICh5eUhhdmVEYXRlIHx8IHl5SGF2ZVRpbWUgfHwgeXlIYXZl
RGF5KSB7CiAgICBTdGFydCA9IENvbnZlcnQgKHl5TW9udGgsIHl5RGF5LCB5eVllYXIsIHl5SG91
ciwgeXlNaW51dGVzLCB5eVNlY29uZHMsCgkJICAgICB5eU1lcmlkaWFuLCB5eURTVG1vZGUpOwog
ICAgaWYgKFN0YXJ0IDwgMCkKICAgICAgcmV0dXJuIC0xOwogIH0KICBlbHNlIHsKICAgIFN0YXJ0
ID0gbm93LT50aW1lOwogICAgaWYgKCF5eUhhdmVSZWwpCiAgICAgIFN0YXJ0IC09ICgodG0tPnRt
X2hvdXIgKiA2MEwgKyB0bS0+dG1fbWluKSAqIDYwTCkgKyB0bS0+dG1fc2VjOwogIH0KCiAgU3Rh
cnQgKz0geXlSZWxTZWNvbmRzOwogIFN0YXJ0ICs9IFJlbGF0aXZlTW9udGggKFN0YXJ0LCB5eVJl
bE1vbnRoKTsKCiAgaWYgKHl5SGF2ZURheSAmJiAheXlIYXZlRGF0ZSkgewogICAgdG9kID0gUmVs
YXRpdmVEYXRlIChTdGFydCwgeXlEYXlPcmRpbmFsLCB5eURheU51bWJlcik7CiAgICBTdGFydCAr
PSB0b2Q7CiAgfQoKICAvKiBIYXZlIHRvIGRvICpzb21ldGhpbmcqIHdpdGggYSBsZWdpdGltYXRl
IC0xIHNvIGl0J3MgZGlzdGluZ3Vpc2hhYmxlCiAgICogZnJvbSB0aGUgZXJyb3IgcmV0dXJuIHZh
bHVlLiAgKEFsdGVybmF0ZWx5IGNvdWxkIHNldCBlcnJubyBvbiBlcnJvci4pICovCiAgcmV0dXJu
IFN0YXJ0ID09IC0xID8gMCA6IFN0YXJ0Owp9CgoKI2lmCWRlZmluZWQgKFRFU1QpCgovKiBBUkdT
VVNFRCAqLwppbnQKbWFpbiAoYWMsIGF2KQogICAgaW50CQlhYzsKICAgIGNoYXIJKmF2W107CnsK
ICBjaGFyIGJ1ZmZbTUFYX0JVRkZfTEVOICsgMV07CiAgdGltZV90IGQ7CgogICh2b2lkKXByaW50
ZiAoIkVudGVyIGRhdGUsIG9yIGJsYW5rIGxpbmUgdG8gZXhpdC5cblx0PiAiKTsKICAodm9pZClm
Zmx1c2ggKHN0ZG91dCk7CgogIGJ1ZmZbTUFYX0JVRkZfTEVOXSA9IDA7CiAgd2hpbGUgKGZnZXRz
IChidWZmLCBNQVhfQlVGRl9MRU4sIHN0ZGluKSAmJiBidWZmWzBdKSB7CiAgICBkID0gZ2V0X2Rh
dGUgKGJ1ZmYsIChzdHJ1Y3QgdGltZWIgKilOVUxMKTsKICAgIGlmIChkID09IC0xKQogICAgICAo
dm9pZClwcmludGYgKCJCYWQgZm9ybWF0IC0gY291bGRuJ3QgY29udmVydC5cbiIpOwogICAgZWxz
ZQogICAgICAodm9pZClwcmludGYgKCIlcyIsIGN0aW1lICgmZCkpOwogICAgKHZvaWQpcHJpbnRm
ICgiXHQ+ICIpOwogICAgKHZvaWQpZmZsdXNoIChzdGRvdXQpOwogIH0KICBleGl0ICgwKTsKICAv
KiBOT1RSRUFDSEVEICovCn0KI2VuZGlmCS8qIGRlZmluZWQgKFRFU1QpICovCg==
>From abingham@lips.utexas.edu Thu Dec 30 08:14:00 1999
From: abingham@lips.utexas.edu
To: gnats-gnats@sourceware.cygnus.com
Subject: gnats/41: White space in category name handled poorly by mkcat
Date: Thu, 30 Dec 1999 08:14:00 -0000
Message-id: <19991230160728.17504.qmail@sourceware.cygnus.com>
X-SW-Source: 1999-q4/msg00070.html
Content-length: 1362

>Number:         41
>Category:       gnats
>Synopsis:       White space in category name handled poorly by mkcat
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Dec 30 08:14:00 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     Austin Bingham
>Release:        gnats-3.113
>Organization:
>Environment:
RedHat 6.0
>Description:
If I create a category with a name containing white space, the mkcat tool treats each word in the category name as a different category and creates PR directories for each. For instance, if I create a category called "Foo Bar", mkcat will create a repository dir called Foo and one called Bar. rmcat on "Foo Bar" behaves analogously (sp?) and removes dirs called Foo and Bar. I've looked at mkcat, but don't have the resources to fix the problem right now. It looks like the sed statement on line 53 is to blame, but I could be wrong.

Perhaps this is not a bug after all, but it seems like the behavior should either be to create a directory with white space in the name or to give an error and say that a category with white space is not allowed.
>How-To-Repeat:
Create a category with white space in the name (i.e. Foo Bar) and run mkcat.
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~1999-12-01  1:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-12-01  1:34 gnats/30 jsm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).