delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2013/06/07/09:59:50

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20120113;
h=mime-version:in-reply-to:references:date:message-id:subject:from:to
:content-type;
bh=GpsdAnCurJTXv0T69Wj/wI9fPelurRFiafUYIVc0ti0=;
b=F6iap/kgRa8wh0Wti/xUXEsF80mRTpZla1D8SDg3Oqkog2an4IIMxtEoTGsbr4h5DX
j0n/I4xlzWQxR9CKIlpIfk0j8lmhJO8jCkdytSUnm1PWKZJgFah8Ctlz5IPpAeerBohs
IU64kWpHHQcKAbjr+0i3xVDuyJSlJhMs8lHcBOXymD78UmTQcqIdfm2YxHM10R7n6zW3
rbO+6F7SV6NbPsSeRD2x/xqVK0slQ079DbnwQaOl8IZ45cX/C4dy8fEoj8VFJKo7a4tx
cEdMACLVX9AoW909WPAvBJSbHMbV67QL4IMsLhWLGuGroNyw/BYylxLqES8aPmy0oKX1
jN5Q==
MIME-Version: 1.0
X-Received: by 10.60.85.39 with SMTP id e7mr21878494oez.94.1370613512208; Fri,
07 Jun 2013 06:58:32 -0700 (PDT)
In-Reply-To: <CAG4ve9KeBYS_Gs_5y2o6ZWVREq0tEFtJiEQbX692SbRzTdSxgw@mail.gmail.com>
References: <CACPio-6QgmXwj8LwYoR6zq1hfXHh8ymmnDNhrJd5oEVg6pt0Gg AT mail DOT gmail DOT com>
<CACPio-7zTB0N7x8hGALcZzGgaCAexKr5DUb4imd=QAzH7Pj61A AT mail DOT gmail DOT com>
<CAG4ve9Jm00oyLb7uLgQjSTjfBpXOL9a0tXkjAQx09325ibChPg AT mail DOT gmail DOT com>
<CACPio-7ucw-yxsykwOyV+p=+xUqKbwHLhQv1ODNS9Qd+gf3GPQ AT mail DOT gmail DOT com>
<CAG4ve9KAB6POcUvMhh3KsCt3eRyWus8L+V1WFyupgL-4QckRJA AT mail DOT gmail DOT com>
<CACPio-7yV1a08b99NyjrGtD0b7qdKWxLPQxA0nUr3qAL9yz7pQ AT mail DOT gmail DOT com>
<CAG4ve9KKG_4Z6V0V3HCjAjo6jwD=t5AmwGdVgGqYJbM9q6B_zA AT mail DOT gmail DOT com>
<CACPio-66SHLWYAusnwq0acYBL+QX0uwuuT8zeUotYE90a5pCHQ AT mail DOT gmail DOT com>
<CAG4ve9KeBYS_Gs_5y2o6ZWVREq0tEFtJiEQbX692SbRzTdSxgw AT mail DOT gmail DOT com>
Date: Fri, 7 Jun 2013 17:58:31 +0400
Message-ID: <CAG4ve9+wP0VAnXAFpB+gJQHUphnNTYn71_wBphuMafL09k9YnQ@mail.gmail.com>
Subject: Re: [geda-user] Re: refdes renumber
From: =?KOI8-R?B?4czFy9PFyiDowdLYy8/X08vJyg==?= <svetonomer AT gmail DOT com>
To: geda-user AT delorie DOT com
Reply-To: geda-user AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: geda-user AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

--089e0111b6aa8559e104de90d337
Content-Type: multipart/alternative; boundary=089e0111b6aa8559dd04de90d335

--089e0111b6aa8559dd04de90d335
Content-Type: text/plain; charset=ISO-8859-1

This script completely compatible with refdes_renum script of geda project.

Main difference of this script that his renumber REFDESs attribute in
schematic files or schematic and PCB files sumaltenuously.
Also this script can read the project file and renumber REFDESs in all
files of current project.

New option (versus refdes_renum of geda-gaf project) is:
--sort option allowing useage various method of renumber as well as gschem
text renumber tool ( diagonal, top to bottom, bottom to top, left to right,
right to left, file)
--component option allowing component coordinate instead coordinate of text
attribute (REFDES)
--log write to stdout Summary report. If using with --verbose option also
write to stdout, context information of replace.

In future I planning add --graph option for GUI to this script, similar
gschem TU (autonumber text tool) window.

--089e0111b6aa8559dd04de90d335
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div><div><div><div>This script <span id=3D"result_box=
" class=3D"" lang=3D"en"><span class=3D"">completely compatible with refdes=
_renum script of geda project.<br><br></span></span></div><span id=3D"resul=
t_box" class=3D"" lang=3D"en"><span class=3D"">Main difference of this scri=
pt that his renumber REFDESs attribute in schematic files or schematic and =
PCB files sumaltenuously. <br>
</span></span></div><span id=3D"result_box" class=3D"" lang=3D"en"><span cl=
ass=3D"">Also this script can read the project file and renumber REFDESs in=
 all files of current project.<br><br></span></span></div><span id=3D"resul=
t_box" class=3D"" lang=3D"en"><span class=3D"">New option (versus refdes_re=
num of geda-gaf project) is:<br>
</span></span></div><span id=3D"result_box" class=3D"" lang=3D"en"><span cl=
ass=3D"">--sort option allowing useage various method of renumber as well a=
s gschem text renumber tool ( diagonal, top to bottom, bottom to top, left =
to right, right to left, file)<br>
</span></span><table class=3D""><tbody><tr><td>--component option allowing =
component coordinate instead coordinate of text attribute (REFDES)<br>--log=
 write to stdout Summary report. If using with --verbose option also write =
