From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16166 invoked by alias); 29 Jul 2008 21:39:03 -0000 Received: (qmail 16158 invoked by uid 22791); 29 Jul 2008 21:39:02 -0000 X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 29 Jul 2008 21:38:31 +0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id m6TLcQOB024286; Tue, 29 Jul 2008 17:38:26 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [10.11.255.20]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m6TLcPpx030462; Tue, 29 Jul 2008 17:38:25 -0400 Received: from opsy.redhat.com (vpn-10-116.bos.redhat.com [10.16.10.116]) by pobox.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m6TLcObF010912; Tue, 29 Jul 2008 17:38:24 -0400 Received: by opsy.redhat.com (Postfix, from userid 500) id AE5E95086F2; Tue, 29 Jul 2008 15:38:23 -0600 (MDT) To: Thiago Jung Bauermann Cc: gdb-patches@sourceware.org Subject: Re: regression test on the compile farm References: <1217364528.5842.40.camel@localhost.localdomain> From: Tom Tromey Reply-To: Tom Tromey X-Attribution: Tom Date: Tue, 29 Jul 2008 21:39:00 -0000 In-Reply-To: <1217364528.5842.40.camel@localhost.localdomain> (Thiago Jung Bauermann's message of "Tue\, 29 Jul 2008 17\:48\:48 -0300") Message-ID: User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-07/txt/msg00551.txt.bz2 --=-=-= Content-length: 1850 >>>>> "Thiago" == Thiago Jung Bauermann writes: Tom> Built and regression tested on the compile farm (x86-64). Thiago> Pray tell, is that wondrous compile farm available to other gdb Thiago> developers as well? :-) Sure. It is the GCC Compile Farm. You can get an account, see: http://gcc.gnu.org/wiki/CompileFarm I am running a modified copy of Sebastian Pop's GCC patch-testing script. This variant is specific to gdb, and in particular uses Jim Meyering's git clone of gdb CVS -- this is necessary to set a known baseline for a patch. Note that this means you have to make your patch against the git repository. I can send out my scripts and whatnot... I have gdb_tester.sh (run on the server), plus a "mkdiff" (a wrapper for git diff that stuffs in some metadata that the tester uses -- and lets you tweak the configure/make/etc options) and "submit-patch" (send mkdiff output to the tester). So, a typical scenario is: hack hack hack; "mkdiff > Patches/whatever.diff"; "submit-patch Patches/whatever.diff". Then after a short time I get email saying how it went :) Instead of having everybody set up a separate tester, though, I am thinking I will just make my 'patches' directory writable. Then we can all share an instance... this should be ok since I am not using it all that heavily. (If enough of us share it we could look into more infrastructure, say a status-reporting irc bot or buildbot setup or something.) If someone wants to volunteer to be the first to try it out, let me know offline and I will set up permissions. I've attached the scripts; please report problems, send patches to them, etc, to me. Thanks. I've also been thinking about setting up a compile farm job to run the gdb test suite against gcc svn trunk. But, maybe somebody else would like to volunteer for that ;) Tom --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=mkdiff Content-Transfer-Encoding: base64 Content-Description: mkdiff Content-length: 5865 IyEvYmluL3NoCgojIENvcHlyaWdodCAoQykgMjAwMywgMjAwOCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24KCiMgVGhpcyBzY3JpcHQgaXMgRnJlZSBTb2Z0 d2FyZSwgYW5kIGl0IGNhbiBiZSBjb3BpZWQsIGRpc3RyaWJ1dGVkIGFuZAoj IG1vZGlmaWVkIGFzIGRlZmluZWQgaW4gdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlLiAgQSBjb3B5IG9mCiMgaXRzIGxpY2Vuc2UgY2FuIGJlIGRv d25sb2FkZWQgZnJvbSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3Bs Lmh0bWwKCiMgV3JpdHRlbiBieSBUb20gVHJvbWV5IDx0cm9tZXlAcmVkaGF0 LmNvbT4KCiMgbWtkaWZmIHZlcnNpb24gMi4wCgojIFVzYWdlOiBta2RpZmYg W09QVElPTl0uLi4gW0ZJTEVdLi4uCiMgTWFrZSBhIHBhdGNoIHN1aXRhYmxl IGZvciBzdWJtaXNzaW9uIHRvIHRoZSBHQ0MgcGF0Y2ggdGVzdGVyLgojIFRo ZSBkaWZmIGlzIG1hZGUgcmVsYXRpdmUgdG8gdGhlIHRvcCBvZiB0aGUgdHJl ZSwgYnV0IHRoZSBGSUxFCiMgb3B0aW9ucyBhcmUgcmVsYXRpdmUgdGhlIHdv cmtpbmcgZGlyZWN0b3J5LCBzbyB0aGlzIGNhbiBiZSBpbnZva2VkCiMgZXhh Y3RseSBhcyBvbmUgd291bGQgaW52b2tlICJzdm4gZGlmZiIgb3IgImdpdCBk aWZmIiwgZGVwZW5kaW5nIG9uCiMgdGhlIHdvcmtpbmcgdHJlZS4KCiMgICAt LWVtYWlsPUFERFIgICAgICBlbWFpbCBhZGRyZXNzIHRvIHVzZSAoZGVmYXVs dCBjdXJyZW50dXNlckBnY2MuZ251Lm9yZykKIyAgIC0tYnJhbmNoPUJSQU5D SCAgIGJyYW5jaCB0byB1c2UgKGRlZmF1bHQgZnJvbSB3b3JraW5nIGRpcmVj dG9yeSkKIyAgIC0tcmV2aXNpb249UkVWICAgIHJldmlzaW9uIHRvIHVzZSAo ZGVmYXVsdCBmcm9tIHdvcmtpbmcgZGlyZWN0b3J5KQojICAgLS1jb25maWc9 T1BUU1RSICAgc2V0IGNvbmZpZ3VyZSBvcHRpb25zIChkZWZhdWx0IG5vbmUp CiMgICAtLW1ha2U9T1BUU1RSICAgICBzZXQgbWFrZSBvcHRpb25zIChkZWZh dWx0IG5vbmUpCiMgICAtLWNoZWNrPU9QVFNUUiAgICBzZXQgY2hlY2sgb3B0 aW9ucyAoZGVmYXVsdCBub25lKQoKIyAgIC0taGVscCAgICAgICAgICAgIHBy aW50IHRoaXMgaGVscCwgdGhlbiBleGl0CiMgICAtLXZlcnNpb24gICAgICAg ICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0CgojIFVucmVjb2du aXplZCBvcHRpb25zIGFyZSBhc3N1bWVkIHRvIGJlIG9wdGlvbnMgdG8gInN2 biBkaWZmIgojIG9yICJnaXQgZGlmZiIuCgppZiB0ZXN0IC1kIC5zdm47IHRo ZW4KICAgIHZjPXN2bgplbGlmIGdpdCBzdGF0dXMgLWEgPiAvZGV2L251bGwg Mj4mMTsgdGhlbgogICAgdmM9Z2l0CmVsc2UKICAgIGVjaG8gIiRuYW1lOiBu b3QgaW4gU1ZOIG9yIGdpdC1jb250cm9sbGVkIGRpcmVjdG9yeSIgMT4mMgog ICAgZXhpdCAxCmZpCgpuYW1lPW1rZGlmZgoKZGlmZm9wdHM9CmVtYWlsPWBp ZCAtdW5gQGdjYy5nbnUub3JnCmJyYW5jaD0KcmV2aXNpb249CmZpbGVzPQpj b25maWdvcHRzPQptYWtlb3B0cz0KY2hlY2tvcHRzPQoKIyBQYXJzaW5nIGxv b3AgdGFrZW4gZnJvbSBBbGV4YW5kcmUgT2xpdmEncyBjdnMgc2NyaXB0cy4K d2hpbGUgdGVzdCAkIyAtZ3QgMDsgZG8KICAgIGNhc2UgIiQxIiBpbgogICAg LXZ8LS12ZXJzaW9uKQoJc2VkICcvXiMgJyRuYW1lJyB2ZXJzaW9uIC8geyBz L14jIC8vOyBwOyB9OyBkJyA8ICQwCglleGl0IDAKCTs7CiAgICAtXD98LWgp CglzZWQgJy9eIyB1c2FnZTovIHsgcy9eIyAvLzsgcDsgfTsgZCcgPCAkMCAm JgoJZWNobwoJZWNobyAicnVuIFxgJG5hbWUgLS1oZWxwIHwgbW9yZScgZm9y IGZ1bGwgdXNhZ2UiCglleGl0IDAKCTs7CiAgICAtLWhlbHApCglzZWQgJy9e IyAnJG5hbWUnIHZlcnNpb24gLywvXlteI10vIHsgL15bXiNdLyBkOyBzL14j IC8vOyBwOyB9OyBkJyA8ICQwCglleGl0IDAKCTs7CiAgICAtLWVtYWlsPSop CiAgICAgICAgZW1haWw9YGVjaG8gIiQxIiB8IHNlZCAtZSAncywtLWVtYWls PSwsJ2AKCTs7CiAgICAtLWJyYW5jaD0qKQogICAgICAgIGJyYW5jaD1gZWNo byAiJDEiIHwgc2VkIC1lICdzLC0tYnJhbmNoPSwsJ2AKCTs7CiAgICAtLXJl dmlzaW9uPSopCiAgICAgICAgcmV2aXNpb249YGVjaG8gIiQxIiB8IHNlZCAt ZSAncywtLXJldmlzaW9uPSwsJ2AKCTs7CiAgICAtLWNoZWNrPSopCiAgICAg ICAgY2hlY2tvcHRzPWBlY2hvICIkMSIgfCBzZWQgLWUgJ3MsLS1jaGVjaz0s LCdgCgk7OwogICAgLS1tYWtlPSopCiAgICAgICAgbWFrZW9wdHM9YGVjaG8g IiQxIiB8IHNlZCAtZSAncywtLW1ha2U9LCwnYAoJOzsKICAgIC0tY29uZmln PSopCiAgICAgICAgY29uZmlnb3B0cz1gZWNobyAiJDEiIHwgc2VkIC1lICdz LC0tY29uZmlnPSwsJ2AKCTs7CiAgICAtKikKCWRpZmZvcHRzPSIkZGlmZm9w dHMgJDEiCgk7OwogICAgKikKICAgICAgICBmaWxlcz0iJGZpbGVzICQxIgoJ OzsKICAgIGVzYWMKICAgIHNoaWZ0CmRvbmUKCmlmIHRlc3QgJHZjID0gc3Zu OyB0aGVuCiAgICBpZiB0ZXN0IC16ICIkYnJhbmNoIjsgdGhlbgoJcmVwbz1g c3ZuIGluZm8gfCBncmVwICdeVVJMOicgfCBzZWQgLWUgJ3MsXlVSTDogLCwn YAoJY2FzZSAkcmVwbyBpbgoJICAgICovZ2NjLmdudS5vcmcvc3ZuL2djYy90 cnVuayopCgkJYnJhbmNoPXRydW5rCgkJOzsKCSAgICAqL2djYy5nbnUub3Jn L3N2bi9nY2MvYnJhbmNoZXMvKikKCQlicmFuY2g9YGVjaG8gJHJlcG8gfCBz ZWQgJ3MsLiovYnJhbmNoZXMvXChbXi9dKlwpLiokLFwxLCdgCgkJOzsKCSAg ICAqKQoJCWVjaG8gIiRuYW1lOiB1bnJlY29nbml6ZWQgcmVwb3NpdG9yeSwg dXNlIC0tYnJhbmNoOiAkcmVwbyIgMT4mMgoJCWV4aXQgMQoJCTs7Cgllc2Fj CiAgICBmaQoKICAgIGlmIHRlc3QgLXogIiRyZXZpc2lvbiI7IHRoZW4KCXJl dmlzaW9uPWBzdm4gaW5mbyB8IGdyZXAgJ15SZXZpc2lvbjonIHwgc2VkIC1l ICdzLF5SZXZpc2lvbjogLCwnYAogICAgZmkKZWxzZQogICAgaWYgdGVzdCAt eiAiJHJldmlzaW9uIjsgdGhlbgoJcmV2aXNpb249YGdpdCBsb2cgfCBzZWQg LWUgJ3MsXmNvbW1pdCAqLCwnIC1lIDFxYAogICAgZmkKZmkKCgpoZXJlPWBw d2RgCm9yaWc9JGhlcmUKZGlybmFtZT0KCmNkaWUoKSB7CiAgICBjZCAkMSB8 fCB7CgllY2hvICIkbmFtZTogY291bGRuJ3QgY2QgdG8gJDEgZnJvbSBgcHdk YCIgMT4mMgoJZXhpdCAxCiAgICB9Cn0KCmlmIHRlc3QgJHZjID0gc3ZuOyB0 aGVuCiAgICB3aGlsZSB0ZXN0IC1lIC4uLy5zdm47IGRvCgljZGllIC4uCglu ZXh0PWBiYXNlbmFtZSAiJGhlcmUiYAoJaGVyZT1gZGlybmFtZSAiJGhlcmUi YAoJaWYgdGVzdCAteiAiJGRpcm5hbWUiOyB0aGVuCgkgICAgZGlybmFtZT0i JG5leHQvIgoJZWxzZQoJICAgIGRpcm5hbWU9IiRuZXh0LyRkaXJuYW1lIgoJ ZmkKICAgIGRvbmUKICAgIHByb2plY3R0ZXN0ZGlyPS4KZWxzZQogICAgIyBX ZSB3YW50IHRvIGZpbmQgdGhlIHByb2plY3QgdHlwZSwgYnV0IHdlIGRvbid0 IGhhdmUgdG8gYm90aGVyCiAgICAjIHdpdGggY29tcHV0aW5nIHRoZSBkaXJl Y3RvcnkgcHJvcGVybHkgLS0gZ2l0IGRpZmYgaGFuZGxlcyB0aGlzCiAgICAj IGl0c2VsZi4KICAgIHNhdmU9YHB3ZGAKICAgIHdoaWxlICEgdGVzdCAtZSAu Z2l0OyBkbwoJY2RpZSAuLgogICAgZG9uZQogICAgcHJvamVjdHRlc3RkaXI9 YHB3ZGAKICAgIGNkICRzYXZlCmZpCgppZiB0ZXN0IC1kICRwcm9qZWN0dGVz dGRpci9nY2M7IHRoZW4KICAgIHByb2plY3R0eXBlPWdjYwplbGlmIHRlc3Qg LWQgJHByb2plY3R0ZXN0ZGlyL2dkYjsgdGhlbgogICAgcHJvamVjdHR5cGU9 Z2RiCmVsc2UKICAgIGVjaG8gIiRuYW1lOiBjb3VsZG4ndCBkZXRlcm1pbmUg cHJvamVjdCB0eXBlIGluICRwcm9qZWN0dGVzdGRpciIgMT4mMgogICAgZXhp dCAxCmZpCgppZiB0ZXN0IC16ICIkZmlsZXMiOyB0aGVuCiAgICBmaWxlcz0u CmZpCgojIFdlIGRvbid0IHVzZSBmaWx0ZXJkaWZmIC1hZGRwcmVmaXggc2lu Y2UgdGhhdCBkb2VzIG5vdCBzZWVtIHRvCiMgaGFuZGxlIEluZGV4OiBsaW5l cy4KbmV3ZmlsZXM9CmZvciBmaWxlIGluICRmaWxlczsgZG8KICAgIG5ld2Zp bGVzPSIkbmV3ZmlsZXMgJGRpcm5hbWUkZmlsZSIKZG9uZQoKZWNobyAicHJv amVjdHR5cGU6JHByb2plY3R0eXBlIgplY2hvICJlbWFpbDokZW1haWwiCmlm IHRlc3QgJHZjID0gc3ZuOyB0aGVuCiAgICBlY2hvICJicmFuY2g6JGJyYW5j aCIKZmkKZWNobyAicmV2aXNpb246JHJldmlzaW9uIgplY2hvICJjb25maWd1 cmU6JGNvbmZpZ29wdHMiCmVjaG8gIm1ha2U6JG1ha2VvcHRzIgplY2hvICJj aGVjazokY2hlY2tvcHRzIgplY2hvCiR2YyBkaWZmICRkaWZmb3B0cyAkbmV3 ZmlsZXMK --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=submit-patch Content-Transfer-Encoding: base64 Content-Description: submit-patch Content-length: 3734 IyEgL2Jpbi9zaAoKIyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDggRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCgojIFRoaXMgc2NyaXB0IGlzIEZyZWUgU29m dHdhcmUsIGFuZCBpdCBjYW4gYmUgY29waWVkLCBkaXN0cmlidXRlZCBhbmQK IyBtb2RpZmllZCBhcyBkZWZpbmVkIGluIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZS4gIEEgY29weSBvZgojIGl0cyBsaWNlbnNlIGNhbiBiZSBk b3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2dw bC5odG1sCgojIFdyaXR0ZW4gYnkgVG9tIFRyb21leSA8dHJvbWV5QHJlZGhh dC5jb20+CgojIHN1Ym1pdC1wYXRjaCB2ZXJzaW9uIDIuMAoKIyBVc2FnZTog c3VibWl0LXBhdGNoIFtPUFRJT05dLi4uIFBBVENILUZJTEUgW05BTUVdCiMg UmVncmVzc2lvbiB0ZXN0IGEgR0NDIHBhdGNoLgoKIyAgIC0taG9zdD1IT1NU ICAgICAgIGhvc3QgdG8gdXNlCiMgICAtLWRpcj1ESVIgICAgICAgICBkaXJl Y3RvcnkgdG8gdXNlIG9uIGhvc3QKCiMgICAtLWhlbHAgICAgICAgICAgICBw cmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAojICAgLS12ZXJzaW9uICAgICAg ICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAoKIyBJZiBOQU1F IGlzIG5vdCBnaXZlbiwgdGhlIGJhc2VuYW1lIG9mIHRoZSBwYXRjaCBmaWxl IGlzIHVzZWQgYXMKIyB0aGUgcGF0Y2ggbmFtZS4KbmFtZT1zdWJtaXQtcGF0 Y2gKcmVwZWF0PSJ0ZXN0ICQjIC1ndCAwIgoKaG9zdD1nY2MxMy5mc2ZmcmFu Y2Uub3JnCiMgVGhpcyBpcyB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgcGF0Y2gg ZGlyIGlmIC0tZGlyIGlzIG5vdCBnaXZlbi4KcGF0Y2hiYXNlPS9ob21lL3Ry b21leS9hdXRvLXRlc3QtCgojIFBhcnNpbmcgbG9vcCB0YWtlbiBmcm9tIEFs ZXhhbmRyZSBPbGl2YSdzIGN2cyBzY3JpcHRzLgp3aGlsZSAkcmVwZWF0OyBk bwogICAgY2FzZSAiJDEiIGluCiAgICAtdnwtLXZlcnNpb24pCglzZWQgJy9e IyAnJG5hbWUnIHZlcnNpb24gLyB7IHMvXiMgLy87IHA7IH07IGQnIDwgJDAK CWV4aXQgMAoJOzsKICAgIC1cP3wtaCkKCXNlZCAnL14jIHVzYWdlOi8geyBz L14jIC8vOyBwOyB9OyBkJyA8ICQwICYmCgllY2hvCgllY2hvICJydW4gXGAk bmFtZSAtLWhlbHAgfCBtb3JlJyBmb3IgZnVsbCB1c2FnZSIKCWV4aXQgMAoJ OzsKICAgIC0taGVscCkKCXNlZCAnL14jICckbmFtZScgdmVyc2lvbiAvLC9e W14jXS8geyAvXlteI10vIGQ7IHMvXiMgLy87IHA7IH07IGQnIDwgJDAKCWV4 aXQgMAoJOzsKICAgIC0taG9zdD0qKQogICAgICAgIGhvc3Q9YGVjaG8gIiQx IiB8IHNlZCAtZSAncywtLWhvc3Q9LCwnYAoJc2hpZnQKCTs7CiAgICAtLWRp cj0qKQogICAgICAgIHBhdGNoZGlyPWBlY2hvICIkMSIgfCBzZWQgLWUgJ3Ms LS1kaXI9LCwnYAoJc2hpZnQKCTs7CiAgICAtLSkKCXNoaWZ0CglyZXBlYXQ9 ZmFsc2UKCTs7CiAgICAtKikKCWVjaG8gIiRuYW1lOiB1bnJlY29nbml6ZWQg b3B0aW9uICckMSciIDE+JjIKCWVjaG8gIiRuYW1lOiBUcnkgJyRuYW1lIC0t aGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24iIDE+JjIKCWV4aXQgMQoJOzsK ICAgICopCglyZXBlYXQ9ZmFsc2UKCTs7CiAgICBlc2FjCmRvbmUKCmZpbGU9 JDEKc2hpZnQKaWYgdGVzdCAteiAiJGZpbGUiOyB0aGVuCiAgIChzZWQgJy9e IyB1c2FnZTovIHsgcy9eIyAvLzsgcDsgfTsgZCcgPCAkMCAmJgogICAgICBl Y2hvCiAgICAgIGVjaG8gInJ1biBcYCRuYW1lIC0taGVscCB8IG1vcmUnIGZv ciBmdWxsIHVzYWdlIikgMT4mMgogICAgZXhpdCAxCmZpCgpwYXRjaD0kMQpz aGlmdAppZiB0ZXN0IC16ICIkcGF0Y2giOyB0aGVuCiAgIGlmIHRlc3QgIngk ZmlsZSIgPSAieC0iOyB0aGVuCiAgICAgIGVjaG8gIiRuYW1lOiBOQU1FIGFy Z3VtZW50IHJlcXVpcmVkIGlmIHBhdGNoIGlzIGZyb20gc3RkaW4iIDE+JjIK ICAgICAgZXhpdCAxCiAgIGVsc2UKICAgICAgcGF0Y2g9YGJhc2VuYW1lICRm aWxlYAogICBmaQpmaQoKaWYgdGVzdCAieCRmaWxlIiAhPSAieC0iOyB0aGVu CiAgICBpZiAhIGdyZXAgLXMgIl5lbWFpbDoiICRmaWxlID4gL2Rldi9udWxs OyB0aGVuCgllY2hvICIkbmFtZTogbm8gZW1haWw6IGxpbmUgaW4gJGZpbGU7 IGRpZCB5b3UgdXNlIG1rZGlmZj8iIDE+JjIKCWV4aXQgMQogICAgZmkKZmkK CmlmIHRlc3QgLXogIiRwYXRjaGRpciI7IHRoZW4KICAgIGlmIHRlc3QgIngk ZmlsZSIgPSAieC0iOyB0aGVuCgllY2hvICIkbmFtZTogLS1kaXIgcmVxdWly ZWQgaWYgcGF0Y2ggaXMgZnJvbSBzdGRpbiIgMT4mMgoJZXhpdCAxCiAgICBm aQogICAgcHJvamVjdD1gc2VkIC1uIC1lICdzL15wcm9qZWN0dHlwZTovL3An IC1lICcvXiQvcScgJGZpbGVgCiAgICBwYXRjaGRpcj0kcGF0Y2hiYXNlJHBy b2plY3QvcGF0Y2hlcwpmaQoKIyBPbmx5IHJ1biBmaWx0ZXJkaWZmIG9uIGEg a25vd24gbm9uLWdpdCBwYXRjaC4KZmlsdGVyPWNhdAppZiB0ZXN0ICJ4JGZp bGUiICE9ICJ4LSI7IHRoZW4KICAgIGlmICEgZ3JlcCAtcyAiZGlmZiAtLWdp dCIgJGZpbGUgPiAvZGV2L251bGw7IHRoZW4KCWZpbHRlcj0iZmlsdGVyZGlm ZiAteCAnKkNoYW5nZUxvZyonIgogICAgZmkKZmkKCiMgRklYTUU6IG1heSBi ZSBuaWNlIHRvIGF1dG8tc3RhcnQgdGhlIHBhdGNoIHRlc3Rlci4KIyBVc2Ug J2NhdCcgaGVyZSBzbyB3ZSBjYW4gYWNjZXB0ICItIi4KY2F0ICRmaWxlIHwg JGZpbHRlciB8IHNzaCAkaG9zdCBjYXQgJz4nICRwYXRjaGRpci9gaWQgLXVu YC0kcGF0Y2gK --=-=-= Content-Type: application/x-sh Content-Disposition: attachment; filename=gdb_tester.sh Content-Transfer-Encoding: base64 Content-Description: gdb_tester.sh Content-length: 15088 IyEvYmluL3NoCgojIFRlc3RzIGEgc2V0IG9mIHBhdGNoZXMgZnJvbSBhIGRp cmVjdG9yeS4KIyBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgojIENvbnRyaWJ1dGVkIGJ5IFNlYmFz dGlhbiBQb3AgPHNlYmFzdGlhbi5wb3BAYW1kLmNvbT4KCiMgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiMgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3 cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4s IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg IDAyMTEwLTEzMDEgIFVTQQoKY2F0IDw8RU9GCgpXQVJOSU5HOiBUaGlzIHNj cmlwdCBzaG91bGQgb25seSBiZSBmZWQgd2l0aCBwYXRjaGVzIGZyb20ga25v d24KICAgICAgICAgYXV0aG9yaXplZCBhbmQgdHJ1c3RlZCBzb3VyY2VzLiAg RG9uJ3QgZXZlbiB0aGluayBhYm91dAogICAgICAgICBob29raW5nIGl0IHVw IHRvIGEgcmF3IGZlZWQgZnJvbSB0aGUgZ2RiLXBhdGNoZXMgbGlzdCBvcgog ICAgICAgICB5b3UnbGwgcmVncmV0IGl0LgoKRU9GCgphcmdzPSRACgpnaXRw YXRoPWdpdDovL3NvdXJjZXdhcmUub3JnL2dpdC9nZGIuZ2l0CmRhc2hqPQpk ZWZhdWx0X3N0YW5kYnk9MQpzdGFuZGJ5PSRkZWZhdWx0X3N0YW5kYnkKZGVm YXVsdF93YXRlcm1hcms9MC42MAp3YXRlcm1hcms9JGRlZmF1bHRfd2F0ZXJt YXJrCnNhdmVjb21waWxlcnM9ZmFsc2UKbm9ncGc9ZmFsc2UKc3RvcD1mYWxz ZQoKdXNhZ2UoKSB7CiAgICBjYXQgPDxFT0YKcGF0Y2hfdGVzdGVyLnNoIFst ajxOPl0gWy1zdGFuZGJ5IE5dIFstd2F0ZXJtYXJrIE5dIFstc2F2ZWNvbXBp bGVyc10gWy1ub2dwZ10KICAgICAgICAgICAgICAgIFstZ2l0cGF0aCBVUkxd IFstc3RvcF0KICAgICAgICAgICAgICAgIDxzb3VyY2VfZGlyPiBbcGF0Y2hl c19kaXIgW3N0YXRlX2RpciBbYnVpbGRfZGlyXV1dCgogICAgSiBpcyB0aGUg ZmxhZyBwYXNzZWQgdG8gbWFrZS4gIERlZmF1bHQgaXMgZW1wdHkgc3RyaW5n LgoKICAgIFNUQU5EQlkgaXMgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdl ZW4gY2hlY2tzIGZvciBuZXcgcGF0Y2hlcyBpbgogICAgUEFUQ0hFU19ESVIu ICBEZWZhdWx0IGlzICR7ZGVmYXVsdF9zdGFuZGJ5fSBtaW51dGVzLgoKICAg IFdBVEVSTUFSSyBpcyB0aGUgNSBtaW51dGUgYXZlcmFnZSBzeXN0ZW0gY2hh cmdlIHVuZGVyIHdoaWNoIGEgbmV3CiAgICBjb21waWxlIGNhbiBzdGFydC4g IERlZmF1bHQgaXMgJHtkZWZhdWx0X3dhdGVybWFya30uCgogICAgU0FWRUNP TVBJTEVSUyBjb3BpZXMgdGhlIGNvbXBpbGVycyBpbiB0aGUgc2FtZSBkaXJl Y3RvcnkgYXMgdGhlCiAgICB0ZXN0IHJlc3VsdHMgZm9yIHRoZSBub24gcGF0 Y2hlZCB2ZXJzaW9uLiAgRGVmYXVsdCBpcyBub3QgY29weS4KCiAgICBOT0dQ RyBjYW4gYmUgdXNlZCB0byBhdm9pZCBjaGVja2luZyB0aGUgR1BHIHNpZ25h dHVyZSBvZiBwYXRjaGVzLgoKICAgIFVSTCBpcyB0aGUgbG9jYXRpb24gb2Yg dGhlIEdEQiBHSVQgcmVwb3NpdG9yeS4gIFRoZSBkZWZhdWx0IGlzCiAgICAk e2dpdHBhdGh9LgoKICAgIFNUT1AgZXhpdHMgd2hlbiBQQVRDSEVTX0RJUiBp cyBlbXB0eS4KCiAgICBTT1VSQ0VfRElSIGlzIHRoZSBkaXJlY3RvcnkgY29u dGFpbmluZyBHREIncyB0b3BsZXZlbCBjb25maWd1cmUuCgogICAgUEFUQ0hF U19ESVIgaXMgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBwYXRjaGVz IHRvIGJlIHRlc3RlZC4KICAgIERlZmF1bHQgaXMgU09VUkNFX0RJUi9wYXRj aGVzLgoKICAgIFNUQVRFX0RJUiBpcyB3aGVyZSB0aGUgdGVzdGVyIG1haW50 YWlucyBpdHMgaW50ZXJuYWwgc3RhdGUuCiAgICBEZWZhdWx0IGlzIFNPVVJD RV9ESVIvc3RhdGUuCgogICAgQlVJTERfRElSIGlzIHRoZSBidWlsZCB0cmVl LCBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgdGhhdCB0aGlzCiAgICBzY3JpcHQg d2lsbCBkZWxldGUgYW5kIHJlY3JlYXRlLiAgRGVmYXVsdCBpcyBTT1VSQ0Vf RElSL29iai4KCkVPRgogICAgZXhpdCAxCn0KCm1ha2VkaXIgKCkgewogICAg RElSTkFNRT0kMQogICAgbWtkaXIgLXAgJERJUk5BTUUKICAgIGlmIFsgJD8g LW5lIDAgXTsgdGhlbgoJZWNobyAiRVJST1I6IGNvdWxkIG5vdCBtYWtlIGRp cmVjdG9yeSAkRElSTkFNRSIKCWV4aXQgMQogICAgZmkKfQoKd2hpbGUgWyAk IyAtbmUgMCBdOyBkbwogICAgY2FzZSAkMSBpbgoJLWoqKQoJICAgIGRhc2hq PSQxOyBzaGlmdAoJICAgIDs7Cgktc3RhbmRieSkKCSAgICBbWyAkIyA+IDIg XV0gfHwgdXNhZ2UKCSAgICBzdGFuZGJ5PSQyOyBzaGlmdDsgc2hpZnQKCSAg ICA7OwoJLXdhdGVybWFyaykKCSAgICBbWyAkIyA+IDIgXV0gfHwgdXNhZ2UK CSAgICB3YXRlcm1hcms9JDI7IHNoaWZ0OyBzaGlmdAoJICAgIDs7Cgktc2F2 ZWNvbXBpbGVycykKCSAgICBzYXZlY29tcGlsZXJzPXRydWU7IHNoaWZ0Cgkg ICAgOzsKCS1ub2dwZykKCSAgICBub2dwZz10cnVlOyBzaGlmdAoJICAgIDs7 Cgktc3RvcCkKCSAgICBzdG9wPXRydWU7IHNoaWZ0CgkgICAgOzsKCS1naXRw YXRoKQoJICAgIGdpdHBhdGg9JDI7IHNoaWZ0OyBzaGlmdAoJICAgIDs7Cgkt KikgCgkgICAgZWNobyAiSW52YWxpZCBvcHRpb246ICQxIgoJICAgIHVzYWdl CgkgICAgOzsKCSopCgkgICAgYnJlYWsKCSAgICA7OwogICAgZXNhYwpkb25l Cgp0ZXN0ICQjIC1lcSAwICYmIHVzYWdlCgpTT1VSQ0U9JDEKUEFUQ0hFUz0K U1RBVEU9CkJVSUxEPQoKaWYgW1sgJCMgPCAyIF1dOyB0aGVuCiAgICBQQVRD SEVTPSRTT1VSQ0UvcGF0Y2hlcwplbHNlCiAgICBQQVRDSEVTPSQyCmZpCmlm IFtbICQjIDwgMyBdXTsgdGhlbgogICAgU1RBVEU9JFNPVVJDRS9zdGF0ZQpl bHNlCiAgICBTVEFURT0kMwpmaQppZiBbWyAkIyA8IDQgXV07IHRoZW4KICAg IEJVSUxEPSRTT1VSQ0Uvb2JqCmVsc2UKICAgIEJVSUxEPSQ0CmZpCgpbIC1k ICRQQVRDSEVTIF0gfHwgbWFrZWRpciAkUEFUQ0hFUwpbIC1kICRTVEFURSBd IHx8IG1ha2VkaXIgJFNUQVRFClsgLWQgJFNUQVRFL3BhdGNoZWQgXSB8fCBt YWtlZGlyICRTVEFURS9wYXRjaGVkClsgLWQgJFNPVVJDRSBdIHx8IG1ha2Vk aXIgJFNPVVJDRQpbIC1mICRTT1VSQ0UvY29uZmlnLmd1ZXNzIF0gfHwgewog ICAgIyBCbGVhaC4KICAgIGNkICRTT1VSQ0UvLi4KICAgIHJtIC1yZiBnZGIK ICAgIGdpdCBjbG9uZSAkZ2l0cGF0aAogICAgaWYgWyAkPyAtbmUgMCBdOyB0 aGVuCgllY2hvICJFUlJPUjogaW5pdGlhbCBnaXQgY2xvbmUgZmFpbGVkIgoJ ZXhpdCAxCiAgICBmaQp9CgojIFRoaXMgY2FuIGNvbnRhaW4gcmVxdWlyZWQg bG9jYWwgc2V0dGluZ3M6CiMgIGRlZmF1bHRfY29uZmlnICBjb25maWd1cmUg b3B0aW9ucywgYWx3YXlzIHBhc3NlZAojICBkZWZhdWx0X21ha2UgICAgbWFr ZSBib290c3RyYXAgb3B0aW9ucywgYWx3YXlzIHBhc3NlZAojICBkZWZhdWx0 X2NoZWNrICAgbWFrZSBjaGVjayBvcHRpb25zLCBhbHdheXMgcGFzc2VkClsg LWYgJFNUQVRFL2RlZmF1bHRzIF0gJiYgLiAkU1RBVEUvZGVmYXVsdHMKCiMg VkVSU0lPTj1gZ2l0IGluZm8gJFNPVVJDRSB8IGdyZXAgIl5SZXZpc2lvbjoi IHwgc2VkIC1lICJzL15SZXZpc2lvbjovL2ciIC1lICJzLyAvL2ciYAoKZXhl YyA+PiAkU1RBVEUvdGVzdGVyLmxvZyAyPiYxIHx8IGV4aXQgMQpzZXQgLXgK ClRFU1RJTkc9JFNUQVRFL3Rlc3RpbmcKUkVQT1JUPSRURVNUSU5HL3JlcG9y dApQUklTVElORT0kVEVTVElORy9wcmlzdGluZQpQQVRDSEVEPSRURVNUSU5H L3BhdGNoZWQKUEFUQ0g9ClRBUkdFVD1gJFNPVVJDRS9jb25maWcuZ3Vlc3Mg fHwgZXhpdCAxYCAKVEVTVExPR1M9ImdkYi90ZXN0c3VpdGUvZ2RiLnN1bSIK Q09NUElMRVJTPSJnZGIvZ2RiIgoKbm93ICgpIHsKICAgIGVjaG8gYFRaPVVU QyBkYXRlICsiJVlfJW1fJWRfJUhfJU1fJVMiYAp9CgpyZXBvcnQgKCkgewog ICAgZWNobyAiJEAiID4+ICRSRVBPUlQKfQoKZnJlcG9ydCAoKSB7CiAgICBp ZiBbIC1zICQxIF07IHRoZW4KCXJlcG9ydCAiKGNhdCAkMSIKCWNhdCAkMSA+ PiAkUkVQT1JUCglyZXBvcnQgInRhYykiCiAgICBmaQp9CgpjbGVhbnVwICgp IHsKICAgIGNkICRTT1VSQ0UKICAgIGdpdCBjbGVhbiAtZCAteCAtZiAmJiBn aXQgcmVzZXQgLS1oYXJkCn0KCnNlbGZleGVjICgpIHsKICAgIGV4ZWMgJHtD T05GSUdfU0hFTEwtL2Jpbi9zaH0gJDAgJGFyZ3MKfQoKdXBkYXRlICgpIHsK ICAgIGdpdF9yZXZpc2lvbj1gZ3JlcCAiXnJldmlzaW9uOiIgJFBBVENIIHwg c2VkIC1lICJzL15yZXZpc2lvbjovL2ciIC1lICJzLyAvL2ciYAogICAgaWYg WyB4JGdpdF9yZXZpc2lvbiA9IHggXTsgdGhlbgoJcmVwb3J0ICJubyByZXZp c2lvbiBzcGVjaWZpZWQiCglmcmVwb3J0ICRURVNUSU5HL2dpdAoJcmV0dXJu IDEKICAgIGZpCgogICAgY2xlYW51cAogICAgY2QgJFNPVVJDRQogICAgZ2l0 IGZldGNoCiAgICBnaXQgY2hlY2tvdXQgJGdpdF9yZXZpc2lvbiB8fCB7Cgly ZXBvcnQgImNvdWxkIG5vdCB1cGRhdGUgdG8gcmV2aXNpb24gJGdpdF9yZXZp c2lvbiIKCWZyZXBvcnQgJFRFU1RJTkcvZ2l0CglyZXR1cm4gMQogICAgfQoK ICAgIHJldHVybiAwCn0KCmFwcGx5X3BhdGNoICgpIHsKICAgIGlmIFsgJG5v Z3BnID0gZmFsc2UgXTsgdGhlbgoJaWYgISBncGcgLS1iYXRjaCAtLXZlcmlm eSAkUEFUQ0ggJj4gJFRFU1RJTkcvZ3BndmVyaWZ5IDsgdGhlbgoJICAgIHJl cG9ydCAieW91ciBwYXRjaCBmYWlsZWQgdG8gdmVyaWZ5OiIKCSAgICBmcmVw b3J0ICRURVNUSU5HL2dwZ3ZlcmlmeQoJICAgIHJldHVybiAxCglmaQogICAg ZmkKCiAgICBjZCAkU09VUkNFCiAgICAjIElnbm9yZSBDaGFuZ2VMb2dzOyB0 aGV5IGNhbiBvbmx5IG1ha2UgdGhpbmdzIGZhaWwgZm9yIG5vIGdvb2QKICAg ICMgcmVhc29uLgogICAgaWYgISBnaXQgYXBwbHkgLS1leGNsdWRlPScqQ2hh bmdlTG9nKicgJFBBVENIICY+ICRURVNUSU5HL3BhdGNoaW5nIDsgdGhlbgoJ cmVwb3J0ICJ5b3VyIHBhdGNoIGZhaWxlZCB0byBhcHBseToiCglyZXBvcnQg IihjaGVjayB0aGF0IHRoZSBwYXRjaCB3YXMgY3JlYXRlZCBhdCB0aGUgdG9w IGxldmVsKSIKCWZyZXBvcnQgJFRFU1RJTkcvcGF0Y2hpbmcKCXJldHVybiAx CiAgICBmaQp9CgpzYXZlX2NvbXBpbGVycyAoKSB7CiAgICBmb3IgQ09NUElM RVIgaW4gJENPTVBJTEVSUyA7IGRvCglpZiBbIC1mICRCVUlMRC8kQ09NUElM RVIgXTsgdGhlbgoJICAgIGNwICRCVUlMRC8kQ09NUElMRVIgJFBSSVNUSU5F CglmaQogICAgZG9uZQp9Cgpib290bnRlc3QgKCkgewogICAgcm0gLXJmICRC VUlMRAogICAgbWtkaXIgJEJVSUxECiAgICBjZCAkQlVJTEQKCiAgICBDT05G SUdfT1BUSU9OUz1gZ3JlcCAiXmNvbmZpZ3VyZToiICRQQVRDSCB8IHNlZCAt ZSAicy9eY29uZmlndXJlOi8vZyJgCiAgICBDT05GSUdfT1BUSU9OUz0iJGRl ZmF1bHRfY29uZmlnICRDT05GSUdfT1BUSU9OUyIKICAgIGlmICEgZXZhbCAk U09VUkNFL2NvbmZpZ3VyZSAkQ09ORklHX09QVElPTlMgJj4gJDEvY29uZmln dXJlIDsgdGhlbgoJcmVwb3J0ICJjb25maWd1cmUgd2l0aCBgYmFzZW5hbWUg JDFgIHZlcnNpb24gZmFpbGVkIHdpdGg6IgoJZnJlcG9ydCAkMS9jb25maWd1 cmUKCXJldHVybiAxCiAgICBmaQoKICAgIE1BS0VfQVJHUz1gZ3JlcCAiXm1h a2U6IiAkUEFUQ0ggfCBzZWQgLWUgInMvXm1ha2U6Ly9nImAKICAgIE1BS0Vf QVJHUz0iJGRlZmF1bHRfbWFrZSAkTUFLRV9BUkdTIgogICAgaWYgISBldmFs IG1ha2UgJGRhc2hqICRNQUtFX0FSR1MgJj4gJDEvYm9vdHN0cmFwIDsgdGhl bgoJcmVwb3J0ICJib290c3RyYXAgd2l0aCBgYmFzZW5hbWUgJDFgIHZlcnNp b24gZmFpbGVkIHdpdGggbGFzdCBsaW5lczoiCgl0YWlsIC0zMCAkMS9ib290 c3RyYXAgPiAkMS9sYXN0X2Jvb3RzdHJhcAoJZnJlcG9ydCAkMS9sYXN0X2Jv b3RzdHJhcAoJcmVwb3J0ICJncmVwIC0tY29udGV4dD0yMCBFcnJvciBib290 c3RyYXA6IgoJZ3JlcCAtLWNvbnRleHQ9MjAgRXJyb3IgJDEvYm9vdHN0cmFw ID4gJDEvYm9vdHN0cmFwX2Vycm9yCglmcmVwb3J0ICQxL2Jvb3RzdHJhcF9l cnJvcgoJcmV0dXJuIDEKICAgIGZpCgogICAgQ0hFQ0tfT1BUSU9OUz1gZ3Jl cCAiXmNoZWNrOiIgJFBBVENIIHwgc2VkIC1lICJzL15jaGVjazovL2ciYAog ICAgQ0hFQ0tfT1BUSU9OUz0iJGRlZmF1bHRfY2hlY2sgJENIRUNLX09QVElP TlMiCiAgICBldmFsIG1ha2UgJGRhc2hqICRDSEVDS19PUFRJT05TIC1rIGNo ZWNrICY+ICQxL2NoZWNrCgogICAgU1VJVEVTUlVOPSJgZ3JlcCAnU3VtbWFy eSA9PT0nICQxL2NoZWNrIHwgY3V0IC1kJyAnIC1mIDIgfCBzb3J0YCIKICAg IGlmIFsgeCRTVUlURVNSVU4gPSB4IF07IHRoZW4KCXJlcG9ydCAiY2hlY2sg d2l0aCBgYmFzZW5hbWUgJDFgIHZlcnNpb24gZmFpbGVkLCBubyB0ZXN0c3Vp dGVzIHdlcmUgcnVuIgoJcmV0dXJuIDEKICAgIGZpCgogICAgZm9yIExPRyBp biAkVEVTVExPR1MgOyBkbwoJaWYgWyAtZiAkQlVJTEQvJExPRyBdOyB0aGVu CgkgICAgbXYgJEJVSUxELyRMT0cgJDEKCSAgICBtdiBgZWNobyAiJEJVSUxE LyRMT0ciIHwgc2VkIC1lICJzL1wuc3VtL1wubG9nL2ciYCAkMQoJZmkKICAg IGRvbmUKCiAgICByZXR1cm4gMAp9Cgpib290bnRlc3RfcGF0Y2hlZCAoKSB7 CiAgICBjbGVhbnVwCiAgICBta2RpciAtcCAkUEFUQ0hFRAogICAgYXBwbHlf cGF0Y2ggJiYgYm9vdG50ZXN0ICRQQVRDSEVECiAgICByZXR1cm4gJD8KfQoK IyBCdWlsZCB0aGUgcHJpc3RpbmUgdHJlZSB3aXRoIGV4YWN0bHkgdGhlIHNh bWUgb3B0aW9ucyBhcyB0aGUgcGF0Y2ggdW5kZXIgdGVzdC4KYm9vdG50ZXN0 X3ByaXN0aW5lICgpIHsKICAgIGNsZWFudXAKICAgIGN1cnJlbnRfdmVyc2lv bj1gY2QgJFNPVVJDRTsgZ2l0IGxvZyB8IHNlZCAxcSB8IHNlZCAtZSAicy9e Y29tbWl0Ly9nIiAtZSAicy8gLy9nImAKICAgIFBSSVNUSU5FPSRTVEFURS8k Y3VycmVudF92ZXJzaW9uCgogICAgaWYgWyAtZCAkUFJJU1RJTkUgXTsgdGhl bgoJbG4gLXMgJFBSSVNUSU5FICRURVNUSU5HL3ByaXN0aW5lCglyZXR1cm4g MAogICAgZWxzZQoJbWtkaXIgLXAgJFBSSVNUSU5FCglsbiAtcyAkUFJJU1RJ TkUgJFRFU1RJTkcvcHJpc3RpbmUKCWJvb3RudGVzdCAkUFJJU1RJTkUKCVJF VFZBTD0kPwoJaWYgWyAkUkVUVkFMID0gMCAtYSAkc2F2ZWNvbXBpbGVycyA9 IHRydWUgXTsgdGhlbgoJICAgIHNhdmVfY29tcGlsZXJzCglmaQoJcmV0dXJu ICRSRVRWQUwKICAgIGZpCn0KCnJlZ3Rlc3QgKCkgewogICAgdG91Y2ggJDEv cmVwb3J0CiAgICB0b3VjaCAkMS9wYXNzZXMKICAgIHRvdWNoICQxL2ZhaWxl ZAogICAgdG91Y2ggJDEvcmVncmVzcwoKICAgIGZvciBMT0cgaW4gJFRFU1RM T0dTIDsgZG8KCU5MT0c9YGJhc2VuYW1lICRMT0dgCglpZiBbIC1mICQxLyRO TE9HIF07IHRoZW4KCSAgICBzZWQgLW4gInMsXkZBSUw6ICwkTkxPRyAscCIg JDEvJE5MT0cKCWZpCiAgICBkb25lIHwgc29ydCB8IHVuaXEgPiAkMS9mYWls ZWQKCiAgICBjb21tIC0xMiAkMS9mYWlsZWQgJDEvcGFzc2VzID4+ICQxL3Jl Z3Jlc3MKICAgIE5VTVJFR1JFU1M9YHdjIC1sIDwgJDEvcmVncmVzcyB8IHRy IC1kICcgJ2AKCiAgICBpZiBbICROVU1SRUdSRVNTIC1lcSAwIF0gOyB0aGVu Cglmb3IgTE9HIGluICRURVNUTE9HUyA7IGRvCgkgICAgTkxPRz1gYmFzZW5h bWUgJExPR2AKCSAgICBpZiBbIC1mICQxLyROTE9HIF0gOyB0aGVuCgkJc2Vk IC1uICJzLF5QQVNTOiAsJE5MT0cgLHAiICQxLyROTE9HCgkgICAgZmkKCWRv bmUgfCBzb3J0IHwgdW5pcSB8IGNvbW0gLTIzIC0gJDEvZmFpbGVkID4gJDEv cGFzc2VzCgllY2hvICJ0aGVyZSBhcmUgbm8gcmVncmVzc2lvbnMgd2l0aCB5 b3VyIHBhdGNoLiIgPj4gJDEvcmVwb3J0CiAgICBlbHNlCgllY2hvICJ3aXRo IHlvdXIgcGF0Y2ggdGhlcmUgYXJlICROVU1SRUdSRVNTIHJlZ3Jlc3Npb25z LiIgPj4gJDEvcmVwb3J0CgllY2hvICJsaXN0IG9mIHJlZ3Jlc3Npb25zIHdp dGggeW91ciBwYXRjaDoiID4+ICQxL3JlcG9ydAoJY2F0ICQxL3JlZ3Jlc3Mg Pj4gJDEvcmVwb3J0CiAgICBmaQp9Cgpjb250cmliX2NvbXBhcmVfdGVzdHMg KCkgewogICAgcmVwb3J0ICJjb21wYXJpbmcgbG9ncyB3aXRoIGNvbnRyaWIv Y29tcGFyZV90ZXN0czoiCiAgICBmb3IgTE9HIGluICRURVNUTE9HUyA7IGRv CiAJTkxPRz1gYmFzZW5hbWUgJExPR2AKIAlpZiBbIC1mICRQUklTVElORS8k TkxPRyAtYSAtZiAkUEFUQ0hFRC8kTkxPRyBdOyB0aGVuCiAJICAgICRTT1VS Q0UvY29udHJpYi9jb21wYXJlX3Rlc3RzICRQUklTVElORS8kTkxPRyAkUEFU Q0hFRC8kTkxPRyA+ICRURVNUSU5HL2NvbXBhcmVfJE5MT0cKIAkgICAgZnJl cG9ydCAkVEVTVElORy9jb21wYXJlXyROTE9HCiAJZmkKICAgIGRvbmUKfQoK Y29tcGFyZV9wYXNzZXMgKCkgewogICAgcmVndGVzdCAkUFJJU1RJTkUKICAg IGNwICRQUklTVElORS9wYXNzZXMgJFBBVENIRUQKICAgIHJlZ3Rlc3QgJFBB VENIRUQKICAgIGZyZXBvcnQgJFBBVENIRUQvcmVwb3J0CiAgICByZXBvcnQg IkZBSUxzIHdpdGggcGF0Y2hlZCB2ZXJzaW9uOiIKICAgIGZyZXBvcnQgJFBB VENIRUQvZmFpbGVkCiAgICByZXBvcnQgIkZBSUxzIHdpdGggcHJpc3RpbmUg dmVyc2lvbjoiCiAgICBmcmVwb3J0ICRQUklTVElORS9mYWlsZWQKCiAgICAj IGNvbnRyaWJfY29tcGFyZV90ZXN0cwp9Cgp3cml0ZV9yZXBvcnQgKCkgewog ICAgYmFja3VwX3BhdGNoZWQ9JFNUQVRFL3BhdGNoZWQvYG5vd2AKICAgIHJl cG9ydCAiVGhlIGZpbGVzIHVzZWQgZm9yIHRoZSB2YWxpZGF0aW9uIG9mIHlv dXIgcGF0Y2ggYXJlIHN0b3JlZCBpbiAkYmFja3VwX3BhdGNoZWQgb24gdGhl IHRlc3RlciBtYWNoaW5lLiIKCiAgICBFTUFJTD1gZ3JlcCAiXmVtYWlsOiIg JFBBVENIIHwgc2VkIC1lICJzL15lbWFpbDovL2ciIC1lICJzLyAvL2ciYAog ICAgaWYgWyB4JEVNQUlMICE9IHggXTsgdGhlbgoJbXV0dCAtcyAiW3JlZ3Rl c3RdIFJlc3VsdHMgZm9yIGBiYXNlbmFtZSAkUEFUQ0hgIG9uICRUQVJHRVQi IC1pICRSRVBPUlQgLWEgJFBBVENIICRFTUFJTAogICAgZmkKCiAgICBtdiAk VEVTVElORyAkYmFja3VwX3BhdGNoZWQKfQoKYW5ub3VuY2UgKCkgewogICAg RU1BSUw9YGdyZXAgIl5lbWFpbDoiICRQQVRDSCB8IHNlZCAtZSAicy9eZW1h aWw6Ly9nIiAtZSAicy8gLy9nImAKICAgIGlmIFsgeCRFTUFJTCAhPSB4IF07 IHRoZW4KCglTVEFSVF9SRVBPUlQ9JFRFU1RJTkcvc3RhcnRfcmVwb3J0Cgll Y2hvICJIaSwgIiA+PiAkU1RBUlRfUkVQT1JUCgllY2hvICJJJ20gdGhlIGF1 dG9tYXRpYyB0ZXN0ZXIgcnVubmluZyBvbiAkVEFSR0VULiIgPj4gJFNUQVJU X1JFUE9SVAoJZWNobyAiSSBqdXN0IHN0YXJ0ZWQgdG8gbG9vayBhdCB5b3Vy IHBhdGNoIGBiYXNlbmFtZSAkUEFUQ0hgLiIgPj4gJFNUQVJUX1JFUE9SVAoJ ZWNobyAiQnllLCB5b3VyIGF1dG9tYXRpYyB0ZXN0ZXIuIiA+PiAkU1RBUlRf UkVQT1JUCgltdXR0IC1zICJbcmVndGVzdF0gU3RhcnRpbmcgYm9vdHN0cmFw IGZvciBgYmFzZW5hbWUgJFBBVENIYCBvbiAkVEFSR0VUIiAtaSAkU1RBUlRf UkVQT1JUICRFTUFJTAogICAgZmkKfQoKIyBBZnRlciBzZWxmZXhlYywgJFRF U1RJTkcgaXMgYWxyZWFkeSBzZXQgdXAuICAKaWYgWyAtZCAkVEVTVElORyBd OyB0aGVuCiAgICAjIFRoZSBvbmx5IGZpbGUgaW4gJFRFU1RJTkcgaXMgdGhl IHBhdGNoLgogICAgUEFUQ0g9YGxzIC1ydCAtMSAkVEVTVElORyB8IGhlYWQg LTFgCiAgICBQQVRDSD0kVEVTVElORy8kUEFUQ0gKICAgIGlmIFsgLWYgJFBB VENIIF07IHRoZW4KCWJvb3RudGVzdF9wYXRjaGVkICYmIGJvb3RudGVzdF9w cmlzdGluZSAmJiBjb21wYXJlX3Bhc3NlcwoJd3JpdGVfcmVwb3J0CiAgICBm aQpmaQoKZmlyc3RwYXRjaD10cnVlCndoaWxlIHRydWU7IGRvCiAgICBQQVRD SD1gbHMgLXJ0IC0xICRQQVRDSEVTIHwgaGVhZCAtMWAKICAgIGlmIFsgeCRQ QVRDSCA9IHggXTsgdGhlbgoJaWYgWyAkc3RvcCA9IHRydWUgXTsgdGhlbgoJ ICAgIGlmIFsgJGZpcnN0cGF0Y2ggPSB0cnVlIF07IHRoZW4KCQllY2hvICJO byBwYXRjaGVzIHJlYWR5IHRvIHRlc3QsIHF1aXR0aW5nLiIKCQlleGl0IDEK CSAgICBlbHNlCgkJZWNobyAiTm8gbW9yZSBwYXRjaGVzIHRvIHRlc3QuIgoJ CWV4aXQgMAoJICAgIGZpCglmaQoJc2xlZXAgJHtzdGFuZGJ5fW0KICAgIGVs c2UKCWZpcnN0cGF0Y2g9ZmFsc2UKCXN5c2xvYWQ9YHVwdGltZSB8IGN1dCAt ZCwgLWYgNWAKCWlmIFtbICRzeXNsb2FkID4gJHdhdGVybWFyayBdXTsgdGhl bgoJICAgICMgV2FpdCBhIGJpdCB3aGVuIHN5c3RlbSBsb2FkIGlzIHRvbyBo aWdoLgoJICAgIHNsZWVwICR7c3RhbmRieX1tCgllbHNlCgkgICAgbWtkaXIg LXAgJFRFU1RJTkcKCSAgICBtdiAkUEFUQ0hFUy8kUEFUQ0ggJFRFU1RJTkcv CgkgICAgUEFUQ0g9JFRFU1RJTkcvJFBBVENICgoJICAgIGFubm91bmNlCgkg ICAgdXBkYXRlICYmIGJvb3RudGVzdF9wYXRjaGVkICYmIGJvb3RudGVzdF9w cmlzdGluZSAmJiBjb21wYXJlX3Bhc3NlcwoJICAgIHdyaXRlX3JlcG9ydAoJ ZmkKICAgIGZpCmRvbmUK --=-=-=--