From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10071 invoked by alias); 7 Sep 2011 17:21:41 -0000 Received: (qmail 10059 invoked by uid 22791); 7 Sep 2011 17:21:35 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_SV,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-gx0-f173.google.com (HELO mail-gx0-f173.google.com) (209.85.161.173) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 07 Sep 2011 17:21:19 +0000 Received: by gxk26 with SMTP id 26so25475gxk.18 for ; Wed, 07 Sep 2011 10:21:18 -0700 (PDT) MIME-Version: 1.0 Received: by 10.150.229.20 with SMTP id b20mr1623305ybh.49.1315416078253; Wed, 07 Sep 2011 10:21:18 -0700 (PDT) Received: by 10.151.9.7 with HTTP; Wed, 7 Sep 2011 10:21:18 -0700 (PDT) Date: Wed, 07 Sep 2011 17:29:00 -0000 Message-ID: Subject: PATCH: Add capability to contrib/compare_tests to handle directories From: Quentin Neill To: gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary=000e0cd4d748137e9e04ac5d2cad X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-09/txt/msg00513.txt.bz2 --000e0cd4d748137e9e04ac5d2cad Content-Type: text/plain; charset=ISO-8859-1 Content-length: 5892 Hi, Should not change behavior for comparing two files (expect for usage output), and also should be POSIX compliant. Tested on x86_64 tests logs and test directories, would be interested in help testing on other platforms. Ok to commit? -- Quentin Neill >From 4d4fa9d094745ace0b6e51faadb2f3ea40cb7c7f Mon Sep 17 00:00:00 2001 From: Quentin Neill Date: Wed, 7 Sep 2011 12:04:35 -0500 Subject: [PATCH] Add capability to compare test log directories. --- contrib/ChangeLog | 4 ++ contrib/compare_tests | 107 ++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 101 insertions(+), 10 deletions(-) diff --git a/contrib/ChangeLog b/contrib/ChangeLog index 07adb58..e2007e7 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,7 @@ +2011-09-07 Quentin Neill + + * compare_tests: Add capability to compare test log directories. + 2011-08-25 Rainer Orth * gcc_update: Determine svn branch from hg convert_revision. diff --git a/contrib/compare_tests b/contrib/compare_tests index bed9742..b0e3321 100755 --- a/contrib/compare_tests +++ b/contrib/compare_tests @@ -2,13 +2,36 @@ # This script automatically test the given tool with the tool's test cases, # reporting anything of interest. -# exits with 0 if there is nothing of interest -# exits with 1 if there is something interesting -# exits with 2 if an error occurred - -# Give two .sum files to compare them +usage() +{ + if [ -n "$1" ] ; then + echo "$0: Error: $1" >&2 + echo >&2 + fi + cat >&2 < +# Subdir comparison added by Quentin Neill tool=gxx @@ -16,10 +39,72 @@ tmp1=/tmp/$tool-testing.$$a tmp2=/tmp/$tool-testing.$$b now_s=/tmp/$tool-testing.$$d before_s=/tmp/$tool-testing.$$e +lst1=/tmp/$tool-lst1.$$ +lst2=/tmp/$tool-lst2.$$ +lst3=/tmp/$tool-lst3.$$ +lst4=/tmp/$tool-lst4.$$ +lst5=/tmp/$tool-lst5.$$ +tmps="$tmp1 $tmp2 $now_s $before_s $lst1 $lst2 $lst3 $lst4 $lst5" + +[ "$1" = "-strict" ] && strict=$1 && shift +[ "$1" = "-?" ] && usage +[ "$2" = "" ] && usage "Must specify both PREVIOUS and CURRENT" + +trap "rm -f $tmps" 0 1 2 3 5 9 13 15 +exit_status=0 -if [ "$2" = "" ]; then - echo "Usage: $0 previous current" >&2 - exit 2 +if [ -d "$1" -a -d "$2" ] ; then + find "$1" \( ! -name config.log \) -name '*.log' >$lst1 + find "$2" \( ! -name config.log \) -name '*.log' >$lst2 + echo "# Comparing directories" + echo "## Dir1=$1: `cat $lst1 | wc -l` log files" + echo "## Dir2=$2: `cat $lst2 | wc -l` log files" + echo + # remove leading directory components to compare + sed -e "s|^$1/||" $lst1 | sort >$lst3 + sed -e "s|^$2/||" $lst2 | sort >$lst4 + comm -23 $lst3 $lst4 >$lst5 + if [ -s $lst5 ] ; then + echo "# Extra log files in Dir1=$1" + sed -e "s|^|< $1/|" $lst5 + echo + [ -n "$strict" ] && exit_status=`expr $exit_status + 1` + fi + comm -13 $lst3 $lst4 >$lst5 + if [ -s $lst5 ] ; then + echo "# Extra log files in Dir2=$2" + sed -e "s|^|> $2/|" $lst5 + echo + [ -n "$strict" ] && exit_status=`expr $exit_status + 1` + fi + comm -12 $lst3 $lst4 | sort -u >$lst5 + if [ ! -s $lst5 ] ; then + echo "# No common log files" + exit_status=`expr $exit_status + 1` + exit $exit_status + fi + cmnlogs=`cat $lst5 | wc -l` + echo "# Comparing $cmnlogs common log files" + for fname in `cat $lst5` + do + f1="$1/$fname" + f2="$2/$fname" + echo "## ${CONFIG_SHELL-/bin/sh} $0 $strict $f1 $f2" + ${CONFIG_SHELL-/bin/sh} $0 $strict $f1 $f2 + ret=$? + if [ $ret -ne 0 ]; then + exit_status=`expr $exit_status + 1` + echo "## Differences found: $fname" + fi + done + if [ $exit_status -ne 0 ]; then + echo "# $exit_status differences in $cmnlogs common log files found" + else + echo "# No differences found in $cmnlogs common log files" + fi + exit $exit_status +elif [ -d "$1" -o -d "$2" ] ; then + usage "Must specify either two directories or two files" fi sed 's/^XFAIL/FAIL/; s/^XPASS/PASS/' < "$1" | awk '/^Running target / {target = $3} { if (target != "unix") { sub(/: /, "&"target": " ); }; print $0; }' >$tmp1 @@ -28,8 +113,6 @@ sed 's/^XFAIL/FAIL/; s/^XPASS/PASS/' < "$2" | awk '/^Running target / {target = before=$tmp1 now=$tmp2 -exit_status=0 -trap "rm -f $tmp1 $tmp2 $now_s $before_s" 0 1 2 3 5 9 13 15 if sort -k 2 /dev/null 2>&1; then skip1='-k 2' @@ -60,6 +143,7 @@ if [ $? = 0 ]; then echo "Tests that now work, but didn't before:" echo cat $tmp2 + [ -n "$strict" ] && echo "Strict test fails" && exit_status=1 echo fi @@ -83,6 +167,7 @@ if [ $? = 0 ]; then echo "New tests that PASS:" echo cat $tmp2 + [ -n "$strict" ] && echo "Strict test fails" && exit_status=1 echo fi @@ -94,6 +179,7 @@ if [ $? = 0 ]; then echo "Old tests that passed, that have disappeared: (Eeek!)" echo cat $tmp2 + [ -n "$strict" ] && echo "Strict test fails" && exit_status=1 echo fi @@ -105,6 +191,7 @@ if [ $? = 0 ]; then echo "Old tests that failed, that have disappeared: (Eeek!)" echo cat $tmp2 + [ -n "$strict" ] && echo "Strict test fails" && exit_status=1 echo fi -- 1.7.1 --000e0cd4d748137e9e04ac5d2cad Content-Type: text/plain; charset=US-ASCII; name="1907-20110907-quentin.neill.amd.com-add_dir_compare_to_compare_test-patch.txt" Content-Disposition: attachment; filename="1907-20110907-quentin.neill.amd.com-add_dir_compare_to_compare_test-patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gsakgysc0 Content-length: 7662 RnJvbSA3NGZjMDBlNzMxYjIzNWI0MjkyMjZjOWQ5ODAxYmFkZTAxNTM2M2Yz IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBRdWVudGluIE5laWxs IDxxdWVudGluLm5laWxsQGFtZC5jb20+CkRhdGU6IFdlZCwgNyBTZXAgMjAx MSAxMjowNDozNSAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCBjYXBhYmls aXR5IHRvIGNvbXBhcmUgdGVzdCBsb2cgZGlyZWN0b3JpZXMuCgotLS0KIGNv bnRyaWIvQ2hhbmdlTG9nICAgICB8ICAgIDQgKysKIGNvbnRyaWIvY29tcGFy ZV90ZXN0cyB8ICAxMDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMDEgaW5z ZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29u dHJpYi9DaGFuZ2VMb2cgYi9jb250cmliL0NoYW5nZUxvZwppbmRleCAwN2Fk YjU4Li5lMjAwN2U3IDEwMDY0NAotLS0gYS9jb250cmliL0NoYW5nZUxvZwor KysgYi9jb250cmliL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcgQEAKKzIwMTEt MDktMDcgIFF1ZW50aW4gTmVpbGwgIDxxdWVudGluLm5laWxsQGFtZC5jb20+ CisKKwkqIGNvbXBhcmVfdGVzdHM6IEFkZCBjYXBhYmlsaXR5IHRvIGNvbXBh cmUgdGVzdCBsb2cgZGlyZWN0b3JpZXMuCisKIDIwMTEtMDgtMjUgIFJhaW5l ciBPcnRoICA8cm9AQ2VCaVRlYy5VbmktQmllbGVmZWxkLkRFPgogCiAJKiBn Y2NfdXBkYXRlOiBEZXRlcm1pbmUgc3ZuIGJyYW5jaCBmcm9tIGhnIGNvbnZl cnRfcmV2aXNpb24uCmRpZmYgLS1naXQgYS9jb250cmliL2NvbXBhcmVfdGVz dHMgYi9jb250cmliL2NvbXBhcmVfdGVzdHMKaW5kZXggYmVkOTc0Mi4uODhl MGZhNiAxMDA3NTUKLS0tIGEvY29udHJpYi9jb21wYXJlX3Rlc3RzCisrKyBi L2NvbnRyaWIvY29tcGFyZV90ZXN0cwpAQCAtMiwxMyArMiwzNiBAQAogIyBU aGlzIHNjcmlwdCBhdXRvbWF0aWNhbGx5IHRlc3QgdGhlIGdpdmVuIHRvb2wg d2l0aCB0aGUgdG9vbCdzIHRlc3QgY2FzZXMsCiAjIHJlcG9ydGluZyBhbnl0 aGluZyBvZiBpbnRlcmVzdC4KIAotIyBleGl0cyB3aXRoIDAgaWYgdGhlcmUg aXMgbm90aGluZyBvZiBpbnRlcmVzdAotIyBleGl0cyB3aXRoIDEgaWYgdGhl cmUgaXMgc29tZXRoaW5nIGludGVyZXN0aW5nCi0jIGV4aXRzIHdpdGggMiBp ZiBhbiBlcnJvciBvY2N1cnJlZAotCi0jIEdpdmUgdHdvIC5zdW0gZmlsZXMg dG8gY29tcGFyZSB0aGVtCit1c2FnZSgpCit7CisJaWYgWyAtbiAiJDEiIF0g OyB0aGVuCisJCWVjaG8gIiQwOiBFcnJvcjogJDEiID4mMgorCQllY2hvID4m MgorCWZpCisJY2F0ID4mMiA8PEVPVVNBR0UKK1VzYWdlOiAkMCBbLXN0cmlj dF0gUFJFVklPVVMgQ1VSUkVOVAorCisJQ29tcGFyZSB0aGUgUFJFVklPVVMg YW5kIENVUlJFTlQgdGVzdCBjYXNlIGxvZ3MsIHJlcG9ydGluZyBhbnl0aGlu ZyBvZiBpbnRlcmVzdC4KKworCUlmIFBSRVZJT1VTIGFuZCBDVVJSRU5UIGFy ZSBkaXJlY3RvcmllcywgZmluZCBhbmQgY29tcGFyZSBhbnkgKi5sb2cgZmls ZXMKKwl0aGVyZWluIChleGNlcHQgY29uZmlnLmxvZyBmaWxlcykuCisKKwlV bmxlc3MgLXN0cmljdCBpcyBnaXZlbiwgdGhlc2UgZGlzY3JlcGFuY2llcyBh cmUgbm90IGNvdW50ZWQgYXMgZXJyb3JzOgorCQltaXNzaW5nL2V4dHJhIGxv ZyBmaWxlcyB3aGVuIGNvbXBhcmluZyBkaXJlY3RvcmllcworCQl0ZXN0cyB0 aGF0IGZhaWxlZCBpbiBQUkVWSU9VUyBidXQgcGFzcyBpbiBDVVJSRU5UCisJ CXRlc3RzIHRoYXQgd2VyZSBub3QgaW4gUFJFVklPVVMgYnV0IGFwcGVhciBp biBDVVJSRU5UCisJCXRlc3RzIGluIFBSRVZJT1VTIHRoYXQgYXJlIG1pc3Np bmcgaW4gQ1VSUkVOVAorCisJRXhpdCB3aXRoIHRoZSBmb2xsb3dpbmcgdmFs dWVzOgorCQkwIGlmIHRoZXJlIGlzIG5vdGhpbmcgb2YgaW50ZXJlc3QKKwkJ MSBpZiB0aGVyZSBhcmUgZXJyb3JzIHdoZW4gY29tcGFyaW5nIHNpbmdsZSB0 ZXN0IGNhc2UgZmlsZXMKKwkJTiBmb3IgdGhlIG51bWJlciBvZiBlcnJvcnMg Zm91bmQgd2hlbiBjb21wYXJpbmcgZGlyZWN0b3JpZXMKK0VPVVNBR0UKKwll eGl0IDIKK30KIAogIyBXcml0dGVuIGJ5IE1pa2UgU3R1bXAgPG1yc0BjeWdu dXMuY29tPgorIyBTdWJkaXIgY29tcGFyaXNvbiBhZGRlZCBieSBRdWVudGlu IE5laWxsIDxxdWVudGluLm5laWxsLmdudUBnbWFpbC5jb20+CiAKIHRvb2w9 Z3h4CiAKQEAgLTE2LDEwICszOSw3MiBAQCB0bXAxPS90bXAvJHRvb2wtdGVz dGluZy4kJGEKIHRtcDI9L3RtcC8kdG9vbC10ZXN0aW5nLiQkYgogbm93X3M9 L3RtcC8kdG9vbC10ZXN0aW5nLiQkZAogYmVmb3JlX3M9L3RtcC8kdG9vbC10 ZXN0aW5nLiQkZQorbHN0MT0vdG1wLyR0b29sLWxzdDEuJCQKK2xzdDI9L3Rt cC8kdG9vbC1sc3QyLiQkCitsc3QzPS90bXAvJHRvb2wtbHN0My4kJAorbHN0 ND0vdG1wLyR0b29sLWxzdDQuJCQKK2xzdDU9L3RtcC8kdG9vbC1sc3Q1LiQk Cit0bXBzPSIkdG1wMSAkdG1wMiAkbm93X3MgJGJlZm9yZV9zICRsc3QxICRs c3QyICRsc3QzICRsc3Q0ICRsc3Q1IgorCitbICIkMSIgPSAiLXN0cmljdCIg XSAmJiBzdHJpY3Q9JDEgJiYgc2hpZnQKK1sgIiQxIiA9ICItPyIgXSAmJiB1 c2FnZQorWyAiJDIiID0gIiIgXSAmJiB1c2FnZSAiTXVzdCBzcGVjaWZ5IGJv dGggUFJFVklPVVMgYW5kIENVUlJFTlQiCisKK3RyYXAgInJtIC1mICR0bXBz IiAwIDEgMiAzIDUgOSAxMyAxNQorZXhpdF9zdGF0dXM9MAogCi1pZiBbICIk MiIgPSAiIiBdOyB0aGVuCi0JZWNobyAiVXNhZ2U6ICQwIHByZXZpb3VzIGN1 cnJlbnQiID4mMgotCWV4aXQgMgoraWYgWyAtZCAiJDEiIC1hIC1kICIkMiIg XSA7IHRoZW4KKwlmaW5kICIkMSIgXCggISAtbmFtZSBjb25maWcubG9nIFwp IC1uYW1lICcqLmxvZycgPiRsc3QxCisJZmluZCAiJDIiIFwoICEgLW5hbWUg Y29uZmlnLmxvZyBcKSAtbmFtZSAnKi5sb2cnID4kbHN0MgorCWVjaG8gIiMg Q29tcGFyaW5nIGRpcmVjdG9yaWVzIgorCWVjaG8gIiMjIERpcjE9JDE6IGBj YXQgJGxzdDEgfCB3YyAtbGAgbG9nIGZpbGVzIgorCWVjaG8gIiMjIERpcjI9 JDI6IGBjYXQgJGxzdDIgfCB3YyAtbGAgbG9nIGZpbGVzIgorCWVjaG8KKwkj IHJlbW92ZSBsZWFkaW5nIGRpcmVjdG9yeSBjb21wb25lbnRzIHRvIGNvbXBh cmUKKwlzZWQgLWUgInN8XiQxL3x8IiAkbHN0MSB8IHNvcnQgPiRsc3QzCisJ c2VkIC1lICJzfF4kMi98fCIgJGxzdDIgfCBzb3J0ID4kbHN0NAorCWNvbW0g LTIzICRsc3QzICRsc3Q0ID4kbHN0NQorCWlmIFsgLXMgJGxzdDUgXSA7IHRo ZW4KKwkJZWNobyAiIyBFeHRyYSBsb2cgZmlsZXMgaW4gRGlyMT0kMSIKKwkJ c2VkIC1lICJzfF58PCAkMS98IiAkbHN0NQorCQllY2hvCisJCVsgLW4gIiRz dHJpY3QiIF0gJiYgZXhpdF9zdGF0dXM9YGV4cHIgJGV4aXRfc3RhdHVzICsg MWAKKwlmaQorCWNvbW0gLTEzICRsc3QzICRsc3Q0ID4kbHN0NQorCWlmIFsg LXMgJGxzdDUgXSA7IHRoZW4KKwkJZWNobyAiIyBFeHRyYSBsb2cgZmlsZXMg aW4gRGlyMj0kMiIKKwkJc2VkIC1lICJzfF58PiAkMi98IiAkbHN0NQorCQll Y2hvCisJCVsgLW4gIiRzdHJpY3QiIF0gJiYgZXhpdF9zdGF0dXM9YGV4cHIg JGV4aXRfc3RhdHVzICsgMWAKKwlmaQorCWNvbW0gLTEyICRsc3QzICRsc3Q0 IHwgc29ydCAtdSA+JGxzdDUKKwlpZiBbICEgLXMgJGxzdDUgXSA7IHRoZW4K KwkJZWNobyAiIyBObyBjb21tb24gbG9nIGZpbGVzIgorCQlleGl0X3N0YXR1 cz1gZXhwciAkZXhpdF9zdGF0dXMgKyAxYAorCQlleGl0ICRleGl0X3N0YXR1 cworCWZpCisJY21ubG9ncz1gY2F0ICRsc3Q1IHwgd2MgLWxgCisJZWNobyAi IyBDb21wYXJpbmcgJGNtbmxvZ3MgY29tbW9uIGxvZyBmaWxlcyIKKwlmb3Ig Zm5hbWUgaW4gYGNhdCAkbHN0NWAKKwlkbworCQlmMT0iJDEvJGZuYW1lIgor CQlmMj0iJDIvJGZuYW1lIgorCQllY2hvICIjIyAke0NPTkZJR19TSEVMTC0v YmluL3NofSAkMCAkc3RyaWN0ICRmMSAkZjIiCisJCSR7Q09ORklHX1NIRUxM LS9iaW4vc2h9ICQwICRzdHJpY3QgJGYxICRmMgorCQlyZXQ9JD8KKwkJaWYg WyAkcmV0IC1uZSAwIF07IHRoZW4KKwkJCWV4aXRfc3RhdHVzPWBleHByICRl eGl0X3N0YXR1cyArIDFgCisJCQllY2hvICIjIyBEaWZmZXJlbmNlcyBmb3Vu ZDogJGZuYW1lIgorCQlmaQorCWRvbmUKKwlpZiBbICRleGl0X3N0YXR1cyAt bmUgMCBdOyB0aGVuCisJCWVjaG8gIiMgJGV4aXRfc3RhdHVzIGRpZmZlcmVu Y2VzIGluICRjbW5sb2dzIGNvbW1vbiBsb2cgZmlsZXMgZm91bmQiCisJZWxz ZQorCQllY2hvICIjIE5vIGRpZmZlcmVuY2VzIGZvdW5kIGluICRjbW5sb2dz IGNvbW1vbiBsb2cgZmlsZXMiCisJZmkKKwlleGl0ICRleGl0X3N0YXR1cwor ZWxpZiBbIC1kICIkMSIgLW8gLWQgIiQyIiBdIDsgdGhlbgorCXVzYWdlICJN dXN0IHNwZWNpZnkgZWl0aGVyIHR3byBkaXJlY3RvcmllcyBvciB0d28gZmls ZXMiCiBmaQogCiBzZWQgJ3MvXlhGQUlML0ZBSUwvOyBzL15YUEFTUy9QQVNT LycgPCAiJDEiIHwgYXdrICcvXlJ1bm5pbmcgdGFyZ2V0IC8ge3RhcmdldCA9 ICQzfSB7IGlmICh0YXJnZXQgIT0gInVuaXgiKSB7IHN1YigvOiAvLCAiJiJ0 YXJnZXQiOiAiICk7IH07IHByaW50ICQwOyB9JyA+JHRtcDEKQEAgLTI4LDgg KzExMyw2IEBAIHNlZCAncy9eWEZBSUwvRkFJTC87IHMvXlhQQVNTL1BBU1Mv JyA8ICIkMiIgfCBhd2sgJy9eUnVubmluZyB0YXJnZXQgLyB7dGFyZ2V0ID0K IGJlZm9yZT0kdG1wMQogbm93PSR0bXAyCiAKLWV4aXRfc3RhdHVzPTAKLXRy YXAgInJtIC1mICR0bXAxICR0bXAyICRub3dfcyAkYmVmb3JlX3MiIDAgMSAy IDMgNSA5IDEzIDE1CiAKIGlmIHNvcnQgLWsgMiA8L2Rldi9udWxsID4vZGV2 L251bGwgMj4mMTsgdGhlbgogICBza2lwMT0nLWsgMicKQEAgLTYwLDYgKzE0 Myw3IEBAIGlmIFsgJD8gPSAwIF07IHRoZW4KIAllY2hvICJUZXN0cyB0aGF0 IG5vdyB3b3JrLCBidXQgZGlkbid0IGJlZm9yZToiCiAJZWNobwogCWNhdCAk dG1wMgorCVsgLW4gIiRzdHJpY3QiIF0gJiYgZWNobyAiU3RyaWN0IHRlc3Qg ZmFpbHMiICYmIGV4aXRfc3RhdHVzPTEKIAllY2hvCiBmaQogCkBAIC04Myw2 ICsxNjcsNyBAQCBpZiBbICQ/ID0gMCBdOyB0aGVuCiAJZWNobyAiTmV3IHRl c3RzIHRoYXQgUEFTUzoiCiAJZWNobwogCWNhdCAkdG1wMgorCVsgLW4gIiRz dHJpY3QiIF0gJiYgZWNobyAiU3RyaWN0IHRlc3QgZmFpbHMiICYmIGV4aXRf c3RhdHVzPTEKIAllY2hvCiBmaQogCkBAIC05NCw2ICsxNzksNyBAQCBpZiBb ICQ/ID0gMCBdOyB0aGVuCiAJZWNobyAiT2xkIHRlc3RzIHRoYXQgcGFzc2Vk LCB0aGF0IGhhdmUgZGlzYXBwZWFyZWQ6IChFZWVrISkiCiAJZWNobwogCWNh dCAkdG1wMgorCVsgLW4gIiRzdHJpY3QiIF0gJiYgZWNobyAiU3RyaWN0IHRl c3QgZmFpbHMiICYmIGV4aXRfc3RhdHVzPTEKIAllY2hvCiBmaQogCkBAIC0x MDUsNiArMTkxLDcgQEAgaWYgWyAkPyA9IDAgXTsgdGhlbgogCWVjaG8gIk9s ZCB0ZXN0cyB0aGF0IGZhaWxlZCwgdGhhdCBoYXZlIGRpc2FwcGVhcmVkOiAo RWVlayEpIgogCWVjaG8KIAljYXQgJHRtcDIKKwlbIC1uICIkc3RyaWN0IiBd ICYmIGVjaG8gIlN0cmljdCB0ZXN0IGZhaWxzIiAmJiBleGl0X3N0YXR1cz0x CiAJZWNobwogZmkKIAotLSAKMS43LjEKCg== --000e0cd4d748137e9e04ac5d2cad--