to stdout, context information of replace.<br>
<br>In future I planning add --graph option for GUI to this script, similar=
 gschem TU (autonumber text tool) window.<br></td></tr></tbody></table></di=
v>

--089e0111b6aa8559dd04de90d335--
--089e0111b6aa8559e104de90d337
Content-Type: application/octet-stream; name="refdes_renum.py"
Content-Disposition: attachment; filename="refdes_renum.py"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hhnefed10

IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMgoKaGVscCA9ICIiIgpVc2FnZToKCglyZWZkZXNfcmVudW0u
cHkgWy0tbm9jb3B5XSBbLS1wZ3NraXAgW251bWJlcl0gXSBmaWxlMS5zY2ggW2ZpbGUyLnNjaCBm
aWxlLnBjYiBbIHBhdGh0by9wcm9qZWN0ZmlsZSBdIF0KCXJlZmRlc19yZW51bS5weSAtLWhlbHAK
CXJlZmRlc19yZW51bS5weSAtLXZlcnNpb24KCnJlZmRlc19yZW51bS5weSByZWFkcyBhIGdzY2hl
bSBzY2hlbWF0aWMgZmlsZSBvciBmaWxlcyBhbmQgcmVudW1iZXJzIGFsbCByZWZlcmVuY2UKZGVz
aWduYXRvcnMuICBUaGUgcmVmZXJlbmNlIGRlc2lnbmF0b3JzIGFyZSBudW1iZXJlZCBzdGFydGlu
ZyB3aXRoIDEgYW5kIHRoZQpvbGQgc2NoZW1hdGljIGZpbGUgaXMgcmVwbGFjZWQgYnkgdGhlIG1v
ZGlmaWVkIHNjaGVtYXRpYyBmaWxlLiBBbHNvIHJlcGxhY2VkIFJFRkRFU3MgaW4gcGNiIGZpbGUo
cykgYWNjb3JkaW5nbHkgdG8gc2NoZW1hdGljIGZpbGUocykuCnJlZmRlc19yZW51bS5weSBjYW4g
cmVhZCB0aGUgcHJvamVjdCBmaWxlKGZpbGVzKSBhbmQgcmVudW1iZXIgYWxsIFJFRkRFU3MgaW4g
cHJvamVjdC4KCnJlZmRlc19yZW51bS5weSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoK
CiAgICAtLWhlbHAgICAgICBEaXNwbGF5cyB0aGlzIGhlbHAgbWVzc2FnZS4KCiAgICAtLW5vY29w
eSAgICBJZiBnaXZlbiwgdGhpcyBmbGFnIGxlYXZlcyB0aGUgbW9kaWZpZWQgZmlsZXMgaW4gbmV3
IGZpbGVzCiAgICAgICAgICAgICAgICB3aG9zZSBuYW1lcyBhcmUgZ2VuZXJhdGVkIGJ5IGFwcGVu
ZGluZyBhICIucmVudW0iIHRvIHRoZQogICAgICAgICAgICAgICAgb3JpZ2luYWwgZmlsZSBuYW1l
cy4gIFRoZSBkZWZhdWx0IGlzIHRvIG92ZXJ3cml0ZSB0aGUgb3JpZ2luYWwuCgogICAgLS1wZ3Nr
aXAgTiAgV2hlbiB0aGlzIGZsYWcgaXMgdXNlZCwgY29tcG9uZW50cyBvbiB0aGUgZmlyc3Qgc2No
ZW1hdGljIHNoZWV0CiAgICAgICAgICAgICAgICBhcmUgbnVtYmVyZWQgc3RhcnRpbmcgd2l0aCAx
MDEuICBPbiB0aGUgc2Vjb25kIHNoZWV0LCB0aGV5IHN0YXJ0CiAgICAgICAgICAgICAgICB3aXRo
IDIwMSwgZXRjICBTcGVjaWZ5aW5nIGEgdmFsdWUgKE4pIGdpdmVzIHRoZSBzdGVwIGJldHdlZW4g
cGFnZXMuCiAgICAgICAgICAgICAgICBGb3IgZXhhbXBsZSAtLXBnc2tpcCAxMCB3aWxsIHN0YXJ0
IHdpdGggMTEsIDIxLCAzMSwgZXRjLgoKICAgIC0tZ2VudGxlICAgIFRoaXMgZmxhZyB0ZWxscyBy
ZWZkZXNfcmVudW0ucHkgdG8gbGVhdmUgYW55IHJlZmRlc2VzCiAgICAgICAgICAgICAgICBhbG9u
ZSBpZiB0aGV5IGFscmVhZHkgaGF2ZSBudW1iZXJzLiAgVXNlIHRoaXMgb3B0aW9uIHRvIG51bWJl
cgogICAgICAgICAgICAgICAgbmV3IGNvbXBvbmVudHMgaW4gYSBzY2hlbWF0aWMgd2hpY2ggaGFz
IGFscmVhZHkgYmVlbiBudW1iZXJlZC4KICAgICAgICAgICAgICAgIE5vdGUgdGhhdCAtLWdlbnRs
ZSBpcyBzZXQgYnkgZGVmYXVsdCEKCiAgICAtLWZvcmNlICAgICBTZXQgdGhpcyBmbGFnIHRvIHJl
bnVtYmVyIGFsbCByZWZkZXNlcywgd2hldGhlciB0aGV5IGFyZSBhbHJlYWR5CiAgICAgICAgICAg
ICAgICBudW1iZXJlZCBvciBub3QuCgoJLS1zb3J0IEFMRwlTZXQgdGhlIHNvcnRlZCBhbGdvcml0
aG0uCgkJCQlQZXJtaXNzaWJsZSB2YWx1ZSBmb3IgLS1zb3J0IG9wdGlvbiAoQUxHKSBpczoKCQlk
aWFnCQktIERpYWdvbmFsIHJlbnVtYmVyIChhcyBnc2NoZW0gcHJvZ3JhbSkKCQl0b3B0b2JvdAkt
IFJlbnVtYmVyIHJlZmRlcyBiZWdhbiB3aXRoIHRvcCBhbmQgZW5kcyBhdCBib3R0b20uCgkJYm90
dG90b3AJLSBSZW51bWJlciByZWZkZXMgY29udHJhcml3aXNlIGFzIHRvcHRvYm90CgkJbGVmdHRv
cmlnaHQJLSBSZW51bWJlciByZWZkZXMgYmVnYW4gd2l0aCBsZWZ0IGFuZCB0byByaWdodAoJCXJp
Z2h0dG9sZWZ0IC0gUmVudW1iZXIgcmVmZGVzIGNvbnRyYXJpd2lzZSBhcyBsZWZ0dG9yaWdodAoJ
CWZpbGUJCS0gUmVudW1iZXIgcmVmZGVzIGFzIHRleHQgZmlsZSBvcmRlcgoKCS0tbG9nCQlQcmlu
dCByZW51bWJlciBpbmZvcm1hdGhpb24gdG8gc3Rkb3V0CgoJLS1jb21wb25lbnQgUmVudW1iZXIg
cmVmZGVzIHdpdGggY29tcG9uZW50IGNvb3JkaW5hdGVzCgkJCQlCeSBkZWZhdWx0IHJlZmRlc19y
ZW51bS5weSBwcm9ncmFtIHVzaW5nIGNvb3JkaW5hdGVzIG9mICJyZWZkZXMiIGF0dHJpYnV0ZXMK
CiAgICAtLXZlcmJvc2UgICBFbmFibGVzIHZlcmJvc2Ugb3V0cHV0LgoKICAgIC0tdmVyc2lvbiAg
IFNob3dzIHRoZSB2ZXJzaW9uIG9mIHRoaXMgcHJvZ3JhbS4KCgpSZXR1cm4gY29kZXM6CgoJcmVm
ZGVzX3JlbnVtLnB5IHJldHVybnMgdGhlIGZvbGxvd2luZyBjb2RlcyB0byB0aGUgc2hlbGwgdXBv
biBjb21wbGV0aW9uOgoKICAgICAgICAgIDAgICBQcm9ncmFtIHJhbiBzdWNjZXNzZnVsbHkuCiAg
ICAgICAgICAxICAgRXJyb3Igb3BlbmluZyBvciByZWFkaW5nIGlucHV0IGZpbGUuCiAgICAgICAg
ICAyICAgRXJyb3Igb3BlbmluZyBvciB3cml0aW5nIG91dHB1dCBmaWxlLgogICAgICAgICAgMyAg
IFRvbyBtYW55IGNvbXBvbmVudHMgZm9yIC0tcGdza2lwIHNldHRpbmcuCiAgICAgICAgICA0ICAg
SW50ZXJuYWwgZXJyb3IgKHByb2dyYW0gYnVnIGVuY291bnRlcmVkKS4KClVzYWdlIGV4YW1wbGVz
OgoKMS4JVG8gcmVudW1iZXIgdGhlIHJlZmVyZW5jZSBkZXNpZ25hdG9ycyBpbiBhIHNpbmdsZSBw
YWdlIHNjaGVtYXRpYwoJbXlzY2guc2NoOgoKCQlyZWZkZXNfcmVudW0ucHkgbXlzY2guc2NoCgkJ
CgoyLglUbyByZW51bWJlciB0aGUgcmVmZXJlbmNlIGRlc2lnbmF0b3JzIGluIHNjaGVtYXRpYyBw
YWdlcyBwZzEuc2NoLAoJcGcyLnNjaCBhbmQgcGczLnNjaCwgd2l0aCB0aGUgcmVmZXJlbmNlIGRl
c2lnbmF0b3JzIG9uIHBnMS5zY2gKCWJlZ2lubmluZyBhdCAxMDEsIHRoZSBkZXNpZ25hdG9ycyBv
biBwZzIuc2NoIGJlZ2lubmluZyBhdCAyMDEsCglhbmQgdGhlIGRlc2lnbmF0b3JzIG9uIHBnMy5z
Y2ggYmVnaW5uaW5nIGF0IDMwMToKCgkJcmVmZGVzX3JlbnVtLnB5IC0tcGdza2lwIHBnMS5zY2gg
cGcyLnNjaCBwZzMuc2NoCgoJCjMuCUZvcmNlIHJlcGxhY2VkIHRoZSBSRUZERVNzIGluIHNjaGVt
YXRpYyBhbmQgUENCIGZpbGVzLgoJTm8gZm9yZ290IGdzY2gycGNiIHByb2dyYW0gZm9yIGdlbmVy
YXRlIHByb3BlciBuZXRsaXN0IDopCgkJCgkJcmVmZGVzX3JlbnVtLnB5IC0tZm9yY2UgZm9vMS5z
Y2ggZm9vMi5zY2ggZm9vLnBjYgoJCgo0LglGb3JjZSByZXBsYWNlZCB0aGUgUkVGREVTcyBpbiBj
dXJyZW50IChvciBub24gY3VycmVudCkgd29ya2VkIHByb2plY3QuCgkJCgkJcmVmZGVzX3JlbnVt
LnB5IC0tZm9yY2UgcHJvamVjdAoJCXJlZmRlc19yZW51bS5weSAtLWZvcmNlIC4uLy4uL2Rlc2ln
bi9nZWRhL3Byb2plY3QKCQoKNS4JUmVwbGFjaW5nIHdpdGggbm9uIGRlZmF1bHQgc29ydGluZyBh
bGdvcml0aG0KCgkJcmVmZGVzX3JlbnVtLnB5IC0tZm9yY2UgcHJvamVjdCAtLXNvcnQgbGVmdHRv
cmlnaHQKCQoKCnJlZmRlc19yZW51bS5weSB3YXMgd3JpdHRlbiBieSBLaGFya292c2t5IEFsZXhl
eSA8c3ZldG9ub21lckBnbWFpbC5jb20+CiIiIgoKdmVyc2lvbj0ncmVmZGVzX3JlbnVtLnB5IHYx
LjAgYnkgS2hhcmtvdnNreSBBbGV4ZXkgOiknCnNvcnRfbWV0aG9kID0gWydkaWFnJywndG9wdG9i
b3QnLCdib3R0b3RvcCcsJ2xlZnR0b3JpZ2h0JywncmlnaHR0b2xlZnQnLCdmaWxlJ10KCmltcG9y
dCBzeXMsb3MKaW1wb3J0IHJlCgppZiBsZW4oc3lzLmFyZ3YpID09IDE6CglwcmludCBoZWxwCgll
eGl0KDApCgppZiAnLS1oZWxwJyBpbiBzeXMuYXJndjoKCXByaW50IGhlbHAKCWV4aXQoMCkKCmlm
ICctLXZlcnNpb24nIGluIHN5cy5hcmd2OgoJcHJpbnQgdmVyc2lvbgoJZXhpdCgwKQoKaWYgJy0t
bm9jb3B5JyAgaW4gc3lzLmFyZ3Y6CglTdWZmaXggPSAnLnJlbnVtJwoJc3lzLmFyZ3YucmVtb3Zl
KCctLW5vY29weScpCmVsc2U6CglTdWZmaXggPSAnJwoKaWYgJy0tcGdza2lwJyAgaW4gc3lzLmFy
Z3Y6CglpZiBzeXMuYXJndltzeXMuYXJndi5pbmRleCgnLS1wZ3NraXAnKSsxXSBpcyBpbnQ6CgkJ
YWRkX3BhZ2VfbnVtID0gc3lzLmFyZ3Zbc3lzLmFyZ3YuaW5kZXgoJy0tcGdza2lwJykrMV0KCWVs
c2U6YWRkX3BhZ2VfbnVtID0gMTAwICNQYWdlIGluY3JlbWVudCAKCXN5cy5hcmd2ID0gc3lzLmFy
Z3ZbOnN5cy5hcmd2LmluZGV4KCctLXBnc2tpcCcpXSArIHN5cy5hcmd2W3N5cy5hcmd2LmluZGV4
KCctLXBnc2tpcCcpKzI6XQplbHNlOgoJYWRkX3BhZ2VfbnVtID0gMCNQYWdlIGluY3JlbWVudCAK
CmlmICctLWdlbnRsZScgIGluIHN5cy5hcmd2OgoJc3lzLmFyZ3YucmVtb3ZlKCctLWdlbnRsZScp
CglpZiAnLS1mb3JjZScgIGluIHN5cy5hcmd2OgoJCXByaW50ICdEbyBub3QgdXNlIFwiLS1nZW50
bGVcIiBhbmQgXCItLWZvcmNlXCIgc3VtYWx0ZW51b3VzbHknCgkJZXhpdCgwKQoKaWYgJy0tZm9y
Y2UnICBpbiBzeXMuYXJndjoKCWZvcmNlID0gVHJ1ZQoJc3lzLmFyZ3YucmVtb3ZlKCctLWZvcmNl
JykKZWxzZToKCWZvcmNlID0gRmFsc2UKCmlmICctLXZlcmJvc2UnICBpbiBzeXMuYXJndjoKCXZl
cmJvc2UgPSBUcnVlCglzeXMuYXJndi5yZW1vdmUoJy0tdmVyYm9zZScpCmVsc2U6Cgl2ZXJib3Nl
ID0gRmFsc2UKCmlmICctLXNvcnQnICBpbiBzeXMuYXJndjoKCWlmIHN5cy5hcmd2W3N5cy5hcmd2
LmluZGV4KCctLXNvcnQnKSsxXSBpbiBzb3J0X21ldGhvZDoKCQlzb3J0ID0gc3lzLmFyZ3Zbc3lz
LmFyZ3YuaW5kZXgoJy0tc29ydCcpKzFdICNzb3J0IG1ldGhvZAoJZWxzZToKCQlwcmludCAnVW5r
bm93biBhcmd1bWVudCBmb3IgLS1zb3J0IG9yIHNvcnQgbWV0aG9kIGlzIHNraXBwZWQnCgkJcHJp
bnQgJ1RoZSBwZXJtaXNzaWJsZSB2YWx1ZSBmb3Igc29ydCBtZXRob2Q6ICcgLCBzdHIoc29ydF9t
ZXRob2QpCgkJZXhpdCgwKQoJc3lzLmFyZ3YgPSBzeXMuYXJndls6c3lzLmFyZ3YuaW5kZXgoJy0t
c29ydCcpXSArIHN5cy5hcmd2W3N5cy5hcmd2LmluZGV4KCctLXNvcnQnKSsyOl0KZWxzZToKCXNv
cnQgPSAndG9wdG9ib3QnCgppZiAnLS1sb2cnIGluIHN5cy5hcmd2OgoJbG9nID0gVHJ1ZQoJc3lz
LmFyZ3YucmVtb3ZlKCctLWxvZycpCmVsc2U6Cglsb2cgPSBGYWxzZQoKaWYgJy0tY29tcG9uZW50
JyBpbiBzeXMuYXJndjoKCXJlZmRlcyA9IEZhbHNlICMgZm9yIGNvbXBvbmVudCBjb29yZGluYXRl
cyB1c2luZwoJc3lzLmFyZ3YucmVtb3ZlKCctLWNvbXBvbmVudCcpIAplbHNlOgoJcmVmZGVzID0g
VHJ1ZQoKcGNibmFtZXMgPSBbXQpwY2Jjb250ZW50ID0gW10Kc2NoZW1fbmFtZXMgPSBbXQpmb3Ig
aSBpbiBzeXMuYXJndlsxOl06CglpZiByZS5zZWFyY2goJy4qXC5wY2IkJyxpLGZsYWdzPXJlLkRP
VEFMTCk6ICNUcnVlIGlmIGVuZCBvZiBmaWxlbmFtZSBpcyAucGNiCgkJaWYgaSBub3QgaW4gcGNi
bmFtZXM6CgkJCXBjYm5hbWVzLmFwcGVuZChpKQoJZWxpZiByZS5zZWFyY2goJy4qXC5zY2gkJyxp
LGZsYWdzPXJlLkRPVEFMTCk6ICNUcnVlIGlmIGVuZCBvZiBmaWxlbmFtZSBpcyAuc2NoCgkJaWYg
aSBub3QgaW4gc2NoZW1fbmFtZXM6CgkJCXNjaGVtX25hbWVzLmFwcGVuZChpKQoJZWxzZTogI2Zp
bGUgaXMgbm90IHBjYiBhbmQgc2NoID0+IHRoaXMgZmlsZSBpcyBwcm9qZWN0IGZpbGUKCQlmaWxl
PW9wZW4oaSwncnQnKQoJCWNvbnRlbnQgPSBmaWxlLnJlYWQoKQoJCWZpbGUuY2xvc2UoKQoJCWZv
ciB0ZW1wMSBpbiByZS5maW5kYWxsKCdzY2hlbWF0aWNzXHMrLipcLnNjaCcsY29udGVudCxmbGFn
cz1yZS5ET1RBTEwpOiAjVGhpcyBzdHJpbmcgYXJlIGNvbnRhbmluZyB0aGUgc2NoZW1hdGljIGZp
bGUgbmFtZXMKCQkJZm9yIHRlbXAgaW4gdGVtcDEuc3BsaXQoKVsxOl06CgkJCQl0ZW1wID0gb3Mu
cGF0aC5kaXJuYW1lKGkpKycvJysgdGVtcCAjIEFkZCBwYXRoIHRvIGZpbGUgKFVzZWZ1bCBpZiBw
cm9qZWN0IGZpbGUgbm90IGluIGN1cnJlbnQgZGlyZWN0b3J5KQoJCQkJaWYgdGVtcCBub3QgaW4g
c2NoZW1fbmFtZXM6CgkJCQkJc2NoZW1fbmFtZXMuYXBwZW5kKHRlbXApCgkJZm9yIHRlbXAxIGlu
IHJlLmZpbmRhbGwoJ291dHB1dC1uYW1lXHMrLipcLnBjYicsY29udGVudCxmbGFncz1yZS5ET1RB
TEwpOiNUaGlzIHN0cmluZyBhcmUgY29udGFuaW5nIHRoZSBzY2hlbWF0aWMgZmlsZSBuYW1lcwoJ
CQlmb3IgdGVtcCBpbiB0ZW1wMS5zcGxpdCgpWzE6XToKCQkJCXRlbXAgPSBvcy5wYXRoLmRpcm5h
bWUoaSkrJy8nKyB0ZW1wICsgJy5wY2InIyBBZGQgcGF0aCB0byBmaWxlIChVc2VmdWwgaWYgcHJv
amVjdCBmaWxlIG5vdCBpbiBjdXJyZW50IGRpcmVjdG9yeSkuIEFmdGVyIGFkZCAucGNiIChhY3R1
YWwgZm9yIHByb2plY3QgZmlsZSkgCiNXaGVuIGluIHByb2plY3QgZmlsZSAib3V0cHV0LW5hbWUg
Zm9vLnBjYiIsIGdzY2gycGNiIGNyZWF0ZSAgZm9vLnBjYi5wY2IsIHRoZXJlZm9yZSB0aGlzIGZp
bGUgSVMgbWFpbiBQQ0IuCgkJCQlpZiB0ZW1wIG5vdCBpbiBwY2JuYW1lczoKCQkJCQlwY2JuYW1l
cy5hcHBlbmQodGVtcCkKIyBSZWFkIGNvbnRlY3Qgb2YgUENCIGZpbGVzIApmb3IgaSBpbiBwY2Ju
YW1lczoKCWZpbGU9b3BlbihpLCdydCcpCglwY2Jjb250ZW50LmFwcGVuZChmaWxlLnJlYWQoKSkK
CWZpbGUuY2xvc2UoKQojIFJlYWQgY29udGVjdCBvZiBQQ0IgZmlsZXMgCgpwYWdlX251bSA9IDAK
Zm9yIGZpbGVuYW1lIGluIHNjaGVtX25hbWVzOiAKCSNSZWFkIGNvbnRlbnQgU0NIIGZpbGVzIG9u
ZSBhdCBhIHRpbWUhISEgSW4gZnV0dXJlIG1heSBiZSByZXBsYWNlIGZvciByZWFkIGNvbnRlbnQg
YWxsIFNDSCBmaWxlcwoJZmlsZT1vcGVuKGZpbGVuYW1lLCdydCcpCgljb250ZW50ID0gZmlsZS5y
ZWFkKCkKCWZpbGUuY2xvc2UoKQoKI0ZpbmQgYWxsIHJlcGxhY2luZyBzdHJpbmdzIGluIGN1cnJl
bnQgc2NoZW1hdGljCglpZiByZWZkZXM9PVRydWU6ICNJZiB1c2VkIHJlZmRlcyBhdHRyaWJ1dGUg
Y29vcmRpbmF0ZXMKCQlpZiBmb3JjZTojIEFsbCByZWZkZXMgYXR0cmlidXRlcyBhcmUgc2VsZWN0
ZWQKCQkJY29tcF9saXN0ICA9IHJlLmZpbmRhbGwoJ1RbXlxuXStccytyZWZkZXM9XHcqXD8/Jyxj
b250ZW50LGZsYWdzPXJlLkRPVEFMTCkKCQllbHNlOiMgT25seSBOT04gbnVtYmVyaW5nIHJlZmRl
cyBhdHRyaWJ1dGVzIGFyZSBzZWxlY3RlZCAoRXhhbXBsZTogUj8gREQ/IGV0Yy4pCgkJCWNvbXBf
bGlzdCAgPSByZS5maW5kYWxsKCdUW15cbl0rXHMrcmVmZGVzPVx3Klw/Jyxjb250ZW50LGZsYWdz
PXJlLkRPVEFMTCkKCQkKCWVsc2U6ICNJZiB1c2VkIGNvbXBvbmVudCBjb29yZGluYXRlcyAobGlz
dCBvZiBzdHJpbmdzKQoJCWlmIGZvcmNlOgoJCQkjZm9yIGVtYmVkZGVkIGNvbXBvbmVudHMKCQkJ
Y29tcF9saXN0ICA9IHJlLmZpbmRhbGwoJ0NccytcZCtccytcZCtccytcZCtccytcZCtccytcZCtc
cytFTUJFRERFRC4rP1xbLis/XF1ccytce1tee31dKnJlZmRlcz1cdypcPz9bXnt9XSpcfScsY29u
dGVudCxmbGFncz1yZS5ET1RBTEwpCgkJCSNmb3Igbm9uIGVtYmVkZGVkIGNvbXBvbmVudHMKCQkJ
Y29tcF9saXN0ICs9IHJlLmZpbmRhbGwoJ0NccytcZCtccytcZCtccytcZCtccytcZCtccytcZCtb
XlxuXStccytce1tee31dKnJlZmRlcz1cdypcPz9bXnt9XSpcfScsY29udGVudCxmbGFncz1yZS5E
T1RBTEwpCgkJZWxzZToKCQkJI2ZvciBlbWJlZGRlZCBjb21wb25lbnRzCgkJCWNvbXBfbGlzdCAg
PSByZS5maW5kYWxsKCdDXHMrXGQrXHMrXGQrXHMrXGQrXHMrXGQrXHMrXGQrXHMrRU1CRURERUQu
Kz9cWy4rP1xdXHMrXHtbXnt9XSpyZWZkZXM9XHcqXD9bXnt9XSpcfScsY29udGVudCxmbGFncz1y
ZS5ET1RBTEwpCgkJCSNmb3Igbm9uIGVtYmVkZGVkIGNvbXBvbmVudHMKCQkJY29tcF9saXN0ICs9
IHJlLmZpbmRhbGwoJ0NccytcZCtccytcZCtccytcZCtccytcZCtccytcZCtbXlxuXStccytce1te
e31dKnJlZmRlcz1cdypcP1tee31dKlx9Jyxjb250ZW50LGZsYWdzPXJlLkRPVEFMTCkKCglpZiBu
b3QgY29tcF9saXN0OiAjVHJ1ZSBpZiBubyBSRUZERVNzIGZvciByZXBsYWNpbmcKCQljb250aW51
ZQoJCglwYWdlX251bSArPSBhZGRfcGFnZV9udW0gICMgQWRkaW5nIFBhZ2UgYmlhcyBmb3IgbmV3
IGZpbGUgCgkjIE9idGFpbmluZyB0aGUgY29tcG9uZW50IGxpc3QKCWZvciBpIGluIHJhbmdlKDAs
bGVuKGNvbXBfbGlzdCkpOiAjRmluZCBjb29yZGluYXRlcyB0byByZXBsYWNpbmcKCQl4eSA9IGNv
bXBfbGlzdFtpXS5zcGxpdChOb25lLDMpWzE6M10KCQl4eVswXSA9IGludCh4eVswXSkKCQl4eVsx
XSA9IGludCh4eVsxXSkKCiNTZWxlY3QgcmVwbGFjaW5nIGFsZ29yeXRobSBieSBwcm9wZXIgc2V0
dXAgY29vcmRpbmF0ZXMgbG9jYXRpb24gb3JkZXIgYW5kIHNvbWUgY29tcHV0YXRpb24KCQlpZiBz
b3J0ID09ICdkaWFnJzoKCQkJY29tcF9saXN0W2ldID0gW3h5WzBdIC0geHlbMV1dICsgW2NvbXBf
bGlzdFtpXV0KCQllbGlmIHNvcnQgPT0gJ2xlZnR0b3JpZ2h0JzoKCQkJY29tcF9saXN0W2ldID0g
W3h5WzBdXSArIFsteHlbMV1dICsgW2NvbXBfbGlzdFtpXV0KCQllbGlmIHNvcnQgPT0gJ3RvcHRv
Ym90JzoKCQkJY29tcF9saXN0W2ldID0gWy14eVsxXV0gKyBbeHlbMF1dICsgW2NvbXBfbGlzdFtp
XV0KCQllbGlmIHNvcnQgPT0gJ3JpZ2h0dG9sZWZ0JzoKCQkJY29tcF9saXN0W2ldID0gWy14eVsw
XV0gKyBbeHlbMV1dICsgW2NvbXBfbGlzdFtpXV0KCQllbGlmIHNvcnQgPT0gJ2JvdHRvdG9wJzoK
CQkJY29tcF9saXN0W2ldID0gW3h5WzFdXSArIFsteHlbMF1dICsgW2NvbXBfbGlzdFtpXV0KCQll
bHNlOgoJCQljb21wX2xpc3RbaV0gPSBbY29tcF9saXN0W2ldXQoKCQkjY29tcF9saXN0IGNvbnRl
bnQ6IFtjb29yZDEsIGNvb3JkMiwgJ3JlcGxhY2VkIHN0cmluZyBvZiBmaWxlJ10KCQkjRXhhbXBs
ZToJCQlbLTUwODAwICwgNjUxMDAgLCAnQyA2NTEwMCA1MDgwMCAuLi4gcmVzaXN0b3ItMS5zeW0g
ey4uLi5yZWZkZXM9UjEyLi4ufSddCgkJCgkJI0ZpbmQgdGhlIHJlcGxhY2VkIFJFRkRFUyBsZXR0
ZXIgcHJlZml4IGFuZCBudW1iZXIgc3VmZml4IGFuZCBBREQgdG8gY29tcG9uZW50IGxpc3QgCgkJ
cmVmZGVzPXJlLnNlYXJjaCgnKC4qKXJlZmRlcz0oW0EtWl0qKShcZCt8XD8qKScsY29tcF9saXN0
W2ldWy0xXSxmbGFncz1yZS5ET1RBTEwpCgkJY29tcF9saXN0W2ldLmluc2VydCgwLHJlZmRlcy5n
cm91cCgyKSkKCQljb21wX2xpc3RbaV0uYXBwZW5kKHJlZmRlcy5ncm91cCgzKSBpZiByZWZkZXMu
Z3JvdXAoMykgZWxzZSAnJykgI0ZvciBsZXR0ZXJzIG9ubHkgUkVGREVTcyAoaW4gZnV0dXJlIFdl
IGNhbiByZW1vdmUgdGhleSBmcm9tIHJlY3BsYWNpbmcgbGlzdCkKCgkJI2NvbXBfbGlzdCBjb250
ZW50OiBbJ1JFRkRFUyBwcmVmaXgnLCBjb29yZDEsIGNvb3JkMiwgJ3JlcGxhY2VkIHN0cmluZyBv
ZiBmaWxlJwkJCQkJCQkJLCdPbGQgTlVNQkVSIG9mIFJFRkRFUyddCgkJI0V4YW1wbGU6CQkJWyAg
J1InCQkJLCAtNTA4MDAgLCA2NTEwMCAsICdDIDY1MTAwIDUwODAwIC4uLiByZXNpc3Rvci0xLnN5
bSB7Li4uLnJlZmRlcz1SMTIuLi59LCcxMiddCgoKCSMgU29ydGluZyB0aGUgcmVwbGFjZWQgY29t
cG9uZW50L3JlZmRlcyBsaXN0IHdpdGggUkVGREVTcyBwcmVmaXggYW5kIGFmdGVyIHdpdGggc2Vs
ZWN0ZWQgc29ydCBhbGdvcml0aG0KCWNvbXBfbGlzdCA9IHNvcnRlZChjb21wX2xpc3QpCgkKCXJl
Zl9jdXJyX3ByZWY9JycKCWlmICdyZWZfbGFzdF9udW1zJyBub3QgaW4gbG9jYWxzKCk6CgkJcmVm
X2xhc3RfbnVtcz17fSAjTGFzdHMgbnVtYmVycyBmb3IgUkVGREVTcyBwcmV2aW91cyBzY2hlbWF0
aWMgKEZvciBkaXNjb250aW51b3VzIHJlbnVtYmVyICh3aXRob3V0IC0tcGdza2lwKSkgCgkJI0V4
YW1wbGUgb2YgdGhpcyBkaWN0IGNvbnRlbnQ6IHsnREQnOjUsICdSJzoxNCwgJ0MnOjQ1fQoKCWZv
ciBpIGluIGNvbXBfbGlzdDogI1JlcGxhY2luZyBzb3J0ZWQgYXR0cmlidXRlcwoJCSNDb21wbGV4
IGNhbHVsYXRlIG9mIGN1cnJlbnQgUkVGREVTIAoJCWlmIHJlZl9jdXJyX3ByZWYgPT0gaVswXToK
CQkJcmVmX2N1cnJfbnVtICs9IDEKCQllbHNlOgoJCQl0cnk6cmVmX2N1cnJfbnVtID0gcGFnZV9u
dW0gKyAxIGlmIHBhZ2VfbnVtICE9IDAgZWxzZSByZWZfbGFzdF9udW1zW2lbMF1dICsgMSAKCQkJ
ZXhjZXB0OnJlZl9jdXJyX251bT0xCgkJCXJlZl9jdXJyX3ByZWYgPSBpWzBdCgkJcmVmX2xhc3Rf
bnVtc1tyZWZfY3Vycl9wcmVmXT1yZWZfY3Vycl9udW0gIyBBZGQgY3VycmVudCBSRUZERVMgaW4g
bGFzdCBudW1iZXJzCgkJaS5hcHBlbmQoc3RyKHJlZl9jdXJyX251bSkpICNBZGQgY3VycmVudCBu
dW1iZXIgdG8gY29tcG9uZW50IGxpc3QKCgkJI2NvbXBfbGlzdCBjb250ZW50OiBbJ1JFRkRFUyBw
cmVmaXgnLCBjb29yZDEsIGNvb3JkMiwgJ3JlcGxhY2VkIHN0cmluZyBvZiBmaWxlJwkJCQksJ09s
ZCBOVU1CRVInLCdOZXcgTlVNQkVSJ10KCQkjRXhhbXBsZToJCQlbICAnUicJCQksIC01MDgwMCAs
IDY1MTAwICwgJ0MgNjUxMDAgNTA4MDAgLi4uey4uLi5yZWZkZXM9UjEyLi4ufSwJJzEyJwkgLAkn
NCddCgkJCgkJY29udGVudCA9IGNvbnRlbnQucmVwbGFjZShpW34yXSxpW34yXS5yZXBsYWNlKCdy
ZWZkZXM9JytpWzBdK2lbfjFdLCdyZWZkZXM9JytpWzBdK2lbfjBdKSkgI1JlcGxhY2luZyBjdXJy
ZW50IHN0cmluZyB3aXRoIE5ldyBSRUZERVMKCQlpZiBsb2cgYW5kIHZlcmJvc2U6CgkJCXByaW50
ICdSZXBsYWNpbmcgaW4gc2NoIDogJywgaVswXStpW34xXSwgJyA9PiAnLCBpWzBdK2lbfjBdCgkJ
CXByaW50ICc8PDwgJywgaVt+Ml0KCQkJcHJpbnQgJz4+PiAnLCBpW34yXS5yZXBsYWNlKCdyZWZk
ZXM9JytpWzBdK2lbfjFdLCdyZWZkZXM9JytpWzBdK2lbfjBdKQoJCQlwcmludCAnLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJwoKCQlmb3IgcGNiX2luZGV4IGluIHJhbmdlKDAs
bGVuKHBjYmNvbnRlbnQpKTogI1NlYXJjaCBjdXJyZW50IFJFRkRFUyBpbiBwY2IgZmlsZXMgYW5k
IEFERCBjb250ZXh0IG9mIFJFRkRFUyAoYXBwcm9wcmlhdGUgZWxlbWVudCBvbnRleCBjb21wbGV0
ZWx5KSB0byBsaXN0IG9mIHJlcGxhY2VzCgkJCWVsZW0gPSByZS5zZWFyY2goJ0VsZW1lbnRcW1te
W1xdXSoiJXMiW15bXF1dKlxdJyAlKGlbMF0raVt+MV0pLHBjYmNvbnRlbnRbcGNiX2luZGV4XSAs
ZmxhZ3M9cmUuRE9UQUxMKQoJCQlpZiBlbGVtOgoJCQkJdHJ5OgoJCQkJCXBjYl9yZXBsYWNlcy5h
cHBlbmQoW3BjYl9pbmRleCxlbGVtLmdyb3VwKCksZWxlbS5ncm91cCgpLnJlcGxhY2UoaVswXStp
W34xXSxpWzBdK2lbfjBdKV0pIAoJCQkJZXhjZXB0OnBjYl9yZXBsYWNlcyA9ICBbW3BjYl9pbmRl
eCxlbGVtLmdyb3VwKCksZWxlbS5ncm91cCgpLnJlcGxhY2UoaVswXStpW34xXSxpWzBdK2lbfjBd
KV1dICNDcmVhdGUgbmV3IHJlcGxhY2UgbGlzdAoJCQkJaWYgbG9nIGFuZCB2ZXJib3NlOgoJCQkJ
CXByaW50ICdSZXBsYWNpbmcgaW4gcGNiOiAnLCBpWzBdK2lbfjFdLCAnID0+ICcsIGlbMF0raVt+
MF0KCQkJCQlwcmludCAnPDw8ICcsIGVsZW0uZ3JvdXAoKQoJCQkJCXByaW50ICc+Pj4gJywgZWxl
bS5ncm91cCgpLnJlcGxhY2UoaVswXStpW34xXSxpWzBdK2lbfjBdKQoJCQkJCXByaW50ICctLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0nCgoJaWYgJ3BjYl9yZXBsYWNlcycgaW4g
dmFycygpOiAjSWYgUENCIHJlcGxhY2UgbGlzdCBhcmUgZXhpc3RzCgkJZm9yIGkgaW4gcGNiX3Jl
cGxhY2VzOgkjUmVwbGFjZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIGNvbnRleHRzLCBjb250YWlu
aW5nIHJlcGxhY2VkIFJFRkRFU3MKCQkJcGNiY29udGVudFtpWzBdXSA9IHBjYmNvbnRlbnRbaVsw
XV0ucmVwbGFjZShpWzFdLGlbMl0pCgojIFdyaXRlIGN1cnJlbnQgcmVwbGFjZWQgY29udGVudCAo
c2NoZW1hdGljKSB0byBjdXJyZW50IHNjaGVtYXRpYyBmaWxlCglmaWxlPW9wZW4oZmlsZW5hbWUr
U3VmZml4LCd3dCcpCglmaWxlLndyaXRlKGNvbnRlbnQpCglmaWxlLmNsb3NlKCkKCiNXcml0ZSBh
bGwgUENCIHJlcGxhY2VkIGNvbnRlbnRzIHRvIGNvcnJlc3BvbmluZyBQQ0IgZmlsZQpmb3IgaSBp
biByYW5nZSgwLGxlbihwY2Jjb250ZW50KSk6CglmaWxlPW9wZW4ocGNibmFtZXNbaV0rU3VmZml4
LCd3dCcpCglmaWxlLndyaXRlKHBjYmNvbnRlbnRbaV0pCglmaWxlLmNsb3NlKCkKCiNQcmludCBs
b2cgbWVzc2FnZSB0byBzdGRvdXQgKHN1bW1hcnkgcmVwbGFjZWQpCmlmIGxvZzoKCXByaW50ICdT
dW1tYXJ5IHJlcGxhY2VkJwoJZm9yIGkgaW4gY29tcF9saXN0OgoJCXByaW50IGlbMF0raVt+MV0s
ICcgPT4gJywgaVswXStpW34wXQoJCQoK
--089e0111b6aa8559e104de90d337--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019