<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>77595</bug_id>
          
          <creation_ts>2005-01-11 14:55 0000</creation_ts>
          <short_desc>yacas 1.0.56 compile breaks with gcc 3.4.3-r1</short_desc>
          <delta_ts>2005-01-14 02:06:09 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Applications</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          
          <priority>P2</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>gstein@ucf.edu</reporter>
          <assigned_to>sci@gentoo.org</assigned_to>
          

      

      
          <long_desc isprivate="0">
            <who>gstein@ucf.edu</who>
            <bug_when>2005-01-11 14:55:50 0000</bug_when>
            <thetext>While it has been said before that the new &quot;features&quot; of the gcc C++
compiler, this popped up on me for another example
that the main yacas-1.056.patch missed one problem I had

in plugins/opengl/openglapi.cc file there is another
&quot;};&quot; that the new gcc breaks on

same thing that is in most of the main patch file

Reproducible: Always
Steps to Reproduce:
1. emerge -vu yacas
2. ...
3. gcc complains about extra &quot;;&quot;

Actual Results:  
as stated in the 3rd step gcc complains about extra ;
on line 562 of openglapi.cc (which is made dynamically from the stub)



Expected Results:  
generally compile without error, but I&apos;m not sure how to submit to the main
patch file (or if this is fixed in some CVS version)

adding own patch and ebuild later, not seen it anywhere on the bugs lists so far

Gentoo Base System version 1.6.8
Portage 2.0.51-r8 (default-linux/x86/2004.3, gcc-3.4.3, glibc-2.3.4.20041102-r0,
2.6.10-rc2 i686)
=================================================================
System uname: 2.6.10-rc2 i686 Intel(R) Xeon(TM) CPU 1.70GHz
Python:              dev-lang/python-2.3.4 [2.3.4 (#1, Dec 18 2004, 06:08:33)]
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
dev-lang/python:     2.3.4
sys-devel/autoconf:  2.59-r6, 2.13
sys-devel/automake:  1.8.5-r2, 1.9.4, 1.4_p6, 1.5, 1.6.3, 1.7.9
sys-devel/binutils:  2.15.92.0.2-r1, 2.15.92.0.2-r2
sys-devel/libtool:   1.5.10-r2
virtual/os-headers:  2.6.8.1-r2
ACCEPT_KEYWORDS=&quot;x86 ~x86&quot;
AUTOCLEAN=&quot;yes&quot;
CFLAGS=&quot;-Os -march=pentium3 -fomit-frame-pointer -mmmx -msse -pipe&quot;
CHOST=&quot;i686-pc-linux-gnu&quot;
CONFIG_PROTECT=&quot;/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config
/var/qmail/control&quot;
CONFIG_PROTECT_MASK=&quot;/etc/gconf /etc/terminfo /etc/env.d&quot;
CXXFLAGS=&quot;-Os -march=pentium3 -fomit-frame-pointer -mmmx -msse -pipe&quot;
DISTDIR=&quot;/usr/portage/distfiles&quot;
FEATURES=&quot;autoaddcvs autoconfig ccache distlocks sandbox sfperms&quot;
GENTOO_MIRRORS=&quot;http://open-systems.ufl.edu/mirrors/gentoo
ftp://ftp.ussg.iu.edu/pub/linux/gentoo ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo
http://gentoo.osuosl.org/ ftp://ftp.ndlug.nd.edu/pub/gentoo/&quot;
LDFLAGS=&quot;&quot;
MAKEOPTS=&quot;-j4&quot;
PKGDIR=&quot;/usr/portage/packages&quot;
PORTAGE_TMPDIR=&quot;/var/tmp&quot;
PORTDIR=&quot;/usr/portage&quot;
PORTDIR_OVERLAY=&quot;&quot;
SYNC=&quot;rsync://rsync.us.gentoo.org/gentoo-portage&quot;
USE=&quot;x86 X acl apm avi berkdb bitmap-fonts crypt directfb encode esd fam fbcon
foomaticdb fortran gdbm gif gpm gtk gtk2 imagemagick imlib ipv6 java jpeg libwww
mad mikmod mmx motif mozilla mpeg ncurses nls oggvorbis opengl oss pam pdflib
perl png python quicktime readline sdl smp spell sse ssl svga tcpd tiff truetype
xml2 xmms xv zlib&quot;</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gstein@ucf.edu</who>
            <bug_when>2005-01-11 14:57:04 0000</bug_when>
            <thetext>Created an attachment (id=48246)
Patches extra ; in openglapi.cc
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gstein@ucf.edu</who>
            <bug_when>2005-01-11 14:57:43 0000</bug_when>
            <thetext>Created an attachment (id=48247)
Slight revision of old ebuild to apply the patch
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>phosphan@gentoo.org</who>
            <bug_when>2005-01-13 04:50:01 0000</bug_when>
            <thetext>I can&apos;t reproduce this with the same gcc version. Could you perhaps send me the source file that makes gcc choke on your system?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gstein@ucf.edu</who>
            <bug_when>2005-01-13 08:52:56 0000</bug_when>
            <thetext>Created an attachment (id=48402)
File which breaks the compile

For me this breaks the compile, it is created from
the openglapi.stub, assuming this part of it:

extern \&quot;C\&quot; {
LispPluginBase* maker(void)
{
    return NULL;
}
};
#endif //HAVE_GL_GLUT_H
&quot;);</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gstein@ucf.edu</who>
            <bug_when>2005-01-13 08:54:30 0000</bug_when>
            <thetext>Actually, I just checked the homepage for Yacas.

Looks like they are on 1.0.57 for the current version

I wonder if they fixed most of the stuff the patch file uses

http://yacas.sourceforge.net/downloads.html</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>phosphan@gentoo.org</who>
            <bug_when>2005-01-14 01:12:46 0000</bug_when>
            <thetext>I wonder, too. But first it would be nice to get compile errors of the stable version fixed :-)

Let me guess: You don&apos;t have media-libs/glut installed? That would explain why it failed on your system and didn&apos;t on mine.

I think we should get GSL usage and GL stuff as optional dependencies with the next version.

Applying your patch, declaring this fixed. Thanks!</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>phosphan@gentoo.org</who>
            <bug_when>2005-01-14 02:06:09 0000</bug_when>
            <thetext>About .57, I&apos;ve created bug #77948</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48246</attachid>
            <date>2005-01-11 14:57 0000</date>
            <desc>Patches extra ; in openglapi.cc</desc>
            <filename>yacas-1.0.56-opengl.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIHBsdWdpbnMvb3BlbmdsL29wZW5nbGFwaS5zdHViCTIwMDUtMDEtMTEgMTc6NDU6MTkuMTY0
Mzc3NjQwICswMDAwCisrKyBwbHVnaW5zL29wZW5nbC9vcGVuZ2xhcGkuc3R1Yi5uZXcJMjAwNS0w
MS0xMSAxNzo0NToyNi42MjUyNDM0MTYgKzAwMDAKQEAgLTE0NCw3ICsxNDQsNyBAQAogewogICAg
IHJldHVybiBOVUxMOwogfQotfTsKK30KICNlbmRpZiAvL0hBVkVfR0xfR0xVVF9ICiAiKTsKIAo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>48247</attachid>
            <date>2005-01-11 14:57 0000</date>
            <desc>Slight revision of old ebuild to apply the patch</desc>
            <filename>yacas-1.0.56-r1.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA0IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk
