1 |
bG9jYWwgZnVuY3Rpb24gbm9ybWFscmFuZG9tKCkKCWxvY2FsIHUxID0gbWF0aC5yYW5kb20oKQoJbG9jYWwgdTIgPSBtYXRoLnJhbmRvbSgpCglsb2NhbCB6ID0gbWF0aC5zcXJ0KC0yICogbWF0aC5sb2codTEpKSAqIG1hdGguY29zKDIgKiBtYXRoLnBpICogdTIpCglyZXR1cm4gegplbmQKCmxvY2FsIGZ1bmN0aW9uIGludmVydCh0YmwpCglsb2NhbCB0bXAgPSB7fQoJZm9yIGksaiBpbiBwYWlycyh0YmwpIGRvCgkJdG1wW2pdID0gaQoJZW5kCglyZXR1cm4gdG1wCmVuZAoKbG9jYWwgZnVuY3Rpb24gZmFjdG9yKHNpZ21hKQoJcmV0dXJuIG1hdGguZXhwKG5vcm1hbHJhbmRvbSgpKnNpZ21hKQplbmQKCmxvY2FsIGZ1bmN0aW9uIGludHZhbChvcmlnLCBzaWdtYSkKCXJldHVybiBtYXRoLm1heCgxLG1hdGguZmxvb3Iob3JpZypmYWN0b3Ioc2lnbWEpKzAuNSkpCmVuZAoKCmxvY2FsIHdtb2RjaGFuY2UgPSAxLjAKbG9jYWwgdW1vZGNoYW5jZSA9IDEuMApsb2NhbCBzZXZlcml0eSA9IDAuOApsb2NhbCB3YnJhdGUgPSAwLjE1CmxvY2FsIHVicmF0ZSA9IDAuMTUKbG9jYWwgcmVwdWxzZXIgPSAwLjMKCmxvY2FsIHdfZmxvYXRfa2V5cyA9IGludmVydCh7InJhbmdlIiwgIndlYXBvbnZlbG9jaXR5IiwgInJlbG9hZHRpbWUiLCAibXlncmF2aXR5IiwgInN0b2NrcGlsZXRpbWUiLCAidGFyZ2V0bW92ZWVycm9yIiwgImFjY3VyYWN5IiwgICJzcHJheWFuZ2xlIiwgImFyZWFvZmVmZmVjdCIsICJpbXB1bHNlZmFjdG9yIiwgImltcHVsc2Vib29zdCIsICJidXJzdHJhdGUiLCAiZHluZGFtYWdlbWluIiwgImR5bmRhbWFnZWV4cCIsICJiZWFtdGltZSIsICJzdGFydHZlbG9jaXR5IiwgIndlYXBvbmFjY2VsZXJhdGlvbiIsICJ0dXJucmF0ZSIsICJmbGlnaHR0aW1lIiwgIndvYmJsZSIsICJkYW5jZSIsICJ0cmFqZWN0b3J5aGVpZ2h0IiwgIndlYXBvbnRpbWVyIiwgInNoaWVsZHBvd2VyIiwgInNoaWVsZHBvd2VycmVnZW4iLCAic2hpZWxkcG93ZXJyZWdlbmVuZXJneSIsICJzaGllbGRyYWRpdXMifSkKCgp3X2Zsb2F0X2tleXNbImRhbWFnZSJdID0gaW52ZXJ0KHsiZGVmYXVsdCJ9KQp3X2Zsb2F0X2tleXNbImN1c3RvbXBhcmFtcyJdID0gaW52ZXJ0KHsic2hpZWxkX3JlY2hhcmdlX2RlbGF5In0pCgoKbG9jYWwgd19pbnRfa2V5cyA9IGludmVydCh7ImJ1cnN0IiwgInByb2plY3RpbGVzIiwgInBhcmFseXpldGltZSJ9KQoKbG9jYWwgd19ib29sX2tleXMgPSB7CglbIm5vc2VsZmRhbWFnZSJdID0gMiwKCVsid2F0ZXJ3ZWFwb24iXSA9IDEsCglbImZpcmVzdWJtZXJzZWQiXSA9IDEsCglbIndhdGVyYm91bmNlIl0gPSAxLAoJWyJncm91bmRib3VuY2UiXSA9IDEsCglbInBhcmFseXplciJdID0gMSwKCVsic3VibWlzc2lsZSJdID0gMSwKCVsic2hpZWxkcmVwdWxzZXIiXSA9IDEsCglbImV4dGVyaW9yc2hpZWxkIl0gPSAxLAoJWyJkeW5kYW1hZ2VpbnZlcnRlZCJdID0gMiwKCVsic3dlZXBmaXJlIl0gPSAxLAoJWyJjdXN0b21wYXJhbXMudW5saW5rZWQiXSA9IDIKfQoKCmxvY2FsIHVfZmxvYXRfa2V5cyA9IGludmVydCh7ImhlYWx0aCIsICJzcGVlZCIsICJhdXRvaGVhbCIsICJpZGxlYXV0b2hlYWwiLCAiaWRsZXRpbWUiLCAibWFzcyIsICJlbmVyZ3ltYWtlIiwgInNpZ2h0ZGlzdGFuY2UiLCAiYWlyc2lnaHRkaXN0YW5jZSIsICJyYWRhcmRpc3RhbmNlIiwgInNvbmFyZGlzdGFuY2UiLCAicmFkYXJkaXN0YW5jZWphbSIsICJjbG9ha2Nvc3Rtb3ZpbmciLCAibWluY2xvYWtkaXN0YW5jZSIsICJjbG9ha3RpbWVvdXQiLCAiYnVpbGRkaXN0YW5jZSIsICJ3b3JrZXJ0aW1lIiwgInJlcGFpcnNwZWVkIiwgIm1heHZlbG9jaXR5IiwgIm1heHJldmVyc2V2ZWxvY2l0eSIsICJhY2NlbGVyYXRpb24iLCAiYnJlYWtyYXRlIiwgIm15Z3Jhdml0eSIsICJ0dXJucmF0ZSIsICJjcnVpc2VhbHQifSkKdV9mbG9hdF9rZXlzWyJjdXN0b21wYXJhbXMiXSA9IGludmVydCh7IndpbmRnZW4ifSkKCgpsb2NhbCB1X2Jvb2xfa2V5cyA9IHsKCVsiaW5pdGNsb2FrZWQiXSA9IDIsCglbImRlY2xvYWtvbmZpcmUiXSA9IDIsCglbImNhbmNhcHR1cmUiXSA9IDEKfQoKZm9yIG5hbWUsIHVkIGluIHBhaXJzKFVuaXREZWZzKSBkbwoJaWYgbm90IHVkLmN1c3RvbXBhcmFtcyB0aGVuCgkJdWQuY3VzdG9tcGFyYW1zID0ge30KCWVuZAoJaWYgbm90IHVkLmN1c3RvbXBhcmFtcy5jaGFuZ2VzIHRoZW4KCQl1ZC5jdXN0b21wYXJhbXMuY2hhbmdlcyA9IHt9CgllbmQKCWlmIHVkLndlYXBvbmRlZnMgdGhlbgoJCWZvciB3biwgd2QgaW4gcGFpcnModWQud2VhcG9uZGVmcykgZG8KCQkJaWYgbm90IHdkLmN1c3RvbXBhcmFtcyB0aGVuIHdkLmN1c3RvbXBhcmFtcyA9IHt9IGVuZAoJCQlpZiBub3Qgd2QuY3VzdG9tcGFyYW1zLmNoYW5nZXMgdGhlbgoJCQkJd2QuY3VzdG9tcGFyYW1zLmNoYW5nZXMgPSB7fQoJCQllbmQKCQkJbG9jYWwgYWRkZWRCdXJzdCA9IGZhbHNlCgkJCWlmIG5vdCB3ZC5idXJzdCBhbmQgbWF0aC5yYW5kb20oKSA8IDAuMSB0aGVuCgkJCQl3ZC5idXJzdCA9IDIKCQkJCXdkLmJ1cnN0UmF0ZSA9IDAuMDIKCQkJCXdkLnNwcmF5QW5nbGUgPSB3ZC5hY2N1cmFjeQoJCQkJd2QuY3VzdG9tcGFyYW1zLmNoYW5nZXMuYnVyc3QgPSAiKzEiCgkJCWVuZAoJCQlmb3Iga2V5LCB2YWx1ZSBpbiBwYWlycyh3ZCkgZG8KCQkJCWlmIHdfZmxvYXRfa2V5c1trZXldIGFuZCBtYXRoLnJhbmRvbSgpIDwgd21vZGNoYW5jZSB0aGVuCgkJCQkJaWYgdHlwZSh3X2Zsb2F0X2tleXNba2V5XSkgPT0gInRhYmxlIiB0aGVuCgkJCQkJCWZvciBrLHYgaW4gcGFpcnModmFsdWUpIGRvCgkJCQkJCQlpZiB3X2Zsb2F0X2tleXNba2V5XVtrXSB0aGVuCgkJCQkJCQkJbG9jYWwgZiA9IGZhY3RvcihzZXZlcml0eSkKCQkJCQkJCQl3ZFtrZXldW2tdID0gdiAqIGYKCQkJCQkJCQl3ZC5jdXN0b21wYXJhbXMuY2hhbmdlc1trZXkuLiIuIi4ua10gPSBmCgkJCQkJCQllbmQKCQkJCQkJZW5kCgkJCQkJZWxzZQoJCQkJCQlsb2NhbCBmID0gZmFjdG9yKHNldmVyaXR5KQoJCQkJCQl3ZFtrZXldID0gdmFsdWUgKiBmCgkJCQkJCXdkLmN1c3RvbXBhcmFtcy5jaGFuZ2VzW2tleV0gPSBmCgkJCQkJZW5kCgkJCQllbHNlaWYgd19ib29sX2tleXNba2V5XSB0aGVuCgkJCQkJbG9jYWwgdD13X2Jvb2xfa2V5c1trZXldCgkJCQkJaWYgdD09MCBhbmQgdmFsdWUgPT0gdHJ1ZSBhbmQgbWF0aC5yYW5kb20oKTx3YnJhdGUgdGhlbgoJCQkJCQl3ZFtrZXldID0gZmFsc2UKCQkJCQllbHNlaWYgdD09MSBhbmQgdmFsdWUgPT0gZmFsc2UgYW5kIG1hdGgucmFuZG9tKCk8d2JyYXRlIHRoZW4KCQkJCQkJd2Rba2V5XSA9IHRydWUKCQkJCQllbHNlaWYgdD09MiBhbmQgbWF0aC5yYW5kb20oKTx3YnJhdGUgdGhlbgoJCQkJCQl3ZFtrZXldID0gbm90IHZhbHVlCgkJCQkJZW5kCgkJCQkJaWYga2V5ID09ICJzaGllbGRSZXB1bHNlciIgYW5kIHdkW2tleV0gdGhlbgoJCQkJCQl3ZC5zaGllbGQuZm9yY2UgPSAxLjUgKiBmYWN0b3IoKQoJCQkJCQl3ZC5zaGllbGQubWF4U3BlZWQgPSA4MDAgKiBmYWN0b3IoKQoJCQkJCQl3ZC5jdXN0b21wYXJhbXMuY2hhbmdlc1sic2hpZWxkUmVwdWxzZXIiXSA9IHdkLnNoaWVsZC5mb3JjZS4uInggKG1heCAiLi53ZC5zaGllbGQubWF4U3BlZWQuLiIpIgoJCQkJCWVuZAoJCQkJZWxzZWlmIHdfaW50X2tleXNba2V5XSBhbmQgbWF0aC5yYW5kb20oKSA8IHdtb2RjaGFuY2UgdGhlbgoJCQkJCXdkW2tleV0gPSBpbnR2YWwodmFsdWUsIHNldmVyaXR5KQoJCQkJCWlmICh3ZFtrZXldIH49IHZhbHVlKSB0aGVuCgkJCQkJCXdkLmN1c3RvbXBhcmFtcy5jaGFuZ2VzW2tleV0gPSAod2Rba2V5XT52YWx1ZSBhbmQgIisiIG9yICIiKS4uKHdkW2tleV0tdmFsdWUpCgkJCQkJCWlmIGtleT09ImJ1cnN0IiBhbmQgYWRkZWRCdXJzdCB0aGVuCgkJCQkJCQl3ZC5jdXN0b21wYXJhbXMuY2hhbmdlcy5idXJzdCA9ICIrIi4uKHdkW2tleV0tMSkKCQkJCQkJZW5kCgkJCQkJZW5kCgkJCQllbmQKCQkJZW5kCgkJCXVkLmN1c3RvbXBhcmFtcy5jaGFuZ2VzWyJ3ZWFwb25fIi4ud25dID0gd2QuY3VzdG9tcGFyYW1zLmNoYW5nZXMKCQllbmQKCWVuZAoJZm9yIGtleSwgdmFsdWUgaW4gcGFpcnModWQpIGRvCgkJaWYgdV9mbG9hdF9rZXlzW2tleV0gYW5kIG1hdGgucmFuZG9tKCkgPCB1bW9kY2hhbmNlIHRoZW4KCQkJaWYgdHlwZSh2YWx1ZSkgfj0gIm51bWJlciIgdGhlbgoJCQkJU3ByaW5nLkVjaG8oIm5hbiIuLmtleSkKCQkJZWxzZQoJCQkJbG9jYWwgZiA9IGZhY3RvcihzZXZlcml0eSkKCQkJCXVkW2tleV0gPSB2YWx1ZSAqIGYKCQkJCXVkLmN1c3RvbXBhcmFtcy5jaGFuZ2VzW2tleV0gPSBmCgkJCWVuZAoJCWVsc2VpZiB1X2Jvb2xfa2V5c1trZXldIHRoZW4KCQkJbG9jYWwgdD11X2Jvb2xfa2V5c1trZXldCgkJCWlmIHQ9PTAgYW5kIHZhbHVlID09IHRydWUgYW5kIG1hdGgucmFuZG9tKCk8dWJyYXRlIHRoZW4KCQkJCXVkW2tleV0gPSBmYWxzZQoJCQllbHNlaWYgdD09MSBhbmQgdmFsdWUgPT0gZmFsc2UgYW5kIG1hdGgucmFuZG9tKCk8dWJyYXRlIHRoZW4KCQkJCXVkW2tleV0gPSB0cnVlCgkJCWVsc2VpZiB0PT0yIGFuZCBtYXRoLnJhbmRvbSgpPHVicmF0ZSB0aGVuCgkJCQl1ZFtrZXldID0gbm90IHZhbHVlCgkJCWVuZAoJCWVuZAoJZW5kCglpZiB1ZC5jdXN0b21wYXJhbXMgYW5kIHVkLmN1c3RvbXBhcmFtcy5qdW1wX3JhbmdlIGFuZCBtYXRoLnJhbmRvbSgpIDwgdW1vZGNoYW5jZSB0aGVuCgkJbG9jYWwgZiA9IGZhY3RvcihzZXZlcml0eSkKCQl1ZC5jdXN0b21wYXJhbXMuanVtcF9yYW5nZSA9IHVkLmN1c3RvbXBhcmFtcy5qdW1wX3JhbmdlICogZgoJCXVkLmN1c3RvbXBhcmFtcy5jaGFuZ2VzLmp1bXBfcmFuZ2UgPSBmCgllbmQKZW5k
|
1 |
This
code
has
a
nicer
random
distribution,
affects
more
unit
properties
and
has
support
for
future
UI
integration.
However,
due
to
length
issues
the
morph
and
build
option
randomization
are
currently
not
included.
|
|
|
2 |
[spoiler]
|
|
|
3 |
{{{{bG9jYWwgZnVuY3Rpb24gbm9ybWFscmFuZG9tKCkKCWxvY2FsIHogPSBtYXRoLnNxcnQoLTIgKiBtYXRoLmxvZyhtYXRoLnJhbmRvbSgpKSkgKiBtYXRoLmNvcygyICogbWF0aC5waSAqIG1hdGgucmFuZG9tKCkpCglyZXR1cm4gegplbmQKCmxvY2FsIGZ1bmN0aW9uIGludmVydCh0YmwpCglsb2NhbCB0bXAgPSB7fQoJZm9yIGksaiBpbiBwYWlycyh0YmwpIGRvCgkJdG1wW2pdID0gaQoJZW5kCglyZXR1cm4gdG1wCmVuZAoKbG9jYWwgZnVuY3Rpb24gZmFjdG9yKHNpZ21hKQoJcmV0dXJuIG1hdGguZXhwKG5vcm1hbHJhbmRvbSgpKnNpZ21hKQplbmQKCmxvY2FsIGZ1bmN0aW9uIGludHZhbChvcmlnLCBzaWdtYSkKCXJldHVybiBtYXRoLm1heCgxLG1hdGguZmxvb3Iob3JpZypmYWN0b3Ioc2lnbWEpKzAuNSkpCmVuZAoKbG9jYWwgd21vZGNoYW5jZSA9IDEuMApsb2NhbCB1bW9kY2hhbmNlID0gMS4wCmxvY2FsIHNldmVyaXR5ID0gMC44CmxvY2FsIHdicmF0ZSA9IDAuMTUKbG9jYWwgdWJyYXRlID0gMC4xNQpsb2NhbCByZXB1bHNlciA9IDAuMwoKbG9jYWwgd19mbG9hdF9rZXlzID0gaW52ZXJ0KHsicmFuZ2UiLCAid2VhcG9udmVsb2NpdHkiLCAicmVsb2FkdGltZSIsICJteWdyYXZpdHkiLCAic3RvY2twaWxldGltZSIsICJ0YXJnZXRtb3ZlZXJyb3IiLCAiYWNjdXJhY3kiLCAgInNwcmF5YW5nbGUiLCAiYXJlYW9mZWZmZWN0IiwgImltcHVsc2VmYWN0b3IiLCAiaW1wdWxzZWJvb3N0IiwgImJ1cnN0cmF0ZSIsICJkeW5kYW1hZ2VtaW4iLCAiZHluZGFtYWdlZXhwIiwgImJlYW10aW1lIiwgInN0YXJ0dmVsb2NpdHkiLCAid2VhcG9uYWNjZWxlcmF0aW9uIiwgInR1cm5yYXRlIiwgImZsaWdodHRpbWUiLCAid29iYmxlIiwgImRhbmNlIiwgInRyYWplY3RvcnloZWlnaHQiLCAid2VhcG9udGltZXIiLCAic2hpZWxkcG93ZXIiLCAic2hpZWxkcG93ZXJyZWdlbiIsICJzaGllbGRwb3dlcnJlZ2VuZW5lcmd5IiwgInNoaWVsZHJhZGl1cyJ9KQoKd19mbG9hdF9rZXlzWyJkYW1hZ2UiXSA9IGludmVydCh7ImRlZmF1bHQifSkKd19mbG9hdF9rZXlzWyJjdXN0b21wYXJhbXMiXSA9IGludmVydCh7InNoaWVsZF9yZWNoYXJnZV9kZWxheSJ9KQoKbG9jYWwgd19pbnRfa2V5cyA9IGludmVydCh7ImJ1cnN0IiwgInByb2plY3RpbGVzIiwgInBhcmFseXpldGltZSJ9KQoKbG9jYWwgd19ib29sX2tleXMgPSB7CglbIm5vc2VsZmRhbWFnZSJdID0gMiwKCVsid2F0ZXJ3ZWFwb24iXSA9IDEsCglbImZpcmVzdWJtZXJzZWQiXSA9IDEsCglbIndhdGVyYm91bmNlIl0gPSAxLAoJWyJncm91bmRib3VuY2UiXSA9IDEsCglbInBhcmFseXplciJdID0gMSwKCVsic3VibWlzc2lsZSJdID0gMSwKCVsic2hpZWxkcmVwdWxzZXIiXSA9IDEsCglbImV4dGVyaW9yc2hpZWxkIl0gPSAxLAoJWyJkeW5kYW1hZ2VpbnZlcnRlZCJdID0gMiwKCVsic3dlZXBmaXJlIl0gPSAxLAoJWyJjdXN0b21wYXJhbXMudW5saW5rZWQiXSA9IDIsCglbImN1c3RvbXBhcmFtcy53aW5kZ2VuIl0gPSAxCn0KCmxvY2FsIHVfZmxvYXRfa2V5cyA9IGludmVydCh7ImhlYWx0aCIsICJzcGVlZCIsICJhdXRvaGVhbCIsICJpZGxlYXV0b2hlYWwiLCAiaWRsZXRpbWUiLCAibWFzcyIsICJlbmVyZ3ltYWtlIiwgInNpZ2h0ZGlzdGFuY2UiLCAiYWlyc2lnaHRkaXN0YW5jZSIsICJyYWRhcmRpc3RhbmNlIiwgInNvbmFyZGlzdGFuY2UiLCAicmFkYXJkaXN0YW5jZWphbSIsICJjbG9ha2Nvc3Rtb3ZpbmciLCAibWluY2xvYWtkaXN0YW5jZSIsICJjbG9ha3RpbWVvdXQiLCAiYnVpbGRkaXN0YW5jZSIsICJ3b3JrZXJ0aW1lIiwgInJlcGFpcnNwZWVkIiwgIm1heHZlbG9jaXR5IiwgIm1heHJldmVyc2V2ZWxvY2l0eSIsICJhY2NlbGVyYXRpb24iLCAiYnJlYWtyYXRlIiwgIm15Z3Jhdml0eSIsICJ0dXJucmF0ZSIsICJjcnVpc2VhbHQifSkKCmxvY2FsIHVfYm9vbF9rZXlzID0gewoJWyJpbml0Y2xvYWtlZCJdID0gMiwKCVsiZGVjbG9ha29uZmlyZSJdID0gMiwKCVsiY2FuY2FwdHVyZSJdID0gMQp9Cgpmb3IgbmFtZSwgdWQgaW4gcGFpcnMoVW5pdERlZnMpIGRvCglpZiBub3QgdWQuY3VzdG9tcGFyYW1zIHRoZW4KCQl1ZC5jdXN0b21wYXJhbXMgPSB7fQoJZW5kCgl1ZC5jdXN0b21wYXJhbXMuY2hhbmdlcyA9IHt9CglpZiB1ZC53ZWFwb25kZWZzIHRoZW4KCQlmb3Igd24sIHdkIGluIHBhaXJzKHVkLndlYXBvbmRlZnMpIGRvCgkJCWlmIG5vdCB3ZC5jdXN0b21wYXJhbXMgdGhlbiB3ZC5jdXN0b21wYXJhbXMgPSB7fSBlbmQKCQkJd2QuY3VzdG9tcGFyYW1zLmNoYW5nZXMgPSB7fQoJCQlsb2NhbCBhZGRlZEJ1cnN0ID0gZmFsc2UKCQkJaWYgbm90IHdkLmJ1cnN0IGFuZCBtYXRoLnJhbmRvbSgpIDwgMC4xIHRoZW4KCQkJCXdkLmJ1cnN0ID0gMgoJCQkJd2QuYnVyc3RSYXRlID0gMC4wMgoJCQkJd2Quc3ByYXlBbmdsZSA9IHdkLmFjY3VyYWN5CgkJCQl3ZC5jdXN0b21wYXJhbXMuY2hhbmdlcy5idXJzdCA9ICIrMSIKCQkJZW5kCgkJCWZvciBrZXksIHZhbHVlIGluIHBhaXJzKHdkKSBkbwoJCQkJaWYgd19mbG9hdF9rZXlzW2tleV0gYW5kIG1hdGgucmFuZG9tKCkgPCB3bW9kY2hhbmNlIHRoZW4KCQkJCQlpZiB0eXBlKHdfZmxvYXRfa2V5c1trZXldKSA9PSAidGFibGUiIHRoZW4KCQkJCQkJZm9yIGssdiBpbiBwYWlycyh2YWx1ZSkgZG8KCQkJCQkJCWlmIHdfZmxvYXRfa2V5c1trZXldW2tdIHRoZW4KCQkJCQkJCQlsb2NhbCBmID0gZmFjdG9yKHNldmVyaXR5KQoJCQkJCQkJCXdkW2tleV1ba10gPSB2ICogZgoJCQkJCQkJCXdkLmN1c3RvbXBhcmFtcy5jaGFuZ2VzW2tleS4uIi4iLi5rXSA9IGYKCQkJCQkJCWVuZAoJCQkJCQllbmQKCQkJCQllbHNlCgkJCQkJCWxvY2FsIGYgPSBmYWN0b3Ioc2V2ZXJpdHkpCgkJCQkJCXdkW2tleV0gPSB2YWx1ZSAqIGYKCQkJCQkJd2QuY3VzdG9tcGFyYW1zLmNoYW5nZXNba2V5XSA9IGYKCQkJCQllbmQKCQkJCWVsc2VpZiB3X2Jvb2xfa2V5c1trZXldIHRoZW4KCQkJCQlsb2NhbCB0PXdfYm9vbF9rZXlzW2tleV0KCQkJCQlpZiB0PT0wIGFuZCB2YWx1ZSA9PSB0cnVlIGFuZCBtYXRoLnJhbmRvbSgpPHdicmF0ZSB0aGVuCgkJCQkJCXdkW2tleV0gPSBmYWxzZQoJCQkJCWVsc2VpZiB0PT0xIGFuZCB2YWx1ZSA9PSBmYWxzZSBhbmQgbWF0aC5yYW5kb20oKTx3YnJhdGUgdGhlbgoJCQkJCQl3ZFtrZXldID0gdHJ1ZQoJCQkJCWVsc2VpZiB0PT0yIGFuZCBtYXRoLnJhbmRvbSgpPHdicmF0ZSB0aGVuCgkJCQkJCXdkW2tleV0gPSBub3QgdmFsdWUKCQkJCQllbmQKCQkJCQlpZiBrZXkgPT0gInNoaWVsZFJlcHVsc2VyIiBhbmQgd2Rba2V5XSB0aGVuCgkJCQkJCXdkLnNoaWVsZC5mb3JjZSA9IDEuNSAqIGZhY3RvcigpCgkJCQkJCXdkLnNoaWVsZC5tYXhTcGVlZCA9IDgwMCAqIGZhY3RvcigpCgkJCQkJCXdkLmN1c3RvbXBhcmFtcy5jaGFuZ2VzWyJzaGllbGRSZXB1bHNlciJdID0gd2Quc2hpZWxkLmZvcmNlLi4ieCAobWF4ICIuLndkLnNoaWVsZC5tYXhTcGVlZC4uIikiCgkJCQkJZW5kCgkJCQllbHNlaWYgd19pbnRfa2V5c1trZXldIGFuZCBtYXRoLnJhbmRvbSgpIDwgd21vZGNoYW5jZSB0aGVuCgkJCQkJd2Rba2V5XSA9IGludHZhbCh2YWx1ZSwgc2V2ZXJpdHkpCgkJCQkJaWYgKHdkW2tleV0gfj0gdmFsdWUpIHRoZW4KCQkJCQkJd2QuY3VzdG9tcGFyYW1zLmNoYW5nZXNba2V5XSA9ICh3ZFtrZXldPnZhbHVlIGFuZCAiKyIgb3IgIiIpLi4od2Rba2V5XS12YWx1ZSkKCQkJCQkJaWYga2V5PT0iYnVyc3QiIGFuZCBhZGRlZEJ1cnN0IHRoZW4KCQkJCQkJCXdkLmN1c3RvbXBhcmFtcy5jaGFuZ2VzLmJ1cnN0ID0gIisiLi4od2Rba2V5XS0xKQoJCQkJCQllbmQKCQkJCQllbmQKCQkJCWVuZAoJCQllbmQKCQkJdWQuY3VzdG9tcGFyYW1zLmNoYW5nZXNbIndlYXBvbl8iLi53bl0gPSB3ZC5jdXN0b21wYXJhbXMuY2hhbmdlcwoJCWVuZAoJZW5kCglmb3Iga2V5LCB2YWx1ZSBpbiBwYWlycyh1ZCkgZG8KCQlpZiB1X2Zsb2F0X2tleXNba2V5XSBhbmQgbWF0aC5yYW5kb20oKSA8IHVtb2RjaGFuY2UgdGhlbgoJCQlsb2NhbCBmID0gZmFjdG9yKHNldmVyaXR5KQoJCQl1ZFtrZXldID0gdmFsdWUgKiBmCgkJCXVkLmN1c3RvbXBhcmFtcy5jaGFuZ2VzW2tleV0gPSBmCgkJZWxzZWlmIHVfYm9vbF9rZXlzW2tleV0gdGhlbgoJCQlsb2NhbCB0PXVfYm9vbF9rZXlzW2tleV0KCQkJaWYgdD09MCBhbmQgdmFsdWUgPT0gdHJ1ZSBhbmQgbWF0aC5yYW5kb20oKTx1YnJhdGUgdGhlbgoJCQkJdWRba2V5XSA9IGZhbHNlCgkJCWVsc2VpZiB0PT0xIGFuZCB2YWx1ZSA9PSBmYWxzZSBhbmQgbWF0aC5yYW5kb20oKTx1YnJhdGUgdGhlbgoJCQkJdWRba2V5XSA9IHRydWUKCQkJZWxzZWlmIHQ9PTIgYW5kIG1hdGgucmFuZG9tKCk8dWJyYXRlIHRoZW4KCQkJCXVkW2tleV0gPSBub3QgdmFsdWUKCQkJZW5kCgkJZW5kCgllbmQKCWlmIHVkLmN1c3RvbXBhcmFtcyBhbmQgdWQuY3VzdG9tcGFyYW1zLmp1bXBfcmFuZ2UgYW5kIG1hdGgucmFuZG9tKCkgPCB1bW9kY2hhbmNlIHRoZW4KCQlsb2NhbCBmID0gZmFjdG9yKHNldmVyaXR5KQoJCXVkLmN1c3RvbXBhcmFtcy5qdW1wX3JhbmdlID0gdWQuY3VzdG9tcGFyYW1zLmp1bXBfcmFuZ2UgKiBmCgkJdWQuY3VzdG9tcGFyYW1zLmNoYW5nZXMuanVtcF9yYW5nZSA9IGYKCWVuZAplbmQ=}}}
|
|
|
4 |
[/spoiler]
|
|
|
5 |
The version above modifies all stats by varying amounts; the version below is set to randomly affect one in ten stats.
|
|
|
6 |
[spoiler]
|
|
|
7 |
{{{bG9jYWwgZnVuY3Rpb24gbm9ybWFscmFuZG9tKCkKCWxvY2FsIHogPSBtYXRoLnNxcnQoLTIgKiBtYXRoLmxvZyhtYXRoLnJhbmRvbSgpKSkgKiBtYXRoLmNvcygyICogbWF0aC5waSAqIG1hdGgucmFuZG9tKCkpCglyZXR1cm4gegplbmQKCmxvY2FsIGZ1bmN0aW9uIGludmVydCh0YmwpCglsb2NhbCB0bXAgPSB7fQoJZm9yIGksaiBpbiBwYWlycyh0YmwpIGRvCgkJdG1wW2pdID0gaQoJZW5kCglyZXR1cm4gdG1wCmVuZAoKbG9jYWwgZnVuY3Rpb24gZmFjdG9yKHNpZ21hKQoJcmV0dXJuIG1hdGguZXhwKG5vcm1hbHJhbmRvbSgpKnNpZ21hKQplbmQKCmxvY2FsIGZ1bmN0aW9uIGludHZhbChvcmlnLCBzaWdtYSkKCXJldHVybiBtYXRoLm1heCgxLG1hdGguZmxvb3Iob3JpZypmYWN0b3Ioc2lnbWEpKzAuNSkpCmVuZAoKbG9jYWwgd21vZGNoYW5jZSA9IDAuMQpsb2NhbCB1bW9kY2hhbmNlID0gMC4xCmxvY2FsIHNldmVyaXR5ID0gMC44CmxvY2FsIHdicmF0ZSA9IDAuMTUKbG9jYWwgdWJyYXRlID0gMC4xNQpsb2NhbCByZXB1bHNlciA9IDAuMwoKbG9jYWwgd19mbG9hdF9rZXlzID0gaW52ZXJ0KHsicmFuZ2UiLCAid2VhcG9udmVsb2NpdHkiLCAicmVsb2FkdGltZSIsICJteWdyYXZpdHkiLCAic3RvY2twaWxldGltZSIsICJ0YXJnZXRtb3ZlZXJyb3IiLCAiYWNjdXJhY3kiLCAgInNwcmF5YW5nbGUiLCAiYXJlYW9mZWZmZWN0IiwgImltcHVsc2VmYWN0b3IiLCAiaW1wdWxzZWJvb3N0IiwgImJ1cnN0cmF0ZSIsICJkeW5kYW1hZ2VtaW4iLCAiZHluZGFtYWdlZXhwIiwgImJlYW10aW1lIiwgInN0YXJ0dmVsb2NpdHkiLCAid2VhcG9uYWNjZWxlcmF0aW9uIiwgInR1cm5yYXRlIiwgImZsaWdodHRpbWUiLCAid29iYmxlIiwgImRhbmNlIiwgInRyYWplY3RvcnloZWlnaHQiLCAid2VhcG9udGltZXIiLCAic2hpZWxkcG93ZXIiLCAic2hpZWxkcG93ZXJyZWdlbiIsICJzaGllbGRwb3dlcnJlZ2VuZW5lcmd5IiwgInNoaWVsZHJhZGl1cyJ9KQoKd19mbG9hdF9rZXlzWyJkYW1hZ2UiXSA9IGludmVydCh7ImRlZmF1bHQifSkKd19mbG9hdF9rZXlzWyJjdXN0b21wYXJhbXMiXSA9IGludmVydCh7InNoaWVsZF9yZWNoYXJnZV9kZWxheSJ9KQoKbG9jYWwgd19pbnRfa2V5cyA9IGludmVydCh7ImJ1cnN0IiwgInByb2plY3RpbGVzIiwgInBhcmFseXpldGltZSJ9KQoKbG9jYWwgd19ib29sX2tleXMgPSB7CglbIm5vc2VsZmRhbWFnZSJdID0gMiwKCVsid2F0ZXJ3ZWFwb24iXSA9IDEsCglbImZpcmVzdWJtZXJzZWQiXSA9IDEsCglbIndhdGVyYm91bmNlIl0gPSAxLAoJWyJncm91bmRib3VuY2UiXSA9IDEsCglbInBhcmFseXplciJdID0gMSwKCVsic3VibWlzc2lsZSJdID0gMSwKCVsic2hpZWxkcmVwdWxzZXIiXSA9IDEsCglbImV4dGVyaW9yc2hpZWxkIl0gPSAxLAoJWyJkeW5kYW1hZ2VpbnZlcnRlZCJdID0gMiwKCVsic3dlZXBmaXJlIl0gPSAxLAoJWyJjdXN0b21wYXJhbXMudW5saW5rZWQiXSA9IDIsCglbImN1c3RvbXBhcmFtcy53aW5kZ2VuIl0gPSAxCn0KCmxvY2FsIHVfZmxvYXRfa2V5cyA9IGludmVydCh7ImhlYWx0aCIsICJzcGVlZCIsICJhdXRvaGVhbCIsICJpZGxlYXV0b2hlYWwiLCAiaWRsZXRpbWUiLCAibWFzcyIsICJlbmVyZ3ltYWtlIiwgInNpZ2h0ZGlzdGFuY2UiLCAiYWlyc2lnaHRkaXN0YW5jZSIsICJyYWRhcmRpc3RhbmNlIiwgInNvbmFyZGlzdGFuY2UiLCAicmFkYXJkaXN0YW5jZWphbSIsICJjbG9ha2Nvc3Rtb3ZpbmciLCAibWluY2xvYWtkaXN0YW5jZSIsICJjbG9ha3RpbWVvdXQiLCAiYnVpbGRkaXN0YW5jZSIsICJ3b3JrZXJ0aW1lIiwgInJlcGFpcnNwZWVkIiwgIm1heHZlbG9jaXR5IiwgIm1heHJldmVyc2V2ZWxvY2l0eSIsICJhY2NlbGVyYXRpb24iLCAiYnJlYWtyYXRlIiwgIm15Z3Jhdml0eSIsICJ0dXJucmF0ZSIsICJjcnVpc2VhbHQifSkKCmxvY2FsIHVfYm9vbF9rZXlzID0gewoJWyJpbml0Y2xvYWtlZCJdID0gMiwKCVsiZGVjbG9ha29uZmlyZSJdID0gMiwKCVsiY2FuY2FwdHVyZSJdID0gMQp9Cgpmb3IgbmFtZSwgdWQgaW4gcGFpcnMoVW5pdERlZnMpIGRvCglpZiBub3QgdWQuY3VzdG9tcGFyYW1zIHRoZW4KCQl1ZC5jdXN0b21wYXJhbXMgPSB7fQoJZW5kCgl1ZC5jdXN0b21wYXJhbXMuY2hhbmdlcyA9IHt9CglpZiB1ZC53ZWFwb25kZWZzIHRoZW4KCQlmb3Igd24sIHdkIGluIHBhaXJzKHVkLndlYXBvbmRlZnMpIGRvCgkJCWlmIG5vdCB3ZC5jdXN0b21wYXJhbXMgdGhlbiB3ZC5jdXN0b21wYXJhbXMgPSB7fSBlbmQKCQkJd2QuY3VzdG9tcGFyYW1zLmNoYW5nZXMgPSB7fQoJCQlsb2NhbCBhZGRlZEJ1cnN0ID0gZmFsc2UKCQkJaWYgbm90IHdkLmJ1cnN0IGFuZCBtYXRoLnJhbmRvbSgpIDwgMC4xIHRoZW4KCQkJCXdkLmJ1cnN0ID0gMgoJCQkJd2QuYnVyc3RSYXRlID0gMC4wMgoJCQkJd2Quc3ByYXlBbmdsZSA9IHdkLmFjY3VyYWN5CgkJCQl3ZC5jdXN0b21wYXJhbXMuY2hhbmdlcy5idXJzdCA9ICIrMSIKCQkJZW5kCgkJCWZvciBrZXksIHZhbHVlIGluIHBhaXJzKHdkKSBkbwoJCQkJaWYgd19mbG9hdF9rZXlzW2tleV0gYW5kIG1hdGgucmFuZG9tKCkgPCB3bW9kY2hhbmNlIHRoZW4KCQkJCQlpZiB0eXBlKHdfZmxvYXRfa2V5c1trZXldKSA9PSAidGFibGUiIHRoZW4KCQkJCQkJZm9yIGssdiBpbiBwYWlycyh2YWx1ZSkgZG8KCQkJCQkJCWlmIHdfZmxvYXRfa2V5c1trZXldW2tdIHRoZW4KCQkJCQkJCQlsb2NhbCBmID0gZmFjdG9yKHNldmVyaXR5KQoJCQkJCQkJCXdkW2tleV1ba10gPSB2ICogZgoJCQkJCQkJCXdkLmN1c3RvbXBhcmFtcy5jaGFuZ2VzW2tleS4uIi4iLi5rXSA9IGYKCQkJCQkJCWVuZAoJCQkJCQllbmQKCQkJCQllbHNlCgkJCQkJCWxvY2FsIGYgPSBmYWN0b3Ioc2V2ZXJpdHkpCgkJCQkJCXdkW2tleV0gPSB2YWx1ZSAqIGYKCQkJCQkJd2QuY3VzdG9tcGFyYW1zLmNoYW5nZXNba2V5XSA9IGYKCQkJCQllbmQKCQkJCWVsc2VpZiB3X2Jvb2xfa2V5c1trZXldIHRoZW4KCQkJCQlsb2NhbCB0PXdfYm9vbF9rZXlzW2tleV0KCQkJCQlpZiB0PT0wIGFuZCB2YWx1ZSA9PSB0cnVlIGFuZCBtYXRoLnJhbmRvbSgpPHdicmF0ZSB0aGVuCgkJCQkJCXdkW2tleV0gPSBmYWxzZQoJCQkJCWVsc2VpZiB0PT0xIGFuZCB2YWx1ZSA9PSBmYWxzZSBhbmQgbWF0aC5yYW5kb20oKTx3YnJhdGUgdGhlbgoJCQkJCQl3ZFtrZXldID0gdHJ1ZQoJCQkJCWVsc2VpZiB0PT0yIGFuZCBtYXRoLnJhbmRvbSgpPHdicmF0ZSB0aGVuCgkJCQkJCXdkW2tleV0gPSBub3QgdmFsdWUKCQkJCQllbmQKCQkJCQlpZiBrZXkgPT0gInNoaWVsZFJlcHVsc2VyIiBhbmQgd2Rba2V5XSB0aGVuCgkJCQkJCXdkLnNoaWVsZC5mb3JjZSA9IDEuNSAqIGZhY3RvcigpCgkJCQkJCXdkLnNoaWVsZC5tYXhTcGVlZCA9IDgwMCAqIGZhY3RvcigpCgkJCQkJCXdkLmN1c3RvbXBhcmFtcy5jaGFuZ2VzWyJzaGllbGRSZXB1bHNlciJdID0gd2Quc2hpZWxkLmZvcmNlLi4ieCAobWF4ICIuLndkLnNoaWVsZC5tYXhTcGVlZC4uIikiCgkJCQkJZW5kCgkJCQllbHNlaWYgd19pbnRfa2V5c1trZXldIGFuZCBtYXRoLnJhbmRvbSgpIDwgd21vZGNoYW5jZSB0aGVuCgkJCQkJd2Rba2V5XSA9IGludHZhbCh2YWx1ZSwgc2V2ZXJpdHkpCgkJCQkJaWYgKHdkW2tleV0gfj0gdmFsdWUpIHRoZW4KCQkJCQkJd2QuY3VzdG9tcGFyYW1zLmNoYW5nZXNba2V5XSA9ICh3ZFtrZXldPnZhbHVlIGFuZCAiKyIgb3IgIiIpLi4od2Rba2V5XS12YWx1ZSkKCQkJCQkJaWYga2V5PT0iYnVyc3QiIGFuZCBhZGRlZEJ1cnN0IHRoZW4KCQkJCQkJCXdkLmN1c3RvbXBhcmFtcy5jaGFuZ2VzLmJ1cnN0ID0gIisiLi4od2Rba2V5XS0xKQoJCQkJCQllbmQKCQkJCQllbmQKCQkJCWVuZAoJCQllbmQKCQkJdWQuY3VzdG9tcGFyYW1zLmNoYW5nZXNbIndlYXBvbl8iLi53bl0gPSB3ZC5jdXN0b21wYXJhbXMuY2hhbmdlcwoJCWVuZAoJZW5kCglmb3Iga2V5LCB2YWx1ZSBpbiBwYWlycyh1ZCkgZG8KCQlpZiB1X2Zsb2F0X2tleXNba2V5XSBhbmQgbWF0aC5yYW5kb20oKSA8IHVtb2RjaGFuY2UgdGhlbgoJCQlsb2NhbCBmID0gZmFjdG9yKHNldmVyaXR5KQoJCQl1ZFtrZXldID0gdmFsdWUgKiBmCgkJCWxvY2FsIGRpZ2l0cyA9IG1hdGgubG9nKHVkW2tleV0pLzIuMwoJCQlpZiAoZGlnaXRzID4gMykgdGhlbgoJCQkJdWRba2V5XSA9IG1hdGguZmxvb3IodWRba2V5XSswLjUpCgkJCWVsc2VpZiAoZGlnaXRzID4gMikgdGhlbgoJCQkJdWRba2V5XSA9IG1hdGguZmxvb3IodWRba2V5XSoxMCswLjUpLzEwCgkJCWVsc2VpZiAoZGlnaXRzID4gMSkgdGhlbgoJCQkJdWRba2V5XSA9IG1hdGguZmxvb3IodWRba2V5XSoxMDArMC41KS8xMDAKCQkJZW5kCgkJCXVkLmN1c3RvbXBhcmFtcy5jaGFuZ2VzW2tleV0gPSBmCgkJZWxzZWlmIHVfYm9vbF9rZXlzW2tleV0gdGhlbgoJCQlsb2NhbCB0PXVfYm9vbF9rZXlzW2tleV0KCQkJaWYgdD09MCBhbmQgdmFsdWUgPT0gdHJ1ZSBhbmQgbWF0aC5yYW5kb20oKTx1YnJhdGUgdGhlbgoJCQkJdWRba2V5XSA9IGZhbHNlCgkJCWVsc2VpZiB0PT0xIGFuZCB2YWx1ZSA9PSBmYWxzZSBhbmQgbWF0aC5yYW5kb20oKTx1YnJhdGUgdGhlbgoJCQkJdWRba2V5XSA9IHRydWUKCQkJZWxzZWlmIHQ9PTIgYW5kIG1hdGgucmFuZG9tKCk8dWJyYXRlIHRoZW4KCQkJCXVkW2tleV0gPSBub3QgdmFsdWUKCQkJZW5kCgkJZW5kCgllbmQKCWlmIHVkLmN1c3RvbXBhcmFtcyBhbmQgdWQuY3VzdG9tcGFyYW1zLmp1bXBfcmFuZ2UgYW5kIG1hdGgucmFuZG9tKCkgPCB1bW9kY2hhbmNlIHRoZW4KCQlsb2NhbCBmID0gZmFjdG9yKHNldmVyaXR5KQoJCXVkLmN1c3RvbXBhcmFtcy5qdW1wX3JhbmdlID0gdWQuY3VzdG9tcGFyYW1zLmp1bXBfcmFuZ2UgKiBmCgkJdWQuY3VzdG9tcGFyYW1zLmNoYW5nZXMuanVtcF9yYW5nZSA9IGYKCWVuZAplbmQ=}}}
|
|
|
8 |
[/spoiler]
|
|
|
9 |
\n
|
|
|
10 |
Both versions are tested with Zero-K and Future Wars.
|