From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26330 invoked by alias); 9 May 2005 06:08:57 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 26238 invoked by uid 22791); 9 May 2005 06:08:47 -0000 Received: from e31.co.us.ibm.com (HELO e31.co.us.ibm.com) (32.97.110.129) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Mon, 09 May 2005 06:08:47 +0000 Received: from westrelay02.boulder.ibm.com (westrelay02.boulder.ibm.com [9.17.195.11]) by e31.co.us.ibm.com (8.12.10/8.12.9) with ESMTP id j4968iua310976 for ; Mon, 9 May 2005 02:08:44 -0400 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by westrelay02.boulder.ibm.com (8.12.10/NCO/VER6.6) with ESMTP id j4968iPc368464 for ; Mon, 9 May 2005 00:08:44 -0600 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.12.11/8.13.3) with ESMTP id j4968hZ9028139 for ; Mon, 9 May 2005 00:08:43 -0600 Received: from imap.linux.ibm.com (imap.rtp.raleigh.ibm.com [9.42.107.100]) by d03av01.boulder.ibm.com (8.12.11/8.12.11) with ESMTP id j4968MUY027829; Mon, 9 May 2005 00:08:43 -0600 Received: by imap.linux.ibm.com (Postfix, from userid 48) id 71D497C015; Mon, 9 May 2005 02:08:21 -0400 (EDT) Received: from 9.181.134.123 ([9.181.134.123]) by imap.rtp.raleigh.ibm.com (IMP) with HTTP for ; Mon, 9 May 2005 02:08:21 -0400 Message-ID: <1115618901.427efe5535a1f@imap.linux.ibm.com> Date: Mon, 09 May 2005 06:28:00 -0000 From: Wu Zhou To: Daniel Jacobowitz Cc: pgilliam@us.ibm.com, gdb-patches@sources.redhat.com Subject: Re: [patch] update gdb.base/shreloc.exp to use new shared library infrastructure MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="-MOQ1115618901005618700ae1a9c93cf03886e26bb139" User-Agent: Internet Messaging Program (IMP) 3.2.7 X-SW-Source: 2005-05/txt/msg00207.txt.bz2 boulder.ibm.com (westrelay02.boulder.ibm.com [9.17.195.11]) by e31.co.us.ibm.com (8.12.10/8.12.9) with ESMTP id j4968iua310976 for ; Mon, 9 May 2005 02:08:44 -0400 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by westrelay02.boulder.ibm.com (8.12.10/NCO/VER6.6) with ESMTP id j4968iPc368464 for ; Mon, 9 May 2005 00:08:44 -0600 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.12.11/8.13.3) with ESMTP id j4968hZ9028139 for ; Mon, 9 May 2005 00:08:43 -0600 Received: from imap.linux.ibm.com (imap.rtp.raleigh.ibm.com [9.42.107.100]) by d03av01.boulder.ibm.com (8.12.11/8.12.11) with ESMTP id j4968MUY027829; Mon, 9 May 2005 00:08:43 -0600 Received: by imap.linux.ibm.com (Postfix, from userid 48) id 71D497C015; Mon, 9 May 2005 02:08:21 -0400 (EDT) Received: from 9.181.134.123 ([9.181.134.123]) by imap.rtp.raleigh.ibm.com (IMP) with HTTP for ; Mon, 9 May 2005 02:08:21 -0400 Message-ID: <1115618901.427efe5535a1f@imap.linux.ibm.com> Date: Mon, 9 May 2005 02:08:21 -0400 From: Wu Zhou To: Daniel Jacobowitz Cc: pgilliam@us.ibm.com, gdb-patches@sources.redhat.com Subject: Re: [patch] update gdb.base/shreloc.exp to use new shared library infrastructure MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="-MOQ1115618901005618700ae1a9c93cf03886e26bb139" User-Agent: Internet Messaging Program (IMP) 3.2.7 This message is in MIME format. ---MOQ1115618901005618700ae1a9c93cf03886e26bb139 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Content-length: 6784 Hi Daniel, Did you had a chance to review this revised patch? I am now using LTC's web mail client, which should not do any mangle on the mail. If it still made trouble to read, please see the attached file for the patch. Thanks. - Wu Zhou Quoting Wu Zhou : > > > Can we fix the testcase instead of adding -qdbxextra, by making the > > > variable referenced? Other compilers do the same optimization, and > > > some of them don't have a handy option to preserve the variable. > > > > > > > Is it ok to change the following lines in shreloc1.c/shreloc2.c from: > > > > ATTRIBUTES void fn_1 (int unused) { } > > ATTRIBUTES void fn_2 (int unused) { } > > > > to: > > > > ATTRIBUTES void fn_1 (int refered) { static_var_1 = refered; } > > ATTRIBUTES void fn_2 (int refered) { static_var_2 = refered; } > > > > Please comments. Thanks. > > Here goes the revised patch. Wishing that it will not get mangled any more. Please review and comments. > > 2005-05-01 Paul Gilliam > Wu Zhou > > * gdb.base/shreloc.exp: Use gdb_compile_shlib. Add support for > IBM's xlc compiler. > * gdb.base/shreloc1.c: Refer variable static_var_1 in fn_1. > * gdb.base/shreloc2.c: Refer variable static_var_2 in fn_2. > > Index: gdb.base/shreloc.exp > =================================================================== > RCS file: /cvs/src/src/gdb/testsuite/gdb.base/shreloc.exp,v > retrieving revision 1.2 > diff -c -3 -p -r1.2 shreloc.exp > *** gdb.base/shreloc.exp 11 Nov 2003 17:58:28 -0000 1.2 > --- gdb.base/shreloc.exp 1 May 2005 02:04:17 -0000 > *************** > *** 1,4 **** > ! # Copyright (C) 2003 Free Software Foundation, Inc. > # > # This program is free software; you can redistribute it and/or modify > # it under the terms of the GNU General Public License as published by > --- 1,4 ---- > ! # Copyright (C) 2003, 2005 Free Software Foundation, Inc. > # > # This program is free software; you can redistribute it and/or modify > # it under the terms of the GNU General Public License as published by > *************** > *** 15,23 **** > # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. > # > > - # Please email any bugs, comments, and/or additions to this file to: > - # bug-gdb@prep.ai.mit.edu > - > # Tests for shared object file relocation. If two shared objects have > # the same load address (actually, overlapping load spaces), one of > # them gets relocated at load-time. Check that gdb gets the right > --- 15,20 ---- > *************** set prms_id 0 > *** 40,71 **** > set bug_id 0 > > set workdir ${objdir}/${subdir} > > ! foreach module [list "shreloc" "shreloc1" "shreloc2"] { > ! if {[gdb_compile "${srcdir}/${subdir}/${module}.c" "${workdir}/${module}.o" object {debug}] != ""} { > ! untested "Couldn't compile ${module}.c" > ! return -1 > ! } > } > > ! set additional_flags "additional_flags=-shared" > > if {([istarget "*pc-cygwin"] || [istarget "*pc-mingw32"]) } { > ! set additional_flags "${additional_flags} -Wl,--image-base,0x04000000" > } > > ! foreach module [list "shreloc1" "shreloc2"] { > ! if {[gdb_compile "${workdir}/${module}.o" "${workdir}/${module}.dll" executable [list debug $additional_flags]] != ""} { > ! untested "Couldn't link ${module}.dll" > ! return -1 > ! } > } > > ! if {[gdb_compile [list "${workdir}/shreloc.o" "${workdir}/shreloc1.dll" "${workdir}/shreloc2.dll"] "${workdir}/shreloc" executable debug] != ""} { > ! untested "Couldn't link shreloc executable" > return -1 > } > > gdb_exit > gdb_start > gdb_reinitialize_dir $srcdir/$subdir > --- 37,86 ---- > set bug_id 0 > > set workdir ${objdir}/${subdir} > + set testfile "shreloc" > + set libfile1 "shreloc1" > + set libfile2 "shreloc2" > + set srcfile $srcdir/$subdir/$testfile.c > + set lib1src $srcdir/$subdir/$libfile1.c > + set lib2src $srcdir/$subdir/$libfile2.c > + set binfile $objdir/$subdir/$testfile > + set lib1_sl $objdir/$subdir/$libfile1.sl > + set lib2_sl $objdir/$subdir/$libfile2.sl > > ! if [get_compiler_info ${binfile}] { > ! return -1 > } > > ! set lib_opts "debug" > ! set exec_opts [list debug shlib=$lib1_sl shlib=$lib2_sl] > > if {([istarget "*pc-cygwin"] || [istarget "*pc-mingw32"]) } { > ! lappend lib_opts "additional_flags=-Wl,--image-base,0x04000000" > } > > ! if [test_compiler_info "xlc-*"] { > ! > ! # IBM's xlc compiler does not add static variables to the ELF symbol > ! # table by default. We need this option to make the variables show > ! # up in "maint print msymbols". > ! > ! lappend lib_opts "additional_flags=-qstatsym" > ! > } > > ! if { [gdb_compile_shlib $lib1src $lib1_sl $lib_opts] != ""} { > ! untested "Could not build $lib1_sl." > ! return -1 > ! } elseif { [gdb_compile_shlib $lib2src $lib2_sl $lib_opts] != ""} { > ! untested "Could not build $lib1_s2." > ! return -1 > ! } elseif { [gdb_compile $srcfile $binfile executable $exec_opts] != ""} { > ! untested "Could not build $binfile." > return -1 > } > > + # Start with a fresh gdb. > + > gdb_exit > gdb_start > gdb_reinitialize_dir $srcdir/$subdir > Index: gdb.base/shreloc1.c > =================================================================== > RCS file: /cvs/src/src/gdb/testsuite/gdb.base/shreloc1.c,v > retrieving revision 1.1 > diff -c -3 -p -r1.1 shreloc1.c > *** gdb.base/shreloc1.c 9 Jun 2003 21:23:53 -0000 1.1 > --- gdb.base/shreloc1.c 1 May 2005 02:04:17 -0000 > *************** > *** 6,10 **** > > static int static_var_1; > > ! ATTRIBUTES void fn_1 (int unused) { } > ATTRIBUTES int extern_var_1 = 0; > --- 6,10 ---- > > static int static_var_1; > > ! ATTRIBUTES void fn_1 (int refered) { static_var_1 = refered; } > ATTRIBUTES int extern_var_1 = 0; > Index: gdb.base/shreloc2.c > =================================================================== > RCS file: /cvs/src/src/gdb/testsuite/gdb.base/shreloc2.c,v > retrieving revision 1.1 > diff -c -3 -p -r1.1 shreloc2.c > *** gdb.base/shreloc2.c 9 Jun 2003 21:23:53 -0000 1.1 > --- gdb.base/shreloc2.c 1 May 2005 02:04:17 -0000 > *************** > *** 6,10 **** > > static int static_var_2; > > ! ATTRIBUTES void fn_2 (int unused) { } > ATTRIBUTES int extern_var_2 = 0; > --- 6,10 ---- > > static int static_var_2; > > ! ATTRIBUTES void fn_2 (int refered) { static_var_2 = refered; } > ATTRIBUTES int extern_var_2 = 0; > ========================End of this patch================================ > > Cheers > - Wu Zhou > > Cheers - Wu Zhou ---MOQ1115618901005618700ae1a9c93cf03886e26bb139 Content-Type: text/plain; name="base_shreloc.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="base_shreloc.patch" Content-length: 7434 MjAwNS0wNS0wMSAgUGF1bCBHaWxsaWFtICA8cGdpbGxpYW1AdXMuaWJtLmNv bT4gCiAgICAgICAgICAgIFd1IFpob3UgICA8d29vZHpsdGNAY24uaWJtLmNv bT4gCgogICAgICAgICogZ2RiLmJhc2Uvc2hyZWxvYy5leHA6IFVzZSBnZGJf Y29tcGlsZV9zaGxpYi4gIEFkZCBzdXBwb3J0IGZvciAKICAgICAgICBJQk0n cyB4bGMgY29tcGlsZXIuIAogICAgICAgICogZ2RiLmJhc2Uvc2hyZWxvYzEu YzogUmVmZXIgdmFyaWFibGUgc3RhdGljX3Zhcl8xIGluIGZuXzEuICAKICAg ICAgICAqIGdkYi5iYXNlL3NocmVsb2MyLmM6IFJlZmVyIHZhcmlhYmxlIHN0 YXRpY192YXJfMiBpbiBmbl8yLiAgCgpJbmRleDogZ2RiLmJhc2Uvc2hyZWxv Yy5leHAgCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gClJDUyBmaWxlOiAvY3Zz L3NyYy9zcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zaHJlbG9jLmV4cCx2 IApyZXRyaWV2aW5nIHJldmlzaW9uIDEuMiAKZGlmZiAtYyAtMyAtcCAtcjEu MiBzaHJlbG9jLmV4cCAKKioqIGdkYi5iYXNlL3NocmVsb2MuZXhwICAgICAg ICAxMSBOb3YgMjAwMyAxNzo1ODoyOCAtMDAwMCAgICAgIDEuMiAKLS0tIGdk Yi5iYXNlL3NocmVsb2MuZXhwICAgICAgICAxIE1heSAyMDA1IDAyOjA0OjE3 IC0wMDAwIAoqKioqKioqKioqKioqKiogCioqKiAxLDQgKioqKiAKISAjIENv cHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4gCiAgIyAKICAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IAogICMgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkgCi0tLSAxLDQgLS0tLSAKISAjIENvcHly aWdodCAoQykgMjAwMywgMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4gCiAgIyAKICAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IAogICMg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgCioqKioqKioqKioqKioqKiAKKioq IDE1LDIzICoqKiogCiAgIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUg UGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNB LiAKICAjIAogICAKLSAjIFBsZWFzZSBlbWFpbCBhbnkgYnVncywgY29tbWVu dHMsIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhpcyBmaWxlIHRvOiAKLSAjIGJ1 Zy1nZGJAcHJlcC5haS5taXQuZWR1IAotIAogICMgVGVzdHMgZm9yIHNoYXJl ZCBvYmplY3QgZmlsZSByZWxvY2F0aW9uLiBJZiB0d28gc2hhcmVkIG9iamVj dHMgaGF2ZSAKICAjIHRoZSBzYW1lIGxvYWQgYWRkcmVzcyAoYWN0dWFsbHks IG92ZXJsYXBwaW5nIGxvYWQgc3BhY2VzKSwgb25lIG9mIAogICMgdGhlbSBn ZXRzIHJlbG9jYXRlZCBhdCBsb2FkLXRpbWUuIENoZWNrIHRoYXQgZ2RiIGdl dHMgdGhlIHJpZ2h0IAotLS0gMTUsMjAgLS0tLSAKKioqKioqKioqKioqKioq IHNldCBwcm1zX2lkIDAgCioqKiA0MCw3MSAqKioqIAogIHNldCBidWdfaWQg MCAKICAgCiAgc2V0IHdvcmtkaXIgJHtvYmpkaXJ9LyR7c3ViZGlyfSAKICAg CiEgZm9yZWFjaCBtb2R1bGUgW2xpc3QgInNocmVsb2MiICJzaHJlbG9jMSIg InNocmVsb2MyIl0geyAKISAgICAgaWYge1tnZGJfY29tcGlsZSAiJHtzcmNk aXJ9LyR7c3ViZGlyfS8ke21vZHVsZX0uYyIgIiR7d29ya2Rpcn0vJHttb2R1 bGV9Lm8iIG9iamVjdCB7ZGVidWd9XSAhPSAiIn0geyAKISAgICAgICB1bnRl c3RlZCAiQ291bGRuJ3QgY29tcGlsZSAke21vZHVsZX0uYyIgCiEgICAgICAg cmV0dXJuIC0xIAohICAgICB9IAogIH0gCiAgIAohIHNldCBhZGRpdGlvbmFs X2ZsYWdzICJhZGRpdGlvbmFsX2ZsYWdzPS1zaGFyZWQiIAogICAKICBpZiB7 KFtpc3RhcmdldCAiKnBjLWN5Z3dpbiJdIHx8IFtpc3RhcmdldCAiKnBjLW1p bmd3MzIiXSkgfSB7IAohICAgICBzZXQgYWRkaXRpb25hbF9mbGFncyAiJHth ZGRpdGlvbmFsX2ZsYWdzfSAtV2wsLS1pbWFnZS1iYXNlLDB4MDQwMDAwMDAi IAogIH0gCiAgIAohIGZvcmVhY2ggbW9kdWxlIFtsaXN0ICJzaHJlbG9jMSIg InNocmVsb2MyIl0geyAKISAgICAgaWYge1tnZGJfY29tcGlsZSAiJHt3b3Jr ZGlyfS8ke21vZHVsZX0ubyIgIiR7d29ya2Rpcn0vJHttb2R1bGV9LmRsbCIg ZXhlY3V0YWJsZSBbbGlzdCBkZWJ1ZyAkYWRkaXRpb25hbF9mbGFnc11dICE9 ICIifSB7IAohICAgICAgIHVudGVzdGVkICJDb3VsZG4ndCBsaW5rICR7bW9k dWxlfS5kbGwiIAohICAgICAgIHJldHVybiAtMSAKISAgICAgfSAKICB9IAog ICAKISBpZiB7W2dkYl9jb21waWxlIFtsaXN0ICIke3dvcmtkaXJ9L3NocmVs b2MubyIgIiR7d29ya2Rpcn0vc2hyZWxvYzEuZGxsIiAiJHt3b3JrZGlyfS9z aHJlbG9jMi5kbGwiXSAiJHt3b3JrZGlyfS9zaHJlbG9jIiBleGVjdXRhYmxl IGRlYnVnXSAhPSAiIn0geyAKISAgICAgdW50ZXN0ZWQgIkNvdWxkbid0IGxp bmsgc2hyZWxvYyBleGVjdXRhYmxlIiAKICAgICAgcmV0dXJuIC0xIAogIH0g CiAgIAogIGdkYl9leGl0IAogIGdkYl9zdGFydCAKICBnZGJfcmVpbml0aWFs aXplX2RpciAkc3JjZGlyLyRzdWJkaXIgCi0tLSAzNyw4NiAtLS0tIAogIHNl dCBidWdfaWQgMCAKICAgCiAgc2V0IHdvcmtkaXIgJHtvYmpkaXJ9LyR7c3Vi ZGlyfSAKKyBzZXQgdGVzdGZpbGUgInNocmVsb2MiIAorIHNldCBsaWJmaWxl MSAic2hyZWxvYzEiIAorIHNldCBsaWJmaWxlMiAic2hyZWxvYzIiIAorIHNl dCBzcmNmaWxlICRzcmNkaXIvJHN1YmRpci8kdGVzdGZpbGUuYyAKKyBzZXQg bGliMXNyYyAkc3JjZGlyLyRzdWJkaXIvJGxpYmZpbGUxLmMgCisgc2V0IGxp YjJzcmMgJHNyY2Rpci8kc3ViZGlyLyRsaWJmaWxlMi5jIAorIHNldCBiaW5m aWxlICRvYmpkaXIvJHN1YmRpci8kdGVzdGZpbGUgCisgc2V0IGxpYjFfc2wg JG9iamRpci8kc3ViZGlyLyRsaWJmaWxlMS5zbCAKKyBzZXQgbGliMl9zbCAk b2JqZGlyLyRzdWJkaXIvJGxpYmZpbGUyLnNsIAogICAKISBpZiBbZ2V0X2Nv bXBpbGVyX2luZm8gJHtiaW5maWxlfV0geyAKISAgICAgcmV0dXJuIC0xIAog IH0gCiAgIAohIHNldCBsaWJfb3B0cyAiZGVidWciIAohIHNldCBleGVjX29w dHMgW2xpc3QgZGVidWcgc2hsaWI9JGxpYjFfc2wgc2hsaWI9JGxpYjJfc2xd IAogICAKICBpZiB7KFtpc3RhcmdldCAiKnBjLWN5Z3dpbiJdIHx8IFtpc3Rh cmdldCAiKnBjLW1pbmd3MzIiXSkgfSB7IAohICAgICBsYXBwZW5kIGxpYl9v cHRzICJhZGRpdGlvbmFsX2ZsYWdzPS1XbCwtLWltYWdlLWJhc2UsMHgwNDAw MDAwMCIgCiAgfSAKICAgCiEgaWYgW3Rlc3RfY29tcGlsZXJfaW5mbyAieGxj LSoiXSB7IAohIAohICAgICAjIElCTSdzIHhsYyBjb21waWxlciBkb2VzIG5v dCBhZGQgc3RhdGljIHZhcmlhYmxlcyB0byB0aGUgRUxGIHN5bWJvbCAKISAg ICAgIyB0YWJsZSBieSBkZWZhdWx0LiAgV2UgbmVlZCB0aGlzIG9wdGlvbiB0 byBtYWtlIHRoZSB2YXJpYWJsZXMgc2hvdyAKISAgICAgIyB1cCBpbiAibWFp bnQgcHJpbnQgbXN5bWJvbHMiLiAKISAKISAgICAgbGFwcGVuZCBsaWJfb3B0 cyAiYWRkaXRpb25hbF9mbGFncz0tcXN0YXRzeW0iIAohIAogIH0gCiAgIAoh IGlmIHsgW2dkYl9jb21waWxlX3NobGliICRsaWIxc3JjICRsaWIxX3NsICRs aWJfb3B0c10gIT0gIiJ9IHsgCiEgICAgIHVudGVzdGVkICJDb3VsZCBub3Qg YnVpbGQgJGxpYjFfc2wuIiAKISAgICAgcmV0dXJuIC0xIAohIH0gZWxzZWlm IHsgW2dkYl9jb21waWxlX3NobGliICRsaWIyc3JjICRsaWIyX3NsICRsaWJf b3B0c10gIT0gIiJ9IHsgCiEgICAgIHVudGVzdGVkICJDb3VsZCBub3QgYnVp bGQgJGxpYjFfczIuIiAKISAgICAgcmV0dXJuIC0xIAohIH0gZWxzZWlmIHsg W2dkYl9jb21waWxlICRzcmNmaWxlICRiaW5maWxlIGV4ZWN1dGFibGUgJGV4 ZWNfb3B0c10gIT0gIiJ9IHsgCiEgICAgIHVudGVzdGVkICJDb3VsZCBub3Qg YnVpbGQgJGJpbmZpbGUuIiAKICAgICAgcmV0dXJuIC0xIAogIH0gCiAgIAor ICMgU3RhcnQgd2l0aCBhIGZyZXNoIGdkYi4gCisgCiAgZ2RiX2V4aXQgCiAg Z2RiX3N0YXJ0IAogIGdkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1 YmRpciAKSW5kZXg6IGdkYi5iYXNlL3NocmVsb2MxLmMgCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0gClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9zaHJlbG9jMS5jLHYgCnJldHJpZXZpbmcgcmV2aXNp b24gMS4xIApkaWZmIC1jIC0zIC1wIC1yMS4xIHNocmVsb2MxLmMgCioqKiBn ZGIuYmFzZS9zaHJlbG9jMS5jIDkgSnVuIDIwMDMgMjE6MjM6NTMgLTAwMDAg ICAgICAgMS4xIAotLS0gZ2RiLmJhc2Uvc2hyZWxvYzEuYyAxIE1heSAyMDA1 IDAyOjA0OjE3IC0wMDAwIAoqKioqKioqKioqKioqKiogCioqKiA2LDEwICoq KiogCiAgIAogIHN0YXRpYyBpbnQgc3RhdGljX3Zhcl8xOyAKICAgCiEgQVRU UklCVVRFUyB2b2lkIGZuXzEgKGludCB1bnVzZWQpIHsgfSAKICBBVFRSSUJV VEVTIGludCBleHRlcm5fdmFyXzEgPSAwOyAKLS0tIDYsMTAgLS0tLSAKICAg CiAgc3RhdGljIGludCBzdGF0aWNfdmFyXzE7IAogICAKISBBVFRSSUJVVEVT IHZvaWQgZm5fMSAoaW50IHJlZmVyZWQpIHsgc3RhdGljX3Zhcl8xID0gcmVm ZXJlZDsgfSAKICBBVFRSSUJVVEVTIGludCBleHRlcm5fdmFyXzEgPSAwOyAK SW5kZXg6IGdkYi5iYXNlL3NocmVsb2MyLmMgCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0gClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9zaHJlbG9jMi5jLHYgCnJldHJpZXZpbmcgcmV2aXNpb24gMS4x IApkaWZmIC1jIC0zIC1wIC1yMS4xIHNocmVsb2MyLmMgCioqKiBnZGIuYmFz ZS9zaHJlbG9jMi5jIDkgSnVuIDIwMDMgMjE6MjM6NTMgLTAwMDAgICAgICAg MS4xIAotLS0gZ2RiLmJhc2Uvc2hyZWxvYzIuYyAxIE1heSAyMDA1IDAyOjA0 OjE3IC0wMDAwIAoqKioqKioqKioqKioqKiogCioqKiA2LDEwICoqKiogCiAg IAogIHN0YXRpYyBpbnQgc3RhdGljX3Zhcl8yOyAKICAgCiEgQVRUUklCVVRF UyB2b2lkIGZuXzIgKGludCB1bnVzZWQpIHsgfSAKICBBVFRSSUJVVEVTIGlu dCBleHRlcm5fdmFyXzIgPSAwOyAKLS0tIDYsMTAgLS0tLSAKICAgCiAgc3Rh dGljIGludCBzdGF0aWNfdmFyXzI7IAogICAKISBBVFRSSUJVVEVTIHZvaWQg Zm5fMiAoaW50IHJlZmVyZWQpIHsgc3RhdGljX3Zhcl8yID0gcmVmZXJlZDsg fSAKICBBVFRSSUJVVEVTIGludCBleHRlcm5fdmFyXzIgPSAwOyA= ---MOQ1115618901005618700ae1a9c93cf03886e26bb139--