public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c++/5: C++ sucks, can't you make it better?
@ 2002-11-21 13:26 billingd
  0 siblings, 0 replies; 4+ messages in thread
From: billingd @ 2002-11-21 13:26 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, jason, jsm

Synopsis: C++ sucks, can't you make it better?

State-Changed-From-To: analyzed->closed
State-Changed-By: billingd
State-Changed-When: Fri Nov 15 14:00:33 2002
State-Changed-Why:
    Work around exists.  Use flag "-c x"

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: c++/5: C++ sucks, can't you make it better?
@ 2002-11-21 13:46 Daniel Berlin
  0 siblings, 0 replies; 4+ messages in thread
From: Daniel Berlin @ 2002-11-21 13:46 UTC (permalink / raw)
  To: jason; +Cc: gcc-prs

The following reply was made to PR c++/5; it has been noted by GNATS.

From: Daniel Berlin <dberlin@dberlin.org>
To: billingd@gcc.gnu.org, <gcc-bugs@gcc.gnu.org>,
	<gcc-prs@gcc.gnu.org>, <jason@gcc.gnu.org>, <jsm@cygnus.com>,
	<gcc-gnats@gcc.gnu.org>
Cc:  
Subject: Re: c++/5: C++ sucks, can't you make it better?
Date: Fri, 15 Nov 2002 17:10:12 -0500 (EST)

 On 15 Nov 2002 billingd@gcc.gnu.org wrote:
 
 > Synopsis: C++ sucks, can't you make it better?
 > 
 > State-Changed-From-To: analyzed->closed
 > State-Changed-By: billingd
 > State-Changed-When: Fri Nov 15 14:00:33 2002
 > State-Changed-Why:
 >     Work around exists.  Use flag "-c x"
 
 Err, you mean -x c.
 
 You must be used to programming in C, where a[5] is equivalent to 5[a].
 :P
 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: c++/5: C++ sucks, can't you make it better?
@ 2002-11-21  6:52 neil
  0 siblings, 0 replies; 4+ messages in thread
From: neil @ 2002-11-21  6:52 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, jason, jsm

Synopsis: C++ sucks, can't you make it better?

State-Changed-From-To: closed->analyzed
State-Changed-By: neil
State-Changed-When: Fri Nov 15 00:20:30 2002
State-Changed-Why:
    I've just noticed this bug has not yet been fixed.
    It's a C89 regression, so I've marked it as such.
    I've also changed its class to "pessimizes code", which matches my experience.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5


^ permalink raw reply	[flat|nested] 4+ messages in thread

* c++/5: C++ sucks, can't you make it better?
@ 2000-02-10 13:46 jsm
  0 siblings, 0 replies; 4+ messages in thread
From: jsm @ 2000-02-10 13:46 UTC (permalink / raw)
  To: gcc-gnats

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 635494 bytes --]

>Number:         5
>Category:       c++
>Synopsis:       C++ sucks, can't you make it better?
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Feb 10 13:45:59 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     jsm@cygnus.com
>Release:        unknown-1.0
>Organization:
>Environment:

>Description:
C++ has too much stuff.  Make it smaller.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From jason@gcc.gnu.org Thu Feb 10 15:26:00 2000
From: jason@gcc.gnu.org
To: jason@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org
Subject: Re: c++/5
Date: Thu, 10 Feb 2000 15:26:00 -0000
Message-id: <20000210232600.28916.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00001.html
Content-length: 771

The following reply was made to PR c++/5; it has been noted by GNATS.

From: jason@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org, jason@cygnus.com, jason@gcc.gnu.org,
  jsm@cygnus.com, nobody@gcc.gnu.org
Cc:  
Subject: Re: c++/5
Date: 10 Feb 2000 23:17:40 -0000

 Synopsis: C++ sucks, can't you make it better?
 
 Responsible-Changed-From-To: unassigned->jason
 Responsible-Changed-By: jason
 Responsible-Changed-When: Thu Feb 10 15:17:40 2000
 Responsible-Changed-Why:
     Why do I have to say anything here?
 State-Changed-From-To: open->closed
 State-Changed-By: jason
 State-Changed-When: Thu Feb 10 15:17:40 2000
 State-Changed-Why:
     Insolence will not be tolerated.  Obey C++!  Trust C++!
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=5&database=gcc
>From loewis@gcc.gnu.org Mon Feb 28 23:06:00 2000
From: loewis@gcc.gnu.org
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org
Subject: Re: c++/6
Date: Mon, 28 Feb 2000 23:06:00 -0000
Message-id: <20000229070601.10790.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00002.html
Content-length: 484

The following reply was made to PR c++/6; it has been noted by GNATS.

From: loewis@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org, martin@loewis.home.cs.tu-berlin.de,
  nobody@gcc.gnu.org
Cc:  
Subject: Re: c++/6
Date: 29 Feb 2000 07:05:40 -0000

 Synopsis: Testing GNATS
 
 State-Changed-From-To: open->closed
 State-Changed-By: loewis
 State-Changed-When: Mon Feb 28 23:05:40 2000
 State-Changed-Why:
     Test completed
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=6&database=gcc
>From martin@loewis.home.cs.tu-berlin.de Tue Feb 29 02:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@gcc.gnu.org
Subject: c++/9: local class and -O1
Date: Tue, 29 Feb 2000 02:06:00 -0000
Message-id: <200002290951.KAA01357@loewis.home.cs.tu-berlin.de>
X-SW-Source: 2000-q1/msg00003.html
Content-length: 3021

>Number:         9
>Category:       c++
>Synopsis:       local class and -O1
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Feb 29 02:06:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Ulf Larsson <ulf.larsson@mbox337.swipnet.se>
>Release:        unknown-1.0
>Organization:
mira
>Environment:
System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown
Architecture: i586

>Description:
[Original report in <38B5D906.B3544CB9@mbox337.swipnet.se>]
I'm not sure if this a bug, but g++ with -O0 accept it but fail to link
with -O1.

g++ --verbose -O1 prog.cc
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/specs
gcc version 2.95.1 19990816 (release)
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/cpp -lang-c++ -v
-D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__
-Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__
-D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -D__OPTIMIZE__
-Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686
-Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ prog.cc
/tmp/cc1V6mke.ii
GNU CPP version 2.95.1 19990816 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:

/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/../../../../include/g++-3
 /usr/local/include

/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/../../../../i686-pc-linux-gnu/include
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/include
 /usr/include
End of search list.
The following default directories have been omitted from the search
path:
End of omitted list.
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/cc1plus
/tmp/cc1V6mke.ii -quiet -dumpbase prog.cc -O1 -version -o
/tmp/cc9xhG3f.s
GNU C++ version 2.95.1 19990816 (release) (i686-pc-linux-gnu) compiled
by GNU C version 2.95.1 19990816 (release).
 as -V -Qy -o /tmp/ccMLXzsi.o /tmp/cc9xhG3f.s
GNU assembler version 2.9.1 (i386-redhat-linux), using BFD version
2.9.1.0.23
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/collect2 -m elf_i386
-dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o /usr/lib/crti.o
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/crtbegin.o
-L/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1
-L/usr/local/i686-pc-linux-gnu/lib -L/usr/local/lib /tmp/ccMLXzsi.o
-lstdc++ -lm -lgcc -lc -lgcc
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/crtend.o /usr/lib/crtn.o
/tmp/ccMLXzsi.o(.gnu.linkonce.d.__vt_Q29bar__Fv.0_1D+0x8): undefined
reference to `f__CQ29bar__Fv.0_1D.6'
collect2: ld returned 1 exit status


gcc version 2.96 20000221 (experimental) gives the same result.

>How-To-Repeat:
class B
{
public:
    virtual void f() const = 0;
};

void
foo(B const &)
{

}

void
bar()
{
  class D : public B
  {
    void f() const
      {

      }
  };
 foo (D());
}

int
main() 
{
  bar();
  return 0;
}
	
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Tue Feb 29 11:46:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@gcc.gnu.org
Subject: c++/10: [not accepted] handling of non-type template parameters
Date: Tue, 29 Feb 2000 11:46:00 -0000
Message-id: <200002291938.UAA00828@loewis.home.cs.tu-berlin.de>
X-SW-Source: 2000-q1/msg00004.html
Content-length: 2215

>Number:         10
>Category:       c++
>Synopsis:       [not accepted] handling of non-type template parameters
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Feb 29 11:46:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Ewgenij Gawrilow <gawrilow@math.TU-Berlin.DE>
>Release:        gcc 2.95
>Organization:
mira
>Environment:
% uname -a
SunOS sokol 5.7 Generic_106541-08 sun4u sparc SUNW,UltraSPARC-IIi-Engine

% g++ -v
Using builtin specs.
gcc version 2.95.2 19991024 (release)

% cat tmp/gcc-build/config.status 
#!/bin/sh
# This file was generated automatically by configure.  Do not edit.
# This directory was configured as follows:
.../tmp/gcc-2.95.2/configure --with-gcc-version-trigger=.../tmp/gcc-2.95.2/gcc/version.c --host=sparc-sun-solaris2.6 --enable-shared --enable-version-specific-runtime-libs --enable-languages=c++ --with-gxx-include-dir=/usr/local/include/C++ --norecursion 
# using "mh-frag" and "mt-frag"

>Description:
A template-id with boolean expression not enclosed in parentheses is parsed wrong.

#line 1 "prob1.cc"
template <bool b> class C { };
enum { b1=true, b2=false };
void f()
{
   C<b1 && b2> c;
}


Compilation fails with:
prob1.cc: In function `void f()':
prob1.cc:5: `c' undeclared (first use this function)
prob1.cc:5: (Each undeclared identifier is reported only once
prob1.cc:5: for each function it appears in.)
prob1.cc:5: parse error before `;'

If you put parentheses around b1 && b2, everything works fine.

In a bit more complicated context, even parentheses don't prevent the compiler
from crash.

#line 1 "prob2.cc"
struct a { enum { answer=false }; };

template <bool b>
class C {
public:
   void f() const;
};

template <bool b>
struct D {
   template <class X>
   C<(b && X::answer)>
   operator() (const X&) const
   {
      return C<(b && X::answer)>();
   }
};

void f()
{
   D<true> d;
   d(a()).f();
}


ends up with:
prob2.cc: In instantiation of `D<true>':
prob2.cc:21:   instantiated from here
prob2.cc:14: Internal compiler error.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From nathan@codesourcery.com Wed Mar 01 09:16:00 2000
From: nathan@codesourcery.com
To: gcc-gnats@gcc.gnu.org
Cc: gawrilow@math.TU-Berlin.DE
Subject: c++/11: bogus instantiation during template deduction
Date: Wed, 01 Mar 2000 09:16:00 -0000
Message-id: <20000301170946.3429.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00005.html
Content-length: 2726

>Number:         11
>Category:       c++
>Synopsis:       bogus instantiation during template deduction
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 01 09:16:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Ewgenij Gawrilow <gawrilow@math.TU-Berlin.DE>
>Release:        CVS 20000229
>Organization:
>Environment:
All
>Description:
The following piece of code can't be compiled by gcc 2.95.2.

#line 1 "prob.cc"
template <class C>
struct A {
   typedef typename C::obj obj;
   typedef typename C::cobj cobj;

   static obj g(C& c) { return c.g(); }
   static cobj g(const C& c) { return c.g(); }
};

#if defined(WORK_AROUND)
template <class C>
struct A<const C> {
   typedef typename C::cobj obj;
};
#endif

template <class C> inline
A<C>::obj g(C& c)
{
   return A<C>::g(c);
}

template <class C> inline
A<C>::cobj g(const C& c)
{
   return A<C>::g(c);
}

class cont {
public:
   class obj { };
   class cobj { };
   obj g();
   cobj g() const;
};

void f(const cont& c)
{
   g(c);
}


prob.cc: In instantiation of `A<const cont>':
prob.cc:19:   instantiated from here
prob.cc:7: `A<const cont>::g(const cont &)' has already been declared in `A<const cont>'


It seems as if the template parameter deduction is being made twice, once when
analyzing the return value of g(c) within f(), and then during the
instantiation of the body of ::g. It wasn't that bad, hadn't the first attempt
lead to wrong results.
>How-To-Repeat:
during deduction of the call to Baz, A<const int> is
instantiated. This fails, but should just be rejected, not
cause a diagnostic [14.8.2]/2
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="nathan105.C"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="nathan105.C"

Ly8gQnVpbGQgZG9uJ3QgbGluazoKCi8vIENvcHlyaWdodCAoQykgMjAwMCBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4KLy8gQ29udHJpYnV0ZWQgYnkgTmF0aGFuIFNpZHdlbGwgMSBNYXJj
aCAyMDAwIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCi8vIGRlcml2ZWQgZnJvbSBhIGJ1ZyBy
ZXBvcnQgYnkgRXdnZW5paiBHYXdyaWxvdyA8Z2F3cmlsb3dAbWF0aC5UVS1CZXJsaW4uREU+Cgp0
ZW1wbGF0ZSA8Y2xhc3MgVD4Kc3RydWN0IEEgewogIHR5cGVkZWYgVCBUX3Q7CiAgc3RhdGljIHZv
aWQgRm9vIChUICYpOwogIHN0YXRpYyB2b2lkIEZvbyAoY29uc3QgVCAmKTsgLy8gZ2V0cyBib2d1
cyBlcnJvciAtIFhGQUlMICotKi0qCn07Cgp0ZW1wbGF0ZSA8Y2xhc3MgVD4gdm9pZCBCYXogKFQm
LCB0eXBlbmFtZSBBPFQ+OjpUX3QpOwp0ZW1wbGF0ZSA8Y2xhc3MgVD4gdm9pZCBCYXogKGNvbnN0
IFQmLCB0eXBlbmFtZSBBPFQ+OjpUX3QpOwoKdm9pZCBmICgpCnsKICBjb25zdCBpbnQgaSA9IDE7
CiAgQmF6IChpLCAxKTsgICAgICAgICAgIC8vIGdldHMgYm9ndXMgZXJyb3IgLSBYRkFJTCAqLSot
Kgp9Cg==
>From martin@loewis.home.cs.tu-berlin.de Wed Mar 01 11:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@gcc.gnu.org
Subject: c++/13: [internal] error in `const_hash'
Date: Wed, 01 Mar 2000 11:36:00 -0000
Message-id: <200003011920.UAA01036@loewis.home.cs.tu-berlin.de>
X-SW-Source: 2000-q1/msg00007.html
Content-length: 23788

>Number:         13
>Category:       c++
>Synopsis:       [internal] error in `const_hash'
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 01 11:36:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Matthias Meixner
>Release:        unknown-1.0
>Organization:
mira
>Environment:
System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown
Architecture: i586

	
>Description:
[Original report in <38BD2A8E.E1D0DCBF@rbg.informatik.tu-darmstadt.de>]
g++ reported an internal error:

meixner@pc2 $ g++ -v --save-temps -c -g -frepo pageserver.cxx -o
lo/pageserver.o
Reading specs from /opt/gnu/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /opt/gnu/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp -lang-c++ -v -D__GNUC__=2
-D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__
-Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux
-Asystem(posix) -D__EXCEPTIONS -g -Acpu(i386) -Amachine(i386) -Di386
-D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro
-D__pentiumpro__ pageserver.cxx pageserver.ii
GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /opt/gnu/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3
 /usr/local/include

/opt/gnu/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/include
 /opt/gnu/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
 /opt/gnu/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus pageserver.ii -quiet
-dumpbase pageserver.cc -g -version -frepo -o pageserver.s
GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled by
GNU C version 2.95.2 19991024 (release).
pageserver.cxx: In method `PageServer::PageServer(int = -1)':
pageserver.cxx:4: class `PageServer' does not have any field named
`event_manager'
pageserver.cxx:5: no matching function for call to
`event_manager<PageServer>::event_manager ()'
event.h:42: candidates are:
event_manager<PageServer>::event_manager(PageServer *)
event.h:59:                 event_manager<PageServer>::event_manager(const
event_manager<PageServer> &)
pageserver.cxx:26: Internal compiler error in `const_hash', at varasm.c:2372
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.


The sourcecode has been attached to this EMail.

Regards,

	Matthias Meixner

-- 
Matthias Meixner                   meixner@rbg.informatik.tu-darmstadt.de
Technische Universität Darmstadt
Rechnerbetriebsgruppe                          Telefon (+49) 6151 16 6670
Wilhelminenstraße 7, D-64283 Darmstadt, Germany    Fax (+49) 6151 16 4701
	
>How-To-Repeat:

>Fix:

begin 664 pageserver.ii.bz2
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
69+^U=1VL)>"$TA__%W)%.%"0Z2F!M0``
`
end
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Wed Mar 01 11:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@gcc.gnu.org
Subject: c++/12: [internal] more about template bugs in 2.95.2 and an ICE in 20000228
Date: Wed, 01 Mar 2000 11:36:00 -0000
Message-id: <200003011926.UAA01153@loewis.home.cs.tu-berlin.de>
X-SW-Source: 2000-q1/msg00006.html
Content-length: 1619

>Number:         12
>Category:       c++
>Synopsis:       [internal] more about template bugs in 2.95.2 and an ICE in 20000228
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 01 11:36:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     dvv@dvv.ru (Dima Volodin)
>Release:        unknown-1.0
>Organization:
mira
>Environment:
System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown
Architecture: i586

	
>Description:
[Original Message-ID: <38c95d5b.330845657@busybee>]
# cat 00.cc
template <typename T>
class C {
public:
#ifdef ENUM
        enum {N = 10};
#else
        static unsigned const N (10);
#endif
        static double x [N];
};

template <typename T>
double C <T>::x [C <T>::N] = {1, 2, 3};


# g++ -S -B /usr/local/lib/gcc-lib/i586--solaris2.7/2.95.2/ 00.cc
00.cc:13: conflicting types for `double C<T>::x[C<T>::N]'
00.cc:9: previous declaration as `double C<T>::x[C<T>::N]'


# g++ -S -B /usr/local/lib/gcc-lib/i586--solaris2.7/2.95.2/ -DENUM 00.cc
######## this one passed !!!

# g++ -S -B /archive/egcs-20000228/gcc/ 00.cc
00.cc:7: Internal compiler error.
00.cc:7: Please submit a full bug report.
00.cc:7: See <URL: http://www.gnu.org/software/gcc/bugs.html > for
00.cc:7: instructions.

# g++ -S -B /archive/egcs-20000228/gcc/ -DENUM 00.cc
00.cc:13: conflicting types for `double C<T>::x[C<T>::N]'
00.cc:9: previous declaration as `double C<T>::x[10]'


Cheers!

Dima	
>How-To-Repeat:
	
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Wed Mar 01 14:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@gcc.gnu.org
Subject: c++/15: [bad code] template template arguments
Date: Wed, 01 Mar 2000 14:06:00 -0000
Message-id: <200003012155.WAA12960@loewis.home.cs.tu-berlin.de>
X-SW-Source: 2000-q1/msg00009.html
Content-length: 1340

>Number:         15
>Category:       c++
>Synopsis:       [bad code] template template arguments
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 01 14:06:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Ewgenij Gawrilow <gawrilow@math.TU-Berlin.DE>
>Release:        
>Organization:
mira
>Environment:
System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown
Architecture: i586

	
>Description:
[Original Message-ID: <14525.10553.563957.776958@sokol.math.TU-Berlin.DE>]
Here the wrong specialization is being chosen.


#include <iostream>

template <template <class X> class B, class A>
struct is_instance_of {
   enum { answer=false };
};

template <template <class X> class B, class T>
struct is_instance_of<B, B<T> > {
   enum { answer=true };
};

template <class X> struct C { };
template <class X> struct D { };

template <class T>
bool is_C (const T&) {
   return is_instance_of<C,T>::answer;
};

int main() {
   cout << "should be true: " << is_C(C<int>()) << endl;
   cout << "should be false: " << is_C(D<int>()) << endl;
   return 0;
}


The program prints:

should be true: 1
should be false: 1

>How-To-Repeat:
	
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Wed Mar 01 14:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@gcc.gnu.org
Subject: c++/14: [internal] template template parameters
Date: Wed, 01 Mar 2000 14:06:00 -0000
Message-id: <200003012149.WAA12879@loewis.home.cs.tu-berlin.de>
X-SW-Source: 2000-q1/msg00008.html
Content-length: 1247

>Number:         14
>Category:       c++
>Synopsis:       [internal] template template parameters
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 01 14:06:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Ewgenij Gawrilow <gawrilow@math.TU-Berlin.DE>
>Release:        unknown-1.0
>Organization:
mira
>Environment:
System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown
Architecture: i586

>Description:
[Original Message-ID: <14525.10553.563957.776958@sokol.math.TU-Berlin.DE>]
The actual value of the template-name argument of a member template
gets "spilled" when passed to another template instantiation:

#line 1 "prob4.cc"
template <class T>
struct Op { };

template <template <class X> class Y>
void g() { }

template <class T>
class A {
public:
   template <template <class X> class Y>
   void f() {
      g<Y>();
   }
};

int main() {
   A<int> a;
   a.template f<Op>();
   return 0;
}


prob4.cc: In instantiation of `g<Y>()':
prob4.cc:12:   instantiated from here
prob4.cc:5: Internal compiler error.

>How-To-Repeat:
	
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Wed Mar 01 14:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@gcc.gnu.org
Subject: c++/16: -Wshadow vs 'struct stat stat' et al
Date: Wed, 01 Mar 2000 14:16:00 -0000
Message-id: <200003012203.XAA13118@loewis.home.cs.tu-berlin.de>
X-SW-Source: 2000-q1/msg00010.html
Content-length: 2117

>Number:         16
>Category:       c++
>Synopsis:       -Wshadow vs 'struct stat stat' et al
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 01 14:16:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Jonathan Thornburg <jthorn@galileo.thp.univie.ac.at>
>Release:        2.95.2
>Organization:
mira
>Environment:
System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown
Architecture: i586

	
>Description:
Under (for example) gcc/g++ 2.95.2, the common idiom
   
   % cat shadow.cc
   struct  status
           {
           int x, y, z;
           };
   
   // prototype
   void foo();
   
   void foo(struct status &status)
   {
   }

triggers a warning from -Wshadow:

   % /usr/local/share2/bin/g++ -Wshadow -c shadow.cc
   shadow.cc: In function `void foo(status &)':
   shadow.cc:10: warning: declaration of `status' shadows global declaration

This isn't what I expected from the description in gcc.info-2,

   `-Wshadow'
        Warn whenever a local variable shadows another local variable.

It seems to me that we really have two distinct semantic situations here:
#1: variable name matches (earlier-declared) variable name
    = this is what the -Wshadow description says it's looking-out-for
#2: "variable name matches (earlier-declared) struct/class/enum name
    = what the above example program is doing.

It seems to me that
(a) #2 is much less likely to happen by accident than #1, so if #2 occurs,
    it's much more likely to be intentional,
(b) #2 is not really covered by the (#1) -Wshadow description, and
(c) #2 is an at-least-mildly-common C/C++ idiom, as witness the common
    Unix incantation (even in system header files) 'struct stat stat'

I think it might be worthwhile to split off #2 into a (new) separate
warning option from (maybe call the #2 option -Wname-shadows-type or
suchlike?), so it could be enabled/disabled independently of -Wshadow.

>How-To-Repeat:
	
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:
>From nathan@codesourcery.com Thu Mar 02 09:56:00 2000
From: nathan@codesourcery.com
To: gcc-gnats@gcc.gnu.org
Subject: c++/17: __PRETTY_FUNCTION__ et al have wrong type
Date: Thu, 02 Mar 2000 09:56:00 -0000
Message-id: <20000302175153.26808.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00011.html
Content-length: 1969

>Number:         17
>Category:       c++
>Synopsis:       __PRETTY_FUNCTION__ et al have wrong type
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 02 09:56:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     nathan
>Release:        CVS
>Organization:
>Environment:

>Description:
__PRETTY_FUNCTION__ et al should have type
char const [X], where X is the appropriate value.
They appear to have type char [201]
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="testfix7.C"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="testfix7.C"

Ly8gQnVpbGQgZG9uJ3QgbGluazoKLy8gCi8vIENvcHlyaWdodCAoQykgMjAwMCBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4KLy8gQ29udHJpYnV0ZWQgYnkgTmF0aGFuIFNpZHdlbGwgMyBN
YXIgMjAwMCA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgovLyBfX1BSRVRUWV9GVU5DVElPTl9f
LCBfX0ZVTkNUSU9OX18gYW5kIF9fZnVuY3Rpb25fXyBzaG91bGQgaGF2ZSB0aGUKLy8gdHlwZSBj
aGFyIGNvbnN0IFtYXSwgd2hlcmUgWCBpcyB0aGUgcmlnaHQgdmFsdWUgZm9yIHRoYXQgcGFydGlj
dWxhciBmdW5jdGlvbgoKLy8gZXhlY3V0aW9uIHRlc3QgLSBYRkFJTCAqLSotKgoKc3RhdGljIHZv
aWQgY29uc3QgKnN0cmluZ3NbNF07CnN0YXRpYyB2b2lkIGNvbnN0ICp0cGxzWzRdOwpzdGF0aWMg
dW5zaWduZWQgcG9zID0gMDsKCnRlbXBsYXRlPHVuc2lnbmVkIEk+IHZvaWQgUFYgKGNoYXIgY29u
c3QgKCZvYmpSZWYpW0ldKQp7CiAgc3RyaW5nc1twb3NdID0gb2JqUmVmOwogIHRwbHNbcG9zXSA9
IF9fUFJFVFRZX0ZVTkNUSU9OX187CiAgcG9zKys7Cn0KCnZvaWQgZm4gKCkKewogIFBWIChfX0ZV
TkNUSU9OX18pOwogIFBWIChfX2Z1bmNfXyk7CiAgUFYgKF9fUFJFVFRZX0ZVTkNUSU9OX18pOwog
IFBWICgid2liYmxlIik7Cn0KCmludCBtYWluICgpCnsKICBmbiAoKTsKICAKICBpZiAoc3RyaW5n
c1swXSAhPSBzdHJpbmdzWzFdKQogICAgcmV0dXJuIDE7CiAgaWYgKHN0cmluZ3NbMF0gPT0gc3Ry
aW5nc1syXSkKICAgIHJldHVybiAxOwoKICBpZiAodHBsc1swXSAhPSB0cGxzWzFdKQogICAgcmV0
dXJuIDE7CiAgaWYgKHRwbHNbMF0gPT0gdHBsc1syXSkKICAgIHJldHVybiAxOwogIAogIHJldHVy
biAwOwp9Cg==
>From nathan@gcc.gnu.org Thu Mar 02 10:06:00 2000
From: nathan@gcc.gnu.org
To: nathan@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org
Subject: Re: c++/17
Date: Thu, 02 Mar 2000 10:06:00 -0000
Message-id: <20000302180601.31175.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00012.html
Content-length: 562

The following reply was made to PR c++/17; it has been noted by GNATS.

From: nathan@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org, nathan@codesourcery.com, nathan@gcc.gnu.org,
  nobody@gcc.gnu.org
Cc:  
Subject: Re: c++/17
Date: 2 Mar 2000 17:57:26 -0000

 Synopsis: __PRETTY_FUNCTION__ et al have wrong type
 
 Responsible-Changed-From-To: unassigned->nathan
 Responsible-Changed-By: nathan
 Responsible-Changed-When: Thu Mar  2 09:57:26 2000
 Responsible-Changed-Why:
     I found it, I'll fix it
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=17&database=gcc
>From martin@loewis.home.cs.tu-berlin.de Thu Mar 02 13:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@gcc.gnu.org
Subject: c++/18: [bad code] bad ctor/dtor call ordering
Date: Thu, 02 Mar 2000 13:06:00 -0000
Message-id: <200003022054.VAA24610@loewis.home.cs.tu-berlin.de>
X-SW-Source: 2000-q1/msg00013.html
Content-length: 2549

>Number:         18
>Category:       c++
>Synopsis:       [bad code] bad ctor/dtor call ordering
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 02 13:06:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     scott snyder <snyder@fnal.gov>
>Release:        2.96 20000229
>Organization:
>Environment:
System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown
Architecture: i586

	
host: i586-pc-linux-gnu
build: i586-pc-linux-gnu
target: i586-pc-linux-gnu
>Description:
hi -

The CVS version of g++ (2.96 20000229)  on a i686-pc-linux-gnu platform
generates invalid code for the following input:

-- egcsbug8.cc ---------------------------------------------------------
extern "C" int printf (...);

class allocator {
public:
  allocator()  {}
  allocator(const allocator&)  {}
  ~allocator()  {}
};

class basic_string
{
public:
  struct _Alloc_hider : allocator {};
  _Alloc_hider _M_dataplus;
};


class d0_String
  : public basic_string
{
public:
  d0_String (const char* s) { printf ("ctor %x\n", this); }
  ~d0_String () { printf ("dtor %x\n", this); }
};


struct pair {
  pair(const d0_String& __a) {}
};



int main ()
{
  pair pp[] = {
    pair (d0_String ("i")),
    pair (d0_String ("j"))
  };
  return 0;
}
------------------------------------------------------------------------

The code in main() will create two temporaries of type `d0_String' and
then destroy them.  I put in code to trace the constructor and destructor
calls; what i would expect to see is something like

  ctor A
  dtor A
  ctor A
  dtor A

where A is some address, or possibly

  ctor A
  ctor B
  dtor A
  dtor B

where A and B are different addresses.  Instead, here's what i see:

$ g++ -o egcsbug8 egcsbug8.cc
$ ./egcsbug8
ctor bfffe8f0
ctor bfffe8f0
dtor bfffe8f0
dtor bfffe8f0

First, the constructor is called twice, _on the same object_.
Then, the destructor is called twice, also on the same object.
Here's the section of the generated code which calls the destructors.
One can see that the destructor is explicitly being called twice
for the same stack slot:

.LEHE41:
	subl	$8, %esp
	pushl	$2
	leal	-8(%ebp), %eax
	subl	$32, %eax
	pushl	%eax
	call	_._9d0_String
	addl	$16, %esp
.LEHE40:
	subl	$8, %esp
	pushl	$2
	leal	-8(%ebp), %eax
	subl	$32, %eax
	pushl	%eax
	call	_._9d0_String
	addl	$16, %esp
	movl	$0, %eax
	jmp	.L39

>How-To-Repeat:
	
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Fri Mar 03 01:26:00 2000
From: martin@loewis.home.cs.tu-berlin.de
To: gcc-gnats@gcc.gnu.org
Cc: <tmwg@inxservices.com>
Subject: c++/19: [not accepted] pointer to shadowed member with namespaces
Date: Fri, 03 Mar 2000 01:26:00 -0000
Message-id: <20000303091609.18279.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00014.html
Content-length: 928

>Number:         19
>Category:       c++
>Synopsis:       [not accepted] pointer to shadowed member with namespaces
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 03 01:26:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Phil Blecker <tmwg@inxservices.com>
>Release:        unknown-1.0
>Organization:
>Environment:

>Description:
[Original Message-ID: <19980910072419.E22612@inxservices.com>]
Given the following setup:

	struct OID {
		int i;
	};
	void g(OID *o);

	namespace n1 {
		struct N1 {
			OID o;
		};
	}
	namespace n2 {
		struct N2 : n1::N1 {
			OID o;

			void f();
		};
	}

	using namespace n2;

void
N2::f() {
	g(&N1::o);
}

How does one properly refer to the o in n1::N1 in a member of n2::N2?

>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Fri Mar 03 01:26:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@gcc.gnu.org
Subject: c++/20: [not accepted] using declarations in templates
Date: Fri, 03 Mar 2000 01:26:00 -0000
Message-id: <200003030919.KAA00966@loewis.home.cs.tu-berlin.de>
X-SW-Source: 2000-q1/msg00015.html
Content-length: 2671

>Number:         20
>Category:       c++
>Synopsis:       [not accepted] using declarations in templates
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 03 01:26:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Carlo Wood <carlo@runaway.xs4all.nl>
>Release:        2.96
>Organization:
>Environment:
System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown
Architecture: i586

	
host: i586-pc-linux-gnu
build: i586-pc-linux-gnu
target: i586-pc-linux-gnu
>Description:
[Original Message-Id: <199812151612.RAA03367@jolan.ppro>]
a "using namespace" inside a template declaration doesn't work :/
(egcs-1.1b, didn't try it with a later version).

Example program:

-----------------------------------------------------------------
namespace N {
  void func(void) {}
};

template<class T>
void foobar(T)
{
  using namespace ::N;
  func();
}

int main(void)
{
  foobar(1);  
  return 0;
}
-----------------------------------------------------------------

~/c++/tests>g++ -v namespace.cc
Reading specs from /usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.57/specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)
 /usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.57/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ namespace.cc /tmp/ccqfpULa.ii
GNU CPP version egcs-2.91.57 19980901 (egcs-1.1 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/egcs/include/g++
 /usr/local/include
 /usr/local/egcs/i686-pc-linux-gnu/include
 /usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.57/include
 /usr/include
End of search list.
 /usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.57/cc1plus /tmp/ccqfpULa.ii -quiet -dumpbase namespace.cc -version -o /tmp/ccygY4jd.s
GNU C++ version egcs-2.91.57 19980901 (egcs-1.1 release) (i686-pc-linux-gnu) compiled by GNU C version egcs-2.91.57 19980901 (egcs-1.1 release).
namespace.cc: In function `void foobar<int>(int)':
namespace.cc:14:   instantiated from here
namespace.cc:9: `func' undeclared (first use this function)
namespace.cc:9: (Each undeclared identifier is reported only once
namespace.cc:9: for each function it appears in.)

>How-To-Repeat:
	
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Fri Mar 03 12:56:00 2000
From: martin@loewis.home.cs.tu-berlin.de
To: gcc-gnats@gcc.gnu.org
Cc: cher@suitware.com
Subject: c++/21: [not accepted] Bug in function template specialization?
Date: Fri, 03 Mar 2000 12:56:00 -0000
Message-id: <20000303205224.30543.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00016.html
Content-length: 29403

>Number:         21
>Category:       c++
>Synopsis:       [not accepted] Bug in function template specialization?
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 03 12:56:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     cher@suitware.com
>Release:        2.95
>Organization:
>Environment:
System:  Linux x86
OS:  Redhat 6.0
gcc version:  2.95.2  (I installed the rpms from redhat's rawhide site.)
>Description:
I found what seems to be a bug in parsing function template
specializations.  In the test case, I have an example of two function
template specializations; one that declares an ordinary function and one
that declares an overloaded operator.  GCC produces an error for the
operator, but does not for the ordinary function.
>How-To-Repeat:
Command-line:  gcc bug1.cpp
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="bug1.ii.bz2"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bug1.ii.bz2"

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
>From martin@loewis.home.cs.tu-berlin.de Fri Mar 03 13:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@gcc.gnu.org
Subject: optimization/22: can_reach_end incorrectly computed
Date: Fri, 03 Mar 2000 13:16:00 -0000
Message-id: <200003032109.WAA02029@loewis.home.cs.tu-berlin.de>
X-SW-Source: 2000-q1/msg00017.html
Content-length: 1587

>Number:         22
>Category:       optimization
>Synopsis:       can_reach_end incorrectly computed
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 03 13:16:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     "Robert M. Fleischman" <rmf@bcandid.com>
>Release:        2.95
>Organization:
mira
>Environment:
System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown
Architecture: i586

	
>Description:
Turning on optimization causes a warning. I'm very worried that this
causes INCORRECT code to be generated by the latest gcc.

Example Code:

class X {
public:
    X() {}
    ~X() {
        int y = 0;
        while (y) { }
    }
};

int *foo()
{
    X x;
    return new int(3);
}
 
int main()
{
    delete foo();
    return 0;
}


Optimization causes BOGUS warning:

% g++ -O -c -Wall -Werror foo.C
cc1plus: warnings being treated as errors
foo.C: In function `int * foo()':
foo.C:15: warning: control reaches end of non-void function `foo()'
%

WITHOUT Optimization it is silent:

% g++ -c -Wall -Werror foo.C  
%

Version of gcc:

% g++ -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs
gcc version 2.95.2 19991024 (release)


---------

Clearly, contol CAN NOT reach the end of foo() without a valid return!
I suspect something in the inline'd destructor under optimization is
causing something very bad to happen!

	
>How-To-Repeat:
	
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Fri Mar 03 15:46:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/23: Testing attachments
Date: Fri, 03 Mar 2000 15:46:00 -0000
Message-id: <200003032334.AAA02932@loewis.home.cs.tu-berlin.de>
References: <38BFCD09.178BF61A@cnet.francetelecom.fr>
X-SW-Source: 2000-q1/msg00018.html
Content-length: 169329

	Note: There was a bad value `non-serious' for the field `>Severity:'.
	It was set to the default value of `serious'.


>Number:         23
>Category:       c++
>Synopsis:       Testing attachments
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 03 15:46:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     MvL
>Release:        2.95.2
>Organization:
>Environment:
>Description:

I'm trying to find out whether I can attach files to a mail message
send using the normal mail interface. It's a plain configure.in in
this case.


--Multipart_Sat_Mar__4_00:34:57_2000-1
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="configure.in"
Content-Transfer-Encoding: base64

IyBjb25maWd1cmUuaW4gZm9yIEdOVSBDQwojIFByb2Nlc3MgdGhpcyBmaWxlIHdpdGggYXV0b2Nv
bmYgdG8gZ2VuZXJhdGUgYSBjb25maWd1cmF0aW9uIHNjcmlwdC4KCiMgQ29weXJpZ2h0IChDKSAx
OTk3LCAxOTk4LCAxOTk5LCAyMDAwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgoKI1Ro
aXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBDQy4KCiNHTlUgQ0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKI3RoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlv
bikKI2FueSBsYXRlciB2ZXJzaW9uLgoKI0dOVSBDQyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgojWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKI2Fsb25nIHdpdGggR05VIEND
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8KI3RoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKI0Jvc3RvbiwgTUEg
MDIxMTEtMTMwNywgVVNBLgoKIyBJbml0aWFsaXphdGlvbiBhbmQgZGVmYXVsdHMKQUNfUFJFUkVR
KDIuMTMpCkFDX0lOSVQodHJlZS5jKQpBQ19DT05GSUdfSEVBREVSKGF1dG8taG9zdC5oOmNvbmZp
Zy5pbikKCnJlbW92ZT1ybQpoYXJkX2xpbms9bG4Kc3ltYm9saWNfbGluaz0nbG4gLXMnCmNvcHk9
Y3AKCiMgQ2hlY2sgZm9yIGJvZ3VzIGVudmlyb25tZW50IHZhcmlhYmxlcy4KIyBUZXN0IGlmIExJ
QlJBUllfUEFUSCBjb250YWlucyB0aGUgbm90YXRpb24gZm9yIHRoZSBjdXJyZW50IGRpcmVjdG9y
eQojIHNpbmNlIHRoaXMgd291bGQgbGVhZCB0byBwcm9ibGVtcyBpbnN0YWxsaW5nL2J1aWxkaW5n
IGdsaWJjLgojIExJQlJBUllfUEFUSCBjb250YWlucyB0aGUgY3VycmVudCBkaXJlY3RvcnkgaWYg
b25lIG9mIHRoZSBmb2xsb3dpbmcKIyBpcyB0cnVlOgojIC0gb25lIG9mIHRoZSB0ZXJtaW5hbHMg
KCI6IiBhbmQgIjsiKSBpcyB0aGUgZmlyc3Qgb3IgbGFzdCBzaWduCiMgLSB0d28gdGVybWluYWxz
IG9jY3VyIGRpcmVjdGx5IGFmdGVyIGVhY2ggb3RoZXIKIyAtIHRoZSBwYXRoIGNvbnRhaW5zIGFu
IGVsZW1lbnQgd2l0aCBhIGRvdCBpbiBpdApBQ19NU0dfQ0hFQ0tJTkcoTElCUkFSWV9QQVRIIHZh
cmlhYmxlKQpjaGFuZ2VxdW90ZSgsKWRubApjYXNlICR7TElCUkFSWV9QQVRIfSBpbgogIFs6XDtd
KiB8ICpbOlw7XSB8ICpbOlw7XVs6XDtdKiB8ICAqWzpcO10uIHwgLls6XDtdKnwgLiB8ICpbOlw7
XS5bOlw7XSogKQogICAgbGlicmFyeV9wYXRoX3NldHRpbmc9ImNvbnRhaW5zIGN1cnJlbnQgZGly
ZWN0b3J5IgogICAgOzsKICAqKQogICAgbGlicmFyeV9wYXRoX3NldHRpbmc9Im9rIgogICAgOzsK
ZXNhYwpjaGFuZ2VxdW90ZShbLF0pZG5sCkFDX01TR19SRVNVTFQoJGxpYnJhcnlfcGF0aF9zZXR0
aW5nKQppZiB0ZXN0ICIkbGlicmFyeV9wYXRoX3NldHRpbmciICE9ICJvayI7IHRoZW4KQUNfTVNH
X0VSUk9SKFsKKioqIExJQlJBUllfUEFUSCBzaG91bGRuJ3QgY29udGFpbiB0aGUgY3VycmVudCBk
aXJlY3Rvcnkgd2hlbgoqKiogYnVpbGRpbmcgZ2NjLiBQbGVhc2UgY2hhbmdlIHRoZSBlbnZpcm9u
bWVudCB2YXJpYWJsZQoqKiogYW5kIHJ1biBjb25maWd1cmUgYWdhaW4uXSkKZmkKCiMgVGVzdCBp
ZiBHQ0NfRVhFQ19QUkVGSVggY29udGFpbnMgdGhlIG5vdGF0aW9uIGZvciB0aGUgY3VycmVudCBk
aXJlY3RvcnkKIyBzaW5jZSB0aGlzIHdvdWxkIGxlYWQgdG8gcHJvYmxlbXMgaW5zdGFsbGluZy9i
dWlsZGluZyBnbGliYy4KIyBHQ0NfRVhFQ19QUkVGSVggY29udGFpbnMgdGhlIGN1cnJlbnQgZGly
ZWN0b3J5IGlmIG9uZSBvZiB0aGUgZm9sbG93aW5nCiMgaXMgdHJ1ZToKIyAtIG9uZSBvZiB0aGUg
dGVybWluYWxzICgiOiIgYW5kICI7IikgaXMgdGhlIGZpcnN0IG9yIGxhc3Qgc2lnbgojIC0gdHdv
IHRlcm1pbmFscyBvY2N1ciBkaXJlY3RseSBhZnRlciBlYWNoIG90aGVyCiMgLSB0aGUgcGF0aCBj
b250YWlucyBhbiBlbGVtZW50IHdpdGggYSBkb3QgaW4gaXQKQUNfTVNHX0NIRUNLSU5HKEdDQ19F
WEVDX1BSRUZJWCB2YXJpYWJsZSkKY2hhbmdlcXVvdGUoLClkbmwKY2FzZSAke0dDQ19FWEVDX1BS
RUZJWH0gaW4KICBbOlw7XSogfCAqWzpcO10gfCAqWzpcO11bOlw7XSogfCAgKls6XDtdLiB8IC5b
Olw7XSp8IC4gfCAqWzpcO10uWzpcO10qICkKICAgIGdjY19leGVjX3ByZWZpeF9zZXR0aW5nPSJj
b250YWlucyBjdXJyZW50IGRpcmVjdG9yeSIKICAgIDs7CiAgKikKICAgIGdjY19leGVjX3ByZWZp
eF9zZXR0aW5nPSJvayIKICAgIDs7CmVzYWMKY2hhbmdlcXVvdGUoWyxdKWRubApBQ19NU0dfUkVT
VUxUKCRnY2NfZXhlY19wcmVmaXhfc2V0dGluZykKaWYgdGVzdCAiJGdjY19leGVjX3ByZWZpeF9z
ZXR0aW5nIiAhPSAib2siOyB0aGVuCkFDX01TR19FUlJPUihbCioqKiBHQ0NfRVhFQ19QUkVGSVgg
c2hvdWxkbid0IGNvbnRhaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdoZW4KKioqIGJ1aWxkaW5n
IGdjYy4gUGxlYXNlIGNoYW5nZSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKKioqIGFuZCBydW4g
Y29uZmlndXJlIGFnYWluLl0pCmZpCgojIENoZWNrIGZvciBhZGRpdGlvbmFsIHBhcmFtZXRlcnMK
CiMgV2l0aCBHTlUgbGQKQUNfQVJHX1dJVEgoZ251LWxkLApbICAtLXdpdGgtZ251LWxkICAgICAg
ICAgICBhcnJhbmdlIHRvIHdvcmsgd2l0aCBHTlUgbGQuXSwKZ251X2xkX2ZsYWc9IiR3aXRoX2du
dV9sZCIsCmdudV9sZF9mbGFnPW5vKQoKIyBXaXRoIHByZS1kZWZpbmVkIGxkCkFDX0FSR19XSVRI
KGxkLApbICAtLXdpdGgtbGQgICAgICAgICAgICAgICBhcnJhbmdlIHRvIHVzZSB0aGUgc3BlY2lm
aWVkIGxkIChmdWxsIHBhdGhuYW1lKS5dLApERUZBVUxUX0xJTktFUj0iJHdpdGhfbGQiKQppZiB0
ZXN0IHgiJHtERUZBVUxUX0xJTktFUitzZXR9IiA9IHgic2V0IjsgdGhlbgogIGlmIHRlc3QgISAt
eCAiJERFRkFVTFRfTElOS0VSIjsgdGhlbgogICAgQUNfTVNHX1dBUk4oW2Nhbm5vdCBleGVjdXRl
OiAkREVGQVVMVF9MSU5LRVI6IGNoZWNrIC0td2l0aC1sZCBvciBlbnYuIHZhci4gREVGQVVMVF9M
SU5LRVJdKQogIGVsaWYgJERFRkFVTFRfTElOS0VSIC12IDwgL2Rldi9udWxsIDI+JjEgfCBncmVw
IEdOVSA+IC9kZXYvbnVsbDsgdGhlbgogICAgZ251X2xkX2ZsYWc9eWVzCiAgZmkKICBBQ19ERUZJ
TkVfVU5RVU9URUQoREVGQVVMVF9MSU5LRVIsIiRERUZBVUxUX0xJTktFUiIpCmZpCgojIFdpdGgg
R05VIGFzCkFDX0FSR19XSVRIKGdudS1hcywKWyAgLS13aXRoLWdudS1hcyAgICAgICAgICAgYXJy
YW5nZSB0byB3b3JrIHdpdGggR05VIGFzLl0sCmdhc19mbGFnPSIkd2l0aF9nbnVfYXMiLApnYXNf
ZmxhZz1ubykKCkFDX0FSR19XSVRIKGFzLApbICAtLXdpdGgtYXMgICAgICAgICAgICAgICBhcnJh
bmdlIHRvIHVzZSB0aGUgc3BlY2lmaWVkIGFzIChmdWxsIHBhdGhuYW1lKS5dLApERUZBVUxUX0FT
U0VNQkxFUj0iJHdpdGhfYXMiKQppZiB0ZXN0IHgiJHtERUZBVUxUX0FTU0VNQkxFUitzZXR9IiA9
IHgic2V0IjsgdGhlbgogIGlmIHRlc3QgISAteCAiJERFRkFVTFRfQVNTRU1CTEVSIjsgdGhlbgog
ICAgQUNfTVNHX1dBUk4oW2Nhbm5vdCBleGVjdXRlOiAkREVGQVVMVF9BU1NFTUJMRVI6IGNoZWNr
IC0td2l0aC1hcyBvciBlbnYuIHZhci4gREVGQVVMVF9BU1NFTUJMRVJdKQogIGVsaWYgJERFRkFV
TFRfQVNTRU1CTEVSIC12IDwgL2Rldi9udWxsIDI+JjEgfCBncmVwIEdOVSA+IC9kZXYvbnVsbDsg
dGhlbgogICAgZ2FzX2ZsYWc9eWVzCiAgZmkKICBBQ19ERUZJTkVfVU5RVU9URUQoREVGQVVMVF9B
U1NFTUJMRVIsIiRERUZBVUxUX0FTU0VNQkxFUiIpCmZpCgojIFdpdGggc3RhYnMKQUNfQVJHX1dJ
VEgoc3RhYnMsClsgIC0td2l0aC1zdGFicyAgICAgICAgICAgIGFycmFuZ2UgdG8gdXNlIHN0YWJz
IGluc3RlYWQgb2YgaG9zdCBkZWJ1ZyBmb3JtYXQuXSwKc3RhYnM9IiR3aXRoX3N0YWJzIiwKc3Rh
YnM9bm8pCgojIFdpdGggRUxGCkFDX0FSR19XSVRIKGVsZiwKWyAgLS13aXRoLWVsZiAgICAgICAg
ICAgICAgYXJyYW5nZSB0byB1c2UgRUxGIGluc3RlYWQgb2YgaG9zdCBkZWJ1ZyBmb3JtYXQuXSwK
ZWxmPSIkd2l0aF9lbGYiLAplbGY9bm8pCgojIFNwZWNpZnkgdGhlIGxvY2FsIHByZWZpeApsb2Nh
bF9wcmVmaXg9CkFDX0FSR19XSVRIKGxvY2FsLXByZWZpeCwKWyAgLS13aXRoLWxvY2FsLXByZWZp
eD1ESVIgc3BlY2lmaWVzIGRpcmVjdG9yeSB0byBwdXQgbG9jYWwgaW5jbHVkZS5dLApbY2FzZSAi
JHt3aXRodmFsfSIgaW4KeWVzKQlBQ19NU0dfRVJST1IoYmFkIHZhbHVlICR7d2l0aHZhbH0gZ2l2
ZW4gZm9yIGxvY2FsIGluY2x1ZGUgZGlyZWN0b3J5IHByZWZpeCkgOzsKbm8pCTs7CiopCWxvY2Fs
X3ByZWZpeD0kd2l0aF9sb2NhbF9wcmVmaXggOzsKZXNhY10pCgojIERlZmF1bHQgbG9jYWwgcHJl
Zml4IGlmIGl0IGlzIGVtcHR5CmlmIHRlc3QgeCRsb2NhbF9wcmVmaXggPSB4OyB0aGVuCglsb2Nh
bF9wcmVmaXg9L3Vzci9sb2NhbApmaQoKIyBEb24ndCBzZXQgZ2NjX2d4eF9pbmNsdWRlX2RpciB0
byBneHhfaW5jbHVkZV9kaXIgc2luY2UgdGhhdCdzIG9ubHkKIyBwYXNzZWQgaW4gYnkgdGhlIHRv
cGxldmVsIG1ha2UgYW5kIHRodXMgd2UnZCBnZXQgZGlmZmVyZW50IGJlaGF2aW9yCiMgZGVwZW5k
aW5nIG9uIHdoZXJlIHdlIGJ1aWx0IHRoZSBzb3VyY2VzLgpnY2NfZ3h4X2luY2x1ZGVfZGlyPQoj
IFNwZWNpZnkgdGhlIGcrKyBoZWFkZXIgZmlsZSBkaXJlY3RvcnkKQUNfQVJHX1dJVEgoZ3h4LWlu
Y2x1ZGUtZGlyLApbICAtLXdpdGgtZ3h4LWluY2x1ZGUtZGlyPURJUgogICAgICAgICAgICAgICAg
ICAgICAgICAgIHNwZWNpZmllcyBkaXJlY3RvcnkgdG8gcHV0IGcrKyBoZWFkZXIgZmlsZXMuXSwK
W2Nhc2UgIiR7d2l0aHZhbH0iIGluCnllcykJQUNfTVNHX0VSUk9SKGJhZCB2YWx1ZSAke3dpdGh2
YWx9IGdpdmVuIGZvciBnKysgaW5jbHVkZSBkaXJlY3RvcnkpIDs7Cm5vKQk7OwoqKQlnY2NfZ3h4
X2luY2x1ZGVfZGlyPSR3aXRoX2d4eF9pbmNsdWRlX2RpciA7Owplc2FjXSkKCmlmIHRlc3QgeCR7
Z2NjX2d4eF9pbmNsdWRlX2Rpcn0gPSB4OyB0aGVuCiAgaWYgdGVzdCB4JHtlbmFibGVfdmVyc2lv
bl9zcGVjaWZpY19ydW50aW1lX2xpYnN9ID0geHllczsgdGhlbgogICAgZ2NjX2d4eF9pbmNsdWRl
X2Rpcj0nJHtsaWJzdWJkaXJ9L2luY2x1ZGUvZysrJwogIGVsc2UKICAgIHRvcHNyY2Rpcj0ke3Ny
Y2Rpcn0vLi4gLiAke3NyY2Rpcn0vLi4vY29uZmlnLmlmCmNoYW5nZXF1b3RlKDw8LCA+PilkbmwK
ICAgIGdjY19neHhfaW5jbHVkZV9kaXI9IlwkKGxpYnN1YmRpcikvXCQodW5saWJzdWJkaXIpLy4u
XGBlY2hvIFwkKGV4ZWNfcHJlZml4KSB8IHNlZCAtZSAnc3xeXCQocHJlZml4KXx8JyAtZSAnc3wv
W14vXSp8Ly4ufGcnXGAvaW5jbHVkZS9nKysiLSR7bGlic3RkY3h4X2ludGVyZmFjZX0KY2hhbmdl
cXVvdGUoWywgXSlkbmwKICBmaQpmaQoKIyBFbmFibGUgZXhwZW5zaXZlIGludGVybmFsIGNoZWNr
cwpBQ19BUkdfRU5BQkxFKGNoZWNraW5nLApbICAtLWVuYWJsZS1jaGVja2luZ1s9TElTVF0KCQkJ
ICBlbmFibGUgZXhwZW5zaXZlIHJ1bi10aW1lIGNoZWNrcy4gIFdpdGggTElTVCwKCQkJICBlbmFi
bGUgb25seSBzcGVjaWZpYyBjYXRlZ29yaWVzIG9mIGNoZWNrcy4KCQkJICBDYXRlZ29yaWVzIGFy
ZTogbWlzYyx0cmVlLHJ0bCxnYyxnY2FjOyBkZWZhdWx0CgkJCSAgaXMgbWlzYyx0cmVlLHJ0bF0s
CltjYXNlICIke2VuYWJsZXZhbH0iIGluCnllcykJQUNfREVGSU5FKEVOQUJMRV9DSEVDS0lORykK
CUFDX0RFRklORShFTkFCTEVfVFJFRV9DSEVDS0lORykKCUFDX0RFRklORShFTkFCTEVfUlRMX0NI
RUNLSU5HKQk7OwpubykJOzsKKikJYWNfc2F2ZV9JRlM9IiRJRlMiIElGUz0iJElGUywiCglzZXQg
Zm5vcmQgJGVuYWJsZXZhbDsgc2hpZnQKCUlGUz0iJGFjX3NhdmVfSUZTIgoJZm9yIGNoZWNrCglk
bwoJCWNhc2UgJGNoZWNrIGluCgkJbWlzYykJQUNfREVGSU5FKEVOQUJMRV9DSEVDS0lORykJCTs7
CgkJdHJlZSkJQUNfREVGSU5FKEVOQUJMRV9UUkVFX0NIRUNLSU5HKQkJOzsKCQlydGwpCUFDX0RF
RklORShFTkFCTEVfUlRMX0NIRUNLSU5HKQkJOzsKCQlnYykJQUNfREVGSU5FKEVOQUJMRV9HQ19D
SEVDS0lORykJCTs7CgkJZ2NhYykJQUNfREVGSU5FKEVOQUJMRV9HQ19BTFdBWVNfQ09MTEVDVCkJ
OzsKCQkqKQlBQ19NU0dfRVJST1IodW5rbm93biBjaGVjayBjYXRlZ29yeSAkY2hlY2spIDs7CgkJ
ZXNhYwoJZG9uZQoJOzsKZXNhY10pCgpBQ19BUkdfRU5BQkxFKGNwcCwKWyAgLS1kaXNhYmxlLWNw
cCAgICAgICAgICAgZG9uJ3QgcHJvdmlkZSBhIHVzZXItdmlzaWJsZSBDIHByZXByb2Nlc3Nvci5d
LApbXSwgW2VuYWJsZV9jcHA9eWVzXSkKCkFDX0FSR19XSVRIKGNwcF9pbnN0YWxsX2RpciwKWyAg
LS13aXRoLWNwcC1pbnN0YWxsLWRpcj1ESVIKICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0
YWxsIHRoZSB1c2VyIHZpc2libGUgQyBwcmVwcm9jZXNzb3IgaW4gRElSCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHJlbGF0aXZlIHRvIFBSRUZJWCkgYXMgd2VsbCBhcyBQUkVGSVgvYmluLl0s
CltpZiB0ZXN0IHgkd2l0aHZhbCA9IHh5ZXM7IHRoZW4KICBBQ19NU0dfRVJST1IoW29wdGlvbiAt
LXdpdGgtY3BwLWluc3RhbGwtZGlyIHJlcXVpcmVzIGFuIGFyZ3VtZW50XSkKZWxpZiB0ZXN0IHgk
d2l0aHZhbCAhPSB4bm87IHRoZW4KICBjcHBfaW5zdGFsbF9kaXI9JHdpdGh2YWwKZmldKQoKIyBV
c2UgY3BwbGliK2NwcG1haW4gZm9yIHRoZSBwcmVwcm9jZXNzb3IsIGJ1dCBkb24ndCBsaW5rIGl0
IHdpdGggdGhlIGNvbXBpbGVyLgpjcHBfbWFpbj1jcHBtYWluCkFDX0FSR19FTkFCTEUoY3BwbGli
LApbICAtLWRpc2FibGUtY3BwbGliICAgICAgICB1c2UgdGhlIG9sZCBpc29sYXRlZCBDIHByZXBy
b2Nlc3Nvci5dLAppZiB0ZXN0IHgkZW5hYmxlX2NwcGxpYiA9IHhubzsgdGhlbgogIGNwcF9tYWlu
PWNjY3AKZmkpCgojIExpbmsgY3BwbGliIGludG8gdGhlIGNvbXBpbGVyIHByb3BlciwgZm9yIEMv
QysrL09iakMuCkFDX0FSR19FTkFCTEUoYy1jcHBsaWIsClsgIC0tZW5hYmxlLWMtY3BwbGliICAg
ICAgIGxpbmsgY3BwbGliIGRpcmVjdGx5IGludG8gQyBhbmQgQysrIGNvbXBpbGVycwogICAgICAg
ICAgICAgICAgICAgICAgICAgIChFWFBFUklNRU5UQUwpIChpbXBsaWVzIC0tZW5hYmxlLWNwcGxp
YikuXSwKaWYgdGVzdCB4JGVuYWJsZV9jX2NwcGxpYiAhPSB4bm87IHRoZW4KICBleHRyYV9jX29i
anM9IiR7ZXh0cmFfY19vYmpzfSBsaWJjcHAuYSIKICBleHRyYV9jeHhfb2Jqcz0iJHtleHRyYV9j
eHhfb2Jqc30gLi4vbGliY3BwLmEiCiAgZXh0cmFfY19mbGFncz0iJHtleHRyYV9jX2ZsYWdzfSAt
RFVTRV9DUFBMSUI9MSIKICBjcHBfbWFpbj1jcHBtYWluCmZpKQoKIyBFbmFibGUgTXVsdGlieXRl
IENoYXJhY3RlcnMgZm9yIEMvQysrCkFDX0FSR19FTkFCTEUoYy1tYmNoYXIsClsgIC0tZW5hYmxl
LWMtbWJjaGFyICAgICAgIEVuYWJsZSBtdWx0aWJ5dGUgY2hhcmFjdGVycyBmb3IgQyBhbmQgQysr
Ll0sCmlmIHRlc3QgeCRlbmFibGVfY19tYmNoYXIgIT0geG5vOyB0aGVuCiAgZXh0cmFfY19mbGFn
cz0iJHtleHRyYV9jX2ZsYWdzfSAtRE1VTFRJQllURV9DSEFSUz0xIgpmaSkKICAKIyBFbmFibGUg
dGhyZWFkcwojIFBhc3Mgd2l0aCBubyB2YWx1ZSB0byB0YWtlIHRoZSBkZWZhdWx0CiMgUGFzcyB3
aXRoIGEgdmFsdWUgdG8gc3BlY2lmeSBhIHRocmVhZCBwYWNrYWdlCkFDX0FSR19FTkFCTEUodGhy
ZWFkcywKWyAgLS1lbmFibGUtdGhyZWFkcyAgICAgICAgZW5hYmxlIHRocmVhZCB1c2FnZSBmb3Ig
dGFyZ2V0IEdDQy4KICAtLWVuYWJsZS10aHJlYWRzPUxJQiAgICB1c2UgTElCIHRocmVhZCBwYWNr
YWdlIGZvciB0YXJnZXQgR0NDLl0sCmlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHhubzsgdGhl
bgoJZW5hYmxlX3RocmVhZHM9JycKZmksCmVuYWJsZV90aHJlYWRzPScnKQoKZW5hYmxlX3RocmVh
ZHNfZmxhZz0kZW5hYmxlX3RocmVhZHMKIyBDaGVjayBpZiBhIHZhbGlkIHRocmVhZCBwYWNrYWdl
CmNhc2UgeCR7ZW5hYmxlX3RocmVhZHNfZmxhZ30gaW4KCXggfCB4bm8pCgkJIyBObyB0aHJlYWRz
CgkJdGFyZ2V0X3RocmVhZF9maWxlPSdzaW5nbGUnCgkJOzsKCXh5ZXMpCgkJIyBkZWZhdWx0CgkJ
dGFyZ2V0X3RocmVhZF9maWxlPScnCgkJOzsKCXhkZWNvc2YxIHwgeGlyaXggfCB4bWFjaCB8IHhv
czIgfCB4cG9zaXggfCB4cHRocmVhZHMgfCB4c2luZ2xlIHwgXAoJeHNvbGFyaXMgfCB4d2luMzIg
fCB4ZGNlIHwgeHZ4d29ya3MpCgkJdGFyZ2V0X3RocmVhZF9maWxlPSRlbmFibGVfdGhyZWFkc19m
bGFnCgkJOzsKCSopCgkJZWNobyAiJGVuYWJsZV90aHJlYWRzIGlzIGFuIHVua25vd24gdGhyZWFk
IHBhY2thZ2UiIDE+JjIKCQlleGl0IDEKCQk7Owplc2FjCgpBQ19BUkdfRU5BQkxFKG9iamMtZ2Ms
ClsgIC0tZW5hYmxlLW9iamMtZ2MJICBlbmFibGUgdGhlIHVzZSBvZiBCb2VobSdzIGdhcmJhZ2Ug
Y29sbGVjdG9yIHdpdGgKCQkJICB0aGUgR05VIE9iamVjdGl2ZS1DIHJ1bnRpbWUuXSwKaWYgdGVz
dCB4JGVuYWJsZV9vYmpjX2djID0geG5vOyB0aGVuCglvYmpjX2JvZWhtX2djPScnCmVsc2UKCW9i
amNfYm9laG1fZ2M9MQpmaSwKb2JqY19ib2VobV9nYz0nJykKCkFDX0FSR19XSVRIKGR3YXJmMiwK
WyAgLS13aXRoLWR3YXJmMgkgIGZvcmNlIHRoZSBkZWZhdWx0IGRlYnVnIGZvcm1hdCB0byBiZSBE
V0FSRjIuXSwKZHdhcmYyPSIkd2l0aF9kd2FyZjIiLApkd2FyZjI9bm8pCgojIERldGVybWluZSB0
aGUgaG9zdCwgYnVpbGQsIGFuZCB0YXJnZXQgc3lzdGVtcwpBQ19DQU5PTklDQUxfU1lTVEVNCgoj
IEZpbmQgdGhlIG5hdGl2ZSBjb21waWxlcgpBQ19QUk9HX0NDCkFDX0dDQ19DX0xPTkdfRE9VQkxF
CgojIElmIHRoZSBuYXRpdmUgY29tcGlsZXIgaXMgR0NDLCB3ZSBjYW4gZW5hYmxlIHdhcm5pbmdz
IGV2ZW4gaW4gc3RhZ2UxLiAgCiMgVGhhdCdzIHVzZWZ1bCBmb3IgcGVvcGxlIGJ1aWxkaW5nIGNy
b3NzLWNvbXBpbGVycywgb3IganVzdCBydW5uaW5nIGEKIyBxdWljayBgbWFrZScuCmlmIHRlc3Qg
IngkR0NDIiA9ICJ4eWVzIjsgdGhlbiAKICBzdGFnZTFfd2Fybl9jZmxhZ3M9JyQoV0FSTl9DRkxB
R1MpJwplbHNlCiAgc3RhZ2UxX3dhcm5fY2ZsYWdzPSIiCmZpCkFDX1NVQlNUKHN0YWdlMV93YXJu
X2NmbGFncykKCkFDX1BST0dfTUFLRV9TRVQKCkFDX01TR19DSEVDS0lORyhbd2hldGhlciBhIGRl
ZmF1bHQgYXNzZW1ibGVyIHdhcyBzcGVjaWZpZWRdKQppZiB0ZXN0IHgiJHtERUZBVUxUX0FTU0VN
QkxFUitzZXR9IiA9IHgic2V0IjsgdGhlbgogICAgaWYgdGVzdCB4IiRnYXNfZmxhZyIgPSB4Im5v
IjsgdGhlbgogICAgCUFDX01TR19SRVNVTFQoW3llcyAoJERFRkFVTFRfQVNTRU1CTEVSKV0pCiAg
ICBlbHNlCglBQ19NU0dfUkVTVUxUKFt5ZXMgKCRERUZBVUxUX0FTU0VNQkxFUiAtIEdOVSBhcyld
KQogICAgZmkKZWxzZQogICAgQUNfTVNHX1JFU1VMVChubykKZmkKCkFDX01TR19DSEVDS0lORyhb
d2hldGhlciBhIGRlZmF1bHQgbGlua2VyIHdhcyBzcGVjaWZpZWRdKQppZiB0ZXN0IHgiJHtERUZB
VUxUX0xJTktFUitzZXR9IiA9IHgic2V0IjsgdGhlbgogICAgaWYgdGVzdCB4IiRnbnVfbGRfZmxh
ZyIgPSB4Im5vIjsgdGhlbgoJQUNfTVNHX1JFU1VMVChbeWVzICgkREVGQVVMVF9MSU5LRVIpXSkK
ICAgIGVsc2UKCUFDX01TR19SRVNVTFQoW3llcyAoJERFRkFVTFRfTElOS0VSIC0gR05VIGxkKV0p
CiAgICBmaQplbHNlCiAgICBBQ19NU0dfUkVTVUxUKG5vKQpmaQoKIyBGaW5kIHNvbWUgdXNlZnVs
IHRvb2xzCkFDX1BST0dfQVdLCkFDX1BST0dfTEVYCkdDQ19QUk9HX0xOCkdDQ19QUk9HX0xOX1MK
R0NDX0NfVk9MQVRJTEUKQUNfUFJPR19SQU5MSUIKQUNfUFJPR19ZQUNDCkVHQ1NfUFJPR19JTlNU
QUxMCgpBQ19IRUFERVJfU1REQwpBQ19IRUFERVJfVElNRQpHQ0NfSEVBREVSX1NUUklORwpBQ19I
RUFERVJfU1lTX1dBSVQKQUNfQ0hFQ0tfSEVBREVSUyhsaW1pdHMuaCBzdGRkZWYuaCBzdHJpbmcu
aCBzdHJpbmdzLmggc3RkbGliLmggdGltZS5oIFwKCQkgZmNudGwuaCB1bmlzdGQuaCBzdGFiLmgg
c3lzL2ZpbGUuaCBzeXMvdGltZS5oIFwKCQkgc3lzL3Jlc291cmNlLmggc3lzL3BhcmFtLmggc3lz
L3RpbWVzLmggc3lzL3N0YXQuaCBcCgkJIGRpcmVjdC5oIG1hbGxvYy5oKQoKIyBDaGVjayBmb3Ig
dGhyZWFkIGhlYWRlcnMuCkFDX0NIRUNLX0hFQURFUih0aHJlYWQuaCwgW2hhdmVfdGhyZWFkX2g9
eWVzXSwgW2hhdmVfdGhyZWFkX2g9XSkKQUNfQ0hFQ0tfSEVBREVSKHB0aHJlYWQuaCwgW2hhdmVf
cHRocmVhZF9oPXllc10sIFtoYXZlX3B0aHJlYWRfaD1dKQoKIyBTZWUgaWYgR05BVCBoYXMgYmVl
biBpbnN0YWxsZWQKQUNfQ0hFQ0tfUFJPRyhnbmF0LCBnbmF0YmluZCwgeWVzLCBubykKCiMgU2Vl
IGlmIHRoZSBzdGFnZTEgc3lzdGVtIHByZXByb2Nlc3NvciB1bmRlcnN0YW5kcyB0aGUgQU5TSSBD
CiMgcHJlcHJvY2Vzc29yIHN0cmluZ2lmaWNhdGlvbiBvcGVyYXRvci4KQUNfQ19TVFJJTkdJWkUK
CiMgVXNlIDxpbnR0eXBlcy5oPiBvbmx5IGlmIGl0IGV4aXN0cywKIyBkb2Vzbid0IGNsYXNoIHdp
dGggPHN5cy90eXBlcy5oPiwgYW5kIGRlY2xhcmVzIGludG1heF90LgpBQ19NU0dfQ0hFQ0tJTkco
Zm9yIGludHR5cGVzLmgpCkFDX0NBQ0hFX1ZBTChnY2NfY3ZfaGVhZGVyX2ludHR5cGVzX2gsCltB
Q19UUllfQ09NUElMRSgKICBbI2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8aW50dHlw
ZXMuaD5dLAogIFtpbnRtYXhfdCBpID0gLTE7XSwKICBbZ2NjX2N2X2hlYWRlcl9pbnR0eXBlc19o
PXllc10sCiAgZ2NjX2N2X2hlYWRlcl9pbnR0eXBlc19oPW5vKV0pCkFDX01TR19SRVNVTFQoJGdj
Y19jdl9oZWFkZXJfaW50dHlwZXNfaCkKaWYgdGVzdCAkZ2NjX2N2X2hlYWRlcl9pbnR0eXBlc19o
ID0geWVzOyB0aGVuCiAgQUNfREVGSU5FKEhBVkVfSU5UVFlQRVNfSCkKZmkKCkFDX0NIRUNLX0ZV
TkNTKHN0cnRvdWwgYnNlYXJjaCBwdXRlbnYgcG9wZW4gYmNvcHkgYnplcm8gYmNtcCBcCglpbmRl
eCByaW5kZXggc3RyY2hyIHN0cnJjaHIga2lsbCBnZXRybGltaXQgc2V0cmxpbWl0IGF0b2xsIGF0
b3EgXAoJc3lzY29uZiBpc2FzY2lpIGdldHRpbWVvZmRheSBzdHJzaWduYWwgcHV0Y191bmxvY2tl
ZCBmcHV0Y191bmxvY2tlZCBcCglmcHV0c191bmxvY2tlZCBnZXRydXNhZ2UgdmFsbG9jKQoKIyBN
YWtlIHN1cmUgd2NoYXJfdCBpcyBhdmFpbGFibGUKI0FDX0NIRUNLX1RZUEUod2NoYXJfdCwgdW5z
aWduZWQgaW50KQoKR0NDX0ZVTkNfVkZQUklOVEZfRE9QUk5UCkdDQ19GVU5DX1BSSU5URl9QVFIK
CmNhc2UgIiR7aG9zdH0iIGluCiotKi11d2luKikKICAjIFVuZGVyIHNvbWUgdmVyc2lvbnMgb2Yg
dXdpbiwgdmZvcmsgaXMgbm90b3Jpb3VzbHkgYnVnZ3kgYW5kIHRoZSB0ZXN0IAogICMgY2FuIGhh
bmcgY29uZmlndXJlOyBvbiBvdGhlciB2ZXJzaW9ucywgdmZvcmsgZXhpc3RzIGp1c3QgYXMgYSBz
dHViLgogICMgRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbW92ZWQgb25jZSB2Zm9yayBpbiB1d2lu
J3MgcnVudGltZSBpcyBmaXhlZC4KICBhY19jdl9mdW5jX3Zmb3JrX3dvcmtzPW5vCiAgOzsKZXNh
YwpBQ19GVU5DX1ZGT1JLCkFDX0ZVTkNfTU1BUF9BTllXSEVSRQoKR0NDX05FRURfREVDTEFSQVRJ
T05TKGJjb3B5IGJ6ZXJvIGJjbXAgXAoJaW5kZXggcmluZGV4IGdldGVudiBhdG9sIHNicmsgYWJv
cnQgYXRvZiBnZXRjd2QgZ2V0d2QgXAoJc3Ryc2lnbmFsIHB1dGNfdW5sb2NrZWQgZnB1dHNfdW5s
b2NrZWQgc3Ryc3RyIGVudmlyb24pCgpHQ0NfTkVFRF9ERUNMQVJBVElPTlMobWFsbG9jIHJlYWxs
b2MgY2FsbG9jIGZyZWUsIFsKI2lmZGVmIEhBVkVfTUFMTE9DX0gKI2luY2x1ZGUgPG1hbGxvYy5o
PgojZW5kaWYKXSkKCkdDQ19ORUVEX0RFQ0xBUkFUSU9OUyhnZXRybGltaXQgc2V0cmxpbWl0IGdl
dHJ1c2FnZSwgWwojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNpZmRlZiBIQVZFX1NZU19SRVNPVVJD
RV9ICiNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KI2VuZGlmCl0pCgojIG1rZGlyIHRha2VzIGEg
c2luZ2xlIGFyZ3VtZW50IG9uIHNvbWUgc3lzdGVtcy4gCkdDQ19GVU5DX01LRElSX1RBS0VTX09O
RV9BUkcKCiMgRmlsZSBleHRlbnNpb25zCm1hbmV4dD0nLjEnCm9iamV4dD0nLm8nCkFDX1NVQlNU
KG1hbmV4dCkKQUNfU1VCU1Qob2JqZXh0KQoKYnVpbGRfeG1fZmlsZT0KYnVpbGRfeG1fZGVmaW5l
cz0KYnVpbGRfaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtdGFyCmJ1aWxkX2V4
ZWV4dD0KaG9zdF94bV9maWxlPQpob3N0X3htX2RlZmluZXM9Cmhvc3RfeG1ha2VfZmlsZT0KaG9z
dF90cnVuY2F0ZV90YXJnZXQ9Cmhvc3RfZXhlZXh0PQoKIyBEZWNvZGUgdGhlIGhvc3QgbWFjaGlu
ZSwgdGhlbiB0aGUgdGFyZ2V0IG1hY2hpbmUuCiMgRm9yIHRoZSBob3N0IG1hY2hpbmUsIHdlIHNh
dmUgdGhlIHhtX2ZpbGUgdmFyaWFibGUgYXMgaG9zdF94bV9maWxlOwojIHRoZW4gd2UgZGVjb2Rl
IHRoZSB0YXJnZXQgbWFjaGluZSBhbmQgZm9yZ2V0IGV2ZXJ5dGhpbmcgZWxzZQojIHRoYXQgY2Ft
ZSBmcm9tIHRoZSBob3N0IG1hY2hpbmUuCmZvciBtYWNoaW5lIGluICRidWlsZCAkaG9zdCAkdGFy
Z2V0OyBkbwoKCW91dF9maWxlPQoJeG1ha2VfZmlsZT0KCXRtYWtlX2ZpbGU9CglleHRyYV9oZWFk
ZXJzPQoJZXh0cmFfcGFzc2VzPQoJZXh0cmFfcGFydHM9CglleHRyYV9wcm9ncmFtcz0KCWV4dHJh
X29ianM9CglleHRyYV9ob3N0X29ianM9CglleHRyYV9nY2Nfb2Jqcz0KCXhtX2RlZmluZXM9Cglm
bG9hdF9mb3JtYXQ9CgkjIFNldCB0aGlzIHRvIGZvcmNlIGluc3RhbGxhdGlvbiBhbmQgdXNlIG9m
IGNvbGxlY3QyLgoJdXNlX2NvbGxlY3QyPQoJIyBTZXQgdGhpcyB0byBvdmVycmlkZSB0aGUgZGVm
YXVsdCB0YXJnZXQgbW9kZWwuCgl0YXJnZXRfY3B1X2RlZmF1bHQ9CgkjIFNldCB0aGlzIHRvIGNv
bnRyb2wgaG93IHRoZSBoZWFkZXIgZmlsZSBkaXJlY3RvcnkgaXMgaW5zdGFsbGVkLgoJaW5zdGFs
bF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtdGFyCgkjIFNldCB0aGlzIHRvIGEgbm9uLWVt
cHR5IGxpc3Qgb2YgYXJncyB0byBwYXNzIHRvIGNwcCBpZiB0aGUgdGFyZ2V0CgkjIHdhbnRzIGl0
cyAubWQgZmlsZSBwYXNzZWQgdGhyb3VnaCBjcHAuCgltZF9jcHBmbGFncz0KCSMgU2V0IHRoaXMg
aWYgZGlyZWN0b3J5IG5hbWVzIHNob3VsZCBiZSB0cnVuY2F0ZWQgdG8gMTQgY2hhcmFjdGVycy4K
CXRydW5jYXRlX3RhcmdldD0KCSMgU2V0IHRoaXMgaWYgZ2RiIG5lZWRzIGEgZGlyIGNvbW1hbmQg
d2l0aCBgZGlybmFtZSAkb3V0X2ZpbGVgCglnZGJfbmVlZHNfb3V0X2ZpbGVfcGF0aD0KCSMgU2V0
IHRoaXMgaWYgdGhlIGJ1aWxkIG1hY2hpbmUgcmVxdWlyZXMgZXhlY3V0YWJsZXMgdG8gaGF2ZSBh
CgkjIGZpbGUgbmFtZSBzdWZmaXguCglleGVleHQ9CgkjIFNldCB0aGlzIHRvIGNvbnRyb2wgd2hp
Y2ggdGhyZWFkIHBhY2thZ2Ugd2lsbCBiZSB1c2VkLgoJdGhyZWFkX2ZpbGU9CgkjIFJlaW5pdGlh
bGl6ZSB0aGVzZSBmcm9tIHRoZSBmbGFnIHZhbHVlcyBldmVyeSBsb29wIHBhc3MsIHNpbmNlIHNv
bWUKCSMgY29uZmlndXJlIGVudHJpZXMgbW9kaWZ5IHRoZW0uCglnYXM9IiRnYXNfZmxhZyIKCWdu
dV9sZD0iJGdudV9sZF9mbGFnIgoJZW5hYmxlX3RocmVhZHM9JGVuYWJsZV90aHJlYWRzX2ZsYWcK
CgkjIFNldCBkZWZhdWx0IGNwdV90eXBlLCB0bV9maWxlLCB0bV9wX2ZpbGUgYW5kIHhtX2ZpbGUg
c28gaXQgY2FuIGJlCgkjIHVwZGF0ZWQgaW4gZWFjaCBtYWNoaW5lIGVudHJ5LgoJdG1fcF9maWxl
PQoJY3B1X3R5cGU9YGVjaG8gJG1hY2hpbmUgfCBzZWQgJ3MvLS4qJC8vJ2AKCWNhc2UgJG1hY2hp
bmUgaW4KCWFscGhhKi0qLSopCgkJY3B1X3R5cGU9YWxwaGEKCQk7OwoJYXJtKi0qLSopCgkJY3B1
X3R5cGU9YXJtCgkJOzsKCWMqLWNvbnZleC0qKQoJCWNwdV90eXBlPWNvbnZleAoJCTs7CmNoYW5n
ZXF1b3RlKCwpZG5sCglpWzM0NTY3XTg2LSotKikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCWNwdV90
eXBlPWkzODYKCQk7OwoJaHBwYSotKi0qKQoJCWNwdV90eXBlPXBhCgkJOzsKCW02ODAwMC0qLSop
CgkJY3B1X3R5cGU9bTY4awoJCTs7CgltaXBzKi0qLSopCgkJY3B1X3R5cGU9bWlwcwoJCTs7CiAJ
cGoqLSotKikKIAkJY3B1X3R5cGU9cGoKIAkJOzsKCXBvd2VycGMqLSotKikKCQljcHVfdHlwZT1y
czYwMDAKCQk7OwoJcHlyYW1pZC0qLSopCgkJY3B1X3R5cGU9cHlyCgkJOzsKCXNwYXJjKi0qLSop
CgkJY3B1X3R5cGU9c3BhcmMKCQk7OwoJZXNhYwoKCXRtX2ZpbGU9JHtjcHVfdHlwZX0vJHtjcHVf
dHlwZX0uaAoJeG1fZmlsZT0ke2NwdV90eXBlfS94bS0ke2NwdV90eXBlfS5oCglpZiB0ZXN0IC1m
ICR7c3JjZGlyfS9jb25maWcvJHtjcHVfdHlwZX0vJHtjcHVfdHlwZX0tcHJvdG9zLmg7Cgl0aGVu
CgkJdG1fcF9maWxlPSR7Y3B1X3R5cGV9LyR7Y3B1X3R5cGV9LXByb3Rvcy5oOwoJZmkKCSMgT24g
YS5vdXQgdGFyZ2V0cywgd2UgbmVlZCB0byB1c2UgY29sbGVjdDIuCgljYXNlICRtYWNoaW5lIGlu
CgkqLSotKmFvdXQqKQoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJZXNhYwkKCgkjIENvbW1vbiBw
YXJ0cyBmb3IgbGludXgtZ251IGFuZCBvcGVuYnNkIHN5c3RlbXMKCWNhc2UgJG1hY2hpbmUgaW4K
CSotKi1saW51eC1nbnUqKQoJCXhtX2RlZmluZXM9IkhBVkVfQVRFWElUIFBPU0lYIEJTVFJJTkci
CgkJOzsKCSotKi1vcGVuYnNkKikKCQl0bV9maWxlPSR7Y3B1X3R5cGV9L29wZW5ic2QuaAoJCXRt
YWtlX2ZpbGU9InQtbGliYy1vayB0LW9wZW5ic2QiCgkJIyBhdm9pZCBzdXJwcmlzZXMsIGFsd2F5
cyBwcm92aWRlIGFuIHhtLW9wZW5ic2QgZmlsZSAKCQl4bV9maWxlPSR7Y3B1X3R5cGV9L3htLW9w
ZW5ic2QuaAoJCSMgZG9uJ3QgZGVwZW5kIG9uIHByb2Nlc3NvciB4LWZyYWdtZW50cyBhcyB3ZWxs
CgkJeG1ha2VfZmlsZT1ub25lCiAJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRo
ZW4KIAkJCXRocmVhZF9maWxlPSdwb3NpeCcKCQkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSB0
LW9wZW5ic2QtdGhyZWFkIgoJCWZpCgkJOzsKCWVzYWMKCgljYXNlICRtYWNoaW5lIGluCgkjIFN1
cHBvcnQgc2l0ZS1zcGVjaWZpYyBtYWNoaW5lIHR5cGVzLgoJKmxvY2FsKikKCQljcHVfdHlwZT1g
ZWNobyAkbWFjaGluZSB8IHNlZCAtZSAncy8tLiovLydgCgkJcmVzdD1gZWNobyAkbWFjaGluZSB8
IHNlZCAtZSAicy8kY3B1X3R5cGUtLy8iYAoJCXhtX2ZpbGU9JHtjcHVfdHlwZX0veG0tJHJlc3Qu
aAoJCXRtX2ZpbGU9JHtjcHVfdHlwZX0vJHJlc3QuaAoJCWlmIHRlc3QgLWYgJHNyY2Rpci9jb25m
aWcvJHtjcHVfdHlwZX0veC0kcmVzdDsgXAoJCXRoZW4geG1ha2VfZmlsZT0ke2NwdV90eXBlfS94
LSRyZXN0OyBcCgkJZWxzZSB0cnVlOyBcCgkJZmkKCQlpZiB0ZXN0IC1mICRzcmNkaXIvY29uZmln
LyR7Y3B1X3R5cGV9L3QtJHJlc3Q7IFwKCQl0aGVuIHRtYWtlX2ZpbGU9JHtjcHVfdHlwZX0vdC0k
cmVzdDsgXAoJCWVsc2UgdHJ1ZTsgXAoJCWZpCgkJOzsKCTE3NTBhLSotKikKCQk7OwoJYTI5ay0q
LWJzZCogfCBhMjlrLSotc3ltMSopCgkJdG1fZmlsZT0iJHt0bV9maWxlfSBhMjlrL3VuaXguaCIK
CQl4bV9kZWZpbmVzPVVTRwoJCXhtYWtlX2ZpbGU9YTI5ay94LXVuaXgKCQl1c2VfY29sbGVjdDI9
eWVzCgkJOzsKCWEyOWstKi11ZGkgfCBhMjlrLSotY29mZikKCQl0bV9maWxlPSIke3RtX2ZpbGV9
IGRieGNvZmYuaCBhMjlrL3VkaS5oIgoJCXRtYWtlX2ZpbGU9YTI5ay90LWEyOWtiYXJlCgkJOzsK
CWEyOWstd3JzLXZ4d29ya3MqKQoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4Y29mZi5oIGEyOWsv
dWRpLmggYTI5ay92eDI5ay5oIgoJCXRtYWtlX2ZpbGU9YTI5ay90LXZ4MjlrCgkJZXh0cmFfcGFy
dHM9ImNydGJlZ2luLm8gY3J0ZW5kLm8iCgkJdGhyZWFkX2ZpbGU9J3Z4d29ya3MnCgkJOzsKCWEy
OWstKi0qKQkJCSMgRGVmYXVsdCBhMjlrIGVudmlyb25tZW50LgoJCXVzZV9jb2xsZWN0Mj15ZXMK
CQk7OwoJYWxwaGEtKi1pbnRlcml4KQoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gYWxwaGEvYWxwaGEz
Mi5oIGludGVyaXguaCBhbHBoYS9hbHBoYS1pbnRlcml4LmgiCgoJCSMgR0FTICsgSUVFRV9DT05G
T1JNQU5UK0lFRUUgKG5vIGluZXhhY3QpOwoJCSN0YXJnZXRfY3B1X2RlZmF1bHQ9Ik1BU0tfR0FT
fE1BU0tfSUVFRV9DT05GT1JNQU5UfE1BU0tfSUVFRSIKCgkJIyBHQVMgKyBJRUVFX0NPTkZPUk1B
TlQKCQl0YXJnZXRfY3B1X2RlZmF1bHQ9Ik1BU0tfR0FTfE1BU0tfSUVFRV9DT05GT1JNQU5UIgoK
CQl4bV9maWxlPSJhbHBoYS94bS1hbHBoYS1pbnRlcml4LmggeG0taW50ZXJpeC5oIgoJCXhtYWtl
X2ZpbGU9IngtaW50ZXJpeCBhbHBoYS90LXBlIgoJCXRtYWtlX2ZpbGU9ImFscGhhL3QtaW50ZXJp
eCBhbHBoYS90LWllZWUiCiAJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXMgOyB0aGVu
CgkJCXRocmVhZF9maWxlPSdwb3NpeCcKCQlmaQoJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXMgOyB0
aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4Y29mZi5oIgoJCWZpCgkJI3ByZWZpeD0nJCRJ
TlRFUklYX1JPT1QnL3Vzci9jb250cmliCgkJI2xvY2FsX3ByZWZpeD0nJCRJTlRFUklYX1JPT1Qn
L3Vzci9jb250cmliCgkJOzsKCWFscGhhKi0qLWxpbnV4LWdudWVjb2ZmKikKCQl0bV9maWxlPSIk
e3RtX2ZpbGV9IGFscGhhL2xpbnV4LWVjb2ZmLmggYWxwaGEvbGludXguaCIKCQl0YXJnZXRfY3B1
X2RlZmF1bHQ9Ik1BU0tfR0FTIgoJCXRtYWtlX2ZpbGU9ImFscGhhL3QtaWVlZSIKCQlnYXM9bm8K
CQl4bWFrZV9maWxlPW5vbmUKCQlnYXM9eWVzIGdudV9sZD15ZXMKCQk7OwoJYWxwaGEqLSotbGlu
dXgtZ251bGliYzEqKQoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gYWxwaGEvZWxmLmggYWxwaGEvbGlu
dXguaCBhbHBoYS9saW51eC1lbGYuaCIKCQl0YXJnZXRfY3B1X2RlZmF1bHQ9Ik1BU0tfR0FTIgoJ
CXRtYWtlX2ZpbGU9InQtbGludXggdC1saW51eC1nbnVsaWJjMSBhbHBoYS90LWxpbnV4IGFscGhh
L3QtY3J0YmUgYWxwaGEvdC1pZWVlIgoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGVuZC5v
IGNydGJlZ2luUy5vIGNydGVuZFMubyIKCQl4bWFrZV9maWxlPW5vbmUKCQlnYXM9eWVzIGdudV9s
ZD15ZXMKIAkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhlbgogCQkJdGhyZWFk
X2ZpbGU9J3Bvc2l4JwogCQlmaQoJCTs7CglhbHBoYSotKi1saW51eC1nbnUqKQoJCXRtX2ZpbGU9
IiR7dG1fZmlsZX0gYWxwaGEvZWxmLmggYWxwaGEvbGludXguaCBhbHBoYS9saW51eC1lbGYuaCIK
CQl0YXJnZXRfY3B1X2RlZmF1bHQ9Ik1BU0tfR0FTIgoJCXRtYWtlX2ZpbGU9InQtbGludXggYWxw
aGEvdC1saW51eCBhbHBoYS90LWNydGJlIGFscGhhL3QtaWVlZSIKCQlleHRyYV9wYXJ0cz0iY3J0
YmVnaW4ubyBjcnRlbmQubyBjcnRiZWdpblMubyBjcnRlbmRTLm8iCgkJeG1ha2VfZmlsZT1ub25l
CgkJZ2FzPXllcyBnbnVfbGQ9eWVzCiAJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7
IHRoZW4KIAkJCXRocmVhZF9maWxlPSdwb3NpeCcKIAkJZmkKCQk7OwoJYWxwaGEqLSotbmV0YnNk
KikKCQl0bV9maWxlPSIke3RtX2ZpbGV9IGFscGhhL2VsZi5oIGFscGhhL25ldGJzZC5oIGFscGhh
L25ldGJzZC1lbGYuaCIKCQl0YXJnZXRfY3B1X2RlZmF1bHQ9Ik1BU0tfR0FTIgoJCXRtYWtlX2Zp
bGU9ImFscGhhL3QtY3J0YmUgYWxwaGEvdC1pZWVlIgoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5v
IGNydGVuZC5vIGNydGJlZ2luUy5vIGNydGVuZFMubyIKCQl4bWFrZV9maWxlPW5vbmUKCQlnYXM9
eWVzIGdudV9sZD15ZXMKCQk7OwoKCWFscGhhKi0qLW9wZW5ic2QqKQoJCSMgZGVmYXVsdCB4LWFs
cGhhIGlzIG9ubHkgYXBwcm9wcmlhdGUgZm9yIGRlYy1vc2YuCgkJdGFyZ2V0X2NwdV9kZWZhdWx0
PSJNQVNLX0dBUyIKCQl0bWFrZV9maWxlPSJhbHBoYS90LWllZWUiCgkJOzsKCQkKCWFscGhhKi1k
ZWMtb3NmKikKCQlpZiB0ZXN0IHgkc3RhYnMgPSB4eWVzCgkJdGhlbgoJCQl0bV9maWxlPSIke3Rt
X2ZpbGV9IGRieC5oIgoJCWZpCgkJaWYgdGVzdCB4JGdhcyAhPSB4eWVzCgkJdGhlbgoJCQlleHRy
YV9wYXNzZXM9Im1pcHMtdGZpbGUgbWlwcy10ZHVtcCIKCQlmaQoJCXVzZV9jb2xsZWN0Mj15ZXMK
CQl0bWFrZV9maWxlPSJhbHBoYS90LWllZWUiCgkJY2FzZSAkbWFjaGluZSBpbgoJCSAgKi0qLW9z
ZjEqKQoJCSAgICB0bV9maWxlPSIke3RtX2ZpbGV9IGFscGhhL29zZi5oIGFscGhhL29zZjEyLmgg
YWxwaGEvb3NmMm9yMy5oIgoJCSAgICA7OwpjaGFuZ2VxdW90ZSgsKWRubAoJCSAgKi0qLW9zZlsy
M10qKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJICAgIHRtX2ZpbGU9IiR7dG1fZmlsZX0gYWxwaGEv
b3NmLmggYWxwaGEvb3NmMm9yMy5oIgoJCSAgICA7OwoJCSAgKi0qLW9zZjQqKQoJCSAgICB0bV9m
aWxlPSIke3RtX2ZpbGV9IGFscGhhL29zZi5oIgoJCSAgICAjIFNvbWUgdmVyc2lvbnMgb2YgT1NG
NCAoc3BlY2lmaWNhbGx5IFg0LjAtOSAyOTYuNykgaGF2ZQoJCSAgICAjIGEgYnJva2VuIHRhciwg
c28gd2UgdXNlIGNwaW8gaW5zdGVhZC4KCQkgICAgaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxs
LWhlYWRlcnMtY3BpbwoJCSAgICA7OwoJCSAgKi0qLW9zZjUqKQoJCSAgICB0bV9maWxlPSIke3Rt
X2ZpbGV9IGFscGhhL29zZi5oIGFscGhhL29zZjUuaCIKCQkgICAgOzsKCQllc2FjCgkJY2FzZSAk
bWFjaGluZSBpbgpjaGFuZ2VxdW90ZSgsKWRubAoJCSAgKi0qLW9zZjQuMFtiLXpdIHwgKi0qLW9z
ZjQuWzEtOV0qIHwgKi0qLW9zZjUqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJICAgIHRhcmdldF9j
cHVfZGVmYXVsdD1NQVNLX1NVUFBPUlRfQVJDSAoJCSAgICA7OwoJCWVzYWMKCQk7OwogCWFscGhh
Ki0qLXZ4d29ya3MqKQoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4LmggYWxwaGEvdnh3b3Jrcy5o
IgoJCXRtYWtlX2ZpbGU9ImFscGhhL3QtaWVlZSIKCQlpZiBbIHgkZ2FzICE9IHh5ZXMgXQoJCXRo
ZW4KCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQl1c2VfY29s
bGVjdDI9eWVzCgkJdGhyZWFkX2ZpbGU9J3Z4d29ya3MnCgkJOzsKCWFscGhhKi0qLXdpbm50KikK
CSAJdG1fZmlsZT0iJHt0bV9maWxlfSBhbHBoYS9hbHBoYTMyLmggYWxwaGEvd2luLW50Lmggd2lu
bnQvd2luLW50LmgiCgkJeG1fZmlsZT0iJHt4bV9maWxlfSBjb25maWcvd2lubnQveG0td2lubnQu
aCBhbHBoYS94bS13aW5udC5oIgoJCXRtYWtlX2ZpbGU9InQtbGliYy1vayBhbHBoYS90LWllZWUi
CgkJeG1ha2VfZmlsZT13aW5udC94LXdpbm50CgkJZXh0cmFfaG9zdF9vYmpzPW9sZG5hbWVzLm8K
CQlleHRyYV9nY2Nfb2Jqcz0ic3Bhd252Lm8gb2xkbmFtZXMubyIKCQlpZiB0ZXN0IHgkZ251X2xk
ICE9IHh5ZXMKCQl0aGVuCgkJCWV4dHJhX3Byb2dyYW1zPWxkLmV4ZQoJCWZpCiAJCWlmIHRlc3Qg
eCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KCQkJdGhyZWFkX2ZpbGU9J3dpbjMyJwoJCWZp
CgkJOzsKCWFscGhhKi1kZWMtdm1zKikKCQl0bV9maWxlPWFscGhhL3Ztcy5oCgkJeG1fZmlsZT0i
JHt4bV9maWxlfSBhbHBoYS94bS12bXMuaCIKCQl0bWFrZV9maWxlPSJhbHBoYS90LXZtcyBhbHBo
YS90LWllZWUiCgkJOzsKCWFyYy0qLWVsZiopCgkJZXh0cmFfcGFydHM9ImNydGluaXQubyBjcnRm
aW5pLm8iCgkJOzsKCWFybS0qLWNvZmYqIHwgYXJtZWwtKi1jb2ZmKikKCQl0bV9maWxlPWFybS9j
b2ZmLmgKCQl0bWFrZV9maWxlPWFybS90LWJhcmUKCQk7OwoJYXJtLSotdnh3b3JrcyopCgkJdG1f
ZmlsZT1hcm0vdnhhcm0uaAoJCXRtYWtlX2ZpbGU9YXJtL3QtYmFyZQoJCXRocmVhZF9maWxlPSd2
eHdvcmtzJwoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglhcm0tKi1yaXNjaXgxLlswMV0qKQkJIyBB
Y29ybiBSSVNDIG1hY2hpbmUgKGVhcmx5IHZlcnNpb25zKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJ
dG1fZmlsZT1hcm0vcmlzY2l4MS0xLmgKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCWFybS0qLXJp
c2NpeCopCQkJIyBBY29ybiBSSVNDIG1hY2hpbmUKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRo
ZW4KCQkgICAgdG1fZmlsZT1hcm0vcml4LWdhcy5oCgkJZWxzZQoJCSAgICB0bV9maWxlPWFybS9y
aXNjaXguaAoJCWZpCgkJeG1ha2VfZmlsZT1hcm0veC1yaXNjaXgKCQl0bWFrZV9maWxlPWFybS90
LXJpc2NpeAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJYXJtLXNlbWktYW91dCB8IGFybWVsLXNl
bWktYW91dCkKCQl0bV9maWxlPWFybS9zZW1pLmgKCQl0bWFrZV9maWxlPWFybS90LXNlbWkKCQk7
OwoJYXJtLXNlbWktYW9mIHwgYXJtZWwtc2VtaS1hb2YpCgkJdG1fZmlsZT1hcm0vc2VtaWFvZi5o
CgkJdG1ha2VfZmlsZT1hcm0vdC1zZW1pYW9mCgkJOzsKCWFybSotKi1uZXRic2QqKQoJCXRtX2Zp
bGU9YXJtL25ldGJzZC5oCgkJdG1ha2VfZmlsZT0idC1uZXRic2QgYXJtL3QtbmV0YnNkIgoJCXVz
ZV9jb2xsZWN0Mj15ZXMKCQk7OwoJYXJtKi0qLWxpbnV4LWdudWFvdXQqKQkJIyBBUk0gR05VL0xp
bnV4IHdpdGggYS5vdXQKCQljcHVfdHlwZT1hcm0KCQl4bWFrZV9maWxlPXgtbGludXgKCQl0bV9m
aWxlPWFybS9saW51eC1hb3V0LmgKCQl0bWFrZV9maWxlPWFybS90LWxpbnV4CgkJZ251X2xkPXll
cwoJCTs7Cglhcm0qLSotbGludXgtZ251b2xkbGQqKQkJIyBBUk0gR05VL0xpbnV4IHdpdGggb2xk
IEVMRiBsaW5rZXIKCQl4bV9maWxlPWFybS94bS1saW51eC5oCgkJeG1ha2VfZmlsZT14LWxpbnV4
CgkJdG1fZmlsZT0iYXJtL2xpbnV4LW9sZGxkLmggYXJtL2xpbnV4LWVsZi5oIgoJCWNhc2UgJG1h
Y2hpbmUgaW4KCQlhcm12MiotKi0qKQoJCQl0bV9maWxlPSJhcm0vbGludXgtZWxmMjYuaCAkdG1f
ZmlsZSIKCQkJOzsKCQllc2FjCgkJdG1ha2VfZmlsZT0idC1saW51eCBhcm0vdC1saW51eCIKCQll
eHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRiZWdpblMubyBjcnRlbmQubyBjcnRlbmRTLm8iCgkJ
Z251X2xkPXllcwoJCWNhc2UgeCR7ZW5hYmxlX3RocmVhZHN9IGluCgkJeCB8IHh5ZXMgfCB4cHRo
cmVhZHMgfCB4cG9zaXgpCgkJCXRocmVhZF9maWxlPSdwb3NpeCcKCQkJOzsKCQllc2FjCgkJOzsK
CWFybSotKi1saW51eC1nbnUqKQkJIyBBUk0gR05VL0xpbnV4IHdpdGggRUxGCgkJeG1fZmlsZT1h
cm0veG0tbGludXguaAoJCXhtYWtlX2ZpbGU9eC1saW51eAoJCXRtX2ZpbGU9ImFybS9saW51eC1l
bGYuaCIKCQljYXNlICRtYWNoaW5lIGluCgkJYXJtdjIqLSotKikKCQkJdG1fZmlsZT0iYXJtL2xp
bnV4LWVsZjI2LmggJHRtX2ZpbGUiCgkJCTs7CgkJZXNhYwoJCXRtYWtlX2ZpbGU9InQtbGludXgg
YXJtL3QtbGludXgiCgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5k
Lm8gY3J0ZW5kUy5vIgoJCWdudV9sZD15ZXMKCQljYXNlIHgke2VuYWJsZV90aHJlYWRzfSBpbgoJ
CXggfCB4eWVzIHwgeHB0aHJlYWRzIHwgeHBvc2l4KQoJCQl0aHJlYWRfZmlsZT0ncG9zaXgnCgkJ
CTs7CgkJZXNhYwoJCTs7Cglhcm0qLSotdWNsaW51eCopCQkjIEFSTSB1Y0xpbnV4CgkJdG1fZmls
ZT1hcm0vdWNsaW51eC1lbGYuaAoJCXRtYWtlX2ZpbGU9YXJtL3QtYXJtLWVsZgoJCTs7Cglhcm0q
LSotYW91dCkKCQl0bV9maWxlPWFybS9hb3V0LmgKCQl0bWFrZV9maWxlPWFybS90LWJhcmUKCQk7
OwogICAgICAgIGFybSotKi1lY29zLWVsZikKCQl0bV9maWxlPWFybS9lY29zLWVsZi5oCgkJdG1h
a2VfZmlsZT1hcm0vdC1lbGYKCQk7OyAKCWFybSotKi1lbGYpCgkJdG1fZmlsZT1hcm0vdW5rbm93
bi1lbGYuaAoJCXRtYWtlX2ZpbGU9YXJtL3QtYXJtLWVsZgoJCTs7Cglhcm0qLSotY29uaXgqKQoJ
CXRtX2ZpbGU9YXJtL2Nvbml4LWVsZi5oCgkJdG1ha2VfZmlsZT1hcm0vdC1hcm0tZWxmCgkJOzsK
ICAgICAgICBhcm0qLSotb2FiaSkKCQl0bV9maWxlPWFybS91bmtub3duLWVsZi1vYWJpLmgKCQl0
bWFrZV9maWxlPWFybS90LWFybS1lbGYKCQk7OwoJYXJtLSotcGUqKQoJCXRtX2ZpbGU9YXJtL3Bl
LmgKCQl0bWFrZV9maWxlPWFybS90LXBlCgkJZXh0cmFfb2Jqcz1wZS5vCgkJOzsKCWF2ci0qLSop
CgkJOzsKCWMxLWNvbnZleC0qKQkJCSMgQ29udmV4IEMxCgkJdGFyZ2V0X2NwdV9kZWZhdWx0PTEK
CQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCWMyLWNvbnZleC0qKQkJCSMgQ29udmV4IEMyCgkJdGFy
Z2V0X2NwdV9kZWZhdWx0PTIKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCWMzMi1jb252ZXgtKikK
CQl0YXJnZXRfY3B1X2RlZmF1bHQ9NAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJYzM0LWNvbnZl
eC0qKQoJCXRhcmdldF9jcHVfZGVmYXVsdD04CgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CgljMzgt
Y29udmV4LSopCgkJdGFyZ2V0X2NwdV9kZWZhdWx0PTE2CQkKCQl1c2VfY29sbGVjdDI9eWVzCgkJ
OzsKIAljNHgtKikKIAkJY3B1X3R5cGU9YzR4CiAJCXRtYWtlX2ZpbGU9YzR4L3QtYzR4CiAJCTs7
CgljbGlwcGVyLWludGVyZ3JhcGgtY2xpeCopCgkJdG1fZmlsZT0iJHt0bV9maWxlfSBzdnIzLmgg
Y2xpcHBlci9jbGl4LmgiCgkJeG1fZmlsZT1jbGlwcGVyL3htLWNsaXguaAoJCXhtYWtlX2ZpbGU9
Y2xpcHBlci94LWNsaXgKCQlleHRyYV9oZWFkZXJzPXZhLWNsaXBwZXIuaAoJCWV4dHJhX3BhcnRz
PSJjcnRiZWdpbi5vIGNydGVuZC5vIgoJCWluc3RhbGxfaGVhZGVyc19kaXI9aW5zdGFsbC1oZWFk
ZXJzLWNwaW8KCQk7OwoJZHNwMTZ4eC0qKQoJCTs7CgllbHhzaS1lbHhzaS0qKQoJCXVzZV9jb2xs
ZWN0Mj15ZXMKCQk7OwoJZnIzMC0qLWVsZikKCQl0bV9maWxlPSJmcjMwL2ZyMzAuaCIKCQl0bWFr
ZV9maWxlPWZyMzAvdC1mcjMwCgkJZXh0cmFfcGFydHM9ImNydGkubyBjcnRuLm8gY3J0YmVnaW4u
byBjcnRlbmQubyIKCQk7OwojIFRoaXMgaGFzbid0IGJlZW4gdXBncmFkZWQgdG8gR0NDIDIuCiMJ
Zng4MC1hbGxpYW50LSopCQkJIyBBbGxpYW50IEZYLzgwCiMJCTs7CgloODMwMC0qLSopCgkJZmxv
YXRfZm9ybWF0PWkzMgoJCTs7CglocHBhKi0qLWxpbnV4KikKCQl0YXJnZXRfY3B1X2RlZmF1bHQ9
IihNQVNLX1BBXzExIHwgTUFTS19HQVMgfCBNQVNLX0pVTVBfSU5fREVMQVkpIgoJCXRtX2ZpbGU9
IiR7dG1fZmlsZX0gcGEvZWxmLmggbGludXguaCBwYS9wYS1saW51eC5oIgoJCXRtYWtlX2ZpbGU9
InQtbGludXggcGEvdC1saW51eCIKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIK
CQl4bWFrZV9maWxlPW5vbmUKCQlnYXM9eWVzIGdudV9sZD15ZXMKIAkJaWYgdGVzdCB4JGVuYWJs
ZV90aHJlYWRzID0geHllczsgdGhlbgogCQkJdGhyZWFkX2ZpbGU9J3Bvc2l4JwogCQlmaQoJCTs7
CglocHBhKi0qLW9wZW5ic2QqKQoJCXRhcmdldF9jcHVfZGVmYXVsdD0iTUFTS19QQV8xMSIKCQl0
bWFrZV9maWxlPXBhL3Qtb3BlbmJzZAoJCTs7CglocHBhMS4xLSotcHJvKikKCQl0YXJnZXRfY3B1
X2RlZmF1bHQ9IihNQVNLX0pVTVBfSU5fREVMQVkgfCBNQVNLX1BPUlRBQkxFX1JVTlRJTUUgfCBN
QVNLX0dBUyB8IE1BU0tfTk9fU1BBQ0VfUkVHUyB8IE1BU0tfU09GVF9GTE9BVCkiCgkJdG1fZmls
ZT0iJHt0bV9maWxlfSBlbGZvcy5oIHBhL2VsZi5oIHBhL3BhLXByby1lbmQuaCBsaWJnbG9zcy5o
IgoJCXhtX2ZpbGU9cGEveG0tcGFwcm8uaAoJCXRtYWtlX2ZpbGU9cGEvdC1wcm8KCQk7OwoJaHBw
YTEuMS0qLW9zZiopCgkJdGFyZ2V0X2NwdV9kZWZhdWx0PSJNQVNLX1BBXzExIgoJCXRtX2ZpbGU9
IiR7dG1fZmlsZX0gcGEvc29tLmggcGEvcGEtb3NmLmgiCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7
CglocHBhMS4xLSotcnRlbXMqKQoJCXRhcmdldF9jcHVfZGVmYXVsdD0iKE1BU0tfSlVNUF9JTl9E
RUxBWSB8IE1BU0tfUE9SVEFCTEVfUlVOVElNRSB8IE1BU0tfR0FTIHwgTUFTS19OT19TUEFDRV9S
RUdTIHwgTUFTS19TT0ZUX0ZMT0FUKSIKCQl0bV9maWxlPSIke3RtX2ZpbGV9IGVsZm9zLmggcGEv
ZWxmLmggcGEvcGEtcHJvLWVuZC5oIGxpYmdsb3NzLmggcGEvcnRlbXMuaCIKCQl4bV9maWxlPXBh
L3htLXBhcHJvLmgKCQl0bWFrZV9maWxlPXBhL3QtcHJvCgkJOzsKCWhwcGExLjAtKi1vc2YqKQoJ
CXRtX2ZpbGU9IiR7dG1fZmlsZX0gcGEvc29tLmggcGEvcGEtb3NmLmgiCgkJdXNlX2NvbGxlY3Qy
PXllcwoJCTs7CglocHBhMS4xLSotYnNkKikKCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBhL3NvbS5o
IgoJCXRhcmdldF9jcHVfZGVmYXVsdD0iTUFTS19QQV8xMSIKCQl1c2VfY29sbGVjdDI9eWVzCgkJ
OzsKCWhwcGExLjAtKi1ic2QqKQoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gcGEvc29tLmgiCgkJdXNl
X2NvbGxlY3QyPXllcwoJCTs7CglocHBhMS4wLSotaHB1eDcqKQoJCXRtX2ZpbGU9InBhL3BhLW9s
ZGFzLmggJHt0bV9maWxlfSBwYS9zb20uaCBwYS9wYS1ocHV4Ny5oIgoJCXhtX2ZpbGU9cGEveG0t
cGFocHV4LmgKCQl4bWFrZV9maWxlPXBhL3gtcGEtaHB1eAoJCWlmIHRlc3QgeCRnYXMgPSB4eWVz
CgkJdGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBhL2dhcy5oIgoJCWZpCgkJaW5zdGFsbF9o
ZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7Owpj
aGFuZ2VxdW90ZSgsKWRubAoJaHBwYTEuMC0qLWhwdXg4LjBbMC0yXSopCmNoYW5nZXF1b3RlKFss
XSlkbmwKCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBhL3NvbS5oIHBhL3BhLWhwdXguaCIKCQl4bV9m
aWxlPXBhL3htLXBhaHB1eC5oCgkJeG1ha2VfZmlsZT1wYS94LXBhLWhwdXgKCQlpZiB0ZXN0IHgk
Z2FzID0geHllcwoJCXRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBwYS9wYS1nYXMuaCIKCQll
bHNlCgkJCXRtX2ZpbGU9InBhL3BhLW9sZGFzLmggJHt0bV9maWxlfSIKCQlmaQoJCWluc3RhbGxf
aGVhZGVyc19kaXI9aW5zdGFsbC1oZWFkZXJzLWNwaW8KCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsK
Y2hhbmdlcXVvdGUoLClkbmwKCWhwcGExLjEtKi1ocHV4OC4wWzAtMl0qKQpjaGFuZ2VxdW90ZShb
LF0pZG5sCgkJdGFyZ2V0X2NwdV9kZWZhdWx0PSJNQVNLX1BBXzExIgoJCXRtX2ZpbGU9IiR7dG1f
ZmlsZX0gcGEvc29tLmggcGEvcGEtaHB1eC5oIgoJCXhtX2ZpbGU9cGEveG0tcGFocHV4LmgKCQl4
bWFrZV9maWxlPXBhL3gtcGEtaHB1eAoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0
bV9maWxlPSIke3RtX2ZpbGV9IHBhL3BhLWdhcy5oIgoJCWVsc2UKCQkJdG1fZmlsZT0icGEvcGEt
b2xkYXMuaCAke3RtX2ZpbGV9IgoJCWZpCgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhl
YWRlcnMtY3BpbwoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJaHBwYTEuMS0qLWhwdXg4KikKCQl0
YXJnZXRfY3B1X2RlZmF1bHQ9Ik1BU0tfUEFfMTEiCgkJdG1fZmlsZT0iJHt0bV9maWxlfSBwYS9z
b20uaCBwYS9wYS1ocHV4LmgiCgkJeG1fZmlsZT1wYS94bS1wYWhwdXguaAoJCXhtYWtlX2ZpbGU9
cGEveC1wYS1ocHV4CgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9IiR7
dG1fZmlsZX0gcGEvcGEtZ2FzLmgiCgkJZmkKCQlpbnN0YWxsX2hlYWRlcnNfZGlyPWluc3RhbGwt
aGVhZGVycy1jcGlvCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CglocHBhMS4wLSotaHB1eDgqKQoJ
CXRtX2ZpbGU9IiR7dG1fZmlsZX0gcGEvc29tLmggcGEvcGEtaHB1eC5oIgoJCXhtX2ZpbGU9cGEv
eG0tcGFocHV4LmgKCQl4bWFrZV9maWxlPXBhL3gtcGEtaHB1eAoJCWlmIHRlc3QgeCRnYXMgPSB4
eWVzCgkJdGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBhL3BhLWdhcy5oIgoJCWZpCgkJaW5z
dGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJCXVzZV9jb2xsZWN0Mj15ZXMK
CQk7OwoJaHBwYTEuMS0qLWhwdXgxMCogfCBocHBhMiotKi1ocHV4MTAqKQoJCXRhcmdldF9jcHVf
ZGVmYXVsdD0iTUFTS19QQV8xMSIKCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBhL2xvbmdfZG91Ymxl
LmggcGEvc29tLmggcGEvcGEtaHB1eC5oIHBhL3BhLWhwdXgxMC5oIgoJCWZsb2F0X2Zvcm1hdD1p
MTI4CgkJeG1fZmlsZT1wYS94bS1wYWhwdXguaAoJCXhtYWtlX2ZpbGU9cGEveC1wYS1ocHV4CgkJ
dG1ha2VfZmlsZT1wYS90LXBhCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2Zp
bGU9IiR7dG1fZmlsZX0gcGEvcGEtZ2FzLmgiCgkJZmkKCQlpZiB0ZXN0IHgkZW5hYmxlX3RocmVh
ZHMgPSB4OyB0aGVuCgkJICAgIGVuYWJsZV90aHJlYWRzPSRoYXZlX3B0aHJlYWRfaAoJCWZpCiAJ
CWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KCQkJdGhyZWFkX2ZpbGU9J2Rj
ZScKCQkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBwYS90LWRjZS10aHIiCgkJZmkKCQlpbnN0
YWxsX2hlYWRlcnNfZGlyPWluc3RhbGwtaGVhZGVycy1jcGlvCgkJdXNlX2NvbGxlY3QyPXllcwoJ
CTs7CglocHBhMS4wLSotaHB1eDEwKikKCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBhL2xvbmdfZG91
YmxlLmggcGEvc29tLmggcGEvcGEtaHB1eC5oIHBhL3BhLWhwdXgxMC5oIgoJCWZsb2F0X2Zvcm1h
dD1pMTI4CgkJeG1fZmlsZT1wYS94bS1wYWhwdXguaAoJCXhtYWtlX2ZpbGU9cGEveC1wYS1ocHV4
CgkJdG1ha2VfZmlsZT1wYS90LXBhCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRt
X2ZpbGU9IiR7dG1fZmlsZX0gcGEvcGEtZ2FzLmgiCgkJZmkKCQlpZiB0ZXN0IHgkZW5hYmxlX3Ro
cmVhZHMgPSB4OyB0aGVuCgkJICAgIGVuYWJsZV90aHJlYWRzPSRoYXZlX3B0aHJlYWRfaAoJCWZp
CiAJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KCQkJdGhyZWFkX2ZpbGU9
J2RjZScKCQkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBwYS90LWRjZS10aHIiCgkJZmkKCQlp
bnN0YWxsX2hlYWRlcnNfZGlyPWluc3RhbGwtaGVhZGVycy1jcGlvCgkJdXNlX2NvbGxlY3QyPXll
cwoJCTs7CglocHBhMS4xLSotaHB1eDExKiB8IGhwcGEyKi0qLWhwdXgxMSopCgkJdGFyZ2V0X2Nw
dV9kZWZhdWx0PSJNQVNLX1BBXzExIgoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gcGEvbG9uZ19kb3Vi
bGUuaCBwYS9zb20uaCBwYS9wYS1ocHV4LmggcGEvcGEtaHB1eDExLmgiCgkJZmxvYXRfZm9ybWF0
PWkxMjgKCQl4bV9maWxlPXBhL3htLXBhaHB1eC5oCgkJeG1ha2VfZmlsZT1wYS94LXBhLWhwdXgK
CQl0bWFrZV9maWxlPXBhL3QtcGEKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1f
ZmlsZT0iJHt0bV9maWxlfSBwYS9wYS1nYXMuaCIKCQlmaQojCQlpZiB0ZXN0IHgkZW5hYmxlX3Ro
cmVhZHMgPSB4OyB0aGVuCiMJCSAgICBlbmFibGVfdGhyZWFkcz0kaGF2ZV9wdGhyZWFkX2gKIwkJ
ZmkKIyAJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KIwkJCXRocmVhZF9m
aWxlPSdkY2UnCiMJCQl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IHBhL3QtZGNlLXRociIKIwkJ
ZmkKCQlpbnN0YWxsX2hlYWRlcnNfZGlyPWluc3RhbGwtaGVhZGVycy1jcGlvCgkJdXNlX2NvbGxl
Y3QyPXllcwoJCTs7CglocHBhMS4wLSotaHB1eDExKikKCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBh
L2xvbmdfZG91YmxlLmggcGEvc29tLmggcGEvcGEtaHB1eC5oIHBhL3BhLWhwdXgxMS5oIgoJCWZs
b2F0X2Zvcm1hdD1pMTI4CgkJeG1fZmlsZT1wYS94bS1wYWhwdXguaAoJCXhtYWtlX2ZpbGU9cGEv
eC1wYS1ocHV4CgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9IiR7dG1f
ZmlsZX0gcGEvcGEtZ2FzLmgiCgkJZmkKIwkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geDsg
dGhlbgojCQkgICAgZW5hYmxlX3RocmVhZHM9JGhhdmVfcHRocmVhZF9oCiMJCWZpCiMgCQlpZiB0
ZXN0IHgkZW5hYmxlX3RocmVhZHMgPSB4eWVzOyB0aGVuCiMJCQl0aHJlYWRfZmlsZT0nZGNlJwoj
CQkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBwYS90LWRjZS10aHIiCiMJCWZpCgkJaW5zdGFs
bF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7
OwoJaHBwYTEuMS0qLWhwdXgqIHwgaHBwYTIqLSotaHB1eCopCgkJdGFyZ2V0X2NwdV9kZWZhdWx0
PSJNQVNLX1BBXzExIgoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gcGEvc29tLmggcGEvcGEtaHB1eC5o
IHBhL3BhLWhwdXg5LmgiCgkJeG1fZmlsZT1wYS94bS1wYWhwdXguaAoJCXhtYWtlX2ZpbGU9cGEv
eC1wYS1ocHV4CgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9IiR7dG1f
ZmlsZX0gcGEvcGEtZ2FzLmgiCgkJZmkKCQlpbnN0YWxsX2hlYWRlcnNfZGlyPWluc3RhbGwtaGVh
ZGVycy1jcGlvCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CglocHBhMS4wLSotaHB1eCopCgkJdG1f
ZmlsZT0iJHt0bV9maWxlfSBwYS9zb20uaCBwYS9wYS1ocHV4LmggcGEvcGEtaHB1eDkuaCIKCQl4
bV9maWxlPXBhL3htLXBhaHB1eC5oCgkJeG1ha2VfZmlsZT1wYS94LXBhLWhwdXgKCQlpZiB0ZXN0
IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBwYS9wYS1nYXMuaCIK
CQlmaQoJCWluc3RhbGxfaGVhZGVyc19kaXI9aW5zdGFsbC1oZWFkZXJzLWNwaW8KCQl1c2VfY29s
bGVjdDI9eWVzCgkJOzsKCWhwcGExLjEtKi1oaXV4KiB8IGhwcGEyKi0qLWhpdXgqKQoJCXRhcmdl
dF9jcHVfZGVmYXVsdD0iTUFTS19QQV8xMSIKCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBhL3NvbS5o
IHBhL3BhLWhwdXguaCBwYS9wYS1oaXV4LmgiCgkJeG1fZmlsZT1wYS94bS1wYWhwdXguaAoJCXht
YWtlX2ZpbGU9cGEveC1wYS1ocHV4CgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRt
X2ZpbGU9IiR7dG1fZmlsZX0gcGEvcGEtZ2FzLmgiCgkJZmkKCQlpbnN0YWxsX2hlYWRlcnNfZGly
PWluc3RhbGwtaGVhZGVycy1jcGlvCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CglocHBhMS4wLSot
aGl1eCopCgkJdG1fZmlsZT0iJHt0bV9maWxlfSBwYS9zb20uaCBwYS9wYS1ocHV4LmggcGEvcGEt
aGl1eC5oIgoJCXhtX2ZpbGU9cGEveG0tcGFocHV4LmgKCQl4bWFrZV9maWxlPXBhL3gtcGEtaHB1
eAoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBh
L3BhLWdhcy5oIgoJCWZpCgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3Bp
bwoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJaHBwYSotKi1saXRlcyopCgkJdG1fZmlsZT0iJHt0
bV9maWxlfSBlbGZvcy5oIHBhL2VsZi5oIgoJCXRhcmdldF9jcHVfZGVmYXVsdD0iTUFTS19QQV8x
MSIKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCWhwcGEqLSotbXBlaXgqKQoJCXRtX2ZpbGU9IiR7
dG1fZmlsZX0gcGEvcGEtbXBlaXguaCIKCQl4bV9maWxlPXBhL3htLXBhbXBlaXguaCAKCQl4bWFr
ZV9maWxlPXBhL3gtcGEtbXBlaXggCgkJZWNobyAiWW91IG11c3QgdXNlIGdhcy4gQXNzdW1pbmcg
aXQgaXMgYWxyZWFkeSBpbnN0YWxsZWQuIiAKCQlpbnN0YWxsX2hlYWRlcnNfZGlyPWluc3RhbGwt
aGVhZGVycy10YXIKCQl1c2VfY29sbGVjdDI9eWVzIAoJCTs7IAoJaTM3MC0qLW9wZW5lZCopCQkJ
ICMgSUJNIDM2MC8zNzAvMzkwIEFyY2hpdGVjdHVyZQoJCXhtX2ZpbGU9aTM3MC94bS1vZS5oCgkJ
dG1fZmlsZT1pMzcwL29lLmgKCQl4bWFrZV9maWxlPWkzNzAveC1vZQoJCXRtYWtlX2ZpbGU9aTM3
MC90LW9lCgkJOzsKCWkzNzAtKi1tdnMqKQoJCXhtX2ZpbGU9aTM3MC94bS1tdnMuaAoJCXRtX2Zp
bGU9aTM3MC9tdnMuaAoJCXRtYWtlX2ZpbGU9aTM3MC90LW12cwoJCTs7CglpMzcwLSotbGludXgq
KQoJCXhtX2ZpbGU9InhtLWxpbnV4LmggaTM3MC94bS1saW51eC5oIgoJCXhtYWtlX2ZpbGU9eC1s
aW51eAoJCXRtX2ZpbGU9ImkzNzAvbGludXguaCAke3RtX2ZpbGV9IgoJCXRtYWtlX2ZpbGU9InQt
bGludXggaTM3MC90LWxpbnV4IgoJCSMgYnJva2VuX2luc3RhbGw9eWVzCgkJZXh0cmFfcGFydHM9
ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5kLm8gY3J0ZW5kUy5vIgoJCSMgZXh0cmFfcGFy
dHM9ImNydGJlZ2luLm8gY3J0ZW5kLm8iCgkJZ251X2xkPXllcwoJCWdhcz15ZXMKCQllbGY9eWVz
CgkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhlbgoJCQl0aHJlYWRfZmlsZT0n
cG9zaXgnCgkJZmkKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLWVsZiopCmNo
YW5nZXF1b3RlKFssXSlkbmwKCQl4bV9maWxlPSIke3htX2ZpbGV9IHhtLXN2cjQuaCBpMzg2L3ht
LXN5c3Y0LmgiCgkJdG1fZmlsZT1pMzg2L2kzODZlbGYuaAoJCXRtYWtlX2ZpbGU9aTM4Ni90LWkz
ODZlbGYKCQl4bWFrZV9maWxlPXgtc3ZyNAoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3
XTg2LWlibS1haXgqKQkJIyBJQk0gUFMvMiBydW5uaW5nIEFJWApjaGFuZ2VxdW90ZShbLF0pZG5s
CiAgICAgICAgICAgICAgICBpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1fZmlsZT1p
Mzg2L2FpeDM4Ni5oCgkJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIgoJCQl0bWFr
ZV9maWxlPWkzODYvdC1jcnRzdHVmZgoJCWVsc2UKCQkJdG1fZmlsZT1pMzg2L2FpeDM4Nm5nLmgK
CQkJdXNlX2NvbGxlY3QyPXllcwoJCWZpCgkJeG1fZmlsZT0ieG0tYWxsb2NhLmggaTM4Ni94bS1h
aXguaCAke3htX2ZpbGV9IgoJCXhtX2RlZmluZXM9VVNHCgkJeG1ha2VfZmlsZT1pMzg2L3gtYWl4
CgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCWlbMzQ1NjddODYtbmNyLXN5c3Y0KikJCSMgTkNSIDMw
MDAgLSBpeDg2IHJ1bm5pbmcgc3lzdGVtIFYuNApjaGFuZ2VxdW90ZShbLF0pZG5sCgkJeG1fZmls
ZT0ieG0tYWxsb2NhLmggJHt4bV9maWxlfSIKCQl4bV9kZWZpbmVzPSJVU0cgUE9TSVggU01BTExf
QVJHX01BWCIKCQl4bWFrZV9maWxlPWkzODYveC1uY3IzMDAwCgkJaWYgdGVzdCB4JHN0YWJzID0g
eHllcyAtYSB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9aTM4Ni9zeXN2NGdkYi5oCgkJ
ZWxzZQoJCQl0bV9maWxlPWkzODYvc3lzdjQuaAoJCWZpCgkJZXh0cmFfcGFydHM9ImNydGJlZ2lu
Lm8gY3J0ZW5kLm8iCgkJdG1ha2VfZmlsZT1pMzg2L3QtY3J0cGljCgkJOzsKY2hhbmdlcXVvdGUo
LClkbmwKCWlbMzQ1NjddODYtbmV4dC0qKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT1p
Mzg2L25leHQuaAoJCXhtX2ZpbGU9aTM4Ni94bS1uZXh0LmgKCQl0bWFrZV9maWxlPWkzODYvdC1u
ZXh0CgkJeG1ha2VfZmlsZT1pMzg2L3gtbmV4dAoJCWV4dHJhX29ianM9bmV4dHN0ZXAubwoJCWV4
dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIgogCQlpZiB0ZXN0IHgkZW5hYmxlX3RocmVh
ZHMgPSB4eWVzOyB0aGVuCgkJCXRocmVhZF9maWxlPSdtYWNoJwoJCWZpCgkJOzsKY2hhbmdlcXVv
dGUoLClkbmwKCWlbMzQ1NjddODYtc2VxdWVudC1ic2QqKSAJCSMgODAzODYgZnJvbSBTZXF1ZW50
CmNoYW5nZXF1b3RlKFssXSlkbmwKCQl1c2VfY29sbGVjdDI9eWVzCgkJaWYgdGVzdCB4JGdhcyA9
IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9aTM4Ni9zZXEtZ2FzLmgKCQllbHNlCgkJCXRtX2ZpbGU9
aTM4Ni9zZXF1ZW50LmgKCQlmaQoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3XTg2LXNl
cXVlbnQtcHR4MSopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl4bV9kZWZpbmVzPSJVU0cgU1ZSMyIK
CQl4bWFrZV9maWxlPWkzODYveC1zeXN2MwoJCXRtX2ZpbGU9aTM4Ni9zZXEtc3lzdjMuaAoJCXRt
YWtlX2ZpbGU9aTM4Ni90LWNydHN0dWZmCgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0ZW5k
Lm8iCgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJCTs7CmNoYW5n
ZXF1b3RlKCwpZG5sCglpWzM0NTY3XTg2LXNlcXVlbnQtcHR4MiogfCBpWzM0NTY3XTg2LXNlcXVl
bnQtc3lzdjMqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJeG1fZGVmaW5lcz0iVVNHIFNWUjMiCgkJ
eG1ha2VfZmlsZT1pMzg2L3gtc3lzdjMKCQl0bV9maWxlPWkzODYvc2VxMi1zeXN2My5oCgkJdG1h
a2VfZmlsZT1pMzg2L3QtY3J0c3R1ZmYKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQu
byIKCQlpbnN0YWxsX2hlYWRlcnNfZGlyPWluc3RhbGwtaGVhZGVycy1jcGlvCgkJOzsKY2hhbmdl
cXVvdGUoLClkbmwKCWlbMzQ1NjddODYtc2VxdWVudC1wdHg0KiB8IGlbMzQ1NjddODYtc2VxdWVu
dC1zeXN2NCopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl4bV9maWxlPSJ4bS1hbGxvY2EuaCAke3ht
X2ZpbGV9IgoJCXhtX2RlZmluZXM9IlVTRyBQT1NJWCBTTUFMTF9BUkdfTUFYIgoJCXhtYWtlX2Zp
bGU9eC1zdnI0CgkJdG1fZmlsZT1pMzg2L3B0eDQtaS5oCgkJdG1ha2VfZmlsZT10LXN2cjQKCQll
eHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCQlpbnN0YWxsX2hlYWRlcnNfZGlyPWlu
c3RhbGwtaGVhZGVycy1jcGlvCgkJOzsKCWkzODYtc3VuLXN1bm9zKikJCSMgU3VuIGkzODYgcm9h
ZHJ1bm5lcgoJCXhtX2RlZmluZXM9VVNHCgkJdG1fZmlsZT1pMzg2L3N1bi5oCgkJdXNlX2NvbGxl
Y3QyPXllcwoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3XTg2LXdycy12eHdvcmtzKikK
Y2hhbmdlcXVvdGUoWyxdKWRubAoJCXRtX2ZpbGU9aTM4Ni92eGkzODYuaAoJCXRtYWtlX2ZpbGU9
aTM4Ni90LWkzODZiYXJlCgkJdGhyZWFkX2ZpbGU9J3Z4d29ya3MnCgkJOzsKY2hhbmdlcXVvdGUo
LClkbmwKCWlbMzQ1NjddODYtKi1hb3V0KikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCXRtX2ZpbGU9
aTM4Ni9pMzg2LWFvdXQuaAoJCXRtYWtlX2ZpbGU9aTM4Ni90LWkzODZiYXJlCgkJOzsKY2hhbmdl
cXVvdGUoLClkbmwKCWlbMzQ1NjddODYtKi1iZW9zcGUqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJ
eG1fZmlsZT1pMzg2L3htLWJlb3MuaAoJCXhtX2RlZmluZXM9IlVTRV9DX0FMTE9DQSIKCQl0bWFr
ZV9maWxlPWkzODYvdC1iZW9zCgkJdG1fZmlsZT1pMzg2L2Jlb3MtcGUuaAoJCXhtYWtlX2ZpbGU9
aTM4Ni94LWJlb3MKCQlleHRyYV9vYmpzPXdpbm50Lm8KCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJ
aVszNDU2N104Ni0qLWJlb3NlbGYqIHwgaVszNDU2N104Ni0qLWJlb3MqKQpjaGFuZ2VxdW90ZShb
LF0pZG5sCgkJeG1fZmlsZT1pMzg2L3htLWJlb3MuaAoJCXRtYWtlX2ZpbGU9J2kzODYvdC1iZW9z
IGkzODYvdC1jcnRwaWMnCgkJdG1fZmlsZT1pMzg2L2Jlb3MtZWxmLmgKCQl4bWFrZV9maWxlPWkz
ODYveC1iZW9zCgkJZXh0cmFfb2Jqcz13aW5udC5vCgkJZXh0cmFfcGFydHM9J2NydGJlZ2luLm8g
Y3J0ZW5kLm8nCgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCWlbMzQ1NjddODYtKi1ic2RpKiB8IGlb
MzQ1NjddODYtKi1ic2QzODYqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT1pMzg2L2Jz
ZDM4Ni5oCiMJCXRtYWtlX2ZpbGU9dC1saWJjLW9rCgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCWlb
MzQ1NjddODYtKi1ic2QqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT1pMzg2LzM4NmJz
ZC5oCiMJCXRtYWtlX2ZpbGU9dC1saWJjLW9rCiMgTmV4dCBsaW5lIHR1cm5lZCBvZmYgYmVjYXVz
ZSBib3RoIDM4NkJTRCBhbmQgQlNELzM4NiB1c2UgR05VIGxkLgojCQl1c2VfY29sbGVjdDI9eWVz
CgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCWlbMzQ1NjddODYtKi1mcmVlYnNkZWxmKikKY2hhbmdl
cXVvdGUoWyxdKWRubAoJCXRtX2ZpbGU9ImkzODYvaTM4Ni5oIGkzODYvYXR0Lmggc3ZyNC5oIGZy
ZWVic2QuaCBpMzg2L2ZyZWVic2QtZWxmLmggaTM4Ni9wZXJmb3JtLmgiCgkJZXh0cmFfcGFydHM9
ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5kLm8gY3J0ZW5kUy5vIgoJCXRtYWtlX2ZpbGU9
dC1mcmVlYnNkCgkJZ2FzPXllcwoJCWdudV9sZD15ZXMKCQlzdGFicz15ZXMKCQljYXNlIHgke2Vu
YWJsZV90aHJlYWRzfSBpbgoJCXh5ZXMgfCB4cHRocmVhZHMgfCB4cG9zaXgpCgkJCXRocmVhZF9m
aWxlPSdwb3NpeCcKCQkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSB0LWZyZWVic2QtdGhyZWFk
IgoJCQk7OwoJCWVzYWMKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLWZyZWVi
c2QqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT0iaTM4Ni9mcmVlYnNkLmggaTM4Ni9w
ZXJmb3JtLmgiCgkJdG1ha2VfZmlsZT10LWZyZWVic2QKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJ
aVszNDU2N104Ni0qLW5ldGJzZCopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl0bV9maWxlPWkzODYv
bmV0YnNkLmgKCQl0bWFrZV9maWxlPXQtbmV0YnNkCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CmNo
YW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3XTg2LSotb3BlbmJzZCopCmNoYW5nZXF1b3RlKFssXSlk
bmwKCQkjIHdlIG5lZWQgY29sbGVjdDIgdW50aWwgb3VyIGJ1ZyBpcyBmaXhlZC4uLgoJCXVzZV9j
b2xsZWN0Mj15ZXMKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLWNvZmYqKQpj
aGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT1pMzg2L2kzODYtY29mZi5oCgkJdG1ha2VfZmls
ZT1pMzg2L3QtaTM4NmJhcmUKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLWlz
YyopCQkjIDgwMzg2IHJ1bm5pbmcgSVNDIHN5c3RlbQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJeG1f
ZmlsZT0iJHt4bV9maWxlfSBpMzg2L3htLWlzYy5oIgoJCXhtX2RlZmluZXM9IlVTRyBTVlIzIgoJ
CWNhc2UgJG1hY2hpbmUgaW4KY2hhbmdlcXVvdGUoLClkbmwKCQkgIGlbMzQ1NjddODYtKi1pc2Nb
MzRdKikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCSAgICB4bWFrZV9maWxlPWkzODYveC1pc2MzCgkJ
ICAgIDs7CgkJICAqKQoJCSAgICB4bWFrZV9maWxlPWkzODYveC1pc2MKCQkgICAgOzsKCQllc2Fj
CiAgICAgICAgICAgICAgICBpZiB0ZXN0IHgkZ2FzID0geHllcyAtYSB4JHN0YWJzID0geHllcwoJ
CXRoZW4KCQkJdG1fZmlsZT1pMzg2L2lzY2RieC5oCgkJCXRtYWtlX2ZpbGU9aTM4Ni90LXN2cjNk
YngKCQkJZXh0cmFfcGFydHM9InN2cjMuaWZpbGUgc3ZyM3ouaWZpbGUiCgkJZWxzZQoJCQl0bV9m
aWxlPWkzODYvaXNjY29mZi5oCgkJCXRtYWtlX2ZpbGU9aTM4Ni90LWNydHN0dWZmCgkJCWV4dHJh
X3BhcnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIgoJCWZpCgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1p
bnN0YWxsLWhlYWRlcnMtY3BpbwoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3XTg2LSot
bGludXgtZ251b2xkbGQqKQkjIEludGVsIDgwMzg2J3MgcnVubmluZyBHTlUvTGludXgKY2hhbmdl
cXVvdGUoWyxdKWRubAkJCSMgd2l0aCBhLm91dCBmb3JtYXQgdXNpbmcKCQkJCQkjIHByZSBCRkQg
bGlua2VycwoJCXhtYWtlX2ZpbGU9eC1saW51eC1hb3V0CgkJdG1ha2VfZmlsZT0idC1saW51eC1h
b3V0IGkzODYvdC1jcnRzdHVmZiIKCQl0bV9maWxlPWkzODYvbGludXgtb2xkbGQuaAoJCWdudV9s
ZD15ZXMKCQlmbG9hdF9mb3JtYXQ9aTM4NgoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3
XTg2LSotbGludXgtZ251YW91dCopCSMgSW50ZWwgODAzODYncyBydW5uaW5nIEdOVS9MaW51eApj
aGFuZ2VxdW90ZShbLF0pZG5sCQkJIyB3aXRoIGEub3V0IGZvcm1hdAoJCXhtYWtlX2ZpbGU9eC1s
aW51eC1hb3V0CgkJdG1ha2VfZmlsZT0idC1saW51eC1hb3V0IGkzODYvdC1jcnRzdHVmZiIKCQl0
bV9maWxlPWkzODYvbGludXgtYW91dC5oCgkJZ251X2xkPXllcwoJCWZsb2F0X2Zvcm1hdD1pMzg2
CgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCWlbMzQ1NjddODYtKi1saW51eC1nbnVsaWJjMSkJIyBJ
bnRlbCA4MDM4NidzIHJ1bm5pbmcgR05VL0xpbnV4CmNoYW5nZXF1b3RlKFssXSlkbmwJCQkjIHdp
dGggRUxGIGZvcm1hdCB1c2luZyB0aGUKCQkJCQkjIEdOVS9MaW51eCBDIGxpYnJhcnkgNQoJCXht
YWtlX2ZpbGU9eC1saW51eAkKCQl0bV9maWxlPWkzODYvbGludXguaAkKCQl0bWFrZV9maWxlPSJ0
LWxpbnV4IHQtbGludXgtZ251bGliYzEgaTM4Ni90LWNydHN0dWZmIgoJCWV4dHJhX3BhcnRzPSJj
cnRiZWdpbi5vIGNydGJlZ2luUy5vIGNydGVuZC5vIGNydGVuZFMubyIKCQlnbnVfbGQ9eWVzCgkJ
ZmxvYXRfZm9ybWF0PWkzODYKIAkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhl
bgogCQkJdGhyZWFkX2ZpbGU9J3NpbmdsZScKIAkJZmkKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJ
aVszNDU2N104Ni0qLWxpbnV4LWdudSopCSMgSW50ZWwgODAzODYncyBydW5uaW5nIEdOVS9MaW51
eApjaGFuZ2VxdW90ZShbLF0pZG5sCQkJIyB3aXRoIEVMRiBmb3JtYXQgdXNpbmcgZ2xpYmMgMgoJ
CQkJCSMgYWthIEdOVS9MaW51eCBDIGxpYnJhcnkgNgoJCXhtYWtlX2ZpbGU9eC1saW51eAoJCXRt
X2ZpbGU9aTM4Ni9saW51eC5oCgkJdG1ha2VfZmlsZT0idC1saW51eCBpMzg2L3QtY3J0c3R1ZmYi
CgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5kLm8gY3J0ZW5kUy5v
IgoJCWdudV9sZD15ZXMKCQlmbG9hdF9mb3JtYXQ9aTM4NgogCQlpZiB0ZXN0IHgkZW5hYmxlX3Ro
cmVhZHMgPSB4eWVzOyB0aGVuCiAJCQl0aHJlYWRfZmlsZT0ncG9zaXgnCiAJCWZpCgkJOzsKY2hh
bmdlcXVvdGUoLClkbmwKCWlbMzQ1NjddODYtKi1nbnUqKQoJCWZsb2F0X2Zvcm1hdD1pMzg2CmNo
YW5nZXF1b3RlKFssXSlkbmwKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni1nbzMy
LW1zZG9zIHwgaVszNDU2N104Ni0qLWdvMzIqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJZWNobyAi
R08zMi9ESkdQUCBWMS5YIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIFVzZSAqLXBjLW1zZG9zZGpn
cHAgZm9yIERKR1BQIFYyLlggaW5zdGVhZC4iCgkJZXhpdCAxCgkJOzsKY2hhbmdlcXVvdGUoLClk
bmwKCWlbMzQ1NjddODYtcGMtbXNkb3NkamdwcCopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl4bV9m
aWxlPWkzODYveG0tZGpncHAuaAoJCXRtX2ZpbGU9aTM4Ni9kamdwcC5oCgkJdG1ha2VfZmlsZT1p
Mzg2L3QtZGpncHAKCQl4bWFrZV9maWxlPWkzODYveC1kamdwcAoJCWdudV9sZD15ZXMKCQlnYXM9
eWVzCgkJZXhlZXh0PS5leGUKCQljYXNlICRob3N0IGluICpwYy1tc2Rvc2RqZ3BwKikKCQkJdGFy
Z2V0X2FsaWFzPWRqZ3BwCgkJCTs7CgkJZXNhYwoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0
NTY3XTg2LW1vc3MtbXNkb3MqIHwgaVszNDU2N104Ni0qLW1vc3MqKQpjaGFuZ2VxdW90ZShbLF0p
ZG5sCgkJdG1fZmlsZT1pMzg2L21vc3MuaAoJCXRtYWtlX2ZpbGU9dC1saWJjLW9rCgkJZ251X2xk
PXllcwoJCWdhcz15ZXMKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLWx5bnhv
cyopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJ
dG1fZmlsZT1pMzg2L2x5bnguaAoJCWVsc2UKCQkJdG1fZmlsZT1pMzg2L2x5bngtbmcuaAoJCWZp
CgkJeG1fZmlsZT1pMzg2L3htLWx5bnguaAoJCXRtYWtlX2ZpbGU9aTM4Ni90LWkzODZiYXJlCgkJ
eG1ha2VfZmlsZT14LWx5bngKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLW1h
Y2gqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT1pMzg2L21hY2guaAojCQl0bWFrZV9m
aWxlPXQtbGliYy1vawoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJ
aVszNDU2N104Ni0qLW9zZnJvc2UqKQkJIyAzODYgdXNpbmcgT1NGL3Jvc2UKY2hhbmdlcXVvdGUo
WyxdKWRubAogICAgICAgICAgICAgICAgaWYgdGVzdCB4JGVsZiA9IHh5ZXMKCQl0aGVuCgkJCXRt
X2ZpbGU9aTM4Ni9vc2ZlbGYuaAoJCQl1c2VfY29sbGVjdDI9CgkJZWxzZQoJCQl0bV9maWxlPWkz
ODYvb3Nmcm9zZS5oCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJCXhtX2ZpbGU9ImkzODYveG0t
b3NmLmggJHt4bV9maWxlfSIKCQl4bWFrZV9maWxlPWkzODYveC1vc2Zyb3NlCgkJdG1ha2VfZmls
ZT1pMzg2L3Qtb3NmCgkJZXh0cmFfb2Jqcz1oYWxmcGljLm8KCQk7OwpjaGFuZ2VxdW90ZSgsKWRu
bAoJaVszNDU2N104Ni1nbzMyLXJ0ZW1zKikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCWNwdV90eXBl
PWkzODYKCQl4bV9maWxlPWkzODYveG0tZ28zMi5oCgkJdG1fZmlsZT1pMzg2L2dvMzItcnRlbXMu
aAoJCXRtYWtlX2ZpbGU9ImkzODYvdC1nbzMyIHQtcnRlbXMiCgkJOzsKY2hhbmdlcXVvdGUoLClk
bmwKCWlbMzQ1NjddODYtKi1ydGVtc2NvZmYqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJY3B1X3R5
cGU9aTM4NgoJCXRtX2ZpbGU9aTM4Ni9ydGVtcy5oCgkJdG1ha2VfZmlsZT0iaTM4Ni90LWkzODZi
YXJlIHQtcnRlbXMiCgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCWlbMzQ1NjddODYtKi1ydGVtcyp8
aVszNDU2N104Ni0qLXJ0ZW1zZWxmKikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCWNwdV90eXBlPWkz
ODYKCQl0bV9maWxlPWkzODYvcnRlbXNlbGYuaAoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNy
dGVuZC5vIGNydGkubyBjcnRuLm8iCgkJdG1ha2VfZmlsZT0iaTM4Ni90LXJ0ZW1zLWkzODYgaTM4
Ni90LWNydHN0dWZmIHQtcnRlbXMiCgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCWlbMzQ1NjddODYt
Ki1zY28zLjJ2NSopCSMgODAzODYgcnVubmluZyBTQ08gT3BlbiBTZXJ2ZXIgNQpjaGFuZ2VxdW90
ZShbLF0pZG5sCgkJeG1fZmlsZT0ieG0tYWxsb2NhLmggJHt4bV9maWxlfSBpMzg2L3htLXNjbzUu
aCIKCQl4bV9kZWZpbmVzPSJVU0cgU1ZSMyIKCQl4bWFrZV9maWxlPWkzODYveC1zY281CgkJaW5z
dGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJCXRtX2ZpbGU9aTM4Ni9zY281
LmgKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1fZmlsZT0iaTM4Ni9zY281Z2Fz
LmggJHt0bV9maWxlfSIKCQkJdG1ha2VfZmlsZT1pMzg2L3Qtc2NvNWdhcwoJCWVsc2UKCQkJdG1h
a2VfZmlsZT1pMzg2L3Qtc2NvNQoJCWZpCgkJZXh0cmFfcGFydHM9ImNydGkubyBjcnRiZWdpbi5v
IGNydGVuZC5vIGNydGJlZ2luUy5vIGNydGVuZFMubyIKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJ
aVszNDU2N104Ni0qLXNjbzMuMnY0KikgCSMgODAzODYgcnVubmluZyBTQ08gMy4ydjQgc3lzdGVt
CmNoYW5nZXF1b3RlKFssXSlkbmwKCQl4bV9maWxlPSIke3htX2ZpbGV9IGkzODYveG0tc2NvLmgi
CgkJeG1fZGVmaW5lcz0iVVNHIFNWUjMgQlJPS0VOX0xERVhQIFNNQUxMX0FSR19NQVgiCgkJeG1h
a2VfZmlsZT1pMzg2L3gtc2NvNAoJCWluc3RhbGxfaGVhZGVyc19kaXI9aW5zdGFsbC1oZWFkZXJz
LWNwaW8KICAgICAgICAgICAgICAgIGlmIHRlc3QgeCRzdGFicyA9IHh5ZXMKCQl0aGVuCgkJCXRt
X2ZpbGU9aTM4Ni9zY280ZGJ4LmgKCQkJdG1ha2VfZmlsZT1pMzg2L3Qtc3ZyM2RieAoJCQlleHRy
YV9wYXJ0cz0ic3ZyMy5pZmlsZSBzdnIzei5yZmlsZSIKCQllbHNlCgkJCXRtX2ZpbGU9aTM4Ni9z
Y280LmgKCQkJdG1ha2VfZmlsZT1pMzg2L3QtY3J0c3R1ZmYKCQkJZXh0cmFfcGFydHM9ImNydGJl
Z2luLm8gY3J0ZW5kLm8iCgkJZmkKCQkjIFRoZSBkZWZhdWx0IEVBRlMgZmlsZXN5c3RlbSBzdXBw
b3J0cyBsb25nIGZpbGUgbmFtZXMuCgkJIyBUcnVuY2F0aW5nIHRoZSB0YXJnZXQgbWFrZXMgJGhv
c3QgIT0gJHRhcmdldCB3aGljaAoJCSMgbWFrZXMgZ2NjIHRoaW5rIGl0IGlzIGRvaW5nIGEgY3Jv
c3MtY29tcGlsZS4KCQkjIHRydW5jYXRlX3RhcmdldD15ZXMKCQk7OwpjaGFuZ2VxdW90ZSgsKWRu
bAoJaVszNDU2N104Ni0qLXNjbyopCSAJIyA4MDM4NiBydW5uaW5nIFNDTyBzeXN0ZW0KY2hhbmdl
cXVvdGUoWyxdKWRubAoJCXhtX2ZpbGU9aTM4Ni94bS1zY28uaAoJCXhtYWtlX2ZpbGU9aTM4Ni94
LXNjbwoJCWluc3RhbGxfaGVhZGVyc19kaXI9aW5zdGFsbC1oZWFkZXJzLWNwaW8KICAgICAgICAg
ICAgICAgIGlmIHRlc3QgeCRzdGFicyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9aTM4Ni9zY29k
YnguaAoJCQl0bWFrZV9maWxlPWkzODYvdC1zdnIzZGJ4CgkJCWV4dHJhX3BhcnRzPSJzdnIzLmlm
aWxlIHN2cjN6LnJmaWxlIgoJCWVsc2UKCQkJdG1fZmlsZT1pMzg2L3Njby5oCgkJCWV4dHJhX3Bh
cnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIgoJCQl0bWFrZV9maWxlPWkzODYvdC1jcnRzdHVmZgoJ
CWZpCgkJdHJ1bmNhdGVfdGFyZ2V0PXllcwoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3
XTg2LSotc29sYXJpczIqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJeG1fZmlsZT0ieG0tYWxsb2Nh
LmggJHt4bV9maWxlfSIKCQl4bV9kZWZpbmVzPSJVU0cgUE9TSVggU01BTExfQVJHX01BWCIKCQl0
bV9maWxlPWkzODYvc29sMi5oCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXM7IHRoZW4KCQkJIyBPbmx5
IG5lZWRlZCBpZiBnYXMgZG9lcyBub3Qgc3VwcG9ydCAtcwoJCQl0bV9maWxlPSJpMzg2L3NvbDJn
YXMuaCAke3RtX2ZpbGV9IgoJCWZpCgkJdG1ha2VfZmlsZT1pMzg2L3Qtc29sMgoJCWV4dHJhX3Bh
cnRzPSJjcnQxLm8gY3J0aS5vIGNydG4ubyBnY3J0MS5vIGdtb24ubyBjcnRiZWdpbi5vIGNydGVu
ZC5vIgoJCXhtYWtlX2ZpbGU9eC1zdnI0CgkJaWYgdGVzdCB4JHtlbmFibGVfdGhyZWFkc30gPSB4
OyB0aGVuCgkJICAgIGVuYWJsZV90aHJlYWRzPSRoYXZlX3B0aHJlYWRfaAoJCSAgICBpZiB0ZXN0
IHgke2VuYWJsZV90aHJlYWRzfSA9IHg7IHRoZW4KCQkJZW5hYmxlX3RocmVhZHM9JGhhdmVfdGhy
ZWFkX2gKCQkgICAgZmkKCQlmaQoJCWlmIHRlc3QgeCR7ZW5hYmxlX3RocmVhZHN9ID0geHllczsg
dGhlbgoJCSAgICBpZiB0ZXN0IHgke2hhdmVfcHRocmVhZF9ofSA9IHh5ZXM7IHRoZW4KCQkJdGhy
ZWFkX2ZpbGU9J3Bvc2l4JwoJCSAgICBlbHNlCgkJCXRocmVhZF9maWxlPSdzb2xhcmlzJwoJCSAg
ICBmaQoJCWZpCgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKICAgICAgIGlbMzQ1NjddODYtKi1zeXN2
NSopICAgICAgICAgICAjIEludGVsIHg4NiBvbiBTeXN0ZW0gViBSZWxlYXNlIDUKY2hhbmdlcXVv
dGUoWyxdKWRubAogICAgICAgICAgICAgICB4bV9maWxlPSJ4bS1hbGxvY2EuaCAke3htX2ZpbGV9
IgogICAgICAgICAgICAgICB4bV9kZWZpbmVzPSJVU0cgUE9TSVgiCiAgICAgICAgICAgICAgIHRt
X2ZpbGU9aTM4Ni9zeXN2NS5oCiAgICAgICAgICAgICAgIGlmIHRlc3QgeCRzdGFicyA9IHh5ZXMK
ICAgICAgICAgICAgICAgdGhlbgogICAgICAgICAgICAgICAgICAgICAgIHRtX2ZpbGU9IiR7dG1f
ZmlsZX0gZGJ4LmgiCiAgICAgICAgICAgICAgIGZpCiAgICAgICAgICAgICAgIHRtYWtlX2ZpbGU9
aTM4Ni90LWNydHBpYwogICAgICAgICAgICAgICB4bWFrZV9maWxlPXgtc3ZyNAogICAgICAgICAg
ICAgICBleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCSAgICAgICBpZiB0ZXN0IHgk
ZW5hYmxlX3RocmVhZHMgPSB4eWVzOyB0aGVuCgkJICAgICAgIHRocmVhZF9maWxlPSdwb3NpeCcK
CSAgICAgICBmaQogICAgICAgICAgICAgICA7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104
Ni0qLXN5c3Y0KikJCSMgSW50ZWwgODAzODYncyBydW5uaW5nIHN5c3RlbSBWLjQKY2hhbmdlcXVv
dGUoWyxdKWRubAoJCXhtX2ZpbGU9InhtLWFsbG9jYS5oICR7eG1fZmlsZX0iCgkJeG1fZGVmaW5l
cz0iVVNHIFBPU0lYIFNNQUxMX0FSR19NQVgiCgkJdG1fZmlsZT1pMzg2L3N5c3Y0LmgKCQlpZiB0
ZXN0IHgkc3RhYnMgPSB4eWVzCgkJdGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9IGRieC5oIgoJ
CWZpCgkJdG1ha2VfZmlsZT1pMzg2L3QtY3J0cGljCgkJeG1ha2VfZmlsZT14LXN2cjQKCQlleHRy
YV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVsz
NDU2N104Ni0qLXVkayopICAgICAgIyBJbnRlbCB4ODYgb24gU0NPIFVXL09TUjUgRGV2IEtpdApj
aGFuZ2VxdW90ZShbLF0pZG5sCgkJeG1fZmlsZT0ieG0tYWxsb2NhLmggJHt4bV9maWxlfSIKCQl4
bV9kZWZpbmVzPSJVU0cgUE9TSVgiCgkJdG1fZmlsZT1pMzg2L3Vkay5oCgkJdG1ha2VfZmlsZT0i
aTM4Ni90LWNydHBpYyBpMzg2L3QtdWRrIgoJCXhtYWtlX2ZpbGU9eC1zdnI0CgkJZXh0cmFfcGFy
dHM9ImNydGJlZ2luLm8gY3J0ZW5kLm8iCgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhl
YWRlcnMtY3BpbwoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3XTg2LSotb3NmMSopCQkj
IEludGVsIDgwMzg2J3MgcnVubmluZyBPU0YvMSAxLjMrCmNoYW5nZXF1b3RlKFssXSlkbmwKCQlj
cHVfdHlwZT1pMzg2CgkJeG1fZmlsZT0iJHt4bV9maWxlfSB4bS1zdnI0LmggaTM4Ni94bS1zeXN2
NC5oIGkzODYveG0tb3NmMWVsZi5oIgoJCXhtX2RlZmluZXM9IlVTRV9DX0FMTE9DQSBTTUFMTF9B
UkdfTUFYIgoJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9aTM4Ni9v
c2YxZWxmZ2RiLmgKCQllbHNlCgkJCXRtX2ZpbGU9aTM4Ni9vc2YxZWxmLmgKCQlmaQoJCXRtYWtl
X2ZpbGU9aTM4Ni90LW9zZjFlbGYKCQl4bWFrZV9maWxlPWkzODYveC1vc2YxZWxmCgkJZXh0cmFf
cGFydHM9ImNydGkubyBjcnRuLm8gY3J0YmVnaW4ubyBjcnRlbmQubyIKCQk7OwpjaGFuZ2VxdW90
ZSgsKWRubAoJaVszNDU2N104Ni0qLXN5c3YqKQkJIyBJbnRlbCA4MDM4NidzIHJ1bm5pbmcgc3lz
dGVtIFYKY2hhbmdlcXVvdGUoWyxdKWRubAoJCXhtX2RlZmluZXM9IlVTRyBTVlIzIgoJCXhtYWtl
X2ZpbGU9aTM4Ni94LXN5c3YzCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCWlmIHRl
c3QgeCRzdGFicyA9IHh5ZXMKCQkJdGhlbgoJCQkJdG1fZmlsZT1pMzg2L3N2cjNkYnguaAoJCQkJ
dG1ha2VfZmlsZT1pMzg2L3Qtc3ZyM2RieAoJCQkJZXh0cmFfcGFydHM9InN2cjMuaWZpbGUgc3Zy
M3oucmZpbGUiCgkJCWVsc2UKCQkJCXRtX2ZpbGU9aTM4Ni9zdnIzZ2FzLmgKCQkJCWV4dHJhX3Bh
cnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIgoJCQkJdG1ha2VfZmlsZT1pMzg2L3QtY3J0c3R1ZmYK
CQkJZmkKCQllbHNlCgkJCXRtX2ZpbGU9aTM4Ni9zeXN2My5oCgkJCWV4dHJhX3BhcnRzPSJjcnRi
ZWdpbi5vIGNydGVuZC5vIgoJCQl0bWFrZV9maWxlPWkzODYvdC1jcnRzdHVmZgoJCWZpCgkJOzsK
CWkzODYtKi12c3RhKQkJCSMgSW50ZWwgODAzODYncyBydW5uaW5nIFZTVGEga2VybmVsCgkJeG1f
ZmlsZT0iJHt4bV9maWxlfSBpMzg2L3htLXZzdGEuaCIKCQl0bV9maWxlPWkzODYvdnN0YS5oCgkJ
dG1ha2VfZmlsZT1pMzg2L3QtdnN0YQoJCXhtYWtlX2ZpbGU9aTM4Ni94LXZzdGEKCQk7OwpjaGFu
Z2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLXdpbjMyKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJ
eG1fZmlsZT0iJHt4bV9maWxlfSBpMzg2L3htLWN5Z3dpbi5oIgoJCXRtYWtlX2ZpbGU9aTM4Ni90
LWN5Z3dpbgoJCXRtX2ZpbGU9aTM4Ni93aW4zMi5oCgkJeG1ha2VfZmlsZT1pMzg2L3gtY3lnd2lu
CgkJZXh0cmFfb2Jqcz13aW5udC5vCiAJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7
IHRoZW4KCQkJdGhyZWFkX2ZpbGU9J3dpbjMyJwoJCWZpCgkJZXhlZXh0PS5leGUKCQk7OwpjaGFu
Z2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLXBlIHwgaVszNDU2N104Ni0qLWN5Z3dpbiopCmNo
YW5nZXF1b3RlKFssXSlkbmwKCQl4bV9maWxlPSIke3htX2ZpbGV9IGkzODYveG0tY3lnd2luLmgi
CgkJdG1ha2VfZmlsZT1pMzg2L3QtY3lnd2luCgkJdG1fZmlsZT1pMzg2L2N5Z3dpbi5oCgkJeG1h
a2VfZmlsZT1pMzg2L3gtY3lnd2luCgkJZXh0cmFfb2Jqcz13aW5udC5vCiAJCWlmIHRlc3QgeCRl
bmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KCQkJdGhyZWFkX2ZpbGU9J3dpbjMyJwoJCWZpCgkJ
ZXhlZXh0PS5leGUKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLW1pbmd3MzIq
KQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT1pMzg2L21pbmd3MzIuaAoJCXhtX2ZpbGU9
IiR7eG1fZmlsZX0gaTM4Ni94bS1taW5ndzMyLmgiCgkJdG1ha2VfZmlsZT0iaTM4Ni90LWN5Z3dp
biBpMzg2L3QtbWluZ3czMiIKCQlleHRyYV9vYmpzPXdpbm50Lm8KCQl4bWFrZV9maWxlPWkzODYv
eC1jeWd3aW4KIAkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhlbgoJCQl0aHJl
YWRfZmlsZT0nd2luMzInCgkJZmkKCQlleGVleHQ9LmV4ZQoJCWNhc2UgJG1hY2hpbmUgaW4KCQkJ
Km1pbmd3MzJtc3YqKQoJCQkJOzsKCQkJKm1pbndnMzJjcnQqIHwgKm1pbmd3MzIqKQoJCQkJdG1f
ZmlsZT0iJHt0bV9maWxlfSBpMzg2L2NydGRsbC5oIgoJCQkJOzsKCQllc2FjCgkJOzsKY2hhbmdl
cXVvdGUoLClkbmwKCWlbMzQ1NjddODYtKi11d2luKikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCXRt
X2ZpbGU9aTM4Ni91d2luLmgKCQl4bV9maWxlPSIke3htX2ZpbGV9IGkzODYveG0tdXdpbi5oIgoJ
CXhtX2RlZmluZXM9IlVTRyBOT19TVEFCX0giCgkJdG1ha2VfZmlsZT0iaTM4Ni90LWN5Z3dpbiBp
Mzg2L3QtdXdpbiIKCQlleHRyYV9vYmpzPXdpbm50Lm8KCQl4bWFrZV9maWxlPWkzODYveC1jeWd3
aW4KIAkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhlbgoJCQl0aHJlYWRfZmls
ZT0nd2luMzInCgkJZmkKCQlleGVleHQ9LmV4ZQoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0
NTY3XTg2LSotaW50ZXJpeCopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl0bV9maWxlPSJpMzg2L2kz
ODYtaW50ZXJpeC5oIGludGVyaXguaCIKCQl4bV9maWxlPSJpMzg2L3htLWkzODYtaW50ZXJpeC5o
IHhtLWludGVyaXguaCIKCQl4bV9kZWZpbmVzPSJVU0ciCgkJdG1ha2VfZmlsZT0iaTM4Ni90LWlu
dGVyaXgiCgkJZXh0cmFfb2Jqcz1pbnRlcml4Lm8KCQl4bWFrZV9maWxlPXgtaW50ZXJpeAogCQlp
ZiB0ZXN0IHgkZW5hYmxlX3RocmVhZHMgPSB4eWVzIDsgdGhlbgoJCQl0aHJlYWRfZmlsZT0ncG9z
aXgnCgkJZmkKIAkJaWYgdGVzdCB4JHN0YWJzID0geHllcyA7IHRoZW4KCQkJdG1fZmlsZT0iJHt0
bV9maWxlfSBkYnhjb2ZmLmgiCgkJZmkKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104
Ni0qLXdpbm50MyopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl0bV9maWxlPWkzODYvd2luLW50LmgK
CQlvdXRfZmlsZT1pMzg2L2kzODYuYwoJCXhtX2ZpbGU9InhtLXdpbm50LmggJHt4bV9maWxlfSIK
CQl4bWFrZV9maWxlPXdpbm50L3gtd2lubnQKCQl0bWFrZV9maWxlPWkzODYvdC13aW5udAoJCWV4
dHJhX2hvc3Rfb2Jqcz0id2lubnQubyBvbGRuYW1lcy5vIgoJCWV4dHJhX2djY19vYmpzPSJzcGF3
bnYubyBvbGRuYW1lcy5vIgoJCWlmIHRlc3QgeCRnbnVfbGQgIT0geHllcwoJCXRoZW4KCQkJZXh0
cmFfcHJvZ3JhbXM9bGQuZXhlCgkJZmkKIAkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHll
czsgdGhlbgoJCQl0aHJlYWRfZmlsZT0nd2luMzInCgkJZmkKCQk7OwpjaGFuZ2VxdW90ZSgsKWRu
bAoJaVszNDU2N104Ni1kZy1kZ3V4KikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCXhtX2ZpbGU9Inht
LWFsbG9jYS5oICR7eG1fZmlsZX0iCgkJeG1fZGVmaW5lcz0iVVNHIFBPU0lYIgoJCW91dF9maWxl
PWkzODYvZGd1eC5jCgkJdG1fZmlsZT1pMzg2L2RndXguaAoJCXRtYWtlX2ZpbGU9aTM4Ni90LWRn
dXgKCQl4bWFrZV9maWxlPWkzODYveC1kZ3V4CgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxs
LWhlYWRlcnMtY3BpbwogICAgICAgICAgICAgIDs7CglpODYwLWFsbGlhbnQtKikJCSMgQWxsaWFu
dCBGWC8yODAwCgkJdG1fZmlsZT0iJHt0bV9maWxlfSBzdnI0LmggaTg2MC9zeXN2NC5oIGk4NjAv
ZngyODAwLmgiCgkJeG1fZmlsZT0iJHt4bV9maWxlfSIKCQl4bWFrZV9maWxlPWk4NjAveC1meDI4
MDAKCQl0bWFrZV9maWxlPWk4NjAvdC1meDI4MDAKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBj
cnRlbmQubyIKCQk7OwoJaTg2MC0qLWJzZCopCgkJdG1fZmlsZT0iJHt0bV9maWxlfSBpODYwL2Jz
ZC5oIgoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9
IGk4NjAvYnNkLWdhcy5oIgoJCWZpCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CglpODYwLSotbWFj
aCopCgkJdG1fZmlsZT0iJHt0bV9maWxlfSBpODYwL21hY2guaCIKCQl0bWFrZV9maWxlPXQtbGli
Yy1vawoJCTs7CglpODYwLSotb3NmKikJCQkjIEludGVsIFBhcmFnb24gWFAvUywgT1NGLzFBRAoJ
CXRtX2ZpbGU9IiR7dG1fZmlsZX0gc3ZyMy5oIGk4NjAvcGFyYWdvbi5oIgoJCXhtX2RlZmluZXM9
IlVTRyBTVlIzIgoJCXRtYWtlX2ZpbGU9dC1vc2YKCQk7OwoJaTg2MC0qLXN5c3YzKikKCQl0bV9m
aWxlPSIke3RtX2ZpbGV9IHN2cjMuaCBpODYwL3N5c3YzLmgiCgkJeG1fZGVmaW5lcz0iVVNHIFNW
UjMiCgkJeG1ha2VfZmlsZT1pODYwL3gtc3lzdjMKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBj
cnRlbmQubyIKCQk7OwoJaTg2MC0qLXN5c3Y0KikKCQl0bV9maWxlPSIke3RtX2ZpbGV9IHN2cjQu
aCBpODYwL3N5c3Y0LmgiCgkJeG1fZGVmaW5lcz0iVVNHIFNWUjMiCgkJeG1ha2VfZmlsZT1pODYw
L3gtc3lzdjQKCQl0bWFrZV9maWxlPXQtc3ZyNAoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNy
dGVuZC5vIgoJCTs7CglpOTYwLXdycy12eHdvcmtzNSB8IGk5NjAtd3JzLXZ4d29ya3M1LjAqKQoJ
CXRtX2ZpbGU9IiR7dG1fZmlsZX0gaTk2MC92eDk2MC5oIgoJCXRtYWtlX2ZpbGU9aTk2MC90LXZ4
d29ya3M5NjAKCQl1c2VfY29sbGVjdDI9eWVzCgkJdGhyZWFkX2ZpbGU9J3Z4d29ya3MnCgkJOzsK
CWk5NjAtd3JzLXZ4d29ya3M1KiB8IGk5NjAtd3JzLXZ4d29ya3MpCgkJdG1fZmlsZT0iJHt0bV9m
aWxlfSBkYnhjb2ZmLmggaTk2MC9pOTYwLWNvZmYuaCBpOTYwL3Z4OTYwLWNvZmYuaCIKCQl0bWFr
ZV9maWxlPWk5NjAvdC12eHdvcmtzOTYwCgkJdXNlX2NvbGxlY3QyPXllcwoJCXRocmVhZF9maWxl
PSd2eHdvcmtzJwoJCTs7CglpOTYwLXdycy12eHdvcmtzKikKCQl0bV9maWxlPSIke3RtX2ZpbGV9
IGk5NjAvdng5NjAuaCIKCQl0bWFrZV9maWxlPWk5NjAvdC12eHdvcmtzOTYwCgkJdXNlX2NvbGxl
Y3QyPXllcwoJCXRocmVhZF9maWxlPSd2eHdvcmtzJwoJCTs7CglpOTYwLSotY29mZiopCgkJdG1f
ZmlsZT0iJHt0bV9maWxlfSBkYnhjb2ZmLmggaTk2MC9pOTYwLWNvZmYuaCBsaWJnbG9zcy5oIgoJ
CXRtYWtlX2ZpbGU9aTk2MC90LTk2MGJhcmUKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCWk5NjAt
Ki1ydGVtcykKCQl0bWFrZV9maWxlPSJpOTYwL3QtOTYwYmFyZSB0LXJ0ZW1zIgoJCXRtX2ZpbGU9
IiR7dG1fZmlsZX0gZGJ4Y29mZi5oIGk5NjAvcnRlbXMuaCIKCQl1c2VfY29sbGVjdDI9eWVzCgkJ
OzsKCWk5NjAtKi0qKQkJCSMgRGVmYXVsdCBpOTYwIGVudmlyb25tZW50LgoJCXVzZV9jb2xsZWN0
Mj15ZXMKCQk7OwoJbTMyci0qLWVsZiopCgkJZXh0cmFfcGFydHM9ImNydGluaXQubyBjcnRmaW5p
Lm8iCgkJOzsKCW02ODAwMC1jb252ZXJnZW50LXN5c3YqKQoJCXRtX2ZpbGU9bTY4ay9jdGl4LmgK
CQl4bV9maWxlPSJtNjhrL3htLTNiMS5oICR7eG1fZmlsZX0iCgkJeG1fZGVmaW5lcz1VU0cKCQl1
c2VfY29sbGVjdDI9eWVzCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQk7OwoJbTY4MDAw
LWhwLWJzZCopCQkJIyBIUCA5MDAwLzIwMCBydW5uaW5nIEJTRAoJCXRtX2ZpbGU9bTY4ay9ocDJi
c2QuaAoJCXhtYWtlX2ZpbGU9bTY4ay94LWhwMmJzZAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQlleHRy
YV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCTs7CgltNjgwMDAtaHAtaHB1eCopCQkjIEhQIDkwMDAg
c2VyaWVzIDMwMAoJCXhtX2ZpbGU9InhtLWFsbG9jYS5oICR7eG1fZmlsZX0iCgkJeG1fZGVmaW5l
cz0iVVNHIgoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl4bWFrZV9maWxlPW02OGsv
eC1ocDMyMGcKCQkJdG1fZmlsZT1tNjhrL2hwMzEwZy5oCgkJZWxzZQoJCQl4bWFrZV9maWxlPW02
OGsveC1ocDMyMAoJCQl0bV9maWxlPW02OGsvaHAzMTAuaAoJCWZpCgkJaW5zdGFsbF9oZWFkZXJz
X2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJCXVzZV9jb2xsZWN0Mj15ZXMKCQlleHRyYV9oZWFk
ZXJzPW1hdGgtNjg4ODEuaAoJCTs7CgltNjgwMDAtc3VuLXN1bm9zMyopCgkJdG1fZmlsZT1tNjhr
L3N1bjIuaAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJ
CTs7CgltNjgwMDAtc3VuLXN1bm9zNCopCgkJdG1fZmlsZT1tNjhrL3N1bjJvNC5oCgkJdXNlX2Nv
bGxlY3QyPXllcwoJCWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJOzsKCW02ODAwMC1hdHQt
c3lzdiopCgkJeG1fZmlsZT0ibTY4ay94bS0zYjEuaCAke3htX2ZpbGV9IgoJCXhtX2RlZmluZXM9
VVNHCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9bTY4ay8zYjFnLmgK
CQllbHNlCgkJCXRtX2ZpbGU9bTY4ay8zYjEuaAoJCWZpCgkJdXNlX2NvbGxlY3QyPXllcwoJCWV4
dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJOzsKCW02OGstYXBwbGUtYXV4KikJCSMgQXBwbGUg
TWFjaW50b3NoIHJ1bm5pbmcgQS9VWAoJCXhtX2RlZmluZXM9IlVTRyBBVVgiCgkJdG1ha2VfZmls
ZT1tNjhrL3QtYXV4CgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJ
CWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJZXh0cmFfcGFydHM9ImNydDEubyBtY3J0MS5v
IG1hY2NydDEubyBjcnQyLm8gY3J0bi5vIgoJCXRtX2ZpbGU9CgkJaWYgdGVzdCAiJGdudV9sZCIg
PSB5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gbTY4ay9hdXhnbGQuaCIKCQllbHNl
CgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gbTY4ay9hdXhsZC5oIgoJCWZpCgkJaWYgdGVzdCAiJGdh
cyIgPSB5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gbTY4ay9hdXhnYXMuaCIKCQll
bHNlCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gbTY4ay9hdXhhcy5oIgoJCWZpCgkJdG1fZmlsZT0i
JHt0bV9maWxlfSBtNjhrL2EtdXguaCIKCQlmbG9hdF9mb3JtYXQ9bTY4awoJCTs7CgltNjhrLWFw
b2xsby0qKQoJCXRtX2ZpbGU9bTY4ay9hcG9sbG82OC5oCgkJeG1ha2VfZmlsZT1tNjhrL3gtYXBv
bGxvNjgKCQl1c2VfY29sbGVjdDI9eWVzCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQlm
bG9hdF9mb3JtYXQ9bTY4awoJCTs7CgltNjhrLWFsdG9zLXN5c3YqKQkJICAgIyBBbHRvcyAzMDY4
CgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJICAgICAgICB0bV9maWxlPW02OGsvYWx0
b3MzMDY4LmgKCQkJeG1fZGVmaW5lcz1VU0cKCQllbHNlCgkJCWVjaG8gIlRoZSBBbHRvcyBpcyBz
dXBwb3J0ZWQgb25seSB3aXRoIHRoZSBHTlUgYXNzZW1ibGVyIiAxPiYyCgkJCWV4aXQgMQoJCWZp
CgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCSAgICAgICAgOzsKCW02OGstYnVsbC1zeXN2
KikJCSMgQnVsbCBEUFgvMgoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQlpZiB0ZXN0
IHgkc3RhYnMgPSB4eWVzCgkJCXRoZW4KCQkJCXRtX2ZpbGU9bTY4ay9kcHgyY2RieC5oCgkJCWVs
c2UKCQkJCXRtX2ZpbGU9bTY4ay9kcHgyZy5oCgkJCWZpCgkJZWxzZQoJCQl0bV9maWxlPW02OGsv
ZHB4Mi5oCgkJZmkKCQl4bV9maWxlPSJ4bS1hbGxvY2EuaCAke3htX2ZpbGV9IgoJCXhtX2RlZmlu
ZXM9VVNHCgkJeG1ha2VfZmlsZT1tNjhrL3gtZHB4MgoJCXVzZV9jb2xsZWN0Mj15ZXMKCQlleHRy
YV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCTs7CgltNjhrLWF0YXJpLXN5c3Y0KikgICAgICAgICAg
ICAgICMgQXRhcmkgdmFyaWFudCBvZiBWLjQuCgkJdG1fZmlsZT1tNjhrL2F0YXJpLmgKCQl4bV9m
aWxlPSJ4bS1hbGxvY2EuaCAke3htX2ZpbGV9IgoJCXhtX2RlZmluZXM9IlVTRyBGVUxMX1BST1RP
VFlQRVMiCgkJdG1ha2VfZmlsZT10LXN2cjQKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRl
bmQubyIKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJ
OzsKCW02OGstbW90b3JvbGEtc3lzdiopCgkJdG1fZmlsZT1tNjhrL21vdDMzMDAuaAoJCXhtX2Zp
bGU9InhtLWFsbG9jYS5oIG02OGsveG0tbW90MzMwMC5oICR7eG1fZmlsZX0iCgkJaWYgdGVzdCB4
JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXhtYWtlX2ZpbGU9bTY4ay94LW1vdDMzMDAtZ2FzCgkJCWlm
IHRlc3QgeCRnbnVfbGQgPSB4eWVzCgkJCXRoZW4KCQkJCXRtYWtlX2ZpbGU9bTY4ay90LW1vdDMz
MDAtZ2FsZAoJCQllbHNlCgkJCQl0bWFrZV9maWxlPW02OGsvdC1tb3QzMzAwLWdhcwoJCQkJdXNl
X2NvbGxlY3QyPXllcwoJCQlmaQoJCWVsc2UKCQkJeG1ha2VfZmlsZT1tNjhrL3gtbW90MzMwMAoJ
CQlpZiB0ZXN0IHgkZ251X2xkID0geHllcwoJCQl0aGVuCgkJCQl0bWFrZV9maWxlPW02OGsvdC1t
b3QzMzAwLWdsZAoJCQllbHNlCgkJCQl0bWFrZV9maWxlPW02OGsvdC1tb3QzMzAwCgkJCQl1c2Vf
Y29sbGVjdDI9eWVzCgkJCWZpCgkJZmkKCQlnZGJfbmVlZHNfb3V0X2ZpbGVfcGF0aD15ZXMKCQll
eHRyYV9wYXJ0cz0iY3J0MC5vIG1jcnQwLm8iCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgK
CQlmbG9hdF9mb3JtYXQ9bTY4awoJCTs7CgltNjhrLW5jci1zeXN2KikJCQkjIE5DUiBUb3dlciAz
MiBTVlIzCgkJdG1fZmlsZT1tNjhrL3Rvd2VyLWFzLmgKCQl4bV9kZWZpbmVzPSJVU0cgU1ZSMyIK
CQl4bWFrZV9maWxlPW02OGsveC10b3dlcgoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGVu
ZC5vIgoJCWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJOzsKICAgICAgICBtNjhrLXBsZXh1
cy1zeXN2KikKCQl0bV9maWxlPW02OGsvcGxleHVzLmgKCQl4bV9maWxlPSJ4bS1hbGxvY2EuaCBt
NjhrL3htLXBsZXh1cy5oICR7eG1fZmlsZX0iCgkJeG1fZGVmaW5lcz1VU0cKCQl1c2VfY29sbGVj
dDI9eWVzCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQk7OwoJbTY4ay10dGktKikKCQl0
bV9maWxlPW02OGsvcGJiLmgKCQl4bV9maWxlPSJ4bS1hbGxvY2EuaCAke3htX2ZpbGV9IgoJCXht
X2RlZmluZXM9VVNHCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQk7OwoJbTY4ay1jcmRz
LXVub3MqKQoJCXhtX2ZpbGU9InhtLWFsbG9jYS5oIG02OGsveG0tY3Jkcy5oICR7eG1fZmlsZX0i
CgkJeG1fZGVmaW5lcz0iVVNHIHVub3MiCgkJeG1ha2VfZmlsZT1tNjhrL3gtY3JkcwoJCXRtX2Zp
bGU9bTY4ay9jcmRzLmgKCQl1c2VfY29sbGVjdDI9eWVzCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4
ODgxLmgKCQk7OwoJbTY4ay1jYm0tc3lzdjQqKQkJIyBDb21tb2RvcmUgdmFyaWFudCBvZiBWLjQu
CgkJdG1fZmlsZT1tNjhrL2FtaXguaAoJCXhtX2ZpbGU9InhtLWFsbG9jYS5oICR7eG1fZmlsZX0i
CgkJeG1fZGVmaW5lcz0iVVNHIEZVTExfUFJPVE9UWVBFUyIKCQl4bWFrZV9maWxlPW02OGsveC1h
bWl4CgkJdG1ha2VfZmlsZT10LXN2cjQKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQu
byIKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJOzsK
CW02OGstY2N1ci1ydHUpCgkJdG1fZmlsZT1tNjhrL2NjdXItR0FTLmgKCQl4bWFrZV9maWxlPW02
OGsveC1jY3VyCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQl1c2VfY29sbGVjdDI9eWVz
CgkJZmxvYXRfZm9ybWF0PW02OGsKCQk7OwoJbTY4ay1ocC1ic2Q0LjQqKQkJIyBIUCA5MDAwLzN4
eCBydW5uaW5nIDQuNGJzZAoJCXRtX2ZpbGU9bTY4ay9ocDNic2Q0NC5oCgkJeG1ha2VfZmlsZT1t
NjhrL3gtaHAzYnNkNDQKCQl1c2VfY29sbGVjdDI9eWVzCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4
ODgxLmgKCQlmbG9hdF9mb3JtYXQ9bTY4awoJCTs7CgltNjhrLWhwLWJzZCopCQkJIyBIUCA5MDAw
LzN4eCBydW5uaW5nIEJlcmtlbGV5IFVuaXgKCQl0bV9maWxlPW02OGsvaHAzYnNkLmgKCQl1c2Vf
Y29sbGVjdDI9eWVzCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQlmbG9hdF9mb3JtYXQ9
bTY4awoJCTs7CgltNjhrLWlzaS1ic2QqKQoJCWlmIHRlc3QgeCR3aXRoX2ZwID0geG5vCgkJdGhl
bgoJCQl0bV9maWxlPW02OGsvaXNpLW5mcC5oCgkJZWxzZQoJCQl0bV9maWxlPW02OGsvaXNpLmgK
CQkJZmxvYXRfZm9ybWF0PW02OGsKCQlmaQoJCXVzZV9jb2xsZWN0Mj15ZXMKCQlleHRyYV9oZWFk
ZXJzPW1hdGgtNjg4ODEuaAoJCTs7CgltNjhrLWhwLWhwdXg3KikJIyBIUCA5MDAwIHNlcmllcyAz
MDAgcnVubmluZyBIUFVYIHZlcnNpb24gNy4KCQl4bV9maWxlPSJ4bS1hbGxvY2EuaCAke3htX2Zp
bGV9IgoJCXhtX2RlZmluZXM9IlVTRyIKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJ
eG1ha2VfZmlsZT1tNjhrL3gtaHAzMjBnCgkJCXRtX2ZpbGU9bTY4ay9ocDMyMGcuaAoJCWVsc2UK
CQkJeG1ha2VfZmlsZT1tNjhrL3gtaHAzMjAKCQkJdG1fZmlsZT1tNjhrL2hwdXg3LmgKCQlmaQoJ
CWluc3RhbGxfaGVhZGVyc19kaXI9aW5zdGFsbC1oZWFkZXJzLWNwaW8KCQl1c2VfY29sbGVjdDI9
eWVzCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQlmbG9hdF9mb3JtYXQ9bTY4awoJCTs7
CgltNjhrLWhwLWhwdXgqKQkjIEhQIDkwMDAgc2VyaWVzIDMwMAoJCXhtX2ZpbGU9InhtLWFsbG9j
YS5oICR7eG1fZmlsZX0iCgkJeG1fZGVmaW5lcz0iVVNHIgoJCWlmIHRlc3QgeCRnYXMgPSB4eWVz
CgkJdGhlbgoJCQl4bWFrZV9maWxlPW02OGsveC1ocDMyMGcKCQkJdG1fZmlsZT1tNjhrL2hwMzIw
Zy5oCgkJZWxzZQoJCQl4bWFrZV9maWxlPW02OGsveC1ocDMyMAoJCQl0bV9maWxlPW02OGsvaHAz
MjAuaAoJCWZpCgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJCXVz
ZV9jb2xsZWN0Mj15ZXMKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1h
dD1tNjhrCgkJOzsKCW02OGstc3VuLW1hY2gqKQoJCXRtX2ZpbGU9bTY4ay9zdW4zbWFjaC5oCgkJ
dXNlX2NvbGxlY3QyPXllcwoJCWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJZmxvYXRfZm9y
bWF0PW02OGsKCQk7OwoJbTY4ay1zb255LW5ld3NvczMqKQoJCWlmIHRlc3QgeCRnYXMgPSB4eWVz
CgkJdGhlbgoJCQl0bV9maWxlPW02OGsvbmV3czNnYXMuaAoJCWVsc2UKCQkJdG1fZmlsZT1tNjhr
L25ld3MzLmgKCQlmaQoJCXVzZV9jb2xsZWN0Mj15ZXMKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4
ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJOzsKCW02OGstc29ueS1ic2QqIHwgbTY4ay1zb255
LW5ld3NvcyopCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9bTY4ay9u
ZXdzZ2FzLmgKCQllbHNlCgkJCXRtX2ZpbGU9bTY4ay9uZXdzLmgKCQlmaQoJCXVzZV9jb2xsZWN0
Mj15ZXMKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJ
OzsKCW02OGstbmV4dC1uZXh0c3RlcDIqKQoJCXRtX2ZpbGU9bTY4ay9uZXh0MjEuaAoJCXhtX2Zp
bGU9Im02OGsveG0tbmV4dC5oICR7eG1fZmlsZX0iCgkJdG1ha2VfZmlsZT1tNjhrL3QtbmV4dAoJ
CXhtYWtlX2ZpbGU9bTY4ay94LW5leHQKCQlleHRyYV9vYmpzPW5leHRzdGVwLm8KCQlleHRyYV9o
ZWFkZXJzPW1hdGgtNjg4ODEuaAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmbG9hdF9mb3JtYXQ9bTY4
awogICAgICAgICAgICAgICAgOzsKY2hhbmdlcXVvdGUoLClkbmwKCW02OGstbmV4dC1uZXh0c3Rl
cFszNF0qKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT1tNjhrL25leHQuaAoJCXhtX2Zp
bGU9Im02OGsveG0tbmV4dC5oICR7eG1fZmlsZX0iCgkJdG1ha2VfZmlsZT1tNjhrL3QtbmV4dAoJ
CXhtYWtlX2ZpbGU9bTY4ay94LW5leHQKCQlleHRyYV9vYmpzPW5leHRzdGVwLm8KCQlleHRyYV9w
YXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJ
CWZsb2F0X2Zvcm1hdD1tNjhrCiAJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRo
ZW4KCQkJdGhyZWFkX2ZpbGU9J21hY2gnCgkJZmkKCQk7OwoJbTY4ay1zdW4tc3Vub3MzKikKCQlp
ZiB0ZXN0IHgkd2l0aF9mcCA9IHhubwoJCXRoZW4KCQkJdG1fZmlsZT1tNjhrL3N1bjNuMy5oCgkJ
ZWxzZQoJCQl0bV9maWxlPW02OGsvc3VuM28zLmgKCQkJZmxvYXRfZm9ybWF0PW02OGsKCQlmaQoJ
CXVzZV9jb2xsZWN0Mj15ZXMKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCTs7CgltNjhr
LXN1bi1zdW5vcyopCQkJIyBGb3IgU3VuT1MgNCAodGhlIGRlZmF1bHQpLgoJCWlmIHRlc3QgeCR3
aXRoX2ZwID0geG5vCgkJdGhlbgoJCQl0bV9maWxlPW02OGsvc3VuM24uaAoJCWVsc2UKCQkJdG1f
ZmlsZT1tNjhrL3N1bjMuaAoJCQlmbG9hdF9mb3JtYXQ9bTY4awoJCWZpCgkJdXNlX2NvbGxlY3Qy
PXllcwoJCWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJOzsKCW02OGstd3JzLXZ4d29ya3Mq
KQoJCXRtX2ZpbGU9bTY4ay92eG02OGsuaAoJCXRtYWtlX2ZpbGU9bTY4ay90LXZ4d29ya3M2OAoJ
CWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJdGhyZWFkX2ZpbGU9J3Z4d29ya3MnCgkJZmxv
YXRfZm9ybWF0PW02OGsKCQk7OwoJbTY4ay0qLWFvdXQqKQoJCXRtYWtlX2ZpbGU9bTY4ay90LW02
OGtiYXJlCgkJdG1fZmlsZT0ibTY4ay9tNjhrLWFvdXQuaCBsaWJnbG9zcy5oIgoJCWV4dHJhX2hl
YWRlcnM9bWF0aC02ODg4MS5oCgkJZmxvYXRfZm9ybWF0PW02OGsKCQk7OwoJbTY4ay0qLWNvZmYq
KQoJCXRtYWtlX2ZpbGU9bTY4ay90LW02OGtiYXJlCgkJdG1fZmlsZT0ibTY4ay9tNjhrLWNvZmYu
aCBkYnguaCBsaWJnbG9zcy5oIgoJCWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJZmxvYXRf
Zm9ybWF0PW02OGsKCQk7OwoJbTY4MDIwLSotZWxmKiB8IG02OGstKi1lbGYqKQoJCXRtX2ZpbGU9
Im02OGsvbTY4MDIwLWVsZi5oIgoJCXhtX2ZpbGU9bTY4ay94bS1tNjhrdi5oCgkJdG1ha2VfZmls
ZT1tNjhrL3QtbTY4a2VsZgoJCWhlYWRlcl9maWxlcz1tYXRoLTY4ODgxLmgKCQk7OwoJbTY4ay0q
LWx5bnhvcyopCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9bTY4ay9s
eW54LmgKCQllbHNlCgkJCXRtX2ZpbGU9bTY4ay9seW54LW5nLmgKCQlmaQoJCXhtX2ZpbGU9bTY4
ay94bS1seW54LmgKCQl4bWFrZV9maWxlPXgtbHlueAoJCXRtYWtlX2ZpbGU9bTY4ay90LWx5bngK
CQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJOzsKCW02
OGsqLSotbmV0YnNkKikKCQl0bV9maWxlPW02OGsvbmV0YnNkLmgKCQl0bWFrZV9maWxlPXQtbmV0
YnNkCgkJZmxvYXRfZm9ybWF0PW02OGsKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCW02OGsqLSot
b3BlbmJzZCopCgkJZmxvYXRfZm9ybWF0PW02OGsKCQkjIHdlIG5lZWQgY29sbGVjdDIgdW50aWwg
b3VyIGJ1ZyBpcyBmaXhlZC4uLgoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJbTY4ay0qLXN5c3Yz
KikJCQkjIE1vdG9yb2xhIG02OGsncyBydW5uaW5nIHN5c3RlbSBWLjMKCQl4bV9maWxlPSJ4bS1h
bGxvY2EuaCAke3htX2ZpbGV9IgoJCXhtX2RlZmluZXM9VVNHCgkJeG1ha2VfZmlsZT1tNjhrL3gt
bTY4a3YKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCQlleHRyYV9oZWFkZXJz
PW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJOzsKCW02OGstKi1zeXN2NCopCQkJ
IyBNb3Rvcm9sYSBtNjhrJ3MgcnVubmluZyBzeXN0ZW0gVi40CgkJdG1fZmlsZT1tNjhrL202OGt2
NC5oCgkJeG1fZmlsZT0ieG0tYWxsb2NhLmggJHt4bV9maWxlfSIKCQl4bV9kZWZpbmVzPVVTRwoJ
CXRtYWtlX2ZpbGU9dC1zdnI0CgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0ZW5kLm8iCgkJ
ZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQlmbG9hdF9mb3JtYXQ9bTY4awoJCTs7CgltNjhr
LSotbGludXgtZ251YW91dCopCQkjIE1vdG9yb2xhIG02OGsncyBydW5uaW5nIEdOVS9MaW51eAoJ
CQkJCSMgd2l0aCBhLm91dCBmb3JtYXQKCQl4bWFrZV9maWxlPXgtbGludXgKCQl0bV9maWxlPW02
OGsvbGludXgtYW91dC5oCgkJdG1ha2VfZmlsZT0idC1saW51eC1hb3V0IG02OGsvdC1saW51eC1h
b3V0IgoJCWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJZmxvYXRfZm9ybWF0PW02OGsKCQln
bnVfbGQ9eWVzCgkJOzsKCW02OGstKi1saW51eC1nbnVsaWJjMSkJCSMgTW90b3JvbGEgbTY4aydz
IHJ1bm5pbmcgR05VL0xpbnV4CgkJCQkJIyB3aXRoIEVMRiBmb3JtYXQgdXNpbmcgdGhlCgkJCQkJ
IyBHTlUvTGludXggQyBsaWJyYXJ5IDUKCQl4bWFrZV9maWxlPXgtbGludXgKCQl0bV9maWxlPW02
OGsvbGludXguaAoJCXRtYWtlX2ZpbGU9InQtbGludXggdC1saW51eC1nbnVsaWJjMSBtNjhrL3Qt
bGludXgiCgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5kLm8gY3J0
ZW5kUy5vIgoJCWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJZmxvYXRfZm9ybWF0PW02OGsK
CQlnbnVfbGQ9eWVzCgkJOzsKCW02OGstKi1saW51eC1nbnUqKQkJIyBNb3Rvcm9sYSBtNjhrJ3Mg
cnVubmluZyBHTlUvTGludXgKCQkJCQkjIHdpdGggRUxGIGZvcm1hdCB1c2luZyBnbGliYyAyCgkJ
CQkJIyBha2EgdGhlIEdOVS9MaW51eCBDIGxpYnJhcnkgNi4KCQl4bWFrZV9maWxlPXgtbGludXgK
CQl0bV9maWxlPW02OGsvbGludXguaAoJCXRtYWtlX2ZpbGU9InQtbGludXggbTY4ay90LWxpbnV4
IgoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGJlZ2luUy5vIGNydGVuZC5vIGNydGVuZFMu
byIKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJZ251
X2xkPXllcwoJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KCQkJdGhyZWFk
X2ZpbGU9J3Bvc2l4JwoJCWZpCgkJOzsKCW02OGstKi1wc29zKikKCQl0bWFrZV9maWxlPW02OGsv
dC1tNjhrYmFyZQoJCXRtX2ZpbGU9bTY4ay9tNjhrLXBzb3MuaAoJCWV4dHJhX2hlYWRlcnM9bWF0
aC02ODg4MS5oCgkJZmxvYXRfZm9ybWF0PW02OGsKCQk7OwoJbTY4ay0qLXJ0ZW1zY29mZiopCgkJ
dG1ha2VfZmlsZT0ibTY4ay90LW02OGtiYXJlIHQtcnRlbXMiCgkJdG1fZmlsZT1tNjhrL3J0ZW1z
LmgKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJOzsK
CW02OGstKi1ydGVtc2VsZip8bTY4ay0qLXJ0ZW1zKikKCQl0bWFrZV9maWxlPSJtNjhrL3QtbTY4
a2JhcmUgdC1ydGVtcyBtNjhrL3QtY3J0c3R1ZmYiCgkJdG1fZmlsZT1tNjhrL3J0ZW1zZWxmLmgK
CQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJOzsKCW04
OGstZGctZGd1eCopCgkJY2FzZSAkbWFjaGluZSBpbgoJCSAgbTg4ay1kZy1kZ3V4YmNzKikKCQkg
ICAgdG1fZmlsZT1tODhrL2RndXhiY3MuaAoJCSAgICB0bWFrZV9maWxlPW04OGsvdC1kZ3V4YmNz
CgkJICAgIDs7CgkJICAqKQoJCSAgICB0bV9maWxlPW04OGsvZGd1eC5oCgkJICAgIHRtYWtlX2Zp
bGU9bTg4ay90LWRndXgKCQkgICAgOzsKCQllc2FjCgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8g
YmNzY3J0YmVnaW4ubyBjcnRlbmQubyBtODhrZGd1eC5sZCIKCQl4bWFrZV9maWxlPW04OGsveC1k
Z3V4CgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtYWtlX2ZpbGU9bTg4ay90LWRn
dXgtZ2FzCgkJZmkKCQk7OwoJbTg4ay1kb2xwaGluLXN5c3YzKikKCQl0bV9maWxlPW04OGsvZG9s
cGguaAoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIgoJCXhtX2ZpbGU9Im04OGsv
eG0tc3lzdjMuaCAke3htX2ZpbGV9IgoJCXhtYWtlX2ZpbGU9bTg4ay94LWRvbHBoCgkJaWYgdGVz
dCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtYWtlX2ZpbGU9bTg4ay90LW04OGstZ2FzCgkJZmkK
CQk7OwoJbTg4ay10ZWt0cm9uaXgtc3lzdjMpCgkJdG1fZmlsZT1tODhrL3Rla1hEODguaAoJCWV4
dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIgoJCXhtX2ZpbGU9Im04OGsveG0tc3lzdjMu
aCAke3htX2ZpbGV9IgoJCXhtYWtlX2ZpbGU9bTg4ay94LXRla1hEODgKCQlpZiB0ZXN0IHgkZ2Fz
ID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT1tODhrL3QtbTg4ay1nYXMKCQlmaQoJCTs7Cglt
ODhrLSotYW91dCopCgkJdG1fZmlsZT1tODhrL204OGstYW91dC5oCgkJOzsKCW04OGstKi1jb2Zm
KikKCQl0bV9maWxlPW04OGsvbTg4ay1jb2ZmLmgKCQl0bWFrZV9maWxlPW04OGsvdC1idWcKCQk7
OwoJbTg4ay0qLWx1bmEqKQoJCXRtX2ZpbGU9bTg4ay9sdW5hLmgKCQlleHRyYV9wYXJ0cz0iY3J0
YmVnaW4ubyBjcnRlbmQubyIKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2Vf
ZmlsZT1tODhrL3QtbHVuYS1nYXMKCQllbHNlCgkJCXRtYWtlX2ZpbGU9bTg4ay90LWx1bmEKCQlm
aQoJCTs7CgltODhrLSotb3BlbmJzZCopCgkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBtODhr
L3QtbHVuYS1nYXMiCgkJOzsKCW04OGstKi1zeXN2MyopCgkJdG1fZmlsZT1tODhrL3N5c3YzLmgK
CQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCQl4bV9maWxlPSJtODhrL3htLXN5
c3YzLmggJHt4bV9maWxlfSIKCQl4bWFrZV9maWxlPW04OGsveC1zeXN2MwoJCWlmIHRlc3QgeCRn
YXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW04OGsvdC1tODhrLWdhcwoJCWZpCgkJOzsK
CW04OGstKi1zeXN2NCopCgkJdG1fZmlsZT1tODhrL3N5c3Y0LmgKCQlleHRyYV9wYXJ0cz0iY3J0
YmVnaW4ubyBjcnRlbmQubyIKCQl4bWFrZV9maWxlPW04OGsveC1zeXN2NAoJCXRtYWtlX2ZpbGU9
bTg4ay90LXN5c3Y0CgkJOzsKCW1jb3JlLSotZWxmKQoJCXRtX2ZpbGU9bWNvcmUvbWNvcmUtZWxm
LmgKCQl0bWFrZV9maWxlPW1jb3JlL3QtbWNvcmUKCQk7OwoJbWNvcmUtKi1wZSopCgkJdG1fZmls
ZT1tY29yZS9tY29yZS1wZS5oCgkJdG1ha2VfZmlsZT1tY29yZS90LW1jb3JlLXBlCgkJOzsKCW1p
cHMtc2dpLWlyaXg2KikJCSMgU0dJIFN5c3RlbSBWLjQuLCBJUklYIDYKCQlpZiB0ZXN0ICJ4JGdu
dV9sZCIgPSB4eWVzCgkJdGhlbgoJCQl0bV9maWxlPSJtaXBzL2lyaXM2LmggbWlwcy9pcmlzNmds
ZC5oIgoJCWVsc2UKCQkJdG1fZmlsZT1taXBzL2lyaXM2LmgKCQlmaQoJCXRtYWtlX2ZpbGU9bWlw
cy90LWlyaXM2CgkJeG1fZmlsZT1taXBzL3htLWlyaXM2LmgKCQl4bWFrZV9maWxlPW1pcHMveC1p
cmlzNgojIAkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhlbgojCQkJdGhyZWFk
X2ZpbGU9J2lyaXgnCiMJCWZpCgkJOzsKCW1pcHMtd3JzLXZ4d29ya3MpCgkJdG1fZmlsZT0ibWlw
cy9lbGYuaCBtaXBzL3Z4d29ya3MuaCIKIAkJdG1ha2VfZmlsZT1taXBzL3QtZWNvZmYKIAkJZ2Fz
PXllcwoJCWdudV9sZD15ZXMKIAkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0ZW5kLm8iCgkJ
dGhyZWFkX2ZpbGU9J3Z4d29ya3MnCiAJCTs7CgltaXBzLXNnaS1pcml4NWNyb3NzNjQpCQkjIEly
aXg1IGhvc3QsIElyaXggNiB0YXJnZXQsIGNyb3NzNjQKCQl0bV9maWxlPSJtaXBzL2lyaXM2Lmgg
bWlwcy9jcm9zczY0LmgiCgkJeG1fZGVmaW5lcz1VU0cKCQl4bV9maWxlPSJtaXBzL3htLWlyaXM1
LmgiCgkJeG1ha2VfZmlsZT1taXBzL3gtaXJpcwoJCXRtYWtlX2ZpbGU9bWlwcy90LWNyb3NzNjQK
CQkjIFNlZSBjb21tZW50IGluIG1pcHMvaXJpc1s1Nl0uaCBmaWxlcy4KCQl1c2VfY29sbGVjdDI9
eWVzCiMgCQlpZiB0ZXN0IHgkZW5hYmxlX3RocmVhZHMgPSB4eWVzOyB0aGVuCiMJCQl0aHJlYWRf
ZmlsZT0naXJpeCcKIwkJZmkKCQk7OwogICAgICAgIG1pcHMtc25pLXN5c3Y0KQoJCWlmIHRlc3Qg
eCRnYXMgPSB4eWVzCgkJdGhlbgoJCQlpZiB0ZXN0IHgkc3RhYnMgPSB4eWVzCgkJCXRoZW4KCQkJ
CXRtX2ZpbGU9bWlwcy9pcmlzNWdkYi5oCgkJCWVsc2UKCQkJCXRtX2ZpbGU9Im1pcHMvc25pLXN2
cjQuaCBtaXBzL3NuaS1nYXMuaCIKCQkJZmkKCQllbHNlCgkJCXRtX2ZpbGU9bWlwcy9zbmktc3Zy
NC5oCgkJZmkKCQl4bV9kZWZpbmVzPVVTRwogICAgICAgICAgICAgICAgeG1ha2VfZmlsZT1taXBz
L3gtc25pLXN2cjQKICAgICAgICAgICAgICAgIHRtYWtlX2ZpbGU9bWlwcy90LW1pcHMtZ2FzCiAg
ICAgICAgICAgICAgICBpZiB0ZXN0IHgkZ251X2xkICE9IHh5ZXMKICAgICAgICAgICAgICAgIHRo
ZW4KICAgICAgICAgICAgICAgICAgICAgICAgdXNlX2NvbGxlY3QyPXllcwogICAgICAgICAgICAg
ICAgZmkKICAgICAgICAgICAgICAgIDs7CgltaXBzLXNnaS1pcml4NSopCQkjIFNHSSBTeXN0ZW0g
Vi40LiwgSVJJWCA1CgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9Im1p
cHMvaXJpczUuaCBtaXBzL2lyaXM1Z2FzLmgiCgkJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXMKCQkJ
dGhlbgoJCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQkJZmkKCQllbHNlCgkJCXRtX2Zp
bGU9bWlwcy9pcmlzNS5oCgkJZmkKCQl4bV9kZWZpbmVzPVVTRwoJCXhtX2ZpbGU9Im1pcHMveG0t
aXJpczUuaCIKCQl4bWFrZV9maWxlPW1pcHMveC1pcmlzCgkJIyBtaXBzLXRmaWxlIGRvZXNuJ3Qg
d29yayB5ZXQKCQl0bWFrZV9maWxlPW1pcHMvdC1taXBzLWdhcwoJCSMgU2VlIGNvbW1lbnQgaW4g
bWlwcy9pcmlzNS5oIGZpbGUuCgkJdXNlX2NvbGxlY3QyPXllcwojIAkJaWYgdGVzdCB4JGVuYWJs
ZV90aHJlYWRzID0geHllczsgdGhlbgojCQkJdGhyZWFkX2ZpbGU9J2lyaXgnCiMJCWZpCgkJOzsK
CW1pcHMtc2dpLWlyaXg0bG9zZXIqKQkJIyBNb3N0bHkgbGlrZSBhIE1JUFMuCgkJdG1fZmlsZT0i
bWlwcy9pcmlzNGxvc2VyLmggbWlwcy9pcmlzMy5oICR7dG1fZmlsZX0gbWlwcy9pcmlzNC5oIgoJ
CWlmIHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYngu
aCIKCQlmaQoJCXhtX2RlZmluZXM9VVNHCgkJeG1ha2VfZmlsZT1taXBzL3gtaXJpcwoJCWlmIHRl
c3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW1pcHMvdC1taXBzLWdhcwoJCWVs
c2UKCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlpZiB0ZXN0
IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQojIAkJaWYg
dGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhlbgojCQkJdGhyZWFkX2ZpbGU9J2lyaXgn
CiMJCWZpCgkJOzsKCW1pcHMtc2dpLWlyaXg0KikJCSMgTW9zdGx5IGxpa2UgYSBNSVBTLgoJCXRt
X2ZpbGU9Im1pcHMvaXJpczMuaCAke3RtX2ZpbGV9IG1pcHMvaXJpczQuaCIKCQlpZiB0ZXN0IHgk
c3RhYnMgPSB4eWVzOyB0aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4LmgiCgkJZmkKCQl4
bV9kZWZpbmVzPVVTRwoJCXhtYWtlX2ZpbGU9bWlwcy94LWlyaXMKCQlpZiB0ZXN0IHgkZ2FzID0g
eHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT1taXBzL3QtbWlwcy1nYXMKCQllbHNlCgkJCWV4dHJh
X3Bhc3Nlcz0ibWlwcy10ZmlsZSBtaXBzLXRkdW1wIgoJCWZpCgkJaWYgdGVzdCB4JGdudV9sZCAh
PSB4eWVzCgkJdGhlbgoJCQl1c2VfY29sbGVjdDI9eWVzCgkJZmkKIyAJCWlmIHRlc3QgeCRlbmFi
bGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KIwkJCXRocmVhZF9maWxlPSdpcml4JwojCQlmaQoJCTs7
CgltaXBzLXNnaS0qKQkJCSMgTW9zdGx5IGxpa2UgYSBNSVBTLgoJCXRtX2ZpbGU9Im1pcHMvaXJp
czMuaCAke3RtX2ZpbGV9IgoJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmls
ZT0iJHt0bV9maWxlfSBkYnguaCIKCQlmaQoJCXhtX2RlZmluZXM9VVNHCgkJeG1ha2VfZmlsZT1t
aXBzL3gtaXJpczMKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT1t
aXBzL3QtbWlwcy1nYXMKCQllbHNlCgkJCWV4dHJhX3Bhc3Nlcz0ibWlwcy10ZmlsZSBtaXBzLXRk
dW1wIgoJCWZpCgkJaWYgdGVzdCB4JGdudV9sZCAhPSB4eWVzCgkJdGhlbgoJCQl1c2VfY29sbGVj
dDI9eWVzCgkJZmkKCQk7OwoJbWlwcy1kZWMtb3Nmcm9zZSopCQkjIERlY3N0YXRpb24gcnVubmlu
ZyBPU0YvMSByZWZlcmVuY2UgcG9ydCB3aXRoIE9TRi9yb3NlLgoJCXRtX2ZpbGU9Im1pcHMvb3Nm
cm9zZS5oICR7dG1fZmlsZX0iCgkJeG1ha2VfZmlsZT1taXBzL3gtb3Nmcm9zZQoJCXRtYWtlX2Zp
bGU9bWlwcy90LW9zZnJvc2UKCQlleHRyYV9vYmpzPWhhbGZwaWMubwoJCXVzZV9jb2xsZWN0Mj15
ZXMKCQk7OwoJbWlwcy1kZWMtb3NmKikJCQkjIERlY3N0YXRpb24gcnVubmluZyBPU0YvMSBhcyBz
aGlwcGVkIGJ5IERJR0lUQUwKCQl0bV9maWxlPW1pcHMvZGVjLW9zZjEuaAoJCWlmIHRlc3QgeCRz
dGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlmaQoJCXht
YWtlX2ZpbGU9bWlwcy94LWRlYy1vc2YxCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJ
CXRtYWtlX2ZpbGU9bWlwcy90LW1pcHMtZ2FzCgkJZWxzZQoJCQl0bWFrZV9maWxlPW1pcHMvdC11
bHRyaXgKCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlpZiB0
ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJCTs7
CgltaXBzLWRlYy1ic2QqKSAgICAgICAgICAgICAgICAgICMgRGVjc3RhdGlvbiBydW5uaW5nIDQu
NCBCU0QKICAgICAgICAgICAgICB0bV9maWxlPW1pcHMvZGVjLWJzZC5oCgkgICAgICBpZiB0ZXN0
IHgkZ2FzID0geHllcwoJICAgICAgdGhlbgoJCSAgIAl0bWFrZV9maWxlPW1pcHMvdC1taXBzLWdh
cwoJICAgICAgZWxzZQoJCQl0bWFrZV9maWxlPW1pcHMvdC11bHRyaXgKCQkJZXh0cmFfcGFzc2Vz
PSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkgICAgICBmaQoJICAgICAgaWYgdGVzdCB4JGdudV9s
ZCAhPSB4eWVzCgkgICAgICB0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCSAgICAgIGZpCgkgICAg
ICA7OwoJbWlwc2VsLSotbmV0YnNkKiB8IG1pcHMtZGVjLW5ldGJzZCopICAgICMgRGVjc3RhdGlv
biBydW5uaW5nIE5ldEJTRAoJCXRtX2ZpbGU9bWlwcy9uZXRic2QuaAoJCSMgT24gTmV0QlNELCB0
aGUgaGVhZGVycyBhcmUgYWxyZWFkeSBva2F5LCBleGNlcHQgZm9yIG1hdGguaC4KCQl0bWFrZV9m
aWxlPXQtbmV0YnNkCgkJOzsKICAgICAgIG1pcHMqLSotbGludXgqKSAgICAgICAgICAgICAgICAg
ICAgICAgICAjIExpbnV4IE1JUFMsIGVpdGhlciBlbmRpYW4uCgkJeG1ha2VfZmlsZT14LWxpbnV4
CiAgICAgICAgICAgICAgIGNhc2UgJG1hY2hpbmUgaW4KICAgICAgICAgICAgICAgICAgICAgICBt
aXBzZWwtKikgIHRtX2ZpbGU9Im1pcHMvZWxmbC5oIG1pcHMvbGludXguaCIgOzsKICAgICAgICAg
ICAgICAgICAgICAgICAqKSAgICAgICAgIHRtX2ZpbGU9Im1pcHMvZWxmLmggbWlwcy9saW51eC5o
IiA7OwogICAgICAgICAgICAgICBlc2FjCgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0YmVn
aW5TLm8gY3J0ZW5kLm8gY3J0ZW5kUy5vIgoJCWdudV9sZD15ZXMKCQlnYXM9eWVzCiAJCWlmIHRl
c3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KIAkJCXRocmVhZF9maWxlPSdwb3NpeCcK
IAkJZmkKCQk7OwoJbWlwcyplbC0qLW9wZW5ic2QqKQkjIG1pcHMgbGl0dGxlIGVuZGlhbgoJCXRh
cmdldF9jcHVfZGVmYXVsdD0iTUFTS19HQVN8TUFTS19BQklDQUxMUyIKCQk7OwoJbWlwcyotKi1v
cGVuYnNkKikJCSMgbWlwcyBiaWcgZW5kaWFuCgkJdGFyZ2V0X2NwdV9kZWZhdWx0PSJNQVNLX0dB
U3xNQVNLX0FCSUNBTExTIgoJCXRtX2ZpbGU9Im1pcHMvb3BlbmJzZC1iZS5oICR7dG1fZmlsZX0i
CgkJOzsKCW1pcHMtc29ueS1ic2QqIHwgbWlwcy1zb255LW5ld3NvcyopCSMgU29ueSBORVdTIDM2
MDAgb3IgcmlzYy9uZXdzLgoJCXRtX2ZpbGU9Im1pcHMvbmV3czQuaCAke3RtX2ZpbGV9IgoJCWlm
IHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIK
CQlmaQoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW1pcHMvdC1t
aXBzLWdhcwoJCWVsc2UKCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJ
ZmkKCQlpZiB0ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMK
CQlmaQoJCXhtYWtlX2ZpbGU9bWlwcy94LXNvbnkKCQk7OwoJbWlwcy1zb255LXN5c3YqKQkJIyBT
b255IE5FV1MgMzgwMCB3aXRoIE5FV1NPUzUuMC4KCQkJCQkjIFRoYXQgaXMgYmFzZWQgb24gc3Zy
NC4KCQkjIHQtc3ZyNCBpcyBub3QgcmlnaHQgYmVjYXVzZSB0aGlzIHN5c3RlbSBkb2Vzbid0IHVz
ZSBFTEYuCgkJdG1fZmlsZT0ibWlwcy9uZXdzNS5oICR7dG1fZmlsZX0iCgkJaWYgdGVzdCB4JHN0
YWJzID0geHllczsgdGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9IGRieC5oIgoJCWZpCgkJeG1f
ZGVmaW5lcz1VU0cKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT1t
aXBzL3QtbWlwcy1nYXMKCQllbHNlCgkJCWV4dHJhX3Bhc3Nlcz0ibWlwcy10ZmlsZSBtaXBzLXRk
dW1wIgoJCWZpCgkJaWYgdGVzdCB4JGdudV9sZCAhPSB4eWVzCgkJdGhlbgoJCQl1c2VfY29sbGVj
dDI9eWVzCgkJZmkKCQk7OwoJbWlwcy10YW5kZW0tc3lzdjQqKQkJIyBUYW5kZW0gUzIgcnVubmlu
ZyBOb25TdG9wIFVYCgkJdG1fZmlsZT0ibWlwcy9zdnI0LTUuaCBtaXBzL3N2cjQtdC5oIgoJCWlm
IHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIK
CQlmaQoJCXhtX2RlZmluZXM9VVNHCgkJeG1ha2VfZmlsZT1taXBzL3gtc3lzdgoJCWlmIHRlc3Qg
eCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW1pcHMvdC1taXBzLWdhcwoJCQlleHRy
YV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCQllbHNlCgkJCXRtYWtlX2ZpbGU9bWlwcy90
LW1pcHMKCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlpZiB0
ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJCTs7
CgltaXBzLSotdWx0cml4KiB8IG1pcHMtZGVjLW1hY2gzKQkjIERlY3N0YXRpb24uCgkJdG1fZmls
ZT0ibWlwcy91bHRyaXguaCAke3RtX2ZpbGV9IgoJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRo
ZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlmaQoJCXhtYWtlX2ZpbGU9bWlwcy94
LXVsdHJpeAoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW1pcHMv
dC1taXBzLWdhcwoJCWVsc2UKCQkJdG1ha2VfZmlsZT1taXBzL3QtdWx0cml4CgkJCWV4dHJhX3Bh
c3Nlcz0ibWlwcy10ZmlsZSBtaXBzLXRkdW1wIgoJCWZpCgkJaWYgdGVzdCB4JGdudV9sZCAhPSB4
eWVzCgkJdGhlbgoJCQl1c2VfY29sbGVjdDI9eWVzCgkJZmkKCSAgICAgICAgOzsKY2hhbmdlcXVv
dGUoLClkbmwKCW1pcHMtKi1yaXNjb3NbNTY3ODldYnNkKikKY2hhbmdlcXVvdGUoWyxdKWRubAoJ
CXRtX2ZpbGU9bWlwcy9ic2QtNS5oCSMgTUlQUyBCU0QgNC4zLCBSSVNDLU9TIDUuMAoJCWlmIHRl
c3QgeCRzdGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlm
aQoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW1pcHMvdC1ic2Qt
Z2FzCgkJZWxzZQoJCQl0bWFrZV9maWxlPW1pcHMvdC1ic2QKCQkJZXh0cmFfcGFzc2VzPSJtaXBz
LXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlpZiB0ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVu
CgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJICAgICAgICA7OwpjaGFuZ2VxdW90ZSgsKWRubAoJ
bWlwcy0qLWJzZCogfCBtaXBzLSotcmlzY29zYnNkKiB8IG1pcHMtKi1yaXNjb3NbMTIzNF1ic2Qq
KQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT0ibWlwcy9ic2QtNC5oICR7dG1fZmlsZX0i
ICMgTUlQUyBCU0QgNC4zLCBSSVNDLU9TIDQuMAoJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRo
ZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlmaQoJCWlmIHRlc3QgeCRnYXMgPSB4
eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW1pcHMvdC1ic2QtZ2FzCgkJZWxzZQoJCQl0bWFrZV9m
aWxlPW1pcHMvdC1ic2QKCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJ
ZmkKCQlpZiB0ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMK
CQlmaQoJICAgICAgICA7OwpjaGFuZ2VxdW90ZSgsKWRubAoJbWlwcy0qLXJpc2Nvc1s1Njc4OV1z
eXN2NCopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl0bV9maWxlPW1pcHMvc3ZyNC01LmgJIyBNSVBT
IFN5c3RlbSBWLjQuLCBSSVNDLU9TIDUuMAoJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRoZW4K
CQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlmaQoJCXhtYWtlX2ZpbGU9bWlwcy94LXN5
c3YKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT1taXBzL3Qtc3Zy
NC1nYXMKCQllbHNlCgkJCXRtYWtlX2ZpbGU9bWlwcy90LXN2cjQKCQkJZXh0cmFfcGFzc2VzPSJt
aXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlpZiB0ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0
aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCgltaXBz
LSotc3lzdjQqIHwgbWlwcy0qLXJpc2Nvc1sxMjM0XXN5c3Y0KiB8IG1pcHMtKi1yaXNjb3NzeXN2
NCopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl0bV9maWxlPSJtaXBzL3N2cjQtNC5oICR7dG1fZmls
ZX0iCgkJaWYgdGVzdCB4JHN0YWJzID0geHllczsgdGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9
IGRieC5oIgoJCWZpCgkJeG1fZGVmaW5lcz1VU0cKCQl4bWFrZV9maWxlPW1pcHMveC1zeXN2CgkJ
aWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtYWtlX2ZpbGU9bWlwcy90LXN2cjQtZ2Fz
CgkJZWxzZQoJCQl0bWFrZV9maWxlPW1pcHMvdC1zdnI0CgkJCWV4dHJhX3Bhc3Nlcz0ibWlwcy10
ZmlsZSBtaXBzLXRkdW1wIgoJCWZpCgkJaWYgdGVzdCB4JGdudV9sZCAhPSB4eWVzCgkJdGhlbgoJ
CQl1c2VfY29sbGVjdDI9eWVzCgkJZmkKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJbWlwcy0qLXJp
c2Nvc1s1Njc4OV1zeXN2KikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCXRtX2ZpbGU9bWlwcy9zdnIz
LTUuaAkjIE1JUFMgU3lzdGVtIFYuMywgUklTQy1PUyA1LjAKCQlpZiB0ZXN0IHgkc3RhYnMgPSB4
eWVzOyB0aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4LmgiCgkJZmkKCQl4bV9kZWZpbmVz
PVVTRwoJCXhtYWtlX2ZpbGU9bWlwcy94LXN5c3YKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRo
ZW4KCQkJdG1ha2VfZmlsZT1taXBzL3Qtc3ZyMy1nYXMKCQllbHNlCgkJCXRtYWtlX2ZpbGU9bWlw
cy90LXN2cjMKCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlp
ZiB0ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJ
CTs7CgltaXBzLSotc3lzdiogfCBtaXBzLSotcmlzY29zKnN5c3YqKQoJCXRtX2ZpbGU9Im1pcHMv
c3ZyMy00LmggJHt0bV9maWxlfSIKCQlpZiB0ZXN0IHgkc3RhYnMgPSB4eWVzOyB0aGVuCgkJCXRt
X2ZpbGU9IiR7dG1fZmlsZX0gZGJ4LmgiCgkJZmkKCQl4bV9kZWZpbmVzPVVTRwoJCXhtYWtlX2Zp
bGU9bWlwcy94LXN5c3YKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmls
ZT1taXBzL3Qtc3ZyMy1nYXMKCQllbHNlCgkJCXRtYWtlX2ZpbGU9bWlwcy90LXN2cjMKCQkJZXh0
cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlpZiB0ZXN0IHgkZ251X2xk
ICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJCTs7CmNoYW5nZXF1b3Rl
KCwpZG5sCgltaXBzLSotcmlzY29zWzU2Nzg5XSopCQkjIERlZmF1bHQgTUlQUyBSSVNDLU9TIDUu
MC4KY2hhbmdlcXVvdGUoWyxdKWRubAoJCXRtX2ZpbGU9bWlwcy9taXBzLTUuaAoJCWlmIHRlc3Qg
eCRzdGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlmaQoJ
CWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW1pcHMvdC1taXBzLWdh
cwoJCWVsc2UKCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlp
ZiB0ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJ
CTs7CgltaXBzLSotZ251KikKCQk7OwoJbWlwc2VsLSotZWNvZmYqKQoJCXRtX2ZpbGU9bWlwcy9l
Y29mZmwuaAoJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9m
aWxlfSBkYnguaCIKCQlmaQoJCXRtYWtlX2ZpbGU9bWlwcy90LWVjb2ZmCgkJOzsKCW1pcHMtKi1l
Y29mZiopCgkJdG1fZmlsZT0iZ29mYXN0LmggbWlwcy9lY29mZi5oIgoJCWlmIHRlc3QgeCRzdGFi
cyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlmaQoJCXRtYWtl
X2ZpbGU9bWlwcy90LWVjb2ZmCgkJOzsKCW1pcHNlbC0qLWVsZiopCgkJdG1fZmlsZT0ibWlwcy9l
bGZsLmgiCgkJdG1ha2VfZmlsZT1taXBzL3QtZWxmCgkJOzsKCW1pcHMtKi1lbGYqKQoJCXRtX2Zp
bGU9Im1pcHMvZWxmLmgiCgkJdG1ha2VfZmlsZT1taXBzL3QtZWxmCgkJOzsKCW1pcHM2NGVsLSot
ZWxmKikKCQl0bV9maWxlPSJtaXBzL2VsZmw2NC5oIgoJCXRtYWtlX2ZpbGU9bWlwcy90LWVsZgoJ
CTs7CgltaXBzNjRvcmlvbmVsLSotZWxmKikKCQl0bV9maWxlPSJtaXBzL2VsZm9yaW9uLmggbWlw
cy9lbGZsNjQuaCIKCQl0bWFrZV9maWxlPW1pcHMvdC1lbGYKCQk7OwoJbWlwczY0LSotZWxmKikK
CQl0bV9maWxlPSJtaXBzL2VsZjY0LmgiCgkJdG1ha2VfZmlsZT1taXBzL3QtZWxmCgkJOzsKCW1p
cHM2NG9yaW9uLSotZWxmKikKCQl0bV9maWxlPSJtaXBzL2VsZm9yaW9uLmggbWlwcy9lbGY2NC5o
IgoJCXRtYWtlX2ZpbGU9bWlwcy90LWVsZgoJCTs7CgltaXBzNjRvcmlvbi0qLXJ0ZW1zKikKCQl0
bV9maWxlPSJtaXBzL2VsZm9yaW9uLmggbWlwcy9lbGY2NC5oIG1pcHMvcnRlbXM2NC5oIgoJCXRt
YWtlX2ZpbGU9Im1pcHMvdC1lbGYgdC1ydGVtcyIKCQk7OwoJbWlwc3R4MzllbC0qLWVsZiopCgkJ
dG1fZmlsZT0ibWlwcy9yMzkwMC5oIG1pcHMvZWxmbC5oIG1pcHMvYWJpNjQuaCIKCQl0bWFrZV9m
aWxlPW1pcHMvdC1yMzkwMAoJCTs7CgltaXBzdHgzOS0qLWVsZiopCgkJdG1fZmlsZT0ibWlwcy9y
MzkwMC5oIG1pcHMvZWxmLmggbWlwcy9hYmk2NC5oIgoJCXRtYWtlX2ZpbGU9bWlwcy90LXIzOTAw
CgkJOzsKCW1pcHMtKi0qKQkJCQkjIERlZmF1bHQgTUlQUyBSSVNDLU9TIDQuMC4KCQlpZiB0ZXN0
IHgkc3RhYnMgPSB4eWVzOyB0aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4LmgiCgkJZmkK
CQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT1taXBzL3QtbWlwcy1n
YXMKCQllbHNlCgkJCWV4dHJhX3Bhc3Nlcz0ibWlwcy10ZmlsZSBtaXBzLXRkdW1wIgoJCWZpCgkJ
aWYgdGVzdCB4JGdudV9sZCAhPSB4eWVzCgkJdGhlbgoJCQl1c2VfY29sbGVjdDI9eWVzCgkJZmkK
CQk7OwoJbW4xMDIwMC0qLSopCgkJZmxvYXRfZm9ybWF0PWkzMgoJCWNwdV90eXBlPW1uMTAyMDAK
CQl0bV9maWxlPSJtbjEwMjAwL21uMTAyMDAuaCIKCQlpZiB0ZXN0IHgkc3RhYnMgPSB4eWVzCgkJ
dGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9IGRieC5oIgoJCWZpCgkJdXNlX2NvbGxlY3QyPW5v
CgkJOzsKCW1uMTAzMDAtKi0qKQoJCWNwdV90eXBlPW1uMTAzMDAKCQl0bV9maWxlPSJtbjEwMzAw
L21uMTAzMDAuaCIKCQlpZiB0ZXN0IHgkc3RhYnMgPSB4eWVzCgkJdGhlbgoJCQl0bV9maWxlPSIk
e3RtX2ZpbGV9IGRieC5oIgoJCWZpCgkJdXNlX2NvbGxlY3QyPW5vCgkJOzsKCW5zMzJrLWVuY29y
ZS1ic2QqKQoJCXRtX2ZpbGU9bnMzMmsvZW5jb3JlLmgKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsK
CW5zMzJrLXNlcXVlbnQtYnNkKikKCQl0bV9maWxlPW5zMzJrL3NlcXVlbnQuaAoJCXVzZV9jb2xs
ZWN0Mj15ZXMKCQk7OwoJbnMzMmstdGVrNjEwMC1ic2QqKQoJCXRtX2ZpbGU9bnMzMmsvdGVrNjEw
MC5oCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CgluczMyay10ZWs2MjAwLWJzZCopCgkJdG1fZmls
ZT1uczMyay90ZWs2MjAwLmgKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKIyBUaGlzIGhhcyBub3Qg
YmVlbiB1cGRhdGVkIHRvIEdDQyAyLgojCW5zMzJrLW5zLWdlbml4KikKIwkJeG1fZGVmaW5lcz1V
U0cKIwkJeG1ha2VfZmlsZT1uczMyay94LWdlbml4CiMJCXRtX2ZpbGU9bnMzMmsvZ2VuaXguaAoj
CQl1c2VfY29sbGVjdDI9eWVzCiMJCTs7CgluczMyay1tZXJsaW4tKikKCQl0bV9maWxlPW5zMzJr
L21lcmxpbi5oCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CgluczMyay1wYzUzMi1tYWNoKikKCQl0
bV9maWxlPW5zMzJrL3BjNTMyLW1hY2guaAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJbnMzMmst
cGM1MzItbWluaXgqKQoJCXRtX2ZpbGU9bnMzMmsvcGM1MzItbWluLmgKCQl4bV9maWxlPSJuczMy
ay94bS1wYzUzMi1taW4uaCAke3htLWZpbGV9IgoJCXhtX2RlZmluZXM9VVNHCgkJdXNlX2NvbGxl
Y3QyPXllcwoJCTs7CgluczMyay0qLW5ldGJzZCopCgkJdG1fZmlsZT1uczMyay9uZXRic2QuaAoJ
CXhtX2ZpbGU9Im5zMzJrL3htLW5ldGJzZC5oICR7eG1fZmlsZX0iCgkJIyBPbiBOZXRCU0QsIHRo
ZSBoZWFkZXJzIGFyZSBhbHJlYWR5IG9rYXksIGV4Y2VwdCBmb3IgbWF0aC5oLgoJCXRtYWtlX2Zp
bGU9dC1uZXRic2QKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKICAgICAgICBwZHAxMS0qLWJzZCkK
CQl0bV9maWxlPSIke3RtX2ZpbGV9IHBkcDExLzJic2QuaCIKICAgICAgICAgICAgICAgIDs7CiAg
ICAgICAgcGRwMTEtKi0qKQoJCTs7CiAgICAgICAgYXZyLSotKikKCQk7OwoJbnMzMmstKi1vcGVu
YnNkKikKCQkjIE5vdGhpbmcgc3BlY2lhbAoJCTs7CiMgVGhpcyBoYXMgbm90IGJlZW4gdXBkYXRl
ZCB0byBHQ0MgMi4KIwlweXJhbWlkLSotKikKIwkJY3B1X3R5cGU9cHlyCiMJCXhtYWtlX2ZpbGU9
cHlyL3gtcHlyCiMJCXVzZV9jb2xsZWN0Mj15ZXMKIwkJOzsKCiAgCXBqKi1saW51eCopCgkJdG1f
ZmlsZT0ic3ZyNC5oIHBqL2xpbnV4LmggJHt0bV9maWxlfSIKIAkJOzsKICAJcGotKikKIAkJOzsK
ICAJcGpsLSopCgkJdG1fZmlsZT0ic3ZyNC5oIHBqL3BqbC5oICR7dG1fZmlsZX0iCiAJCTs7CgoJ
cm9tcC0qLWFvcyopCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7Cglyb21wLSotbWFjaCopCgkJeG1h
a2VfZmlsZT1yb21wL3gtbWFjaAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJcm9tcC0qLW9wZW5i
c2QqKQoJCSMgTm90aGluZyBzcGVjaWFsCgkJOzsKCXBvd2VycGMtKi1vcGVuYnNkKikKCQl0bWFr
ZV9maWxlPSIke3RtYWtlX2ZpbGV9IHJzNjAwMC90LXJzNjAwMCByczYwMDAvdC1vcGVuYnNkIgoJ
CTs7Cglwb3dlcnBjLSotYmVvcyopCgkJY3B1X3R5cGU9cnM2MDAwCgkJdG1fZmlsZT1yczYwMDAv
YmVvcy5oCgkJeG1fZmlsZT1yczYwMDAveG0tYmVvcy5oCgkJdG1ha2VfZmlsZT1yczYwMDAvdC1i
ZW9zCgkJeG1ha2VfZmlsZT1yczYwMDAveC1iZW9zCgkJOzsKCXBvd2VycGMtKi1zeXN2KiB8IHBv
d2VycGMtKi1lbGYqKQoJCXRtX2ZpbGU9cnM2MDAwL3N5c3Y0LmgKCQl4bV9maWxlPSJyczYwMDAv
eG0tc3lzdjQuaCIKCQl4bV9kZWZpbmVzPSJVU0cgUE9TSVgiCgkJZXh0cmFfaGVhZGVycz1wcGMt
YXNtLmgKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT0icnM2MDAw
L3QtcHBjb3MgcnM2MDAwL3QtcHBjY29tbSIKCQllbHNlCgkJCXRtYWtlX2ZpbGU9InJzNjAwMC90
LXBwYyByczYwMDAvdC1wcGNjb21tIgoJCWZpCgkJeG1ha2VfZmlsZT1yczYwMDAveC1zeXN2NAoJ
CTs7Cglwb3dlcnBjLSotZWFiaWFpeCopCgkJdG1fZmlsZT1yczYwMDAvZWFiaWFpeC5oCgkJdG1h
a2VfZmlsZT0icnM2MDAwL3QtcHBjZ2FzIHJzNjAwMC90LXBwY2NvbW0iCgkJZXh0cmFfaGVhZGVy
cz1wcGMtYXNtLmgKCQk7OwoJcG93ZXJwYy0qLWVhYmlzaW0qKQoJCXRtX2ZpbGU9cnM2MDAwL2Vh
YmlzaW0uaAoJCXRtYWtlX2ZpbGU9InJzNjAwMC90LXBwY2dhcyByczYwMDAvdC1wcGNjb21tIgoJ
CWV4dHJhX2hlYWRlcnM9cHBjLWFzbS5oCgkJOzsKCXBvd2VycGMtKi1lYWJpKikKCQl0bV9maWxl
PXJzNjAwMC9lYWJpLmgKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmls
ZT0icnM2MDAwL3QtcHBjZ2FzIHJzNjAwMC90LXBwY2NvbW0iCgkJZWxzZQoJCQl0bWFrZV9maWxl
PSJyczYwMDAvdC1wcGMgcnM2MDAwL3QtcHBjY29tbSIKCQlmaQoJCWV4dHJhX2hlYWRlcnM9cHBj
LWFzbS5oCgkJOzsKCXBvd2VycGMtKi1ydGVtcyopCgkJdG1fZmlsZT1yczYwMDAvcnRlbXMuaAoJ
CWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCSAgICAgdG1ha2VfZmlsZT0icnM2MDAwL3Qt
cHBjZ2FzIHQtcnRlbXMgcnM2MDAwL3QtcHBjY29tbSIKCQllbHNlCgkJICAgICB0bWFrZV9maWxl
PSJyczYwMDAvdC1wcGMgdC1ydGVtcyByczYwMDAvdC1wcGNjb21tIgoJCWZpCgkJZXh0cmFfaGVh
ZGVycz1wcGMtYXNtLmgKCQk7OwoJcG93ZXJwYy0qLWxpbnV4LWdudWxpYmMxKQoJCXRtX2ZpbGU9
cnM2MDAwL2xpbnV4LmgKCQl4bV9maWxlPXJzNjAwMC94bS1zeXN2NC5oCgkJb3V0X2ZpbGU9cnM2
MDAwL3JzNjAwMC5jCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtYWtlX2ZpbGU9
InJzNjAwMC90LXBwY29zIHQtbGludXggdC1saW51eC1nbnVsaWJjMSByczYwMDAvdC1wcGNjb21t
IgoJCWVsc2UKCQkJdG1ha2VfZmlsZT0icnM2MDAwL3QtcHBjIHQtbGludXggdC1saW51eC1nbnVs
aWJjMSByczYwMDAvdC1wcGNjb21tIgoJCWZpCgkJeG1ha2VfZmlsZT14LWxpbnV4CgkJZXh0cmFf
cGFydHM9ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5kLm8gY3J0ZW5kUy5vIgoJCWV4dHJh
X2hlYWRlcnM9cHBjLWFzbS5oCgkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhl
bgoJCQl0aHJlYWRfZmlsZT0ncG9zaXgnCgkJZmkKCQk7OwoJcG93ZXJwYy0qLWxpbnV4LWdudSop
CgkJdG1fZmlsZT1yczYwMDAvbGludXguaAoJCXhtX2ZpbGU9InJzNjAwMC94bS1zeXN2NC5oIgoJ
CXhtX2RlZmluZXM9IlVTRyAke3htX2RlZmluZXN9IgoJCW91dF9maWxlPXJzNjAwMC9yczYwMDAu
YwoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPSJyczYwMDAvdC1w
cGNvcyB0LWxpbnV4IHJzNjAwMC90LXBwY2NvbW0iCgkJZWxzZQoJCQl0bWFrZV9maWxlPSJyczYw
MDAvdC1wcGMgdC1saW51eCByczYwMDAvdC1wcGNjb21tIgoJCWZpCgkJeG1ha2VfZmlsZT14LWxp
bnV4CgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5kLm8gY3J0ZW5k
Uy5vIgoJCWV4dHJhX2hlYWRlcnM9cHBjLWFzbS5oCgkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRz
ID0geHllczsgdGhlbgoJCQl0aHJlYWRfZmlsZT0ncG9zaXgnCgkJZmkKCQk7OwogICAgICAgIHBv
d2VycGMtd3JzLXZ4d29ya3MqKQogICAgICAgICAgICAgICAgY3B1X3R5cGU9cnM2MDAwCgkJeG1f
ZmlsZT0icnM2MDAwL3htLXN5c3Y0LmgiCgkJeG1fZGVmaW5lcz0iVVNHIFBPU0lYIgogICAgICAg
ICAgICAgICAgdG1fZmlsZT1yczYwMDAvdnhwcGMuaAogICAgICAgICAgICAgICAgdG1ha2VfZmls
ZT0icnM2MDAwL3QtcHBjZ2FzIHJzNjAwMC90LXBwY2NvbW0iCgkJZXh0cmFfaGVhZGVycz1wcGMt
YXNtLmgKCQl0aHJlYWRfZmlsZT0ndnh3b3JrcycKICAgICAgICAgICAgICAgIDs7Cglwb3dlcnBj
bGUtKi1zeXN2KiB8IHBvd2VycGNsZS0qLWVsZiopCgkJdG1fZmlsZT1yczYwMDAvc3lzdjRsZS5o
CgkJeG1fZmlsZT0icnM2MDAwL3htLXN5c3Y0LmgiCgkJeG1fZGVmaW5lcz0iVVNHIFBPU0lYIgoJ
CWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPSJyczYwMDAvdC1wcGNv
cyByczYwMDAvdC1wcGNjb21tIgoJCWVsc2UKCQkJdG1ha2VfZmlsZT0icnM2MDAwL3QtcHBjIHJz
NjAwMC90LXBwY2NvbW0iCgkJZmkKCQl4bWFrZV9maWxlPXJzNjAwMC94LXN5c3Y0CgkJZXh0cmFf
aGVhZGVycz1wcGMtYXNtLmgKCQk7OwoJcG93ZXJwY2xlLSotZWFiaXNpbSopCgkJdG1fZmlsZT1y
czYwMDAvZWFiaWxlc2ltLmgKCQl0bWFrZV9maWxlPSJyczYwMDAvdC1wcGNnYXMgcnM2MDAwL3Qt
cHBjY29tbSIKCQlleHRyYV9oZWFkZXJzPXBwYy1hc20uaAoJCTs7Cglwb3dlcnBjbGUtKi1lYWJp
KikKCQl0bV9maWxlPXJzNjAwMC9lYWJpbGUuaAoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhl
bgoJCQl0bWFrZV9maWxlPSJyczYwMDAvdC1wcGNnYXMgcnM2MDAwL3QtcHBjY29tbSIKCQllbHNl
CgkJCXRtYWtlX2ZpbGU9InJzNjAwMC90LXBwYyByczYwMDAvdC1wcGNjb21tIgoJCWZpCgkJZXh0
cmFfaGVhZGVycz1wcGMtYXNtLmgKCQk7OwogICAgICAgIHBvd2VycGNsZS0qLXdpbm50KiApCiAg
ICAgICAgICAgICAgICB0bV9maWxlPXJzNjAwMC93aW4tbnQuaAogICAgICAgICAgICAgICAgdG1h
a2VfZmlsZT1yczYwMDAvdC13aW5udAojICAgICAgICAgICAgICAgZXh0cmFfb2Jqcz1wZS5vCiAJ
CWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KCQkJdGhyZWFkX2ZpbGU9J3dp
bjMyJwoJCWZpCgkJZXh0cmFfaGVhZGVycz1wcGMtYXNtLmgKCQk7OwoJcG93ZXJwY2xlLSotcGUg
fCBwb3dlcnBjbGUtKi1jeWd3aW4qKQoJCXRtX2ZpbGU9cnM2MDAwL2N5Z3dpbi5oCgkJeG1fZmls
ZT0icnM2MDAwL3htLWN5Z3dpbi5oICR7eG1fZmlsZX0iCgkJdG1ha2VfZmlsZT1yczYwMDAvdC13
aW5udAoJCXhtYWtlX2ZpbGU9cnM2MDAwL3gtY3lnd2luCiMJCWV4dHJhX29ianM9cGUubwogCQlp
ZiB0ZXN0IHgkZW5hYmxlX3RocmVhZHMgPSB4eWVzOyB0aGVuCgkJCXRocmVhZF9maWxlPSd3aW4z
MicKCQlmaQoJCWV4ZWV4dD0uZXhlCgkJZXh0cmFfaGVhZGVycz1wcGMtYXNtLmgKCQk7OwoJcG93
ZXJwY2xlLSotc29sYXJpczIqKQoJCXRtX2ZpbGU9cnM2MDAwL3NvbDIuaAoJCXhtX2ZpbGU9InJz
NjAwMC94bS1zeXN2NC5oIgoJCXhtX2RlZmluZXM9IlVTRyBQT1NJWCIKCQlpZiB0ZXN0IHgkZ2Fz
ID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT0icnM2MDAwL3QtcHBjb3MgcnM2MDAwL3QtcHBj
Y29tbSIKCQllbHNlCgkJCXRtYWtlX2ZpbGU9InJzNjAwMC90LXBwYyByczYwMDAvdC1wcGNjb21t
IgoJCWZpCgkJeG1ha2VfZmlsZT1yczYwMDAveC1zeXN2NAoJCWV4dHJhX2hlYWRlcnM9cHBjLWFz
bS5oCgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCXJzNjAwMC1pYm0tYWl4My5bMDFdKikKY2hhbmdl
cXVvdGUoWyxdKWRubAoJCXRtX2ZpbGU9cnM2MDAwL2FpeDMxLmgKCQl4bWFrZV9maWxlPXJzNjAw
MC94LWFpeDMxCgkJZmxvYXRfZm9ybWF0PW5vbmUKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKY2hh
bmdlcXVvdGUoLClkbmwKCXJzNjAwMC1pYm0tYWl4My4yLls0NTY3ODldKiB8IHBvd2VycGMtaWJt
LWFpeDMuMi5bNDU2Nzg5XSopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl0bV9maWxlPXJzNjAwMC9h
aXgzbmV3YXMuaAoJCWlmIHRlc3QgeCRob3N0ICE9IHgkdGFyZ2V0CgkJdGhlbgoJCQl0bWFrZV9m
aWxlPXJzNjAwMC90LXhuZXdhcwoJCWVsc2UKCQkJdG1ha2VfZmlsZT1yczYwMDAvdC1uZXdhcwoJ
CWZpCgkJZmxvYXRfZm9ybWF0PW5vbmUKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKY2hhbmdlcXVv
dGUoLClkbmwKCXJzNjAwMC1pYm0tYWl4NC5bMTJdKiB8IHBvd2VycGMtaWJtLWFpeDQuWzEyXSop
CmNoYW5nZXF1b3RlKFssXSlkbmwKCQl0bV9maWxlPXJzNjAwMC9haXg0MS5oCgkJaWYgdGVzdCB4
JGhvc3QgIT0geCR0YXJnZXQKCQl0aGVuCgkJCXRtYWtlX2ZpbGU9cnM2MDAwL3QteG5ld2FzCgkJ
ZWxzZQoJCQl0bWFrZV9maWxlPXJzNjAwMC90LW5ld2FzCgkJZmkKCQlpZiB0ZXN0ICIkZ251X2xk
IiA9IHllcwoJCXRoZW4KCQkJeG1ha2VfZmlsZT1yczYwMDAveC1haXg0MS1nbGQKCQllbHNlCgkJ
CXhtYWtlX2ZpbGU9cnM2MDAwL3gtYWl4NDEKCQlmaQoJCWZsb2F0X2Zvcm1hdD1ub25lCgkJdXNl
X2NvbGxlY3QyPXllcwoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglyczYwMDAtaWJtLWFpeDQuWzM0
NTY3ODldKiB8IHBvd2VycGMtaWJtLWFpeDQuWzM0NTY3ODldKikKY2hhbmdlcXVvdGUoWyxdKWRu
bAoJCXRtX2ZpbGU9cnM2MDAwL2FpeDQzLmgKCQlpZiB0ZXN0IHgkaG9zdCAhPSB4JHRhcmdldAoJ
CXRoZW4KCQkJdG1ha2VfZmlsZT1yczYwMDAvdC14YWl4NDMKCQllbHNlCgkJCXRtYWtlX2ZpbGU9
cnM2MDAwL3QtYWl4NDMKCQlmaQoJCXhtYWtlX2ZpbGU9cnM2MDAwL3gtYWl4NDMKCQlmbG9hdF9m
b3JtYXQ9bm9uZQoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJcnM2
MDAwLWlibS1haXhbNTY3ODldLiogfCBwb3dlcnBjLWlibS1haXhbNTY3ODldLiopCmNoYW5nZXF1
b3RlKFssXSlkbmwKCQl0bV9maWxlPXJzNjAwMC9haXg0My5oCgkJaWYgdGVzdCB4JGhvc3QgIT0g
eCR0YXJnZXQKCQl0aGVuCgkJCXRtYWtlX2ZpbGU9cnM2MDAwL3QteGFpeDQzCgkJZWxzZQoJCQl0
bWFrZV9maWxlPXJzNjAwMC90LWFpeDQzCgkJZmkKCQl4bWFrZV9maWxlPXJzNjAwMC94LWFpeDQz
CgkJZmxvYXRfZm9ybWF0PW5vbmUKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCXJzNjAwMC1pYm0t
YWl4KikKCQlmbG9hdF9mb3JtYXQ9bm9uZQoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJcnM2MDAw
LWJ1bGwtYm9zeCkKCQlmbG9hdF9mb3JtYXQ9bm9uZQoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJ
cnM2MDAwLSotbWFjaCopCgkJdG1fZmlsZT1yczYwMDAvbWFjaC5oCgkJeG1fZmlsZT0iJHt4bV9m
aWxlfSByczYwMDAveG0tbWFjaC5oIgoJCXhtYWtlX2ZpbGU9cnM2MDAwL3gtbWFjaAoJCXVzZV9j
b2xsZWN0Mj15ZXMKCQk7OwoJcnM2MDAwLSotbHlueG9zKikKCQl0bV9maWxlPXJzNjAwMC9seW54
LmgKCQl4bV9maWxlPXJzNjAwMC94bS1seW54LmgKCQl0bWFrZV9maWxlPXJzNjAwMC90LXJzNjAw
MAoJCXhtYWtlX2ZpbGU9cnM2MDAwL3gtbHlueAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJc2gt
Ki1lbGYqKQoJCXRtX2ZpbGU9c2gvZWxmLmgKCQlmbG9hdF9mb3JtYXQ9c2gKCQk7OwoJc2gtKi1y
dGVtc2VsZiopCgkJdG1ha2VfZmlsZT0ic2gvdC1zaCB0LXJ0ZW1zIgoJCXRtX2ZpbGU9c2gvcnRl
bXNlbGYuaAoJCWZsb2F0X2Zvcm1hdD1zaAoJCTs7CglzaC0qLXJ0ZW1zKikKCQl0bWFrZV9maWxl
PSJzaC90LXNoIHQtcnRlbXMiCgkJdG1fZmlsZT1zaC9ydGVtcy5oCgkJZmxvYXRfZm9ybWF0PXNo
CgkJOzsKCXNoLSotKikKCQlmbG9hdF9mb3JtYXQ9c2gKCQk7OwoJc3BhcmMtdHRpLSopCgkJdG1f
ZmlsZT1zcGFyYy9wYmQuaAoJCXhtX2ZpbGU9InhtLWFsbG9jYS5oICR7eG1fZmlsZX0iCgkJeG1f
ZGVmaW5lcz1VU0cKCQk7OwoJc3BhcmMtd3JzLXZ4d29ya3MqIHwgc3BhcmNsaXRlLXdycy12eHdv
cmtzKikKCQl0bV9maWxlPXNwYXJjL3Z4c3BhcmMuaAoJCXRtYWtlX2ZpbGU9c3BhcmMvdC12eHNw
YXJjCgkJdXNlX2NvbGxlY3QyPXllcwoJCXRocmVhZF9maWxlPSd2eHdvcmtzJwoJCTs7CglzcGFy
Yy0qLWFvdXQqKQoJCXRtYWtlX2ZpbGU9c3BhcmMvdC1zcGFyY2JhcmUKCQl0bV9maWxlPSJzcGFy
Yy9hb3V0LmggbGliZ2xvc3MuaCIKCQk7OwoJc3BhcmMtKi1uZXRic2QqKQoJCXRtX2ZpbGU9c3Bh
cmMvbmV0YnNkLmgKCQl0bWFrZV9maWxlPXQtbmV0YnNkCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7
CglzcGFyYy0qLW9wZW5ic2QqKQoJCSMgd2UgbmVlZCBjb2xsZWN0MiB1bnRpbCBvdXIgYnVnIGlz
IGZpeGVkLi4uCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CglzcGFyYy0qLWJzZCopCgkJdG1fZmls
ZT1zcGFyYy9ic2QuaAoJCTs7CglzcGFyYy0qLWVsZiopCgkJdG1fZmlsZT1zcGFyYy9lbGYuaAoJ
CXRtYWtlX2ZpbGU9c3BhcmMvdC1lbGYKCQlleHRyYV9wYXJ0cz0iY3J0aS5vIGNydG4ubyBjcnRi
ZWdpbi5vIGNydGVuZC5vIgoJCSNmbG9hdF9mb3JtYXQ9aTEyOAoJCWZsb2F0X2Zvcm1hdD1pNjQK
CQk7OwoJc3BhcmMtKi1saW51eC1nbnVhb3V0KikJCSMgU3BhcmMncyBydW5uaW5nIEdOVS9MaW51
eCwgYS5vdXQKCQl4bV9maWxlPSIke3htX2ZpbGV9IHNwYXJjL3htLWxpbnV4LmgiCgkJdG1fZmls
ZT1zcGFyYy9saW51eC1hb3V0LmgKCQl4bWFrZV9maWxlPXgtbGludXgKCQlnbnVfbGQ9eWVzCgkJ
OzsKCXNwYXJjLSotbGludXgtZ251bGliYzEqKQkjIFNwYXJjJ3MgcnVubmluZyBHTlUvTGludXgs
IGxpYmM1CgkJeG1fZmlsZT0iJHt4bV9maWxlfSBzcGFyYy94bS1saW51eC5oIgoJCXhtYWtlX2Zp
bGU9eC1saW51eAoJCXRtX2ZpbGU9c3BhcmMvbGludXguaAoJCXRtYWtlX2ZpbGU9InQtbGludXgg
dC1saW51eC1nbnVsaWJjMSIKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRiZWdpblMubyBj
cnRlbmQubyBjcnRlbmRTLm8iCgkJZ251X2xkPXllcwoJCWZsb2F0X2Zvcm1hdD1zcGFyYwoJCTs7
CglzcGFyYy0qLWxpbnV4LWdudSopCQkjIFNwYXJjJ3MgcnVubmluZyBHTlUvTGludXgsIGxpYmM2
CgkJeG1fZmlsZT0iJHt4bV9maWxlfSBzcGFyYy94bS1saW51eC5oIgoJCXhtYWtlX2ZpbGU9eC1s
aW51eAoJCXRtX2ZpbGU9c3BhcmMvbGludXguaAoJCXRtYWtlX2ZpbGU9InQtbGludXgiCgkJZXh0
cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5kLm8gY3J0ZW5kUy5vIgoJCWdu
dV9sZD15ZXMKIAkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhlbgogCQkJdGhy
ZWFkX2ZpbGU9J3Bvc2l4JwogCQlmaQoJCWZsb2F0X2Zvcm1hdD1zcGFyYwoJCTs7CglzcGFyYy0q
LWx5bnhvcyopCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9c3BhcmMv
bHlueC5oCgkJZWxzZQoJCQl0bV9maWxlPXNwYXJjL2x5bngtbmcuaAoJCWZpCgkJeG1fZmlsZT1z
cGFyYy94bS1seW54LmgKCQl0bWFrZV9maWxlPXNwYXJjL3Qtc3Vub3M0MQoJCXhtYWtlX2ZpbGU9
eC1seW54CgkJOzsKCXNwYXJjLSotcnRlbXNhb3V0KikKCQl0bWFrZV9maWxlPSJzcGFyYy90LXNw
YXJjYmFyZSB0LXJ0ZW1zIgoJCXRtX2ZpbGU9c3BhcmMvcnRlbXMuaAoJCTs7CglzcGFyYy0qLXJ0
ZW1zKnxzcGFyYy0qLXJ0ZW1zZWxmKikKCQl0bV9maWxlPSJzcGFyYy9ydGVtc2VsZi5oIgoJCXRt
YWtlX2ZpbGU9InNwYXJjL3QtZWxmIHQtcnRlbXMiCgkJZXh0cmFfcGFydHM9ImNydGkubyBjcnRu
Lm8gY3J0YmVnaW4ubyBjcnRlbmQubyIKCQkjZmxvYXRfZm9ybWF0PWkxMjgKCQlmbG9hdF9mb3Jt
YXQ9aTY0CgkJOzsKCXNwYXJjdjktKi1zb2xhcmlzMiopCgkJaWYgdGVzdCB4JGdudV9sZCA9IHh5
ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9c3BhcmMvc29sMi02NC5oCgkJZWxzZQoJCQl0bV9maWxlPXNw
YXJjL3NvbDItc2xkLTY0LmgKCQlmaQoJCXhtX2ZpbGU9InNwYXJjL3htLXN5c3Y0LTY0Lmggc3Bh
cmMveG0tc29sMi5oIgoJCXhtX2RlZmluZXM9IlVTRyBQT1NJWCIKCQl0bWFrZV9maWxlPSJzcGFy
Yy90LXNvbDIgc3BhcmMvdC1zb2wyLTY0IgoJCXhtYWtlX2ZpbGU9c3BhcmMveC1zeXN2NAoJCWV4
dHJhX3BhcnRzPSJjcnQxLm8gY3J0aS5vIGNydG4ubyBnY3J0MS5vIGNydGJlZ2luLm8gY3J0ZW5k
Lm8iCgkJZmxvYXRfZm9ybWF0PW5vbmUKCQlpZiB0ZXN0IHgke2VuYWJsZV90aHJlYWRzfSA9IHgg
OyB0aGVuCgkJICAgIGVuYWJsZV90aHJlYWRzPSRoYXZlX3B0aHJlYWRfaAoJCSAgICBpZiB0ZXN0
IHgke2VuYWJsZV90aHJlYWRzfSA9IHggOyB0aGVuCgkJCWVuYWJsZV90aHJlYWRzPSRoYXZlX3Ro
cmVhZF9oCgkJICAgIGZpCgkJZmkKCQlpZiB0ZXN0IHgke2VuYWJsZV90aHJlYWRzfSA9IHh5ZXMg
OyB0aGVuCgkJICAgIGlmIHRlc3QgeCR7aGF2ZV9wdGhyZWFkX2h9ID0geHllcyA7IHRoZW4KCQkJ
dGhyZWFkX2ZpbGU9J3Bvc2l4JwoJCSAgICBlbHNlCgkJCXRocmVhZF9maWxlPSdzb2xhcmlzJwoJ
CSAgICBmaQoJCWZpCgkJOzsKICAgICAgICBzcGFyYy1oYWwtc29sYXJpczIqKQogICAgICAgICAg
ICAgICAgeG1fZmlsZT0ic3BhcmMveG0tc3lzdjQuaCBzcGFyYy94bS1zb2wyLmgiCiAgICAgICAg
ICAgICAgICB4bV9kZWZpbmVzPSJVU0cgUE9TSVgiCiAgICAgICAgICAgICAgICB0bV9maWxlPSJz
cGFyYy9zb2wyLmggc3BhcmMvaGFsLmgiCiAgICAgICAgICAgICAgICB0bWFrZV9maWxlPSJzcGFy
Yy90LWhhbG9zIHNwYXJjL3Qtc29sMiIKICAgICAgICAgICAgICAgIHhtYWtlX2ZpbGU9c3BhcmMv
eC1zeXN2NAogICAgICAgICAgICAgICAgZXh0cmFfcGFydHM9ImNydDEubyBjcnRpLm8gY3J0bi5v
IGdtb24ubyBjcnRiZWdpbi5vIGNydGVuZC5vIgogICAgICAgICAgICAgICAgY2FzZSAkbWFjaGlu
ZSBpbgogICAgICAgICAgICAgICAgKi0qLXNvbGFyaXMyLlswLTRdKQogICAgICAgICAgICAgICAg
ICAgICAgICBmbG9hdF9mb3JtYXQ9aTEyOAogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAg
ICAgICopCiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0X2Zvcm1hdD1ub25lCiAgICAgICAg
ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICBlc2FjCgkJdGhyZWFkX2ZpbGU9J3Nv
bGFyaXMnCiAgICAgICAgICAgICAgICA7OwoJc3BhcmMtKi1zb2xhcmlzMiopCgkJaWYgdGVzdCB4
JGdudV9sZCA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9c3BhcmMvc29sMi5oCgkJZWxzZQoJCQl0
bV9maWxlPXNwYXJjL3NvbDItc2xkLmgKCQlmaQoJCXhtX2ZpbGU9InNwYXJjL3htLXN5c3Y0Lmgg
c3BhcmMveG0tc29sMi5oIgoJCXhtX2RlZmluZXM9IlVTRyBQT1NJWCIKCQl0bWFrZV9maWxlPXNw
YXJjL3Qtc29sMgoJCXhtYWtlX2ZpbGU9c3BhcmMveC1zeXN2NAoJCWV4dHJhX3BhcnRzPSJjcnQx
Lm8gY3J0aS5vIGNydG4ubyBnY3J0MS5vIGdtb24ubyBjcnRiZWdpbi5vIGNydGVuZC5vIgoJCWNh
c2UgJG1hY2hpbmUgaW4KY2hhbmdlcXVvdGUoLClkbmwKCQkqLSotc29sYXJpczIuWzAtNl0gfCAq
LSotc29sYXJpczIuWzAtNl0uKikgOzsKY2hhbmdlcXVvdGUoWyxdKWRubAoJCSotKi1zb2xhcmlz
MiopCgkJCWlmIHRlc3QgeCRnbnVfbGQgPSB4eWVzCgkJCXRoZW4KCQkJCXRtX2ZpbGU9c3BhcmMv
c29sMi02NC5oCgkJCWVsc2UKCQkJCXRtX2ZpbGU9c3BhcmMvc29sMi1zbGQtNjQuaAoJCQlmaQoJ
CQl0bWFrZV9maWxlPSIkdG1ha2VfZmlsZSBzcGFyYy90LXNvbDItNjQiCgkJCTs7CgkJZXNhYwoJ
CWNhc2UgJG1hY2hpbmUgaW4KY2hhbmdlcXVvdGUoLClkbmwKCQkqLSotc29sYXJpczIuWzAtNF0p
CmNoYW5nZXF1b3RlKFssXSlkbmwKCQkJZmxvYXRfZm9ybWF0PWkxMjgKCQkJOzsKCQkqKQoJCQlm
bG9hdF9mb3JtYXQ9bm9uZQoJCQk7OwoJCWVzYWMKCQlpZiB0ZXN0IHgke2VuYWJsZV90aHJlYWRz
fSA9IHg7IHRoZW4KCQkgICAgZW5hYmxlX3RocmVhZHM9JGhhdmVfcHRocmVhZF9oCgkJICAgIGlm
IHRlc3QgeCR7ZW5hYmxlX3RocmVhZHN9ID0geDsgdGhlbgoJCQllbmFibGVfdGhyZWFkcz0kaGF2
ZV90aHJlYWRfaAoJCSAgICBmaQoJCWZpCgkJaWYgdGVzdCB4JHtlbmFibGVfdGhyZWFkc30gPSB4
eWVzOyB0aGVuCgkJICAgIGlmIHRlc3QgeCR7aGF2ZV9wdGhyZWFkX2h9ID0geHllczsgdGhlbgoJ
CQl0aHJlYWRfZmlsZT0ncG9zaXgnCgkJICAgIGVsc2UKCQkJdGhyZWFkX2ZpbGU9J3NvbGFyaXMn
CgkJICAgIGZpCgkJZmkKCQk7OwoJc3BhcmMtKi1zdW5vczQuMCopCgkJdG1fZmlsZT1zcGFyYy9z
dW5vczQuaAoJCXRtYWtlX2ZpbGU9c3BhcmMvdC1zdW5vczQwCgkJdXNlX2NvbGxlY3QyPXllcwoJ
CTs7CglzcGFyYy0qLXN1bm9zNCopCgkJdG1fZmlsZT1zcGFyYy9zdW5vczQuaAoJCXRtYWtlX2Zp
bGU9c3BhcmMvdC1zdW5vczQxCgkJdXNlX2NvbGxlY3QyPXllcwoJCWlmIHRlc3QgeCRnYXMgPSB4
eWVzOyB0aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gc3BhcmMvc3VuNGdhcy5oIgoJCWZpCgkJ
OzsKCXNwYXJjLSotc3Vub3MzKikKCQl0bV9maWxlPXNwYXJjL3N1bjRvMy5oCgkJdXNlX2NvbGxl
Y3QyPXllcwoJCTs7CglzcGFyYy0qLXN5c3Y0KikKCQl0bV9maWxlPXNwYXJjL3N5c3Y0LmgKCQl4
bV9maWxlPSJzcGFyYy94bS1zeXN2NC5oIgoJCXhtX2RlZmluZXM9IlVTRyBQT1NJWCIKCQl0bWFr
ZV9maWxlPXQtc3ZyNAoJCXhtYWtlX2ZpbGU9c3BhcmMveC1zeXN2NAoJCWV4dHJhX3BhcnRzPSJj
cnRiZWdpbi5vIGNydGVuZC5vIgoJCTs7CglzcGFyYy0qLXZ4c2ltKikKCQl4bV9maWxlPSJzcGFy
Yy94bS1zeXN2NC5oIHNwYXJjL3htLXNvbDIuaCIKCQl4bV9kZWZpbmVzPSJVU0cgUE9TSVgiCgkJ
dG1fZmlsZT1zcGFyYy92eHNpbS5oCgkJdG1ha2VfZmlsZT1zcGFyYy90LXZ4c3BhcmMKCQl4bWFr
ZV9maWxlPXNwYXJjL3gtc3lzdjQKCQk7OwoJc3BhcmNsZXQtKi1hb3V0KikKCQl0bV9maWxlPSJz
cGFyYy9zcGxldC5oIGxpYmdsb3NzLmgiCgkJdG1ha2VfZmlsZT1zcGFyYy90LXNwbGV0CgkJOzsK
CXNwYXJjbGl0ZS0qLWNvZmYqKQoJCXRtX2ZpbGU9InNwYXJjL2xpdGVjb2ZmLmggbGliZ2xvc3Mu
aCIKCQl0bWFrZV9maWxlPXNwYXJjL3Qtc3BhcmNsaXRlCgkJOzsKCXNwYXJjbGl0ZS0qLWFvdXQq
KQoJCXRtX2ZpbGU9InNwYXJjL2xpdGUuaCBhb3V0b3MuaCBsaWJnbG9zcy5oIgoJCXRtYWtlX2Zp
bGU9c3BhcmMvdC1zcGFyY2xpdGUKCQk7OwoJc3BhcmNsaXRlLSotZWxmKikKCQl0bV9maWxlPSJz
cGFyYy9saXRlZWxmLmgiCgkJdG1ha2VfZmlsZT1zcGFyYy90LXNwYXJjbGl0ZQogICAgICAgICAg
ICAgICAgZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0ZW5kLm8iCgkJOzsKCXNwYXJjODZ4LSot
YW91dCopCgkJdG1fZmlsZT0ic3BhcmMvc3A4NngtYW91dC5oIGFvdXRvcy5oIGxpYmdsb3NzLmgi
CgkJdG1ha2VfZmlsZT1zcGFyYy90LXNwODZ4CgkJOzsKCXNwYXJjODZ4LSotZWxmKikJCgkJdG1f
ZmlsZT0ic3BhcmMvc3A4NngtZWxmLmgiCgkJdG1ha2VfZmlsZT1zcGFyYy90LXNwODZ4CiAgICAg
ICAgICAgICAgICBleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCQk7OwoJc3BhcmM2
NC0qLWFvdXQqKQoJCXRtYWtlX2ZpbGU9c3BhcmMvdC1zcDY0CgkJdG1fZmlsZT1zcGFyYy9zcDY0
LWFvdXQuaAoJCTs7CglzcGFyYzY0LSotZWxmKikKCQl0bWFrZV9maWxlPXNwYXJjL3Qtc3A2NAoJ
CXRtX2ZpbGU9c3BhcmMvc3A2NC1lbGYuaAoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGVu
ZC5vIgoJCTs7CglzcGFyYzY0LSotbGludXgqKQkJIyA2NC1iaXQgU3BhcmMncyBydW5uaW5nIEdO
VS9MaW51eAoJCXRtYWtlX2ZpbGU9InQtbGludXggc3BhcmMvdC1saW51eDY0IgoJCXhtX2ZpbGU9
InNwYXJjL3htLXNwNjQuaCBzcGFyYy94bS1saW51eC5oIgoJCXRtX2ZpbGU9c3BhcmMvbGludXg2
NC5oCgkJeG1ha2VfZmlsZT14LWxpbnV4CgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0YmVn
aW5TLm8gY3J0ZW5kLm8gY3J0ZW5kUy5vIgoJCWdudV9sZD15ZXMKIAkJaWYgdGVzdCB4JGVuYWJs
ZV90aHJlYWRzID0geHllczsgdGhlbgogCQkJdGhyZWFkX2ZpbGU9J3Bvc2l4JwogCQlmaQoJCWZs
b2F0X2Zvcm1hdD1zcGFyYwoJCTs7CiMgVGhpcyBoYXNuJ3QgYmVlbiB1cGdyYWRlZCB0byBHQ0Mg
Mi4KIwl0YWhvZS1oYXJyaXMtKikJCQkjIEhhcnJpcyB0YWhvZSwgdXNpbmcgQ09GRi4KIwkJdG1f
ZmlsZT10YWhvZS9oYXJyaXMuaAojCQk7OwojCXRhaG9lLSotYnNkKikJCQkjIHRhaG9lIHJ1bm5p
bmcgQlNECiMJCTs7Cgl0aHVtYi0qLWNvZmYqIHwgdGh1bWJlbC0qLWNvZmYqKQoJCXRtX2ZpbGU9
YXJtL3Rjb2ZmLmgKCQlvdXRfZmlsZT1hcm0vdGh1bWIuYwoJCXhtX2ZpbGU9YXJtL3htLXRodW1i
LmgKCQltZF9maWxlPWFybS90aHVtYi5tZAoJCXRtYWtlX2ZpbGU9YXJtL3QtdGh1bWIKCQl0bV9w
X2ZpbGU9YXJtL3RodW1iLXByb3Rvcy5oCgkJOzsKCXRodW1iLSotZWxmKiB8IHRodW1iZWwtKi1l
bGYqKQoJCXRtX2ZpbGU9YXJtL3RlbGYuaAoJCW91dF9maWxlPWFybS90aHVtYi5jCgkJeG1fZmls
ZT1hcm0veG0tdGh1bWIuaAoJCW1kX2ZpbGU9YXJtL3RodW1iLm1kCgkJdG1ha2VfZmlsZT1hcm0v
dC10aHVtYi1lbGYKCQl0bV9wX2ZpbGU9YXJtL3RodW1iLXByb3Rvcy5oCgkJOzsKCXRodW1iLSot
bGludXgtZ251KikKCQl0bV9maWxlPWFybS9saW51eC10ZWxmLmgKCQlvdXRfZmlsZT1hcm0vdGh1
bWIuYwoJCXhtX2ZpbGU9YXJtL3htLXRodW1iLmgKCQltZF9maWxlPWFybS90aHVtYi5tZAoJCXRt
YWtlX2ZpbGU9YXJtL3QtdGh1bWItbGludXgKCQl0bV9wX2ZpbGU9YXJtL3RodW1iLXByb3Rvcy5o
CgkJOzsKCXRodW1iLSotdWNsaW51eCopCgkJdG1fZmlsZT1hcm0vdWNsaW51eC10ZWxmLmgKCQlv
dXRfZmlsZT1hcm0vdGh1bWIuYwoJCW1kX2ZpbGU9YXJtL3RodW1iLm1kCgkJdG1ha2VfZmlsZT1h
cm0vdC10aHVtYi1saW51eAoJCXhtX2ZpbGU9YXJtL3htLXRodW1iLmgKCQl0bV9wX2ZpbGU9YXJt
L3RodW1iLXByb3Rvcy5oCgkJOzsKCXRodW1iLXdycy12eHdvcmtzKQoJCXRtX2ZpbGU9YXJtL3Rj
b2ZmLmgKCQlvdXRfZmlsZT1hcm0vdGh1bWIuYwoJCXhtX2ZpbGU9YXJtL3htLXRodW1iLmgKCQlt
ZF9maWxlPWFybS90aHVtYi5tZAoJCXRtYWtlX2ZpbGU9YXJtL3QtdGh1bWIKCQl0aHJlYWRfZmls
ZT0ndnh3b3JrcycKCQl0bV9wX2ZpbGU9YXJtL3RodW1iLXByb3Rvcy5oCgkJOzsKCXRodW1iLSot
cGUpCgkJdG1fZmlsZT1hcm0vdHBlLmgKCQlvdXRfZmlsZT1hcm0vdGh1bWIuYwoJCXhtX2ZpbGU9
YXJtL3htLXRodW1iLmgKCQltZF9maWxlPWFybS90aHVtYi5tZAoJCXRtYWtlX2ZpbGU9YXJtL3Qt
cGUtdGh1bWIKCQlleHRyYV9vYmpzPXBlLm8KCQl0bV9wX2ZpbGU9YXJtL3RodW1iLXByb3Rvcy5o
CgkJOzsKIyBUaGlzIGhhc24ndCBiZWVuIHVwZ3JhZGVkIHRvIEdDQyAyLgojCXRyb24tKi0qKQoj
CQljcHVfdHlwZT1nbWljcm8KIwkJdXNlX2NvbGxlY3QyPXllcwojCQk7OwoJdjg1MC0qLXJ0ZW1z
KikKCQljcHVfdHlwZT12ODUwCgkJdG1fZmlsZT0idjg1MC9ydGVtcy5oIgoJCXhtX2ZpbGU9InY4
NTAveG0tdjg1MC5oIgoJCXRtYWtlX2ZpbGU9InY4NTAvdC12ODUwIHQtcnRlbXMiCgkJaWYgdGVz
dCB4JHN0YWJzID0geHllcwoJCXRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlm
aQoJCXVzZV9jb2xsZWN0Mj1ubwoJCTs7Cgl2ODUwLSotKikKCQl0YXJnZXRfY3B1X2RlZmF1bHQ9
IlRBUkdFVF9DUFVfZ2VuZXJpYyIKCQljcHVfdHlwZT12ODUwCgkJdG1fZmlsZT0idjg1MC92ODUw
LmgiCgkJeG1fZmlsZT0idjg1MC94bS12ODUwLmgiCgkJdG1ha2VfZmlsZT12ODUwL3Qtdjg1MAoJ
CWlmIHRlc3QgeCRzdGFicyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4
LmgiCgkJZmkKCQl1c2VfY29sbGVjdDI9bm8KCQk7OwoJdmF4LSotYnNkKikJCQkjIHZheGVuIHJ1
bm5pbmcgQlNECgkJdXNlX2NvbGxlY3QyPXllcwoJCWZsb2F0X2Zvcm1hdD12YXgKCQk7OwoJdmF4
LSotc3lzdiopCQkJIyB2YXhlbiBydW5uaW5nIHN5c3RlbSBWCgkJdG1fZmlsZT0iJHt0bV9maWxl
fSB2YXgvdmF4di5oIgoJCXhtX2RlZmluZXM9VVNHCgkJZmxvYXRfZm9ybWF0PXZheAoJCTs7Cgl2
YXgtKi1uZXRic2QqKQoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gbmV0YnNkLmggdmF4L25ldGJzZC5o
IgoJCXRtYWtlX2ZpbGU9dC1uZXRic2QKCQlmbG9hdF9mb3JtYXQ9dmF4CgkJdXNlX2NvbGxlY3Qy
PXllcwoJCTs7Cgl2YXgtKi1vcGVuYnNkKikKCQl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IHZh
eC90LW9wZW5ic2QiCgkJOzsKCXZheC0qLXVsdHJpeCopCQkJIyB2YXhlbiBydW5uaW5nIHVsdHJp
eAoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gdmF4L3VsdHJpeC5oIgoJCXVzZV9jb2xsZWN0Mj15ZXMK
CQlmbG9hdF9mb3JtYXQ9dmF4CgkJOzsKCXZheC0qLXZtcyopCQkJIyB2YXhlbiBydW5uaW5nIFZN
UwoJCXhtX2ZpbGU9dmF4L3htLXZtcy5oCgkJdG1fZmlsZT12YXgvdm1zLmgKCQlmbG9hdF9mb3Jt
YXQ9dmF4CgkJOzsKCXZheC0qLSopCQkJIyB2YXggZGVmYXVsdCBlbnRyeQoJCWZsb2F0X2Zvcm1h
dD12YXgKCQk7OwoJd2UzMmstYXR0LXN5c3YqKQoJCXhtX2ZpbGU9IiR7eG1fZmlsZX0geG0tc3Zy
MyIKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCSopCgkJZWNobyAiQ29uZmlndXJhdGlvbiAkbWFj
aGluZSBub3Qgc3VwcG9ydGVkIiAxPiYyCgkJZXhpdCAxCgkJOzsKCWVzYWMKCgljYXNlICRtYWNo
aW5lIGluCgkqLSotbGludXgtZ251KikKCSAgICAgICAgOzsgIyBFeGlzdGluZyBHTlUvTGludXgg
c3lzdGVtcyBkbyBub3QgdXNlIHRoZSBHTlUgc2V0dXAuCgkqLSotZ251KikKCQkjIE9uIHRoZSBH
TlUgc3lzdGVtLCB0aGUgc2V0dXAgaXMganVzdCBhYm91dCB0aGUgc2FtZSBvbgoJCSMgZWFjaCBk
aWZmZXJlbnQgQ1BVLiAgVGhlIHNwZWNpZmljIG1hY2hpbmVzIHRoYXQgR05VCgkJIyBzdXBwb3J0
cyBhcmUgbWF0Y2hlZCBhYm92ZSBhbmQganVzdCBzZXQgJGNwdV90eXBlLgoJCXhtX2ZpbGU9Inht
LWdudS5oICR7eG1fZmlsZX0iCgkJdG1fZmlsZT0ke2NwdV90eXBlfS9nbnUuaAoJCWV4dHJhX3Bh
cnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIGNydGJlZ2luUy5vIGNydGVuZFMubyIKCQkjIEdOVSBh
bHdheXMgdXNlcyBFTEYuCgkJZWxmPXllcwoJCSMgR05VIHRvb2xzIGFyZSB0aGUgb25seSB0b29s
cy4KCQlnbnVfbGQ9eWVzCgkJZ2FzPXllcwoJCXhtYWtlX2ZpbGU9eC1saW51eAkjIFRoZXNlIGRl
dGFpbHMgYXJlIHRoZSBzYW1lIGFzIExpbnV4LgoJCXRtYWtlX2ZpbGU9dC1nbnUJIyBUaGVzZSBh
cmUgbm90LgoJCTs7CgkqLSotc3lzdjQqKQoJCXhtYWtlX3RyeV9zeXN2PXgtc3lzdgoJCWluc3Rh
bGxfaGVhZGVyc19kaXI9aW5zdGFsbC1oZWFkZXJzLWNwaW8KCQk7OwoJKi0qLXN5c3YqKQoJCWlu
c3RhbGxfaGVhZGVyc19kaXI9aW5zdGFsbC1oZWFkZXJzLWNwaW8KCQk7OwoJZXNhYwoKCSMgRGlz
dGluZ3Vpc2ggaVszNDU2N104NgoJIyBBbHNvLCBkbyBub3QgcnVuIG1pcHMtdGZpbGUgb24gTUlQ
UyBpZiB1c2luZyBnYXMuCgkjIFByb2Nlc3MgLS13aXRoLWNwdT0gZm9yIFBvd2VyUEMvcnM2MDAw
Cgl0YXJnZXRfY3B1X2RlZmF1bHQyPQoJY2FzZSAkbWFjaGluZSBpbgoJaTQ4Ni0qLSopCgkJdGFy
Z2V0X2NwdV9kZWZhdWx0Mj0xCgkJOzsKCWk1ODYtKi0qKQoJCWNhc2UgJHRhcmdldF9hbGlhcyBp
bgoJCQlrNi0qKQoJCQkJdGFyZ2V0X2NwdV9kZWZhdWx0Mj00CgkJCQk7OwoJCQkqKQoJCQkJdGFy
Z2V0X2NwdV9kZWZhdWx0Mj0yCgkJCQk7OwoJCWVzYWMKCQk7OwoJaTY4Ni0qLSogfCBpNzg2LSot
KikKCQl0YXJnZXRfY3B1X2RlZmF1bHQyPTMKCQk7OwoJYWxwaGEqLSotKikKCQljYXNlICRtYWNo
aW5lIGluCmNoYW5nZXF1b3RlKCwpZG5sCgkJCWFscGhhZXY2Wzc4XSopCmNoYW5nZXF1b3RlKFss
XSlkbmwKCQkJCXRhcmdldF9jcHVfZGVmYXVsdDI9Ik1BU0tfQ1BVX0VWNnxNQVNLX0JXWHxNQVNL
X01BWHxNQVNLX0ZJWHxNQVNLX0NJWCIKCQkJCTs7CgkJCWFscGhhZXY2KikKCQkJCXRhcmdldF9j
cHVfZGVmYXVsdDI9Ik1BU0tfQ1BVX0VWNnxNQVNLX0JXWHxNQVNLX01BWHxNQVNLX0ZJWCIKCQkJ
CTs7CgkJCWFscGhhcGNhNTYqKQoJCQkJdGFyZ2V0X2NwdV9kZWZhdWx0Mj0iTUFTS19DUFVfRVY1
fE1BU0tfQldYfE1BU0tfTUFYIgoJCQkJOzsKCQkJYWxwaGFldjU2KikKCQkJCXRhcmdldF9jcHVf
ZGVmYXVsdDI9Ik1BU0tfQ1BVX0VWNXxNQVNLX0JXWCIKCQkJCTs7CgkJCWFscGhhZXY1KikKCQkJ
CXRhcmdldF9jcHVfZGVmYXVsdDI9Ik1BU0tfQ1BVX0VWNSIKCQkJCTs7CgkJZXNhYwoJCQkJCgkJ
aWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCWlmIHRlc3QgIiR0YXJnZXRfY3B1X2RlZmF1
bHQyIiA9ICIiCgkJCXRoZW4KCQkJCXRhcmdldF9jcHVfZGVmYXVsdDI9Ik1BU0tfR0FTIgoJCQll
bHNlCgkJCQl0YXJnZXRfY3B1X2RlZmF1bHQyPSIke3RhcmdldF9jcHVfZGVmYXVsdDJ9fE1BU0tf
R0FTIgoJCQlmaQoJCWZpCgkJOzsKCWFybSotKi0qKQoJCWNhc2UgIngkd2l0aF9jcHUiIGluCgkJ
CXgpCgkJCQkjIFRoZSBtb3N0IGdlbmVyaWMKCQkJCXRhcmdldF9jcHVfZGVmYXVsdDI9IlRBUkdF
VF9DUFVfZ2VuZXJpYyIKCQkJCTs7CgoJCQkjIERpc3Rpbmd1aXNoIGNvcmVzLCBhbmQgbWFqb3Ig
dmFyaWFudHMKCQkJIyBhcm03bSBkb2Vzbid0IGV4aXN0LCBidXQgRCAmIEkgZG9uJ3QgYWZmZWN0
IGNvZGUKY2hhbmdlcXVvdGUoLClkbmwKCQkJeGFybVsyMzY3OF0gfCB4YXJtMjUwIHwgeGFybVs2
N11bMDFdMCBcCgkJCXwgeGFybTdtIHwgeGFybTdkbSB8IHhhcm03ZG1pIHwgeGFybTd0ZG1pIFwK
CQkJfCB4YXJtNzEwMCB8IHhhcm03NTAwIHwgeGFybTc1MDBmZSB8IHhhcm04MTAgXAoJCQl8IHhz
dHJvbmdhcm0gfCB4c3Ryb25nYXJtMTEwIHwgeHN0cm9uZ2FybTExMDApCmNoYW5nZXF1b3RlKFss
XSlkbmwKCQkJCXRhcmdldF9jcHVfZGVmYXVsdDI9IlRBUkdFVF9DUFVfJHdpdGhfY3B1IgoJCQkJ
OzsKCgkJCXh5ZXMgfCB4bm8pCgkJCQllY2hvICItLXdpdGgtY3B1IG11c3QgYmUgcGFzc2VkIGEg
dmFsdWUiIDE+JjIKCQkJCWV4aXQgMQoJCQkJOzsKCgkJCSopCgkJCQlpZiB0ZXN0IHgkcGFzczJk
b25lID0geHllcwoJCQkJdGhlbgoJCQkJCWVjaG8gIlVua25vd24gY3B1IHVzZWQgd2l0aCAtLXdp
dGgtY3B1PSR3aXRoX2NwdSIgMT4mMgoJCQkJCWV4aXQgMQoJCQkJZmkKCQkJCTs7CgkJZXNhYwoJ
CTs7CgoJbWlwcyotKi1lY29mZiogfCBtaXBzKi0qLWVsZiopCgkJaWYgdGVzdCB4JGdhcyA9IHh5
ZXMKCQl0aGVuCgkJCWlmIHRlc3QgeCRnbnVfbGQgPSB4eWVzCgkJCXRoZW4KCQkJCXRhcmdldF9j
cHVfZGVmYXVsdDI9MjAKCQkJZWxzZQoJCQkJdGFyZ2V0X2NwdV9kZWZhdWx0Mj0xNgoJCQlmaQoJ
CWZpCgkJOzsKCW1pcHMqLSotKikKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdGFy
Z2V0X2NwdV9kZWZhdWx0Mj0xNgoJCWZpCgkJOzsKCXBvd2VycGMqLSotKiB8IHJzNjAwMC0qLSop
CgkJY2FzZSAieCR3aXRoX2NwdSIgaW4KCQkJeCkKCQkJCTs7CgoJCQl4Y29tbW9uIHwgeHBvd2Vy
IHwgeHBvd2VyMiB8IHhwb3dlcnBjIHwgeHJpb3MgXAoJCQkgIHwgeHJpb3MxIHwgeHJpb3MyIHwg
eHJzYyB8IHhyc2MxIFwKCQkJICB8IHg2MDEgfCB4NjAyIHwgeDYwMyB8IHg2MDNlIHwgeDYwNCB8
IHg2MDRlIHwgeDYyMCBcCgkJCSAgfCB4ZWM2MDNlIHwgeDc0MCB8IHg3NTAgfCB4NDAxIFwKCQkJ
ICB8IHg0MDMgfCB4NTA1IHwgeDgwMSB8IHg4MjEgfCB4ODIzIHwgeDg2MCkKCQkJCXRhcmdldF9j
cHVfZGVmYXVsdDI9IlwiJHdpdGhfY3B1XCIiCgkJCQk7OwoKCQkJeHllcyB8IHhubykKCQkJCWVj
aG8gIi0td2l0aC1jcHUgbXVzdCBiZSBwYXNzZWQgYSB2YWx1ZSIgMT4mMgoJCQkJZXhpdCAxCgkJ
CQk7OwoKCQkJKikKCQkJCWlmIHRlc3QgeCRwYXNzMmRvbmUgPSB4eWVzCgkJCQl0aGVuCgkJCQkJ
ZWNobyAiVW5rbm93biBjcHUgdXNlZCB3aXRoIC0td2l0aC1jcHU9JHdpdGhfY3B1IiAxPiYyCgkJ
CQkJZXhpdCAxCgkJCQlmaQoJCQkJOzsKCQllc2FjCgkJOzsKCXNwYXJjKi0qLSopCgkJY2FzZSAi
LiR3aXRoX2NwdSIgaW4KCQkJLikKCQkJCXRhcmdldF9jcHVfZGVmYXVsdDI9VEFSR0VUX0NQVV8i
YGVjaG8gJG1hY2hpbmUgfCBzZWQgJ3MvLS4qJC8vJ2AiCgkJCQk7OwoJCQkuc3VwZXJzcGFyYyB8
IC5oeXBlcnNwYXJjIHwgLnVsdHJhc3BhcmMgfCAudjcgfCAudjggfCAudjkpCgkJCQl0YXJnZXRf
Y3B1X2RlZmF1bHQyPSJUQVJHRVRfQ1BVXyR3aXRoX2NwdSIKCQkJCTs7CgkJCSopCgkJCQlpZiB0
ZXN0IHgkcGFzczJkb25lID0geHllcwoJCQkJdGhlbgoJCQkJCWVjaG8gIlVua25vd24gY3B1IHVz
ZWQgd2l0aCAtLXdpdGgtY3B1PSR3aXRoX2NwdSIgMT4mMgoJCQkJCWV4aXQgMQoJCQkJZmkKCQkJ
CTs7CgkJZXNhYwoJCTs7Cgllc2FjCgoJaWYgdGVzdCAiJHRhcmdldF9jcHVfZGVmYXVsdDIiICE9
ICIiCgl0aGVuCgkJaWYgdGVzdCAiJHRhcmdldF9jcHVfZGVmYXVsdCIgIT0gIiIKCQl0aGVuCgkJ
CXRhcmdldF9jcHVfZGVmYXVsdD0iKCR7dGFyZ2V0X2NwdV9kZWZhdWx0fXwke3RhcmdldF9jcHVf
ZGVmYXVsdDJ9KSIKCQllbHNlCgkJCXRhcmdldF9jcHVfZGVmYXVsdD0kdGFyZ2V0X2NwdV9kZWZh
dWx0MgoJCWZpCglmaQoKCSMgTm8gbmVlZCBmb3IgY29sbGVjdDIgaWYgd2UgaGF2ZSB0aGUgR05V
IGxpbmtlci4KCSMgQWN0dWFsbHksIHRoZXJlIGlzIG5vdzsgR05VIGxkIGRvZXNuJ3QgaGFuZGxl
IHRoZSBFSCBpbmZvIG9yCgkjIGNvbGxlY3RpbmcgZm9yIHNoYXJlZCBsaWJyYXJpZXMuCgkjY2Fz
ZSB4JGdudV9sZCBpbgoJI3h5ZXMpCgkjCXVzZV9jb2xsZWN0Mj0KCSMJOzsKCSNlc2FjCgojIFNh
dmUgZGF0YSBvbiBtYWNoaW5lIGJlaW5nIHVzZWQgdG8gY29tcGlsZSBHQ0MgaW4gYnVpbGRfeG1f
ZmlsZS4KIyBTYXZlIGRhdGEgb24gaG9zdCBtYWNoaW5lIGluIHZhcnMgaG9zdF94bV9maWxlIGFu
ZCBob3N0X3htYWtlX2ZpbGUuCglpZiB0ZXN0IHgkcGFzczFkb25lID0geAoJdGhlbgoJCWlmIHRl
c3QgeCIkeG1fZmlsZSIgPSB4CgkJdGhlbiBidWlsZF94bV9maWxlPSRjcHVfdHlwZS94bS0kY3B1
X3R5cGUuaAoJCWVsc2UgYnVpbGRfeG1fZmlsZT0keG1fZmlsZQoJCWZpCgkJYnVpbGRfeG1fZGVm
aW5lcz0keG1fZGVmaW5lcwoJCWJ1aWxkX2luc3RhbGxfaGVhZGVyc19kaXI9JGluc3RhbGxfaGVh
ZGVyc19kaXIKCQlidWlsZF9leGVleHQ9JGV4ZWV4dAoJCXBhc3MxZG9uZT15ZXMKCWVsc2UKCQlp
ZiB0ZXN0IHgkcGFzczJkb25lID0geAoJCXRoZW4KCQkJaWYgdGVzdCB4IiR4bV9maWxlIiA9IHgK
CQkJdGhlbiBob3N0X3htX2ZpbGU9JGNwdV90eXBlL3htLSRjcHVfdHlwZS5oCgkJCWVsc2UgaG9z
dF94bV9maWxlPSR4bV9maWxlCgkJCWZpCgkJCWhvc3RfeG1fZGVmaW5lcz0keG1fZGVmaW5lcwoJ
CQlpZiB0ZXN0IHgiJHhtYWtlX2ZpbGUiID0geAoJCQl0aGVuIHhtYWtlX2ZpbGU9JGNwdV90eXBl
L3gtJGNwdV90eXBlCgkJCWZpCgkJCWhvc3RfeG1ha2VfZmlsZT0iJHhtYWtlX2ZpbGUiCgkJCWhv
c3RfdHJ1bmNhdGVfdGFyZ2V0PSR0cnVuY2F0ZV90YXJnZXQKCQkJaG9zdF9leHRyYV9nY2Nfb2Jq
cz0kZXh0cmFfZ2NjX29ianMKCQkJaG9zdF9leHRyYV9vYmpzPSRleHRyYV9ob3N0X29ianMKCQkJ
aG9zdF9leGVleHQ9JGV4ZWV4dAoJCQlwYXNzMmRvbmU9eWVzCgkJZmkKCWZpCmRvbmUKCmV4dHJh
X29ianM9IiR7aG9zdF9leHRyYV9vYmpzfSAke2V4dHJhX29ianN9IgoKIyBEZWZhdWx0IHRoZSB0
YXJnZXQtbWFjaGluZSB2YXJpYWJsZXMgdGhhdCB3ZXJlIG5vdCBleHBsaWNpdGx5IHNldC4KaWYg
dGVzdCB4IiR0bV9maWxlIiA9IHgKdGhlbiB0bV9maWxlPSRjcHVfdHlwZS8kY3B1X3R5cGUuaDsg
ZmkKCmlmIHRlc3QgeCRleHRyYV9oZWFkZXJzID0geAp0aGVuIGV4dHJhX2hlYWRlcnM9OyBmaQoK
aWYgdGVzdCB4IiR4bV9maWxlIiA9IHgKdGhlbiB4bV9maWxlPSRjcHVfdHlwZS94bS0kY3B1X3R5
cGUuaDsgZmkKCmlmIHRlc3QgeCRtZF9maWxlID0geAp0aGVuIG1kX2ZpbGU9JGNwdV90eXBlLyRj
cHVfdHlwZS5tZDsgZmkKCmlmIHRlc3QgeCRvdXRfZmlsZSA9IHgKdGhlbiBvdXRfZmlsZT0kY3B1
X3R5cGUvJGNwdV90eXBlLmM7IGZpCgppZiB0ZXN0IHgiJHRtYWtlX2ZpbGUiID0geAp0aGVuIHRt
YWtlX2ZpbGU9JGNwdV90eXBlL3QtJGNwdV90eXBlCmZpCgppZiB0ZXN0IHgiJGR3YXJmMiIgPSB4
eWVzCnRoZW4gdG1fZmlsZT0iJHRtX2ZpbGUgdG0tZHdhcmYyLmgiCmZpCgppZiB0ZXN0IHgkZmxv
YXRfZm9ybWF0ID0geAp0aGVuIGZsb2F0X2Zvcm1hdD1pNjQKZmkKCmlmIHRlc3QgJGZsb2F0X2Zv
cm1hdCA9IG5vbmUKdGhlbiBmbG9hdF9oX2ZpbGU9TWFrZWZpbGUuaW4KZWxzZSBmbG9hdF9oX2Zp
bGU9ZmxvYXQtJGZsb2F0X2Zvcm1hdC5oCmZpCgojIEhhbmRsZSBjcHAgaW5zdGFsbGF0aW9uLgpp
ZiB0ZXN0IHgkZW5hYmxlX2NwcCAhPSB4bm8KdGhlbgogIHRtYWtlX2ZpbGU9IiR0bWFrZV9maWxl
IHQtaW5zdGFsbC1jcHAiCmZpCgojIFNheSB3aGF0IGZpbGVzIGFyZSBiZWluZyB1c2VkIGZvciB0
aGUgb3V0cHV0IGNvZGUgYW5kIE1EIGZpbGUuCmVjaG8gIlVzaW5nIFxgJHNyY2Rpci9jb25maWcv
JG91dF9maWxlJyB0byBvdXRwdXQgaW5zbnMuIgplY2hvICJVc2luZyBcYCRzcmNkaXIvY29uZmln
LyRtZF9maWxlJyBhcyBtYWNoaW5lIGRlc2NyaXB0aW9uIGZpbGUuIgoKY291bnQ9YQpmb3IgZiBp
biAkdG1fZmlsZTsgZG8KCWNvdW50PSR7Y291bnR9eApkb25lCmlmIHRlc3QgJGNvdW50ID0gYXg7
IHRoZW4KCWVjaG8gIlVzaW5nIFxgJHNyY2Rpci9jb25maWcvJHRtX2ZpbGUnIGFzIHRhcmdldCBt
YWNoaW5lIG1hY3JvIGZpbGUuIgplbHNlCgllY2hvICJVc2luZyB0aGUgZm9sbG93aW5nIHRhcmdl
dCBtYWNoaW5lIG1hY3JvIGZpbGVzOiIKCWZvciBmIGluICR0bV9maWxlOyBkbwoJCWVjaG8gIgkk
c3JjZGlyL2NvbmZpZy8kZiIKCWRvbmUKZmkKCmNvdW50PWEKZm9yIGYgaW4gJGhvc3RfeG1fZmls
ZTsgZG8KCWNvdW50PSR7Y291bnR9eApkb25lCmlmIHRlc3QgJGNvdW50ID0gYXg7IHRoZW4KCWVj
aG8gIlVzaW5nIFxgJHNyY2Rpci9jb25maWcvJGhvc3RfeG1fZmlsZScgYXMgaG9zdCBtYWNoaW5l
IG1hY3JvIGZpbGUuIgplbHNlCgllY2hvICJVc2luZyB0aGUgZm9sbG93aW5nIGhvc3QgbWFjaGlu
ZSBtYWNybyBmaWxlczoiCglmb3IgZiBpbiAkaG9zdF94bV9maWxlOyBkbwoJCWVjaG8gIgkkc3Jj
ZGlyL2NvbmZpZy8kZiIKCWRvbmUKZmkKCmlmIHRlc3QgIiRob3N0X3htX2ZpbGUiICE9ICIkYnVp
bGRfeG1fZmlsZSI7IHRoZW4KCWNvdW50PWEKCWZvciBmIGluICRidWlsZF94bV9maWxlOyBkbwoJ
CWNvdW50PSR7Y291bnR9eAoJZG9uZQoJaWYgdGVzdCAkY291bnQgPSBheDsgdGhlbgoJCWVjaG8g
IlVzaW5nIFxgJHNyY2Rpci9jb25maWcvJGJ1aWxkX3htX2ZpbGUnIGFzIGJ1aWxkIG1hY2hpbmUg
bWFjcm8gZmlsZS4iCgllbHNlCgkJZWNobyAiVXNpbmcgdGhlIGZvbGxvd2luZyBidWlsZCBtYWNo
aW5lIG1hY3JvIGZpbGVzOiIKCQlmb3IgZiBpbiAkYnVpbGRfeG1fZmlsZTsgZG8KCQkJZWNobyAi
CSRzcmNkaXIvY29uZmlnLyRmIgoJCWRvbmUKCWZpCmZpCgppZiB0ZXN0IHgkdGhyZWFkX2ZpbGUg
PSB4OyB0aGVuCglpZiB0ZXN0IHgkdGFyZ2V0X3RocmVhZF9maWxlICE9IHg7IHRoZW4KCQl0aHJl
YWRfZmlsZT0kdGFyZ2V0X3RocmVhZF9maWxlCgllbHNlCgkJdGhyZWFkX2ZpbGU9J3NpbmdsZScK
CWZpCmZpCgojIFNldCB1cCB0aGUgaGVhZGVyIGZpbGVzLgojICRsaW5rcyBpcyB0aGUgbGlzdCBv
ZiBoZWFkZXIgZmlsZXMgdG8gY3JlYXRlLgojICR2YXJzIGlzIHRoZSBsaXN0IG9mIHNoZWxsIHZh
cmlhYmxlcyB3aXRoIGZpbGUgbmFtZXMgdG8gaW5jbHVkZS4KIyBhdXRvLWhvc3QuaCBpcyB0aGUg
ZmlsZSBjb250YWluaW5nIGl0ZW1zIGdlbmVyYXRlZCBieSBhdXRvY29uZiBhbmQgaXMKIyB0aGUg
Zmlyc3QgZmlsZSBpbmNsdWRlZCBieSBjb25maWcuaC4KbnVsbF9kZWZpbmVzPQpob3N0X3htX2Zp
bGU9ImF1dG8taG9zdC5oIGdhbnNpZGVjbC5oICR7aG9zdF94bV9maWxlfSBod2ludC5oIgoKIyBJ
ZiBob3N0PWJ1aWxkLCBpdCBpcyBjb3JyZWN0IHRvIGhhdmUgaGNvbmZpZyBpbmNsdWRlIGF1dG8t
aG9zdC5oCiMgYXMgd2VsbC4gIElmIGhvc3QhPWJ1aWxkLCB3ZSBhcmUgaW4gZXJyb3IgYW5kIG5l
ZWQgdG8gZG8gbW9yZSAKIyB3b3JrIHRvIGZpbmQgb3V0IHRoZSBidWlsZCBjb25maWcgcGFyYW1l
dGVycy4KaWYgdGVzdCB4JGhvc3QgPSB4JGJ1aWxkCnRoZW4KCWJ1aWxkX3htX2ZpbGU9ImF1dG8t
aG9zdC5oIGdhbnNpZGVjbC5oICR7YnVpbGRfeG1fZmlsZX0gaHdpbnQuaCIKZWxzZQoJIyBXZSBj
cmVhdGUgYSBzdWJkaXIsIHRoZW4gcnVuIGF1dG9jb25mIGluIHRoZSBzdWJkaXIuCgkjIFRvIHBy
ZXZlbnQgcmVjdXJzaW9uIHdlIHNldCBob3N0IGFuZCBidWlsZCBmb3IgdGhlIG5ldwoJIyBpbnZv
Y2F0aW9uIG9mIGNvbmZpZ3VyZSB0byB0aGUgYnVpbGQgZm9yIHRoaXMgaW52b2NhdGlvbgoJIyBv
ZiBjb25maWd1cmUuIAoJdGVtcGRpcj1idWlsZC4kJAoJcm0gLXJmICR0ZW1wZGlyCglta2RpciAk
dGVtcGRpcgoJY2QgJHRlbXBkaXIKCWNhc2UgJHtzcmNkaXJ9IGluCgkvKikgcmVhbHNyY2Rpcj0k
e3NyY2Rpcn07OwoJKikgcmVhbHNyY2Rpcj0uLi8ke3NyY2Rpcn07OwoJZXNhYwoJQ0M9JHtDQ19G
T1JfQlVJTER9ICR7cmVhbHNyY2Rpcn0vY29uZmlndXJlIFwKCQktLXRhcmdldD0kdGFyZ2V0IC0t
aG9zdD0kYnVpbGQgLS1idWlsZD0kYnVpbGQKCgkjIFdlIGp1c3QgZmluaXNoZWQgdGVzdHMgZm9y
IHRoZSBidWlsZCBtYWNoaW5lLCBzbyByZW5hbWUKCSMgdGhlIGZpbGUgYXV0by1idWlsZC5oIGlu
IHRoZSBnY2MgZGlyZWN0b3J5LgoJbXYgYXV0by1ob3N0LmggLi4vYXV0by1idWlsZC5oCgljZCAu
LgoJcm0gLXJmICR0ZW1wZGlyCglidWlsZF94bV9maWxlPSJhdXRvLWJ1aWxkLmggZ2Fuc2lkZWNs
LmggJHtidWlsZF94bV9maWxlfSBod2ludC5oIgpmaQoKeG1fZmlsZT0iZ2Fuc2lkZWNsLmggJHt4
bV9maWxlfSIKdG1fZmlsZT0iZ2Fuc2lkZWNsLmggJHt0bV9maWxlfSIKCnZhcnM9Imhvc3RfeG1f
ZmlsZSB0bV9maWxlIHRtX3BfZmlsZSB4bV9maWxlIGJ1aWxkX3htX2ZpbGUiCmxpbmtzPSJjb25m
aWcuaCB0bS5oIHRtX3AuaCB0Y29uZmlnLmggaGNvbmZpZy5oIgpkZWZpbmVzPSJob3N0X3htX2Rl
ZmluZXMgbnVsbF9kZWZpbmVzIG51bGxfZGVmaW5lcyB4bV9kZWZpbmVzIGJ1aWxkX3htX2RlZmlu
ZXMiCgpybSAtZiBjb25maWcuYmFrCmlmIHRlc3QgLWYgY29uZmlnLnN0YXR1czsgdGhlbiBtdiAt
ZiBjb25maWcuc3RhdHVzIGNvbmZpZy5iYWs7IGZpCgojIE1ha2UgdGhlIGxpbmtzLgp3aGlsZSB0
ZXN0IC1uICIkdmFycyIKZG8KCXNldCAkdmFyczsgdmFyPSQxOyBzaGlmdDsgdmFycz0kKgoJc2V0
ICRsaW5rczsgbGluaz0kMTsgc2hpZnQ7IGxpbmtzPSQqCglzZXQgJGRlZmluZXM7IGRlZmluZT0k
MTsgc2hpZnQ7IGRlZmluZXM9JCoKCglybSAtZiAkbGluawoJIyBNYWtlIHN1cmUgdGhlIGZpbGUg
aXMgY3JlYXRlZCwgZXZlbiBpZiBpdCBpcyBlbXB0eS4KCWVjaG8gPiRsaW5rCgoJIyBEZWZpbmUg
VEFSR0VUX0NQVV9ERUZBVUxUIGlmIHRoZSBzeXN0ZW0gd2FudHMgb25lLgoJIyBUaGlzIHN1YnN0
aXR1dGVzIGZvciBsb3RzIG9mICouaCBmaWxlcy4KCWlmIHRlc3QgIiR0YXJnZXRfY3B1X2RlZmF1
bHQiICE9ICIiIC1hICRsaW5rID0gdG0uaAoJdGhlbgoJCWVjaG8gIiNkZWZpbmUgVEFSR0VUX0NQ
VV9ERUZBVUxUICgkdGFyZ2V0X2NwdV9kZWZhdWx0KSIgPj4kbGluawoJZmkKCglmb3IgZmlsZSBp
biBgZXZhbCBlY2hvICckJyR2YXJgOyBkbwoJCWNhc2UgJGZpbGUgaW4KCQlhdXRvLWNvbmZpZy5o
KQoJCQk7OwoJCSopCgkJCWVjaG8gJyNpZmRlZiBJTl9HQ0MnID4+JGxpbmsKCQkJOzsKCQllc2Fj
CgkJZWNobyAiI2luY2x1ZGUgXCIkZmlsZVwiIiA+PiRsaW5rCgkJY2FzZSAkZmlsZSBpbgoJCWF1
dG8tY29uZmlnLmgpCgkJCTs7CgkJKikKCQkJZWNobyAnI2VuZGlmJyA+PiRsaW5rCgkJCTs7CgkJ
ZXNhYwoJZG9uZQoKCWZvciBkZWYgaW4gYGV2YWwgZWNobyAnJCckZGVmaW5lYDsgZG8KCQllY2hv
ICIjaWZuZGVmICRkZWYiID4+JGxpbmsKCQllY2hvICIjZGVmaW5lICRkZWYiID4+JGxpbmsKCQll
Y2hvICIjZW5kaWYiID4+JGxpbmsKCWRvbmUKZG9uZQoKIyBUcnVuY2F0ZSB0aGUgdGFyZ2V0IGlm
IG5lY2Vzc2FyeQppZiB0ZXN0IHgkaG9zdF90cnVuY2F0ZV90YXJnZXQgIT0geDsgdGhlbgoJdGFy
Z2V0PWBlY2hvICR0YXJnZXQgfCBzZWQgLWUgJ3MvXCguLi4uLi4uLi4uLi4uLlwpLiovXDEvJ2AK
ZmkKCiMgR2V0IHRoZSB2ZXJzaW9uIHRyaWdnZXIgZmlsZW5hbWUgZnJvbSB0aGUgdG9wbGV2ZWwK
aWYgdGVzdCAiJHt3aXRoX2djY192ZXJzaW9uX3RyaWdnZXIrc2V0fSIgPSBzZXQ7IHRoZW4KCWdj
Y192ZXJzaW9uX3RyaWdnZXI9JHdpdGhfZ2NjX3ZlcnNpb25fdHJpZ2dlcgplbHNlCglnY2NfdmVy
c2lvbl90cmlnZ2VyPSR7c3JjZGlyfS92ZXJzaW9uLmMKZmkKY2hhbmdlcXVvdGUoLClkbmwKZ2Nj
X3ZlcnNpb249YGdyZXAgdmVyc2lvbl9zdHJpbmcgJHtnY2NfdmVyc2lvbl90cmlnZ2VyfSB8IHNl
ZCAtZSAncy8uKlwiXChbXiBcIl0qXClbIFwiXS4qL1wxLydgCmNoYW5nZXF1b3RlKFssXSlkbmwK
CiMgSW50ZXJuYXRpb25hbGl6YXRpb24KUEFDS0FHRT1nY2MKVkVSU0lPTj0iJGdjY192ZXJzaW9u
IgpBQ19ERUZJTkVfVU5RVU9URUQoUEFDS0FHRSwgIiRQQUNLQUdFIikKQUNfREVGSU5FX1VOUVVP
VEVEKFZFUlNJT04sICIkVkVSU0lPTiIpCkFDX1NVQlNUKFBBQ0tBR0UpCkFDX1NVQlNUKFZFUlNJ
T04pCgpBTExfTElOR1VBUz0iZW5fVUsiCgojIE5MUyBzdXBwb3J0IGlzIHN0aWxsIGV4cGVyaW1l
bnRhbCwgc28gZGlzYWJsZSBpdCBieSBkZWZhdWx0IGZvciBub3cuCkFDX0FSR19FTkFCTEUobmxz
LAogIFsgIC0tZW5hYmxlLW5scyAgICAgICAgICAgIHVzZSBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9y
dCAoZGlzYWJsZWQgYnkgZGVmYXVsdCldLAogICwgZW5hYmxlX25scz1ubykKCkFNX0dOVV9HRVRU
RVhUClhHRVRURVhUPSJBV0s9JyRBV0snIFwkKFNIRUxMKSBcJCh0b3Bfc3JjZGlyKS9leGdldHRl
eHQgJFhHRVRURVhUIgoKIyBXaW5kb3dzMzIgUmVnaXN0cnkgc3VwcG9ydCBmb3Igc3BlY2lmeWlu
ZyBHQ0MgaW5zdGFsbGF0aW9uIHBhdGhzLgpBQ19BUkdfRU5BQkxFKHdpbjMyLXJlZ2lzdHJ5LApb
ICAtLWRpc2FibGUtd2luMzItcmVnaXN0cnkKICAgICAgICAgICAgICAgICAgICAgICAgICBEaXNh
YmxlIGxvb2t1cCBvZiBpbnN0YWxsYXRpb24gcGF0aHMgaW4gdGhlCiAgICAgICAgICAgICAgICAg
ICAgICAgICBSZWdpc3RyeSBvbiBXaW5kb3dzIGhvc3RzLgogIC0tZW5hYmxlLXdpbjMyLXJlZ2lz
dHJ5IEVuYWJsZSByZWdpc3RyeSBsb29rdXAgKGRlZmF1bHQpLgogIC0tZW5hYmxlLXdpbjMyLXJl
Z2lzdHJ5PUtFWQogICAgICAgICAgICAgICAgICAgICAgICAgIFVzZSBLRVkgaW5zdGVhZCBvZiBH
Q0MgdmVyc2lvbiBhcyB0aGUgbGFzdCBwb3J0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICBv
ZiB0aGUgcmVnaXN0cnkga2V5Ll0sLCkKCkFDX01TR19DSEVDS0lORyh3aGV0aGVyIHdpbmRvd3Mg
cmVnaXN0cnkgc3VwcG9ydCBpcyByZXF1ZXN0ZWQpCmlmIHRlc3QgeCRlbmFibGVfd2luMzJfcmVn
aXN0cnkgIT0geG5vOyB0aGVuCiAgQUNfREVGSU5FKEVOQUJMRV9XSU4zMl9SRUdJU1RSWSkKICBB
Q19NU0dfUkVTVUxUKHllcykKZWxzZQogIEFDX01TR19SRVNVTFQobm8pCmZpCgojIENoZWNrIGlm
IHVzZXIgc3BlY2lmaWVkIGEgZGlmZmVyZW50IHJlZ2lzdHJ5IGtleS4KY2FzZSB4JHtlbmFibGVf
d2luMzJfcmVnaXN0cnl9IGluCnggfCB4eWVzKQogICMgZGVmYXVsdC4KICBnY2NfY3Zfd2luMzJf
cmVnaXN0cnlfa2V5PSIkVkVSU0lPTiIKICA7Owp4bm8pCiAgIyBubyByZWdpc3RyeSBsb29rdXAu
CiAgZ2NjX2N2X3dpbjMyX3JlZ2lzdHJ5X2tleT0nJwogIDs7CiopCiAgIyB1c2VyLXNwZWNpZmll
ZCBrZXkuCiAgZ2NjX2N2X3dpbjMyX3JlZ2lzdHJ5X2tleT0iJGVuYWJsZV93aW4zMl9yZWdpc3Ry
eSIKICA7Owplc2FjCgppZiB0ZXN0IHgkZW5hYmxlX3dpbjMyX3JlZ2lzdHJ5ICE9IHhubzsgdGhl
bgogIEFDX01TR19DSEVDS0lORyhyZWdpc3RyeSBrZXkgb24gd2luZG93cyBob3N0cykKICBBQ19E
RUZJTkVfVU5RVU9URUQoV0lOMzJfUkVHSVNUUllfS0VZLCAiJGdjY19jdl93aW4zMl9yZWdpc3Ry
eV9rZXkiKQogIEFDX01TR19SRVNVTFQoJGdjY19jdl93aW4zMl9yZWdpc3RyeV9rZXkpCmZpCgoj
IEdldCBhbiBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBHQ0MgdG9wLWxldmVsIHNvdXJjZSBkaXJlY3Rv
cnkKaG9sZGRpcj1gcHdkYApjZCAkc3JjZGlyCnRvcGRpcj1gcHdkYApjZCAkaG9sZGRpcgoKIyBD
b25kaXRpb25hbGl6ZSB0aGUgbWFrZWZpbGUgZm9yIHRoaXMgaG9zdCBtYWNoaW5lLgojIE1ha2Ut
aG9zdCBjb250YWlucyB0aGUgY29uY2F0ZW5hdGlvbiBvZiBhbGwgaG9zdCBtYWtlZmlsZSBmcmFn
bWVudHMKIyBbdGhlcmUgY2FuIGJlIG1vcmUgdGhhbiBvbmVdLiAgVGhpcyBmaWxlIGlzIGJ1aWx0
IGJ5IGNvbmZpZ3VyZS5mcmFnLgpob3N0X292ZXJyaWRlcz1NYWtlLWhvc3QKZGVwX2hvc3RfeG1h
a2VfZmlsZT0KZm9yIGYgaW4gLi4gJHtob3N0X3htYWtlX2ZpbGV9CmRvCglpZiB0ZXN0IC1mICR7
c3JjZGlyfS9jb25maWcvJGYKCXRoZW4KCQlkZXBfaG9zdF94bWFrZV9maWxlPSIke2RlcF9ob3N0
X3htYWtlX2ZpbGV9ICR7c3JjZGlyfS9jb25maWcvJGYiCglmaQpkb25lCgojIENvbmRpdGlvbmFs
aXplIHRoZSBtYWtlZmlsZSBmb3IgdGhpcyB0YXJnZXQgbWFjaGluZS4KIyBNYWtlLXRhcmdldCBj
b250YWlucyB0aGUgY29uY2F0ZW5hdGlvbiBvZiBhbGwgaG9zdCBtYWtlZmlsZSBmcmFnbWVudHMK
IyBbdGhlcmUgY2FuIGJlIG1vcmUgdGhhbiBvbmVdLiAgVGhpcyBmaWxlIGlzIGJ1aWx0IGJ5IGNv
bmZpZ3VyZS5mcmFnLgp0YXJnZXRfb3ZlcnJpZGVzPU1ha2UtdGFyZ2V0CmRlcF90bWFrZV9maWxl
PQpmb3IgZiBpbiAuLiAke3RtYWtlX2ZpbGV9CmRvCglpZiB0ZXN0IC1mICR7c3JjZGlyfS9jb25m
aWcvJGYKCXRoZW4KCQlkZXBfdG1ha2VfZmlsZT0iJHtkZXBfdG1ha2VfZmlsZX0gJHtzcmNkaXJ9
L2NvbmZpZy8kZiIKCWZpCmRvbmUKCiMgSWYgdGhlIGhvc3QgZG9lc24ndCBzdXBwb3J0IHN5bWxp
bmtzLCBtb2RpZnkgQ0MgaW4KIyBGTEFHU19UT19QQVNTIHNvIENDPSJzdGFnZTEveGdjYyAtQnN0
YWdlMS8iIHdvcmtzLgojIE90aGVyd2lzZSwgd2UgY2FuIHVzZSAiQ0M9JChDQykiLgpybSAtZiBz
eW10ZXN0LnRlbQppZiAkc3ltYm9saWNfbGluayAkc3JjZGlyL2djYy5jIHN5bXRlc3QudGVtIDI+
L2Rldi9udWxsCnRoZW4KCWNjX3NldF9ieV9jb25maWd1cmU9IlwkKENDKSIKCXF1b3RlZF9jY19z
ZXRfYnlfY29uZmlndXJlPSJcJChDQykiCglzdGFnZV9wcmVmaXhfc2V0X2J5X2NvbmZpZ3VyZT0i
XCQoU1RBR0VfUFJFRklYKSIKZWxzZQoJcm0gLWYgc3ltdGVzdC50ZW0KCWlmIGNwIC1wICRzcmNk
aXIvZ2NjLmMgc3ltdGVzdC50ZW0gMj4vZGV2L251bGwKCXRoZW4KCQlzeW1ib2xpY19saW5rPSJj
cCAtcCIKCWVsc2UKCQlzeW1ib2xpY19saW5rPSJjcCIKCWZpCgljY19zZXRfYnlfY29uZmlndXJl
PSJcYGNhc2UgJ1wkKENDKScgaW4gc3RhZ2UqKSBlY2hvICdcJChDQyknIHwgc2VkIC1lICdzfHN0
YWdlfC4uL3N0YWdlfGcnOzsgKikgZWNobyAnXCQoQ0MpJzs7IGVzYWNcYCIKCXF1b3RlZF9jY19z
ZXRfYnlfY29uZmlndXJlPSJcXFxgY2FzZSAnXFxcJChDQyknIGluIHN0YWdlKikgZWNobyAnXFxc
JChDQyknIHwgc2VkIC1lICdzfHN0YWdlfC4uL3N0YWdlfGcnOzsgKikgZWNobyAnXFxcJChDQykn
OzsgZXNhY1xcXGAiCglzdGFnZV9wcmVmaXhfc2V0X2J5X2NvbmZpZ3VyZT0iXGBjYXNlICdcJChT
VEFHRV9QUkVGSVgpJyBpbiBzdGFnZSopIGVjaG8gJ1wkKFNUQUdFX1BSRUZJWCknIHwgc2VkIC1l
ICdzfHN0YWdlfC4uL3N0YWdlfGcnOzsgKikgZWNobyAnXCQoU1RBR0VfUFJFRklYKSc7OyBlc2Fj
XGAiCmZpCnJtIC1mIHN5bXRlc3QudGVtCgpvdXRfb2JqZWN0X2ZpbGU9YGJhc2VuYW1lICRvdXRf
ZmlsZSAuY2AubwoKdG1fZmlsZV9saXN0PQpmb3IgZiBpbiAkdG1fZmlsZTsgZG8KICBjYXNlICRm
IGluCiAgICBnYW5zaWRlY2wuaCApCiAgICAgICB0bV9maWxlX2xpc3Q9IiR7dG1fZmlsZV9saXN0
fSAkZiIgOzsKICAgICopIHRtX2ZpbGVfbGlzdD0iJHt0bV9maWxlX2xpc3R9IFwkKHNyY2Rpcikv
Y29uZmlnLyRmIiA7OwogIGVzYWMKZG9uZQoKaG9zdF94bV9maWxlX2xpc3Q9CmZvciBmIGluICRo
b3N0X3htX2ZpbGU7IGRvCiAgY2FzZSAkZiBpbgogICAgYXV0by1ob3N0LmggfCBnYW5zaWRlY2wu
aCB8IGh3aW50LmggKQogICAgICAgaG9zdF94bV9maWxlX2xpc3Q9IiR7aG9zdF94bV9maWxlX2xp
c3R9ICRmIiA7OwogICAgKikgaG9zdF94bV9maWxlX2xpc3Q9IiR7aG9zdF94bV9maWxlX2xpc3R9
IFwkKHNyY2RpcikvY29uZmlnLyRmIiA7OwogIGVzYWMKZG9uZQoKYnVpbGRfeG1fZmlsZV9saXN0
PQpmb3IgZiBpbiAkYnVpbGRfeG1fZmlsZTsgZG8KICBjYXNlICRmIGluCiAgICBhdXRvLWJ1aWxk
LmggfCBhdXRvLWhvc3QuaCB8IGdhbnNpZGVjbC5oIHwgaHdpbnQuaCApCiAgICAgICBidWlsZF94
bV9maWxlX2xpc3Q9IiR7YnVpbGRfeG1fZmlsZV9saXN0fSAkZiIgOzsKICAgICopIGJ1aWxkX3ht
X2ZpbGVfbGlzdD0iJHtidWlsZF94bV9maWxlX2xpc3R9IFwkKHNyY2RpcikvY29uZmlnLyRmIiA7
OwogIGVzYWMKZG9uZQoKIyBEZWZpbmUgbWFjcm8gQ1JPU1NfQ09NUElMRSBpbiBjb21waWxhdGlv
bgojIGlmIHRoaXMgaXMgYSBjcm9zcy1jb21waWxlci4KIyBBbHNvIHVzZSBhbGwuY3Jvc3MgaW5z
dGVhZCBvZiBhbGwuaW50ZXJuYWwKIyBhbmQgYWRkIGNyb3NzLW1ha2UgdG8gTWFrZWZpbGUuCmNy
b3NzX292ZXJyaWRlcz0iL2Rldi9udWxsIgppZiB0ZXN0IHgkaG9zdCAhPSB4JHRhcmdldAp0aGVu
Cgljcm9zc19kZWZpbmVzPSJDUk9TUz0tRENST1NTX0NPTVBJTEUiCgljcm9zc19vdmVycmlkZXM9
IiR7dG9wZGlyfS9jcm9zcy1tYWtlIgpmaQoKIyBXaGVuIGJ1aWxkaW5nIGdjYyB3aXRoIGEgY3Jv
c3MtY29tcGlsZXIsIHdlIG5lZWQgdG8gZml4IGEgZmV3IHRoaW5ncy4KIyBUaGlzIG11c3QgY29t
ZSBhZnRlciBjcm9zcy1tYWtlIGFzIHdlIHdhbnQgYWxsLmJ1aWxkIHRvIG92ZXJyaWRlCiMgYWxs
LmNyb3NzLgpidWlsZF9vdmVycmlkZXM9Ii9kZXYvbnVsbCIKaWYgdGVzdCB4JGJ1aWxkICE9IHgk
aG9zdAp0aGVuCglidWlsZF9vdmVycmlkZXM9IiR7dG9wZGlyfS9idWlsZC1tYWtlIgpmaQoKIyBF
eHBhbmQgZXh0cmFfaGVhZGVycyB0byBpbmNsdWRlIGNvbXBsZXRlIHBhdGguCiMgVGhpcyBzdWJz
dGl0dXRlcyBmb3IgbG90cyBvZiB0LSogZmlsZXMuCmV4dHJhX2hlYWRlcnNfbGlzdD0KaWYgdGVz
dCAieCRleHRyYV9oZWFkZXJzIiA9IHgKdGhlbiB0cnVlCmVsc2UKCSMgUHJlcGVuZCAke3NyY2Rp
cn0vZ2luY2x1ZGUvIHRvIGV2ZXJ5IGVudHJ5IGluIGV4dHJhX2hlYWRlcnMuCglmb3IgZmlsZSBp
biAkZXh0cmFfaGVhZGVyczsKCWRvCgkJZXh0cmFfaGVhZGVyc19saXN0PSIke2V4dHJhX2hlYWRl
cnNfbGlzdH0gXCQoc3JjZGlyKS9naW5jbHVkZS8ke2ZpbGV9IgoJZG9uZQpmaQoKaWYgdGVzdCB4
JHVzZV9jb2xsZWN0MiA9IHhubzsgdGhlbgoJdXNlX2NvbGxlY3QyPQpmaQoKIyBBZGQgYSBkZWZp
bml0aW9uIG9mIFVTRV9DT0xMRUNUMiBpZiBzeXN0ZW0gd2FudHMgb25lLgojIEFsc28gdGVsbCB0
b3BsZXYuYyB3aGF0IHRvIGRvLgojIFRoaXMgc3Vic3RpdHV0ZXMgZm9yIGxvdHMgb2YgdC0qIGZp
bGVzLgppZiB0ZXN0IHgkdXNlX2NvbGxlY3QyID0geAp0aGVuCgl3aWxsX3VzZV9jb2xsZWN0Mj0K
CW1heWJlX3VzZV9jb2xsZWN0Mj0KZWxzZQoJd2lsbF91c2VfY29sbGVjdDI9ImNvbGxlY3QyIgoJ
bWF5YmVfdXNlX2NvbGxlY3QyPSItRFVTRV9DT0xMRUNUMiIKZmkKCiMgTkVFRCBUTyBDT05WRVJU
CiMgU2V0IE1EX0RFUFMgaWYgdGhlIHJlYWwgbWQgZmlsZSBpcyBpbiBtZC5wcmUtY3BwLgojIFNl
dCBNRF9DUFAgdG8gdGhlIGNwcCB0byBwYXNzIHRoZSBtZCBmaWxlIHRocm91Z2guICBNZCBmaWxl
cyB1c2UgJzsnCiMgZm9yIGxpbmUgb3JpZW50ZWQgY29tbWVudHMsIHNvIHdlIG11c3QgYWx3YXlz
IHVzZSBhIEdOVSBjcHAuICBJZgojIGJ1aWxkaW5nIGdjYyB3aXRoIGEgY3Jvc3MgY29tcGlsZXIs
IHVzZSB0aGUgY3Jvc3MgY29tcGlsZXIganVzdAojIGJ1aWx0LiAgT3RoZXJ3aXNlLCB3ZSBjYW4g
dXNlIHRoZSBjcHAganVzdCBidWlsdC4KbWRfZmlsZV9zdWI9CmlmIHRlc3QgIngkbWRfY3BwZmxh
Z3MiID0geAp0aGVuCgltZF9maWxlX3N1Yj0kc3JjZGlyL2NvbmZpZy8kbWRfZmlsZQplbHNlCglt
ZF9maWxlPW1kCmZpCgojIElmIHdlIGhhdmUgZ2FzIGluIHRoZSBidWlsZCB0cmVlLCBtYWtlIGEg
bGluayB0byBpdC4KaWYgdGVzdCAtZiAuLi9nYXMvTWFrZWZpbGU7IHRoZW4KCXJtIC1mIGFzOyAk
c3ltYm9saWNfbGluayAuLi9nYXMvYXMtbmV3JGhvc3RfZXhlZXh0IGFzJGhvc3RfZXhlZXh0IDI+
L2Rldi9udWxsCmZpCgojIElmIHdlIGhhdmUgbm0gaW4gdGhlIGJ1aWxkIHRyZWUsIG1ha2UgYSBs
aW5rIHRvIGl0LgppZiB0ZXN0IC1mIC4uL2JpbnV0aWxzL01ha2VmaWxlOyB0aGVuCglybSAtZiBu
bTsgJHN5bWJvbGljX2xpbmsgLi4vYmludXRpbHMvbm0tbmV3JGhvc3RfZXhlZXh0IG5tJGhvc3Rf
ZXhlZXh0IDI+L2Rldi9udWxsCmZpCgojIElmIHdlIGhhdmUgbGQgaW4gdGhlIGJ1aWxkIHRyZWUs
IG1ha2UgYSBsaW5rIHRvIGl0LgppZiB0ZXN0IC1mIC4uL2xkL01ha2VmaWxlOyB0aGVuCiMJaWYg
dGVzdCB4JHVzZV9jb2xsZWN0MiA9IHg7IHRoZW4KIwkJcm0gLWYgbGQ7ICRzeW1ib2xpY19saW5r
IC4uL2xkL2xkLW5ldyRob3N0X2V4ZWV4dCBsZCRob3N0X2V4ZWV4dCAyPi9kZXYvbnVsbAojCWVs
c2UKCQlybSAtZiBjb2xsZWN0LWxkOyAkc3ltYm9saWNfbGluayAuLi9sZC9sZC1uZXckaG9zdF9l
eGVleHQgY29sbGVjdC1sZCRob3N0X2V4ZWV4dCAyPi9kZXYvbnVsbAojCWZpCmZpCgojIEZpZ3Vy
ZSBvdXQgd2hhdCBhc3NlbWJsZXIgYWxpZ25tZW50IGZlYXR1cmVzIGFyZSBwcmVzZW50LgpBQ19N
U0dfQ0hFQ0tJTkcoYXNzZW1ibGVyIGFsaWdubWVudCBmZWF0dXJlcykKZ2NjX2N2X2FzPQpnY2Nf
Y3ZfYXNfYWxpZ25tZW50X2ZlYXR1cmVzPQpnY2NfY3ZfYXNfZ2FzX3NyY2Rpcj1gZWNobyAkc3Jj
ZGlyIHwgc2VkIC1lICdzLC9nY2MkLCwnYC9nYXMKaWYgdGVzdCAteCAiJERFRkFVTFRfQVNTRU1C
TEVSIjsgdGhlbgoJZ2NjX2N2X2FzPSIkREVGQVVMVF9BU1NFTUJMRVIiCmVsaWYgdGVzdCAteCAi
JEFTIjsgdGhlbgoJZ2NjX2N2X2FzPSIkQVMiCmVsaWYgdGVzdCAteCBhcyRob3N0X2V4ZWV4dDsg
dGhlbgoJIyBCdWlsZCB1c2luZyBhc3NlbWJsZXIgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgoJ
Z2NjX2N2X2FzPS4vYXMkaG9zdF9leGVleHQKZWxpZiB0ZXN0IC1mICRnY2NfY3ZfYXNfZ2FzX3Ny
Y2Rpci9jb25maWd1cmUuaW4gLWEgLWYgLi4vZ2FzL01ha2VmaWxlOyB0aGVuCgkjIFNpbmdsZSB0
cmVlIGJ1aWxkIHdoaWNoIGluY2x1ZGVzIGdhcy4KCWZvciBmIGluICRnY2NfY3ZfYXNfZ2FzX3Ny
Y2Rpci9jb25maWd1cmUgJGdjY19jdl9hc19nYXNfc3JjZGlyL2NvbmZpZ3VyZS5pbiAkZ2NjX2N2
X2FzX2dhc19zcmNkaXIvTWFrZWZpbGUuaW4KCWRvCmNoYW5nZXF1b3RlKCwpZG5sCgkJZ2NjX2N2
X2dhc192ZXJzaW9uPWBncmVwICdeVkVSU0lPTj1bMC05XSpcLlswLTldKicgJGZgCmNoYW5nZXF1
b3RlKFssXSlkbmwKCQlpZiB0ZXN0IHgkZ2NjX2N2X2dhc192ZXJzaW9uICE9IHg7IHRoZW4KCQkJ
YnJlYWsKCQlmaQoJZG9uZQpjaGFuZ2VxdW90ZSgsKWRubAoJZ2NjX2N2X2dhc19tYWpvcl92ZXJz
aW9uPWBleHByICIkZ2NjX2N2X2dhc192ZXJzaW9uIiA6ICJWRVJTSU9OPVwoWzAtOV0qXCkiYAoJ
Z2NjX2N2X2dhc19taW5vcl92ZXJzaW9uPWBleHByICIkZ2NjX2N2X2dhc192ZXJzaW9uIiA6ICJW
RVJTSU9OPVswLTldKlwuXChbMC05XSpcKSJgCmNoYW5nZXF1b3RlKFssXSlkbmwKCWlmIHRlc3Qg
eCRnY2NfY3ZfZ2FzX21ham9yX3ZlcnNpb24gIT0geCAtYSB4JGdjY19jdl9nYXNfbWlub3JfdmVy
c2lvbiAhPSB4OyB0aGVuCgkJIyBHYXMgdmVyc2lvbiAyLjYgYW5kIGxhdGVyIHN1cHBvcnQgZm9y
IC5iYWxpZ24gYW5kIC5wMmFsaWduLgoJCSMgYnl0ZXMgdG8gc2tpcCB3aGVuIHVzaW5nIC5wMmFs
aWduLgoJCWlmIHRlc3QgIiRnY2NfY3ZfZ2FzX21ham9yX3ZlcnNpb24iIC1lcSAyIC1hICIkZ2Nj
X2N2X2dhc19taW5vcl92ZXJzaW9uIiAtZ2UgNiAtbyAiJGdjY19jdl9nYXNfbWFqb3JfdmVyc2lv
biIgLWd0IDI7IHRoZW4KCQkJZ2NjX2N2X2FzX2FsaWdubWVudF9mZWF0dXJlcz0iLmJhbGlnbiBh
bmQgLnAyYWxpZ24iCgkJCUFDX0RFRklORShIQVZFX0dBU19CQUxJR05fQU5EX1AyQUxJR04pCgkJ
ZmkKCQkjIEdhcyB2ZXJzaW9uIDIuOCBhbmQgbGF0ZXIgc3VwcG9ydCBzcGVjaWZ5aW5nIHRoZSBt
YXhpbXVtCgkJIyBieXRlcyB0byBza2lwIHdoZW4gdXNpbmcgLnAyYWxpZ24uCgkJaWYgdGVzdCAi
JGdjY19jdl9nYXNfbWFqb3JfdmVyc2lvbiIgLWVxIDIgLWEgIiRnY2NfY3ZfZ2FzX21pbm9yX3Zl
cnNpb24iIC1nZSA4IC1vICIkZ2NjX2N2X2dhc19tYWpvcl92ZXJzaW9uIiAtZ3QgMjsgdGhlbgoJ
CQlnY2NfY3ZfYXNfYWxpZ25tZW50X2ZlYXR1cmVzPSIucDJhbGlnbiBpbmNsdWRpbmcgbWF4aW11
bSBza2lwIgoJCQlBQ19ERUZJTkUoSEFWRV9HQVNfTUFYX1NLSVBfUDJBTElHTikKCQlmaQoJZmkK
ZWxpZiB0ZXN0IHgkaG9zdCA9IHgkdGFyZ2V0OyB0aGVuCgkjIE5hdGl2ZSBidWlsZC4KCSMgU2Vh
cmNoIHRoZSBzYW1lIGRpcmVjdG9yaWVzIHRoYXQgdGhlIGluc3RhbGxlZCBjb21waWxlciB3aWxs
CgkjIHNlYXJjaC4gIEVsc2Ugd2UgbWF5IGZpbmQgdGhlIHdyb25nIGFzc2VtYmxlciBhbmQgbG9z
ZS4gIElmIHdlCgkjIGRvIG5vdCBmaW5kIGEgc3VpdGFibGUgYXNzZW1ibGVyIGJpbmFyeSwgdGhl
biB0cnkgdGhlIHVzZXIncwoJIyBwYXRoLgoJIwoJIyBBbHNvIG5vdGUgd2UgaGF2ZSB0byBjaGVj
ayBNRF9FWEVDX1BSRUZJWCBiZWZvcmUgY2hlY2tpbmcgdGhlCgkjIHVzZXIncyBwYXRoLiAgVW5m
b3J0dW5hdGVseSwgdGhlcmUgaXMgbm8gZ29vZCB3YXkgdG8gZ2V0IGF0IHRoZQoJIyB2YWx1ZSBv
ZiBNRF9FWEVDX1BSRUZJWCBoZXJlLiAgU28gd2UgZG8gYSBicnV0ZSBmb3JjZSBzZWFyY2gKCSMg
dGhyb3VnaCBhbGwgdGhlIGtub3duIE1EX0VYRUNfUFJFRklYIHZhbHVlcy4gIFVnaC4gIFRoaXMg
bmVlZHMKCSMgdG8gYmUgZml4ZWQgYXMgcGFydCBvZiB0aGUgbWFrZS9jb25maWd1cmUgcmV3cml0
ZSB0b28uCgoJaWYgdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORTsgdGhlbgoJCWlmIHRlc3Qg
IngkcHJlZml4IiA9IHhOT05FOyB0aGVuCgkJCXRlc3RfcHJlZml4PS91c3IvbG9jYWwKCQllbHNl
CgkJCXRlc3RfcHJlZml4PSRwcmVmaXgKCQlmaQoJZWxzZQoJCXRlc3RfcHJlZml4PSRleGVjX3By
ZWZpeAoJZmkKCgkjIElmIHRoZSBsb29wIGJlbG93IGRvZXMgbm90IGZpbmQgYW4gYXNzZW1ibGVy
LCB0aGVuIHVzZSB3aGF0ZXZlcgoJIyBvbmUgd2UgY2FuIGZpbmQgaW4gdGhlIHVzZXJzJ3MgcGF0
aC4KCSMgdXNlcidzIHBhdGguCglhcz1hcyRob3N0X2V4ZWV4dAoKCXRlc3RfZGlycz0iJHRlc3Rf
cHJlZml4L2xpYi9nY2MtbGliLyR0YXJnZXQvJGdjY192ZXJzaW9uIFwKCQkgICAkdGVzdF9wcmVm
aXgvbGliL2djYy1saWIvJHRhcmdldCBcCgkJICAgL3Vzci9saWIvZ2NjLyR0YXJnZXQvJGdjY192
ZXJzaW9uIFwKCQkgICAvdXNyL2xpYi9nY2MvJHRhcmdldCBcCgkJICAgJHRlc3RfcHJlZml4LyR0
YXJnZXQvYmluLyR0YXJnZXQvJGdjY192ZXJzaW9uIFwKCQkgICAkdGVzdF9wcmVmaXgvJHRhcmdl
dC9iaW4gXAoJCSAgIC91c3IvbGliZXhlYyBcCgkJICAgL3Vzci9jY3MvZ2NjIFwKCQkgICAvdXNy
L2Njcy9iaW4gXAoJCSAgIC91ZGsvdXNyL2Njcy9iaW4gXAoJCSAgIC9ic2Q0My91c3IvbGliL2Nt
cGxycy9jYyBcCgkJICAgL3Vzci9jcm9zczY0L3Vzci9iaW4gXAoJCSAgIC91c3IvbGliL2NtcGxy
cy9jYyBcCgkJICAgL3N5c3YvdXNyL2xpYi9jbXBscnMvY2MgXAoJCSAgIC9zdnI0L3Vzci9saWIv
Y21wbHJzL2NjIFwKCQkgICAvdXNyL2JpbiIKCglmb3IgZGlyIGluICR0ZXN0X2RpcnM7IGRvCgkJ
aWYgdGVzdCAtZiAkZGlyL2FzJGhvc3RfZXhlZXh0OyB0aGVuCgkJCWdjY19jdl9hcz0kZGlyL2Fz
JGhvc3RfZXhlZXh0CgkJCWJyZWFrOwoJCWZpCglkb25lCmZpCmlmIHRlc3QgeCRnY2NfY3ZfYXMg
IT0geDsgdGhlbgoJIyBDaGVjayBpZiB3ZSBoYXZlIC5iYWxpZ24gYW5kIC5wMmFsaWduCgllY2hv
ICIuYmFsaWduICA0IiA+IGNvbmZ0ZXN0LnMKCWVjaG8gIi5wMmFsaWduICAyIiA+PiBjb25mdGVz
dC5zCglpZiAkZ2NjX2N2X2FzIC1vIGNvbmZ0ZXN0Lm8gY29uZnRlc3QucyA+IC9kZXYvbnVsbCAy
PiYxOyB0aGVuCgkJZ2NjX2N2X2FzX2FsaWdubWVudF9mZWF0dXJlcz0iLmJhbGlnbiBhbmQgLnAy
YWxpZ24iCgkJQUNfREVGSU5FKEhBVkVfR0FTX0JBTElHTl9BTkRfUDJBTElHTikKCWZpCglybSAt
ZiBjb25mdGVzdC5zIGNvbmZ0ZXN0Lm8KCSMgQ2hlY2sgaWYgc3BlY2lmeWluZyB0aGUgbWF4aW11
bSBieXRlcyB0byBza2lwIHdoZW4KCSMgdXNpbmcgLnAyYWxpZ24gaXMgc3VwcG9ydGVkLgoJZWNo
byAiLnAyYWxpZ24gNCwsNyIgPiBjb25mdGVzdC5zCglpZiAkZ2NjX2N2X2FzIC1vIGNvbmZ0ZXN0
Lm8gY29uZnRlc3QucyA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCgkJZ2NjX2N2X2FzX2FsaWdubWVu
dF9mZWF0dXJlcz0iLnAyYWxpZ24gaW5jbHVkaW5nIG1heGltdW0gc2tpcCIKCQlBQ19ERUZJTkUo
SEFWRV9HQVNfTUFYX1NLSVBfUDJBTElHTikKCWZpCglybSAtZiBjb25mdGVzdC5zIGNvbmZ0ZXN0
Lm8KZmkKQUNfTVNHX1JFU1VMVCgkZ2NjX2N2X2FzX2FsaWdubWVudF9mZWF0dXJlcykKCkFDX01T
R19DSEVDS0lORyhhc3NlbWJsZXIgc3Vic2VjdGlvbiBzdXBwb3J0KQpnY2NfY3ZfYXNfc3Vic2Vj
dGlvbnM9CmlmIHRlc3QgeCRnY2NfY3ZfYXMgIT0geDsgdGhlbgoJIyBDaGVjayBpZiB3ZSBoYXZl
IC5zdWJzZWN0aW9uCgllY2hvICIuc3Vic2VjdGlvbiAxIiA+IGNvbmZ0ZXN0LnMKCWlmICRnY2Nf
Y3ZfYXMgLW8gY29uZnRlc3QubyBjb25mdGVzdC5zID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KCQln
Y2NfY3ZfYXNfc3Vic2VjdGlvbnM9Ii5zdWJzZWN0aW9uIgoJCWlmIHRlc3QgLXggbm0kaG9zdF9l
eGVleHQ7IHRoZW4KCQkJZ2NjX2N2X25tPS4vbm0kaG9zdF9leGVleHQKCQllbGlmIHRlc3QgeCRo
b3N0ID0geCR0YXJnZXQ7IHRoZW4KCQkJIyBOYXRpdmUgYnVpbGQuCgkJCWdjY19jdl9ubT1ubSRo
b3N0X2V4ZWV4dAoJCWZpCgkJaWYgdGVzdCB4JGdjY19jdl9ubSAhPSB4OyB0aGVuCgkJCWNhdCA+
IGNvbmZ0ZXN0LnMgPDxFT0YKY29uZnRlc3RfbGFiZWwxOiAud29yZCAwCi5zdWJzZWN0aW9uIC0x
CmNvbmZ0ZXN0X2xhYmVsMjogLndvcmQgMAoucHJldmlvdXMKRU9GCgkJCWlmICRnY2NfY3ZfYXMg
LW8gY29uZnRlc3QubyBjb25mdGVzdC5zID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KCQkJCSRnY2Nf
Y3Zfbm0gY29uZnRlc3QubyB8IGdyZXAgY29uZnRlc3RfbGFiZWwxID4gY29uZnRlc3Qubm0xCgkJ
CQkkZ2NjX2N2X25tIGNvbmZ0ZXN0Lm8gfCBncmVwIGNvbmZ0ZXN0X2xhYmVsMiB8IHNlZCAtZSAn
cy9sYWJlbDIvbGFiZWwxLycgPiBjb25mdGVzdC5ubTIKCQkJCWlmIGNtcCBjb25mdGVzdC5ubTEg
Y29uZnRlc3Qubm0yID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KCQkJCQk6CgkJCQllbHNlCgkJCQkJ
Z2NjX2N2X2FzX3N1YnNlY3Rpb25zPSJ3b3JraW5nIC5zdWJzZWN0aW9uIC0xIgoJCQkJCUFDX0RF
RklORShIQVZFX0dBU19TVUJTRUNUSU9OX09SREVSSU5HKQoJCQkJZmkKCQkJZmkKCQlmaQoJZmkK
CXJtIC1mIGNvbmZ0ZXN0LnMgY29uZnRlc3QubyBjb25mdGVzdC5ubTEgY29uZnRlc3Qubm0yCmZp
CkFDX01TR19SRVNVTFQoJGdjY19jdl9hc19zdWJzZWN0aW9ucykKCmNhc2UgIiR0YXJnZXQiIGlu
IAogIHNwYXJjKi0qLSopCiAgICBBQ19DQUNIRV9DSEVDSyhbYXNzZW1ibGVyIC5yZWdpc3RlciBw
c2V1ZG8tb3Agc3VwcG9ydF0sCglnY2NfY3ZfYXNfcmVnaXN0ZXJfcHNldWRvX29wLCBbCglnY2Nf
Y3ZfYXNfcmVnaXN0ZXJfcHNldWRvX29wPXVua25vd24KCWlmIHRlc3QgeCRnY2NfY3ZfYXMgIT0g
eDsgdGhlbgoJICAgICMgQ2hlY2sgaWYgd2UgaGF2ZSAucmVnaXN0ZXIKCSAgICBlY2hvICIucmVn
aXN0ZXIgJWcyLCAjc2NyYXRjaCIgPiBjb25mdGVzdC5zCgkgICAgaWYgJGdjY19jdl9hcyAtbyBj
b25mdGVzdC5vIGNvbmZ0ZXN0LnMgPiAvZGV2L251bGwgMj4mMTsgdGhlbgoJCWdjY19jdl9hc19y
ZWdpc3Rlcl9wc2V1ZG9fb3A9eWVzCgkgICAgZWxzZQoJCWdjY19jdl9hc19yZWdpc3Rlcl9wc2V1
ZG9fb3A9bm8KCSAgICBmaQoJICAgIHJtIC1mIGNvbmZ0ZXN0LnMgY29uZnRlc3QubwoJZmkKICAg
IF0pCiAgICBpZiB0ZXN0ICJ4JGdjY19jdl9hc19yZWdpc3Rlcl9wc2V1ZG9fb3AiID0geHllczsg
dGhlbgoJQUNfREVGSU5FKEhBVkVfQVNfUkVHSVNURVJfUFNFVURPX09QKQogICAgZmkKCiAgICBj
YXNlICIkdG1fZmlsZSIgaW4KICAgICo2NCopCglBQ19DQUNIRV9DSEVDSyhbZm9yIDY0IGJpdCBz
dXBwb3J0IGluIGFzc2VtYmxlciAoJGdjY19jdl9hcyldLAoJICAgIGdjY19jdl9hc19mbGFnczY0
LCBbCgkJaWYgdGVzdCAtbiAiJGdjY19jdl9hcyI7IHRoZW4KCQkgICAgZWNobyAiLnh3b3JkIGZv
byIgPiBjb25mdGVzdC5zCgkJICAgIGdjY19jdl9hc19mbGFnczY0PW5vCgkJICAgIGZvciBmbGFn
IGluICIteGFyY2g9djkiICItNjQgLUF2OSI7IGRvCgkJCWlmICRnY2NfY3ZfYXMgJGZsYWcgLW8g
Y29uZnRlc3QubyBjb25mdGVzdC5zIFwKCQkJICAgID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KCQkJ
ICAgIGdjY19jdl9hc19mbGFnczY0PSRmbGFnCgkJCSAgICBicmVhawoJCQlmaQoJCSAgICBkb25l
CgkJICAgIHJtIC1mIGNvbmZ0ZXN0LnMgY29uZnRlc3QubwoJCWVsc2UKCQkgICAgaWYgdGVzdCAi
JGdhcyIgPSB5ZXM7IHRoZW4KCQkJZ2NjX2N2X2FzX2ZsYWdzNjQ9Ii02NCAtQXY5IgoJCSAgICBl
bHNlCgkJCWdjY19jdl9hc19mbGFnczY0PSIteGFyY2g9djkiCgkJICAgIGZpCgkJZmkKCV0pCglp
ZiB0ZXN0ICJ4JGdjY19jdl9hc19mbGFnczY0IiA9IHhubzsgdGhlbgpjaGFuZ2VxdW90ZSgsICkK
CSAgICB0bWFrZV9maWxlPWBlY2hvICIgJHRtYWtlX2ZpbGUgIiB8IHNlZCAtZSAncywgc3BhcmMv
dC1zb2wyLTY0ICwgLCcgLWUgJ3MsXiAsLCcgLWUgJ3MsICQsLCdgCgkgICAgZGVwX3RtYWtlX2Zp
bGU9YGVjaG8gIiAkZGVwX3RtYWtlX2ZpbGUgIiB8IHNlZCAtZSAncywgW14gXSovY29uZmlnL3Nw
YXJjL3Qtc29sMi02NCAsICwnIC1lICdzLF4gLCwnIC1lICdzLCAkLCwnYApjaGFuZ2VxdW90ZShb
LCBdKQoJZWxzZQoJICAgIEFDX0RFRklORV9VTlFVT1RFRChBU19TUEFSQzY0X0ZMQUcsICIkZ2Nj
X2N2X2FzX2ZsYWdzNjQiKQoJZmkKCTs7CiAgICAqKSBnY2NfY3ZfYXNfZmxhZ3M2ND0ke2djY19j
dl9hc19mbGFnczY0LW5vfQoJOzsKICAgIGVzYWMKCiAgICBpZiB0ZXN0ICJ4JGdjY19jdl9hc19m
bGFnczY0IiAhPSB4bm87IHRoZW4KCUFDX0NBQ0hFX0NIRUNLKFtmb3IgYXNzZW1ibGVyIG9mZnNl
dGFibGUgJWxvKCkgc3VwcG9ydF0sCgkgICAgZ2NjX2N2X2FzX29mZnNldGFibGVfbG8xMCwgWwoJ
ICAgIGdjY19jdl9hc19vZmZzZXRhYmxlX2xvMTA9dW5rbm93bgoJICAgIGlmIHRlc3QgIngkZ2Nj
X2N2X2FzIiAhPSB4OyB0aGVuCgkJIyBDaGVjayBpZiBhc3NlbWJsZXIgaGFzIG9mZnNldGFibGUg
JWxvKCkKCQllY2hvICJvciAlZzEsICVsbyhhYikgKyAxMiwgJWcxIiA+IGNvbmZ0ZXN0LnMKCQll
Y2hvICJvciAlZzEsICVsbyhhYiArIDEyKSwgJWcxIiA+IGNvbmZ0ZXN0MS5zCgkJaWYgJGdjY19j
dl9hcyAkZ2NjX2N2X2FzX2ZsYWdzNjQgLW8gY29uZnRlc3QubyBjb25mdGVzdC5zIFwKCQkJPiAv
ZGV2L251bGwgMj4mMSAmJgoJCSAgICRnY2NfY3ZfYXMgJGdjY19jdl9hc19mbGFnczY0IC1vIGNv
bmZ0ZXN0MS5vIGNvbmZ0ZXN0MS5zIFwKCQkJPiAvZGV2L251bGwgMj4mMTsgdGhlbgoJCSAgICBp
ZiBjbXAgY29uZnRlc3QubyBjb25mdGVzdDEubyA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCgkJCWdj
Y19jdl9hc19vZmZzZXRhYmxlX2xvMTA9bm8KCQkgICAgZWxzZQoJCQlnY2NfY3ZfYXNfb2Zmc2V0
YWJsZV9sbzEwPXllcwoJCSAgICBmaQoJCWVsc2UKCQkgICAgZ2NjX2N2X2FzX29mZnNldGFibGVf
bG8xMD1ubwoJCWZpCgkJcm0gLWYgY29uZnRlc3QucyBjb25mdGVzdC5vIGNvbmZ0ZXN0MS5zIGNv
bmZ0ZXN0MS5vCgkgICAgZmkKCV0pCglpZiB0ZXN0ICJ4JGdjY19jdl9hc19vZmZzZXRhYmxlX2xv
MTAiID0geHllczsgdGhlbgoJICAgIEFDX0RFRklORShIQVZFX0FTX09GRlNFVEFCTEVfTE8xMCkK
CWZpCiAgICBmaQogICAgOzsKCmNoYW5nZXF1b3RlKCwpZG5sCiAgaVszNDU2N104Ni0qLSopCmNo
YW5nZXF1b3RlKFssXSlkbmwKICAgIEFDX01TR19DSEVDS0lORyhhc3NlbWJsZXIgaW5zdHJ1Y3Rp
b25zKQogICAgZ2NjX2N2X2FzX2luc3RydWN0aW9ucz0KICAgIGlmIHRlc3QgeCRnY2NfY3ZfYXMg
IT0geDsgdGhlbgoJc2V0ICJmaWxkcyBmaXN0cyIgImZpbGRzIG1lbTsgZmlzdHMgbWVtIgoJd2hp
bGUgdGVzdCAkIyAtZ3QgMAogIAlkbwoJCWVjaG8gIiQyIiA+IGNvbmZ0ZXN0LnMKCQlpZiAkZ2Nj
X2N2X2FzIC1vIGNvbmZ0ZXN0Lm8gY29uZnRlc3QucyA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCgkJ
CWdjY19jdl9hc19pbnN0cnVjdGlvbnM9JHtnY2NfY3ZfYXNfaW5zdHJ1Y3Rpb25zfSQxIiAiCgkJ
CUFDX0RFRklORV9VTlFVT1RFRChIQVZFX0dBU19gZWNobyAiJDEiIHwgdHIgJ1thLXogXScgJ1tB
LVpfXSdgKQoJCWZpCgkJc2hpZnQgMgoJZG9uZQoJcm0gLWYgY29uZnRlc3QucyBjb25mdGVzdC5v
CiAgICBmaQogICAgQUNfTVNHX1JFU1VMVCgkZ2NjX2N2X2FzX2luc3RydWN0aW9ucykKICAgIDs7
CmVzYWMKCiMgRmlndXJlIG91dCB3aGF0IGxhbmd1YWdlIHN1YmRpcmVjdG9yaWVzIGFyZSBwcmVz
ZW50LgojIExvb2sgaWYgdGhlIHVzZXIgc3BlY2lmaWVkIC0tZW5hYmxlLWxhbmd1YWdlcz0iLi4u
IjsgaWYgbm90LCB1c2UKIyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgJExBTkdVQUdFUyBpZiBk
ZWZpbmVkLiAkTEFOR1VBR0VTIG1pZ2h0CiMgZ28gYXdheSBzb21lIGRheS4KaWYgdGVzdCB4IiR7
ZW5hYmxlX2xhbmd1YWdlcytzZXR9IiAhPSB4c2V0OyB0aGVuCglpZiB0ZXN0IHgiJHtMQU5HVUFH
RVMrc2V0fSIgPSB4c2V0OyB0aGVuCgkJZW5hYmxlX2xhbmd1YWdlcz0iYGVjaG8gJHtMQU5HVUFH
RVN9IHwgdHIgJyAnICcsJ2AiCgllbHNlCgkJZW5hYmxlX2xhbmd1YWdlcz1hbGwKCWZpCmZpCnN1
YmRpcnM9CmZvciBsYW5nIGluICR7c3JjZGlyfS8qL2NvbmZpZy1sYW5nLmluIC4uCmRvCgljYXNl
ICRsYW5nIGluCgkuLikgOzsKCSMgVGhlIG9kZCBxdW90aW5nIGluIHRoZSBuZXh0IGxpbmUgd29y
a3MgYXJvdW5kCgkjIGFuIGFwcGFyZW50IGJ1ZyBpbiBiYXNoIDEuMTIgb24gbGludXguCmNoYW5n
ZXF1b3RlKCwpZG5sCgkke3NyY2Rpcn0vWypdL2NvbmZpZy1sYW5nLmluKSA7OwoJKikKCSAgbGFu
Z19hbGlhcz1gc2VkIC1uIC1lICdzLF5sYW5ndWFnZT1bJyInIiciJyJdXCguKlwpWyInIiciJyIn
XS4qJCxcMSxwJyAtZSAncyxebGFuZ3VhZ2U9XChbXiAJXSpcKS4qJCxcMSxwJyAkbGFuZ2AKCSAg
aWYgdGVzdCAieCRsYW5nX2FsaWFzIiA9IHgKCSAgdGhlbgoJCWVjaG8gIiRsYW5nIGRvZXNuJ3Qg
c2V0IFwkbGFuZ3VhZ2UuIiAxPiYyCgkJZXhpdCAxCgkgIGZpCgkgIGlmIHRlc3QgeCIke2VuYWJs
ZV9sYW5ndWFnZXN9IiA9IHhhbGw7IHRoZW4KCSAgCWFkZF90aGlzX2xhbmc9eWVzCgkgIGVsc2UK
CQljYXNlICIke2VuYWJsZV9sYW5ndWFnZXN9IiBpbgoJCSAgICAke2xhbmdfYWxpYXN9IHwgIiR7
bGFuZ19hbGlhc30sIiogfCAqIiwke2xhbmdfYWxpYXN9LCIqIHwgKiIsJHtsYW5nX2FsaWFzfSIg
KQoJCQlhZGRfdGhpc19sYW5nPXllcwoJCQk7OwoJCSAgICAqICkKCQkJYWRkX3RoaXNfbGFuZz1u
bwoJCQk7OwoJCWVzYWMKCSAgZmkKCSAgaWYgdGVzdCB4IiR7YWRkX3RoaXNfbGFuZ30iID0geHll
czsgdGhlbgoJCWNhc2UgJGxhbmcgaW4KCQkgICAgJHtzcmNkaXJ9L2FkYS9jb25maWctbGFuZy5p
bikKCQkJaWYgdGVzdCB4JGduYXQgPSB4eWVzIDsgdGhlbgoJCQkJc3ViZGlycz0iJHN1YmRpcnMg
YGVjaG8gJGxhbmcgfCBzZWQgLWUgJ3MsXi4qL1woW14vXSpcKS9jb25maWctbGFuZy5pbiQsXDEs
J2AiCgkJCWZpCgkJCTs7CgkJICAgICopCgkJCXN1YmRpcnM9IiRzdWJkaXJzIGBlY2hvICRsYW5n
IHwgc2VkIC1lICdzLF4uKi9cKFteL10qXCkvY29uZmlnLWxhbmcuaW4kLFwxLCdgIgoJCQk7OwoJ
CWVzYWMKCSAgZmkKCSAgOzsKY2hhbmdlcXVvdGUoWyxdKWRubAoJZXNhYwpkb25lCgojIE1ha2Ug
Z3Roci1kZWZhdWx0LmggaWYgd2UgaGF2ZSBhIHRocmVhZCBmaWxlLgpndGhyZWFkX2ZsYWdzPQpp
ZiB0ZXN0ICR0aHJlYWRfZmlsZSAhPSBzaW5nbGU7IHRoZW4KICAgIHJtIC1mIGd0aHItZGVmYXVs
dC5oCiAgICBlY2hvICIjaW5jbHVkZSBcImd0aHItJHt0aHJlYWRfZmlsZX0uaFwiIiA+IGd0aHIt
ZGVmYXVsdC5oCiAgICBndGhyZWFkX2ZsYWdzPS1ESEFWRV9HVEhSX0RFRkFVTFQKZmkKQUNfU1VC
U1QoZ3RocmVhZF9mbGFncykKCiMgRmluZCBvdXQgd2hhdCBHQyBpbXBsZW1lbnRhdGlvbiB3ZSB3
YW50LCBvciBtYXksIHVzZS4KQUNfQVJHX1dJVEgoZ2MsClsgIC0td2l0aC1nYz17c2ltcGxlLHBh
Z2V9IENob29zZSB0aGUgZ2FyYmFnZSBjb2xsZWN0aW9uIG1lY2hhbmlzbSB0byB1c2UKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2l0aCB0aGUgY29tcGlsZXIuXSwKW2Nhc2UgIiR3aXRodmFs
IiBpbgogIHNpbXBsZSB8IHBhZ2UpCiAgICBHR0M9Z2djLSR3aXRodmFsCiAgICA7OwogICopCiAg
ICBBQ19NU0dfRVJST1IoWyR3aXRodmFsIGlzIGFuIGludmFsaWQgb3B0aW9uIHRvIC0td2l0aC1n
Y10pCiAgICA7Owplc2FjXSwKW2lmIHRlc3QgJGFjX2N2X2Z1bmNfbW1hcF9hbnl3aGVyZSA9IHll
cyBcCiAgICB8fCB0ZXN0ICRhY19jdl9mdW5jX3ZhbGxvYyA9IHllczsgdGhlbgogIEdHQz1nZ2Mt
cGFnZQplbHNlCiAgR0dDPWdnYy1zaW1wbGUKZmldKQpBQ19TVUJTVChHR0MpCmVjaG8gIlVzaW5n
ICRHR0MgZm9yIGdhcmJhZ2UgY29sbGVjdGlvbi4iCgojIEJ1aWxkIGEgbmV3LWFiaSAoYysrKSBz
eXN0ZW0KQUNfQVJHX0VOQUJMRShuZXctZ3h4LWFiaSwKWyAgLS1lbmFibGUtbmV3LWd4eC1hYmkK
CQkJICBzZWxlY3QgdGhlIG5ldyBhYmkgZm9yIGcrKy4gWW91IG11c3Qgc2VsZWN0IGFuIEFCSQoJ
CQkgIGF0IGNvbmZpZ3VyYXRpb24gdGltZSwgc28gdGhhdCB0aGUgY29ycmVjdCBydW50aW1lCgkJ
CSAgc3VwcG9ydCBpcyBidWlsdC4gWW91IGNhbm5vdCBtaXggQUJJcy5dLApbQUNfREVGSU5FKEVO
QUJMRV9ORVdfR1hYX0FCSSkKR1hYX0FCSV9GTEFHPSctZm5ldy1hYmknCmVjaG8gIkJ1aWxkaW5n
IGEgbmV3LWFiaSBnKysgY29tcGlsZXIuIgpdKQpBQ19TVUJTVChHWFhfQUJJX0ZMQUcpCgojIE1h
a2UgZW1wdHkgZmlsZXMgdG8gY29udGFpbiB0aGUgc3BlY3MgYW5kIG9wdGlvbnMgZm9yIGVhY2gg
bGFuZ3VhZ2UuCiMgVGhlbiBhZGQgI2luY2x1ZGUgbGluZXMgdG8gZm9yIGEgY29tcGlsZXIgdGhh
dCBoYXMgc3BlY3MgYW5kL29yIG9wdGlvbnMuCgpsYW5nX3NwZWNzX2ZpbGVzPQpsYW5nX29wdGlv
bnNfZmlsZXM9CmxhbmdfdHJlZV9maWxlcz0Kcm0gLWYgc3BlY3MuaCBvcHRpb25zLmggZ2VuY2hl
Y2suaAp0b3VjaCBzcGVjcy5oIG9wdGlvbnMuaCBnZW5jaGVjay5oCmZvciBzdWJkaXIgaW4gLiAk
c3ViZGlycwpkbwoJaWYgdGVzdCAtZiAkc3JjZGlyLyRzdWJkaXIvbGFuZy1zcGVjcy5oOyB0aGVu
CgkJZWNobyAiI2luY2x1ZGUgXCIkc3ViZGlyL2xhbmctc3BlY3MuaFwiIiA+PnNwZWNzLmgKCQls
YW5nX3NwZWNzX2ZpbGVzPSIkbGFuZ19zcGVjc19maWxlcyAkc3JjZGlyLyRzdWJkaXIvbGFuZy1z
cGVjcy5oIgoJZmkKCWlmIHRlc3QgLWYgJHNyY2Rpci8kc3ViZGlyL2xhbmctb3B0aW9ucy5oOyB0
aGVuCgkJZWNobyAiI2luY2x1ZGUgXCIkc3ViZGlyL2xhbmctb3B0aW9ucy5oXCIiID4+b3B0aW9u
cy5oCgkJbGFuZ19vcHRpb25zX2ZpbGVzPSIkbGFuZ19vcHRpb25zX2ZpbGVzICRzcmNkaXIvJHN1
YmRpci9sYW5nLW9wdGlvbnMuaCIKCWZpCglpZiB0ZXN0IC1mICRzcmNkaXIvJHN1YmRpci8kc3Vi
ZGlyLXRyZWUuZGVmOyB0aGVuCgkJZWNobyAiI2luY2x1ZGUgXCIkc3ViZGlyLyRzdWJkaXItdHJl
ZS5kZWZcIiIgPj5nZW5jaGVjay5oCgkJbGFuZ190cmVlX2ZpbGVzPSIkbGFuZ190cmVlX2ZpbGVz
ICRzcmNkaXIvJHN1YmRpci8kc3ViZGlyLXRyZWUuZGVmIgoJZmkKZG9uZQoKIyBUaGVzZSAod2l0
aG91dCAiYWxsXyIpIGFyZSBzZXQgaW4gZWFjaCBjb25maWctbGFuZy5pbi4KIyBgbGFuZ3VhZ2Un
IG11c3QgYmUgYSBzaW5nbGUgd29yZCBzbyBpcyBzcGVsbGVkIHNpbmd1bGFybHkuCmFsbF9sYW5n
dWFnZXM9CmFsbF9ib290X2xhbmd1YWdlcz0KYWxsX2NvbXBpbGVycz0KYWxsX3N0YWdlc3R1ZmY9
CmFsbF9kaWZmX2V4Y2x1ZGVzPQphbGxfb3V0cHV0cz0nTWFrZWZpbGUgaW50bC9NYWtlZmlsZSBw
by9NYWtlZmlsZS5pbiBmaXhpbmMvTWFrZWZpbGUgZ2NjYnVnJwojIExpc3Qgb2YgbGFuZ3VhZ2Ug
bWFrZWZpbGUgZnJhZ21lbnRzLgphbGxfbGFuZ19tYWtlZmlsZXM9CmFsbF9oZWFkZXJzPQphbGxf
bGliMmZ1bmNzPQoKIyBBZGQgdGhlIGxhbmd1YWdlIGZyYWdtZW50cy4KIyBMYW5ndWFnZXMgYXJl
IGFkZGVkIHZpYSB0d28gbWVjaGFuaXNtcy4gIFNvbWUgaW5mb3JtYXRpb24gbXVzdCBiZQojIHJl
Y29yZGVkIGluIG1ha2VmaWxlIHZhcmlhYmxlcywgdGhlc2UgYXJlIGRlZmluZWQgaW4gY29uZmln
LWxhbmcuaW4uCiMgV2UgYWNjdW11bGF0ZSB0aGVtIGFuZCBwbHVnIHRoZW0gaW50byB0aGUgbWFp
biBNYWtlZmlsZS4KIyBUaGUgb3RoZXIgbWVjaGFuaXNtIGlzIGEgc2V0IG9mIGhvb2tzIGZvciBl
YWNoIG9mIHRoZSBtYWluIHRhcmdldHMKIyBsaWtlIGBjbGVhbicsIGBpbnN0YWxsJywgZXRjLgoK
bGFuZ3VhZ2VfZnJhZ21lbnRzPSJNYWtlLWxhbmciCmxhbmd1YWdlX2hvb2tzPSJNYWtlLWhvb2tz
IgpvbGRzdHlsZV9zdWJkaXJzPQoKZm9yIHMgaW4gLi4gJHN1YmRpcnMKZG8KCWlmIHRlc3QgJHMg
IT0gIi4uIgoJdGhlbgoJCWxhbmd1YWdlPQoJCWJvb3RfbGFuZ3VhZ2U9CgkJY29tcGlsZXJzPQoJ
CXN0YWdlc3R1ZmY9CgkJZGlmZl9leGNsdWRlcz0KCQloZWFkZXJzPQoJCW91dHB1dHM9CgkJbGli
MmZ1bmNzPQoJCS4gJHtzcmNkaXJ9LyRzL2NvbmZpZy1sYW5nLmluCgkJaWYgdGVzdCAieCRsYW5n
dWFnZSIgPSB4CgkJdGhlbgoJCQllY2hvICIke3NyY2Rpcn0vJHMvY29uZmlnLWxhbmcuaW4gZG9l
c24ndCBzZXQgXCRsYW5ndWFnZS4iIDE+JjIKCQkJZXhpdCAxCgkJZmkKCQlhbGxfbGFuZ19tYWtl
ZmlsZXM9IiRhbGxfbGFuZ19tYWtlZmlsZXMgJHtzcmNkaXJ9LyRzL01ha2UtbGFuZy5pbiAke3Ny
Y2Rpcn0vJHMvTWFrZWZpbGUuaW4iCgkJYWxsX2xhbmd1YWdlcz0iJGFsbF9sYW5ndWFnZXMgJGxh
bmd1YWdlIgoJCWlmIHRlc3QgIngkYm9vdF9sYW5ndWFnZSIgPSB4eWVzCgkJdGhlbgoJCQlhbGxf
Ym9vdF9sYW5ndWFnZXM9IiRhbGxfYm9vdF9sYW5ndWFnZXMgJGxhbmd1YWdlIgoJCWZpCgkJYWxs
X2NvbXBpbGVycz0iJGFsbF9jb21waWxlcnMgJGNvbXBpbGVycyIKCQlhbGxfc3RhZ2VzdHVmZj0i
JGFsbF9zdGFnZXN0dWZmICRzdGFnZXN0dWZmIgoJCWFsbF9kaWZmX2V4Y2x1ZGVzPSIkYWxsX2Rp
ZmZfZXhjbHVkZXMgJGRpZmZfZXhjbHVkZXMiCgkJYWxsX2hlYWRlcnM9IiRhbGxfaGVhZGVycyAk
aGVhZGVycyIKCQlhbGxfb3V0cHV0cz0iJGFsbF9vdXRwdXRzICRvdXRwdXRzIgoJCWlmIHRlc3Qg
eCRvdXRwdXRzID0geAoJCXRoZW4KCQkJb2xkc3R5bGVfc3ViZGlycz0iJG9sZHN0eWxlX3N1YmRp
cnMgJHMiCgkJZmkKCQlhbGxfbGliMmZ1bmNzPSIkYWxsX2xpYjJmdW5jcyAkbGliMmZ1bmNzIgoJ
ZmkKZG9uZQoKIyBTaW5jZSB3ZSBjYW4ndCB1c2UgYDo6JyB0YXJnZXRzLCB3ZSBsaW5rIGVhY2gg
bGFuZ3VhZ2UgaW4KIyB3aXRoIGEgc2V0IG9mIGhvb2tzLCByZWFjaGVkIGluZGlyZWN0bHkgdmlh
IGxhbmcuJHt0YXJnZXR9LgoKcm0gLWYgTWFrZS1ob29rcwp0b3VjaCBNYWtlLWhvb2tzCnRhcmdl
dF9saXN0PSJhbGwuYnVpbGQgYWxsLmNyb3NzIHN0YXJ0LmVuY2FwIHJlc3QuZW5jYXAgXAoJaW5m
byBkdmkgXAoJaW5zdGFsbC1ub3JtYWwgaW5zdGFsbC1jb21tb24gaW5zdGFsbC1pbmZvIGluc3Rh
bGwtbWFuIFwKCXVuaW5zdGFsbCBkaXN0ZGlyIFwKCW1vc3RseWNsZWFuIGNsZWFuIGRpc3RjbGVh
biBleHRyYWNsZWFuIG1haW50YWluZXItY2xlYW4gXAoJc3RhZ2UxIHN0YWdlMiBzdGFnZTMgc3Rh
Z2U0Igpmb3IgdCBpbiAkdGFyZ2V0X2xpc3QKZG8KCXg9Cglmb3IgbGFuZyBpbiAuLiAkYWxsX2xh
bmd1YWdlcwoJZG8KCQlpZiB0ZXN0ICRsYW5nICE9ICIuLiI7IHRoZW4KCQkJeD0iJHggJGxhbmcu
JHQiCgkJZmkKCWRvbmUKCWVjaG8gImxhbmcuJHQ6ICR4IiA+PiBNYWtlLWhvb2tzCmRvbmUKCiMg
SWYgd2UncmUgbm90IGJ1aWxkaW5nIGluIHNyY2RpciwgY3JlYXRlIC5nZGJpbml0LgoKaWYgdGVz
dCAhIC1mIE1ha2VmaWxlLmluOyB0aGVuCgllY2hvICJkaXIgLiIgPiAuZ2RiaW5pdAoJZWNobyAi
ZGlyICR7c3JjZGlyfSIgPj4gLmdkYmluaXQKCWlmIHRlc3QgeCRnZGJfbmVlZHNfb3V0X2ZpbGVf
cGF0aCA9IHh5ZXMKCXRoZW4KCQllY2hvICJkaXIgJHtzcmNkaXJ9L2NvbmZpZy8iYGRpcm5hbWUg
JHtvdXRfZmlsZX1gID4+IC5nZGJpbml0CglmaQoJaWYgdGVzdCAieCRzdWJkaXJzIiAhPSB4OyB0
aGVuCgkJZm9yIHMgaW4gJHN1YmRpcnMKCQlkbwoJCQllY2hvICJkaXIgJHtzcmNkaXJ9LyRzIiA+
PiAuZ2RiaW5pdAoJCWRvbmUKCWZpCgllY2hvICJzb3VyY2UgJHtzcmNkaXJ9Ly5nZGJpbml0IiA+
PiAuZ2RiaW5pdApmaQoKIyBEZWZpbmUgdmFyaWFibGVzIGhvc3RfY2Fub25pY2FsIGFuZCBidWls
ZF9jYW5vbmljYWwKIyBiZWNhdXNlIHNvbWUgQ3lnbnVzIGxvY2FsIGNoYW5nZXMgaW4gdGhlIE1h
a2VmaWxlIGRlcGVuZCBvbiB0aGVtLgpidWlsZF9jYW5vbmljYWw9JHtidWlsZH0KaG9zdF9jYW5v
bmljYWw9JHtob3N0fQp0YXJnZXRfc3ViZGlyPQppZiB0ZXN0ICIke2hvc3R9IiAhPSAiJHt0YXJn
ZXR9IiA7IHRoZW4KICAgIHRhcmdldF9zdWJkaXI9JHt0YXJnZXR9LwpmaQpBQ19TVUJTVChidWls
ZF9jYW5vbmljYWwpCkFDX1NVQlNUKGhvc3RfY2Fub25pY2FsKQpBQ19TVUJTVCh0YXJnZXRfc3Vi
ZGlyKQoJCiMgSWYgdGhpcyBpcyB1c2luZyBuZXdsaWIsIHRoZW4gZGVmaW5lIGluaGliaXRfbGli
YyBpbgojIExJQkdDQzJfQ0ZMQUdTLiAgVGhpcyB3aWxsIGNhdXNlIF9fZXByaW50ZiB0byBiZSBs
ZWZ0IG91dCBvZgojIGxpYmdjYy5hLCBidXQgdGhhdCdzIE9LIGJlY2F1c2UgbmV3aWIgc2hvdWxk
IGhhdmUgaXRzIG93biB2ZXJzaW9uIG9mCiMgYXNzZXJ0LmguCmluaGliaXRfbGliYz0KaWYgdGVz
dCB4JHdpdGhfbmV3bGliID0geHllczsgdGhlbgoJaW5oaWJpdF9saWJjPS1EaW5oaWJpdF9saWJj
CmZpCkFDX1NVQlNUKGluaGliaXRfbGliYykKCiMgSWYgJChleGVjX3ByZWZpeCkgZXhpc3RzIGFu
ZCBpcyBub3QgdGhlIHNhbWUgYXMgJChwcmVmaXgpLCB0aGVuIGNvbXB1dGUgYW4KIyBhYnNvbHV0
ZSBwYXRoIGZvciBnY2NfdG9vbGRpciBiYXNlZCBvbiBpbnNlcnRpbmcgdGhlIG51bWJlciBvZiB1
cC1kaXJlY3RvcnkKIyBtb3ZlbWVudHMgcmVxdWlyZWQgdG8gZ2V0IGZyb20gJChleGVjX3ByZWZp
eCkgdG8gJChwcmVmaXgpIGludG8gdGhlIGJhc2ljCiMgJChsaWJzdWJkaXIpL0AodW5saWJzdWJk
aXIpIGJhc2VkIHBhdGguCiMgRG9uJ3Qgc2V0IGdjY190b29sZGlyIHRvIHRvb2xkaXIgc2luY2Ug
dGhhdCdzIG9ubHkgcGFzc2VkIGluIGJ5IHRoZSB0b3BsZXZlbAojIG1ha2UgYW5kIHRodXMgd2Un
ZCBnZXQgZGlmZmVyZW50IGJlaGF2aW9yIGRlcGVuZGluZyBvbiB3aGVyZSB3ZSBidWlsdCB0aGUK
IyBzb3VyY2VzLgppZiB0ZXN0IHgkZXhlY19wcmVmaXggPSB4Tk9ORSAtbyB4JGV4ZWNfcHJlZml4
ID0geCRwcmVmaXg7IHRoZW4KICAgIGdjY190b29sZGlyPSckKGxpYnN1YmRpcikvJCh1bmxpYnN1
YmRpcikvLi4vJCh0YXJnZXRfYWxpYXMpJwplbHNlCmNoYW5nZXF1b3RlKDw8LCA+PilkbmwKIyBB
biBleHBsYW5hdGlvbiBvZiB0aGUgc2VkIHN0cmluZ3M6CiMgIC1lICdzfF5cJChwcmVmaXgpfHwn
ICAgbWF0Y2hlcyBhbmQgZWxpbWluYXRlcyAncHJlZml4JyBmcm9tICdleGVjX3ByZWZpeCcKIyAg
LWUgJ3N8LyR8fCcgICAgICAgICAgICBtYXRjaCBhIHRyYWlsaW5nIGZvcndhcmQgc2xhc2ggYW5k
IGVsaW1pbmF0ZXMgaXQKIyAgLWUgJ3N8XlteL118L3wnICAgICAgICBmb3JjZXMgdGhlIHN0cmlu
ZyB0byBzdGFydCB3aXRoIGEgZm9yd2FyZCBzbGFzaCAoKikKIyAgLWUgJ3N8L1teL10qfC4uL3xn
JyAgICByZXBsYWNlcyBlYWNoIG9jY3VyYW5jZSBvZiAvPGRpcmVjdG9yeT4gd2l0aCAuLi8KIwoj
ICgqKSBOb3RlIHRoaXMgcGF0dGVybiBvdmVyd3JpdGVzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2Yg
dGhlIHN0cmluZwojIHdpdGggYSBmb3J3YXJkIHNsYXNoIGlmIG9uZSBpcyBub3QgYWxyZWFkeSBw
cmVzZW50LiAgVGhpcyBpcyBub3QgYQojIHByb2JsZW0gYmVjYXVzZSB0aGUgZXhhY3QgbmFtZXMg
b2YgdGhlIHN1Yi1kaXJlY3RvcmllcyBjb25jZXJuZWQgaXMKIyB1bmltcG9ydGFudCwganVzdCB0
aGUgbnVtYmVyIG9mIHRoZW0gbWF0dGVycy4KIwojIFRoZSBwcmFjdGljYWwgdXBzaG90IG9mIHRo
ZXNlIHBhdHRlcm5zIGlzIGxpa2UgdGhpczoKIwojICBwcmVmaXggICAgIGV4ZWNfcHJlZml4ICAg
ICAgICByZXN1bHQKIyAgLS0tLS0tICAgICAtLS0tLS0tLS0tLSAgICAgICAgLS0tLS0tCiMgICAv
Zm9vICAgICAgICAvZm9vL2JhciAgICAgICAgICAuLi8KIyAgIC9mb28vICAgICAgIC9mb28vYmFy
ICAgICAgICAgIC4uLwojICAgL2ZvbyAgICAgICAgL2Zvby9iYXIvICAgICAgICAgLi4vCiMgICAv
Zm9vLyAgICAgICAvZm9vL2Jhci8gICAgICAgICAuLi8KIyAgIC9mb28gICAgICAgIC9mb28vYmFy
L3VnZyAgICAgIC4uLy4uLwojCiAgICBkb2xsYXI9JyQkJwogICAgZ2NjX3Rvb2xkaXI9IlwkKGxp
YnN1YmRpcikvXCQodW5saWJzdWJkaXIpL1xgZWNobyBcJChleGVjX3ByZWZpeCkgfCBzZWQgLWUg
J3N8XlwkKHByZWZpeCl8fCcgLWUgJ3N8L1wkKGRvbGxhcil8fCcgLWUgJ3N8XlteL118L3wnIC1l
ICdzfC9bXi9dKnwuLi98ZydcYFwkKHRhcmdldF9hbGlhcykiCmNoYW5nZXF1b3RlKFssIF0pZG5s
CmZpCkFDX1NVQlNUKGdjY190b29sZGlyKQpBQ19TVUJTVChkb2xsYXIpCgojIE5vdGhpbmcgdG8g
ZG8gZm9yIEZMT0FUX0gsIGZsb2F0X2Zvcm1hdCBhbHJlYWR5IGhhbmRsZWQuCm9iamRpcj1gcHdk
YApBQ19TVUJTVChvYmpkaXIpCgojIFByb2Nlc3MgdGhlIGxhbmd1YWdlIGFuZCBob3N0L3Rhcmdl
dCBtYWtlZmlsZSBmcmFnbWVudHMuCiR7Q09ORklHX1NIRUxMLS9iaW4vc2h9ICRzcmNkaXIvY29u
ZmlndXJlLmZyYWcgJHNyY2RpciAiJHN1YmRpcnMiICIkZGVwX2hvc3RfeG1ha2VfZmlsZSIgIiRk
ZXBfdG1ha2VfZmlsZSIKCiMgU3Vic3RpdHV0ZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcwpBQ19T
VUJTVChzdWJkaXJzKQpBQ19TVUJTVChhbGxfYm9vdF9sYW5ndWFnZXMpCkFDX1NVQlNUKGFsbF9j
b21waWxlcnMpCkFDX1NVQlNUKGFsbF9kaWZmX2V4Y2x1ZGVzKQpBQ19TVUJTVChhbGxfaGVhZGVy
cykKQUNfU1VCU1QoYWxsX2xhbmdfbWFrZWZpbGVzKQpBQ19TVUJTVChhbGxfbGFuZ3VhZ2VzKQpB
Q19TVUJTVChhbGxfbGliMmZ1bmNzKQpBQ19TVUJTVChhbGxfc3RhZ2VzdHVmZikKQUNfU1VCU1Qo
YnVpbGRfZXhlZXh0KQpBQ19TVUJTVChidWlsZF9pbnN0YWxsX2hlYWRlcnNfZGlyKQpBQ19TVUJT
VChidWlsZF94bV9maWxlX2xpc3QpCkFDX1NVQlNUKGNjX3NldF9ieV9jb25maWd1cmUpCkFDX1NV
QlNUKHF1b3RlZF9jY19zZXRfYnlfY29uZmlndXJlKQpBQ19TVUJTVChjcHBfaW5zdGFsbF9kaXIp
CkFDX1NVQlNUKGNwcF9tYWluKQpBQ19TVUJTVChkZXBfaG9zdF94bWFrZV9maWxlKQpBQ19TVUJT
VChkZXBfdG1ha2VfZmlsZSkKQUNfU1VCU1QoZXh0cmFfY19mbGFncykKQUNfU1VCU1QoZXh0cmFf
Y19vYmpzKQpBQ19TVUJTVChleHRyYV9jcHBfb2JqcykKQUNfU1VCU1QoZXh0cmFfY3h4X29ianMp
CkFDX1NVQlNUKGV4dHJhX2hlYWRlcnNfbGlzdCkKQUNfU1VCU1QoZXh0cmFfb2JqcykKQUNfU1VC
U1QoZXh0cmFfcGFydHMpCkFDX1NVQlNUKGV4dHJhX3Bhc3NlcykKQUNfU1VCU1QoZXh0cmFfcHJv
Z3JhbXMpCkFDX1NVQlNUKGZsb2F0X2hfZmlsZSkKQUNfU1VCU1QoZ2NjX2d4eF9pbmNsdWRlX2Rp
cikKQUNfU1VCU1QoZ2NjX3ZlcnNpb24pCkFDX1NVQlNUKGdjY192ZXJzaW9uX3RyaWdnZXIpCkFD
X1NVQlNUKGhvc3RfZXhlZXh0KQpBQ19TVUJTVChob3N0X2V4dHJhX2djY19vYmpzKQpBQ19TVUJT
VChob3N0X3htX2ZpbGVfbGlzdCkKQUNfU1VCU1QoaW5zdGFsbCkKQUNfU1VCU1QobGFuZ19vcHRp
b25zX2ZpbGVzKQpBQ19TVUJTVChsYW5nX3NwZWNzX2ZpbGVzKQpBQ19TVUJTVChsYW5nX3RyZWVf
ZmlsZXMpCkFDX1NVQlNUKGxvY2FsX3ByZWZpeCkKQUNfU1VCU1QobWF5YmVfdXNlX2NvbGxlY3Qy
KQpBQ19TVUJTVChtZF9maWxlKQpBQ19TVUJTVChvYmpjX2JvZWhtX2djKQpBQ19TVUJTVChvdXRf
ZmlsZSkKQUNfU1VCU1Qob3V0X29iamVjdF9maWxlKQpBQ19TVUJTVChzdGFnZV9wcmVmaXhfc2V0
X2J5X2NvbmZpZ3VyZSkKQUNfU1VCU1Qoc3ltYm9saWNfbGluaykKQUNfU1VCU1QodGhyZWFkX2Zp
bGUpCkFDX1NVQlNUKHRtX2ZpbGVfbGlzdCkKQUNfU1VCU1Qod2lsbF91c2VfY29sbGVjdDIpCgoK
QUNfU1VCU1RfRklMRSh0YXJnZXRfb3ZlcnJpZGVzKQpBQ19TVUJTVF9GSUxFKGhvc3Rfb3ZlcnJp
ZGVzKQpBQ19TVUJTVChjcm9zc19kZWZpbmVzKQpBQ19TVUJTVF9GSUxFKGNyb3NzX292ZXJyaWRl
cykKQUNfU1VCU1RfRklMRShidWlsZF9vdmVycmlkZXMpCkFDX1NVQlNUX0ZJTEUobGFuZ3VhZ2Vf
ZnJhZ21lbnRzKQpBQ19TVUJTVF9GSUxFKGxhbmd1YWdlX2hvb2tzKQoKIyBFY2hvIHRoYXQgbGlu
a3MgYXJlIGJ1aWx0CmlmIHRlc3QgeCRob3N0ID0geCR0YXJnZXQKdGhlbgoJc3RyMT0ibmF0aXZl
ICIKZWxzZQoJc3RyMT0iY3Jvc3MtIgoJc3RyMj0iIGZyb20gJGhvc3QiCmZpCgppZiB0ZXN0IHgk
aG9zdCAhPSB4JGJ1aWxkCnRoZW4KCXN0cjM9IiBvbiBhICRidWlsZCBzeXN0ZW0iCmZpCgppZiB0
ZXN0ICJ4JHN0cjIiICE9IHggfHwgdGVzdCAieCRzdHIzIiAhPSB4CnRoZW4KCXN0cjQ9CmZpCgpl
Y2hvICJMaW5rcyBhcmUgbm93IHNldCB1cCB0byBidWlsZCBhICR7c3RyMX1jb21waWxlciBmb3Ig
JHt0YXJnZXR9JHN0cjQiIDE+JjIKCmlmIHRlc3QgIngkc3RyMiIgIT0geCB8fCB0ZXN0ICJ4JHN0
cjMiICE9IHgKdGhlbgoJZWNobyAiICR7c3RyMn0ke3N0cjN9LiIgMT4mMgpmaQoKIyBUcnVuY2F0
ZSB0aGUgdGFyZ2V0IGlmIG5lY2Vzc2FyeQppZiB0ZXN0IHgkaG9zdF90cnVuY2F0ZV90YXJnZXQg
IT0geDsgdGhlbgoJdGFyZ2V0PWBlY2hvICR0YXJnZXQgfCBzZWQgLWUgJ3MvXCguLi4uLi4uLi4u
Li4uLlwpLiovXDEvJ2AKZmkKCiMgQ29uZmlndXJlIHRoZSBzdWJkaXJlY3RvcmllcwojIEFDX0NP
TkZJR19TVUJESVJTKCRzdWJkaXJzKQoKIyBDcmVhdGUgdGhlIE1ha2VmaWxlCiMgYW5kIGNvbmZp
Z3VyZSBsYW5ndWFnZSBzdWJkaXJlY3RvcmllcwpBQ19PVVRQVVQoJGFsbF9vdXRwdXRzLApbCi4g
JHNyY2Rpci9jb25maWd1cmUubGFuZwpjYXNlIHgkQ09ORklHX0hFQURFUlMgaW4KeGF1dG8taG9z
dC5oOmNvbmZpZy5pbikKZWNobyA+IGNzdGFtcC1oIDs7CmVzYWMKIyBJZiB0aGUgaG9zdCBzdXBw
b3J0cyBzeW1saW5rcywgcG9pbnQgc3RhZ2VbMTIzNF0gYXQgLi4vc3RhZ2VbMTIzNF0gc28KIyBi
b290c3RyYXBwaW5nIGFuZCB0aGUgaW5zdGFsbGF0aW9uIHByb2NlZHVyZSBjYW4gc3RpbGwgdXNl
CiMgQ0M9InN0YWdlMS94Z2NjIC1Cc3RhZ2UxLyIuICBJZiB0aGUgaG9zdCBkb2Vzbid0IHN1cHBv
cnQgc3ltbGlua3MsCiMgRkxBR1NfVE9fUEFTUyBoYXMgYmVlbiBtb2RpZmllZCB0byBzb2x2ZSB0
aGUgcHJvYmxlbSB0aGVyZS4KIyBUaGlzIGlzIHZpcnR1YWxseSBhIGR1cGxpY2F0ZSBvZiB3aGF0
IGhhcHBlbnMgaW4gY29uZmlndXJlLmxhbmc7IHdlIGRvCiMgYW4gZXh0cmEgY2hlY2sgdG8gbWFr
ZSBzdXJlIHRoaXMgb25seSBoYXBwZW5zIGlmIGxuIC1zIGNhbiBiZSB1c2VkLgppZiB0ZXN0ICIk
c3ltYm9saWNfbGluayIgPSAibG4gLXMiOyB0aGVuCiBmb3IgZCBpbiAuLiAke3N1YmRpcnN9IDsg
ZG8KICAgaWYgdGVzdCAkZCAhPSAuLjsgdGhlbgoJU1RBUlRESVI9YHB3ZGAKCWNkICRkCglmb3Ig
dCBpbiBzdGFnZTEgc3RhZ2UyIHN0YWdlMyBzdGFnZTQgaW5jbHVkZQoJZG8KCQlybSAtZiAkdAoJ
CSRzeW1ib2xpY19saW5rIC4uLyR0ICR0IDI+L2Rldi9udWxsCglkb25lCgljZCAkU1RBUlRESVIK
ICAgZmkKIGRvbmUKZWxzZSB0cnVlIDsgZmkKIyBBdm9pZCBoYXZpbmcgdG8gYWRkIGludGwgdG8g
b3VyIGluY2x1ZGUgcGF0aHMuCmlmIHRlc3QgLWYgaW50bC9saWJpbnRsLmg7IHRoZW4KICBlY2hv
IGNyZWF0aW5nIGxpYmludGwuaAogIGVjaG8gJyNpbmNsdWRlICJpbnRsL2xpYmludGwuaCInID5s
aWJpbnRsLmgKZmkKXSwKWwpob3N0PScke2hvc3R9JwpidWlsZD0nJHtidWlsZH0nCnRhcmdldD0n
JHt0YXJnZXR9Jwp0YXJnZXRfYWxpYXM9JyR7dGFyZ2V0X2FsaWFzfScKc3JjZGlyPScke3NyY2Rp
cn0nCnN1YmRpcnM9JyR7c3ViZGlyc30nCm9sZHN0eWxlX3N1YmRpcnM9JyR7b2xkc3R5bGVfc3Vi
ZGlyc30nCnN5bWJvbGljX2xpbms9JyR7c3ltYm9saWNfbGlua30nCnByb2dyYW1fdHJhbnNmb3Jt
X3NldD0nJHtwcm9ncmFtX3RyYW5zZm9ybV9zZXR9Jwpwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSck
e3Byb2dyYW1fdHJhbnNmb3JtX25hbWV9JwpkZXBfaG9zdF94bWFrZV9maWxlPScke2RlcF9ob3N0
X3htYWtlX2ZpbGV9Jwpob3N0X3htYWtlX2ZpbGU9JyR7aG9zdF94bWFrZV9maWxlfScKZGVwX3Rt
YWtlX2ZpbGU9JyR7ZGVwX3RtYWtlX2ZpbGV9Jwp0bWFrZV9maWxlPScke3RtYWtlX2ZpbGV9Jwp0
aHJlYWRfZmlsZT0nJHt0aHJlYWRfZmlsZX0nCmdjY192ZXJzaW9uPScke2djY192ZXJzaW9ufScK
Z2NjX3ZlcnNpb25fdHJpZ2dlcj0nJHtnY2NfdmVyc2lvbl90cmlnZ2VyfScKbG9jYWxfcHJlZml4
PScke2xvY2FsX3ByZWZpeH0nCmJ1aWxkX2luc3RhbGxfaGVhZGVyc19kaXI9JyR7YnVpbGRfaW5z
dGFsbF9oZWFkZXJzX2Rpcn0nCmJ1aWxkX2V4ZWV4dD0nJHtidWlsZF9leGVleHR9Jwpob3N0X2V4
ZWV4dD0nJHtob3N0X2V4ZWV4dH0nCm91dF9maWxlPScke291dF9maWxlfScKZ2RiX25lZWRzX291
dF9maWxlX3BhdGg9JyR7Z2RiX25lZWRzX291dF9maWxlX3BhdGh9JwpTRVRfTUFLRT0nJHtTRVRf
TUFLRX0nCnRhcmdldF9saXN0PScke3RhcmdldF9saXN0fScKdGFyZ2V0X292ZXJyaWRlcz0nJHt0
YXJnZXRfb3ZlcnJpZGVzfScKaG9zdF9vdmVycmlkZXM9JyR7aG9zdF9vdmVycmlkZXN9Jwpjcm9z
c19kZWZpbmVzPScke2Nyb3NzX2RlZmluZXN9Jwpjcm9zc19vdmVycmlkZXM9JyR7Y3Jvc3Nfb3Zl
cnJpZGVzfScKYnVpbGRfb3ZlcnJpZGVzPScke2J1aWxkX292ZXJyaWRlc30nCmNwcF9pbnN0YWxs
X2Rpcj0nJHtjcHBfaW5zdGFsbF9kaXJ9JwpdKQo=

--Multipart_Sat_Mar__4_00:34:57_2000-1
Content-Type: text/plain; charset=US-ASCII



--Multipart_Sat_Mar__4_00:34:57_2000-1--
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
 --Multipart_Sat_Mar__4_00:34:57_2000-1
 Content-Type: text/plain; charset=US-ASCII
 
>From martin@loewis.home.cs.tu-berlin.de Fri Mar 03 15:56:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/24: Re: Uncomplete template
Date: Fri, 03 Mar 2000 15:56:00 -0000
Message-id: <200003032349.AAA03148@loewis.home.cs.tu-berlin.de>
References: <38BFCD09.178BF61A@cnet.francetelecom.fr>
X-SW-Source: 2000-q1/msg00019.html
Content-length: 1294

>Number:         24
>Category:       c++
>Synopsis:       Uncomplete template
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 03 15:56:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Benoit Sibaud <benoit.sibaud@cnet.francetelecom.fr>
>Release:        2.95.2
>Organization:
France Telecom / CNET
>Environment:
>Description:
 Message-ID: <38BFCD09.178BF61A@cnet.francetelecom.fr>
 Date: Fri, 03 Mar 2000 14:32:41 +0000

 $g++ -v
 Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
 gcc version 2.95.2 20000220 (Debian GNU/Linux)

 $g++ -c Pipo.cpp 

 ***
 #include <string>
 #include <vector>

 class MyClass
 {
 protected:
   std::vector<std::pair<std::string,int> > v;

   void pipo()
   {
      v.push_back(std::pair("", 0)); // should be std::pair<std::string,
 int>
   }
 };
 ***
 Pipo.cpp: In method `void MyClass::pipo()':
 Pipo.cpp:11: Internal compiler error.
 Pipo.cpp:11: Please submit a full bug report.
 Pipo.cpp:11: See <URL: http://www.gnu.org/software/gcc/bugs.html > for
 instructions.

 --
 Benoit Sibaud
 R&D Engineer France Telecom/BD/FTR&D/DAC/OAT
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From loewis@gcc.gnu.org Fri Mar 03 16:06:00 2000
From: loewis@gcc.gnu.org
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org
Subject: Re: c++/23
Date: Fri, 03 Mar 2000 16:06:00 -0000
Message-id: <20000304000600.8815.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00020.html
Content-length: 489

The following reply was made to PR c++/23; it has been noted by GNATS.

From: loewis@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org, martin@loewis.home.cs.tu-berlin.de,
  nobody@gcc.gnu.org
Cc:  
Subject: Re: c++/23
Date: 3 Mar 2000 23:58:52 -0000

 Synopsis: Testing attachments
 
 State-Changed-From-To: open->closed
 State-Changed-By: loewis
 State-Changed-When: Fri Mar  3 15:58:52 2000
 State-Changed-Why:
     Test failed
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=23&database=gcc
>From loewis@gcc.gnu.org Fri Mar 03 17:16:00 2000
From: loewis@gcc.gnu.org
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org
Subject: Re: c++/25
Date: Fri, 03 Mar 2000 17:16:00 -0000
Message-id: <20000304011601.25309.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00021.html
Content-length: 499

The following reply was made to PR c++/25; it has been noted by GNATS.

From: loewis@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org, martin@loewis.home.cs.tu-berlin.de,
  nobody@gcc.gnu.org
Cc:  
Subject: Re: c++/25
Date: 4 Mar 2000 01:08:37 -0000

 Synopsis: More testing
 
 State-Changed-From-To: open->closed
 State-Changed-By: loewis
 State-Changed-When: Fri Mar  3 17:08:37 2000
 State-Changed-Why:
     Send to wrong GNATS_ADDR :-(
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=25&database=gcc
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 04:26:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/27: Re: bug in overloading resolution in egcs-1.1.1
Date: Sat, 04 Mar 2000 04:26:00 -0000
Message-id: <200003041213.NAA00856@loewis.home.cs.tu-berlin.de>
References: <199901051500.QAA09273@count.math.uni-sb.de>
X-SW-Source: 2000-q1/msg00023.html
Content-length: 2365

>Number:         27
>Category:       c++
>Synopsis:       [not accepted] bug in overloading resolution
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 04:26:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Alexander Schiemann <aschiem@count.math.uni-sb.de>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-Id: <199901051500.QAA09273@count.math.uni-sb.de>
 Date: Tue, 5 Jan 1999 16:00:53 +0100 (MET)

 Dear GNUs

 bug of egcs-1.1.1 concerning overload-resolution on linux (and HP-UX):
 conversion sequences containing the same user-defined conversion are
 not ordered in a correct way in the following example:

 If I got something wrong and this is the intended behavior if ANSI-C++
 please send me a short note (aschiem@math.uni-sb.de)

 best regards
 Alexander Schiemann

 <begin example>
 struct A{};

 struct B:A{};

 struct C:B{};


 struct CX{
 C  c;

   operator C&(){return c;}
 };


 // viable functions for call below
 void f(A&);
 void f(B&);

 int main()
 {CX cx;
  C  c;

 f(c);   // the standard conversion to B& is better than to A& 

 f(cx);  // after user defined conversion to C&
	 // the standard conversion to B& is better than to A& 
 }

 <end example>

 <start emacs-shell>
 -> g++-egcs-1.1.1 -v
 Reading specs from /usr/local/egcs-1.1.1/lib/gcc-lib/i686-pc-linux-gnulibc1/egcs-2.91.60/specs
 gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
 -> g++-egcs-1.1.1 -Wall -g over_res.cc 
 over_res.cc: In function `int main()':
 over_res.cc:25: call of overloaded `f (CX &)' is ambiguous
 over_res.cc:16: candidates are: f(A &)
 over_res.cc:17:                 f(B &)
 <end emacs-shell>

 hardware (pentium II 400Mhz):
 MACHINE=i686
 MACHTYPE=i586-pc-linux-gnu
 OSTYPE=linux-gnu

 configuration of egcs-1.1.1:
 #!/bin/sh
 # This file was generated automatically by configure.  Do not edit.
 # This directory was configured as follows:
 ../egcs-1.1.1/configure --with-gcc-version-trigger=/tmp/EGCS/egcs-1.1.1/gcc/version.c --host=i686-pc-linux-gnulibc1 --prefix=/usr/local/egcs-1.1.1 --enable-shared --enable-version-specific-runtime-libs --norecursion 
 # using "mh-frag" and "mt-frag"

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 04:26:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/26: Re: g++ 2.95.2 internal compiler error
Date: Sat, 04 Mar 2000 04:26:00 -0000
Message-id: <200003041208.NAA00749@loewis.home.cs.tu-berlin.de>
References: <Pine.LNX.4.10.10003040228590.1108-200000@manzoni.hypercatalog.com.>
X-SW-Source: 2000-q1/msg00022.html
Content-length: 1039

>Number:         26
>Category:       c++
>Synopsis:       g++ 2.95.2 internal compiler error
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 04:26:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Luca Raggi <luca@hypercatalog.com>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Sat, 4 Mar 2000 02:36:30 -0500 (EST)
 Original-Message-ID: <Pine.LNX.4.10.10003040228590.1108-200000@manzoni.hypercatalog.com.>

 Dear gcc maintainers;

 The enclosed file, when compiled with:

 > g++ -c gcctest.cpp

 Yields:

 gcctest.cpp:10: Internal compiler error.

 Using gcc 2.95.2 on powerpc-linux-unknown-gnu.
 Note that the "friend" declaration probably doesn't abide by the standard.

>How-To-Repeat:

template <class A> class C {
  int foo;
};

class A {
  class B {
    typedef C<A> AA;
  };

  friend class B::AA;
};

>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 04:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/28: Re: bug in "operator ?:"
Date: Sat, 04 Mar 2000 04:36:00 -0000
Message-id: <200003041223.NAA00998@loewis.home.cs.tu-berlin.de>
References: <fl1zib7riw.fsf@poivre.cmla.ens-cachan.fr>
X-SW-Source: 2000-q1/msg00024.html
Content-length: 1052

>Number:         28
>Category:       c++
>Synopsis:       bug in "operator ?:"
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 04:36:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Gabriel Dos Reis <Gabriel.Dos-Reis@cmla.ens-cachan.fr>
>Release:        2.95.2
>Organization:
CMLA, ENS Cachan -- CNRS URA 1611 (France)
>Environment:
>Description:
 
 Date: 27 Mar 1999 00:36:07 +0100
 Original-Message-ID: <fl1zib7riw.fsf@poivre.cmla.ens-cachan.fr>
 Lines: 22


 Consider:

 poivre% cat a.C 
 struct X {};


 int main()
 {
     double* p = (true == false ? throw X() : new double);
 }

 poivre% g++ a.C 
 a.C: In function `int main()':
 a.C:6: converting to `void' from `double *'


 This happens with egcs-2.93.12 on a solaris-2.[56] (I beleive the bug
 to be platform independent). EGCS is in error according to 5.16/2.


 -- Gaby

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 04:46:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/29: Re: Possible bug in the template instanciation machinery
Date: Sat, 04 Mar 2000 04:46:00 -0000
Message-id: <200003041233.NAA01141@loewis.home.cs.tu-berlin.de>
References: <flbth0sp66.fsf@poivre.cmla.ens-cachan.fr>
X-SW-Source: 2000-q1/msg00025.html
Content-length: 1920

>Number:         29
>Category:       c++
>Synopsis:       [not accepted] Possible bug in the template instanciation machinery
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 04:46:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Gabriel Dos Reis <Gabriel.Dos-Reis@cmla.ens-cachan.fr>
>Release:        2.95.2
>Organization:
CMLA, ENS Cachan -- CNRS URA 1611 (France)
>Environment:
>Description:
 Date: 07 Apr 1999 12:25:21 +0200
 Original-Message-ID: <flbth0sp66.fsf@poivre.cmla.ens-cachan.fr>

 Consider the following:

 poivre% cat b.C 
 template<class T> struct Y { typedef T X; };

 // Primary base
 template<class T, class U> struct Base {};

 // partial specializations
 template<class T> struct Base<T, typename T::X> {};

 template<class T> struct Base<typename T::X, T> {};

 template<class T, class U> struct Derived : Base <T, U> {};

 struct A {};

 template<class T> struct Derived<A, T> : Base< Y<T>, Y<T> > {};

 int main()
 {
     Derived<A, int> d;
 }


 poivre% g++ -v; g++ b.C
 Reading specs from /BASE/dosreis/EGCS/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.93.15/specs
 gcc version egcs-2.93.15 19990405 (gcc2 ss-980929 experimental)
 b.C: In instantiation of `Derived<A,int>':
 b.C:19:   instantiated from here
 b.C:19: ambiguous class template instantiation for `struct Base<Y<int>,Y<int> >'
 b.C:9: candidates are: struct Base<typename T::X,T>
 b.C:7:                 struct Base<T,typename T::X>
 b.C:19: base class `Base<Y<int>,Y<int> >' has incomplete type


 From my understanding of 14.5.4.1/1 EGCS gets it wrong because none of
 the specialization matches Base< Y<int>, Y<int> >, so the instanciation
 isn't ambiguous at all. It should be considering the primary template. 

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 04:56:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/30: Re: bug2
Date: Sat, 04 Mar 2000 04:56:00 -0000
Message-id: <200003041244.NAA01324@loewis.home.cs.tu-berlin.de>
References: <199905121029.LAA01639@stmarys-belfast.ac.uk>
X-SW-Source: 2000-q1/msg00026.html
Content-length: 2420

>Number:         30
>Category:       c++
>Synopsis:       [not accepted] template parsing problem
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 04:56:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     D Maley <d.maley@stmarys-belfast.ac.uk>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Wed, 12 May 1999 11:29:35 +0100
 Original-Message-Id: <199905121029.LAA01639@stmarys-belfast.ac.uk>

 With the (stripped down) code below, I can't seem to win:


 template <typename T, typename T1>
 class X {
 public:
   template <typename Derived>
   class Y : public Derived::Base::X<T, T1>::Y<typename Derived::Base> {
   };
 };

 template <typename T1>
 class X<int, T1> {
 public:
   template <typename Derived>
   class Y : public Derived::Base::X<T1>::Y<typename Derived::Base> {
   };
 };

 int main()
 {
   return 0;
 }

 I get:

 gcc -DXTFUNCPROTO -DSUN -w -falt-external-templates -I/usr/openwin/include
 -I/usr/dt/share/include -I.  -c -o test.o test.cpp 2>>err
 *** Error code 1
 make: Fatal error: Command failed for target `test.o'
 test.cpp:14: wrong number of template arguments (1, should be 2)
 test.cpp:3: provided for `template <class T, class T1> X<T,T1>'
 test.cpp:14: confused by earlier errors, bailing out

 but then if I change line 14 to

   class Y : public Derived::Base::X<int, T1>::Y<typename Derived::Base> {

 I get

 airforce1% mk
 gcc -DXTFUNCPROTO -DSUN -w -falt-external-templates -I/usr/openwin/include
 -I/usr/dt/share/include -I.  -c -o test.o test.cpp 2>>err
 *** Error code 1
 make: Fatal error: Command failed for target `test.o'
 test.cpp:14: wrong number of template arguments (2, should be 1)
 test.cpp:14: provided for `template <class T1> template <class Derived>
 X<int,T1>::Y<Derived>'
 test.cpp:14: confused by earlier errors, bailing out

 I'm using

 airforce1% gcc -v
 Reading specs from /usr/local/lib/gcc-lib/i386-pc-solaris2.6/egcs-2.93.10/specs
 gcc version egcs-2.93.10 19990228 (gcc2 ss-980929 experimental)

 Its not vital, but I can't think of any other syntax options so it looks
 like a problem.

 St. Mary's University College
 191 Falls Road, Belfast, BT12 6FE
 N. Ireland.
 Tel: +44 1232 327678
 Fax: +44 1232 333719

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 11:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/31: Re: Optimizer bug in gcc-2.95.2 C++
Date: Sat, 04 Mar 2000 11:06:00 -0000
Message-id: <200003041902.UAA19008@loewis.home.cs.tu-berlin.de>
References: <Pine.LNX.4.05.10003031128430.19277-100000@lar.bfw.de>
X-SW-Source: 2000-q1/msg00027.html
Content-length: 3347

>Number:         31
>Category:       c++
>Synopsis:       Optimizer bug in gcc-2.95.2 C++
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 11:06:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Stephan Springl <springl@bfw-online.de>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Fri, 3 Mar 2000 11:44:20 +0100 (MEZ)
 Original-Message-ID: <Pine.LNX.4.05.10003031128430.19277-100000@lar.bfw.de>

 in the program attached below, the static array f is initialized at
 runtime, probably because the initializer t[0] cannot be resolved as
 constant. With optimisation, e. g. -O1, the array will be initialized with
 wrong values. Without optiomisation, the initailisation is correct.

 gcc -v -O1 t.cc gives:

 Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/specs
 gcc version 2.95.2 19991024 (release)
  /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -D__OPTIMIZE__ -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ t.cc /tmp/ccrqSaYK.ii
 GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
 #include "..." search starts here:
 #include <...> search starts here:
  /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/../../../../include/g++-3
  /usr/local/include
  /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/../../../../i686-pc-linux-gnulibc1/include
  /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/include
  /usr/include
 End of search list.
 The following default directories have been omitted from the search path:
 End of omitted list.
  /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/cc1plus /tmp/ccrqSaYK.ii -quiet -dumpbase t.cc -O2 -version -o /tmp/cc4T7tJl.s
 GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnulibc1) compiled by GNU C version 2.95.2 19991024 (release).
  /usr/i686-pc-linux-gnulibc1/bin/as -V -Qy -o /tmp/ccdGExwZ.o /tmp/cc4T7tJl.s
 GNU assembler version 2.9.5 (i686-pc-linux-gnulibc1) using BFD version 2.9.5.0.16
  /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.1 /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/crtbegin.o -L/usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2 -L/usr/i686-pc-linux-gnulibc1/lib /tmp/ccdGExwZ.o -lgcc -lc -lgcc /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/crtend.o /usr/lib/crtn.o

 Stephan
 =======================================================
 extern "C" void abort();

 struct s
 { int zeile: 8;
   int spalte: 16;
   const char *name;
 };

 int
 main (void)
 { static const char *const t[] = {"a"};
   static const s f[] =
   {{2, 12, t[0]},
    {2, 18, "c"}
   };

   if (f[0].zeile != 2) abort ();
   return 0;
 }

 Stephan Springl                           BFW Werner Völk GmbH
 springl@bfw-online.de                     Büro für Wärmemeßgeräte
 +49 89 82917-452                          Bäckerstr. 56
					   81241 München
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 13:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/36: Re: Problem/Bug in g++ 2.95?
Date: Sat, 04 Mar 2000 13:16:00 -0000
Message-id: <200003042045.VAA19540@loewis.home.cs.tu-berlin.de>
References: <Pine.GSO.4.05.9908031611400.8966-100000@jor-el.fnal.gov>
X-SW-Source: 2000-q1/msg00031.html
Content-length: 2806

>Number:         36
>Category:       c++
>Synopsis:       [not accepted] template friend operator
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 13:16:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Oleg Krivosheev <kriol@fnal.gov>
>Release:        2.95.2
>Organization:
>Environment:
 wally ~ $ uname -a
 SunOS wally 5.6 Generic_105181-13 sun4u sparc SUNW,Ultra-2

 wally ~ $ gcc -v
 Reading specs from
 /home/room1/kriol/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95/specs
 gcc version 2.95 19990728 (release)

>Description:
 Date: Tue, 3 Aug 1999 16:19:48 -0500 (CDT)
 Original-Message-ID: <Pine.GSO.4.05.9908031611400.8966-100000@jor-el.fnal.gov>

 when simple program below compiled with -DPROBLEM
 i've got error message

 wally ~ $ c++ -c -DPROBLEM -Wall -pedantic -ansi aa.C
 aa.C: In instantiation of `vect<double>':
 aa.C:76:   instantiated from here
 aa.C:25: invalid use of undefined type `class vect<double>'
 aa.C:29: forward declaration of `class vect<double>'
 aa.C:25: confused by earlier errors, bailing out

 otherwis all is ok

 Looks like g++ 2.95 accepts unary operator- being separate
 function but not as member. From what i know it can be either
 separate function with one argument or member with
 no arguments.

 template <typename t> class vect;

 #ifndef PROBLEM
 template <typename t> vect<t> operator-( const vect<t>& );
 #endif

 template <typename t> vect<t> operator-( const vect<t>&, const vect<t>& );

 template <typename t>
 class vect {
   public:
     vect( t a );

     vect( const vect<t>& v );
     ~vect();

     vect<t>& operator=( const vect<t>& v );

 #ifdef PROBLEM
     vect<t>  operator-( void ) const;
 #else
     friend vect<t> operator- <>( const vect<t>& );
 #endif

     friend vect<t> operator- <>( const vect<t>&, const vect<t>& );

   private:
     t a_;
 };

 template <typename t> inline
 vect<t>::
 vect( t a ):
   a_(a) {
 }

 template <typename t> inline
 vect<t>::
 vect( const vect<t>& v ):
   a_(v.a_) {
 }

 template <typename t> inline
 vect<t>::
 ~vect() {
 }

 template <typename t> inline vect<t>& 
 vect<t>::
 operator=( const vect<t>& v ) {
   a_ = v.a_;

   return *this;
 }

 #ifdef PROBLEM
 template <typename t> inline vect<t>
 vect<t>::
 operator-( void ) const {
   return vect<t>( -a_ );
 }
 #else
 template <typename t> inline vect<t>
 operator-( const vect<t>& u ) {
   return vect<t>( -u.a_ );
 }
 #endif

 template <typename t> inline vect<t>
 operator-( const vect<t>& u, const vect<t>& v ) {
   return vect<t>( u.a_ - v.a_ );
 }

 int
 main( void ) {
   vect<double> a( 1.0 ), b( 0.0 );
   b = -a;
 }

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 13:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/33: Re: Wrong delete being called.
Date: Sat, 04 Mar 2000 13:16:00 -0000
Message-id: <200003042005.VAA19380@loewis.home.cs.tu-berlin.de>
References: <4.1.19990714001252.009455a0@pop.mail.yahoo.com>
X-SW-Source: 2000-q1/msg00029.html
Content-length: 1699

>Number:         33
>Category:       c++
>Synopsis:       [not accepted] Wrong delete being called.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 13:16:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     "K. Haley" <khaley@bigfoot.com>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-Id: <4.1.19990714001252.009455a0@pop.mail.yahoo.com>
 Date: Thu, 15 Jul 1999 00:06:16 -0600

 The compiler says

 In method `void TPointer<T>::TPointer (int) [with T = int]':
  instantiated from here
  `static void TPointerBase<T>::operator delete (void *) 
         [with T= int]' is private within this context 

 even though no access is necessary in this context; the check should
 be performed only in a delete-expression ([class.free])

 #include <new.h>

 template<class T> class TPointerBase {
   public:

   protected:
     TPointerBase(T* pointer) : P(pointer) {}
     TPointerBase() : P(0) {}

     T* P;

   private:
     void* operator new(size_t) {return 0;}  // prohibit use of new
     void operator delete(void* p) {((TPointerBase<T>*)p)->P=0;}
 };

 template<class T> class TPointer : public TPointerBase<T> {
   public:
     TPointer() : TPointerBase<T>() {}
     TPointer(T* pointer) : TPointerBase<T>(pointer) {}
    ~TPointer() {delete P;}
     TPointer<T>& operator =(T* src) {delete P; P = src; return *this;}
     T* operator->() {return P;}  // Could throw exception if P==0
 };

 int main()
 {
	 TPointer<int> pi;

	 return 0;
 }

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 13:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/34: Re: Bug in g++ name mangling with const pointers?
Date: Sat, 04 Mar 2000 13:16:00 -0000
Message-id: <200003042014.VAA19456@loewis.home.cs.tu-berlin.de>
References: <m117JXo-005P8BC@siphon.tcs.hut.fi>
X-SW-Source: 2000-q1/msg00030.html
Content-length: 1557

>Number:         34
>Category:       c++
>Synopsis:       [bad code] Bug in g++ name mangling with const pointers?
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 13:16:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Marko  Mäkelä <Marko.Makela@HUT.FI>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-Id: <m117JXo-005P8BC@siphon.tcs.hut.fi>
 Date: Thu, 22 Jul 1999 17:09:56 +0300 (EEST)

 I'm using egcs-2.91.66 and GNU ld 2.9.1 on Debian GNU/Linux "potato".
 I noticed that defining an extern const pointer (not necessarily
 pointing to a const object) causes the linker to fail.  Here's a simple
 test:

 ---a.C begin---
 #include<cstdio>
 extern const char*const c;
 int main () {
   puts (c);
 }
 ---a.C end---
 ---b.C begin---
 const char*const c = "hello world\n";
 ---b.C end---

 The linker will fail with the following message:

 a.o: In function `main':
 a.o(.text+0x4): undefined reference to `c'
 collect2: ld returned 1 exit status

 I don't know whether the standard allows the definition of extern
 const pointers, but I think that this is a bug.  Either the compiler
 should issue a warning, or the name mangling code needs some fixing.

 Also, the demangler in the linker (and in gdb) seems to demangle the
 word "const" in the wrong way, e.g. "const char*" becomes "char*const".

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 13:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/32: Re: templated friend ostream & operator <<
Date: Sat, 04 Mar 2000 13:16:00 -0000
Message-id: <200003042054.VAA19569@loewis.home.cs.tu-berlin.de>
References: <Pine.LNX.3.96.990811115248.4976D-100000@gams.ihep.su>
X-SW-Source: 2000-q1/msg00028.html
Content-length: 1609

>Number:         32
>Category:       c++
>Synopsis:       templated friend ostream & operator <<
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 13:16:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Alexander Zvyagin <zvyagin@gams.ihep.su>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Wed, 11 Aug 1999 11:54:39 +0400 (MSD)
 Original-Message-ID: <Pine.LNX.3.96.990811115248.4976D-100000@gams.ihep.su>

 Dear gcc developers!

 The code (see below) compiles fine with egcs-1.1.2 and does not compile
 with gcc-2.95.

 I get error message:
 bug1.c: In instantiation of `A<int,6>':
 bug1.c:15:   instantiated from here
 bug1.c:8: template-id `operator <<<>' for `operator <<(ostream &, const
 A<int,6> &)' does not match any template declaration
 bug1.c: In function `int main()':
 bug1.c:16: no match for `_IO_ostream_withassign & << A<int,6> &'
 ... more lines ...


 With best wishes,
 Alexander Zvyagin.


 // --- CUT HERE ---
 #include <iostream>

 template <class T,T n> class A;

 template <class T,T n> ostream &operator << (ostream &o,const A<T,n> &a);

 template <class T,T n>
 class A { friend ostream &operator << <> (ostream &o,const A<T,n> &a); };

 template <class T,T n> ostream &operator << (ostream &o,const A<T,n> &a)
 { return o << __PRETTY_FUNCTION__ << endl; }

 main(void)
 {
   A<int,6> a;
   cout << a << endl;
 }
 // ---- CUT HERE ------

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 13:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/35: Re: gcc-2.9[56] lookup problem
Date: Sat, 04 Mar 2000 13:16:00 -0000
Message-id: <200003042101.WAA19592@loewis.home.cs.tu-berlin.de>
References: <yg9pv0k84g5.fsf@pcmath03.insa-lyon.fr>
X-SW-Source: 2000-q1/msg00032.html
Content-length: 1475

>Number:         35
>Category:       c++
>Synopsis:       [not accepted] gcc-2.9[56] lookup problem
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 13:16:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Pierre Aubert <paubert@pcmath03.insa-lyon.fr>
>Release:        2.95.2
>Organization:
C.I.S.M.  Universite Claude Bernard Lyon 1 / INSA de Lyon
>Environment:
>Description:
 Date: 19 Aug 1999 12:12:10 +0200
 
 bug report 
 platform independant. it does not compile with all the egcs
 versions I have access to.

 ----------------------------------------------------------------------
 template <short B,short E>
 class R {};

 template <class T> 
 class A {
 public:
   explicit A( T const& t ) : my_t(t){ }

   template <short B,short E>
   A<T> 
   operator() ( R<B,E> const& r ) { return A<T>(my_t); }

   T get() const { return my_t; }

 private:
   T my_t;
 };



 int main() {
   A<int> a(10);
   R<1,3> r;

   // OK
   if( a.template operator()<1,3>(r).get() != 10 )
     return 1;
   // don't find it
   if ( a(r).get() != 10 ) 
     return 2;

   return 0;
 }
 ----------------------------------------------------------------------

 gcc don't find the a(r) call. Do we have to use the a.template ... call?
 aCC and KCC seem to find both calls.

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 13:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/37: Re: Bug report, egcs-2.91.66
Date: Sat, 04 Mar 2000 13:16:00 -0000
Message-id: <200003041917.UAA19244@loewis.home.cs.tu-berlin.de>
References: <Pine.LNX.4.10.9907051701240.9375-100000@lorien>
X-SW-Source: 2000-q1/msg00033.html
Content-length: 4248

>Number:         37
>Category:       c++
>Synopsis:       [bad code] virtual functions for local class not generated
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 13:16:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     "Fedor G. Pikus" <fedorp@wv.mentorg.com>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Mon, 5 Jul 1999 17:16:23 -0700 (PDT)
 Reply-To: "Fedor G. Pikus" <fedor_pikus@mentorg.com>
 Original-Message-ID: <Pine.LNX.4.10.9907051701240.9375-100000@lorien>

 Problem: the following C++ code compiles and links without
 optimization, does not link when compiled with optimization.

 System: Linux Redhat 6.0, kernel 2.2.5.

 EGCS version: 1.1.2, egcs --version reports egcs-2.91.66

 Source:
 ----------------------------- begin source ---------------------------------
 class b 
 {
     public: 
     virtual void *f(void *c) = 0; 
     // virtual void *f(void *c) {} // This works exactly like the line above.
 };

 int main() 
 {             
     // Defining this class outside fixes the problem, 
     // but in the real code it's NOT POSSIBLE.
     class d : public b {
	 public:  
	 // virtual // "virtual" here makes no difference
	 void *f(void *c) { }
     }; 
     // This is the important line: remove it 
     // and the unresolved symbol goes away!
     d D; 
     // new d; // has the same effect as the line above.
 }                                               
 ----------------------------- end source ---------------------------------

 EGCS command:
 c++ -O0 ~/nolink.C <- works fine
 c++ -O1 ~/nolink.C <- does not link:
 /tmp/ccPZtRSO.o(.gnu.linkonce.d.__vt_Q26main.0_1d+0x8): undefined reference to `f__Q26main.0_1dPv.24'
 collect2: ld returned 1 exit status

 EGCS with -v
 c++ -v -O1 ~/nolink.C
 ----------------------------- begin output -----------------------------
 Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
 gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
  /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix) -D__EXCEPTIONS -D__OPTIMIZE__ -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ /user/fedorp/nolink.C nolink.ii
 GNU CPP version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386 Linux/ELF)
 #include "..." search starts here:
 #include <...> search starts here:
  /usr/include/g++-2
  /usr/i386-redhat-linux/include
  /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include
  /usr/include
 End of search list.
  /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cc1plus nolink.ii -quiet -dumpbase nolink.cc -O1 -version -o nolink.s
 GNU C++ version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386-redhat-linux) compiled by GNU C version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release).
  as -V -Qy -o nolink.o nolink.s
 GNU assembler version 2.9.1 (i386-redhat-linux), using BFD version 2.9.1.0.23
  /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/crtbegin.o -L/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66 -L/usr/i386-redhat-linux/lib nolink.o -lstdc++ -lm -lgcc -lc -lgcc /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/crtend.o /usr/lib/crtn.o
 nolink.o(.gnu.linkonce.d.__vt_Q26main.0_1d+0x8): undefined reference to `f__Q26main.0_1dPv.2'
 collect2: ld returned 1 exit status
 ----------------------------- end output -----------------------------

 Thank you in advance.

 -- 
				   Fedor G. Pikus

 WWW: http://www.coho.net/~pikus/
 Mentor Graphics Corporation         | 8625 SW Sorrento Rd
 8405 SW Boeckman Road               | Beaverton, Oregon 97008
 Wilsonville, Oregon 97070           |
 Phone: (503) 685-4857               | Phone: (503) 641 0306
 FAX:   (503) 685-1302               | FAX:   (503) 

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 13:56:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/38: Re: C++, 2.95: Problem with matching of function signatures
Date: Sat, 04 Mar 2000 13:56:00 -0000
Message-id: <200003042140.WAA19913@loewis.home.cs.tu-berlin.de>
References: <199908122125.XAA00703@mira.isdn.cs.tu-berlin.de>
X-SW-Source: 2000-q1/msg00034.html
Content-length: 1576

>Number:         38
>Category:       c++
>Synopsis:       [not accepted] matching of function signatures
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 13:56:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Wolfgang Bangerth <wolf@gaia.iwr.uni-heidelberg.de>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Thu, 12 Aug 1999 20:01:48 +0200 (MET DST)

 // This is a rather new error, since I haven't seen it two or
 // three month before 2.95. Somehow g++ can't match functions with
 // the same signature.
 //
 // Configuration:
 //    gcc version 2.95 19990728 (release)
 //    sparc-sun-solaris2.6
 //
 // gcc output:
 // tmp/x> c++ -c x.cc
 //     x.cc:32: prototype for `T<y>::T(const double
 (&)[T<y>::array_size])' does not match any in class `T<y>'
 //     x.cc:27: candidate is: T<y>::T(const double (&)[T<y>::array_size])
 //     x.cc: In method `T<y>::T(const double (&)[T<y>::array_size])':
 //     x.cc:32: template definition of non-template `T<y>::T(const double
 (&)[T<y>::array_size])'
 //
 // Anyway, we feel deeply indebted to you gcc-authors! Go on!
 // Best regards
 //   Wolfgang
 //
 template <int y>
 class T
 {
   public:
     static const unsigned int array_size = 1;
     typedef double array_type[array_size];

     T (const array_type &array);
 };

 template <int y>
 T<y>::T (const array_type &)
 {};

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 15:46:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/43: Re: C++ gcc-2.95. bug/problem
Date: Sat, 04 Mar 2000 15:46:00 -0000
Message-id: <200003042234.XAA20125@loewis.home.cs.tu-berlin.de>
References: <199908081039.MAA26290@mpii01807.ag1.mpi-sb.mpg.de>
X-SW-Source: 2000-q1/msg00036.html
Content-length: 4179

>Number:         43
>Category:       c++
>Synopsis:       [not accepted] friend operators
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 15:46:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Stefan Schirra <stschirr@mpi-sb.mpg.de>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-Id: <199908081039.MAA26290@mpii01807.ag1.mpi-sb.mpg.de>
 Date: Sun, 08 Aug 1999 12:39:35 +0200


 There seems to be a problem with specialised template friend
 functions in a class template when there are also member functions
 with the same name. The requested info for a bug report is below. (I
 have the same problem under Linux on my notebook - so this seems to
 be platform independent; the same problem arises if namespace is not
 used; the same problems arises if instead of operator- we have plain
 functions). Thanks.

 g++ -v --save-temps specialized_template_friend_member_function_overload_problem.C

 ---

 Reading specs from /KM/usr/naeher/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/specs
 gcc version 2.95 19990728 (release)
  /KM/usr/naeher/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) specialized_template_friend_member_function_overload_problem.C specialized_template_friend_member_function_overload_problem.ii
 GNU CPP version 2.95 19990728 (release) (sparc)
 #include "..." search starts here:
 #include <...> search starts here:
  /KM/usr/naeher/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../include/g++-3
  /KM/usr/naeher/gcc-2.95/include
  /KM/usr/naeher/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../sparc-sun-solaris2.6/include
  /KM/usr/naeher/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/include
  /usr/include
 End of search list.
 The following default directories have been omitted from the search path:
 End of omitted list.
  /KM/usr/naeher/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/cc1plus specialized_template_friend_member_function_overload_problem.ii -quiet -dumpbase specialized_template_friend_member_function_overload_problem.cc -version -o specialized_template_friend_member_function_overload_problem.s
 GNU C++ version 2.95 19990728 (release) (sparc-sun-solaris2.6) compiled by GNU C version 2.7.2.3.
 specialized_template_friend_member_function_overload_problem.C: In instantiation of `CGAL::V<double>':
 specialized_template_friend_member_function_overload_problem.C:54:   instantiated from here
 specialized_template_friend_member_function_overload_problem.C:31: invalid use of undefined type `class CGAL::V<double>'
 specialized_template_friend_member_function_overload_problem.C:33: forward declaration of `class CGAL::V<double>'
 specialized_template_friend_member_function_overload_problem.C:31: confused by earlier errors, bailing out

 ---

 specialized_template_friend_member_function_overload_problem.ii:

 # 1 "specialized_template_friend_member_function_overload_problem.C"



 namespace CGAL{

 template <class T> class P;
 template <class T> class V;

 class O {};

 template <class T>   V<T> operator-( const P<T>&, const O& );

 template <class T>
 class P
 {
   T _a;
   P( const V<T>& v) : _a(v.x()) {}
  public:
   P( const T& a) : _a(a) {}
   T x() { return _a; }
 };

 template <class T>
 class V
 {
   T _b;
   V( const P<T>& p) : _b(p.x()) {}
  public:
   V( const T& a) : _b(a) {}
	  V<T> operator-();
   friend V<T> operator-<>( const P<T>& a, const O& );
   T x() { return _b; }
 };


 template <class T> 

 V<T> 
 operator-( const P<T>& p, const O& )
 { return V<T>( p); }

 template <class T>

 V<T>
 V<T>::operator-()
 { return V<T>( -_b); }

 }  


 int
 main()
 {
   CGAL::P<double> a(1.0);
   CGAL::V<double> b(1.0);

   return 0;
 }


>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 15:46:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/40: Re: Result naming doesn't work for functions defined in a class
Date: Sat, 04 Mar 2000 15:46:00 -0000
Message-id: <200003042239.XAA20164@loewis.home.cs.tu-berlin.de>
References: <14270.52708.140409.985100@bolero>
X-SW-Source: 2000-q1/msg00037.html
Content-length: 2004

>Number:         40
>Category:       c++
>Synopsis:       Result naming doesn't work for functions defined in a class
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 15:46:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Chris Butler <chrisb@sandy.force9.co.uk>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Sat, 21 Aug 1999 18:06:12 +0200 (MET DST)
 Original-Message-ID: <14270.52708.140409.985100@bolero>


 [This bug/behaviour was reported to me as a co-maintainer of the
 Debian GNU/Linux GCC packages. Please Cc: 43170@bugs.debian.org in
 your response so it gets archived in the Debian bugtracking system
 ( http://www.debian.org/Bugs/db/43/43170.html ).]
 The following code gives a parse error with BUG defined. Looking at the
 info docs, I don't think it should.

 Exact error messages: 

 test.cc:12: function body for constructor missing
 test.cc:12: parse error before `{'
 test.cc: In method `string foo::do_foo (const string &)':
 test.cc:12: parse error before `;'
 test.cc:12: confused by earlier errors, bailing out

 -- System Information
 Debian Release: potato
 Architecture: i386
 Kernel: Linux downstairs 2.2.9 #5 Fri Jun 18 19:30:25 BST 1999 i686

 Versions of packages gcc depends on:
 ii  binutils                  2.9.1.0.25-2   The GNU assembler, linker and bina
 ii  cpp                       1:2.95.1-0pre1 The GNU C preprocessor.           
 ii  libc6                     2.1.2-0pre7    GNU C Library: Shared libraries an

>How-To-Repeat:
#include <function.h>
#include <string>

string do_foo(const string& a) return ret; 
{
  ret = "foo" + a;
}

struct foo
{
  string do_foo2(const string& a);
  string do_foo(const string& a) return ret; {
    ret = "foo" + a;
  }
};

string foo::do_foo2(const string& a) return ret; {
	ret = "foo" + a;
}
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 15:46:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/42: Re: templated friend
Date: Sat, 04 Mar 2000 15:46:00 -0000
Message-id: <200003042146.WAA20042@loewis.home.cs.tu-berlin.de>
References: <14253.55552.895629.685616@bolero>
X-SW-Source: 2000-q1/msg00039.html
Content-length: 2832

>Number:         42
>Category:       c++
>Synopsis:       [internal] templated friend
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 15:46:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Max Stekelenburg <max@noviomagus.student.utwente.nl>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Sun,  8 Aug 1999 21:29:07 +0200 (MET DST)
 Original-Message-ID: <14253.55552.895629.685616@bolero>
 Original-Message-ID: <Pine.LNX.4.05.9908071045260.1450-100000@noviomagus.student.utwente.nl>

 [This bug/behaviour was reported to me as a co-maintainer of the
 Debian GNU/Linux GCC packages. Please Cc: 42662@bugs.debian.org in
 your response so it gets archived in the Debian bugtracking system
 ( http://www.debian.org/Bugs/db/42/42662.html ).]

 The code is part of a reference counting system and i'm not sure it is
 correct C++ but it did compile with earlier versions.

 System is X86 linux with 2.3.6 kernel debian unstable install
 g++ package: g++ 2.95-3

 noviomagus:~/src/test$ gcc -v --save-temp test.cc
 Reading specs from /usr/lib/gcc-lib/i386-linux/2.95/specs
 gcc version 2.95 19990728 (release)
  /usr/lib/gcc-lib/i386-linux/2.95/cpp -lang-c++ -v -D__GNUC__=2
 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__
 -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux
 -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386
 -D__i386__ test.cc test.ii
 GNU CPP version 2.95 19990728 (release) (i386 Linux/ELF)
 #include "..." search starts here:
 #include <...> search starts here:
  /usr/lib/gcc-lib/i386-linux/2.95/../../../../include/g++-3
  /usr/local/include
  /usr/lib/gcc-lib/i386-linux/2.95/include
  /usr/include
 End of search list.
 The following default directories have been omitted from the search path:
  /usr/lib/gcc-lib/i386-linux/2.95/../../../../i386-linux/include
 End of omitted list.
  /usr/lib/gcc-lib/i386-linux/2.95/cc1plus test.ii -quiet -dumpbase test.cc
 -version -o test.s
 GNU C++ version 2.95 19990728 (release) (i386-linux) compiled by GNU C
 version 2.95 19990728 (release).
 ptr.hh: In instantiation of `ptr<A>':
 test.cc:5:   instantiated from here
 ptr.hh:33: Internal compiler error.
 ptr.hh:33: Please submit a full bug report.
 ptr.hh:33: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
 instructions.

 noviomagus:~/src/test$ cat test.ii
 # 1 "test.cc"
 # 1 "ptr.hh" 1































 template<class T>
 class ptr {
	 public:
		 ptr(void)
			 {
			 }

		 template<class D>
		 friend ptr<D>;
 };


 # 1 "test.cc" 2

 class A {
 };
 main(){
 ptr<A> p;
 }

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 15:46:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/39: Re: Problem with gcc-2.95
Date: Sat, 04 Mar 2000 15:46:00 -0000
Message-id: <200003042144.WAA20019@loewis.home.cs.tu-berlin.de>
References: <9F5DA2D8E614D211A21100805FA72C3A04B78A87@DRKBFFTC0006>
X-SW-Source: 2000-q1/msg00035.html
Content-length: 1412

>Number:         39
>Category:       c++
>Synopsis:       [not accepted] typedef of nested anonymous class
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 15:46:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     "Fengler, Matthias" <Matthias.Fengler@dresdner-bank.com>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-Id: <9F5DA2D8E614D211A21100805FA72C3A04B78A87@DRKBFFTC0006>
 Date: Mon, 16 Aug 1999 09:17:05 +0200

 I found a problem with gcc-2.95 (tested on Linux/i386 and HP/UX 10.20).
 The following short program doesn't compile.
 Inserting a dummy typedef makes it compile fine.


 Best regards,

 Matthias Fengler

 Dresdner Bank AG
 GM IT 4
 Juergen-Ponto-Platz 1
 60301 Frankfurt
 Germany

 class X1
 {
 public:
	 typedef struct {
	 int xx;
	 } MyStruct1;
 };

 #ifdef WORKAROUND
 /* This dummy typedef makes the program compile */
 typedef X1::MyStruct1 someDummyType;
 #endif

 X1::MyStruct1 foo()
 {
	 X1::MyStruct1 m1;
	 return m1;
 }


 $ g++ -c x.cpp             
 x.cpp:14: semicolon missing after declaration of `struct X1::MyStruct1'
 x.cpp: In function `int foo()':
 x.cpp:16: `struct X1::MyStruct1' used where a `int' was expected
 $  

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 15:46:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/41: Re: Is this a template bug in gcc-2.95.1 ?
Date: Sat, 04 Mar 2000 15:46:00 -0000
Message-id: <200003042310.AAA20227@loewis.home.cs.tu-berlin.de>
References: <37C173AE.B4EE585@esat.kuleuven.ac.be> <37CB86EF.E5F6342E@hfm.tu-graz.ac.at>
X-SW-Source: 2000-q1/msg00038.html
Content-length: 2104

>Number:         41
>Category:       c++
>Synopsis:       [not accepted] friend operator+
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 04 15:46:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
>Release:        2.95.2
>Organization:
TU-Graz
>Environment:
>Description:
 Original-Message-ID: <37CB86EF.E5F6342E@hfm.tu-graz.ac.at>
 Date: Tue, 31 Aug 1999 09:40:31 +0200
 
 Hi there,

   I have just been creating another template+friend example which
 seems to evoke erroneous behaviour of g++-2.95.1 in my eyes.

 Please don't think that this example is exotic. I used to implement
 fuzzy numbers, where I coded the alpha-levels by using a third
 template argument that points to an array.

   But let's go on to my source. It fails to compile with g++-2.95.1
 but compile with egcs-1.1.2

 a.cc: In function `int main ()':
 a.cc:33: no match for `int + vec<int, 3, (&i_ref)> &'


  So, if I introduce the third arg, gcc-2.95.1 complains, while
 egcs-1.1.2 does the job.

  Thanks for the patience to read all my bug reports. Your efforts
 could help me a lot because I have Ziliions of line of template code,
 which I have to rearrange for gcc-2.95 if this turns out to be a bug.

>How-To-Repeat:
template <class T, unsigned n, const T *ref>
class vec
{
  T v[n];
 public:
  vec () { for (unsigned i=0;i<n;i++) v[i]=0; }
  vec (const T& x) { for (unsigned i=0;i<n;i++) v[i]=x; }

  template <class U, unsigned m,const U *rref> 
  friend vec<U,m,rref> 
  operator+ (U a, const vec<U,m,rref> &b);  
};

template <class T, unsigned n,const T *ref>
inline vec<T,n,ref>
operator+ (T a, const vec<T,n,ref> &b)
{ 
  vec<T,n,ref>  ret;
  for (unsigned i=0;i<n;i++) ret.v[i] = a + b.v[i]; 
  return ret;
}

extern const int i_ref;
const int i_ref = 1;

// expl instantiation.
template class vec<int,3,&i_ref>;

int main()
{
  vec<int,3,&i_ref> a(2);
  
  3+a;
}

>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/44: Re: gcc bug?
Date: Sun, 05 Mar 2000 02:06:00 -0000
Message-id: <200003050948.KAA00562@loewis.home.cs.tu-berlin.de>
References: <001e01bef8b7$66a70cc0$6d04a8c0@nb.isel.pt>
X-SW-Source: 2000-q1/msg00040.html
Content-length: 3722

>Number:         44
>Category:       c++
>Synopsis:       [not accepted] Bugs in <iterator>
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 02:06:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     "Joao Belo" <jbelo@isel.pt>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-ID: <001e01bef8b7$66a70cc0$6d04a8c0@nb.isel.pt>
 Date: Mon, 6 Sep 1999 23:30:19 +0100

 Hello,

 with the code

	 #include <iterator>

	 template<class T>
	 struct X
	 {
	 };

	 template<class T>
	 X<T> operator+(const X<T>&, const X<T>&);

	 template<>
	 X<int> operator+<int>(const X<int>&, const X<int>&);

 gcc reports:


 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h: In instantiation of `iterator_traits<int>':

 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h:576:   instantiated from `reverse_iterator<int>'
	 x.cpp:12:   instantiated from here

 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h:104: `int' is not a class, struct, or union type

 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h:105: `int' is not a class, struct, or union type

 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h:106: `int' is not a class, struct, or union type

 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h:107: `int' is not a class, struct, or union type

 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h:108: `int' is not a class, struct, or union type

 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h: In instantiation of `reverse_iterator<int>':
	 x.cpp:12:   instantiated from here

 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h:576: no type named `iterator_category' in `struct
 iterator_traits<int>'

 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h:578: no type named `value_type' in `struct
 iterator_traits<int>'

 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h:580: no type named `difference_type' in `struct
 iterator_traits<int>'

 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h:582: no type named `pointer' in `struct
 iterator_traits<int>'

 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h:584: no type named `reference' in `struct
 iterator_traits<int>'

 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h:601: no type named `reference' in `struct
 iterator_traits<int>'

 /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
 ../../../../include/g++-
	 3/stl_iterator.h:601: confused by earlier errors, bailing out

 Is this a bug?

 I'm using Cygwin b20, gcc version 2.95 19990728 (release)

 Thank you,
 Joao Belo


>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/45: Re: Template Specialization
Date: Sun, 05 Mar 2000 02:16:00 -0000
Message-id: <200003051001.LAA00823@loewis.home.cs.tu-berlin.de>
References: <37E78776.36C42062@carter.net>
X-SW-Source: 2000-q1/msg00041.html
Content-length: 1637

>Number:         45
>Category:       c++
>Synopsis:       [not accepted] Template Specialization
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 02:16:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Casey Carter <casey@carter.net>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-ID: <37E78776.36C42062@carter.net>
 Date: Tue, 21 Sep 1999 08:26:14 -0500

 [Original report simplified]

 Under gcc-2.95.1, on 'i686-pc-linux-gnu' the code below returns a
 syntax error on compilation.  This same code compiled fine way back
 around egcs-1.0, but has been broken since 1.1 or thereabouts.  For
 the curious, this is part of the type promotion code for a
 template-metaprogram implementation of lisp I'm working on (maybe a
 future Master's Thesis project).

 Casey Carter

>How-To-Repeat:
template <int N> class Int {
public:
  typedef Int val;
};

template <char C> class Char {
public:
  typedef Char val;
};

template <class A, class B>
class NumPromote {};

template <char C, int N>
class NumPromote< Char <C>, Int <N> > {
public:
  typedef Int<C> val;
  typedef Int<N> val1;
};

template <int N, char C>
class NumPromote< Int<N>, Char<C> > {
public:
  typedef Int<N> val;
  typedef Int<C> val1;
};


static NumPromote< Char<69>, Int<0> >::val ci0;
static NumPromote< Char<69>, Int<0> >::val1 ci1;
static NumPromote< Int<0>, Char<69> >::val ic0;
static NumPromote< Int<0>, Char<69> >::val1 ic1;

>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/46: Re: assuming & on overloaded member function incorrectly reported
Date: Sun, 05 Mar 2000 02:16:00 -0000
Message-id: <200003051007.LAA00888@loewis.home.cs.tu-berlin.de>
References: <C147A7827CF7D011BEB700805FD6C9C0E2855E@GBHKM001>
X-SW-Source: 2000-q1/msg00043.html
Content-length: 3313

>Number:         46
>Category:       c++
>Synopsis:       assuming & on overloaded member function incorrectly reported
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 02:16:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     "Thomas, Paul D" <paul.thomas@eds.com>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-ID: <C147A7827CF7D011BEB700805FD6C9C0E2855E@GBHKM001>
 Date: Wed, 6 Oct 1999 10:17:06 +0100 

 I am getting the error "assuming & on overloaded member function"
 reported when I compile the attached source with gcc version 2.95.1
 and version 2.95. This code compiled fine with egcs version 2.91.60.
 The system type is powerpc-ibm-aix4.2.1.0 and I am using no special
 options.

 I have attached the following files:

 overload.cxx - the source file
 output       - output to gcc -v --save-temps overload.cxx
 overload.ii  - preprocessed output [removed from report - mvl]
 overload.s   - assembly code       [removed from report - mvl

 Please don't hesitate to contact me should you require any further
 information.

 regards,
 Paul Thomas

 [output]
Reading specs from /local/gcc/lib/gcc-lib/powerpc-ibm-aix4.2.1.0/2.95.1/specs
gcc version 2.95.1 19990816 (release)
 /local/gcc/lib/gcc-lib/powerpc-ibm-aix4.2.1.0/2.95.1/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D_IBMR2 -D_POWER -D_AIX -D_AIX32 -D_AIX41 -D_LONG_LONG -D_IBMR2 -D_POWER -D_AIX -D_AIX32 -D_AIX41 -D_LONG_LONG -Asystem(unix) -Asystem(aix) -D__EXCEPTIONS -D__CHAR_UNSIGNED__ -D_ARCH_COM overload.cxx overload.ii
GNU CPP version 2.95.1 19990816 (release)
#include "..." search starts here:
#include <...> search starts here:
 /local/gcc/lib/gcc-lib/powerpc-ibm-aix4.2.1.0/2.95.1/../../../../include/g++-3
 /local/gcc/lib/gcc-lib/powerpc-ibm-aix4.2.1.0/2.95.1/../../../../powerpc-ibm-aix4.2.1.0/include
 /local/gcc/lib/gcc-lib/powerpc-ibm-aix4.2.1.0/2.95.1/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/local/include
End of omitted list.
 /local/gcc/lib/gcc-lib/powerpc-ibm-aix4.2.1.0/2.95.1/cc1plus overload.ii -quiet -dumpbase overload.cc -version -o overload.s
GNU C++ version 2.95.1 19990816 (release) (powerpc-ibm-aix4.2.1.0) compiled by GNU C version 2.95.1 19990816 (release).
overload.cxx: In function `void __static_initialization_and_destruction_0(int, int)':
overload.cxx:30: assuming & on overloaded member function

>How-To-Repeat:
template <class T>
class A
{
  public:
    typedef void (*Handler) (A&);
    A(Handler handler) : m_handler(handler) {};

  private:
    Handler m_handler;
};

class B
{
};

class C
{
};

typedef A<B> MB;
typedef A<C> MC;

class X
{
  public:
    static void process(MB&);
    static void process(MC&);
};

MB b(X::process);

void X::process(MB& b)
{
}

void X::process(MC& c)
{
}

void main(int)
{
}

//g++ overload2.cxx
//overload2.cxx: In function `void __static_initialization_and_destruction_0(int, int)':
//overload2.cxx:30: assuming & on overloaded member function

//Compilation exited abnormally with code 1 at Mon Oct  4 11:34:07

>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/48: Re: New bad bug in initialization of static arrays
Date: Sun, 05 Mar 2000 02:16:00 -0000
Message-id: <200003051004.LAA00861@loewis.home.cs.tu-berlin.de>
References: <199909270656.PAA04756@radon1.awa.tohoku.ac.jp>
X-SW-Source: 2000-q1/msg00042.html
Content-length: 5342

>Number:         48
>Category:       c++
>Synopsis:       initialization of static arrays
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 02:16:02 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Glenn Horton-Smith <gas@radon1.awa.tohoku.ac.jp>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Mon, 27 Sep 1999 15:56:43 +0900
 Original-Message-Id: <199909270656.PAA04756@radon1.awa.tohoku.ac.jp>
 Reply-to: gas@hep.stanford.edu

 Greetings,

	 The following short piece of code compiles fine using
	 egcs-2.91.66, but not 2.95.1:

 class HepString {
 public:
   inline HepString();
   // Constructs empty string.

   HepString(const char *);
   // Constructs string from a character array.

   inline ~HepString();
   // Destroys string, deallocating storage.
 };

 const HepString names[10][5] = {
   { "b1(1235)",   "h1(1170)",   "h1(1380)",      "k1(1270)",      "k1(1270)" },
   { "a0(1450)",   "f0(1370)",           "", "k0_star(1430)", "k0_star(1430)" },
   { "a1(1260)",   "f1(1285)",   "f1(1420)",      "k1(1400)",      "k1(1400)" },
   { "a2(1320)",   "f2(1270)","f2_prime(1525)","k2_star(1430)","k2_star(1430)"},
   {"pi2(1670)", "eta2(1645)", "eta2(1870)",      "k2(1770)",      "k2(1770)" },
   {"rho(1700)", "omega(1600)",          "",  "k_star(1680)",  "k_star(1680)" },
  {"rho3(1690)","omega3(1670)","phi3(1850)", "k3_star(1780)", "k3_star(1780)" },
   { "pi(1300)",  "eta(1295)",  "eta(1440)",       "k(1460)",       "k(1460)" },
   {"rho(1450)","omega(1420)",  "phi(1680)",  "k_star(1410)",  "k_star(1410)" },
   {         "",   "f2(1810)",   "f2(2010)", "k2_star(1980)", "k2_star(1980)" }
 };
 ////////////////////////////////////////////////////////////////


	 In the new compiler, it produces the following irrational
	 error message ten times:

 testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested

	 Obviously, the compiler was never asked to convert from
	 "const HepString[5]" to "HepString".  It must be confused.
	 Here is the complete set of information as requested in
	 http://www.fsf.org/software/gcc/faq.html#bugreport:


 [gas@radon1 ~]$ g++ -v --save-temps testqqq.cc
 Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/specs
 gcc version 2.95.1 19990816 (release)
  /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ testqqq.cc testqqq.ii
 GNU CPP version 2.95.1 19990816 (release) (i386 Linux/ELF)
 #include "..." search starts here:
 #include <...> search starts here:
  /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/../../../../include/g++-3
  /usr/local/include
  /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/../../../../i686-pc-linux-gnu/include
  /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/include
  /usr/include
 End of search list.
 The following default directories have been omitted from the search path:
 End of omitted list.
  /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/cc1plus testqqq.ii -quiet -dumpbase testqqq.cc -version -o testqqq.s
 GNU C++ version 2.95.1 19990816 (release) (i686-pc-linux-gnu) compiled by GNU C version 2.95.1 19990816 (release).
 testqqq.cc: In function `void __static_initialization_and_destruction_0(int, int)':
 testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested
 testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested
 testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested
 testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested
 testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested
 testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested
 testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested
 testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested
 testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested
 testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested


	 Note that the above demonstration code doesn't actually do
	 anything (other than demonstrate the bug).  The bug was
	 initially found when attempting to compile Geant4.0.1
	 from CERN, which is known to compile and execute just fine
	 with egcs-2.91.60.

	 I hope you can identify and fix this one quickly, because
	 it seems like a real problem.

	 Keep up the good work!
						 Sincerely,
						 Glenn Horton-Smith
						 gas@awa.tohoku.ac.jp

  [In gcc version 2.96 20000302, the compiler says
    In function `void __static_initialization_and_destruction_0 (int, int)':
    Internal compiler error in `emit_move_insn', at expr.c:2548
   -- Martin v. Löwis ]


>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/47: Re: 2.95.1 nested classes broken
Date: Sun, 05 Mar 2000 02:16:00 -0000
Message-id: <200003051008.LAA00904@loewis.home.cs.tu-berlin.de>
References: <199909270547.WAA32443@linux1.magma-da.com>
X-SW-Source: 2000-q1/msg00044.html
Content-length: 4201

>Number:         47
>Category:       c++
>Synopsis:       [not accepted] nested classes broken
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 02:16:02 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     raymond@magma.magma-da.com
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Sun, 26 Sep 1999 22:47:46 -0700
 Original-Message-Id: <199909270547.WAA32443@linux1.magma-da.com>


 Dear gcc maintainers,

 In gcc-2.95.1 the scoping of nested classes is broken.   The snippet below
 compiles with gcc-2.7.2, egcs-1.1.2 and a wide variety of newer commercial
 C++ compilers, but it fails on 2.95.1.

 Thanks,
 -Raymond


 ----------------------------------------------------------------------
 49[linux1:]~/src/test>cat namescope.cxx
 class A {
 public:
	 class B;
	 class C;
 };

 class A::B {
 };

 class A::C {
	 class D;
 };

 class A::C::D {
 public:
	 B* foo();         // A::B should be in scope
 };
 ----------------------------------------------------------------------

 50[linux1:]~/src/test>/usr/local/gcc-2.95/bin/g++ -v  namescope.cxx
 Reading specs from /usr/local/gcc-2.95/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/specs
 gcc version 2.95.1 19990816 (release)
  /usr/local/gcc-2.95/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ namescope.cxx /tmp/cc8RbNC5.ii
 GNU CPP version 2.95.1 19990816 (release) (i386 Linux/ELF)
 #include "..." search starts here:
 #include <...> search starts here:
  /usr/local/gcc-2.95/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/../../../../include/g++-3
  /usr/local/include
  /usr/local/gcc-2.95/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/../../../../i686-pc-linux-gnu/include
  /usr/local/gcc-2.95/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/include
  /usr/include
 End of search list.
 The following default directories have been omitted from the search path:
 End of omitted list.
  /usr/local/gcc-2.95/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/cc1plus /tmp/cc8RbNC5.ii -quiet -dumpbase namescope.cc -version -o /tmp/ccbQ8vF6.s
 GNU C++ version 2.95.1 19990816 (release) (i686-pc-linux-gnu) compiled by GNU C version 2.95.1 19990816 (release).
 namescope.cxx:16: syntax error before `*'

 51[linux1:]~/src/test>
 ----------------------------------------------------------------------
 FYI:

 51[linux1:]~/src/test>g++ -v -Wall -c namescope.cxx
 Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
 gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
  /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix) -D__EXCEPTIONS -Wall -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ namescope.cxx /tmp/ccibKqii.ii
 GNU CPP version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386 Linux/ELF)
 #include "..." search starts here:
 #include <...> search starts here:
  /usr/include/g++-2
  /usr/local/include
  /usr/i386-redhat-linux/include
  /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include
  /usr/include
 End of search list.
  /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cc1plus /tmp/ccibKqii.ii -quiet -dumpbase namescope.cc -Wall -version -o /tmp/ccJ9v2Sl.s
 GNU C++ version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386-redhat-linux) compiled by GNU C version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release).
  as -V -Qy -o namescope.o /tmp/ccJ9v2Sl.s
 GNU assembler version 2.9.1 (i386-redhat-linux), using BFD version 2.9.1.0.23
 52[linux1:]~/src/test>
 ----------------------------------------------------------------------

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:26:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/49: Re: error with templates and namespaces
Date: Sun, 05 Mar 2000 02:26:00 -0000
Message-id: <200003051012.LAA00983@loewis.home.cs.tu-berlin.de>
References: <Pine.LNX.4.10.9911041632240.12142-100000@josquin.ucsd.edu>
X-SW-Source: 2000-q1/msg00045.html
Content-length: 2203

>Number:         49
>Category:       c++
>Synopsis:       [not accepted] using-declarations in templates
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 02:26:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     "Gary A. Huber" <ghuber@josquin.ucsd.edu>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Thu, 4 Nov 1999 16:38:51 -0800 (PST)
 Original-Message-ID: <Pine.LNX.4.10.9911041632240.12142-100000@josquin.ucsd.edu>

 Hi, gcc folks,

 I have some code that doesn't compile.  Apparently, the using
 keyword doesn't work in templated functions.  It compiles
 fine using the Kuck and Associates compiler.

 I'm using egcs-1.1.2-24 on a Pentium box running Red Hat Linux 6.0
 I've also tried it with gcc-2.95.2 and I get the same results.

 Below is the command I use, the error messages, and the actual code.

 gcc -o gcc_test gcc_test.cc -lstdc++

 gcc_test.cc: In function `int g<int>(const int &)':
 gcc_test.cc:35:   instantiated from here
 gcc_test.cc:17: `f' undeclared (first use this function)
 gcc_test.cc:17: (Each undeclared identifier is reported only once
 gcc_test.cc:17: for each function it appears in.)

 Thanks

 Gary

 //#########################################################
 // gcc_test.cc

 #include <stdio.h>

 //################
 namespace A{

   void f(){
     printf( "f\n");
   }
 }

 //################
 template< class T>
 T g( const T& t){

   using namespace A;

   f();
   return t + t;
 }

 //################
 int h( int t){

   using namespace A;

   f();
   return t+t;
 }

 //################
 int main(){

   int i = 2;
   //  int j = h(i);  // this works
   int j = g(i);  // this does not work
 }

 -------------------------------------------------------------------

 Gary A. Huber, Ph.D                     ghuber@ucsd.edu
 Assistant Professor                     Phone: (858) 534-4277
 Department of Bioengineering            FAX:   (858) 534-6896
 University of California San Diego
 La Jolla, CA 92093-0412
 USA


>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:26:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/50: Re: gcc-2.95.1: problem calling destructor on typedef of int within a namespace
Date: Sun, 05 Mar 2000 02:26:00 -0000
Message-id: <200003051010.LAA00956@loewis.home.cs.tu-berlin.de>
References: <C147A7827CF7D011BEB700805FD6C9C0E91D30@GBHKM001>
X-SW-Source: 2000-q1/msg00046.html
Content-length: 2249

>Number:         50
>Category:       c++
>Synopsis:       problem calling destructor on typedef of int within namespace
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 02:26:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     "Thomas, Paul D" <paul.thomas@eds.com>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-ID: <C147A7827CF7D011BEB700805FD6C9C0E91D30@GBHKM001>
 Date: Wed, 20 Oct 1999 11:59:58 +0100

 When I compile this code fragment using gcc 2.95.1:

 namespace A {typedef int Z;}
 int main(void)
 {
     A::Z* z;
     z->A::Z::~Z(); //error
 }

 The following error is reported...

 In function 'int main()':
 5: qualified type 'int' does not match destructor name '~Z'

 The strange thing is that if I include the typedef line
 twice, gcc++ compiles the code without any problem. e.g.

 namespace A {typedef int Z;}
 namespace A {typedef int Z;}
 int main(void)
 {
     A::Z* z;
     z->A::Z::~Z(); //okay
 }

 or

 namespace A {typedef int Z; typedef int Z;}
 int main(void)
 {
     A::Z* z;
     z->A::Z::~Z(); //okay
 }

 This looks like a bug in g++ to me particularly as there is a
 very similar code fragment in section 3.4.3 (5) of the  C++
 Draft Standard (2 Dec 96) which looks like this...

 struct A {
 typedef int I;
 };
 typedef int I1, I2;
 extern int* p;
 extern int* q;
 p->A::I::~I();  // I is looked up in the scope of A
 q->I1::~I2();   // I2 is looked up in the scope of
		 // the postfix-expression

 If I add a main around this code so that it looks like this...

 struct A {
 typedef int I;
 };
 int main(void)
 {
     typedef int I1, I2;
     extern int* p;
     extern int* q;
     p->A::I::~I(); // I is looked up in the scope of A
     q->I1::~I2(); // I2 is looked up in the scope of
		   // the postfix-expression
 }

 gcc 2.95.1 reports the following error which is the same as
 the error reported on my code fragment above:

 In function 'int main()':
 9: qualified type 'int' does not match destructor name '~I'

 --
 Paul Thomas
 paul.thomas@eds.com

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/51: Re: g++ reports error for ISO C++ example
Date: Sun, 05 Mar 2000 02:36:00 -0000
Message-id: <200003051022.LAA01094@loewis.home.cs.tu-berlin.de>
References: <38308445.E132105F@cygnus.co.uk>
X-SW-Source: 2000-q1/msg00047.html
Content-length: 1169

>Number:         51
>Category:       c++
>Synopsis:       [not accepted] g++ reports error for ISO C++ example
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 02:36:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Jonathan Larmour <jlarmour@cygnus.co.uk>
>Release:        2.95.2
>Organization:
Cygnus Solutions
>Environment:
>Description:
 Original-Message-ID: <38308445.E132105F@cygnus.co.uk>
 Date: Mon, 15 Nov 1999 22:08:05 +0000
 

 This example snippet is from the ISO C++ standard, sect 7.5 para 4:

 extern "C" typedef void FUNC_c();

 class C {
   public:
	 static FUNC_c* q;
 };

 But when compiling we get:

 $ gcc -c flibble.cxx
 flibble.cxx:1: multiple storage classes in declaration of `FUNC_c'

 Since this is an example in the standard, by definition this should work.
 This should probably also be added as a testcase for the future, or better
 still the whole example from sect 7.5 para 4.

 This is gcc 2.95.2 on Linux BTW.

 Jifl

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:46:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/54: Re: template, static const int and overloading
Date: Sun, 05 Mar 2000 02:46:00 -0000
Message-id: <200003051028.LAA01159@loewis.home.cs.tu-berlin.de>
References: <382956BA.77EB57@matfys.lth.se>
X-SW-Source: 2000-q1/msg00050.html
Content-length: 1859

>Number:         54
>Category:       c++
>Synopsis:       [not acecpted] template, static const int and overloading
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 02:46:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Petter Urkedal <petter@matfys.lth.se>
>Release:        2.96
>Organization:
Lund Institute of Technology
>Environment:
>Description:
 Original-Message-ID: <382956BA.77EB57@matfys.lth.se>
 Date: Wed, 10 Nov 1999 12:27:54 +0100
 

 When static const int member is used as the template parameter to
 an argument of a member function, and the member function is
 defined out-of-class, its prototype is not recognized (at least
 in the case shown below).

 The simple workaround is to use an enum, which is probably better
 than static const int anyway.

 Please, CC me!

 Cheers,
 Petter.


 [---]$ gcc -v
 Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/2.96/specs
 gcc version 2.96 19991107 (experimental)

 [---]$ uname -a
 Linux katsumoto.matfys.lth.se 2.2.5-22 #1 Wed Jun 2 09:02:27 EDT 1999
 i586 unknown

 [---]$ gcc tempmemb.cc
 tempmemb.cc:10: prototype for `void tau<T>::find (alpha<tau<T>::D> &)
 const' does not match any in class `tau<T>'
 tempmemb.cc:7: candidate is: void tau<T>::find (alpha<tau<T>::D> &)
 const
 tempmemb.cc:10: template definition of non-template `void tau<T>::find
 (alpha<tau<T>::D> &) const'

 [---]$ cat tempmemb.cc
 template<int N> struct alpha {};

 template<typename T>
   struct tau {
       static const int D = T::some_CT_int_member;
       typedef alpha<D> beta;
       void find(beta&) const;
   };

 template<typename T> void tau<T>::find(beta& x) const {}

 [---]$

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:46:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/53: Re: inner template classes as friends?
Date: Sun, 05 Mar 2000 02:46:00 -0000
Message-id: <200003051024.LAA01131@loewis.home.cs.tu-berlin.de>
References: <199911092225.XAA12111@margay.ica1.uni-stuttgart.de>
X-SW-Source: 2000-q1/msg00048.html
Content-length: 1388

>Number:         53
>Category:       c++
>Synopsis:       [not accepted] inner template classes as friends?
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 02:46:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Stefan Schwarzer <sts@ica1.uni-stuttgart.de>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Tue, 9 Nov 1999 23:25:40 +0100 (MET)
 Original-Message-Id: <199911092225.XAA12111@margay.ica1.uni-stuttgart.de>

 // According to 14.5.3 (1) we should be able to declare friend a class template
 //  or class template specialization

 // I am not too sure of whether the follwing sytax is intended/correct,
 // but it is  swallowed by current versions of KCC and cxx (edg frontend).

 // Stefan Schwarzer ---  sts@ica1.uni-stuttgart.de


 template <class T> 
 struct A {
   template <class U> class B;

   // this is generous, but should work - compiles with edg frontends: cxx, KCC
   //  -- but does not compile with gcc-2.95.2 (linux i686)  :-( 
   template <class S> template <class U> friend class A<S>::B; 
 };

 template <class S> template <class U> class A<S>::B {
 }; 

 int main(){
   A<double>::B<double>  ab;
   return 0; 
 }


>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:46:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/55: Re: namespace bug using function templates
Date: Sun, 05 Mar 2000 02:46:00 -0000
Message-id: <200003051026.LAA01150@loewis.home.cs.tu-berlin.de>
References: <51C9F3C392D0D111A15600A0C99E64A9011E24B3@localhost>
X-SW-Source: 2000-q1/msg00051.html
Content-length: 3074

>Number:         55
>Category:       c++
>Synopsis:       [not accepted] using-directives in templates
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 02:46:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     John Pedretti <pedretti@roguewave.com>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-ID: <51C9F3C392D0D111A15600A0C99E64A9011E24B3@localhost>
 Date: Fri, 19 Nov 1999 18:15:36 -0700

 Hi,

 The following code does not compile, apparently due to a bug in the way
 function templates and namespaces are handled: class templates seem to work
 properly.

 Thanks,

 John

 ===========================
 John A. Pedretti, Rogue Wave Software, Inc.   
 (303) 545-3150     pedretti@roguewave.com  
 ===========================

 ---------------------------------------
 // foo.cc

 namespace xx {
     // declare function template inside namespace
     template <class T>
     void foo (T&) { }
 }

 // using namespace xx;          // compiles if the using declaration is
 moved to file scope

 // declare function template inside global namespace
 template <class T>
 void bar (T& t) {
     using namespace xx;
     foo (t);
 //    xx::foo (t);                       // compiles if foo() is explicitly
 qualified
 }

 template void bar<int> (const int&);  // instantiate bar<int>

 ----------------------------------------
 output of g++ -c -v foo.cc:


 Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
 gcc version 2.95.2 19991024 (release)
  /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp -lang-c++ -v -D__GNUC__=2
 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__
 -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux
 -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386
 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro
 -D__pentiumpro__ foo.cc /tmp/cc72F7M1.ii
 GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
 #include "..." search starts here:
 #include <...> search starts here:
  /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3
  /usr/local/include

 /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/incl
 ude
  /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/include
  /usr/include
 End of search list.
 The following default directories have been omitted from the search path:
 End of omitted list.
  /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus /tmp/cc72F7M1.ii -quiet
 -dumpbase foo.cc -version -o /tmp/ccMoxa8S.s
 GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled by
 GNU C version 2.95.2 19991024 (release).
 foo.cc:19: template-id `bar<int>' for `bar(const int &)' does not match any
 template declaration
 foo.cc:19: confused by earlier errors, bailing out

 Compilation exited abnormally with code 1 at Fri Nov 19 20:16:49

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:46:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/52: Re: user defined conversion to void
Date: Sun, 05 Mar 2000 02:46:00 -0000
Message-id: <200003051031.LAA01213@loewis.home.cs.tu-berlin.de>
References: <199911092228.XAA12178@margay.ica1.uni-stuttgart.de>
X-SW-Source: 2000-q1/msg00049.html
Content-length: 1146

>Number:         52
>Category:       c++
>Synopsis:       [not accepted] user defined conversion to void
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 02:46:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Stefan Schwarzer <sts@ica1.uni-stuttgart.de>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Tue, 9 Nov 1999 23:28:30 +0100 (MET)
 Original-Message-Id: <199911092228.XAA12178@margay.ica1.uni-stuttgart.de>

 //
 // the standard allows conversion functions (12.3.2) with the form 
 // operator type-specifier-seq ()
 // now from the grammar summary one figures out that 'void' is a 
 // correct type-specifier-seq
 // although it is not terribly useful (12.3.2.1) one 
 // is allowed to declare such 
 // functions (footnote 103)

 // gcc-2.95.2 should thus compile this code 


 // Stefan Schwarzer      sts@ica1.uni-stuttgart.de

 struct A{
   operator void(){};
 };

 int main(){
   A a;
 }

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 03:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: target/56: Re: [C++]: Error definiting static member in templates with initialization
Date: Sun, 05 Mar 2000 03:06:00 -0000
Message-id: <200003051055.LAA01570@loewis.home.cs.tu-berlin.de>
References: <14526.10123.942282.197060@gargle.gargle.HOWL>
X-SW-Source: 2000-q1/msg00052.html
Content-length: 12915

>Number:         56
>Category:       target
>Synopsis:       [bad code]: Error defining static member in templates with initialization
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 03:06:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Clemens Hintze <clemens.hintze@alcatel.de>
>Release:        2.95.2
>Organization:
>Environment:
 OS: OSF1 slbhdg V4.0 1229 alpha
 GCC: 2.95.2
>Description:
 Original-Message-ID: <14526.10123.942282.197060@gargle.gargle.HOWL>
 Date: Thu, 2 Mar 2000 09:34:19 +0100 (MET)

 Hello,

 on 18th of November last year I have sent a bug report describing a
 serious problem with GCC 2.95.2 on a DEC Alpha machine! As I have got
 no answer from you, I suppose that something went wrong during sending
 of my mail.

 Therefore I have recomposite that bug report. Please be so kind to
 give me an answer so that I know you have got the mail this time.

 Here we go ...

 At 17th of November last year, I have installed the GCC on our alpha
 machine. All went well. My first test compilation of some C++ code of
 mine, was successful. But then I have tried to compile a code, that
 heavily rely on templates.

 The compilation was successful, but the linker moaned, that it cannot
 resolve the symbol to a static member of the template class. The same
 compilation with the same compiler version was ok for:

 - SunOS slbh88 5.7 Generic_106541-07 sun4u sparc SUNW,Ultra-Enterprise
 - Linux 2.2.10

 After some investigation of the assembler output, it seems to me, that
 the definition of the static member will not find its way into the .s
 file, *IF* I do both *define* the static member, and *initialize* it
 with the same statement.

 That means:

    template <class T>
    int Test<T>::val;

 will work, but if I do this:

    template <class T>
    int Test<T>::val = 0;

 the C++ compiler will not forsee storage for this member! So the
 linker will complain!!!

 I have attached a bzipped tarfile containing following files:

    tst.cc       - Source that show you the wrong behavior
    tst.log      - [c++ -v --save-temps -o tst tst.cc >& tst.log]
    tst.ii       - You know :-)
    tst.s        - That too ;-)

 If there is a patch to solve that problem, could you tell me, how I
 can find it?

>How-To-Repeat:
begin 664 bug_tst.tar.bz2
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
)R13A0D!KO4#P
`
end
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 03:26:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/57: Re: g++ 2.95.2 bug
Date: Sun, 05 Mar 2000 03:26:00 -0000
Message-id: <200003051111.MAA01848@loewis.home.cs.tu-berlin.de>
References: <384DD807.8721FBCC@roguewave.com>
X-SW-Source: 2000-q1/msg00053.html
Content-length: 2556

>Number:         57
>Category:       c++
>Synopsis:       [not accepted] templates in default arguments
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 03:26:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Martin Sebor <sebor@roguewave.com>
>Release:        2.95.2
>Organization:
Rogue Wave Software, Inc.
>Environment:
>Description:
 Original-Message-ID: <384DD807.8721FBCC@roguewave.com>
 Date: Tue, 07 Dec 1999 21:01:11 -0700

 This is a report of a g++ 2.95.2 bug. The code below doesn't compile:

 Thank you
 Martin


 $ cat test.cpp


 template <class T, class U>
 struct A {
     static const int n = 0;
 };

 template <class T>
 struct B
 {
     template <class U>
     void foo (int = A<T, U>::n) { }
 };


 $ g++ -c -v /build/sebor/dev/stdlib2/tests/regress/src/test.cpp
 Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
 gcc version 2.95.2 19991024 (release)
  /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp -lang-c++ -v -D__GNUC__=2
 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix
 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix
 -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386)
 -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__
 -D__pentiumpro -D__pentiumpro__
 /build/sebor/dev/stdlib2/tests/regress/src/test.cpp /tmp/ccsxupTb.ii
 GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
 #include "..." search starts here:
 #include <...> search starts here:
  /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3
  /usr/local/include

 /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/include
  /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/include
  /usr/include
 End of search list.
 The following default directories have been omitted from the search
 path:
 End of omitted list.
  /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus /tmp/ccsxupTb.ii
 -quiet -dumpbase test.cc -version -o /tmp/cceGXWld.s
 GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled
 by GNU C version 2.95.2 19991024 (release).
 /build/sebor/dev/stdlib2/tests/regress/src/test.cpp:12: parse error
 before `>'


 ==============================================
     Martin Sebor, Lead Software Engineer
 C++ Standards Group, Rogue Wave Software, Inc.
     sebor@roguewave.com   (303) 545-3287

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 03:26:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/58: Re: Unwarranted non-void return warning
Date: Sun, 05 Mar 2000 03:26:00 -0000
Message-id: <200003051107.MAA01780@loewis.home.cs.tu-berlin.de>
References: <199912140632.AAA30846@pale.csres.utexas.edu>
X-SW-Source: 2000-q1/msg00054.html
Content-length: 80913

>Number:         58
>Category:       c++
>Synopsis:       Unwarranted non-void return warning
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 03:26:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     "James A. Bednar" <jbednar@cs.utexas.edu>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Tue, 14 Dec 1999 00:32:27 -0600
 Original-Message-Id: <199912140632.AAA30846@pale.csres.utexas.edu>

 Unless I'm somehow misunderstanding things, g++ 2.95.2 generates a
 bizarrely meaningless warning when compiling the following function
 with optimization on a 600Mhz Pentium III running Red Hat Linux 6.0
 (kernel 2.2.12-25):

   #include "retinalobjs.h"
   Retinal_Object* new_RURN(void)
   {
     return 0;
     Retinal_Object::VarMap vars;
     return new Retinal_UniformRandomNoise("",vars);
   }

 The full source (after cpp processing) is attached below.  Here is the
 warning:

   pale:~/research/lissom/src> g++ -v
   Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
   gcc version 2.95.2 19991024 (release)

   pale:~/research/lissom/src> g++ -c -Wall -O -I../tnt/  warn.c
   warn.c: In function `class Retinal_Object * new_RURN()':
   warn.c:8: warning: control reaches end of non-void function
   `new_RURN()'

 The same warning is present without the "return 0", but I put that in
 just to be absolutely clear that there is no way to return from the
 function without a value.  Earlier egcs versions did not flag a
 warning on this code.

 Jim
>How-To-Repeat:
begin 664 warn.cpp.bz2
M0EIH.3%!62936>R:><\`R9I_@'__________O___[[____]A7]]\^GH:$77,
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
IEK[.M]1+8*4HH:$:3(5I%(?N@WDO+BY4Q5XH*-?_B[DBG"A(=DT\YX``
`
end
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/59: Re: Template problem: Is it me, or is it the compiler?
Date: Sun, 05 Mar 2000 10:06:00 -0000
Message-id: <200003051750.SAA00699@loewis.home.cs.tu-berlin.de>
References: <386B870C.4517B5CB@netvision.net.il>
X-SW-Source: 2000-q1/msg00055.html
Content-length: 2245

>Number:         59
>Category:       c++
>Synopsis:       [not accepted] deducing non-type template parameters
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 10:06:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Michael Ben-Gershon <mybg@netvision.net.il>
>Release:        2.95.2
>Organization:
My Office
>Environment:
>Description:
 Date: Thu, 30 Dec 1999 18:23:40 +0200
 Original-Message-ID: <386B870C.4517B5CB@netvision.net.il>

 Compiling the following code with gcc-2.95.2 gives the error:

 test1.cc: In function `int main()':
 test1.cc:32: no match for `ostream & << R<int,-5,5> &'
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3/iostream.h:77:
 candidates are: class ostream & ostream::operator <<(char)
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3/iostream.h:78:                
 class ostream & ostream::operator <<(unsigned char)
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3/iostream.h:79:                
 class ostream & ostream::operator <<(signed char)

 etc. etc. etc.

 The code is:

 #include <iostream>

 template<class T, T lower, T upper>
 class R
 {
   public:
     R() { value = lower; }
     T val() const { return value; }
   private:
     T value;
 };

 template<class T, T lower, T upper>
 ostream&
 operator<<(ostream& out_stream, const R<T, lower, upper>& the_value)
 {
   return out_stream << the_value.val();
 } 

 int main()
 {
   R<int, -5, 5> f;
   cout << endl;
   cout << "Number is: " << f << endl;
   return 0;
 }

 If the class is defined slightly differently, and all references
 to it are altered accordingly, all is OK:

 template<class T, T lower, T upper> is replaced with:
 template<class T, int lower, int upper>

 Of course, this will be no good in a real example, as the class
 needs to be able to specify the other template parameters in
 terms of T and not in terms of int!

 I seem to recall that is worked with some earlier version of g++

 Michael Ben-Gershon
 mybg@netvision.net.il

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/61: Re: Language bug in static initializers?
Date: Sun, 05 Mar 2000 10:16:00 -0000
Message-id: <200003051806.TAA00812@loewis.home.cs.tu-berlin.de>
References: <200001050525330590.01C2F367@smtp.a001.sprintmail.com>
X-SW-Source: 2000-q1/msg00057.html
Content-length: 2231

>Number:         61
>Category:       c++
>Synopsis:       [not accepted] static initializers cannot access private members
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 10:16:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     "Bruce Eckel" <bruce@eckelobjects.com>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-ID: <200001050525330590.01C2F367@smtp.a001.sprintmail.com>
 Date: Wed, 05 Jan 2000 05:25:33 -0800
 Reply-To: bruce@eckelobjects.com

 I think the following should work, but I get an access
 error with 2.91.66.

 Static initialization expressions have special access to
 private elements of a class, but I suspect that the
 addresses of the member function addresses were overlooked.
 That or I've screwed up the syntax. Thanks for any
 feedback.

 //: C11:PointerToMemberFunction2.cpp
 // From Thinking in C++, 2nd Edition
 // Available at http://www.BruceEckel.com
 #include <iostream>
 using namespace std;

 class Widget {
   void f(int) const {cout << "Widget::f()\n";}
   void g(int) const {cout << "Widget::g()\n";}
   void h(int) const {cout << "Widget::h()\n";}
   void i(int) const {cout << "Widget::i()\n";}
   static const int cnt = 4;
   static void (Widget::*fptr[])(int) const;
 public:
   void select(int i, int j) {
     if(i < 0 || i >= cnt) return;
     (this->*fptr[i])(j);
   }
   int count() { return cnt; }
 };

 // Initialization of static should have access
 // to private addresses:
 void (Widget::*fptr[])(int) const = {
     &Widget::f, // Full spec required
     &Widget::g,
     &Widget::h,
     &Widget::i,
 };

 int main() {
   Widget w;
   for(int i = 0; i < w.count(); i++)
     w.select(i, 47);
 } ///:~



 ===========================================
 Bruce Eckel    http://www.BruceEckel.com
 Contains free electronic books: "Thinking in Java" &
 "Thinking in C++ 2e"
 Please subscribe to my free newsletter -- just send any
 email to:
 join-eckel-oo-programming@earth.lyris.net
 ===========================================


>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/62: Re: 2.95.2 namespace bug persists
Date: Sun, 05 Mar 2000 10:16:00 -0000
Message-id: <200003051804.TAA00793@loewis.home.cs.tu-berlin.de>
References: <38719B25.71C710F@gte.net>
X-SW-Source: 2000-q1/msg00058.html
Content-length: 2531

>Number:         62
>Category:       c++
>Synopsis:       [not accepted] nested classes of surrounding class not visible
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 10:16:02 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Raymond Nijssen <rxtn@gte.net>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-ID: <38719B25.71C710F@gte.net>
 Date: Mon, 03 Jan 2000 23:03:01 -0800

 Dear gcc maintainers,

 The following bug that crept in sometime after 2.8.1 has existed in all
 2.95  versions so far:


 41[linux1:]~/src/test> cat namescope.cxx

 class A {
 public:
	 class B;
	 class C;
 };

 class A::B {
 };

 class A::C {
	 class D;
 };

 class A::C::D {
 public:
	 B* foo();         //   gcc-2.95.*  fails to see that A::B  is
 declared in this context
 };



 42[linux1:]~/src/test> /usr/local/gcc-2.95.2/bin/g++ -v namescope.cxx

 Reading specs from
 /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
 gcc version 2.95.2 19991024 (release)
  /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp
 -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus
 -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__
 -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS
 -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686
 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__
 namescope.cxx /tmp/cc84JpBr.ii
 GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
 #include "..." search starts here:
 #include <...> search starts here:
  /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3

  /usr/local/include
  /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/include

  /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/include
  /usr/include
 End of search list.
 The following default directories have been omitted from the search
 path:
 End of omitted list.
  /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus
 /tmp/cc84JpBr.ii -quiet -dumpbase namescope.cc -version -o
 /tmp/ccwNSPZI.s
 GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled
 by GNU C version 2.95.2 19991024 (release).
 namescope.cxx:16: syntax error before `*'
 43[linux1:]~/src/test>


 -Raymond

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:16:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/60: Re: g++ bug: partial template specialization prevents gcc from seeingordinary template of the same class.
Date: Sun, 05 Mar 2000 10:16:00 -0000
Message-id: <200003051800.TAA00759@loewis.home.cs.tu-berlin.de>
References: <Pine.LNX.4.10.10001021631460.490-101000@198.dsl.xmission.com>
X-SW-Source: 2000-q1/msg00056.html
Content-length: 6833

>Number:         60
>Category:       c++
>Synopsis:       [not accepted] partial template specialization prevents gcc from seeing ordinary template of the same class.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 10:16:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     <llewelly@198.dsl.xmission.com>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Sun, 2 Jan 2000 16:40:02 -0700 (MST)
 Original-Message-ID: <Pine.LNX.4.10.10001021631460.490-101000@198.dsl.xmission.com>

 Due to the size of the code that provokes the bug, I have put in an
   attached bzip2 tarball, along with the .s and .ii files created by g++
   -v -save -temps. 

 [Reduced to only .cc file, since .ii file and assembler output are
 not needed - MvL]

>How-To-Repeat:
#define BUG

template<typename Ptr>
  class normal_iterator
  {
  public:
    normal_iterator();
    normal_iterator(Ptr const& _ptr);

    Ptr m_ptr;
  };

template<typename Ptr>
  normal_iterator<Ptr>::
  normal_iterator():m_ptr(0){}

template<typename Ptr>
  normal_iterator<Ptr>::
  normal_iterator(Ptr const& _ptr):m_ptr(_ptr){}

  class Sequence
  {
  public:
    //iterator and const_iterator must be of templated type; 
    //  typedef int* iterator will not provoke the bug.
    typedef normal_iterator<int*> iterator;
    typedef normal_iterator<int const*> const_iterator;

    inline iterator begin();
    inline const_iterator begin()const;

    int m_element;
  };

  inline
  Sequence::iterator
  Sequence::
  begin()
  {
    return(&m_element);
  }

  inline
  Sequence::const_iterator
  Sequence::
  begin()const
  {
    return(&m_element);
  }

template<typename Container> class Checked_container;

template<typename Container,typename Unchecked_iterator> class Basic_checked_iterator;

template<typename Container,typename Unchecked_iterator>
  class Basic_checked_iterator
  {
  public:

    typedef Checked_container<Container> Container_type;
    typedef Basic_checked_iterator<Container,Unchecked_iterator> Self;


    Basic_checked_iterator(Unchecked_iterator const& _current_iterator);

  };

template<typename Container,typename Unchecked_iterator>
  Basic_checked_iterator<Container,Unchecked_iterator>::
  Basic_checked_iterator(Unchecked_iterator const& _current_iterator){}

/*
    If BUG is defined, compiling this code produces:
$g++ -v -save-temps -g -Wall partial_specialization_clouds_availible_template_function_bug.cc
Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -g -Wall -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ partial_specialization_clouds_availible_template_function_bug.cc partial_specialization_clouds_availible_template_function_bug.ii
GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3
 /usr/local/include
 /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/include
 /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
 /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus partial_specialization_clouds_availible_template_function_bug.ii -quiet -dumpbase partial_specialization_clouds_availible_template_function_bug.cc -g -Wall -version -o partial_specialization_clouds_availible_template_function_bug.s
GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled by GNU C version 2.95.2 19991024 (release).
partial_specialization_clouds_availible_template_function_bug.cc: In method `class Basic_checked_iterator<Sequence,normal_iterator<int *> > Checked_container<Sequence>::begin()':
partial_specialization_clouds_availible_template_function_bug.cc:159:   instantiated from here
partial_specialization_clouds_availible_template_function_bug.cc:144: no matching function for call to `Basic_checked_iterator<Sequence,normal_iterator<int *> >::Basic_checked_iterator (normal_iterator<int *>)'
partial_specialization_clouds_availible_template_function_bug.cc:120: candidates are: Basic_checked_iterator<Sequence,normal_iterator<int *> >::Basic_checked_iterator(const normal_iterator<const int *> &)
partial_specialization_clouds_availible_template_function_bug.cc:66:                 Basic_checked_iterator<Sequence,normal_iterator<int *> >::Basic_checked_iterator(const Basic_checked_iterator<Sequence,normal_iterator<int *> > &)
partial_specialization_clouds_availible_template_function_bug.cc:144: warning: control reaches end of non-void function `Checked_container<Sequence>::begin()'

 The problem is that line 64 *does* in fact declare a matching
    templated constructor, and if BUG is undefine, gcc 2.95.2 finds
    and uses it. 

*/
#if defined(BUG)
template<typename Container>
  class Basic_checked_iterator<Container,typename Container::const_iterator>
  {
  public:

    typedef typename Container::const_iterator Unchecked_const_iterator;
    
    typedef Checked_container<Container> const Container_type;
    typedef Basic_checked_iterator<Container,Unchecked_const_iterator> Self;
    
    Basic_checked_iterator(Unchecked_const_iterator const& _current_iterator);
    
  };

template<typename Container>
  Basic_checked_iterator<Container,typename Container::const_iterator>::
  Basic_checked_iterator(typename Container::const_iterator const& _current_iterator){}
#endif /* defined(BUG) */


template<typename Container>
  class Checked_container
  {
  public:

    typedef Basic_checked_iterator<Container,typename Container::iterator> iterator;
    typedef Basic_checked_iterator<Container,typename Container::const_iterator> const_iterator;

    inline iterator begin();
    inline const_iterator begin()const;

    Container container;
  };

template<typename Container>
  inline
  Checked_container<Container>::iterator
  Checked_container<Container>::
  begin()
  {
    return iterator(container.begin());
  }
  
template<typename Container>
  inline
  Checked_container<Container>::const_iterator
  Checked_container<Container>::
  begin()const
  {
    return const_iterator(container.begin());
  }

int main()
  {
    Checked_container<Sequence> c;
    c.begin();

    return(0);
  }
  

>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:26:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/63: Re: 2.96: templated varargs
Date: Sun, 05 Mar 2000 10:26:00 -0000
Message-id: <200003051810.TAA00859@loewis.home.cs.tu-berlin.de>
References: <20000110203128.J4939@mobil.tue.nl>
X-SW-Source: 2000-q1/msg00059.html
Content-length: 2979

>Number:         63
>Category:       c++
>Synopsis:       [not accepted] templated varargs
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 10:26:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Kurt Garloff <garloff@tue.nl>
>Release:        2.95.2
>Organization:
TUE/NL, SuSE/FRG
>Environment:
>Description:
 Original-Message-Id: <200001110130.CAA09944@mobil.garloff.de>

 Hi,

 does gcc-2.96 remove support for variadic argument lists in combination with
 templates? Why? Does the C++ draft standard say so?

 garloff@etpvis:~/gum/testsuite/compiler > g++ -O2 templvararg.cpp -DWITHOUT_TEMPLATES -o templvararg
 garloff@etpvis:~/gum/testsuite/compiler > ./templvararg
  Testing with templates DISabled
  1       2       3
 garloff@etpvis:~/gum/testsuite/compiler > g++ -O2 templvararg.cpp -o templvararg 
  templvararg.cpp: In function void PrintArgs (Type, ...)':
  templvararg.cpp:36: invalid use of template type parameter

 Compiler:
 garloff@etpvis:~/gum/testsuite/compiler > g++ -v
  Reading specs from /usr/local/egcs-2.96/lib/gcc-lib/i686-pc-linux-gnu/2.96/specs
  gcc version 2.96 20000110 (experimental)

 With egcs-1.1.2, the code compiles and produces the expected result.

 System is a SuSE-Linux 6.2 iX86 (glibc-2.1.1, Linux-2.2.13). 
 Sourcecode attached. 


 PS: Please Cc: answers to me, I'm not currently subscribed to gcc-bugs.
 -- 
 Kurt Garloff                 <kurt@garloff.de>		    [Eindhoven, NL]
 Physics: Plasma simulations  <k.garloff@phys.tue.nl>	 [TU Eindhoven, NL]
 Linux: SCSI, Security        <garloff@suse.de>	      [SuSE Nuernberg, FRG]
 (See mail header or public servers for PGP2[RSA] and GPG[DSA] public keys.)

>How-To-Repeat:
/* templvararg.cpp */
/*
 * Testcase for the compiler to handle varargs with templated
 * types. Should result in problems for char or float values,
 * because of the std promotion taking place, but be compilable
 * and functional, IMHO. Kurt Garloff <kurt@garloff.de>, 1/2000.
 * Testcase by Jan van Dijk <jan@etpmod.phys.tue.nl>, 1/2000.
 * Copyright: GNU GPL
 */

#include <iostream>
#include <stdarg.h>

// if you don't enable the next line, this program won't compile
// with gcc 2.96 (snapshot 20000103), ...
//#define WITHOUT_TEMPLATES

#define TestType double

#ifdef WITHOUT_TEMPLATES
# define Type TestType
#else
 template <class Type>
#endif
void PrintArgs (Type somearg, ...)
{ 
	cout << "Testing with templates "
#ifndef WITHOUT_TEMPLATES		
		<< "ENabled" << endl;
#else
		<< "DISabled" << endl;
#endif
	va_list argp;
	va_start (argp, somearg);
	Type value;
	while ( ( value  = va_arg (argp, Type) ) > 0.0)
		cout << value << '\t';
	cout << endl;
	va_end (argp);
}

int main (void)
{
	TestType dummy = 0;
	/// termination criterium: value < 0
	PrintArgs (dummy, 1.0, 2.0, 3.0, -1.0);
	return 0;
}
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/67: Re: Bug report for GNU C++ 2.95.1 on constant expression eval. in templates
Date: Sun, 05 Mar 2000 10:36:00 -0000
Message-id: <200003051820.TAA01002@loewis.home.cs.tu-berlin.de>
References: <3.0.1.32.20000201173025.009c0b80@10.1.1.3>
X-SW-Source: 2000-q1/msg00064.html
Content-length: 1413

>Number:         67
>Category:       c++
>Synopsis:       [not accepted] constant expression eval. in
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 10:36:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Sven Rosvall <sven.prqa@indigo.ie>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-Id: <3.0.1.32.20000201173025.009c0b80@10.1.1.3>
 Date: Tue, 01 Feb 2000 17:30:25 +0000

 Hi, just stumbled on this piece of code in a proprietary 
 library that caused g++ to yell. I haven't seen it in
 any list of known bugs and wouldn't either as it is a
 bit wierd. This is what I have narrowed it down to:

 File array.cc:
 --------
 template <class T> struct foo {
   static const int bar [3];
 };
 template <class T> const int foo<T>::bar [2+1] = { 0, 0, 0 };
 ------
 % g++ -c array.cc
 array.cc:4: conflicting types for `const int foo<T>::bar[(2 + 1)]'
 array.cc:2: previous declaration as `const int foo<T>::bar[3]'
 % g++ --version
 2.95.1

 G++ accepts the code if either the template bit goes away 
 or "2+1" is changed to "3".

 I don't expect this bug report to have any higher priority
 but it might be fun for you guys to study.

	 / Sven

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
   templates
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/65: Re: Infinite compilation!
Date: Sun, 05 Mar 2000 10:36:00 -0000
Message-id: <200003051818.TAA00962@loewis.home.cs.tu-berlin.de>
References: <Pine.LNX.4.20.0001271720410.667-100000@gamspc7.ihep.su>
X-SW-Source: 2000-q1/msg00061.html
Content-length: 1214

>Number:         65
>Category:       c++
>Synopsis:       [not accepted] Infinite compilation!
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 10:36:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Alexander Zvyagin <zvyagin@gamspc7.ihep.su>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Thu, 27 Jan 2000 17:28:39 +0300 (MSK)
 Original-Message-ID: <Pine.LNX.4.20.0001271720410.667-100000@gamspc7.ihep.su>

 Dear GCC developers,

 the attached file can not be compiled under gcc-2.95.2. Compilation time
 and memory consumption are infinite.

 // gcc-2.95.2 will compile this code
 // if you comments any marked line(s).
 class A
 {
   public:
     virtual A *f(int n) {}              // Comment this!
 };

 template <int N,class T>
 class B : public A
 {
   public:
     A *f(int n) {return new B<N-1,T>;}  // Comment this!
 };

 main(void)
 {
   B<5,int> b;                           // Comment this!
 }

 // End of file //


 With best wishes,
 Alexander Zvyagin.

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/69: Re: Multiple inheritance bug
Date: Sun, 05 Mar 2000 10:36:00 -0000
Message-id: <200003051823.TAA01018@loewis.home.cs.tu-berlin.de>
References: <fxdbt5smxus.fsf@salsa.cs.wisc.edu>
X-SW-Source: 2000-q1/msg00065.html
Content-length: 2122

>Number:         69
>Category:       c++
>Synopsis:       Multiple inheritance bug
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 10:36:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Glenn Ammons <ammons@cs.wisc.edu>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: 07 Feb 2000 16:50:03 -0600
 Original-Message-ID: <fxdbt5smxus.fsf@salsa.cs.wisc.edu>

 I am using this version of g++:

   Reading specs from /s/gcc-2.95.2/sun4x_56/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs 
   gcc version 2.95.2 19991024 (release) 

 and running g++ on this file:

 class eel_private_executable
 {
 public:
   virtual void read_section_descriptors() = 0;
 };

 class executable : public eel_private_executable
 {
 };


 class eel_bfd_executable : public virtual executable
 {
 public:
   virtual void read_section_descriptors();
 };


 class eel_arch_executable : public virtual executable
 {
 };

 class eel_archive_executable : public eel_arch_executable,
				public eel_bfd_executable
 {
 public:
   virtual void read_contents();
 };


 void
 eel_archive_executable::read_contents()
 {
   read_section_descriptors();
 }

 When I run g++ like this:

   g++ -c eel_executable_cpp.C 

 I get this error message:

   eel_executable_cpp.C: In method `void eel_archive_executable::read_contents()': 
   eel_executable_cpp.C:35: request for member `read_section_descriptors' is ambiguous in multiple inheritance lattice 
   eel_executable_cpp.C:5: candidates are: void eel_private_executable::read_section_descriptors() 
   eel_executable_cpp.C:16:                 void eel_bfd_executable::read_section_descriptors() 

 This is a bug because eel_private_executable::read_section_descriptors 
 is abstract, so it can't possibly conflict with
 eel_bfd_executable::read_section_descriptors.

 On my system, uname -a says

   SunOS cabernet 5.6 Generic_105181-17 sun4u sparc

 Thanks.
 --glenn

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/68: Re: GCC 2.95.2, Next 3.3;  explicit specialization loses default
Date: Sun, 05 Mar 2000 10:36:00 -0000
Message-id: <200003051814.TAA00892@loewis.home.cs.tu-berlin.de>
References: <200001120443.UAA29433@fafnir.com>
X-SW-Source: 2000-q1/msg00066.html
Content-length: 2039

>Number:         68
>Category:       c++
>Synopsis:       [not accepted] explicit specialization loses default
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 10:36:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     James McKelvey <mckelvey@fafnir.com>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-Id: <200001120443.UAA29433@fafnir.com>
 Date: Tue, 11 Jan 2000 20:43:56 -0800
 Reply-To: mckelvey@fafnir.com

 GCC 2.95.2

 Next Cube running NextSTEP 4.2, 3.3 Developer


 Explicit specialization seems to forget that second argument to constructor  
 has a default value.

 Test case:


 class A
 {
 public:

     template <class T>
     A(T x, bool y = false);
 };


 template <class T> A::

 A(T, bool)
 {
 }


 template <> A::

 A(char, bool)
 {
 }


 int main(void)
 {
     int  b;
     char c;

     A x(b);        // OK
     A y(c);        // Fails
     A z(c, false); // OK

     return 0;
 }

 g++    -DNO_NAMESPACE -D__USE_GNU -DNeXT -g -pipe -ansi -pedantic  
 -pedantic-errors -fsjlj-exceptions -fno-keep-static-consts -fshort-enums  
 -fstrict-aliasing -ffloat-store -fno-common -ffor-scope -Wsign-promo  
 -ftemplate-depth-30 -fverbose-asm -fimplicit-templates  
 -fno-external-templates -fno-repo -Wall -W -Wbad-function-cast  
 -Wpointer-arith -Wcast-qual -Wconversion -Wstrict-prototypes  
 -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wwrite-strings  
 -Winline -Wtraditional -Wno-long-long -o x x.cc
 x.cc: In function `int main()':
 x.cc:31: no matching function for call to `A::A (char &)'
 x.cc:21: candidates are: A::A<char>(char, bool)
 x.cc:8:                 A::A(const A &)
 x.cc:32: warning: unused variable `class A z'
 x.cc:31: warning: unused variable `class A y'
 x.cc:30: warning: unused variable `class A x'
 gmake: *** [x] Error 1

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/66: Re: gcc gives bogus errors for classes wrapped in 'extern "C"'
Date: Sun, 05 Mar 2000 10:36:00 -0000
Message-id: <200003051815.TAA00932@loewis.home.cs.tu-berlin.de>
References: <200001131843.KAA06379@scv1.apple.com>
X-SW-Source: 2000-q1/msg00063.html
Content-length: 1403

>Number:         66
>Category:       c++
>Synopsis:       [not accepted] bogus errors for classes wrapped in 'extern "C"'
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 10:36:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     turly <turly@apple.com>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-Id: <200001131843.KAA06379@scv1.apple.com>
 Date: Thu, 13 Jan 2000 18:56:23 +0000

 gcc-2.95.2 gives bogus errors for classes wrapped in 'extern "C"'
 (I'm not even sure whether this is legal.)

 extern "C" {
    class Argh {
	public:
	   ~Argh ();
	    void DoSomething (Argh *);
	    Argh ();
    };
 }

 gcc will give the error
     "invalid use of undefined type `class Argh'"
 when it sees the "Argh *" parameter of DoSomething ().

 (It's even weirder in that these error messages are only given for
 methods which occur AFTER the destructor has been seen; i.e., moving 
 the destructor so it's the LAST method above will result in a clean
 compile.  <fx:Theme music from _The Twilight Zone_> Hmmm. </fx>)

 Any ideas/suggestions, or is this simply a case of "Doctor, it hurts
 when I do this."  -- "Well, don't do that."?

 Thanks!

 --turly

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/64: Re: anonymous union member is not hidden by gcc 2.95.2
Date: Sun, 05 Mar 2000 10:36:00 -0000
Message-id: <200003051817.TAA00953@loewis.home.cs.tu-berlin.de>
References: <17056.947940440@www8.gmx.net>
X-SW-Source: 2000-q1/msg00060.html
Content-length: 1129

>Number:         64
>Category:       c++
>Synopsis:       [not accepted] anonymous union member is not hidden
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 10:36:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     GerhardTonn@gmx.de
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Sat, 15 Jan 2000 13:47:20 +0100 (MET)
 Original-Message-ID: <17056.947940440@www8.gmx.net>

 Compiling the following code fragment by g++ :

 class super 
 {
 public:
 private:
 union{
   int myName;
   void * secondMember;
 };
 };
 class sub : public super
 {
 public:
 int myName() {return 1;}
 };

 int
 main(int argc, char ** argv)
 {
 sub myObject;
 myObject.myName();
 }

 results in
 tst.cxx:13: declaration of `int sub::myName()'
 tst.cxx:6: conflicts with previous declaration `int super::{anonymous
 union}::myName'

 which in my opinion is wrong, since the member should be hidden.

 Gerhard

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/70: Re: template bug
Date: Sun, 05 Mar 2000 10:36:00 -0000
Message-id: <200003051828.TAA01084@loewis.home.cs.tu-berlin.de>
References: <Pine.SGI.4.05.10002101116030.55362-200000@chopin.Princeton.EDU>
X-SW-Source: 2000-q1/msg00062.html
Content-length: 2257

>Number:         70
>Category:       c++
>Synopsis:       template bug
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 10:36:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     JM Geremia <jgeremia@princeton.edu>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Thu, 10 Feb 2000 11:25:05 -0500
 Original-Message-ID: <Pine.SGI.4.05.10002101116030.55362-200000@chopin.Princeton.EDU>

 The preprocessed code below generates the following compiler error:

 foo.C: In instantiation of `foo<double>':
 foo.C:45:   instantiated from here
 foo.C:16: invalid use of undefined type `class foo<double>'
 foo.C:23: forward declaration of `class foo<double>'

 Here are the vitals:

 g++ -v
 Reading specs from /usr/local/lib/gcc-lib/mips-sgi-irix6.5/2.95.2/specs
 gcc version 2.95.2 19991024 (release)

 uname
 IRIX mozart 6.5 10181059 IP32 mips

 BUG DESCRIPTION:

    This is an example program written to demonstrate the bug.  The problem
 occurs when operator*() is declared as both a friend and member.  No
 problem occurs when operator*() is declared only as a friend or only as a
 member. Comment out the member definition and declaration of operator*()
 and everything works.

 Thanks for any help.
 JM

 P.S. please cc me. I'm not on the list.

>How-To-Repeat:
template <class EType>
class foo;

template <class EType>
foo<EType> operator*( const EType &, const foo<EType> & );

template <class EType>
class foo {

  public:

     foo( const EType v = 0 ) : Value( v ) {};
     virtual ~foo( ) {};

     friend foo<EType> operator* <> ( const EType &, const foo<EType> & );

     foo<EType> operator*( const EType & );

  private:

     EType Value;
};


// Friend Function operator* definition

template <class EType>
foo<EType> operator*( const EType & e, const foo<EType> & f )
{
   return foo<EType>( e * f.Value );
}


// Member Function operator * definition

template <class EType>
foo<EType> foo<EType>::operator*( const EType & e )
{
   return foo<EType>( e * Value );
}

int main( )
{
   foo<double> f( 5.0 );
   return 0;
}
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 11:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/73: Re: g++ template bug
Date: Sun, 05 Mar 2000 11:06:00 -0000
Message-id: <200003051838.TAA01201@loewis.home.cs.tu-berlin.de>
References: <20000219032114.A18196@lennon.cc.gatech.edu>
X-SW-Source: 2000-q1/msg00069.html
Content-length: 5137

>Number:         73
>Category:       c++
>Synopsis:       [not accepted] g++ template bug
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 11:06:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Brian McNamara <lorgon@cc.gatech.edu>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Sat, 19 Feb 2000 03:21:14 -0500
 Original-Message-ID: <20000219032114.A18196@lennon.cc.gatech.edu>

 I've encountered this error a few times in g++2.95.2, and finally
 pinned it down to a small case (~60 lines after preprocessing).  The
 code is below, followed by the output of g++ with "-v --save-temps" as
 suggested in the bug reporting info.  A comment in the code below
 points to the crux of the matter.

 ----------------------------------------------------------------------
 // This demonstrates my compiler bug

 template <class A, class B, class C, class D>
 struct Help {
    typedef A First;
    typedef B Second;
    typedef D Third;
 };

 template <class A, class B, class C>
 struct HelpSig {
    typedef A First;
    typedef B Second;
    typedef C Third;
 };

 struct Plus {
    template <class T, class U>
    struct Sig : public HelpSig<T,U,T> {};

    template <class T>
    T operator()( const T& x, const T& y ) const {
       return x+y;
    }
 };

 template <class T>
 struct Ethel {
    typedef T WrappedType;
 };

 struct Fred {
 //////////////////////////////////////////////////////////////////////
 // If you "comment out" this thing below, the compiler quits
 // (mis)reporting errors   (this this isn't even used!!!)
 //////////////////////////////////////////////////////////////////////
    template <class Z, class LA, class LB>
    struct Fig : public Help<Z,LA,LB,
    Ethel<typename Z::Sig<typename LA::WrappedType,
			 typename LB::WrappedType>::Third> > {};
 //////////////////////////////////////////////////////////////////////

    template <class Z, class A, class B>
    Ethel<typename Z::Sig<A,B>::Third>
    operator()( const Z&, const Ethel<A>&, const Ethel<B>&) const {
       return Ethel<typename Z::Sig<A,B>::Third>();
    }
 };

 int main() {
    Fred()( Plus(), Ethel<int>(), Ethel<int>() );
    return 0;
 }

 ----------------------------------------------------------------------
 Reading specs from /net/hp45/yannis/gcc.2.95.2-install/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/specs
 gcc version 2.95.2 19991024 (release)
  /net/hp45/yannis/gcc.2.95.2-install/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/cpp -lang-c++ -v -I/net/hp45/yannis/gcc.2.95.2-install//include/g++ -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -D__OPTIMIZE__ -W -Wall -Woverloaded-virtual -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) foo.cc foo.ii
 GNU CPP version 2.95.2 19991024 (release) (sparc)
 #include "..." search starts here:
 #include <...> search starts here:
  /net/hp45/yannis/gcc.2.95.2-install/include/g++
  /net/hp45/yannis/gcc.2.95.2-install/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../sparc-sun-solaris2.7/include
  /net/hp45/yannis/gcc.2.95.2-install/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/include
  /usr/include
 End of search list.
 The following default directories have been omitted from the search path:
  /net/hp45/yannis/gcc.2.95.2-install/include/g++
  /net/hp45/yannis/gcc.2.95.2-install/include/include
 End of omitted list.
  /net/hp45/yannis/gcc.2.95.2-install/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/cc1plus foo.ii -quiet -dumpbase foo.cc -O -W -Wall -Woverloaded-virtual -version -o foo.s
 GNU C++ version 2.95.2 19991024 (release) (sparc-sun-solaris2.7) compiled by GNU C version 2.95.2 19991024 (release).
 foo.cc: In function `int main()':
 foo.cc:45: `int' is not a class, struct, or union type
 foo.cc:45: `int' is not a class, struct, or union type
 foo.cc:45: template argument 1 is invalid
 foo.cc:45: template argument 2 is invalid
 foo.cc:45: template argument 1 is invalid
 foo.cc:45: `Fred::operator ()<Plus, int, int>(...)' must be a nonstatic member function
 foo.cc: At top level:
 foo.cc: In instantiation of `Fred::operator ()<Plus, int, int>(...)':
 foo.cc:51:   instantiated from here
 foo.cc:45: `int' is not a class, struct, or union type
 foo.cc:45: `int' is not a class, struct, or union type
 foo.cc:45: template argument 1 is invalid
 foo.cc:45: template argument 2 is invalid
 foo.cc:45: template argument 1 is invalid
 foo.cc:45: `Fred::operator ()<Plus, int, int>(...)' must be a nonstatic member function
 foo.cc: In function `{error} Fred::operator ()<Plus, int, int>(...)':
 foo.cc:45: return-type `{error}' is an incomplete type
 foo.cc:45: confused by earlier errors, bailing out
 ----------------------------------------------------------------------

 -- 
 -Brian McNamara (lorgon@cc.gatech.edu), your friendly CS 2340 TA

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 11:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/71: Re: C++ typedef redefinitions and templates
Date: Sun, 05 Mar 2000 11:06:00 -0000
Message-id: <200003051835.TAA01180@loewis.home.cs.tu-berlin.de>
References: <38A3DDD0.D750182C@menuett.rhein-main.de>
X-SW-Source: 2000-q1/msg00068.html
Content-length: 1743

>Number:         71
>Category:       c++
>Synopsis:       [not accepted] C++ typedef redefinitions and templates
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 11:06:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Jens Maurer <jmaurer@menuett.rhein-main.de>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-ID: <38A3DDD0.D750182C@menuett.rhein-main.de>
 Date: Fri, 11 Feb 2000 11:00:48 +0100


 I may have found a bug in g++. Versions tested:
    gcc version 2.95.2 19991024 (release)
    gcc version 2.96 20000204 (experimental)

 In contrast to 2.95.2, the newer CVS checkout is happy with
 this code:
   struct A {
	 typedef int T;
	 typedef int T;
   };

 However, involving templates in the typedef's fails even with
 the newer CVS checkout:

   template<class T>
   struct A {
	 typedef int X;
	 typedef T X;
   };

 The error message is:

 double-typedef-template.cc:5: declaration of `typedef T A<T>::X'
 double-typedef-template.cc:4: conflicts with previous declaration `typedef int A<T>::X'

 This is in violation of ISO C++ section 7.1.3/2 [dcl.typedef].  In this case,
 it is not known until template instantiation time whether the code is legal
 or not.

 Preliminary analysis: The error message is generated by
 gcc/cp/decl.c:add_binding().  For typedef's involving template args, this
 is probably the wrong place for the check.  Instead, gcc/cp/pt.c:tsubst()
 might need to check for duplicate non-identical typedef's after the
 template args substitution.

 Jens Maurer

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 11:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/72: Re: gcc-2.95.2, g++, Solaris 7 SPARC, aggressive type analysis in template-class's template-member-function
Date: Sun, 05 Mar 2000 11:06:00 -0000
Message-id: <200003051833.TAA01140@loewis.home.cs.tu-berlin.de>
References: <38A6171F.CBF08CA6@mail.utexas.edu>
X-SW-Source: 2000-q1/msg00067.html
Content-length: 3836

>Number:         72
>Category:       c++
>Synopsis:       [not accepted] aggressive type analysis in template-class's template-member-function
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 11:06:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Scott Page <scott_page@mail.utexas.edu>
>Release:        2.95.2
>Organization:
>Environment:
>Description:

 // gcc-2.95.2 suspected bug: aggressive type analysis in
 // template-class template-member-function
 #include <iterator>
 #include <list>
 #include <sys/types.h>

 template< typename AElement >
 struct fu
 {
   template< typename AIterator >
   void
   bar( AIterator i )
   {
     // OK
     typedef int xxx ;
     typedef int32_t xxx ;

     // OK
     typedef int xxx ;
     typedef typename std::list< int >::value_type xxx ;

     // OK
     typedef int xxx ;
     typedef typename std::iterator_traits< std::list< int >::iterator >::value_type xxx ;

     // fails (twice)
     typedef AElement xxx ;
     typedef typename std::iterator_traits< std::list< AElement >::iterator >::value_type xxx ;

     // fails (twice)
     typedef AElement  xxx ;
     typedef typename std::iterator_traits< AIterator >::value_type xxx ;
   }
 } ;


 int
 main( int argc , char const * const argv[] )
 {
   std::list< int > li ;
   fu< int > fi ;

   fi.bar( li.begin() ) ;

 }

 g++ -v -Wall typedefsAndTemplates.C  --save-temps
 Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/specs
 gcc version 2.95.2 19991024 (release)
  /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -Wall -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) typedefsAndTemplates.C typedefsAndTemplates.ii
 GNU CPP version 2.95.2 19991024 (release) (sparc)
 #include "..." search starts here:
 #include <...> search starts here:
  /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../include/g++-3
  /usr/local/include
  /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../sparc-sun-solaris2.7/include
  /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/include
  /usr/include
 End of search list.
 The following default directories have been omitted from the search path:
 End of omitted list.
  /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/cc1plus typedefsAndTemplates.ii -quiet -dumpbase typedefsAndTemplates.cc -Wall -version -o typedefsAndTemplates.s
 GNU C++ version 2.95.2 19991024 (release) (sparc-sun-solaris2.7) compiled by GNU C version 2.95.2 19991024 (release).
 typedefsAndTemplates.C: In method `void fu<AElement>::bar(AIterator)':
 typedefsAndTemplates.C:27: conflicting types for `typedef AElement xxx'
 typedefsAndTemplates.C:24: previous declaration as `typedef int xxx'
 typedefsAndTemplates.C:28: conflicting types for `typedef typename iterator_traits<typename list<AElement,allocator<_Tp1> >::iterator>::value_type xxx'
 typedefsAndTemplates.C:27: previous declaration as `typedef AElement xxx'
 typedefsAndTemplates.C:31: conflicting types for `typedef AElement xxx'
 typedefsAndTemplates.C:28: previous declaration as `typedef typename iterator_traits<typename list<AElement,allocator<_Tp1> >::iterator>::value_type xxx'
 typedefsAndTemplates.C:32: conflicting types for `typedef typename iterator_traits<AIterator>::value_type xxx'
 typedefsAndTemplates.C:31: previous declaration as `typedef AElement xxx'

 Compilation exited abnormally with code 1 at Sat Feb 12 20:20:07

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 12:26:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: other/74: Re: preprocessor bug...
Date: Sun, 05 Mar 2000 12:26:00 -0000
Message-id: <200003051951.UAA01615@loewis.home.cs.tu-berlin.de>
References: <Pine.LNX.4.05.10002161448550.15425-100000@bel-kwinth.fnal.gov>
X-SW-Source: 2000-q1/msg00070.html
Content-length: 2663

>Number:         74
>Category:       other
>Synopsis:       preprocessor bug...
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 12:26:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     "Marc W. Mengel" <mengel@fnal.gov>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Wed, 16 Feb 2000 15:00:41 -0600 (EST)
 Original-Message-id: <Pine.LNX.4.05.10002161448550.15425-100000@bel-kwinth.fnal.gov>

 [There should be a Category: cpplib - MvL]

 On with gcc-2.95.2, sparc-sun-solaris-2.6, The following program:

 - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - -
 #ifndef FROM_DOT
 #include <X11/Xmd.h>
 #else
 #include "./Xmd.h"
 #endif

 SIZEOF(nag)
 - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - -

 with a symlink ./Xmd.h -> /usr/include/X11/Xmd.h
 Gives differing results with

   gcc -E bug.c

 versus

   gcc -E -DFROM_DOT bug.c

 to wit (according to diff):

 - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - -
 3,5c3
 <
 <
 < # 1 "Xmd.h" 1
 ---
 > # 1 "/usr/include/X11/Xmd.h" 1 3
 105c103
 < # 117 "Xmd.h"
 ---
 > # 117 "/usr/include/X11/Xmd.h" 3
 119d116
 < typedef signed char    INT8;
 121a119
 > typedef char           INT8;
 143c141
 < # 164 "Xmd.h"
 ---
 > # 164 "/usr/include/X11/Xmd.h" 3
 172c170
 < # 4 "bug.c" 2
 ---
 > # 2 "bug.c" 2
 176c174,176
 < sz_nag
 ---
 >
 >
 > sz_  nag
 - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - 

 Now, of course, the differing pathnames I expect, but the
 differing typedef and SIZEOF(nag) expansion seem completely wrong.

 For those keeping score, the definitions  in question are (of course) in #if
 constructs:

 - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - -
 #if __STDC__ || defined(sgi) || defined(AIXV3)
 typedef signed char    INT8;
 #else
 typedef char           INT8;
 #endif
 - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - -


 - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - -
 #if ((__STDC__ || defined(__cplusplus) || defined(c_plusplus)) && !defined(UNIXCPP)) || defined(ANSICPP)
 #define _SIZEOF(x) sz_##x
 #define SIZEOF(x) _SIZEOF(x)
 #else
 #define SIZEOF(x) sz_/**/x
 #endif /* if ANSI C compiler else not */
 - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - -

 so it would appear that the definition of __STDC__ is on or off
 depending on the pathname through which the file is located???



>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 12:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/76: Re: g++ 2.95.2 bug report
Date: Sun, 05 Mar 2000 12:36:00 -0000
Message-id: <200003052017.VAA01750@loewis.home.cs.tu-berlin.de>
References: <51C9F3C392D0D111A15600A0C99E64A9015189BB@localhost>
X-SW-Source: 2000-q1/msg00072.html
Content-length: 3932

	Note: There was a bad value `[bad' for the field `>Severity:'.
	It was set to the default value of `serious'.


>Number:         76
>Category:       c++
>Synopsis:       g++ 2.95.2 bug report
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 12:36:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Jay Baus <baus@roguewave.com>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-ID: <51C9F3C392D0D111A15600A0C99E64A9015189BB@localhost>
 Date: Mon, 29 Nov 1999 14:40:37 -0700

 Hello,

 The following is a bug report for the g++ 2.95.2 compiler.  

 It appears that template functions incorrectly handle const char array
 arguments.  Here's the example program:

 $ cat bug.cpp

 #include <stdio.h>

 template <class charT>
 void foo(const charT* b){
   printf("\npointer address inside foo()        -->%x\n",b);
 }

 int main(){

   char a[]="char arrays -- ok.";
   char *b="char ptrs -- ok";
   const char c[]="const char arrays -- addresses not equal";

   printf("\n%s:\npointer address passed to foo() -->%x",a,a);
   foo(a);
   printf("\n%s\npointer address passed to foo() -->%x",b,b);
   foo(b);
   printf("\n%s\npointer address passed to foo() -->%x",c,c);
   foo(c);

   return 0;
 }



 The output on my machine is:


 $ ./bug

 char arrays -- ok.:
 pointer address passed to foo() -->bffffa14
 pointer address inside foo()       -->bffffa14

 char ptrs -- ok
 pointer address passed to foo() -->8048933
 pointer address inside foo()       -->8048933

 const char arrays -- addresses not equal
 pointer address passed to foo() -->bffff9e4
 pointer address inside foo()       -->8048960



 Compilation details:


 $ g++ -v -c bug.cpp

 Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
 gcc version 2.95.2 19991024 (release)
  /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp -lang-c++ -v -D__GNUC__=2
 -D__GNU
 G__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux
 -D__
 ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix)
 -D__E
 XCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686
 -Dpentiu
 mpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ bug.cpp
 /tmp/ccKPQffp.i
 i
 GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
 #include "..." search starts here:
 #include <...> search starts here:
  /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3
  /usr/local/include

 /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/incl
 ude
  /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/include
  /usr/include
 End of search list.
 The following default directories have been omitted from the search path:
 End of omitted list.
  /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus /tmp/ccKPQffp.ii -quiet
 -dump
 base bug.cc -version -o /tmp/ccYxuoeF.s
 GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled by
 GNU C
 version 2.95.2 19991024 (release).
  as -V -Qy -o bug.o /tmp/ccYxuoeF.s
 GNU assembler version 2.9.1 (i386-redhat-linux), using BFD version
 2.9.1.0.23

 $ g++ -v bug.o -o bug

 Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
 gcc version 2.95.2 19991024 (release)
  /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/collect2 -m elf_i386
 -dynamic-linker
 /lib/ld-linux.so.2 -o bug /usr/lib/crt1.o /usr/lib/crti.o
 /usr/lib/gcc-lib/i686-
 pc-linux-gnu/2.95.2/crtbegin.o -L/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2
 bug.o
  -lstdc++ -lm -lgcc -lc -lgcc
 /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/crtend.o
  /usr/lib/crtn.o


 Thank You,
 Jay Baus

 =========================
 Jay M. Baus, Software Engineer
 Rogue Wave Software, Inc.   
 (303)545-3197 baus@roguewave.com  
 =========================

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 12:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/75: Re: Bug concerning using-declarations in gcc-2.95.1
Date: Sun, 05 Mar 2000 12:36:00 -0000
Message-id: <200003052016.VAA01738@loewis.home.cs.tu-berlin.de>
References: <199910211508.RAA11263@mail.lasec.de>
X-SW-Source: 2000-q1/msg00071.html
Content-length: 2476

>Number:         75
>Category:       c++
>Synopsis:       [not accepted] using-declarations and redeclarations
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 12:36:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Gottfried Ganssauge <gotti@cs.tu-berlin.de>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Date: Thu, 21 Oct 1999 17:08:09 +0200 (CEST)
 Original-Message-Id: <199910211508.RAA11263@mail.lasec.de>

 Consider the following source code:
 extern int a();
 struct x {};

 using ::x;
 using ::a;

 Compiling it using gcc2.95.1 yields an error message:

 Reading specs from =
 /usr/local/lib/gcc-lib/i386-portbld-freebsd3.2/2.95.1/specs
 gcc version 2.95.1 19990816 (release)
  /usr/local/lib/gcc-lib/i386-portbld-freebsd3.2/2.95.1/cpp -lang-c++ -v -D__GNUC__=3D2 -D__GNUG__=3D2 -D__GNUC_MINOR__=3D95 -D__cplusplus -Di386 -Dunix -D__FreeBSD__=3D3 -D__i386__ -D__unix__ -D__FreeBSD__=3D3 -D__i386 -D__unix -Acpu(i386) -Amachine(i386) -Asystem(unix) -Asystem(FreeBSD) -D__EXCEPTIONS -D__ELF__ x.cpp /var/tmp/ccHYhMOv.ii GNU CPP version 2.95.1 19990816 (release) (i386 FreeBSD/ELF)
 #include "..." search starts here:
 #include <...> search starts here:
  /usr/local/lib/gcc-lib/i386-portbld-freebsd3.2/2.95.1/include/g++
  /usr/local/include
  /usr/local/lib/gcc-lib/i386-portbld-freebsd3.2/2.95.1/../../../../i386-portbld-freebsd3.2/include
  /usr/local/lib/gcc-lib/i386-portbld-freebsd3.2/2.95.1/include
  /usr/include
 End of search list.
 The following default directories have been omitted from the search path:
 End of omitted list.
  /usr/local/lib/gcc-lib/i386-portbld-freebsd3.2/2.95.1/cc1plus /var/tmp/ccHYhMOv.ii -quiet -dumpbase x.cc -version -o /var/tmp/ccSj8BIS.s
 GNU C++ version 2.95.1 19990816 (release) (i386-portbld-freebsd3.2) compiled by GNU C version 2.95.1 19990816 (release).
 x.cpp:5: `a' is already declared in this scope

 The same source code is compiled without a hitch on Borland-C++, Visual-C++
 and even on egcs-1.1.2

 What is the fundamental difference between using a structure in the same
 namespace and using a function?
 Note that declaring `using ::x' compiles fine but declaring `using ::a`
 does not.

 This kind of using declaration quite commonly appears in Boris Fomitchev's 
 STLport.

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 13:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/78: Re: Problem with namespaces, templates, and friend functions.
Date: Sun, 05 Mar 2000 13:36:00 -0000
Message-id: <200003052119.WAA02012@loewis.home.cs.tu-berlin.de>
References: <vs901kq17h.fsf@iar.se>
X-SW-Source: 2000-q1/msg00076.html
Content-length: 2184

>Number:         78
>Category:       c++
>Synopsis:       [not accepted] Problem with namespaces, templates, and friend functions.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 13:36:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Anders Lindgren <andersl@iar.se>
>Release:        2.95.2
>Organization:
>Environment:
 Host type: Sun.
 Gcc version: 2.95.2
 Command line parameters: None (expcept the name of the program).
>Description:
 Date: 20 Jan 2000 15:14:58 +0100
 Original-Message-ID: <vs901kq17h.fsf@iar.se>
 Lines: 58

 //
 // In the follwoing program GCC seems to forget the function
 // "Forgotten".  In the function "foo" it can be called with objects
 // of type U1 and U2.  But in "bar" it can only be called with "U2"
 // objects.
 //
 // It seems as GCC remembers only the prototype of the last usage of
 // the function "Forgotten" in the first function where it is used.  (As
 // a compiler developer, I'd put my money on a faulty cache mechanism
 // in your function matching system.)
 //
 // Try the following:
 //   Remove the namespace declaration. =>
 //                                The program compiles with no errors.
 //   Comment out function "foo".          => Ditto.
 //   Change U1 to U2 in "bar".            => Ditto.
 //   Swap order of the calls in in "foo". => Ditto.
 //   Replace the friend form of "Forgotten" inside "Object" (Alt 1)
 //   with the template function definition (Alt 2). => Ditto.
 //

 namespace MySpace
 {
   class Tag1 { };
   class Tag2 { };

   template<class Tag>
   class Object
   {
   public:
     // Alt 1: Broken:
     friend void Forgotten(Object const & m)
     { /* Do something */ }
   };

 // Alt 2: This definition works:
 //  template<class Tag> void Forgotten(Object<Tag> const & m)
 //  { /* Do something */ }

   typedef Object<Tag1> U1;
   typedef Object<Tag2> U2;

   void foo()
   {
     Forgotten(U1());
     Forgotten(U2());
   }

   void bar()
   {
     Forgotten(U1());
   }
 }

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 13:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/77: Re: Reporting an error in catching exceptions
Date: Sun, 05 Mar 2000 13:36:00 -0000
Message-id: <200003052114.WAA01979@loewis.home.cs.tu-berlin.de>
References: <387F8B53.6A8F3E33@cabm.rutgers.edu>
X-SW-Source: 2000-q1/msg00073.html
Content-length: 1506

>Number:         77
>Category:       c++
>Synopsis:       [bad code] Reporting an error in catching exceptions
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 13:36:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Hunter Moseley <hunter@cabm.rutgers.edu>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-ID: <387F8B53.6A8F3E33@cabm.rutgers.edu>
 Date: Fri, 14 Jan 2000 15:47:15 -0500

 Hello,

 I am running egcs-200000110 and gcc-2.95.2 on RedHat Linux 6.1 on a dual
 pentium III system.
 Both versions is giving me the same error.

 The program is the following (test4.cc) :
 ---------------------------------
 #include <string>

 class A
   {
     string a;
   public :
     virtual ~A() {}
   };

 class B
   {
   public :
     virtual ~B() {}
   };

 class C : public A, public B
   {
   public :
     virtual ~C() { }
   };

 int main()
   {
   try
     {
     throw C();
     }
   catch(B& f)
     {
     }
   }
 --------------------------------

 The command line options and results of running are:
 ------------------------
 % /usr/local/egcs-20000110/bin/c++ -O2 -static -DLINUX test4.cc -o test4

 % test4
 Segmentation fault (core dumped)
 ------------------------

 I am including the test4.ii.gz preprocessing file.

 take care,
 Hunter

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 13:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/79: Re: incorrect "no match" diagnostic
Date: Sun, 05 Mar 2000 13:36:00 -0000
Message-id: <200003052112.WAA01928@loewis.home.cs.tu-berlin.de>
References: <199912242124.PAA11541@fncrdg.fnal.gov>
X-SW-Source: 2000-q1/msg00075.html
Content-length: 2553

>Number:         79
>Category:       c++
>Synopsis:       [not accepted] incorrect "no match" diagnostic
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 13:36:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     wb@fncrdg.fnal.gov (Walter Brown)
>Release:        2.95.2
>Organization:
Fermi National Accelerator Laboratory
>Environment:
>Description:
 Original-Message-Id: <199912242124.PAA11541@fncrdg.fnal.gov>
 Date: Fri, 24 Dec 1999 15:24:37 -0600 (CST)

 Hello,

 Using gcc 2.95.2:  g++ -pedantic test.cpp -o test.exe
 the attached program results in a diagnostic as commented inline.  I
 believe this diagnostic is incorrect, and would appreciate any advice
 you might have to circumvent this problem.  If the problem is known and
 a patch exists, I would be grateful for a pointer to same.

 Thank you, and best wishes of the season to one and all.

	 - WEB

>How-To-Repeat:
template< int N >  class  C  {

public:
  enum { n = N };

  C()  { ; }

};  // C<n>


template< int n1, int n2 >
inline  C<n1+n2>
operator * ( C<n1> c1, C<n2> c2 )  { return  C<n1+n2>(); }

// ----------------------------------------------------------------------

template< class T, T (*G)() >  class S  {

public:
  inline     operator T  () const  { return (*G)(); }
  inline  T  operator () () const  { return (*G)(); }

};  // S<T,g>


template< class T, T (*G)()
        , class U, U (*H)() >
inline  C<int(T::n)+int(U::n)>
operator * ( S<T,G> s1 , S<U,H> s2 )  {

  static_cast<void>( s1(), s2() );
  return  C<int(T::n)+int(U::n)>();

}  // op*<>()

// ----------------------------------------------------------------------

C<1>  c1Gen()  {
  static  C<1> const  c1;
  return c1;
}

S< C<1>, &c1Gen >  s1;

// ----------------------------------------------------------------------

C<2>  c2Gen()  {
  static  C<2> const  c2( C<1>() * C<1>() );
  return c2;
}

S< C<2>, &c2Gen >  s2;

// ----------------------------------------------------------------------

C<3>  c3Gen()  {
  static  C<3> const  c3( C<1>() * C<2>() );
  return c3;
}

S< C<3>, &c3Gen >  s3;

// ----------------------------------------------------------------------



int  main()  {

  C<1> c1;  C<2> c2;  c1 * c2;
  C<3> c3( s3 );

  // GCC 2.95.2:  why do you report that there is "no match" for
  // the following right-hand side operator *() ?
  c3 = s1 * s2;

  return 0;

}  // main()

>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 13:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/81: Re: g++
Date: Sun, 05 Mar 2000 13:36:00 -0000
Message-id: <200003052108.WAA01870@loewis.home.cs.tu-berlin.de>
References: <14414.11348.443031.434865@kaa.relex.ru>
X-SW-Source: 2000-q1/msg00077.html
Content-length: 17329

>Number:         81
>Category:       c++
>Synopsis:       [bad code] Comparing pointer-to-member variables
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 13:36:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     "Korotchenko A.A." <kaa@relex.ru>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-ID: <14414.11348.443031.434865@kaa.relex.ru>
 Date: Wed, 8 Dec 1999 13:00:52 +0300 (MSK)


 In "int main()" function pointer "pf" must be equal &B::g1 but 
 in function "void test(B* b, XXX x1,XXX x2)" x1 not equal x2  ?!


 1.log       -- compiler output
 testcpp.cpp -- src
 testcpp.*   -- tempopary files

>How-To-Repeat:
begin 664 1.tgz
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
/\?/XT3__#?E7=H0`\```
`
end
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 13:36:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/80: Re: g++ enum bug
Date: Sun, 05 Mar 2000 13:36:00 -0000
Message-id: <200003052115.WAA02006@loewis.home.cs.tu-berlin.de>
References: <3882F04F.44C58C89@or.uni-bonn.de>
X-SW-Source: 2000-q1/msg00074.html
Content-length: 2989

>Number:         80
>Category:       c++
>Synopsis:       g++ enum bug
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 13:36:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Karsten Muuss <muuss@or.uni-bonn.de>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-ID: <3882F04F.44C58C89@or.uni-bonn.de>
 Date: Mon, 17 Jan 2000 11:34:55 +0100

 Hello,
 I run into some very essential problem with g++:

 The g++ Compiler does not support the attribute (packed) on enum
 declarations.

 The following line of code compiles with gcc but not with g++:

 enum numbers { zero, one, two, three } __attribute__ ((packed)) ;

 The documentation says:

 packed 

     This attribute, attached to an enum, struct, or union type
   definition, specified that the minimum required memory be used to
   represent the type. Specifying this attribute for struct and union
   types is equivalent to specifying the packed attribute on each of
   the structure or union members.  Specifying the `-fshort-enums'
   flag on the line is equivalent to specifying the packed attribute
   on all enum definitions.  You may only specify this attribute after
   a closing curly brace on an enum definition, not in a typedef
   declaration, unless that declaration also contains the definition
   of the enum.


 The command "g++ -v --save-temps enum.C" returns:

 Reading specs from /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/specs
 gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)
  /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/cpp -lang-c++ -v -undef
 -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__
 -Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__
 -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix)
 -D__EXCEPTIONS -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386
 -D__i386 -D__i386__ -Di486 -D__i486 -D__i486__ enum.C enum.ii
 GNU CPP version egcs-2.91.66 19990314 (egcs-1.1.2 release) (i386
 Linux/ELF)
 #include "..." search starts here:
 #include <...> search starts here:
  /usr/include/g++
  /usr/lib/g++-include
  /usr/local/include
  /usr/i486-linux/include
  /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/include
  /usr/include
 End of search list.
  /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/cc1plus enum.ii -quiet
 -dumpbase enum.cc -version -o enum.s
 GNU C++ version egcs-2.91.66 19990314 (egcs-1.1.2 release) (i486-linux)
 compiled by GNU C version egcs-2.91.66 19990314 (egcs-1.1.2 release).
 enum.C:4: semicolon missing after declaration of `numbers'

 The file enum.ii (6 lines):
 # 1 "enum.C"



 enum numbers { zero, one, two, three } __attribute__ ((packed))  ;

 -- end of file --

 I found nothing about this under "well known bugs"
 and I hope you can fix this.

 Thanks,
 Karsten Muuss

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 14:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/82: Re: g++ 2.95.2 fails to reject an ambiguous overload
Date: Sun, 05 Mar 2000 14:06:00 -0000
Message-id: <200003052156.WAA02306@loewis.home.cs.tu-berlin.de>
References: <NPDGKFLMJGIAGBAA@my-deja.com>
X-SW-Source: 2000-q1/msg00078.html
Content-length: 921

>Number:         82
>Category:       c++
>Synopsis:       g++ fails to reject an ambiguous overload
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 05 14:06:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Martin Sebor <sebor@my-Deja.com>
>Release:        2.95.2
>Organization:
My Deja Email  ( http://www.my-deja.com:80 )
>Environment:
>Description:
 Date: Sat, 22 Jan 2000 14:51:36 -0800
 Original-Message-ID: <NPDGKFLMJGIAGBAA@my-deja.com>
 

 the program below compiles with g++ 2.95.2 despite the ambiguity
 between #1 and #2 (see 14.5.5.2, p5).

 Thanks
 Martin



 template <class T>
 void foo (T) { }

 template <class T>
 void foo (T&) { }

 int main ()
 {
     bool b = false;
     foo (b);
 }

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Mon Mar 06 01:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c/83: Re: g++ 2.95.2 warning: ANSI C does not support the `L' length modifier
Date: Mon, 06 Mar 2000 01:06:00 -0000
Message-id: <200003060853.JAA00856@loewis.home.cs.tu-berlin.de>
References: <MCNNDAGKIGKEDCAA@my-deja.com>
X-SW-Source: 2000-q1/msg00080.html
Content-length: 1187

>Number:         83
>Category:       c
>Synopsis:       ANSI C does not support the `L' length modifier
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Mar 06 01:06:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     "   " <sebor@my-deja.com>
>Release:        2.95.2
>Organization:
My Deja Email  ( http://www.my-deja.com:80 )
>Environment:
>Description:
 Date: Sun, 05 Mar 2000 19:27:19 -0800
 Original-Message-ID: <MCNNDAGKIGKEDCAA@my-deja.com>
 

 Hi,

 the compiler warns (with the --pedantic flag on) about the `L' modifier
 in the code below. Since the modifier is specified by ANSI C99 (see
 7.19.6.1, p7) the warning should now be disabled.

 #include <stdio.h>

 int main ()
 {
     printf ("%Lg\n", 0.0L);
 }

 $ g++ -c -Wall --pedantic test.cpp
 test.cpp: In function `int main()':
 test.cpp:7: warning: ANSI C does not support the `L' length modifier


 Thanks
 Martin


 --== Sent via Deja.com http://www.deja.com/ ==--
 Share what you know. Learn what you don't.

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Mon Mar 06 01:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c++/84: Re: Internal Compiler Error
Date: Mon, 06 Mar 2000 01:06:00 -0000
Message-id: <200003060852.JAA00826@loewis.home.cs.tu-berlin.de>
References: <38C30BF2.D5397CEA@home.com>
X-SW-Source: 2000-q1/msg00079.html
Content-length: 102062

>Number:         84
>Category:       c++
>Synopsis:       Internal error in find_function_data,refers_to_regno_for_reload_p
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Mar 06 01:06:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Mark Robinson <plasmoid@home.com>
>Release:        2.95.2
>Organization:
>Environment:
 GCC Version: 2.95.2 19991024 (release)
 System : i586-mandrake-linux
 Options: -O3 -g1 -c file.cpp
>Description:
 Original-Message-ID: <38C30BF2.D5397CEA@home.com>
 Date: Sun, 05 Mar 2000 17:37:55 -0800

 I have attached the output.

>How-To-Repeat:
begin 664 gcc-error.tar.bz2
M0EIH.3%!6293640/`D,"P\;_QO__________O_________\`@``($```"&'&
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
(BG"A((@>!(8`
`
end
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From martin@loewis.home.cs.tu-berlin.de Mon Mar 06 01:26:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: gcc-gnats@sourceware.cygnus.com
Subject: c/85: Re: casting const aways shouldn't be an error even with -pedantic-errors
Date: Mon, 06 Mar 2000 01:26:00 -0000
Message-id: <200003060918.KAA01047@loewis.home.cs.tu-berlin.de>
References: <4.2.0.58.19991125150800.00b1ac70@mail1> <4.2.2.20000306082844.00a8b540@mail1>
X-SW-Source: 2000-q1/msg00081.html
Content-length: 1193

>Number:         85
>Category:       c
>Synopsis:       casting const aways shouldn't be an error even with -pedantic-errors
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Mar 06 01:26:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     scott douglass <sdouglass@arm.com>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-Id: <4.2.2.20000306082844.00a8b540@mail1>
 Date: Mon, 06 Mar 2000 08:33:03 +0000

 My apologies: when I wrote '-Wconst-qual' I should have written '-Wcast-qual'.  Please let me try again:

 int *f(const int *p) { return (int*)p; } /* (errror) cast discards `const' from pointer target type */

 The proper command line is:
	  gcc -c -Wcast-qual -pedantic-errors bug.c

 I believe that the error should only be a warning even with '-pedantic-errors'.

 gcc -v produces:
 Reading specs from /eda/tools/gnu/tools/gcc-2.95.2/sunos5.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/specs
 gcc version 2.95.2 19991024 (release)

 Thanks.

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>From nathan@gcc.gnu.org Mon Mar 06 02:06:00 2000
From: nathan@gcc.gnu.org
To: nathan@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org
Subject: Re: c++/17
Date: Mon, 06 Mar 2000 02:06:00 -0000
Message-id: <20000306100600.20511.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00082.html
Content-length: 503

The following reply was made to PR c++/17; it has been noted by GNATS.

From: nathan@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org, nathan@codesourcery.com, nathan@gcc.gnu.org
Cc:  
Subject: Re: c++/17
Date: 6 Mar 2000 09:57:47 -0000

 Synopsis: __PRETTY_FUNCTION__ et al have wrong type
 
 State-Changed-From-To: open->analyzed
 State-Changed-By: nathan
 State-Changed-When: Mon Mar  6 01:57:47 2000
 State-Changed-Why:
     patch produced
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=17&database=gcc
>From David.Billinghurst@riotinto.com.au Mon Mar 06 20:56:00 2000
From: David.Billinghurst@riotinto.com.au
To: gcc-gnats@gcc.gnu.org
Subject: fortran/86: Wrong number of loop iterations
Date: Mon, 06 Mar 2000 20:56:00 -0000
Message-id: <20000307045407.23327.qmail@sourceware.cygnus.com>
X-SW-Source: 2000-q1/msg00083.html
Content-length: 1778

>Number:         86
>Category:       fortran
>Synopsis:       Wrong number of loop iterations
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Mar 06 20:56:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     David Billinghurst
>Release:        g77 version 2.96 20000221 (experimental)
>Organization:
>Environment:
Irix 6.5.3m
>Description:
This program gives the wrong answer.  The number of loop iterations is wrong. Fails with -O0, -O1, -O2 and -O3
Is OK with g77 2.95.2 and Irix cc 7.2.1
(see http://gcc.gnu.org/ml/gcc-bugs/2000-02/msg00727.html )

Toon Moene (toon@moene.indiv.nluug.nl) reports "Fails identically on i686-pc-linux-gnu" 

>How-To-Repeat:
g77 -O -o labug5 labug.f
./labug5
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="labug5.f"
Content-Disposition: inline; filename="labug5.f"

      program labug5

*  This program gives the wrong answer on mips-sgi-irix6.5
*  when compiled with g77 from egcs-20000221.  The number of 
*  loop iterations is wrong.
*
*  Works with 
*    - g77 from gcc-2.95.2
*    - Irix MipsPro Fortran 77 7.2.1
*
*  Originally derived from LAPACK 3.0 test suite failure.
*
*  David Billinghurst, (David.Billinghurst@riotinto.com.au)
*  23 February 2000
* 
      INTEGER N, I, SLASQX
      N = 20
      I = SLASQX( N ) 
      IF ( I .NE. 2*N ) THEN
         WRITE(6,*) 'I = ', I, ' but should be ', 2*N
         CALL ABORT()
      END IF
      END

      INTEGER FUNCTION SLASQX( N )
      INTEGER  N, I0, I, K
      I0 = 1
      DO I = 4*I0, 2*( I0+N-1 ), 4
         K = I
      END DO
      SLASQX = K
      RETURN
      END






^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2002-11-15 22:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-11-21 13:26 c++/5: C++ sucks, can't you make it better? billingd
  -- strict thread matches above, loose matches on Subject: below --
2002-11-21 13:46 Daniel Berlin
2002-11-21  6:52 neil
2000-02-10 13:46 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).