ZXI6IC92YXIvY3Zzcm9vdC9nZW50b28teDg2L3NjaS1tYXRoZW1hdGljcy95YWNhcy95YWNhcy0x
LjAuNTYuZWJ1aWxkLHYgMS4xIDIwMDQvMTIvMjggMTU6MTk6MTcgcmlib3NvbWUgRXhwICQKCmlu
aGVyaXQgZXV0aWxzCgpJVVNFPSJnbXAiCgpERVNDUklQVElPTj0idmVyeSBwb3dlcmZ1bCBnZW5l
cmFsIHB1cnBvc2UgQ29tcHV0ZXIgQWxnZWJyYSBTeXN0ZW0iCkhPTUVQQUdFPSJodHRwOi8veWFj
YXMuc291cmNlZm9yZ2UubmV0LyIKU1JDX1VSST0iaHR0cDovLyR7UE59LnNvdXJjZWZvcmdlLm5l
dC9iYWNrdXBzLyR7UH0udGFyLmd6CgkJbWlycm9yOi8vZ2VudG9vLyR7UH0ucGF0Y2guYnoyCgkJ
aHR0cDovL2Rldi5nZW50b28ub3JnL35waG9zcGhhbi8ke1B9LnBhdGNoLmJ6MiIKClNMT1Q9IjAi
CkxJQ0VOU0U9IkdQTC0yIgpLRVlXT1JEUz0ieDg2IH5wcGMgfmFtZDY0IgoKREVQRU5EPSJ2aXJ0
dWFsL2xpYmMKCT49c3lzLWFwcHMvc2VkLTQKCWdtcD8gKCA+PWRldi1saWJzL2dtcC00ICkgIgoK
CnNyY191bnBhY2soKSB7Cgl1bnBhY2sgJHtBfQoJY2QgJHtTfQoJZXBhdGNoICR7RklMRVNESVJ9
LyR7UH0tb3BlbmdsLnBhdGNoCgllcGF0Y2ggJHtXT1JLRElSfS8ke1B9LnBhdGNoCn0KCnNyY19j
b21waWxlKCkgewoJbG9jYWwgbXljb25mCglpZiB1c2UgZ21wIDsgdGhlbgoJCW15Y29uZj0iLS13
aXRoLW51bWxpYj1nbXAiCglmaQoJZWNvbmYgJHtteWNvbmZ9IHx8IGRpZSAiLi9jb25maWd1cmUg
ZmFpbGVkIgoJZW1ha2UgfHwgZGllCn0KCnNyY19pbnN0YWxsKCkgewoJIyBhIHZlcnkgc3RyYW5n
ZSBNYWtlZmlsZSdzLCB0aGF0IGRvIG5vdCBob25vciBzdGFuZGFyZCB3cmFwcGluZ3MgOigKCWZp
bmQgLW5hbWUgTWFrZWZpbGUgfHhhcmdzIHNlZCAtaSAtZSAiczpkYXRhZGlyID0gL3Vzci9zaGFy
ZTpkYXRhZGlyID0gJHtEfS91c3Ivc2hhcmU6IgoJY2QgbWFubWFrZQoJc2VkIC1pIC1lICJzOmh0
bWxkaXIgPSA6aHRtbGRpciA9ICR7RH06IiAtZSAiczpwc2RpciA9IDpwc2RpciA9ICR7RH06IiBN
YWtlZmlsZQoJY2QgJHtTfQoKCURFU1RESVI9JHtEfSBtYWtlIGluc3RhbGwtc3RyaXAgfHwgZGll
CgoJZG9kb2MgQVVUSE9SUyBJTlNUQUxMIE5FV1MgUkVBRE1FIFRPRE8KCW12ICR7RH0vdXNyL3No
YXJlLyR7UE59L2RvY3VtZW50YXRpb24gJHtEfS91c3Ivc2hhcmUvZG9jLyR7UEZ9L2h0bWwKCXJt
ZGlyICR7RH0vdXNyL2luY2x1ZGUvCn0K
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>48402</attachid>
            <date>2005-01-13 08:52 0000</date>
            <desc>File which breaks the compile</desc>
            <filename>openglapi.cc</filename>
            <type>text/plain</type>
            <data encoding="base64">Ci8qIFRoaXMgZmlsZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgd2l0aCBjc3R1Ymdlbi4K
