[Distutils] another build_scripts patch

Bastian Kleineidam calvin@cs.uni-sb.de
Wed, 24 May 2000 10:49:12 +0200 (CEST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--1619418364-364033880-959158152=:14230
Content-Type: TEXT/PLAIN; charset=US-ASCII

Next try with the build_scripts patch. Again the changes:

- build command additionally calls build_scripts

- build_scripts builds your scripts in 'build/scripts' and adjusts the
first line if it begins with "#!" and ends with "python", optionally
ending with commandline options (like -O, -t ...).
Adjusting means we write the current path to the Python interpreter
in the first line.

- install_misc class is commented out because its not needed any more

- install_scripts copies the scripts to the install_scripts dir

- install_data copies your data_files in install_data. You can
supply individual directories for your data_files:

data_files = ['doc/info.txt', # copy this file in install_scripts dir
  ('testdata', ['a.dat', 'b.dat']), # copy these files in
                                    # install_scripts/testdata
  ('/etc', ['packagerc']),    # copy this in /etc. When --root is
                              # given, copy this in rootdir/etc
]

So you can use the --root option with absolute data paths.


Bastian

--1619418364-364033880-959158152=:14230
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="build_scripts.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0005241049120.14230@earth.cs.uni-sb.de>
Content-Description: 
Content-Disposition: attachment; filename="build_scripts.diff"

ZGlmZiAtQnVyTiAtLW1pbmltYWwgLS1leGNsdWRlPSoucHljIGRpc3R1dGls
cy5vcmlnL2Rpc3R1dGlscy9jb21tYW5kL19faW5pdF9fLnB5IGRpc3R1dGls
cy5wYXRjaGVkL2Rpc3R1dGlscy9jb21tYW5kL19faW5pdF9fLnB5DQotLS0g
ZGlzdHV0aWxzLm9yaWcvZGlzdHV0aWxzL2NvbW1hbmQvX19pbml0X18ucHkJ
U2F0IE1heSAxMyAwMzo0ODoxNSAyMDAwDQorKysgZGlzdHV0aWxzLnBhdGNo
ZWQvZGlzdHV0aWxzL2NvbW1hbmQvX19pbml0X18ucHkJV2VkIE1heSAyNCAx
MDoxMTo1NCAyMDAwDQpAQCAtOSw2ICs5LDcgQEANCiAgICAgICAgICAgICdi
dWlsZF9weScsDQogICAgICAgICAgICAnYnVpbGRfZXh0JywNCiAgICAgICAg
ICAgICdidWlsZF9jbGliJywNCisgICAgICAgICAgICdidWlsZF9zY3JpcHRz
JywNCiAgICAgICAgICAgICdpbnN0YWxsJywNCiAgICAgICAgICAgICdpbnN0
YWxsX2xpYicsDQogICAgICAgICAgICAnaW5zdGFsbF9zY3JpcHRzJywNCmRp
ZmYgLUJ1ck4gLS1taW5pbWFsIC0tZXhjbHVkZT0qLnB5YyBkaXN0dXRpbHMu
b3JpZy9kaXN0dXRpbHMvY29tbWFuZC9idWlsZC5weSBkaXN0dXRpbHMucGF0
Y2hlZC9kaXN0dXRpbHMvY29tbWFuZC9idWlsZC5weQ0KLS0tIGRpc3R1dGls
cy5vcmlnL2Rpc3R1dGlscy9jb21tYW5kL2J1aWxkLnB5CUZyaSBNYXkgMTIg
MDI6MzM6MTQgMjAwMA0KKysrIGRpc3R1dGlscy5wYXRjaGVkL2Rpc3R1dGls
cy9jb21tYW5kL2J1aWxkLnB5CVdlZCBNYXkgMjQgMTA6MTE6MDkgMjAwMA0K
QEAgLTI0LDYgKzI0LDggQEANCiAgICAgICAgICgnYnVpbGQtbGliPScsIE5v
bmUsDQogICAgICAgICAgImJ1aWxkIGRpcmVjdG9yeSBmb3IgYWxsIGRpc3Ry
aWJ1dGlvbiAoZGVmYXVsdHMgdG8gZWl0aGVyICIgKw0KICAgICAgICAgICJi
dWlsZC1wdXJlbGliIG9yIGJ1aWxkLXBsYXRsaWIiKSwNCisgICAgICAgICgn
YnVpbGQtc2NyaXB0cz0nLCBOb25lLA0KKyAgICAgICAgICJidWlsZCBkaXJl
Y3RvcnkgZm9yIHNjcmlwdHMiKSwNCiAgICAgICAgICgnYnVpbGQtdGVtcD0n
LCAndCcsDQogICAgICAgICAgInRlbXBvcmFyeSBidWlsZCBkaXJlY3Rvcnki
KSwNCiAgICAgICAgICgnY29tcGlsZXI9JywgJ2MnLA0KQEAgLTQyLDYgKzQ0
LDcgQEANCiAgICAgICAgIHNlbGYuYnVpbGRfcGxhdGxpYiA9IE5vbmUNCiAg
ICAgICAgIHNlbGYuYnVpbGRfbGliID0gTm9uZQ0KICAgICAgICAgc2VsZi5i
dWlsZF90ZW1wID0gTm9uZQ0KKyAgICAgICAgc2VsZi5idWlsZF9zY3JpcHRz
ID0gTm9uZQ0KICAgICAgICAgc2VsZi5jb21waWxlciA9IE5vbmUNCiAgICAg
ICAgIHNlbGYuZGVidWcgPSBOb25lDQogICAgICAgICBzZWxmLmZvcmNlID0g
MA0KQEAgLTc2LDYgKzc5LDggQEANCiAgICAgICAgIGlmIHNlbGYuYnVpbGRf
dGVtcCBpcyBOb25lOg0KICAgICAgICAgICAgIHNlbGYuYnVpbGRfdGVtcCA9
IG9zLnBhdGguam9pbiAoc2VsZi5idWlsZF9iYXNlLA0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RlbXAuJyArIHNl
bGYucGxhdCkNCisgICAgICAgIGlmIHNlbGYuYnVpbGRfc2NyaXB0cyBpcyBO
b25lOg0KKyAgICAgICAgICAgIHNlbGYuYnVpbGRfc2NyaXB0cyA9IG9zLnBh
dGguam9pbiAoc2VsZi5idWlsZF9iYXNlLCAnc2NyaXB0cycpDQogICAgICMg
ZmluYWxpemVfb3B0aW9ucyAoKQ0KIA0KIA0KQEAgLTk5LDUgKzEwNCw4IEBA
DQogICAgICAgICAjIGludG8gdGhlIGJ1aWxkIHRyZWUNCiAgICAgICAgIGlm
IHNlbGYuZGlzdHJpYnV0aW9uLmhhc19leHRfbW9kdWxlcygpOg0KICAgICAg
ICAgICAgIHNlbGYucnVuX3BlZXIgKCdidWlsZF9leHQnKQ0KKw0KKyAgICAg
ICAgaWYgc2VsZi5kaXN0cmlidXRpb24uc2NyaXB0czoNCisgICAgICAgICAg
ICBzZWxmLnJ1bl9wZWVyICgnYnVpbGRfc2NyaXB0cycpDQogDQogIyBlbmQg
Y2xhc3MgQnVpbGQNCmRpZmYgLUJ1ck4gLS1taW5pbWFsIC0tZXhjbHVkZT0q
LnB5YyBkaXN0dXRpbHMub3JpZy9kaXN0dXRpbHMvY29tbWFuZC9idWlsZF9z
Y3JpcHRzLnB5IGRpc3R1dGlscy5wYXRjaGVkL2Rpc3R1dGlscy9jb21tYW5k
L2J1aWxkX3NjcmlwdHMucHkNCi0tLSBkaXN0dXRpbHMub3JpZy9kaXN0dXRp
bHMvY29tbWFuZC9idWlsZF9zY3JpcHRzLnB5CVRodSBKYW4gIDEgMDE6MDA6
MDAgMTk3MA0KKysrIGRpc3R1dGlscy5wYXRjaGVkL2Rpc3R1dGlscy9jb21t
YW5kL2J1aWxkX3NjcmlwdHMucHkJV2VkIE1heSAyNCAxMDoxMDowNiAyMDAw
DQpAQCAtMCwwICsxLDcxIEBADQorIiIiZGlzdHV0aWxzLmNvbW1hbmQuYnVp
bGRfc2NyaXB0cw0KKw0KK0ltcGxlbWVudHMgdGhlIERpc3R1dGlscyAnYnVp
bGRfc2NyaXB0cycgY29tbWFuZC4iIiINCisNCisjIGNyZWF0ZWQgMjAwMC8w
NS8yMywgQmFzdGlhbiBLbGVpbmVpZGFtDQorDQorX19yZXZpc2lvbl9fID0g
IiRJZCQiDQorDQoraW1wb3J0IHN5cyxvcyxyZQ0KK2Zyb20gZGlzdHV0aWxz
LmNvcmUgaW1wb3J0IENvbW1hbmQNCisNCisjIGNoZWNrIGlmIFB5dGhvbiBp
cyBjYWxsZWQgb24gdGhlIGZpcnN0IGxpbmUgd2l0aCB0aGlzIGV4cHJlc3Np
b24NCitmaXJzdF9saW5lX3JlID0gcmUuY29tcGlsZShyIl4jIS4rcHl0aG9u
KFxzLVx3KykqIikNCisNCitjbGFzcyBidWlsZF9zY3JpcHRzIChDb21tYW5k
KToNCisNCisgICAgZGVzY3JpcHRpb24gPSAiXCJidWlsZFwiIHNjcmlwdHMi
DQorDQorICAgIHVzZXJfb3B0aW9ucyA9IFsNCisgICAgICAgICgnYnVpbGQt
ZGlyPScsICdkJywgImRpcmVjdG9yeSB0byBcImJ1aWxkXCIgKGNvcHkpIHRv
IiksDQorICAgICAgICAoJ2ZvcmNlJywgJ2YnLCAiZm9yY2libHkgYnVpbGQg
ZXZlcnl0aGluZyAoaWdub3JlIGZpbGUgdGltZXN0YW1wcyIpLA0KKyAgICAg
ICAgXQ0KKw0KKw0KKyAgICBkZWYgaW5pdGlhbGl6ZV9vcHRpb25zIChzZWxm
KToNCisgICAgICAgIHNlbGYuYnVpbGRfZGlyID0gTm9uZQ0KKyAgICAgICAg
c2VsZi5zY3JpcHRzID0gTm9uZQ0KKyAgICAgICAgc2VsZi5mb3JjZSA9IE5v
bmUNCisgICAgICAgIHNlbGYub3V0ZmlsZXMgPSBOb25lDQorDQorICAgIGRl
ZiBmaW5hbGl6ZV9vcHRpb25zIChzZWxmKToNCisgICAgICAgIHNlbGYuc2V0
X3VuZGVmaW5lZF9vcHRpb25zICgnYnVpbGQnLA0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgnYnVpbGRfc2NyaXB0cycsICdidWls
ZF9kaXInKSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoJ2ZvcmNlJywgJ2ZvcmNlJykpDQorICAgICAgICBzZWxmLnNjcmlwdHMg
PSBzZWxmLmRpc3RyaWJ1dGlvbi5zY3JpcHRzDQorDQorDQorICAgIGRlZiBy
dW4gKHNlbGYpOg0KKyAgICAgICAgaWYgbm90IHNlbGYuc2NyaXB0czoNCisg
ICAgICAgICAgICByZXR1cm4NCisgICAgICAgIHNlbGYuX2NvcHlfZmlsZXMo
KQ0KKyAgICAgICAgc2VsZi5fYWRqdXN0X2ZpbGVzKCkNCisgICAgICAgIA0K
KyAgICBkZWYgX2NvcHlfZmlsZXMoc2VsZik6DQorICAgICAgICAiIiJDb3B5
IGFsbCB0aGUgc2NyaXB0cyB0byB0aGUgYnVpbGQgZGlyIiIiDQorICAgICAg
ICBzZWxmLm91dGZpbGVzID0gW10NCisgICAgICAgIHNlbGYubWtwYXRoKHNl
bGYuYnVpbGRfZGlyKQ0KKyAgICAgICAgZm9yIGYgaW4gc2VsZi5zY3JpcHRz
Og0KKyAgICAgICAgICAgIHByaW50IHNlbGYuYnVpbGRfZGlyDQorICAgICAg
ICAgICAgaWYgc2VsZi5jb3B5X2ZpbGUoZiwgc2VsZi5idWlsZF9kaXIpOg0K
KyAgICAgICAgICAgICAgICBzZWxmLm91dGZpbGVzLmFwcGVuZChvcy5wYXRo
LmpvaW4oc2VsZi5idWlsZF9kaXIsIGYpKQ0KKyAgICAgICAgICAgIA0KKyAg
ICBkZWYgX2FkanVzdF9maWxlcyhzZWxmKToNCisgICAgICAgICIiIklmIHRo
ZSBmaXJzdCBsaW5lIGJlZ2lucyB3aXRoICMhIGFuZCBlbmRzIHdpdGggcHl0
aG9uDQorCSAgIHJlcGxhY2UgaXQgd2l0aCB0aGUgY3VycmVudCBweXRob24g
aW50ZXJwcmV0ZXIiIiINCisgICAgICAgIGZvciBmIGluIHNlbGYub3V0Zmls
ZXM6DQorICAgICAgICAgICAgaWYgbm90IHNlbGYuZHJ5X3J1bjoNCisgICAg
ICAgICAgICAgICAgZGF0YSA9IG9wZW4oZiwgInIiKS5yZWFkbGluZXMoKQ0K
KyAgICAgICAgICAgICAgICBpZiBub3QgZGF0YToNCisgICAgICAgICAgICAg
ICAgICAgIHNlbGYud2FybigiJXMgaXMgYW4gZW1wdHkgZmlsZSEiICUgZikN
CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQorICAgICAgICAgICAg
ICAgIG1vID0gZmlyc3RfbGluZV9yZS5tYXRjaChkYXRhWzBdKQ0KKyAgICAg
ICAgICAgICAgICBpZiBtbzoNCisgICAgICAgICAgICAgICAgICAgIHNlbGYu
YW5ub3VuY2UoIkFkanVzdGluZyBmaXJzdCBsaW5lIG9mIGZpbGUgJXMiICUg
ZikNCisgICAgICAgICAgICAgICAgICAgIGRhdGFbMF0gPSAiIyEiK3N5cy5l
eGVjdXRhYmxlDQorICAgICAgICAgICAgICAgICAgICAjIGFkZCBvcHRpb25h
bCBjb21tYW5kIGxpbmUgb3B0aW9ucw0KKyAgICAgICAgICAgICAgICAgICAg
aWYgbW8uZ3JvdXAoMSk6DQorICAgICAgICAgICAgICAgICAgICAgICAgZGF0
YVswXSA9IGRhdGFbMF0gKyBtby5ncm91cCgxKQ0KKyAgICAgICAgICAgICAg
ICAgICAgZWxzZToNCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzBd
ID0gZGF0YVswXSArICJcbiINCisgICAgICAgICAgICAgICAgICAgIG9wZW4o
ZiwgInciKS53cml0ZWxpbmVzKGRhdGEpDQpkaWZmIC1CdXJOIC0tbWluaW1h
bCAtLWV4Y2x1ZGU9Ki5weWMgZGlzdHV0aWxzLm9yaWcvZGlzdHV0aWxzL2Nv
bW1hbmQvaW5zdGFsbF9kYXRhLnB5IGRpc3R1dGlscy5wYXRjaGVkL2Rpc3R1
dGlscy9jb21tYW5kL2luc3RhbGxfZGF0YS5weQ0KLS0tIGRpc3R1dGlscy5v
cmlnL2Rpc3R1dGlscy9jb21tYW5kL2luc3RhbGxfZGF0YS5weQlTYXQgTWF5
IDEzIDA1OjA5OjUwIDIwMDANCisrKyBkaXN0dXRpbHMucGF0Y2hlZC9kaXN0
dXRpbHMvY29tbWFuZC9pbnN0YWxsX2RhdGEucHkJV2VkIE1heSAyNCAxMDo0
MTo1MSAyMDAwDQpAQCAtNywxNyArNyw1MiBAQA0KIA0KIF9fcmV2aXNpb25f
XyA9ICIkSWQ6IGluc3RhbGxfZGF0YS5weSx2IDEuNSAyMDAwLzA1LzEzIDAz
OjA5OjUwIGdyZWcgRXhwICQiDQogDQotZnJvbSBkaXN0dXRpbHMuY21kIGlt
cG9ydCBpbnN0YWxsX21pc2MNCitpbXBvcnQgb3MNCitmcm9tIHR5cGVzIGlt
cG9ydCBTdHJpbmdUeXBlDQorZnJvbSBkaXN0dXRpbHMuY29yZSBpbXBvcnQg
Q29tbWFuZA0KIA0KLWNsYXNzIGluc3RhbGxfZGF0YSAoaW5zdGFsbF9taXNj
KToNCitjbGFzcyBpbnN0YWxsX2RhdGEgKENvbW1hbmQpOg0KIA0KICAgICBk
ZXNjcmlwdGlvbiA9ICJpbnN0YWxsIGRhdGEgZmlsZXMiDQogDQorICAgIHVz
ZXJfb3B0aW9ucyA9IFsNCisgICAgICAgICgnaW5zdGFsbC1kaXI9JywgJ2Qn
LA0KKyAgICAgICAgICJkaXJlY3RvcnkgdG8gaW5zdGFsbCB0aGUgZmlsZXMg
dG8iKSwNCisgICAgICAgICgncm9vdD0nLCBOb25lLA0KKyAgICAgICAgICJp
bnN0YWxsIGV2ZXJ5dGhpbmcgcmVsYXRpdmUgdG8gdGhpcyBhbHRlcm5hdGUg
cm9vdCBkaXJlY3RvcnkiKSwNCisgICAgICAgIF0NCisNCisgICAgZGVmIGlu
aXRpYWxpemVfb3B0aW9ucyAoc2VsZik6DQorICAgICAgICBzZWxmLmluc3Rh
bGxfZGlyID0gTm9uZQ0KKyAgICAgICAgc2VsZi5vdXRmaWxlcyA9IE5vbmUN
CisgICAgICAgIHNlbGYucm9vdCA9IE5vbmUNCisgICAgICAgIHNlbGYuZGF0
YV9maWxlcyA9IHNlbGYuZGlzdHJpYnV0aW9uLmRhdGFfZmlsZXMNCisNCiAg
ICAgZGVmIGZpbmFsaXplX29wdGlvbnMgKHNlbGYpOg0KLSAgICAgICAgc2Vs
Zi5faW5zdGFsbF9kaXJfZnJvbSgnaW5zdGFsbF9kYXRhJykNCisgICAgICAg
IHNlbGYuc2V0X3VuZGVmaW5lZF9vcHRpb25zKCdpbnN0YWxsJywNCisJICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCdpbnN0YWxsX2RhdGEnLCAnaW5z
dGFsbF9kaXInKSwNCisJCQkJICAgKCdyb290JywgJ3Jvb3QnKSwNCisJCQkJ
ICApDQogDQogICAgIGRlZiBydW4gKHNlbGYpOg0KLSAgICAgICAgc2VsZi5f
Y29weV9maWxlcyhzZWxmLmRpc3RyaWJ1dGlvbi5kYXRhX2ZpbGVzKQ0KKyAg
ICAgICAgc2VsZi5ta3BhdGgoc2VsZi5pbnN0YWxsX2RpcikNCisgICAgICAg
IGZvciBmIGluIHNlbGYuZGF0YV9maWxlczoNCisgICAgICAgICAgICBpZiB0
eXBlKGYpID09IFN0cmluZ1R5cGU6DQorICAgICAgICAgICAgICAgICMgaXRz
IGEgc2ltcGxlIGZpbGUsIHNvIGNvcHkgaXQNCisgICAgICAgICAgICAgICAg
c2VsZi5jb3B5X2ZpbGUoZiwgc2VsZi5pbnN0YWxsX2RpcikNCisgICAgICAg
ICAgICBlbHNlOg0KKyAgICAgICAgICAgICAgICAjIGl0cyBhIHR1cGxlIHdp
dGggcGF0aCB0byBpbnN0YWxsIHRvIGFuZCBhIGxpc3Qgb2YgZmlsZXMNCisg
ICAgICAgICAgICAgICAgZGlyID0gZlswXQ0KKyAgICAgICAgICAgICAgICBp
ZiBub3Qgb3MucGF0aC5pc2FicyhkaXIpOg0KKyAgICAgICAgICAgICAgICAg
ICAgZGlyID0gb3MucGF0aC5qb2luKHNlbGYuaW5zdGFsbF9kaXIsIGRpcikN
CisgICAgICAgICAgICAgICAgZWxpZiBzZWxmLnJvb3Q6DQorICAgICAgICAg
ICAgICAgICAgICBkaXIgPSBvcy5wYXRoLmpvaW4oc2VsZi5yb290LCBkaXJb
MTpdKQ0KKyAgICAgICAgICAgICAgICBzZWxmLm1rcGF0aChkaXIpDQorICAg
ICAgICAgICAgICAgIGZvciBkYXRhIGluIGZbMV06DQorICAgICAgICAgICAg
ICAgICAgICBzZWxmLmNvcHlfZmlsZShkYXRhLCBkaXIpDQogDQogICAgIGRl
ZiBnZXRfaW5wdXRzIChzZWxmKToNCi0gICAgICAgIHJldHVybiBzZWxmLmRp
c3RyaWJ1dGlvbi5kYXRhX2ZpbGVzIG9yIFtdDQorICAgICAgICByZXR1cm4g
c2VsZi5kYXRhX2ZpbGVzIG9yIFtdDQorDQorICAgIGRlZiBnZXRfb3V0cHV0
cyAoc2VsZik6DQorICAgICAgICByZXR1cm4gc2VsZi5vdXRmaWxlcw0KZGlm
ZiAtQnVyTiAtLW1pbmltYWwgLS1leGNsdWRlPSoucHljIGRpc3R1dGlscy5v
cmlnL2Rpc3R1dGlscy9jb21tYW5kL2luc3RhbGxfc2NyaXB0cy5weSBkaXN0
dXRpbHMucGF0Y2hlZC9kaXN0dXRpbHMvY29tbWFuZC9pbnN0YWxsX3Njcmlw
dHMucHkNCi0tLSBkaXN0dXRpbHMub3JpZy9kaXN0dXRpbHMvY29tbWFuZC9p
bnN0YWxsX3NjcmlwdHMucHkJU2F0IE1heSAxMyAwNTowNzo1MyAyMDAwDQor
KysgZGlzdHV0aWxzLnBhdGNoZWQvZGlzdHV0aWxzL2NvbW1hbmQvaW5zdGFs
bF9zY3JpcHRzLnB5CVdlZCBNYXkgMjQgMTA6MTA6NDggMjAwMA0KQEAgLTgs
MjMgKzgsMzkgQEANCiBfX3JldmlzaW9uX18gPSAiJElkOiBpbnN0YWxsX3Nj
cmlwdHMucHksdiAxLjQgMjAwMC8wNS8xMyAwMzowNzo1MyBncmVnIEV4cCAk
Ig0KIA0KIGltcG9ydCBvcw0KLWZyb20gZGlzdHV0aWxzLmNtZCBpbXBvcnQg
aW5zdGFsbF9taXNjDQorZnJvbSBkaXN0dXRpbHMuY29yZSBpbXBvcnQgQ29t
bWFuZA0KIGZyb20gc3RhdCBpbXBvcnQgU1RfTU9ERQ0KIA0KLWNsYXNzIGlu
c3RhbGxfc2NyaXB0cyhpbnN0YWxsX21pc2MpOg0KK2NsYXNzIGluc3RhbGxf
c2NyaXB0cyhDb21tYW5kKToNCiANCiAgICAgZGVzY3JpcHRpb24gPSAiaW5z
dGFsbCBzY3JpcHRzIg0KIA0KKyAgICB1c2VyX29wdGlvbnMgPSBbDQorICAg
ICAgICAoJ2luc3RhbGwtZGlyPScsICdkJywgImRpcmVjdG9yeSB0byBpbnN0
YWxsIHRvIiksDQorICAgICAgICAoJ2J1aWxkLWRpcj0nLCdiJywgImJ1aWxk
IGRpcmVjdG9yeSAod2hlcmUgdG8gaW5zdGFsbCBmcm9tKSIpLA0KKyAgICAg
ICAgKCdza2lwLWJ1aWxkJywgTm9uZSwgInNraXAgdGhlIGJ1aWxkIHN0ZXBz
IiksDQorICAgIF0NCisNCisgICAgZGVmIGluaXRpYWxpemVfb3B0aW9ucyAo
c2VsZik6DQorICAgICAgICBzZWxmLmluc3RhbGxfZGlyID0gTm9uZQ0KKyAg
ICAgICAgc2VsZi5idWlsZF9kaXIgPSBOb25lDQorICAgICAgICBzZWxmLnNr
aXBfYnVpbGQgPSBOb25lDQorDQogICAgIGRlZiBmaW5hbGl6ZV9vcHRpb25z
IChzZWxmKToNCi0gICAgICAgIHNlbGYuX2luc3RhbGxfZGlyX2Zyb20oJ2lu
c3RhbGxfc2NyaXB0cycpDQorICAgICAgICBzZWxmLnNldF91bmRlZmluZWRf
b3B0aW9ucygnYnVpbGQnLCAoJ2J1aWxkX3NjcmlwdHMnLCAnYnVpbGRfZGly
JykpDQorICAgICAgICBzZWxmLnNldF91bmRlZmluZWRfb3B0aW9ucyAoJ2lu
c3RhbGwnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgnaW5zdGFsbF9zY3JpcHRzJywgJ2luc3RhbGxfZGlyJyksDQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdza2lwX2J1aWxkJywg
J3NraXBfYnVpbGQnKSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICkNCiANCiAgICAgZGVmIHJ1biAoc2VsZik6DQotICAgICAgICBz
ZWxmLl9jb3B5X2ZpbGVzKHNlbGYuZGlzdHJpYnV0aW9uLnNjcmlwdHMpDQor
ICAgICAgICBpZiBub3Qgc2VsZi5za2lwX2J1aWxkOg0KKyAgICAgICAgICAg
IHNlbGYucnVuX3BlZXIoJ2J1aWxkX3NjcmlwdHMnKQ0KKyAgICAgICAgc2Vs
Zi5vdXRmaWxlcyA9IHNlbGYuY29weV90cmVlIChzZWxmLmJ1aWxkX2Rpciwg
c2VsZi5pbnN0YWxsX2RpcikNCiAgICAgICAgIGlmIG9zLm5hbWUgPT0gJ3Bv
c2l4JzoNCiAgICAgICAgICAgICAjIFNldCB0aGUgZXhlY3V0YWJsZSBiaXRz
IChvd25lciwgZ3JvdXAsIGFuZCB3b3JsZCkgb24NCiAgICAgICAgICAgICAj
IGFsbCB0aGUgc2NyaXB0cyB3ZSBqdXN0IGluc3RhbGxlZC4NCi0gICAgICAg
ICAgICBmaWxlcyA9IHNlbGYuZ2V0X291dHB1dHMoKQ0KLSAgICAgICAgICAg
IGZvciBmaWxlIGluIGZpbGVzOg0KKyAgICAgICAgICAgIGZvciBmaWxlIGlu
IHNlbGYuZ2V0X291dHB1dHMoKToNCiAgICAgICAgICAgICAgICAgaWYgc2Vs
Zi5kcnlfcnVuOg0KICAgICAgICAgICAgICAgICAgICAgc2VsZi5hbm5vdW5j
ZSgiY2hhbmdpbmcgbW9kZSBvZiAlcyIgJSBmaWxlKQ0KICAgICAgICAgICAg
ICAgICBlbHNlOg0KQEAgLTM0LDUgKzUwLDggQEANCiANCiAgICAgZGVmIGdl
dF9pbnB1dHMgKHNlbGYpOg0KICAgICAgICAgcmV0dXJuIHNlbGYuZGlzdHJp
YnV0aW9uLnNjcmlwdHMgb3IgW10NCisNCisgICAgZGVmIGdldF9vdXRwdXRz
KHNlbGYpOg0KKyAgICAgICAgcmV0dXJuIHNlbGYub3V0ZmlsZXMgb3IgW10N
CiANCiAjIGNsYXNzIGluc3RhbGxfc2NyaXB0cw0K
--1619418364-364033880-959158152=:14230--