SF.net SVN: docutils:[10356 ] trunk/docutils
milde--- via Docutils-checkins <[email protected]> Fri, 12 Jun 2026 21:49:56 +0000
| Newsgroups | gmane.text.docutils.cvs |
|---|---|
| Message-ID | <[email protected]> |
UmV2aXNpb246IDEwMzU2CiAgICAgICAgICBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvZG9jdXRp bHMvY29kZS8xMDM1NgpBdXRob3I6ICAgbWlsZGUKRGF0ZTogICAgIDIwMjYtMDYtMTIgMjE6NDk6 NTYgKzAwMDAgKEZyaSwgMTIgSnVuIDIwMjYpCkxvZyBNZXNzYWdlOgotLS0tLS0tLS0tLQpSZW1v dmUgYGlucHV0X2VuY29kaW5nYCBhdXRvLWRldGVjdGlvbiBjb2RlLgoKV2l0aCBVbmljb2RlIGFu ZCBVVEYtOCBub3cgYmVlaW5nIHVuaXZlcnNhbGx5IHN1cHBvcnRlZCwKd2Ugd2FudCB0byBrZWVw IGl0IHNpbXBsZS4KClVzZXJzIHN0aWxsIHJlbHlpbmcgb2YgaW5wdXQtZW5jb2RpbmcgYXV0by1k ZXRlY3Rpb24gYXJlIHJlZmVycmVkIHRvCnRoZSAiaW5zcGVjdGluZ19jb2RlY3MiIHBhY2thZ2Ug Zm9yIGEgcmVwbGFjZW1lbnQuCgpodHRwczovL2NvZGViZXJnLm9yZy9taWxkZS9pbnNwZWN0aW5n LWNvZGVjcwoKTW9kaWZpZWQgUGF0aHM6Ci0tLS0tLS0tLS0tLS0tCiAgICB0cnVuay9kb2N1dGls cy9ISVNUT1JZLnJzdAogICAgdHJ1bmsvZG9jdXRpbHMvUkVMRUFTRS1OT1RFUy5yc3QKICAgIHRy dW5rL2RvY3V0aWxzL2RvY3MvdXNlci9jb25maWcucnN0CiAgICB0cnVuay9kb2N1dGlscy9kb2N1 dGlscy9pby5weQogICAgdHJ1bmsvZG9jdXRpbHMvdGVzdC90ZXN0X2lvLnB5CiAgICB0cnVuay9k b2N1dGlscy90ZXN0L3Rlc3RfcHVibGlzaGVyLnB5CgpSZW1vdmVkIFBhdGhzOgotLS0tLS0tLS0t LS0tCiAgICB0cnVuay9kb2N1dGlscy90ZXN0L2RhdGEvbGF0aW4xLnJzdAogICAgdHJ1bmsvZG9j dXRpbHMvdGVzdC9kYXRhL2xhdGluMi5yc3QKICAgIHRydW5rL2RvY3V0aWxzL3Rlc3QvZGF0YS91 dGYtOC1zaWcucnN0CgpNb2RpZmllZDogdHJ1bmsvZG9jdXRpbHMvSElTVE9SWS5yc3QKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gdHJ1bmsvZG9jdXRpbHMvSElTVE9SWS5yc3QJMjAyNi0wNi0xMiAyMTo0OTo0NSBV VEMgKHJldiAxMDM1NSkKKysrIHRydW5rL2RvY3V0aWxzL0hJU1RPUlkucnN0CTIwMjYtMDYtMTIg MjE6NDk6NTYgVVRDIChyZXYgMTAzNTYpCkBAIC0zMCw2ICszMCwxMCBAQAogCiAqIGRvY3V0aWxz L2lvLnB5CiAKKyAgLSBSZW1vdmUgaW5wdXQtZW5jb2RpbmcgImF1dG8tZGV0ZWN0aW9uIjoKKyAg ICBgSW5wdXQuYnl0ZV9vcmRlcl9tYXJrc2AsIGBJbnB1dC5jb2Rpbmdfc2x1Z2AsCisgICAgYElu cHV0LnN1Y2Nlc3NmdWxfZW5jb2RpbmdgLCBhbmQKKyAgICBgSW5wdXQuZGV0ZXJtaW5lX2VuY29k aW5nX2Zyb21fZGF0YSgpYC4KICAgLSBSZW1vdmUgYEJpbmFyeUZpbGVPdXRwdXRgLiBVc2UgYEZp bGVPdXRwdXRgCiAgICAgKHdvcmtzIHdpdGggYGJ5dGVzYCBzaW5jZSBEb2N1dGlsc8KgMC4yMCku CiAKCk1vZGlmaWVkOiB0cnVuay9kb2N1dGlscy9SRUxFQVNFLU5PVEVTLnJzdAo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSB0cnVuay9kb2N1dGlscy9SRUxFQVNFLU5PVEVTLnJzdAkyMDI2LTA2LTEyIDIxOjQ5OjQ1 IFVUQyAocmV2IDEwMzU1KQorKysgdHJ1bmsvZG9jdXRpbHMvUkVMRUFTRS1OT1RFUy5yc3QJMjAy Ni0wNi0xMiAyMTo0OTo1NiBVVEMgKHJldiAxMDM1NikKQEAgLTE2Nyw4ICsxNjcsNiBAQAogKiBS ZW1vdmUgYG5vZGVzLnNldF9uYW1lX2lkX21hcCgpYCBpbiBEb2N1dGlsc8KgMi4wCiAgIChub3Qg dXNlZCBzaW5jZSBEb2N1dGlsc8KgMC4yMykuCiAKLSogUmVtb3ZlIHRoZSBpbnB1dF9lbmNvZGlu Z18gYXV0by1kZXRlY3Rpb24gY29kZSBpbiBEb2N1dGlsc8KgMS4wLgotCiAqIFJlbW92ZSB0aGUg IlRyYW5zZm9ybVNwZWMudW5rbm93bl9yZWZlcmVuY2VfcmVzb2x2ZXJzIiBob29rIGNoYWluCiAg IGluIERvY3V0aWxzwqAxLjAuICBVc2UgYSB0cmFuc2Zvcm1fLAogICBzZWUgYHRyYW5zZm9ybXMu cmVmZXJlbmNlcy5DaXRhdGlvblJlZmVyZW5jZXNgIGZvciBhbiBleGFtcGxlLgpAQCAtMjU4LDYg KzI1NiwxMCBAQAogRG9jdW1lbnQgVHJlZSAvIERvY3V0aWxzIERURDoKICAgLSBEcm9wIHRoZSBg bmFtZWAgYXR0cmlidXRlIGZyb20gPHJlZmVyZW5jZT4gbm9kZXMuCiAKK0NvbmZpZ3VyYXRpb24g Y2hhbmdlczoKKyAgLSBgQXV0by1kZXRlY3Rpb25gXyBvZiB0aGUgaW5wdXQgZW5jb2RpbmcgaXMg bm8gbG9uZ2VyIHN1cHBvcnRlZC4KKyAgICBUaGUgaW5wdXRfZW5jb2RpbmdfIHZhbHVlIGBgTm9u ZWBgIG5vdyBzdGFuZHMgZm9yICJ1dGYtOCIuCisKIENvbW1hbmQgbGluZSBpbnRlcmZhY2U6CiAg IC0gT3B0aW9uIGBgLW9gYCBzZXRzIHRoZSBgb3V0cHV0IGZpbGUgcGF0aCA8b3V0cHV0X3BhdGhf PmBfXwogICAgIChzaG9ydGN1dCBmb3IgYGAtLW91dHB1dGBgKS4KQEAgLTI3NCwxMSArMjc2LDIw IEBACiAgICAgICBVc2UgYGNvcmUucHVibGlzaF9jbWRsaW5lKClgICh3b3JrcyB3aXRoIGBieXRl c2Agc2luY2UgRG9jdXRpbHMgMC4yMCkuCiAgIGBpby5CaW5hcnlGaWxlT3V0cHV0YAogICAgICAg VXNlIGBpby5GaWxlT3V0cHV0YCAod29ya3Mgd2l0aCBgYnl0ZXNgIHNpbmNlIERvY3V0aWxzIDAu MjApLgorICBgaW8uSW5wdXQuYnl0ZV9vcmRlcl9tYXJrc2AKKyAgICAgIC4uCisgIGBpby5JbnB1 dC5jb2Rpbmdfc2x1Z2AKKyAgICAgIC4uCisgIGBpby5JbnB1dC5zdWNjZXNzZnVsX2VuY29kaW5n YAorICAgICAgLi4KKyAgYGlvLklucHV0LmRldGVybWluZV9lbmNvZGluZ19mcm9tX2RhdGEoKWAK KyAgICAgIE5vIGxvbmdlciByZXF1aXJlZCBhcyBlbmNvZGluZyBkZXRlY3Rpb24gaXMgZHJvcHBl ZC4KICAgYG5vZGVzLlRhcmdldGFibGUuaW5kaXJlY3RfcmVmZXJlbmNlX25hbWVgCiAgICAgICBJ bnRlcm5hbCBhdHRyaWJ1dGUgZm9yIHRoZSBQeXRob24tMi1vbmx5IE1vaW5Nb2luIDw9IDEuOS4K ICAgYHBhcnNlcnMucmVjb21tb25tYXJrX3dyYXBwZXJgCiAgICAgICBXcmFwcGVyIG1vZHVsZSBm b3IgdGhlIG5vIGxvbmdlciBtYWludGFpbmVkIDNyZCBwYXJ0eQogICAgICAgcmVjb21tb25tYXJr XyBwYXJzZXIuCisgICAgICBTZWUgdGhlIHBhcnNlcl8gc2V0dGluZyBkb2N1bWVudGF0aW9uIGZv ciBhbHRlcm5hdGl2ZXMuCiAgIGBwYXJzZXJzLnJzdC5kaXJlY3RpdmVzLkNTVlRhYmxlLkhlYWRl ckRpYWxlY3RgCiAgICAgICBkZXByZWNhdGVkIHNpbmNlIERvY3V0aWxzwqAwLjIwLgogICBgcGFy c2Vycy5yc3QuZGlyZWN0aXZlcy5sZW5ndGhfdW5pdHNgCkBAIC0xNjI5LDYgKzE2NDAsNyBAQAog Li4gX0xhVGVYIHN5bnRheCBmb3IgbWF0aGVtYXRpY3M6IGRvY3MvcmVmL3JzdC9tYXRoZW1hdGlj cy5odG1sCiAKIC4uIF9jb25maWd1cmF0aW9uIHNldHRpbmdzOiBkb2NzL3VzZXIvY29uZmlnLmh0 bWwKKy4uIF9hdXRvLWRldGVjdGlvbjogZG9jcy91c2VyL2NvbmZpZy5odG1sI2F1dG8tZGV0ZWN0 CiAuLiBfYXV0b19pZF9wcmVmaXg6IGRvY3MvdXNlci9jb25maWcuaHRtbCNhdXRvLWlkLXByZWZp eAogLi4gX2RhdGVzdGFtcDogZG9jcy91c2VyL2NvbmZpZy5odG1sI2RhdGVzdGFtcAogLi4gX2Vt YmVkX2ltYWdlczogZG9jcy91c2VyL2NvbmZpZy5odG1sI2VtYmVkLWltYWdlcwpAQCAtMTY0OSw2 ICsxNjYxLDcgQEAKICAgICBkb2NzL3VzZXIvY29uZmlnLmh0bWwjb2xkLWZvcm1hdC1jb25maWd1 cmF0aW9uLWZpbGVzCiAuLiBfb3V0cHV0OgogLi4gX291dHB1dF9wYXRoOiBkb2NzL3VzZXIvY29u ZmlnLmh0bWwjb3V0cHV0LXBhdGgKKy4uIF9wYXJzZXI6IGRvY3MvdXNlci9jb25maWcuaHRtbCNw YXJzZXIKIC4uIF9yZWZlcmVuY2VfbGFiZWw6IGRvY3MvdXNlci9jb25maWcuaHRtbCNyZWZlcmVu Y2UtbGFiZWwKIC4uIF9yb290X3ByZWZpeDogZG9jcy91c2VyL2NvbmZpZy5odG1sI3Jvb3QtcHJl Zml4CiAuLiBfc2VsZi1saW5rOiBkb2NzL3VzZXIvY29uZmlnLmh0bWwjc2VjdGlvbi1zZWxmLWxp bmsKCk1vZGlmaWVkOiB0cnVuay9kb2N1dGlscy9kb2NzL3VzZXIvY29uZmlnLnJzdAo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSB0cnVuay9kb2N1dGlscy9kb2NzL3VzZXIvY29uZmlnLnJzdAkyMDI2LTA2LTEyIDIx OjQ5OjQ1IFVUQyAocmV2IDEwMzU1KQorKysgdHJ1bmsvZG9jdXRpbHMvZG9jcy91c2VyL2NvbmZp Zy5yc3QJMjAyNi0wNi0xMiAyMTo0OTo1NiBVVEMgKHJldiAxMDM1NikKQEAgLTQyOSw3ICs0Mjks NyBAQAogCiBUaGUgdGV4dCBlbmNvZGluZyBbI2VuY29kaW5nc11fIGZvciBpbnB1dC4KIAotOkRl ZmF1bHQ6IHV0Zi04IChjaGFuZ2VkIGZyb20gTm9uZSAoYXV0by1kZXRlY3RfKSBpbiBEb2N1dGls c8KgMC4yMikuCis6RGVmYXVsdDogdXRmLTggKGNoYW5nZWQgZnJvbSAiYXV0by1kZXRlY3RfIiBp biBEb2N1dGlsc8KgMC4yMikuCiA6T3B0aW9uOiBgYC0taW5wdXQtZW5jb2RpbmdgYCAoc2hvcnRj dXQgYGAtaWBgIHJlbW92ZWQgaW4gRG9jdXRpbHPCoDAuMjIpLgogCiAKQEAgLTI1OTcsNDcgKzI1 OTcsMTMgQEAKIElucHV0IEVuY29kaW5nIEF1dG8tRGV0ZWN0aW9uCiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogCi1VcCB0byBEb2N1dGlscyAwLjIxLCB0aGUgaW5wdXRfZW5jb2Rpbmdf IGRlZmF1bHQgdmFsdWUgd2FzIGBgTm9uZWBgIGFuZAotdGhlIGFjdHVhbCBpbnB1dCBlbmNvZGlu ZyBkZXRlY3RlZCBmcm9tIGEgYFVuaWNvZGUgYnl0ZSBvcmRlciBtYXJrYCAoQk9NXykKLW9yIGFu IGBlbmNvZGluZyBkZWNsYXJhdGlvbmBfIGluIHRoZSBzb3VyY2UuCitVcCB0byBEb2N1dGlsc8Kg MC4yMywgKmlucHV0IGVuY29kaW5nIGF1dG8tZGV0ZWN0aW9uKiBjb3VsZCBiZSBzZWxlY3RlZAor d2l0aCBhbiBpbnB1dF9lbmNvZGluZ18gdmFsdWUgYGBOb25lYGAuIFRoZSBhY3R1YWwgaW5wdXQg ZW5jb2Rpbmcgd2FzCitkZXRlY3RlZCBmcm9tIGEgYFVuaWNvZGUgYnl0ZSBvcmRlciBtYXJrYCAo Qk9NKSBvciBhbiAiZW5jb2RpbmcKK2RlY2xhcmF0aW9uIiBpbiB0aGUgc291cmNlLiAgVGhpcyBm ZWF0dXJlIHdhcyByZW1vdmVkIGluIERvY3V0aWxzwqAxLjAuCitTZWUgdGhlIGBpbnNwZWN0aW5n X2NvZGVjc2BfIHBhY2thZ2UgZm9yIGEgcmVwbGFjZW1lbnQuCiAKLVRoZSBkZWZhdWx0IGlucHV0 IGVuY29kaW5nIGNoYW5nZWQgdG8gInV0Zi04IiBpbiBEb2N1dGlsc8KgMC4yMi4KLUN1cnJlbnRs eSwgYXV0by1kZXRlY3Rpb24gY2FuIGJlIHNlbGVjdGVkIHdpdGggYW4gaW5wdXRfZW5jb2Rpbmdf IHZhbHVlCi1gYE5vbmVgYCAocnNwLiBhbiBlbXB0eSBzdHJpbmcgaW4gYSBjb25maWd1cmF0aW9u IGZpbGUpLgotSG93ZXZlciwgKip0aGlzIGZlYXR1cmUqKiBpcyBkZXByZWNhdGVkIGFuZCAqKndp bGwgYmUgcmVtb3ZlZCoqIGluCi1Eb2N1dGlsc8KgMS4wLiAgU2VlIHRoZSBgaW5zcGVjdGluZ19j b2RlY3NgXyBwYWNrYWdlIGZvciBhIHJlcGxhY2VtZW50LgogCi1FbmNvZGluZyBEZWNsYXJhdGlv bgotfn5+fn5+fn5+fn5+fn5+fn5+fn4KLQotSW5wdXQgZW5jb2RpbmcgYXV0by1kZXRlY3Rpb24g c2NhbnMgdGhlIHNvdXJjZSBmb3IgYW4KLSplbmNvZGluZyBkZWNsYXJhdGlvbiogaW5zcGlyZWQg YnkgOlBFUDpgMjYzYDoKLQotQSBjb21tZW50IGxpa2UgOjoKLQotICAuLiB0ZXh0IGVuY29kaW5n OiA8ZW5jb2RpbmcgbmFtZT4KLQotb24gdGhlIGZpcnN0IG9yIHNlY29uZCBsaW5lIGRlZmluZXMg YDxlbmNvZGluZyBuYW1lPmAKLWFzIHRoZSBzb3VyY2UncyBpbnB1dCBlbmNvZGluZy4KLQotRXhh bXBsZXM6ICh1c2luZyBmb3JtYXRzIHJlY29nbml6ZWQgYnkgcG9wdWxhciBlZGl0b3JzKSA6Ogot Ci0gICAgLi4gLSotIG1vZGU6IHJzdCAtKi0KLSAgICAgICAtKi0gY29kaW5nOiBsYXRpbjEgLSot Ci0KLW9yOjoKLQotICAgIC4uIHZpbTogc2V0IGZpbGVlbmNvZGluZz1jcDczNyA6Ci0KLU1vcmUg cHJlY2lzZWx5LCB0aGUgZmlyc3QgYW5kIHNlY29uZCBsaW5lIGFyZSBzZWFyY2hlZCBmb3IgdGhl IGZvbGxvd2luZwotcmVndWxhciBleHByZXNzaW9uOjoKLQotICAgIGNvZGluZ1s6PV1ccyooWy1c dy5dKykKLQotVGhlIGZpcnN0IGdyb3VwIG9mIHRoaXMgZXhwcmVzc2lvbiBpcyB0aGVuIGludGVy cHJldGVkIGFzIGVuY29kaW5nIG5hbWUuCi1JZiB0aGUgZmlyc3QgbGluZSBtYXRjaGVzIHRoZSBz ZWNvbmQgbGluZSBpcyBpZ25vcmVkLgotCi0KIC4uIFJlZmVyZW5jZXMKIAogLi4gX0RvY3V0aWxz IERvY3VtZW50IFRyZWU6CkBAIC0yNzM2LDUgKzI3MDIsNCBAQAogLi4gX2NvZGVjczogaHR0cHM6 Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L2NvZGVjcy5odG1sCiAuLiBfc3RhbmRhcmQgZW5j b2RpbmdzOgogICAgIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS9jb2RlY3MuaHRt bCNzdGFuZGFyZC1lbmNvZGluZ3MKLS4uIF9CT006IGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMv bGlicmFyeS9jb2RlY3MuaHRtbCNjb2RlY3MuQk9NCiAuLiBfaW5zcGVjdGluZ19jb2RlY3M6IGh0 dHBzOi8vY29kZWJlcmcub3JnL21pbGRlL2luc3BlY3RpbmctY29kZWNzCgpNb2RpZmllZDogdHJ1 bmsvZG9jdXRpbHMvZG9jdXRpbHMvaW8ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdHJ1bmsvZG9jdXRpbHMv ZG9jdXRpbHMvaW8ucHkJMjAyNi0wNi0xMiAyMTo0OTo0NSBVVEMgKHJldiAxMDM1NSkKKysrIHRy dW5rL2RvY3V0aWxzL2RvY3V0aWxzL2lvLnB5CTIwMjYtMDYtMTIgMjE6NDk6NTYgVVRDIChyZXYg MTAzNTYpCkBAIC0xNCw3ICsxNCw2IEBACiBpbXBvcnQgY29kZWNzCiBpbXBvcnQgbG9jYWxlCiBp bXBvcnQgb3MKLWltcG9ydCByZQogaW1wb3J0IHN5cwogaW1wb3J0IHdhcm5pbmdzCiAKQEAgLTk1 LDcgKzk0LDcgQEAKICAgICAgICAgc2VsZiwKICAgICAgICAgc291cmNlOiBzdHIgfCBUZXh0SU8g fCBub2Rlcy5kb2N1bWVudCB8IE5vbmUgPSBOb25lLAogICAgICAgICBzb3VyY2VfcGF0aDogU3Ry UGF0aCB8IE5vbmUgPSBOb25lLAotICAgICAgICBlbmNvZGluZzogc3RyIHwgTGl0ZXJhbFsndW5p Y29kZSddIHwgTm9uZSA9ICd1dGYtOCcsCisgICAgICAgIGVuY29kaW5nOiBzdHIgfCBOb25lID0g J3V0Zi04JywKICAgICAgICAgZXJyb3JfaGFuZGxlcjogc3RyIHwgTm9uZSA9ICdzdHJpY3QnLAog ICAgICkgLT4gTm9uZToKICAgICAgICAgc2VsZi5lbmNvZGluZyA9IGVuY29kaW5nCkBAIC0xMTMs OSArMTEyLDYgQEAKICAgICAgICAgaWYgbm90IHNvdXJjZV9wYXRoOgogICAgICAgICAgICAgc2Vs Zi5zb3VyY2VfcGF0aCA9IHNlbGYuZGVmYXVsdF9zb3VyY2VfcGF0aAogCi0gICAgICAgIHNlbGYu c3VjY2Vzc2Z1bF9lbmNvZGluZyA9IE5vbmUKLSAgICAgICAgIiIiVGhlIGVuY29kaW5nIHRoYXQg c3VjY2Vzc2Z1bGx5IGRlY29kZWQgdGhlIHNvdXJjZSBkYXRhLiIiIgotCiAgICAgZGVmIF9fcmVw cl9fKHNlbGYpIC0+IHN0cjoKICAgICAgICAgcmV0dXJuICclczogc291cmNlPSVyLCBzb3VyY2Vf cGF0aD0lcicgJSAoc2VsZi5fX2NsYXNzX18sIHNlbGYuc291cmNlLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNvdXJjZV9wYXRoKQpAQCAt MTI5LDEwMiArMTI1LDExIEBACiAgICAgICAgIERlY29kZSBgZGF0YWAgaWYgcmVxdWlyZWQuCiAK ICAgICAgICAgUmV0dXJuIFVuaWNvZGUgYHN0cmAgaW5zdGFuY2VzIHVuY2hhbmdlZCAobm90aGlu ZyB0byBkZWNvZGUpLgotCi0gICAgICAgIElmIGBzZWxmLmVuY29kaW5nYCBpcyBOb25lLCBkZXRl cm1pbmUgZW5jb2RpbmcgZnJvbSBkYXRhCi0gICAgICAgIG9yIHRyeSBVVEYtOCBhbmQgdGhlIGxv Y2FsZSdzIHByZWZlcnJlZCBlbmNvZGluZy4KLSAgICAgICAgVGhlIGNsaWVudCBhcHBsaWNhdGlv biBzaG91bGQgY2FsbCBgYGxvY2FsZS5zZXRsb2NhbGUoKWBgIGF0IHRoZQotICAgICAgICBiZWdp bm5pbmcgb2YgcHJvY2Vzc2luZzo6Ci0KLSAgICAgICAgICAgIGxvY2FsZS5zZXRsb2NhbGUobG9j YWxlLkxDX0FMTCwgJycpCi0KLSAgICAgICAgUmFpc2UgVW5pY29kZUVycm9yIGlmIHVuc3VjY2Vz c2Z1bC4KLQotICAgICAgICBQcm92aXNpb25hbDogZW5jb2RpbmcgZGV0ZWN0aW9uIHdpbGwgYmUg cmVtb3ZlZCBpbiBEb2N1dGlscyAxLjAuCiAgICAgICAgICIiIgogICAgICAgICBpZiBpc2luc3Rh bmNlKGRhdGEsIHN0cik6CiAgICAgICAgICAgICByZXR1cm4gZGF0YSAgIyBub3RoaW5nIHRvIGRl Y29kZQotICAgICAgICBpZiBzZWxmLmVuY29kaW5nOgotICAgICAgICAgICAgIyBXZSBiZWxpZXZl IHRoZSB1c2VyL2FwcGxpY2F0aW9uIHdoZW4gdGhlIGVuY29kaW5nIGlzCi0gICAgICAgICAgICAj IGV4cGxpY2l0bHkgZ2l2ZW4uCi0gICAgICAgICAgICBhc3NlcnQgc2VsZi5lbmNvZGluZy5sb3dl cigpICE9ICd1bmljb2RlJywgKAotICAgICAgICAgICAgICAgICdpbnB1dCBlbmNvZGluZyBpcyAi dW5pY29kZSIgYnV0IGBkYXRhYCBpcyBubyBgc3RyYCBpbnN0YW5jZScpCi0gICAgICAgICAgICBl bmNvZGluZ19jYW5kaWRhdGVzID0gW3NlbGYuZW5jb2RpbmddCi0gICAgICAgIGVsc2U6Ci0gICAg ICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6Ci0gICAgICAgICAgICAgICAg d2FybmluZ3MuZmlsdGVyd2FybmluZ3MoJ2lnbm9yZScsIGNhdGVnb3J5PURlcHJlY2F0aW9uV2Fy bmluZykKLSAgICAgICAgICAgICAgICBkYXRhX2VuY29kaW5nID0gc2VsZi5kZXRlcm1pbmVfZW5j b2RpbmdfZnJvbV9kYXRhKGRhdGEpCi0gICAgICAgICAgICBpZiBkYXRhX2VuY29kaW5nOgotICAg ICAgICAgICAgICAgICMgYGRhdGFgIGRlY2xhcmVzIGl0cyBlbmNvZGluZyB3aXRoICAibWFnaWMg Y29tbWVudCIgb3IgQk9NLAotICAgICAgICAgICAgICAgIGVuY29kaW5nX2NhbmRpZGF0ZXMgPSBb ZGF0YV9lbmNvZGluZ10KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBBcHBs eSBoZXVyaXN0aWNzIGlmIHRoZSBlbmNvZGluZyBpcyBub3Qgc3BlY2lmaWVkLgotICAgICAgICAg ICAgICAgICMgU3RhcnQgd2l0aCBVVEYtOCwgYmVjYXVzZSB0aGF0IG9ubHkgbWF0Y2hlcwotICAg ICAgICAgICAgICAgICMgZGF0YSB0aGF0ICpJUyogVVRGLTg6Ci0gICAgICAgICAgICAgICAgZW5j b2RpbmdfY2FuZGlkYXRlcyA9IFsndXRmLTgnXQotICAgICAgICAgICAgICAgICMgSWYgVVRGLTgg ZmFpbHMsIGZhbGwgYmFjayB0byB0aGUgbG9jYWxlJ3MgcHJlZmVycmVkIGVuY29kaW5nOgotICAg ICAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bOjJdID49ICgzLCAxMSk6Ci0gICAgICAg ICAgICAgICAgICAgIGZhbGxiYWNrID0gbG9jYWxlLmdldGVuY29kaW5nKCkKLSAgICAgICAgICAg ICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBmYWxsYmFjayA9IGxvY2FsZS5nZXRwcmVm ZXJyZWRlbmNvZGluZyhkb19zZXRsb2NhbGU9RmFsc2UpCi0gICAgICAgICAgICAgICAgaWYgZmFs bGJhY2sgYW5kIGZhbGxiYWNrLmxvd2VyKCkgIT0gJ3V0Zi04JzoKLSAgICAgICAgICAgICAgICAg ICAgZW5jb2RpbmdfY2FuZGlkYXRlcy5hcHBlbmQoZmFsbGJhY2spCi0gICAgICAgIGlmIG5vdCBz ZWxmLmVuY29kaW5nIGFuZCBlbmNvZGluZ19jYW5kaWRhdGVzWzBdICE9ICd1dGYtOCc6Ci0gICAg ICAgICAgICB3YXJuaW5ncy53YXJuKCdJbnB1dCBlbmNvZGluZyBhdXRvLWRldGVjdGlvbiB3aWxs IGJlIHJlbW92ZWQgYW5kICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBlbmNvZGlu ZyB2YWx1ZXMgTm9uZSBhbmQgIiIgYmVjb21lIGludmFsaWQgJwotICAgICAgICAgICAgICAgICAg ICAgICAgICAnaW4gRG9jdXRpbHPCoDEuMC4nLCBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2 ZWw9MikKLSAgICAgICAgZm9yIGVuYyBpbiBlbmNvZGluZ19jYW5kaWRhdGVzOgotICAgICAgICAg ICAgdHJ5OgotICAgICAgICAgICAgICAgIGRlY29kZWQgPSBzdHIoZGF0YSwgZW5jLCBzZWxmLmVy cm9yX2hhbmRsZXIpCi0gICAgICAgICAgICAgICAgc2VsZi5zdWNjZXNzZnVsX2VuY29kaW5nID0g ZW5jCi0gICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZWQKLSAgICAgICAgICAgIGV4Y2VwdCAo VW5pY29kZUVycm9yLCBMb29rdXBFcnJvcikgYXMgZXJyOgotICAgICAgICAgICAgICAgICMga2Vl cCBleGNlcHRpb24gaW5zdGFuY2UgZm9yIHVzZSBvdXRzaWRlIG9mIHRoZSAiZm9yIiBsb29wLgot ICAgICAgICAgICAgICAgIGVycm9yID0gZXJyCi0gICAgICAgIHJhaXNlIFVuaWNvZGVFcnJvcigK LSAgICAgICAgICAgICdVbmFibGUgdG8gZGVjb2RlIGlucHV0IGRhdGEuICBUcmllZCB0aGUgZm9s bG93aW5nIGVuY29kaW5nczogJwotICAgICAgICAgICAgZid7IiwgIi5qb2luKHJlcHIoZW5jKSBm b3IgZW5jIGluIGVuY29kaW5nX2NhbmRpZGF0ZXMpfS5cbicKLSAgICAgICAgICAgIGYnKHtlcnJv cl9zdHJpbmcoZXJyb3IpfSknKQorICAgICAgICByZXR1cm4gc3RyKGRhdGEsIHNlbGYuZW5jb2Rp bmcgb3IgJ3V0Zi04Jywgc2VsZi5lcnJvcl9oYW5kbGVyKQogCi0gICAgY29kaW5nX3NsdWc6IENs YXNzVmFyW3JlLlBhdHRlcm5bYnl0ZXNdXSA9IHJlLmNvbXBpbGUoCi0gICAgICAgIGJyJ2NvZGlu Z1s6PV1ccyooWy1cdy5dKyknCi0gICAgKQotICAgICIiIkVuY29kaW5nIGRlY2xhcmF0aW9uIHBh dHRlcm4uIiIiCi0KLSAgICBieXRlX29yZGVyX21hcmtzOiBDbGFzc1Zhclt0dXBsZVt0dXBsZVti eXRlcywgc3RyXSwgLi4uXV0gPSAoCi0gICAgICAgIChjb2RlY3MuQk9NX1VURjMyX0JFLCAndXRm LTMyJyksCi0gICAgICAgIChjb2RlY3MuQk9NX1VURjMyX0xFLCAndXRmLTMyJyksCi0gICAgICAg IChjb2RlY3MuQk9NX1VURjgsICd1dGYtOC1zaWcnKSwKLSAgICAgICAgKGNvZGVjcy5CT01fVVRG MTZfQkUsICd1dGYtMTYnKSwKLSAgICAgICAgKGNvZGVjcy5CT01fVVRGMTZfTEUsICd1dGYtMTYn KSwKLSAgICApCi0gICAgIiIiU2VxdWVuY2Ugb2YgKHN0YXJ0X2J5dGVzLCBlbmNvZGluZykgdHVw bGVzIGZvciBlbmNvZGluZyBkZXRlY3Rpb24uCi0gICAgVGhlIGZpcnN0IGJ5dGVzIG9mIGlucHV0 IGRhdGEgYXJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgc3RhcnRfYnl0ZXMgc3RyaW5ncy4KLSAgICBB IG1hdGNoIGluZGljYXRlcyB0aGUgZ2l2ZW4gZW5jb2RpbmcuCi0KLSAgICBJbnRlcm5hbC4gV2ls bCBiZSByZW1vdmVkIGluIERvY3V0aWxzIDEuMC4KLSAgICAiIiIKLQotICAgIGRlZiBkZXRlcm1p bmVfZW5jb2RpbmdfZnJvbV9kYXRhKHNlbGYsIGRhdGE6IGJ5dGVzKSAtPiBzdHIgfCBOb25lOgot ICAgICAgICAiIiIKLSAgICAgICAgVHJ5IHRvIGRldGVybWluZSB0aGUgZW5jb2Rpbmcgb2YgYGRh dGFgIGJ5IGxvb2tpbmcgKmluKiBgZGF0YWAuCi0gICAgICAgIENoZWNrIGZvciBhIGJ5dGUgb3Jk ZXIgbWFyayAoQk9NKSBvciBhbiBlbmNvZGluZyBkZWNsYXJhdGlvbi4KLQotICAgICAgICBEZXBy ZWNhdGVkLiBXaWxsIGJlIHJlbW92ZWQgaW4gRG9jdXRpbHMgMS4wLgotICAgICAgICAiIiIKLSAg ICAgICAgd2FybmluZ3Mud2FybignZG9jdXRpbHMuaW8uSW5wdXQuZGV0ZXJtaW5lX2VuY29kaW5n X2Zyb21fZGF0YSgpICcKLSAgICAgICAgICAgICAgICAgICAgICAnd2lsbCBiZSByZW1vdmVkIGlu IERvY3V0aWxzwqAxLjAuJywKLSAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5p bmcsIHN0YWNrbGV2ZWw9MikKLSAgICAgICAgIyBjaGVjayBmb3IgYSBieXRlIG9yZGVyIG1hcms6 Ci0gICAgICAgIGZvciBzdGFydF9ieXRlcywgZW5jb2RpbmcgaW4gc2VsZi5ieXRlX29yZGVyX21h cmtzOgotICAgICAgICAgICAgaWYgZGF0YS5zdGFydHN3aXRoKHN0YXJ0X2J5dGVzKToKLSAgICAg ICAgICAgICAgICByZXR1cm4gZW5jb2RpbmcKLSAgICAgICAgIyBjaGVjayBmb3IgYW4gZW5jb2Rp bmcgZGVjbGFyYXRpb24gcGF0dGVybiBpbiBmaXJzdCAyIGxpbmVzIG9mIGZpbGU6Ci0gICAgICAg IGZvciBsaW5lIGluIGRhdGEuc3BsaXRsaW5lcygpWzoyXToKLSAgICAgICAgICAgIG1hdGNoID0g c2VsZi5jb2Rpbmdfc2x1Zy5zZWFyY2gobGluZSkKLSAgICAgICAgICAgIGlmIG1hdGNoOgotICAg ICAgICAgICAgICAgIHJldHVybiBtYXRjaC5ncm91cCgxKS5kZWNvZGUoJ2FzY2lpJykKLSAgICAg ICAgcmV0dXJuIE5vbmUKLQogICAgIGRlZiBpc2F0dHkoc2VsZikgLT4gYm9vbDoKICAgICAgICAg IiIiUmV0dXJuIFRydWUsIGlmIHRoZSBpbnB1dCBzb3VyY2UgaXMgY29ubmVjdGVkIHRvIGEgVFRZ IGRldmljZS4iIiIKICAgICAgICAgdHJ5OgoKRGVsZXRlZDogdHJ1bmsvZG9jdXRpbHMvdGVzdC9k YXRhL2xhdGluMS5yc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdHJ1bmsvZG9jdXRpbHMvdGVzdC9kYXRhL2xh dGluMS5yc3QJMjAyNi0wNi0xMiAyMTo0OTo0NSBVVEMgKHJldiAxMDM1NSkKKysrIHRydW5rL2Rv Y3V0aWxzL3Rlc3QvZGF0YS9sYXRpbjEucnN0CTIwMjYtMDYtMTIgMjE6NDk6NTYgVVRDIChyZXYg MTAzNTYpCkBAIC0xICswLDAgQEAKLUdyXHhGQ1x4REZlCgpEZWxldGVkOiB0cnVuay9kb2N1dGls cy90ZXN0L2RhdGEvbGF0aW4yLnJzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0cnVuay9kb2N1dGlscy90ZXN0 L2RhdGEvbGF0aW4yLnJzdAkyMDI2LTA2LTEyIDIxOjQ5OjQ1IFVUQyAocmV2IDEwMzU1KQorKysg dHJ1bmsvZG9jdXRpbHMvdGVzdC9kYXRhL2xhdGluMi5yc3QJMjAyNi0wNi0xMiAyMTo0OTo1NiBV VEMgKHJldiAxMDM1NikKQEAgLTEsMyArMCwwIEBACi0uLiAtKi0gZW5jb2Rpbmc6IGxhdGluMiAt Ki0KLQotXHhCOWtvZGEKCkRlbGV0ZWQ6IHRydW5rL2RvY3V0aWxzL3Rlc3QvZGF0YS91dGYtOC1z aWcucnN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIHRydW5rL2RvY3V0aWxzL3Rlc3QvZGF0YS91dGYtOC1zaWcu cnN0CTIwMjYtMDYtMTIgMjE6NDk6NDUgVVRDIChyZXYgMTAzNTUpCisrKyB0cnVuay9kb2N1dGls cy90ZXN0L2RhdGEvdXRmLTgtc2lnLnJzdAkyMDI2LTA2LTEyIDIxOjQ5OjU2IFVUQyAocmV2IDEw MzU2KQpAQCAtMSArMCwwIEBACi3vu79HcsO8w59lCgpNb2RpZmllZDogdHJ1bmsvZG9jdXRpbHMv dGVzdC90ZXN0X2lvLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRydW5rL2RvY3V0aWxzL3Rlc3QvdGVzdF9p by5weQkyMDI2LTA2LTEyIDIxOjQ5OjQ1IFVUQyAocmV2IDEwMzU1KQorKysgdHJ1bmsvZG9jdXRp bHMvdGVzdC90ZXN0X2lvLnB5CTIwMjYtMDYtMTIgMjE6NDk6NTYgVVRDIChyZXYgMTAzNTYpCkBA IC0xMTAsNTkgKzExMCwxMyBAQAogCiBjbGFzcyBJbnB1dFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNl KToKIAotICAgIGRlZiB0ZXN0X2JvbV9oYW5kbGluZyhzZWxmKToKLSAgICAgICAgIyBQcm92aXNp b25hbDoKLSAgICAgICAgIyBkZWZhdWx0IGlucHV0IGVuY29kaW5nIHdpbGwgY2hhbmdlIHRvIFVU Ri04IGluIERvY3V0aWxzIDAuMjIKLSAgICAgICAgc291cmNlID0gJ1x1ZmVmZmRhdGFcblx1ZmVm ZiBibGFoXG4nCi0gICAgICAgIGV4cGVjdGVkID0gJ2RhdGFcblx1ZmVmZiBibGFoXG4nICAjIG9u bHkgbGVhZGluZyBaV05CU1AgcmVtb3ZlZAotICAgICAgICBpbnB1dF8gPSBkdV9pby5TdHJpbmdJ bnB1dChzb3VyY2U9c291cmNlLmVuY29kZSgndXRmLTE2LWJlJyksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPU5vbmUpCi0gICAgICAgIHdpdGggc2VsZi5hc3Nl cnRXYXJuc1JlZ2V4KERlcHJlY2F0aW9uV2FybmluZywgJ2F1dG8tZGV0ZWN0aW9uJyk6Ci0gICAg ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCBpbnB1dF8ucmVhZCgpKQotICAgICAg ICBpbnB1dF8gPSBkdV9pby5TdHJpbmdJbnB1dChzb3VyY2U9c291cmNlLmVuY29kZSgndXRmLTE2 LWxlJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPU5vbmUp Ci0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJuc1JlZ2V4KERlcHJlY2F0aW9uV2FybmluZywg J2F1dG8tZGV0ZWN0aW9uJyk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVk LCBpbnB1dF8ucmVhZCgpKQotICAgICAgICBpbnB1dF8gPSBkdV9pby5TdHJpbmdJbnB1dChzb3Vy Y2U9c291cmNlLmVuY29kZSgndXRmLTgnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZW5jb2Rpbmc9Tm9uZSkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFdhcm5zUmVnZXgo RGVwcmVjYXRpb25XYXJuaW5nLCAnYXV0by1kZXRlY3Rpb24nKToKLSAgICAgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGlucHV0Xy5yZWFkKCkpCi0gICAgICAgICMgV2l0aCBgc3Ry YCBpbnB1dCBhbGwgWldOQlNQcyBhcmUgc3RpbGwgdGhlcmUuCi0gICAgICAgIGlucHV0XyA9IGR1 X2lvLlN0cmluZ0lucHV0KHNvdXJjZT1zb3VyY2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo c291cmNlLCBpbnB1dF8ucmVhZCgpKQotCi0gICAgZGVmIHRlc3RfZW5jb2RpbmdfZGVjbGFyYXRp b24oc2VsZik6Ci0gICAgICAgIGlucHV0XyA9IGR1X2lvLlN0cmluZ0lucHV0KHNvdXJjZT1iIiIi XAotLi4gLSotIGNvZGluZzogYXNjaWkgLSotCi1kYXRhCi1ibGFoCi0iIiIsIGVuY29kaW5nPU5v bmUpCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJuc1JlZ2V4KERlcHJlY2F0aW9uV2Fybmlu ZywgJ2F1dG8tZGV0ZWN0aW9uJyk6Ci0gICAgICAgICAgICBkYXRhID0gaW5wdXRfLnJlYWQoKSAg IyBub3FhOiBGODQxCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2FzY2lpJywgaW5wdXRfLnN1 Y2Nlc3NmdWxfZW5jb2RpbmcpCi0gICAgICAgIGlucHV0XyA9IGR1X2lvLlN0cmluZ0lucHV0KHNv dXJjZT1iIiIiXAotIyEgcHl0aG9uCi0jIC0qLSBjb2Rpbmc6IGFzY2lpIC0qLQotcHJpbnQoImhl bGxvIHdvcmxkIikKLSIiIiwgZW5jb2Rpbmc9Tm9uZSkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2Vy dFdhcm5zUmVnZXgoRGVwcmVjYXRpb25XYXJuaW5nLCAnYXV0by1kZXRlY3Rpb24nKToKLSAgICAg ICAgICAgIGRhdGEgPSBpbnB1dF8ucmVhZCgpICAjIG5vcWE6IEY4NDEKLSAgICAgICAgc2VsZi5h c3NlcnRFcXVhbCgnYXNjaWknLCBpbnB1dF8uc3VjY2Vzc2Z1bF9lbmNvZGluZykKLSAgICAgICAg aW5wdXRfID0gZHVfaW8uU3RyaW5nSW5wdXQoc291cmNlPWIiIiJcCi0jISBweXRob24KLSMgZXh0 cmFuZW91cyBjb21tZW50OyBwcmV2ZW50cyBjb2Rpbmcgc2x1ZyBmcm9tIGJlaW5nIHJlYWQKLSMg LSotIGNvZGluZzogYXNjaWkgLSotCi1wcmludCgiaGVsbG8gd29ybGQiKQotIiIiKQotICAgICAg ICBzZWxmLmFzc2VydE5vdEVxdWFsKGlucHV0Xy5zdWNjZXNzZnVsX2VuY29kaW5nLCAnYXNjaWkn KQotCiAgICAgZGVmIHRlc3RfZGVjb2RlX3VuaWNvZGUoc2VsZik6CiAgICAgICAgICMgV2l0aCB0 aGUgc3BlY2lhbCB2YWx1ZSAidW5pY29kZSIgb3IgIlVuaWNvZGUiOgogICAgICAgICB1bmlpbnB1 dCA9IGR1X2lvLklucHV0KGVuY29kaW5nPSd1bmljb2RlJykKICAgICAgICAgIyBrZWVwIHVuaWNv ZGUgaW5zdGFuY2VzIGFzLWlzCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2phJywgdW5paW5w dXQuZGVjb2RlKCdqYScpKQotICAgICAgICAjIHJhaXNlIEFzc2VydGlvbkVycm9yIGlmIGRhdGEg aXMgbm90IGEgYHN0cmAgaW5zdGFuY2UKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhB c3NlcnRpb25FcnJvcik6CisgICAgICAgICMgcmFpc2UgZXJyb3IgaWYgZGF0YSBpcyBub3QgYSBg c3RyYCBpbnN0YW5jZQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKExvb2t1cEVycm9y KToKICAgICAgICAgICAgIHVuaWlucHV0LmRlY29kZShiJ2phJykKIAogCkBAIC0yNjksNTIgKzIy MywxMCBAQAogCiBjbGFzcyBGaWxlSW5wdXRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKLSAg ICAjIHRlc3QgaW5wdXQgZW5jb2RpbmcgYXV0by1kZXRlY3Rpb246Ci0gICAgIwotICAgICMgVXAg dG8gRG9jdXRpbHMgMC4xOCwgYXV0by1kZXRlY3Rpb24gd2FzIG5vdCB1c2VkIHVuZGVyIFB5dGhv biAzCi0gICAgIyB1bmxlc3MgcmVhZGluZyBhIGZpbGUgd2l0aCBQeXRob24ncyBkZWZhdWx0IGVu Y29kaW5nIGZhaWxlZAotCi0gICAgZGVmIHRlc3RfYm9tX3V0Zl84KHNlbGYpOgotICAgICAgICAi IiJEcm9wIG9wdGlvbmFsIEJPTSBmcm9tIHV0Zi04IGVuY29kZWQgZmlsZXMuCi0gICAgICAgICIi IgotICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6Ci0gICAgICAgICAgICBp ZiBTVVBQUkVTU19FTkNPRElOR19XQVJOSU5HOgotICAgICAgICAgICAgICAgIHdhcm5pbmdzLmZp bHRlcndhcm5pbmdzKCdpZ25vcmUnLCBjYXRlZ29yeT1FbmNvZGluZ1dhcm5pbmcpCi0gICAgICAg ICAgICBzb3VyY2UgPSBkdV9pby5GaWxlSW5wdXQoc291cmNlX3BhdGg9REFUQV9ST09ULyd1dGYt OC1zaWcucnN0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGlu Zz1Ob25lKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0V2FybnNSZWdleChEZXByZWNhdGlvbldh cm5pbmcsICdhdXRvLWRldGVjdGlvbicpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNv dXJjZS5yZWFkKCkuc3RhcnRzd2l0aCgnR3LDvMOfZScpKQotCi0gICAgZGVmIHRlc3RfYm9tX3V0 Zl8xNihzZWxmKToKLSAgICAgICAgIiIiRHJvcCBCT00gZnJvbSB1dGYtMTYgZW5jb2RlZCBmaWxl cywgdXNlIGNvcnJlY3QgZW5jb2RpbmcuCi0gICAgICAgICIiIgotICAgICAgICAjIEFzc2VydCBj b3JyZWN0IGRlY29kaW5nLCBCT00gaXMgZ29uZS4KLSAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRj aF93YXJuaW5ncygpOgotICAgICAgICAgICAgaWYgU1VQUFJFU1NfRU5DT0RJTkdfV0FSTklORzoK LSAgICAgICAgICAgICAgICB3YXJuaW5ncy5maWx0ZXJ3YXJuaW5ncygnaWdub3JlJywgY2F0ZWdv cnk9RW5jb2RpbmdXYXJuaW5nKQotICAgICAgICAgICAgc291cmNlID0gZHVfaW8uRmlsZUlucHV0 KHNvdXJjZV9wYXRoPURBVEFfUk9PVC8ndXRmLTE2LWxlLXNpZy5yc3QnLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPU5vbmUpCi0gICAgICAgIHdpdGggc2Vs Zi5hc3NlcnRXYXJuc1JlZ2V4KERlcHJlY2F0aW9uV2FybmluZywgJ2F1dG8tZGV0ZWN0aW9uJyk6 Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc291cmNlLnJlYWQoKS5zdGFydHN3aXRoKCdH csO8w59lJykpCi0KLSAgICBkZWYgdGVzdF9jb2Rpbmdfc2x1ZyhzZWxmKToKLSAgICAgICAgIiIi VXNlIHNlbGYtZGVjbGFyZWQgZW5jb2RpbmcuCi0gICAgICAgICIiIgotICAgICAgICB3aXRoIHdh cm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6Ci0gICAgICAgICAgICBpZiBTVVBQUkVTU19FTkNPRElO R19XQVJOSU5HOgotICAgICAgICAgICAgICAgIHdhcm5pbmdzLmZpbHRlcndhcm5pbmdzKCdpZ25v cmUnLCBjYXRlZ29yeT1FbmNvZGluZ1dhcm5pbmcpCi0gICAgICAgICAgICBzb3VyY2UgPSBkdV9p by5GaWxlSW5wdXQoc291cmNlX3BhdGg9REFUQV9ST09ULydsYXRpbjIucnN0JywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz1Ob25lKQotICAgICAgICB3aXRo IHNlbGYuYXNzZXJ0V2FybnNSZWdleChEZXByZWNhdGlvbldhcm5pbmcsICdhdXRvLWRldGVjdGlv bicpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNvdXJjZS5yZWFkKCkuZW5kc3dpdGgo J8Wha29kYVxuJykpCi0KICAgICBkZWYgdGVzdF9mYWxsYmFja191dGY4KHNlbGYpOgotICAgICAg ICAiIiJUcnkgJ3V0Zi04JywgaWYgZW5jb2RpbmcgaXMgbm90IHNwZWNpZmllZCBpbiB0aGUgc291 cmNlLiIiIgotICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6Ci0gICAgICAg ICAgICBpZiBTVVBQUkVTU19FTkNPRElOR19XQVJOSU5HOgotICAgICAgICAgICAgICAgIHdhcm5p bmdzLmZpbHRlcndhcm5pbmdzKCdpZ25vcmUnLCBjYXRlZ29yeT1FbmNvZGluZ1dhcm5pbmcpCi0g ICAgICAgICAgICBzb3VyY2UgPSBkdV9pby5GaWxlSW5wdXQoc291cmNlX3BhdGg9REFUQV9ST09U Lyd1dGY4LnJzdCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rp bmc9Tm9uZSkKKyAgICAgICAgIiIiVXNlICd1dGYtOCcsIGlmIGVuY29kaW5nIGlzIHNwZWNpZmll ZCBhcyBgYE5vbmVgYC4iIiIKKyAgICAgICAgc291cmNlID0gZHVfaW8uRmlsZUlucHV0KHNvdXJj ZV9wYXRoPURBVEFfUk9PVC8ndXRmOC5yc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZW5jb2Rpbmc9Tm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnR3LDvMOfZVxu Jywgc291cmNlLnJlYWQoKSkKIAogICAgIGRlZiB0ZXN0X3JlYWRsaW5lcyhzZWxmKToKCk1vZGlm aWVkOiB0cnVuay9kb2N1dGlscy90ZXN0L3Rlc3RfcHVibGlzaGVyLnB5Cj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHRydW5rL2RvY3V0aWxzL3Rlc3QvdGVzdF9wdWJsaXNoZXIucHkJMjAyNi0wNi0xMiAyMTo0OTo0 NSBVVEMgKHJldiAxMDM1NSkKKysrIHRydW5rL2RvY3V0aWxzL3Rlc3QvdGVzdF9wdWJsaXNoZXIu cHkJMjAyNi0wNi0xMiAyMTo0OTo1NiBVVEMgKHJldiAxMDM1NikKQEAgLTE5NiwxNSArMTk2LDYg QEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nc19vdmVycmlk ZXM9c2V0dGluZ3MpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIG91dHB1dCkK IAotICAgICAgICAjIGVuY29kaW5nIGRlY2xhcmF0aW9uIGluIHNvdXJjZSAodXNlZCBpZiBpbnB1 dF9lbmNvZGluZyBpcyBOb25lKQotICAgICAgICAjIGlucHV0IGVuY29kaW5nIGRldGVjdGlvbiB3 aWxsIGJlIHJlbW92ZWQgaW4gRG9jdXRpbHMgMS4wCi0gICAgICAgIHNvdXJjZSA9ICcuLiBlbmNv ZGluZzogbGF0aW4xXG5cbkdyw7zDn2UnCi0gICAgICAgIHNldHRpbmdzWydpbnB1dF9lbmNvZGlu ZyddID0gTm9uZQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0V2FybnNSZWdleChEZXByZWNhdGlv bldhcm5pbmcsICdhdXRvLWRldGVjdGlvbicpOgotICAgICAgICAgICAgb3V0cHV0ID0gY29yZS5w dWJsaXNoX3N0cmluZyhzb3VyY2UuZW5jb2RlKCdsYXRpbjEnKSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3Nfb3ZlcnJpZGVzPXNldHRpbmdzKQotICAg ICAgICBzZWxmLmFzc2VydFRydWUob3V0cHV0LmVuZHN3aXRoKCdHcsO8w59lXG4nKSkKLQogICAg IGRlZiB0ZXN0X3B1Ymxpc2hfc3RyaW5nX291dHB1dF9lbmNvZGluZyhzZWxmKToKICAgICAgICAg c2V0dGluZ3MgPSBzZWxmLnNldHRpbmdzIHwgeydvdXRwdXRfZW5jb2RpbmcnOiAnbGF0aW4xJ30K ICAgICAgICAgc2V0dGluZ3NbJ291dHB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVyJ10gPSAncmVw bGFjZScKClRoaXMgd2FzIHNlbnQgYnkgdGhlIFNvdXJjZUZvcmdlLm5ldCBjb2xsYWJvcmF0aXZl IGRldmVsb3BtZW50IHBsYXRmb3JtLCB0aGUgd29ybGQncyBsYXJnZXN0IE9wZW4gU291cmNlIGRl dmVsb3BtZW50IHNpdGUuCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkRvY3V0aWxzLWNoZWNraW5zIG1haWxpbmcgbGlzdApEb2N1dGlscy1jaGVja2lu c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlz dHMvbGlzdGluZm8vZG9jdXRpbHMtY2hlY2tpbnMK