Ki8KI2luY2x1ZGUgImxpc3B0eXBlLmgiCiNpbmNsdWRlICJsaXNwZW52aXJvbm1lbnQuaCIKI2lu
Y2x1ZGUgImxpc3BhdG9tLmgiCiNpbmNsdWRlICJzdGFuZGFyZC5oIgojaW5jbHVkZSAiYXJnZ2V0
dGVyLmgiCiNpbmNsdWRlICJsaXNwcGx1Z2luLmgiCiNpbmNsdWRlICJwbGF0bWF0aC5oIgojaW5j
bHVkZSAic3R1YnMuaCIKI2luY2x1ZGUgImdlbmVyaWNzdHJ1Y3RzLmgiCgoKI2lmZGVmIEhBVkVf
Q09ORklHX0gKI2luY2x1ZGUgImNvbmZpZy5oIgojZW5kaWYKI2lmZGVmIEhBVkVfR0xfR0xVVF9I
CgoKI2luY2x1ZGUgPEdML2dsLmg+CiNpbmNsdWRlIDxHTC9nbHUuaD4KI2luY2x1ZGUgPEdML2ds
dXQuaD4KI2luY2x1ZGUgImdsdXRjb2RlLmgiCgoKc3RhdGljIHZvaWQgYmFzZV9nbEJlZ2luKExp
c3BFbnZpcm9ubWVudCYgYUVudmlyb25tZW50LCBMaXNwSW50IGFTdGFja1RvcCkKewogIC8qIE9i
dGFpbiBhcmd1bWVudHMgcGFzc2VkIGluLiAqLwogIFNob3J0SW50ZWdlckFyZ3VtZW50KGFyZzEs
ICAxICk7CiAgCgogIC8qIENhbGwgdGhlIGFjdHVhbCBmdW5jdGlvbi4gKi8KIGdsQmVnaW4oYXJn
MSk7CgovKiBSZXR1cm4gcmVzdWx0LiAqLwogIEludGVybmFsVHJ1ZShhRW52aXJvbm1lbnQsYUVu
dmlyb25tZW50LmlTdGFjay5HZXRFbGVtZW50KGFTdGFja1RvcCkpOwp9CgpzdGF0aWMgdm9pZCBi
YXNlX2dsVmVydGV4M2QoTGlzcEVudmlyb25tZW50JiBhRW52aXJvbm1lbnQsIExpc3BJbnQgYVN0
YWNrVG9wKQp7CiAgLyogT2J0YWluIGFyZ3VtZW50cyBwYXNzZWQgaW4uICovCiAgRG91YmxlRmxv
YXRBcmd1bWVudChhcmcxLCAxKTsKICBEb3VibGVGbG9hdEFyZ3VtZW50KGFyZzIsIDIpOwogIERv
dWJsZUZsb2F0QXJndW1lbnQoYXJnMywgMyk7CiAgCgogIC8qIENhbGwgdGhlIGFjdHVhbCBmdW5j
dGlvbi4gKi8KIGdsVmVydGV4M2QoYXJnMSwgYXJnMiwgYXJnMyk7CgovKiBSZXR1cm4gcmVzdWx0
LiAqLwogIEludGVybmFsVHJ1ZShhRW52aXJvbm1lbnQsYUVudmlyb25tZW50LmlTdGFjay5HZXRF
bGVtZW50KGFTdGFja1RvcCkpOwp9CgpzdGF0aWMgdm9pZCBiYXNlX2dsRW5kKExpc3BFbnZpcm9u
bWVudCYgYUVudmlyb25tZW50LCBMaXNwSW50IGFTdGFja1RvcCkKewogIC8qIE9idGFpbiBhcmd1
bWVudHMgcGFzc2VkIGluLiAqLwogIAoKICAvKiBDYWxsIHRoZSBhY3R1YWwgZnVuY3Rpb24uICov
CiBnbEVuZCgpOwoKLyogUmV0dXJuIHJlc3VsdC4gKi8KICBJbnRlcm5hbFRydWUoYUVudmlyb25t
ZW50LGFFbnZpcm9ubWVudC5pU3RhY2suR2V0RWxlbWVudChhU3RhY2tUb3ApKTsKfQoKc3RhdGlj
IHZvaWQgYmFzZV9nbENsZWFyQ29sb3IoTGlzcEVudmlyb25tZW50JiBhRW52aXJvbm1lbnQsIExp
c3BJbnQgYVN0YWNrVG9wKQp7CiAgLyogT2J0YWluIGFyZ3VtZW50cyBwYXNzZWQgaW4uICovCiAg
RG91YmxlRmxvYXRBcmd1bWVudChhcmcxLCAxKTsKICBEb3VibGVGbG9hdEFyZ3VtZW50KGFyZzIs
IDIpOwogIERvdWJsZUZsb2F0QXJndW1lbnQoYXJnMywgMyk7CiAgRG91YmxlRmxvYXRBcmd1bWVu
dChhcmc0LCA0KTsKICAKCiAgLyogQ2FsbCB0aGUgYWN0dWFsIGZ1bmN0aW9uLiAqLwogZ2xDbGVh
ckNvbG9yKGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpOwoKLyogUmV0dXJuIHJlc3VsdC4gKi8KICBJ
bnRlcm5hbFRydWUoYUVudmlyb25tZW50LGFFbnZpcm9ubWVudC5pU3RhY2suR2V0RWxlbWVudChh
U3RhY2tUb3ApKTsKfQoKc3RhdGljIHZvaWQgYmFzZV9nbENsZWFyKExpc3BFbnZpcm9ubWVudCYg
YUVudmlyb25tZW50LCBMaXNwSW50IGFTdGFja1RvcCkKewogIC8qIE9idGFpbiBhcmd1bWVudHMg
cGFzc2VkIGluLiAqLwogIFNob3J0SW50ZWdlckFyZ3VtZW50KGFyZzEsICAxICk7CiAgCgogIC8q
IENhbGwgdGhlIGFjdHVhbCBmdW5jdGlvbi4gKi8KIGdsQ2xlYXIoYXJnMSk7CgovKiBSZXR1cm4g
cmVzdWx0LiAqLwogIEludGVybmFsVHJ1ZShhRW52aXJvbm1lbnQsYUVudmlyb25tZW50LmlTdGFj
ay5HZXRFbGVtZW50KGFTdGFja1RvcCkpOwp9CgpzdGF0aWMgdm9pZCBiYXNlX2dsQ29sb3I0ZChM
aXNwRW52aXJvbm1lbnQmIGFFbnZpcm9ubWVudCwgTGlzcEludCBhU3RhY2tUb3ApCnsKICAvKiBP
YnRhaW4gYXJndW1lbnRzIHBhc3NlZCBpbi4gKi8KICBEb3VibGVGbG9hdEFyZ3VtZW50KGFyZzEs
IDEpOwogIERvdWJsZUZsb2F0QXJndW1lbnQoYXJnMiwgMik7CiAgRG91YmxlRmxvYXRBcmd1bWVu
dChhcmczLCAzKTsKICBEb3VibGVGbG9hdEFyZ3VtZW50KGFyZzQsIDQpOwogIAoKICAvKiBDYWxs
IHRoZSBhY3R1YWwgZnVuY3Rpb24uICovCiBnbENvbG9yNGQoYXJnMSwgYXJnMiwgYXJnMywgYXJn
NCk7CgovKiBSZXR1cm4gcmVzdWx0LiAqLwogIEludGVybmFsVHJ1ZShhRW52aXJvbm1lbnQsYUVu
dmlyb25tZW50LmlTdGFjay5HZXRFbGVtZW50KGFTdGFja1RvcCkpOwp9CgpzdGF0aWMgdm9pZCBi
YXNlX2dsRnJvbnRGYWNlKExpc3BFbnZpcm9ubWVudCYgYUVudmlyb25tZW50LCBMaXNwSW50IGFT
dGFja1RvcCkKewogIC8qIE9idGFpbiBhcmd1bWVudHMgcGFzc2VkIGluLiAqLwogIFNob3J0SW50
ZWdlckFyZ3VtZW50KGFyZzEsICAxICk7CiAgCgogIC8qIENhbGwgdGhlIGFjdHVhbCBmdW5jdGlv
bi4gKi8KIGdsRnJvbnRGYWNlKGFyZzEpOwoKLyogUmV0dXJuIHJlc3VsdC4gKi8KICBJbnRlcm5h
bFRydWUoYUVudmlyb25tZW50LGFFbnZpcm9ubWVudC5pU3RhY2suR2V0RWxlbWVudChhU3RhY2tU
b3ApKTsKfQoKc3RhdGljIHZvaWQgYmFzZV9nbFBvaW50U2l6ZShMaXNwRW52aXJvbm1lbnQmIGFF
bnZpcm9ubWVudCwgTGlzcEludCBhU3RhY2tUb3ApCnsKICAvKiBPYnRhaW4gYXJndW1lbnRzIHBh
c3NlZCBpbi4gKi8KICBEb3VibGVGbG9hdEFyZ3VtZW50KGFyZzEsIDEpOwogIAoKICAvKiBDYWxs
IHRoZSBhY3R1YWwgZnVuY3Rpb24uICovCiBnbFBvaW50U2l6ZShhcmcxKTsKCi8qIFJldHVybiBy
ZXN1bHQuICovCiAgSW50ZXJuYWxUcnVlKGFFbnZpcm9ubWVudCxhRW52aXJvbm1lbnQuaVN0YWNr
LkdldEVsZW1lbnQoYVN0YWNrVG9wKSk7Cn0KCnN0YXRpYyB2b2lkIGJhc2VfZ2xMaW5lV2lkdGgo
TGlzcEVudmlyb25tZW50JiBhRW52aXJvbm1lbnQsIExpc3BJbnQgYVN0YWNrVG9wKQp7CiAgLyog
T2J0YWluIGFyZ3VtZW50cyBwYXNzZWQgaW4uICovCiAgRG91YmxlRmxvYXRBcmd1bWVudChhcmcx
LCAxKTsKICAKCiAgLyogQ2FsbCB0aGUgYWN0dWFsIGZ1bmN0aW9uLiAqLwogZ2xMaW5lV2lkdGgo
YXJnMSk7CgovKiBSZXR1cm4gcmVzdWx0LiAqLwogIEludGVybmFsVHJ1ZShhRW52aXJvbm1lbnQs
YUVudmlyb25tZW50LmlTdGFjay5HZXRFbGVtZW50KGFTdGFja1RvcCkpOwp9CgpzdGF0aWMgdm9p
ZCBiYXNlX2dsRW5hYmxlKExpc3BFbnZpcm9ubWVudCYgYUVudmlyb25tZW50LCBMaXNwSW50IGFT
dGFja1RvcCkKewogIC8qIE9idGFpbiBhcmd1bWVudHMgcGFzc2VkIGluLiAqLwogIFNob3J0SW50
ZWdlckFyZ3VtZW50KGFyZzEsICAxICk7CiAgCgogIC8qIENhbGwgdGhlIGFjdHVhbCBmdW5jdGlv
bi4gKi8KIGdsRW5hYmxlKGFyZzEpOwoKLyogUmV0dXJuIHJlc3VsdC4gKi8KICBJbnRlcm5hbFRy
dWUoYUVudmlyb25tZW50LGFFbnZpcm9ubWVudC5pU3RhY2suR2V0RWxlbWVudChhU3RhY2tUb3Ap
KTsKfQoKc3RhdGljIHZvaWQgYmFzZV9nbERpc2FibGUoTGlzcEVudmlyb25tZW50JiBhRW52aXJv
bm1lbnQsIExpc3BJbnQgYVN0YWNrVG9wKQp7CiAgLyogT2J0YWluIGFyZ3VtZW50cyBwYXNzZWQg
aW4uICovCiAgU2hvcnRJbnRlZ2VyQXJndW1lbnQoYXJnMSwgIDEgKTsKICAKCiAgLyogQ2FsbCB0
aGUgYWN0dWFsIGZ1bmN0aW9uLiAqLwogZ2xEaXNhYmxlKGFyZzEpOwoKLyogUmV0dXJuIHJlc3Vs
dC4gKi8KICBJbnRlcm5hbFRydWUoYUVudmlyb25tZW50LGFFbnZpcm9ubWVudC5pU3RhY2suR2V0
RWxlbWVudChhU3RhY2tUb3ApKTsKfQoKc3RhdGljIHZvaWQgYmFzZV9nbFB1c2hNYXRyaXgoTGlz
cEVudmlyb25tZW50JiBhRW52aXJvbm1lbnQsIExpc3BJbnQgYVN0YWNrVG9wKQp7CiAgLyogT2J0
YWluIGFyZ3VtZW50cyBwYXNzZWQgaW4uICovCiAgCgogIC8qIENhbGwgdGhlIGFjdHVhbCBmdW5j
dGlvbi4gKi8KIGdsUHVzaE1hdHJpeCgpOwoKLyogUmV0dXJuIHJlc3VsdC4gKi8KICBJbnRlcm5h
bFRydWUoYUVudmlyb25tZW50LGFFbnZpcm9ubWVudC5pU3RhY2suR2V0RWxlbWVudChhU3RhY2tU
b3ApKTsKfQoKc3RhdGljIHZvaWQgYmFzZV9nbFBvcE1hdHJpeChMaXNwRW52aXJvbm1lbnQmIGFF
bnZpcm9ubWVudCwgTGlzcEludCBhU3RhY2tUb3ApCnsKICAvKiBPYnRhaW4gYXJndW1lbnRzIHBh
c3NlZCBpbi4gKi8KICAKCiAgLyogQ2FsbCB0aGUgYWN0dWFsIGZ1bmN0aW9uLiAqLwogZ2xQb3BN
YXRyaXgoKTsKCi8qIFJldHVybiByZXN1bHQuICovCiAgSW50ZXJuYWxUcnVlKGFFbnZpcm9ubWVu
dCxhRW52aXJvbm1lbnQuaVN0YWNrLkdldEVsZW1lbnQoYVN0YWNrVG9wKSk7Cn0KCnN0YXRpYyB2
b2lkIGJhc2VfZ2xMb2FkSWRlbnRpdHkoTGlzcEVudmlyb25tZW50JiBhRW52aXJvbm1lbnQsIExp
c3BJbnQgYVN0YWNrVG9wKQp7CiAgLyogT2J0YWluIGFyZ3VtZW50cyBwYXNzZWQgaW4uICovCiAg
CgogIC8qIENhbGwgdGhlIGFjdHVhbCBmdW5jdGlvbi4gKi8KIGdsTG9hZElkZW50aXR5KCk7Cgov
KiBSZXR1cm4gcmVzdWx0LiAqLwogIEludGVybmFsVHJ1ZShhRW52aXJvbm1lbnQsYUVudmlyb25t
ZW50LmlTdGFjay5HZXRFbGVtZW50KGFTdGFja1RvcCkpOwp9CgpzdGF0aWMgdm9pZCBiYXNlX2ds
Um90YXRlZChMaXNwRW52aXJvbm1lbnQmIGFFbnZpcm9ubWVudCwgTGlzcEludCBhU3RhY2tUb3Ap
CnsKICAvKiBPYnRhaW4gYXJndW1lbnRzIHBhc3NlZCBpbi4gKi8KICBEb3VibGVGbG9hdEFyZ3Vt
ZW50KGFyZzEsIDEpOwogIERvdWJsZUZsb2F0QXJndW1lbnQoYXJnMiwgMik7CiAgRG91YmxlRmxv
YXRBcmd1bWVudChhcmczLCAzKTsKICBEb3VibGVGbG9hdEFyZ3VtZW50KGFyZzQsIDQpOwogIAoK
ICAvKiBDYWxsIHRoZSBhY3R1YWwgZnVuY3Rpb24uICovCiBnbFJvdGF0ZWQoYXJnMSwgYXJnMiwg
YXJnMywgYXJnNCk7CgovKiBSZXR1cm4gcmVzdWx0LiAqLwogIEludGVybmFsVHJ1ZShhRW52aXJv
bm1lbnQsYUVudmlyb25tZW50LmlTdGFjay5HZXRFbGVtZW50KGFTdGFja1RvcCkpOwp9CgpzdGF0
aWMgdm9pZCBiYXNlX2dsU2NhbGVkKExpc3BFbnZpcm9ubWVudCYgYUVudmlyb25tZW50LCBMaXNw
SW50IGFTdGFja1RvcCkKewogIC8qIE9idGFpbiBhcmd1bWVudHMgcGFzc2VkIGluLiAqLwogIERv
dWJsZUZsb2F0QXJndW1lbnQoYXJnMSwgMSk7CiAgRG91YmxlRmxvYXRBcmd1bWVudChhcmcyLCAy
KTsKICBEb3VibGVGbG9hdEFyZ3VtZW50KGFyZzMsIDMpOwogIAoKICAvKiBDYWxsIHRoZSBhY3R1
YWwgZnVuY3Rpb24uICovCiBnbFNjYWxlZChhcmcxLCBhcmcyLCBhcmczKTsKCi8qIFJldHVybiBy
ZXN1bHQuICovCiAgSW50ZXJuYWxUcnVlKGFFbnZpcm9ubWVudCxhRW52aXJvbm1lbnQuaVN0YWNr
LkdldEVsZW1lbnQoYVN0YWNrVG9wKSk7Cn0KCnN0YXRpYyB2b2lkIGJhc2VfZ2xUcmFuc2xhdGVk
KExpc3BFbnZpcm9ubWVudCYgYUVudmlyb25tZW50LCBMaXNwSW50IGFTdGFja1RvcCkKewogIC8q
IE9idGFpbiBhcmd1bWVudHMgcGFzc2VkIGluLiAqLwogIERvdWJsZUZsb2F0QXJndW1lbnQoYXJn
MSwgMSk7CiAgRG91YmxlRmxvYXRBcmd1bWVudChhcmcyLCAyKTsKICBEb3VibGVGbG9hdEFyZ3Vt
ZW50KGFyZzMsIDMpOwogIAoKICAvKiBDYWxsIHRoZSBhY3R1YWwgZnVuY3Rpb24uICovCiBnbFRy
YW5zbGF0ZWQoYXJnMSwgYXJnMiwgYXJnMyk7CgovKiBSZXR1cm4gcmVzdWx0LiAqLwogIEludGVy
bmFsVHJ1ZShhRW52aXJvbm1lbnQsYUVudmlyb25tZW50LmlTdGFjay5HZXRFbGVtZW50KGFTdGFj
a1RvcCkpOwp9CgpzdGF0aWMgdm9pZCBiYXNlX2dsTm9ybWFsM2QoTGlzcEVudmlyb25tZW50JiBh
RW52aXJvbm1lbnQsIExpc3BJbnQgYVN0YWNrVG9wKQp7CiAgLyogT2J0YWluIGFyZ3VtZW50cyBw
YXNzZWQgaW4uICovCiAgRG91YmxlRmxvYXRBcmd1bWVudChhcmcxLCAxKTsKICBEb3VibGVGbG9h
dEFyZ3VtZW50KGFyZzIsIDIpOwogIERvdWJsZUZsb2F0QXJndW1lbnQoYXJnMywgMyk7CiAgCgog
IC8qIENhbGwgdGhlIGFjdHVhbCBmdW5jdGlvbi4gKi8KIGdsTm9ybWFsM2QoYXJnMSwgYXJnMiwg
YXJnMyk7CgovKiBSZXR1cm4gcmVzdWx0LiAqLwogIEludGVybmFsVHJ1ZShhRW52aXJvbm1lbnQs
YUVudmlyb25tZW50LmlTdGFjay5HZXRFbGVtZW50KGFTdGFja1RvcCkpOwp9CgpzdGF0aWMgdm9p
ZCBiYXNlX2dsTWF0cml4TW9kZShMaXNwRW52aXJvbm1lbnQmIGFFbnZpcm9ubWVudCwgTGlzcElu
dCBhU3RhY2tUb3ApCnsKICAvKiBPYnRhaW4gYXJndW1lbnRzIHBhc3NlZCBpbi4gKi8KICBTaG9y
dEludGVnZXJBcmd1bWVudChhcmcxLCAgMSApOwogIAoKICAvKiBDYWxsIHRoZSBhY3R1YWwgZnVu
Y3Rpb24uICovCiBnbE1hdHJpeE1vZGUoYXJnMSk7CgovKiBSZXR1cm4gcmVzdWx0LiAqLwogIElu
dGVybmFsVHJ1ZShhRW52aXJvbm1lbnQsYUVudmlyb25tZW50LmlTdGFjay5HZXRFbGVtZW50KGFT
dGFja1RvcCkpOwp9CgpzdGF0aWMgdm9pZCBiYXNlX2dsT3J0aG8oTGlzcEVudmlyb25tZW50JiBh
RW52aXJvbm1lbnQsIExpc3BJbnQgYVN0YWNrVG9wKQp7CiAgLyogT2J0YWluIGFyZ3VtZW50cyBw
YXNzZWQgaW4uICovCiAgRG91YmxlRmxvYXRBcmd1bWVudChhcmcxLCAxKTsKICBEb3VibGVGbG9h
dEFyZ3VtZW50KGFyZzIsIDIpOwogIERvdWJsZUZsb2F0QXJndW1lbnQoYXJnMywgMyk7CiAgRG91
YmxlRmxvYXRBcmd1bWVudChhcmc0LCA0KTsKICBEb3VibGVGbG9hdEFyZ3VtZW50KGFyZzUsIDUp
OwogIERvdWJsZUZsb2F0QXJndW1lbnQoYXJnNiwgNik7CiAgCgogIC8qIENhbGwgdGhlIGFjdHVh
bCBmdW5jdGlvbi4gKi8KIGdsT3J0aG8oYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNSwgYXJn
Nik7CgovKiBSZXR1cm4gcmVzdWx0LiAqLwogIEludGVybmFsVHJ1ZShhRW52aXJvbm1lbnQsYUVu
dmlyb25tZW50LmlTdGFjay5HZXRFbGVtZW50KGFTdGFja1RvcCkpOwp9CgpzdGF0aWMgdm9pZCBi
YXNlX2dsRnJ1c3R1bShMaXNwRW52aXJvbm1lbnQmIGFFbnZpcm9ubWVudCwgTGlzcEludCBhU3Rh
Y2tUb3ApCnsKICAvKiBPYnRhaW4gYXJndW1lbnRzIHBhc3NlZCBpbi4gKi8KICBEb3VibGVGbG9h
dEFyZ3VtZW50KGFyZzEsIDEpOwogIERvdWJsZUZsb2F0QXJndW1lbnQoYXJnMiwgMik7CiAgRG91
YmxlRmxvYXRBcmd1bWVudChhcmczLCAzKTsKICBEb3VibGVGbG9hdEFyZ3VtZW50KGFyZzQsIDQp
OwogIERvdWJsZUZsb2F0QXJndW1lbnQoYXJnNSwgNSk7CiAgRG91YmxlRmxvYXRBcmd1bWVudChh
cmc2LCA2KTsKICAKCiAgLyogQ2FsbCB0aGUgYWN0dWFsIGZ1bmN0aW9uLiAqLwogZ2xGcnVzdHVt
KGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUsIGFyZzYpOwoKLyogUmV0dXJuIHJlc3VsdC4g
Ki8KICBJbnRlcm5hbFRydWUoYUVudmlyb25tZW50LGFFbnZpcm9ubWVudC5pU3RhY2suR2V0RWxl
bWVudChhU3RhY2tUb3ApKTsKfQoKc3RhdGljIHZvaWQgYmFzZV9nbFZpZXdwb3J0KExpc3BFbnZp
cm9ubWVudCYgYUVudmlyb25tZW50LCBMaXNwSW50IGFTdGFja1RvcCkKewogIC8qIE9idGFpbiBh
cmd1bWVudHMgcGFzc2VkIGluLiAqLwogIFNob3J0SW50ZWdlckFyZ3VtZW50KGFyZzEsICAxICk7
CiAgU2hvcnRJbnRlZ2VyQXJndW1lbnQoYXJnMiwgIDIgKTsKICBTaG9ydEludGVnZXJBcmd1bWVu
dChhcmczLCAgMyApOwogIFNob3J0SW50ZWdlckFyZ3VtZW50KGFyZzQsICA0ICk7CiAgCgogIC8q
IENhbGwgdGhlIGFjdHVhbCBmdW5jdGlvbi4gKi8KIGdsVmlld3BvcnQoYXJnMSwgYXJnMiwgYXJn
MywgYXJnNCk7CgovKiBSZXR1cm4gcmVzdWx0LiAqLwogIEludGVybmFsVHJ1ZShhRW52aXJvbm1l
bnQsYUVudmlyb25tZW50LmlTdGFjay5HZXRFbGVtZW50KGFTdGFja1RvcCkpOwp9CgpzdGF0aWMg
dm9pZCBiYXNlX0dsdXRNYWluTG9vcChMaXNwRW52aXJvbm1lbnQmIGFFbnZpcm9ubWVudCwgTGlz
cEludCBhU3RhY2tUb3ApCnsKICAvKiBPYnRhaW4gYXJndW1lbnRzIHBhc3NlZCBpbi4gKi8KICBJ
bnBTdHJpbmdBcmd1bWVudChhcmcxLCAxKTsKICBTaG9ydEludGVnZXJBcmd1bWVudChhcmcyLCAg
MiApOwogIFNob3J0SW50ZWdlckFyZ3VtZW50KGFyZzMsICAzICk7CiAgCgogIC8qIENhbGwgdGhl
IGFjdHVhbCBmdW5jdGlvbi4gKi8KIEdsdXRNYWluTG9vcChhcmcxLCBhcmcyLCBhcmczKTsKCi8q
IFJldHVybiByZXN1bHQuICovCiAgSW50ZXJuYWxUcnVlKGFFbnZpcm9ubWVudCxhRW52aXJvbm1l
bnQuaVN0YWNrLkdldEVsZW1lbnQoYVN0YWNrVG9wKSk7Cn0KCnN0YXRpYyB2b2lkIGJhc2VfR2x1
dFZpZXdXaWR0aChMaXNwRW52aXJvbm1lbnQmIGFFbnZpcm9ubWVudCwgTGlzcEludCBhU3RhY2tU
b3ApCnsKICAvKiBPYnRhaW4gYXJndW1lbnRzIHBhc3NlZCBpbi4gKi8KICAKCiAgLyogQ2FsbCB0
aGUgYWN0dWFsIGZ1bmN0aW9uLiAqLwppbnQgciA9ICBHbHV0Vmlld1dpZHRoKCk7CgovKiBSZXR1
cm4gcmVzdWx0LiAqLwogIFJldHVyblNob3J0SW50ZWdlcihhRW52aXJvbm1lbnQsYUVudmlyb25t
ZW50LmlTdGFjay5HZXRFbGVtZW50KGFTdGFja1RvcCkscik7Cn0KCnN0YXRpYyB2b2lkIGJhc2Vf
R2x1dFZpZXdIZWlnaHQoTGlzcEVudmlyb25tZW50JiBhRW52aXJvbm1lbnQsIExpc3BJbnQgYVN0
YWNrVG9wKQp7CiAgLyogT2J0YWluIGFyZ3VtZW50cyBwYXNzZWQgaW4uICovCiAgCgogIC8qIENh
bGwgdGhlIGFjdHVhbCBmdW5jdGlvbi4gKi8KaW50IHIgPSAgR2x1dFZpZXdIZWlnaHQoKTsKCi8q
IFJldHVybiByZXN1bHQuICovCiAgUmV0dXJuU2hvcnRJbnRlZ2VyKGFFbnZpcm9ubWVudCxhRW52
aXJvbm1lbnQuaVN0YWNrLkdldEVsZW1lbnQoYVN0YWNrVG9wKSxyKTsKfQoKc3RhdGljIHZvaWQg
YmFzZV9HbHV0RW5hYmxlQW5pbWF0aW9uKExpc3BFbnZpcm9ubWVudCYgYUVudmlyb25tZW50LCBM
aXNwSW50IGFTdGFja1RvcCkKewogIC8qIE9idGFpbiBhcmd1bWVudHMgcGFzc2VkIGluLiAqLwog
IAoKICAvKiBDYWxsIHRoZSBhY3R1YWwgZnVuY3Rpb24uICovCiBHbHV0RW5hYmxlQW5pbWF0aW9u
KCk7CgovKiBSZXR1cm4gcmVzdWx0LiAqLwogIEludGVybmFsVHJ1ZShhRW52aXJvbm1lbnQsYUVu
dmlyb25tZW50LmlTdGFjay5HZXRFbGVtZW50KGFTdGFja1RvcCkpOwp9CgpzdGF0aWMgdm9pZCBi
YXNlX0dsdXREaXNhYmxlQW5pbWF0aW9uKExpc3BFbnZpcm9ubWVudCYgYUVudmlyb25tZW50LCBM
aXNwSW50IGFTdGFja1RvcCkKewogIC8qIE9idGFpbiBhcmd1bWVudHMgcGFzc2VkIGluLiAqLwog
IAoKICAvKiBDYWxsIHRoZSBhY3R1YWwgZnVuY3Rpb24uICovCiBHbHV0RGlzYWJsZUFuaW1hdGlv
bigpOwoKLyogUmV0dXJuIHJlc3VsdC4gKi8KICBJbnRlcm5hbFRydWUoYUVudmlyb25tZW50LGFF
bnZpcm9ubWVudC5pU3RhY2suR2V0RWxlbWVudChhU3RhY2tUb3ApKTsKfQoKc3RhdGljIHZvaWQg
YmFzZV9nbHV0UG9zdFJlZGlzcGxheShMaXNwRW52aXJvbm1lbnQmIGFFbnZpcm9ubWVudCwgTGlz
cEludCBhU3RhY2tUb3ApCnsKICAvKiBPYnRhaW4gYXJndW1lbnRzIHBhc3NlZCBpbi4gKi8KICAK
CiAgLyogQ2FsbCB0aGUgYWN0dWFsIGZ1bmN0aW9uLiAqLwogZ2x1dFBvc3RSZWRpc3BsYXkoKTsK
Ci8qIFJldHVybiByZXN1bHQuICovCiAgSW50ZXJuYWxUcnVlKGFFbnZpcm9ubWVudCxhRW52aXJv
bm1lbnQuaVN0YWNrLkdldEVsZW1lbnQoYVN0YWNrVG9wKSk7Cn0KCnN0YXRpYyB2b2lkIGJhc2Vf
R2x1dEdldEVsYXBzZWRUaW1lKExpc3BFbnZpcm9ubWVudCYgYUVudmlyb25tZW50LCBMaXNwSW50
IGFTdGFja1RvcCkKewogIC8qIE9idGFpbiBhcmd1bWVudHMgcGFzc2VkIGluLiAqLwogIAoKICAv
KiBDYWxsIHRoZSBhY3R1YWwgZnVuY3Rpb24uICovCmludCByID0gIEdsdXRHZXRFbGFwc2VkVGlt
ZSgpOwoKLyogUmV0dXJuIHJlc3VsdC4gKi8KICBSZXR1cm5TaG9ydEludGVnZXIoYUVudmlyb25t
ZW50LGFFbnZpcm9ubWVudC5pU3RhY2suR2V0RWxlbWVudChhU3RhY2tUb3ApLHIpOwp9CiAKCgpj
bGFzcyBPcGVuR0xQbHVnaW4gOiBwdWJsaWMgTGlzcFBsdWdpbkJhc2UKewpwdWJsaWM6CiAgICB2
aXJ0dWFsIHZvaWQgQWRkKExpc3BFbnZpcm9ubWVudCYgYUVudmlyb25tZW50KTsKICAgIHZpcnR1
YWwgdm9pZCBSZW1vdmUoTGlzcEVudmlyb25tZW50JiBhRW52aXJvbm1lbnQpOwp9Owp2b2lkIE9w
ZW5HTFBsdWdpbjo6QWRkKExpc3BFbnZpcm9ubWVudCYgYUVudmlyb25tZW50KQp7CiAgU2V0U2hv
cnRJbnRlZ2VyQ29uc3RhbnQoYUVudmlyb25tZW50LCAiR0xfRkFMU0UiLCBHTF9GQUxTRSk7CiAg
U2V0U2hvcnRJbnRlZ2VyQ29uc3RhbnQoYUVudmlyb25tZW50LCAiR0xfVFJVRSIsIEdMX1RSVUUp
OwogIFNldFNob3J0SW50ZWdlckNvbnN0YW50KGFFbnZpcm9ubWVudCwgIkdMX0xJTkVTIiwgR0xf
TElORVMpOwogIFNldFNob3J0SW50ZWdlckNvbnN0YW50KGFFbnZpcm9ubWVudCwgIkdMX1BPSU5U
UyIsIEdMX1BPSU5UUyk7CiAgU2V0U2hvcnRJbnRlZ2VyQ29uc3RhbnQoYUVudmlyb25tZW50LCAi
R0xfTElORV9TVFJJUCIsIEdMX0xJTkVfU1RSSVApOwogIFNldFNob3J0SW50ZWdlckNvbnN0YW50
KGFFbnZpcm9ubWVudCwgIkdMX0xJTkVfTE9PUCIsIEdMX0xJTkVfTE9PUCk7CiAgU2V0U2hvcnRJ
bnRlZ2VyQ29uc3RhbnQoYUVudmlyb25tZW50LCAiR0xfVFJJQU5HTEVTIiwgR0xfVFJJQU5HTEVT
KTsKICBTZXRTaG9ydEludGVnZXJDb25zdGFudChhRW52aXJvbm1lbnQsICJHTF9UUklBTkdMRV9T
VFJJUCIsIEdMX1RSSUFOR0xFX1NUUklQKTsKICBTZXRTaG9ydEludGVnZXJDb25zdGFudChhRW52
aXJvbm1lbnQsICJHTF9UUklBTkdMRV9GQU4iLCBHTF9UUklBTkdMRV9GQU4pOwogIFNldFNob3J0
SW50ZWdlckNvbnN0YW50KGFFbnZpcm9ubWVudCwgIkdMX1FVQURTIiwgR0xfUVVBRFMpOwogIFNl
dFNob3J0SW50ZWdlckNvbnN0YW50KGFFbnZpcm9ubWVudCwgIkdMX1FVQURfU1RSSVAiLCBHTF9R
VUFEX1NUUklQKTsKICBTZXRTaG9ydEludGVnZXJDb25zdGFudChhRW52aXJvbm1lbnQsICJHTF9Q
T0xZR09OIiwgR0xfUE9MWUdPTik7CiAgU2V0U2hvcnRJbnRlZ2VyQ29uc3RhbnQoYUVudmlyb25t
ZW50LCAiR0xfRURHRV9GTEFHIiwgR0xfRURHRV9GTEFHKTsKICBTZXRTaG9ydEludGVnZXJDb25z
dGFudChhRW52aXJvbm1lbnQsICJHTF9DVVJSRU5UX0JJVCIsIEdMX0NVUlJFTlRfQklUKTsKICBT
ZXRTaG9ydEludGVnZXJDb25zdGFudChhRW52aXJvbm1lbnQsICJHTF9QT0lOVF9CSVQiLCBHTF9Q
T0lOVF9CSVQpOwogIFNldFNob3J0SW50ZWdlckNvbnN0YW50KGFFbnZpcm9ubWVudCwgIkdMX0xJ
TkVfQklUIiwgR0xfTElORV9CSVQpOwogIFNldFNob3J0SW50ZWdlckNvbnN0YW50KGFFbnZpcm9u
bWVudCwgIkdMX1BPTFlHT05fQklUIiwgR0xfUE9MWUdPTl9CSVQpOwogIFNldFNob3J0SW50ZWdl
ckNvbnN0YW50KGFFbnZpcm9ubWVudCwgIkdMX1BPTFlHT05fU1RJUFBMRV9CSVQiLCBHTF9QT0xZ
R09OX1NUSVBQTEVfQklUKTsKICBTZXRTaG9ydEludGVnZXJDb25zdGFudChhRW52aXJvbm1lbnQs
ICJHTF9QSVhFTF9NT0RFX0JJVCIsIEdMX1BJWEVMX01PREVfQklUKTsKICBTZXRTaG9ydEludGVn
ZXJDb25zdGFudChhRW52aXJvbm1lbnQsICJHTF9MSUdIVElOR19CSVQiLCBHTF9MSUdIVElOR19C
SVQpOwogIFNldFNob3J0SW50ZWdlckNvbnN0YW50KGFFbnZpcm9ubWVudCwgIkdMX0ZPR19CSVQi
LCBHTF9GT0dfQklUKTsKICBTZXRTaG9ydEludGVnZXJDb25zdGFudChhRW52aXJvbm1lbnQsICJH
TF9ERVBUSF9CVUZGRVJfQklUIiwgR0xfREVQVEhfQlVGRkVSX0JJVCk7CiAgU2V0U2hvcnRJbnRl
Z2VyQ29uc3RhbnQoYUVudmlyb25tZW50LCAiR0xfQUNDVU1fQlVGRkVSX0JJVCIsIEdMX0FDQ1VN
X0JVRkZFUl9CSVQpOwogIFNldFNob3J0SW50ZWdlckNvbnN0YW50KGFFbnZpcm9ubWVudCwgIkdM
X1NURU5DSUxfQlVGRkVSX0JJVCIsIEdMX1NURU5DSUxfQlVGRkVSX0JJVCk7CiAgU2V0U2hvcnRJ
bnRlZ2VyQ29uc3RhbnQoYUVudmlyb25tZW50LCAiR0xfVklFV1BPUlRfQklUIiwgR0xfVklFV1BP
UlRfQklUKTsKICBTZXRTaG9ydEludGVnZXJDb25zdGFudChhRW52aXJvbm1lbnQsICJHTF9UUkFO
U0ZPUk1fQklUIiwgR0xfVFJBTlNGT1JNX0JJVCk7CiAgU2V0U2hvcnRJbnRlZ2VyQ29uc3RhbnQo
YUVudmlyb25tZW50LCAiR0xfRU5BQkxFX0JJVCIsIEdMX0VOQUJMRV9CSVQpOwogIFNldFNob3J0
SW50ZWdlckNvbnN0YW50KGFFbnZpcm9ubWVudCwgIkdMX0NPTE9SX0JVRkZFUl9CSVQiLCBHTF9D
T0xPUl9CVUZGRVJfQklUKTsKICBTZXRTaG9ydEludGVnZXJDb25zdGFudChhRW52aXJvbm1lbnQs
ICJHTF9ISU5UX0JJVCIsIEdMX0hJTlRfQklUKTsKICBTZXRTaG9ydEludGVnZXJDb25zdGFudChh
RW52aXJvbm1lbnQsICJHTF9FVkFMX0JJVCIsIEdMX0VWQUxfQklUKTsKICBTZXRTaG9ydEludGVn
ZXJDb25zdGFudChhRW52aXJvbm1lbnQsICJHTF9MSVNUX0JJVCIsIEdMX0xJU1RfQklUKTsKICBT
ZXRTaG9ydEludGVnZXJDb25zdGFudChhRW52aXJvbm1lbnQsICJHTF9URVhUVVJFX0JJVCIsIEdM
X1RFWFRVUkVfQklUKTsKICBTZXRTaG9ydEludGVnZXJDb25zdGFudChhRW52aXJvbm1lbnQsICJH
TF9TQ0lTU09SX0JJVCIsIEdMX1NDSVNTT1JfQklUKTsKICBTZXRTaG9ydEludGVnZXJDb25zdGFu
dChhRW52aXJvbm1lbnQsICJHTF9BTExfQVRUUklCX0JJVFMiLCBHTF9BTExfQVRUUklCX0JJVFMp
OwogIFNldFNob3J0SW50ZWdlckNvbnN0YW50KGFFbnZpcm9ubWVudCwgIkdMX01BVFJJWF9NT0RF
IiwgR0xfTUFUUklYX01PREUpOwogIFNldFNob3J0SW50ZWdlckNvbnN0YW50KGFFbnZpcm9ubWVu
dCwgIkdMX01PREVMVklFVyIsIEdMX01PREVMVklFVyk7CiAgU2V0U2hvcnRJbnRlZ2VyQ29uc3Rh
bnQoYUVudmlyb25tZW50LCAiR0xfUFJPSkVDVElPTiIsIEdMX1BST0pFQ1RJT04pOwogIFNldFNo
b3J0SW50ZWdlckNvbnN0YW50KGFFbnZpcm9ubWVudCwgIkdMX1RFWFRVUkUiLCBHTF9URVhUVVJF
KTsKICBTZXRTaG9ydEludGVnZXJDb25zdGFudChhRW52aXJvbm1lbnQsICJHTFVUX0xFRlRfQlVU
VE9OIiwgR0xVVF9MRUZUX0JVVFRPTik7CiAgU2V0U2hvcnRJbnRlZ2VyQ29uc3RhbnQoYUVudmly
b25tZW50LCAiR0xVVF9NSURETEVfQlVUVE9OIiwgR0xVVF9NSURETEVfQlVUVE9OKTsKICBTZXRT
aG9ydEludGVnZXJDb25zdGFudChhRW52aXJvbm1lbnQsICJHTFVUX1JJR0hUX0JVVFRPTiIsIEdM
VVRfUklHSFRfQlVUVE9OKTsKICBTZXRTaG9ydEludGVnZXJDb25zdGFudChhRW52aXJvbm1lbnQs
ICJHTFVUX0RPV04iLCBHTFVUX0RPV04pOwogIFNldFNob3J0SW50ZWdlckNvbnN0YW50KGFFbnZp
cm9ubWVudCwgIkdMVVRfVVAiLCBHTFVUX1VQKTsKCiAgYUVudmlyb25tZW50LlNldENvbW1hbmQo
YmFzZV9nbEJlZ2luLCAiZ2xCZWdpbiIsMSxZYWNhc0V2YWx1YXRvcjo6RnVuY3Rpb24gfCBZYWNh
c0V2YWx1YXRvcjo6Rml4ZWQpOwogIGFFbnZpcm9ubWVudC5TZXRDb21tYW5kKGJhc2VfZ2xWZXJ0
ZXgzZCwgImdsVmVydGV4M2QiLDMsWWFjYXNFdmFsdWF0b3I6OkZ1bmN0aW9uIHwgWWFjYXNFdmFs
dWF0b3I6OkZpeGVkKTsKICBhRW52aXJvbm1lbnQuU2V0Q29tbWFuZChiYXNlX2dsRW5kLCAiZ2xF
bmQiLDAsWWFjYXNFdmFsdWF0b3I6OkZ1bmN0aW9uIHwgWWFjYXNFdmFsdWF0b3I6OkZpeGVkKTsK
ICBhRW52aXJvbm1lbnQuU2V0Q29tbWFuZChiYXNlX2dsQ2xlYXJDb2xvciwgImdsQ2xlYXJDb2xv
ciIsNCxZYWNhc0V2YWx1YXRvcjo6RnVuY3Rpb24gfCBZYWNhc0V2YWx1YXRvcjo6Rml4ZWQpOwog
IGFFbnZpcm9ubWVudC5TZXRDb21tYW5kKGJhc2VfZ2xDbGVhciwgImdsQ2xlYXIiLDEsWWFjYXNF
dmFsdWF0b3I6OkZ1bmN0aW9uIHwgWWFjYXNFdmFsdWF0b3I6OkZpeGVkKTsKICBhRW52aXJvbm1l
bnQuU2V0Q29tbWFuZChiYXNlX2dsQ29sb3I0ZCwgImdsQ29sb3I0ZCIsNCxZYWNhc0V2YWx1YXRv
cjo6RnVuY3Rpb24gfCBZYWNhc0V2YWx1YXRvcjo6Rml4ZWQpOwogIGFFbnZpcm9ubWVudC5TZXRD
b21tYW5kKGJhc2VfZ2xGcm9udEZhY2UsICJnbEZyb250RmFjZSIsMSxZYWNhc0V2YWx1YXRvcjo6
RnVuY3Rpb24gfCBZYWNhc0V2YWx1YXRvcjo6Rml4ZWQpOwogIGFFbnZpcm9ubWVudC5TZXRDb21t
YW5kKGJhc2VfZ2xQb2ludFNpemUsICJnbFBvaW50U2l6ZSIsMSxZYWNhc0V2YWx1YXRvcjo6RnVu
Y3Rpb24gfCBZYWNhc0V2YWx1YXRvcjo6Rml4ZWQpOwogIGFFbnZpcm9ubWVudC5TZXRDb21tYW5k
KGJhc2VfZ2xMaW5lV2lkdGgsICJnbExpbmVXaWR0aCIsMSxZYWNhc0V2YWx1YXRvcjo6RnVuY3Rp
b24gfCBZYWNhc0V2YWx1YXRvcjo6Rml4ZWQpOwogIGFFbnZpcm9ubWVudC5TZXRDb21tYW5kKGJh
c2VfZ2xFbmFibGUsICJnbEVuYWJsZSIsMSxZYWNhc0V2YWx1YXRvcjo6RnVuY3Rpb24gfCBZYWNh
c0V2YWx1YXRvcjo6Rml4ZWQpOwogIGFFbnZpcm9ubWVudC5TZXRDb21tYW5kKGJhc2VfZ2xEaXNh
YmxlLCAiZ2xEaXNhYmxlIiwxLFlhY2FzRXZhbHVhdG9yOjpGdW5jdGlvbiB8IFlhY2FzRXZhbHVh
dG9yOjpGaXhlZCk7CiAgYUVudmlyb25tZW50LlNldENvbW1hbmQoYmFzZV9nbFB1c2hNYXRyaXgs
ICJnbFB1c2hNYXRyaXgiLDAsWWFjYXNFdmFsdWF0b3I6OkZ1bmN0aW9uIHwgWWFjYXNFdmFsdWF0
b3I6OkZpeGVkKTsKICBhRW52aXJvbm1lbnQuU2V0Q29tbWFuZChiYXNlX2dsUG9wTWF0cml4LCAi
Z2xQb3BNYXRyaXgiLDAsWWFjYXNFdmFsdWF0b3I6OkZ1bmN0aW9uIHwgWWFjYXNFdmFsdWF0b3I6
OkZpeGVkKTsKICBhRW52aXJvbm1lbnQuU2V0Q29tbWFuZChiYXNlX2dsTG9hZElkZW50aXR5LCAi
Z2xMb2FkSWRlbnRpdHkiLDAsWWFjYXNFdmFsdWF0b3I6OkZ1bmN0aW9uIHwgWWFjYXNFdmFsdWF0
b3I6OkZpeGVkKTsKICBhRW52aXJvbm1lbnQuU2V0Q29tbWFuZChiYXNlX2dsUm90YXRlZCwgImds
Um90YXRlZCIsNCxZYWNhc0V2YWx1YXRvcjo6RnVuY3Rpb24gfCBZYWNhc0V2YWx1YXRvcjo6Rml4
ZWQpOwogIGFFbnZpcm9ubWVudC5TZXRDb21tYW5kKGJhc2VfZ2xTY2FsZWQsICJnbFNjYWxlZCIs
MyxZYWNhc0V2YWx1YXRvcjo6RnVuY3Rpb24gfCBZYWNhc0V2YWx1YXRvcjo6Rml4ZWQpOwogIGFF
bnZpcm9ubWVudC5TZXRDb21tYW5kKGJhc2VfZ2xUcmFuc2xhdGVkLCAiZ2xUcmFuc2xhdGVkIiwz
LFlhY2FzRXZhbHVhdG9yOjpGdW5jdGlvbiB8IFlhY2FzRXZhbHVhdG9yOjpGaXhlZCk7CiAgYUVu
dmlyb25tZW50LlNldENvbW1hbmQoYmFzZV9nbE5vcm1hbDNkLCAiZ2xOb3JtYWwzZCIsMyxZYWNh
c0V2YWx1YXRvcjo6RnVuY3Rpb24gfCBZYWNhc0V2YWx1YXRvcjo6Rml4ZWQpOwogIGFFbnZpcm9u
bWVudC5TZXRDb21tYW5kKGJhc2VfZ2xNYXRyaXhNb2RlLCAiZ2xNYXRyaXhNb2RlIiwxLFlhY2Fz
RXZhbHVhdG9yOjpGdW5jdGlvbiB8IFlhY2FzRXZhbHVhdG9yOjpGaXhlZCk7CiAgYUVudmlyb25t
ZW50LlNldENvbW1hbmQoYmFzZV9nbE9ydGhvLCAiZ2xPcnRobyIsNixZYWNhc0V2YWx1YXRvcjo6
RnVuY3Rpb24gfCBZYWNhc0V2YWx1YXRvcjo6Rml4ZWQpOwogIGFFbnZpcm9ubWVudC5TZXRDb21t
YW5kKGJhc2VfZ2xGcnVzdHVtLCAiZ2xGcnVzdHVtIiw2LFlhY2FzRXZhbHVhdG9yOjpGdW5jdGlv
biB8IFlhY2FzRXZhbHVhdG9yOjpGaXhlZCk7CiAgYUVudmlyb25tZW50LlNldENvbW1hbmQoYmFz
ZV9nbFZpZXdwb3J0LCAiZ2xWaWV3cG9ydCIsNCxZYWNhc0V2YWx1YXRvcjo6RnVuY3Rpb24gfCBZ
YWNhc0V2YWx1YXRvcjo6Rml4ZWQpOwogIGFFbnZpcm9ubWVudC5TZXRDb21tYW5kKGJhc2VfR2x1
dE1haW5Mb29wLCAiR2x1dE1haW5Mb29wIiwzLFlhY2FzRXZhbHVhdG9yOjpGdW5jdGlvbiB8IFlh
Y2FzRXZhbHVhdG9yOjpGaXhlZCk7CiAgYUVudmlyb25tZW50LlNldENvbW1hbmQoYmFzZV9HbHV0
Vmlld1dpZHRoLCAiR2x1dFZpZXdXaWR0aCIsMCxZYWNhc0V2YWx1YXRvcjo6RnVuY3Rpb24gfCBZ
YWNhc0V2YWx1YXRvcjo6Rml4ZWQpOwogIGFFbnZpcm9ubWVudC5TZXRDb21tYW5kKGJhc2VfR2x1
dFZpZXdIZWlnaHQsICJHbHV0Vmlld0hlaWdodCIsMCxZYWNhc0V2YWx1YXRvcjo6RnVuY3Rpb24g
fCBZYWNhc0V2YWx1YXRvcjo6Rml4ZWQpOwogIGFFbnZpcm9ubWVudC5TZXRDb21tYW5kKGJhc2Vf
R2x1dEVuYWJsZUFuaW1hdGlvbiwgIkdsdXRFbmFibGVBbmltYXRpb24iLDAsWWFjYXNFdmFsdWF0
b3I6OkZ1bmN0aW9uIHwgWWFjYXNFdmFsdWF0b3I6OkZpeGVkKTsKICBhRW52aXJvbm1lbnQuU2V0
Q29tbWFuZChiYXNlX0dsdXREaXNhYmxlQW5pbWF0aW9uLCAiR2x1dERpc2FibGVBbmltYXRpb24i
LDAsWWFjYXNFdmFsdWF0b3I6OkZ1bmN0aW9uIHwgWWFjYXNFdmFsdWF0b3I6OkZpeGVkKTsKICBh
RW52aXJvbm1lbnQuU2V0Q29tbWFuZChiYXNlX2dsdXRQb3N0UmVkaXNwbGF5LCAiZ2x1dFBvc3RS
ZWRpc3BsYXkiLDAsWWFjYXNFdmFsdWF0b3I6OkZ1bmN0aW9uIHwgWWFjYXNFdmFsdWF0b3I6OkZp
eGVkKTsKICBhRW52aXJvbm1lbnQuU2V0Q29tbWFuZChiYXNlX0dsdXRHZXRFbGFwc2VkVGltZSwg
IkdsdXRHZXRFbGFwc2VkVGltZSIsMCxZYWNhc0V2YWx1YXRvcjo6RnVuY3Rpb24gfCBZYWNhc0V2
YWx1YXRvcjo6Rml4ZWQpOwogIEdsdXRTZXRFbnYoYUVudmlyb25tZW50KTsKICB9Cgp2b2lkIE9w
ZW5HTFBsdWdpbjo6UmVtb3ZlKExpc3BFbnZpcm9ubWVudCYgYUVudmlyb25tZW50KQp7Ci8vcHJp
bnRmKCJDTE9TRUQgRExMISEhXG4iKTsKICBhRW52aXJvbm1lbnQuUmVtb3ZlQ29yZUNvbW1hbmQo
ImdsQmVnaW4iKTsKICBhRW52aXJvbm1lbnQuUmVtb3ZlQ29yZUNvbW1hbmQoImdsVmVydGV4M2Qi
KTsKICBhRW52aXJvbm1lbnQuUmVtb3ZlQ29yZUNvbW1hbmQoImdsRW5kIik7CiAgYUVudmlyb25t
ZW50LlJlbW92ZUNvcmVDb21tYW5kKCJnbENsZWFyQ29sb3IiKTsKICBhRW52aXJvbm1lbnQuUmVt
b3ZlQ29yZUNvbW1hbmQoImdsQ2xlYXIiKTsKICBhRW52aXJvbm1lbnQuUmVtb3ZlQ29yZUNvbW1h
bmQoImdsQ29sb3I0ZCIpOwogIGFFbnZpcm9ubWVudC5SZW1vdmVDb3JlQ29tbWFuZCgiZ2xGcm9u
dEZhY2UiKTsKICBhRW52aXJvbm1lbnQuUmVtb3ZlQ29yZUNvbW1hbmQoImdsUG9pbnRTaXplIik7
CiAgYUVudmlyb25tZW50LlJlbW92ZUNvcmVDb21tYW5kKCJnbExpbmVXaWR0aCIpOwogIGFFbnZp
cm9ubWVudC5SZW1vdmVDb3JlQ29tbWFuZCgiZ2xFbmFibGUiKTsKICBhRW52aXJvbm1lbnQuUmVt
b3ZlQ29yZUNvbW1hbmQoImdsRGlzYWJsZSIpOwogIGFFbnZpcm9ubWVudC5SZW1vdmVDb3JlQ29t
bWFuZCgiZ2xQdXNoTWF0cml4Iik7CiAgYUVudmlyb25tZW50LlJlbW92ZUNvcmVDb21tYW5kKCJn
bFBvcE1hdHJpeCIpOwogIGFFbnZpcm9ubWVudC5SZW1vdmVDb3JlQ29tbWFuZCgiZ2xMb2FkSWRl
bnRpdHkiKTsKICBhRW52aXJvbm1lbnQuUmVtb3ZlQ29yZUNvbW1hbmQoImdsUm90YXRlZCIpOwog
IGFFbnZpcm9ubWVudC5SZW1vdmVDb3JlQ29tbWFuZCgiZ2xTY2FsZWQiKTsKICBhRW52aXJvbm1l
bnQuUmVtb3ZlQ29yZUNvbW1hbmQoImdsVHJhbnNsYXRlZCIpOwogIGFFbnZpcm9ubWVudC5SZW1v
dmVDb3JlQ29tbWFuZCgiZ2xOb3JtYWwzZCIpOwogIGFFbnZpcm9ubWVudC5SZW1vdmVDb3JlQ29t
bWFuZCgiZ2xNYXRyaXhNb2RlIik7CiAgYUVudmlyb25tZW50LlJlbW92ZUNvcmVDb21tYW5kKCJn
bE9ydGhvIik7CiAgYUVudmlyb25tZW50LlJlbW92ZUNvcmVDb21tYW5kKCJnbEZydXN0dW0iKTsK
ICBhRW52aXJvbm1lbnQuUmVtb3ZlQ29yZUNvbW1hbmQoImdsVmlld3BvcnQiKTsKICBhRW52aXJv
bm1lbnQuUmVtb3ZlQ29yZUNvbW1hbmQoIkdsdXRNYWluTG9vcCIpOwogIGFFbnZpcm9ubWVudC5S
ZW1vdmVDb3JlQ29tbWFuZCgiR2x1dFZpZXdXaWR0aCIpOwogIGFFbnZpcm9ubWVudC5SZW1vdmVD
b3JlQ29tbWFuZCgiR2x1dFZpZXdIZWlnaHQiKTsKICBhRW52aXJvbm1lbnQuUmVtb3ZlQ29yZUNv
bW1hbmQoIkdsdXRFbmFibGVBbmltYXRpb24iKTsKICBhRW52aXJvbm1lbnQuUmVtb3ZlQ29yZUNv
bW1hbmQoIkdsdXREaXNhYmxlQW5pbWF0aW9uIik7CiAgYUVudmlyb25tZW50LlJlbW92ZUNvcmVD
b21tYW5kKCJnbHV0UG9zdFJlZGlzcGxheSIpOwogIGFFbnZpcm9ubWVudC5SZW1vdmVDb3JlQ29t
bWFuZCgiR2x1dEdldEVsYXBzZWRUaW1lIik7Cn0KCmV4dGVybiAiQyIgewpMaXNwUGx1Z2luQmFz
ZSogbWFrZV9vcGVuZ2wKKHZvaWQpIAp7CiAgICByZXR1cm4gTkVXIE9wZW5HTFBsdWdpbjsKfQoK
fQoKCiNlbHNlCmV4dGVybiAiQyIgewpMaXNwUGx1Z2luQmFzZSogbWFrZXIodm9pZCkKewogICAg
cmV0dXJuIE5VTEw7Cn0KfTsKI2VuZGlmIC8vSEFWRV9HTF9HTFVUX0gKCgoK
</data>        

          </attachment>
    </bug>

</bugzilla>