[PR] Opinionated list of fixes (PR #2)

Kacper Michajłow via ffmpeg-devel <[email protected]> Wed, 29 Jul 2026 23:58:30 -0000
Newsgroups gmane.comp.video.ffmpeg.devel
Message-ID <178536951106.51.12479685481834933794@29965ddac10e>
UFIgIzIgb3BlbmVkIGJ5IEthY3BlciBNaWNoYWrFgm93IChrYXNwZXI5MykKVVJMOiBodHRwczov
L2NvZGUuZmZtcGVnLm9yZy9GRm1wZWcvZmF0ZXNlcnZlci9wdWxscy8yClBhdGNoIFVSTDogaHR0
cHM6Ly9jb2RlLmZmbXBlZy5vcmcvRkZtcGVnL2ZhdGVzZXJ2ZXIvcHVsbHMvMi5wYXRjaAoKCkZy
b20gZTI5MDFkYTM1YmJmMGU2MWQ0MmRmMTNkYzMyODg1OTNlMjU0MDdkYyBNb24gU2VwIDE3IDAw
OjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0thY3Blcj0yME1pY2hhaj1DNT04Mm93Pz0gPGth
c3BlcjkzQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAzMCBKdWwgMjAyNiAwMTowMzowMiArMDIwMApT
dWJqZWN0OiBbUEFUQ0ggMS82XSBGQVRFOiBhY2NlcHQgYSAiZGVzYyIgcHJlZml4IG9uIGFueSBz
b3J0IGtleQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz
ZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKVGhlIHByZWZpeCBzaGFy
ZWQgdGhlIDEwIGNoYXJhY3RlciBidWRnZXQgb2YgdGhlIGtleSBpdCByZXZlcnNlcywgc28gdGhl
CmxpbmtzIHRoZSBpbmRleCBpdHNlbGYgZ2VuZXJhdGVzIGZvciB0aGUgQ29tbWVudCBhbmQgQXJj
aCBjb2x1bW5zIHdlcmUKcmVqZWN0ZWQgd2l0aCAiSW52YWxpZCBzb3J0IHZhbHVlIi4KClNpZ25l
ZC1vZmYtYnk6IEthY3BlciBNaWNoYWrFgm93IDxrYXNwZXI5M0BnbWFpbC5jb20+Ci0tLQogRkFU
RS5wbSB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv
bigtKQoKZGlmZiAtLWdpdCBhL0ZBVEUucG0gYi9GQVRFLnBtCmluZGV4IGQ3NGZkMDAuLjgwNGRj
ZDIgMTAwNjQ0Ci0tLSBhL0ZBVEUucG0KKysrIGIvRkFURS5wbQpAQCAtNDg5LDcgKzQ4OSw5IEBA
IHN1YiBzYWZlcGFyYW0oJCQpIHsKIH0KIAogc3ViIHNhZmVwYXJhbV9zb3J0KCkgewotICAgIHJl
dHVybiBzYWZlcGFyYW1fb3B0IHFyL1thLXpdezEsMTB9KD86XC9cL1thLXpdezEsMTB9KSovLCAn
c29ydCc7CisgICAgIyBUaGUgImRlc2MiIHByZWZpeCByZXZlcnNpbmcgYSBrZXkgbXVzdCBub3Qg
ZWF0IGludG8gaXRzIGxlbmd0aCBidWRnZXQuCisgICAgbXkgJGtleSA9IHFyLyg/OmRlc2MpP1th
LXpdezEsMTB9LzsKKyAgICByZXR1cm4gc2FmZXBhcmFtX29wdCBxci8ka2V5KD86XC9cLyRrZXkp
Ki8sICdzb3J0JzsKIH0KIAogc3ViIHNhZmVwYXJhbV9zbG90KCkgewotLSAKMi41Mi4wCgoKRnJv
bSA0YWYzYjgyZWJhNTlmZmY5ZGUwOTUwYzAyY2E3YTRmZTRlY2QwZDBiIE1vbiBTZXAgMTcgMDA6
MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/S2FjcGVyPTIwTWljaGFqPUM1PTgyb3c/PSA8a2Fz
cGVyOTNAZ21haWwuY29tPgpEYXRlOiBUaHUsIDMwIEp1bCAyMDI2IDAxOjAzOjI2ICswMjAwClN1
YmplY3Q6IFtQQVRDSCAyLzZdIGluZGV4OiBrZWVwIHRoZSBzb3J0IGRpcmVjdGlvbiBwZXIga2V5
Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYt
OApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGUgbG9vcCB2YXJpYWJsZSBhbGlh
c2VzIHRoZSBhcnJheSBlbGVtZW50LCBzbyBzdHJpcHBpbmcgImRlc2MiIGVkaXRlZApAc29ydCBp
biBwbGFjZSBhbmQgbGVmdCAkc2RpciByZXZlcnNlZCBmb3IgZXZlcnkgcmVtYWluaW5nIGtleSBh
bmQgZXZlcnkKbGF0ZXIgY29tcGFyaXNvbi4KClNpZ25lZC1vZmYtYnk6IEthY3BlciBNaWNoYWrF
gm93IDxrYXNwZXI5M0BnbWFpbC5jb20+Ci0tLQogaW5kZXguY2dpIHwgMTUgKysrKysrLS0tLS0t
LS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL2luZGV4LmNnaSBiL2luZGV4LmNnaQppbmRleCAwNGI2Y2JkLi40MzczNjc5IDEw
MDc1NQotLS0gYS9pbmRleC5jZ2kKKysrIGIvaW5kZXguY2dpCkBAIC04NCw3ICs4NCw2IEBAICRh
bGxmYWlsID0gMTAwICogJGFsbGZhaWwgLyBAcmVwczsKIG15ICR3YXJuID0gMTAwIC0gJGFsbHBh
c3MgLSAkYWxsZmFpbDsKIAogbXkgQHNvcnQgPSAoJ3N1YmFyY2gnLCAnb3MnLCAnY2MnLCAnY29t
bWVudCcsICdzbG90Jyk7Ci1teSAkc2RpciA9IDE7ICMgZGVmYXVsdCB0byBhc2NlbmRpbmcgc29y
dGluZwogZGVmaW5lZCAkc29ydCBhbmQgdW5zaGlmdCBAc29ydCwgc3BsaXQgL1wvXC8vLCAkc29y
dDsKICRzb3J0IHx8PSAkc29ydFswXTsKIApAQCAtOTQsMTUgKzkzLDEzIEBAIHN1YiBuc2NtcCB7
CiB9CiAKIHN1YiByZXBjbXAgewotICAgIG15ICRyOwotICAgIGZvciBteSAkcyAoQHNvcnQpIHsK
LSAgICAgICAgaWYgKCRzID1+IC9eZGVzYy8pIHsKLSAgICAgICAgICAgICRzID1+IHMvXmRlc2Mv
LzsKLSAgICAgICAgICAgICRzZGlyID0gLTE7Ci0gICAgICAgIH0KLSAgICAgICAgbGFzdCBpZiAk
ciA9ICRzZGlyICogbnNjbXAgJCRheyRzfSwgJCRieyRzfTsKKyAgICBmb3IgbXkgJGtleSAoQHNv
cnQpIHsKKyAgICAgICAgIyAka2V5IGFsaWFzZXMgdGhlIGFycmF5IGVsZW1lbnQsIHNvIGRvIG5v
dCBlZGl0IGl0IGluIHBsYWNlLgorICAgICAgICAobXkgJHMgPSAka2V5KSA9fiBzL15kZXNjLy87
CisgICAgICAgIG15ICRyID0gKCRzIGVxICRrZXkgPyAxIDogLTEpICogbnNjbXAgJCRheyRzfSwg
JCRieyRzfTsKKyAgICAgICAgcmV0dXJuICRyIGlmICRyOwogICAgIH0KLSAgICByZXR1cm4gJHI7
CisgICAgcmV0dXJuIDA7CiB9OwogCiBzdWIgbHNvcnQgewotLSAKMi41Mi4wCgoKRnJvbSA0YzIy
N2U4ZGU5NDEzNzRhYzA0YzJiYzJiZTg0Yjg2MTg5NGE2ODQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAg
MjAwMQpGcm9tOiA9P1VURi04P3E/S2FjcGVyPTIwTWljaGFqPUM1PTgyb3c/PSA8a2FzcGVyOTNA
Z21haWwuY29tPgpEYXRlOiBUaHUsIDMwIEp1bCAyMDI2IDAxOjA0OjA2ICswMjAwClN1YmplY3Q6
IFtQQVRDSCAzLzZdIGluZGV4OiBsZXQgdGhlIEFyY2ggY29sdW1uIHNvcnQgaW4gYm90aCBkaXJl
Y3Rpb25zCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl
dD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgoiYXJjaCIgaXMgcmV3cml0
dGVuIHRvICJzdWJhcmNoIiBiZWZvcmUgbHNvcnQgY29tcGFyZXMgaXQgYWdhaW5zdCB0aGUKY3Vy
cmVudCBrZXksIHNvIHRoZSBoZWFkZXIgbmV2ZXIgbWF0Y2hlZCBhbmQgbmV2ZXIgb2ZmZXJlZCB0
aGUgcmV2ZXJzZQpvcmRlci4KClNpZ25lZC1vZmYtYnk6IEthY3BlciBNaWNoYWrFgm93IDxrYXNw
ZXI5M0BnbWFpbC5jb20+Ci0tLQogaW5kZXguY2dpIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg
aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvaW5kZXguY2dpIGIvaW5k
ZXguY2dpCmluZGV4IDQzNzM2NzkuLjljOWZlNmMgMTAwNzU1Ci0tLSBhL2luZGV4LmNnaQorKysg
Yi9pbmRleC5jZ2kKQEAgLTIzNyw3ICsyMzcsNyBAQCBlbmQgJ3RyJzsKIHN0YXJ0ICd0cic7CiBz
dGFydCAndGgnOyBsc29ydCAnVGltZScsICAgICAnZGVzY2RhdGUnOyAgICAgIGVuZCAndGgnOwog
c3RhcnQgJ3RoJzsgbHNvcnQgJ1JldicsICAgICAgJ3Jldic7ICAgICAgICAgICBlbmQgJ3RoJzsK
LXN0YXJ0ICd0aCc7IGxzb3J0ICdBcmNoJywgICAgICdhcmNoJzsgICAgICAgICAgZW5kICd0aCc7
CitzdGFydCAndGgnOyBsc29ydCAnQXJjaCcsICAgICAnc3ViYXJjaCc7ICAgICAgIGVuZCAndGgn
Owogc3RhcnQgJ3RoJzsgbHNvcnQgJ09TJywgICAgICAgJ29zJzsgICAgICAgICAgICBlbmQgJ3Ro
JzsKIHN0YXJ0ICd0aCc7IGxzb3J0ICdDb21waWxlcicsICdjYyc7ICAgICAgICAgICAgZW5kICd0
aCc7CiBzdGFydCAndGgnOyBsc29ydCAnQ29tbWVudCcsICAnY29tbWVudCc7ICAgICAgIGVuZCAn
dGgnOwotLSAKMi41Mi4wCgoKRnJvbSAyNzVhYjlhNjE0NGZlZDA4MWU4MDc2NThkNzI1Y2NmZDkw
MWEwNGRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/S2FjcGVyPTIw
TWljaGFqPUM1PTgyb3c/PSA8a2FzcGVyOTNAZ21haWwuY29tPgpEYXRlOiBUaHUsIDMwIEp1bCAy
MDI2IDAxOjA1OjUzICswMjAwClN1YmplY3Q6IFtQQVRDSCA0LzZdIGluZGV4OiBhbGxvdyAiLyIg
YW5kICIlIiBpbiBzZWFyY2ggY3JpdGVyaWEKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBl
OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi
aXQKCkNHSSBhbHJlYWR5IHBlcmNlbnQtZGVjb2RlcyBlYWNoIHBhcmFtZXRlciwgc28gZGVjb2Rp
bmcgdGhlIHF1ZXJ5IGFnYWluCnR1cm5lZCBhbiBlc2NhcGVkICIvIiBpbnNpZGUgYSB2YWx1ZSBi
YWNrIGludG8gdGhlICIvLyIgc2VwYXJhdG9yIGFuZCB0b3JlCnRoZSBjcml0ZXJpb24gaW4gdHdv
LgoKUGFzcyBvbmUgY3JpdGVyaW9uIHBlciBwYXJhbWV0ZXIgaW5zdGVhZDogQ0dJIHNwbGl0cyBv
biAiJiIgYmVmb3JlIGRlY29kaW5nLApzbyBhIHZhbHVlIGNhbiBubyBsb25nZXIgYmUgbWlzdGFr
ZW4gZm9yIGEgc2VwYXJhdG9yLiBFc2NhcGUgdmFsdWVzIGFzCmJ5dGVzLCBhcyB1cmlfZXNjYXBl
X3V0ZjggZG91YmxlLWVuY29kZXMgdGhlIGJ5dGVzIENHSSBhbmQgdGhlIHJlcG9ydCBmaWxlcwph
Y3R1YWxseSBoYW5kIG91dC4KClNpZ25lZC1vZmYtYnk6IEthY3BlciBNaWNoYWrFgm93IDxrYXNw
ZXI5M0BnbWFpbC5jb20+Ci0tLQogaW5kZXguY2dpIHwgODYgKysrKysrKysrKysrKysrKysrKysr
KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQzIGlu
c2VydGlvbnMoKyksIDQzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luZGV4LmNnaSBiL2lu
ZGV4LmNnaQppbmRleCA5YzlmZTZjLi4xZGY4Yzg5IDEwMDc1NQotLS0gYS9pbmRleC5jZ2kKKysr
IGIvaW5kZXguY2dpCkBAIC0yMCw3ICsyMCw3IEBAIHVzZSB3YXJuaW5nczsKIAogdXNlIGxpYiAi
L3Zhci93d3cvZmF0ZXdlYiI7CiAKLXVzZSBDR0kgcXcvcGFyYW0vOwordXNlIENHSSBxdy9wYXJh
bSBtdWx0aV9wYXJhbS87CiB1c2UgSFRNTDo6RW50aXRpZXM7CiB1c2UgRkFURTsKIHVzZSBUaW1l
Ojpab25lOwpAQCAtMjgsMTIgKzI4LDE3IEBAIHVzZSBVUkk6OkVzY2FwZTsKIAogY2dpX3BhdGhf
aXNfdHJ1c3R3b3J0aHk7CiAKLSMgRm9ybWF0IGZvciAvP3F1ZXJ5PSA6IC8/cXVlcnk9dHlwZTp2
YWx1ZS8vdHlwZTp2YWx1ZS8vIChVUkkgZW5jb2RlZCkuCi0jIFRyYWlsaW5nIC8vIGRvZXMgbm90
IG1hdHRlciAoaS5lLiBtYXkgYmUgYWRkZWQpLgotIyBAcXVlcmllcyBjb250YWlucyBhbiBhcnJh
eSBvZiAndHlwZTp2YWx1ZScgc3RyaW5ncy4KLSMgRXZlcnkgbWVtYmVyIG9mIEBxdWVyaWVzIGNh
biBiZSBmdXJ0aGVyIHBhcnNlZCB3aXRoIGFub3RoZXIgc2ltcGxlCi0jIHNwbGl0KC86LywgJHRo
aXNfcXVlcnksIDIpOwotbXkgQHF1ZXJpZXMgPSBzcGxpdCgvXC9cLy8sIHVyaV91bmVzY2FwZSBz
Y2FsYXIgcGFyYW0gJ3F1ZXJ5JykgaWYgKHBhcmFtICdxdWVyeScpOworIyBGb3JtYXQgZm9yIC8/
cXVlcnk9IDogLz9xdWVyeT10eXBlOnZhbHVlLCByZXBlYXRlZCBvbmNlIHBlciBjcml0ZXJpb24s
IGFzIGFuCisjIGFycmF5IG9mIFt0eXBlLCB2YWx1ZV0gcGFpcnMuICBDR0kgc3BsaXRzIHRoZSBw
YXJhbWV0ZXJzIGJlZm9yZSBkZWNvZGluZworIyB0aGVtLCBzbyBhIHZhbHVlIG1heSBjb250YWlu
IGFueSBjaGFyYWN0ZXI7IGRlY29kaW5nIGFnYWluIGhlcmUgd291bGQgbGV0IGEKKyMgJy8nIGlu
IGEgdmFsdWUgYWN0IGFzIGEgc2VwYXJhdG9yLgorbXkgQHF1ZXJpZXM7Citmb3IgbXkgJHRoaXNf
cXVlcnkgKG11bHRpX3BhcmFtICdxdWVyeScpIHsKKyAgICBteSAoJHR5cGUsICR0ZXh0KSA9IHNw
bGl0KC86LywgJHRoaXNfcXVlcnksIDIpOworICAgIGRlZmluZWQgJHRleHQgb3IgbmV4dDsKKyAg
ICAoJHR5cGUpID0gJHR5cGUgPX4gL14oW2Etel17MSwxNn0pXHovIG9yIG5leHQ7CisgICAgcHVz
aCBAcXVlcmllcywgWyR0eXBlLCAkdGV4dF07Cit9CiAKIG15ICRzb3J0ID0gc2FmZXBhcmFtX3Nv
cnQ7CiAkc29ydCA9ICJzdWJhcmNoIiBpZiBkZWZpbmVkKCRzb3J0KSAmJiAkc29ydCBlcSAiYXJj
aCI7CkBAIC01NSw4ICs2MCw4IEBAIGZvciBteSAkc2xvdCAoQHNsb3RzKSB7CiAgICAgbXkgJG5v
dF9tYXRjaGVkID0gMDsKICAgICAkJHJlcHtzdWJhcmNofSA9ICQkcmVwe2FyY2h9IGlmIG5vdCAk
JHJlcHtzdWJhcmNofTsKICAgICBmb3IgbXkgJHRoaXNfcXVlcnkgKEBxdWVyaWVzKSB7Ci0gICAg
ICAgIG15ICgkdHlwZSwgJHRleHQpID0gc3BsaXQoLzovLCAkdGhpc19xdWVyeSwgMik7Ci0gICAg
ICAgICRub3RfbWF0Y2hlZCA9IDEgaWYgKCQkcmVweyR0eXBlfSBuZSAkdGV4dCk7CisgICAgICAg
IG15ICgkdHlwZSwgJHRleHQpID0gQCR0aGlzX3F1ZXJ5OworICAgICAgICAkbm90X21hdGNoZWQg
PSAxIGlmIG5vdCBkZWZpbmVkICQkcmVweyR0eXBlfSBvciAkJHJlcHskdHlwZX0gbmUgJHRleHQ7
CiAgICAgfQogICAgIG5leHQgaWYgJG5vdF9tYXRjaGVkOwogCkBAIC0xMDIsMTYgKzEwNywyOSBA
QCBzdWIgcmVwY21wIHsKICAgICByZXR1cm4gMDsKIH07CiAKLXN1YiBsc29ydCB7Ci0gICAgbXkg
JHBhcmFtcyA9ICcnOworIyBFdmVyeSBwYXJhbWV0ZXIgZXhjZXB0ICdxdWVyeScgYW5kLCBvcHRp
b25hbGx5LCAkc2tpcCwgaW4gSFRUUCBmb3JtYXQuCisjICdxdWVyeScgbWF5IG9jY3VyIHNldmVy
YWwgdGltZXMgYW5kIGlzIHJlZ2VuZXJhdGVkIGJ5IHF1ZXJ5X3BhcmFtcygpLgorc3ViIG90aGVy
X3BhcmFtcyB7CisgICAgbXkgKCRza2lwKSA9IEBfOworICAgIG15IEBwYXJhbXM7CiAgICAgZm9y
IG15ICR0aGlzcGFyYW0gKHBhcmFtKSB7CiAgICAgICAgIG5leHQgaWYgJHRoaXNwYXJhbSA9fiAv
W15hLXowLTlfXS87Ci0gICAgICAgIG5leHQgaWYgJHRoaXNwYXJhbSA9fiAnc29ydCc7Ci0gICAg
ICAgICRwYXJhbXMgLj0gJyYnIGlmICRwYXJhbXMgbmUgJyc7Ci0gICAgICAgICRwYXJhbXMgLj0g
IiR0aGlzcGFyYW09IiAuIHVyaV9lc2NhcGUocGFyYW0oJHRoaXNwYXJhbSkpOworICAgICAgICBu
ZXh0IGlmICR0aGlzcGFyYW0gZXEgJ3F1ZXJ5JzsKKyAgICAgICAgbmV4dCBpZiBkZWZpbmVkICRz
a2lwIGFuZCAkdGhpc3BhcmFtIGVxICRza2lwOworICAgICAgICBwdXNoIEBwYXJhbXMsICIkdGhp
c3BhcmFtPSIgLiB1cmlfZXNjYXBlKHNjYWxhciBwYXJhbSgkdGhpc3BhcmFtKSk7CiAgICAgfQot
ICAgICRwYXJhbXMgLj0gJyYnIGlmICRwYXJhbXM7CisgICAgcmV0dXJuIEBwYXJhbXM7Cit9CisK
KyMgU2VyaWFsaXNlIFt0eXBlLCB2YWx1ZV0gcGFpcnMgYXMgcmVwZWF0ZWQgJ3F1ZXJ5JyBwYXJh
bWV0ZXJzLiAgVmFsdWVzIGFyZQorIyBieXRlcywgYXMgQ0dJIGFuZCB0aGUgcmVwb3J0IGZpbGVz
IGdpdmUgdGhlbSwgc28gZXNjYXBlIHRoZW0gYXMgYnl0ZXMuCitzdWIgcXVlcnlfcGFyYW1zIHsK
KyAgICByZXR1cm4gbWFwICJxdWVyeT0iIC4gdXJpX2VzY2FwZSgiJCRfWzBdOiIgLiAoJCRfWzFd
IC8vICcnKSksIEBfOworfQorCitzdWIgbHNvcnQgewogICAgIG15ICgkdGV4dCwgJGtleSkgPSBA
XzsKKyAgICBteSBAcGFyYW1zID0gKG90aGVyX3BhcmFtcygnc29ydCcpLCBxdWVyeV9wYXJhbXMo
QHF1ZXJpZXMpKTsKIAogICAgIG15ICRuZXdrZXkgPSAnJzsKICAgICBpZiAoJHNvcnQgZXEgJGtl
eSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICMgJGtleSAgICAgPSAkc29ydApAQCAtMTMw
LDM5ICsxNDgsMjEgQEAgc3ViIGxzb3J0IHsKICAgICB9CiAKICAgICAka2V5ID0gJG5ld2tleSBp
ZiAkbmV3a2V5IG5lICcnOwotICAgIGFuY2hvciAkdGV4dCwgaHJlZiA9PiAiPyR7cGFyYW1zfXNv
cnQ9JGtleSI7CisgICAgcHVzaCBAcGFyYW1zLCAic29ydD0ka2V5IjsKKyAgICBhbmNob3IgJHRl
eHQsIGhyZWYgPT4gJz8nIC4gam9pbiAnJmFtcDsnLCBAcGFyYW1zOwogfQogCiBzdWIgY2F0ZWdv
cnkgewogICAgIG15ICgkY2F0ZWdvcnksICRyZXApID0gQF87Ci0gICAgbXkgJGhlYWRfcHJpbnRl
ZCA9IDA7CiAKLSAgICAjICRwYXJhbXMgd2lsbCBjb250YWluIHBhcmFtZXRlcnMgZWxzZSB0aGFu
IHF1ZXJ5LCBpZiBhbnksIGluIEhUVFAgZm9ybWF0LgotICAgIG15ICRwYXJhbXMgPSAnJzsKLSAg
ICBmb3IgbXkgJHRoaXNwYXJhbSAocGFyYW0pIHsKLSAgICAgICAgbmV4dCBpZiAkdGhpc3BhcmFt
ID1+IC9bXmEtejAtOV9dLzsKLSAgICAgICAgbmV4dCBpZiAkdGhpc3BhcmFtIGVxICdxdWVyeSc7
Ci0gICAgICAgICRwYXJhbXMgLj0gJyYnIGlmICRwYXJhbXMgbmUgJyc7Ci0gICAgICAgICRwYXJh
bXMgLj0gIiR0aGlzcGFyYW09IiAuIHVyaV9lc2NhcGUocGFyYW0oJHRoaXNwYXJhbSkpOwotICAg
IH0KLSAgICBteSAkaGVhZCA9ICgkcGFyYW1zID8gJyYnIDogJycpIC4gJ3F1ZXJ5PSc7Ci0KLSAg
ICBpZiAoQHF1ZXJpZXMpIHsKLSAgICAgICAgZm9yIG15ICR0aGlzX3F1ZXJ5IChAcXVlcmllcykg
ewotICAgICAgICAgICAgbXkgKCR0eXBlLCAkdGV4dCkgPSBzcGxpdCgvOi8sICR0aGlzX3F1ZXJ5
LCAyKTsKLSAgICAgICAgICAgIGlmICgkdHlwZSBuZSAkY2F0ZWdvcnkpIHsKLSAgICAgICAgICAg
ICAgICAkcGFyYW1zIC49ICRoZWFkIGlmICghJGhlYWRfcHJpbnRlZCk7Ci0gICAgICAgICAgICAg
ICAgJHBhcmFtcyAuPSAkdGhpc19xdWVyeSAuICcvLyc7Ci0gICAgICAgICAgICAgICAgJGhlYWRf
cHJpbnRlZCA9IDE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgJHBhcmFt
cyAuPSAkaGVhZCBpZiAoISRoZWFkX3ByaW50ZWQpOwotICAgICRwYXJhbXMgLj0gIiRjYXRlZ29y
eToiIC4gdXJpX2VzY2FwZV91dGY4ICIkJHJlcHskY2F0ZWdvcnl9IiAuICcvLyc7Ci0gICAgJGhl
YWRfcHJpbnRlZCA9IDE7ICAgICAgICAgICAgICAgICAjIGZvciB0aGUgc2FrZSBvZiBjb21wbGV0
ZW5lc3MKKyAgICAjIEtlZXAgZXZlcnkgc2VhcmNoIGNyaXRlcmlvbiBleGNlcHQgdGhlIG9uZSBm
b3IgJGNhdGVnb3J5LCB3aGljaCB0aGUKKyAgICAjIHZhbHVlIGluIHRoaXMgY2VsbCByZXBsYWNl
cy4KKyAgICBteSBAcGFyYW1zID0gKG90aGVyX3BhcmFtcygpLAorICAgICAgICAgICAgICAgICAg
cXVlcnlfcGFyYW1zKGdyZXAoJCRfWzBdIG5lICRjYXRlZ29yeSwgQHF1ZXJpZXMpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFskY2F0ZWdvcnksICQkcmVweyRjYXRlZ29yeX1dKSk7
CiAKICAgICBzdGFydCAndGQnOwotICAgIGFuY2hvciAkJHJlcHskY2F0ZWdvcnl9LCBocmVmID0+
ICI/JHBhcmFtcyI7CisgICAgYW5jaG9yICQkcmVweyRjYXRlZ29yeX0sIGhyZWYgPT4gJz8nIC4g
am9pbiAnJmFtcDsnLCBAcGFyYW1zOwogICAgIGVuZCAndGQnOwogfQogCkBAIC0xOTcsOCArMTk3
LDggQEAgaWYgKEBxdWVyaWVzKSB7CiAgICAgc3RhcnQgJ3AnOwogICAgIHByaW50ICdTZWFyY2gg
cGF0dGVybnM6ICc7CiAgICAgZm9yIG15ICR0aGlzX3F1ZXJ5IChAcXVlcmllcykgewotICAgICAg
ICBteSAoJHR5cGUsICR0ZXh0KSA9IHNwbGl0KC86LywgJHRoaXNfcXVlcnksIDIpOwotICAgICAg
ICBwcmludCAiJHR5cGU6ICR0ZXh0OyAiOworICAgICAgICBteSAoJHR5cGUsICR0ZXh0KSA9IEAk
dGhpc19xdWVyeTsKKyAgICAgICAgcHJpbnQgZW5jb2RlX2VudGl0aWVzKCIkdHlwZTogJHRleHQi
LCAnPD4mIicpLCAnOyAnOwogICAgIH0KICAgICBhbmNob3IgJ2NsZWFyIGFsbC4nLCBocmVmID0+
ICIiOwogICAgIGVuZCAncCc7Ci0tIAoyLjUyLjAKCgpGcm9tIDZhYzc3NDk1NjBjMjg2MDZjMjY2
MjVkY2YyMzE5NDk2YTkzOGUwNmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRG
LTg/cT9LYWNwZXI9MjBNaWNoYWo9QzU9ODJvdz89IDxrYXNwZXI5M0BnbWFpbC5jb20+CkRhdGU6
IFRodSwgMzAgSnVsIDIwMjYgMDE6MDY6MjYgKzAyMDAKU3ViamVjdDogW1BBVENIIDUvNl0gaW5k
ZXg6IHJvdW5kIHRoZSBwZXJjZW50YWdlcyBpbiB0aGUgZmFpbG9tZXRlcgpNSU1FLVZlcnNpb246
IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFu
c2Zlci1FbmNvZGluZzogOGJpdAoKVGhleSBsYW5kIGluIGEgQ1NTIHdpZHRoIGFuZCBhIHRvb2x0
aXAsIHdoZXJlIDE3IHNpZ25pZmljYW50IGRpZ2l0cyBhcmUgb2YKbm8gdXNlLgoKU2lnbmVkLW9m
Zi1ieTogS2FjcGVyIE1pY2hhasWCb3cgPGthc3BlcjkzQGdtYWlsLmNvbT4KLS0tCiBpbmRleC5j
Z2kgfCAxNCArKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyks
IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5kZXguY2dpIGIvaW5kZXguY2dpCmluZGV4
IDFkZjhjODkuLjI1ZWQwODggMTAwNzU1Ci0tLSBhL2luZGV4LmNnaQorKysgYi9pbmRleC5jZ2kK
QEAgLTg0LDkgKzg0LDE3IEBAIGZvciBteSAkc2xvdCAoQHNsb3RzKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjxhIGhyZWY9XCJcIj5DbGVhciBhbGwgc2VhcmNoIGNyaXRlcmlhLjwvYT4i
IDoKICAgICAgICAgICAgICAgICAgICAgICAgICAnTm8gZGF0YSBpbiAkZmF0ZWRpci4nOwogCi0k
YWxscGFzcyA9IDEwMCAqICRhbGxwYXNzIC8gQHJlcHM7Ci0kYWxsZmFpbCA9IDEwMCAqICRhbGxm
YWlsIC8gQHJlcHM7Ci1teSAkd2FybiA9IDEwMCAtICRhbGxwYXNzIC0gJGFsbGZhaWw7CisjIFBl
cmNlbnRhZ2Ugb2YgJG4gb3V0IG9mICR0b3RhbCwgcm91bmRlZCB0byBvbmUgZGVjaW1hbCBmb3Ig
ZGlzcGxheS4KK3N1YiBwY3QgeworICAgIG15ICgkbiwgJHRvdGFsKSA9IEBfOworICAgIHJldHVy
biBpbnQoMTAwMCAqICRuIC8gJHRvdGFsICsgMC41KSAvIDEwOworfQorCitteSAkbnJlcHMgPSBA
cmVwczsKK215ICR3YXJuID0gJG5yZXBzIC0gJGFsbHBhc3MgLSAkYWxsZmFpbDsKKyRhbGxwYXNz
ID0gcGN0KCRhbGxwYXNzLCAkbnJlcHMpOworJGFsbGZhaWwgPSBwY3QoJGFsbGZhaWwsICRucmVw
cyk7Ciskd2FybiAgICA9IHBjdCgkd2FybiwgICAgJG5yZXBzKTsKIAogbXkgQHNvcnQgPSAoJ3N1
YmFyY2gnLCAnb3MnLCAnY2MnLCAnY29tbWVudCcsICdzbG90Jyk7CiBkZWZpbmVkICRzb3J0IGFu
ZCB1bnNoaWZ0IEBzb3J0LCBzcGxpdCAvXC9cLy8sICRzb3J0OwotLSAKMi41Mi4wCgoKRnJvbSA0
YjIzZjZkYTNiM2IxMTE5OTU4YjdmMmMwMDExYTFlZDcwMjhkNWNkIE1vbiBTZXAgMTcgMDA6MDA6
MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/S2FjcGVyPTIwTWljaGFqPUM1PTgyb3c/PSA8a2FzcGVy
OTNAZ21haWwuY29tPgpEYXRlOiBUaHUsIDMwIEp1bCAyMDI2IDAxOjA2OjU5ICswMjAwClN1Ympl
Y3Q6IFtQQVRDSCA2LzZdIGluZGV4LCBoaXN0b3J5OiBzaG93IGEgZmFpbHVyZSB0byBidWlsZCB0
ZXN0cyBhcyBhCiBmYWlsdXJlCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9w
bGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpBIHJ1
biB3aGVyZSBldmVyeSB0ZXN0IHBhc3NlZCBidXQgdGhlIHN0YXR1cyBpcyBub24temVybyBmYWls
ZWQgdG8gYnVpbGQKdGhlIHRlc3RzLCB3aGljaCByZXBvcnQuY2dpIGFscmVhZHkgZmxhZ3MgYXMg
YSBmYWlsdXJlLgoKU2lnbmVkLW9mZi1ieTogS2FjcGVyIE1pY2hhasWCb3cgPGthc3BlcjkzQGdt
YWlsLmNvbT4KLS0tCiBoaXN0b3J5LmNnaSB8IDMgKystCiBpbmRleC5jZ2kgICB8IDMgKystCiAy
IGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9oaXN0b3J5LmNnaSBiL2hpc3RvcnkuY2dpCmluZGV4IDVlNGYwMDcuLjcxZWNkYmIgMTAw
NzU1Ci0tLSBhL2hpc3RvcnkuY2dpCisrKyBiL2hpc3RvcnkuY2dpCkBAIC03Niw3ICs3Niw4IEBA
IGZvciBteSAkZGF0ZSAoKHNvcnQgeyAkYiBjbXAgJGEgfSBAcmVwcylbMC4uNDldKSB7CiAgICAg
dGQgJCRyZXB7bndhcm59OwogICAgIGlmICgkbnBhc3MpIHsKICAgICAgICAgJHJ0ZXh0ICA9ICIk
bnBhc3MgLyAkbnRlc3QiOwotICAgICAgICAkcmNsYXNzID0gJCRyZXB7c3RhdHVzfT09MD8gJ3Bh
c3MnIDogJG5wYXNzPyAnd2FybicgOiAnZmFpbCc7CisgICAgICAgICRyY2xhc3MgPSAhJCRyZXB7
c3RhdHVzfSAgPyAncGFzcycgOgorICAgICAgICAgICAgICAgICAgJG5wYXNzIDwgJG50ZXN0ID8g
J3dhcm4nIDogJ2ZhaWwnOwogICAgIH0gZWxzaWYgKCEkbnRlc3QgYW5kICEkJHJlcHtzdGF0dXN9
KSB7CiAgICAgICAgICRydGV4dCAgPSAiYnVpbGQgb25seSI7CiAgICAgICAgICRyY2xhc3MgPSAk
JHJlcHtzdGF0dXN9PyAnZmFpbCcgOiAncGFzcyc7CmRpZmYgLS1naXQgYS9pbmRleC5jZ2kgYi9p
bmRleC5jZ2kKaW5kZXggMjVlZDA4OC4uZDM4Yjk5OSAxMDA3NTUKLS0tIGEvaW5kZXguY2dpCisr
KyBiL2luZGV4LmNnaQpAQCAtMjkzLDcgKzI5Myw4IEBAIGZvciBteSAkcmVwIChzb3J0IHJlcGNt
cCBAcmVwcykgewogICAgIHRkICQkcmVwe2NvbW1lbnR9LCBjbGFzcyA9PiAnY29tbWVudCc7CiAg
ICAgaWYgKCRucGFzcykgewogICAgICAgICAkcnRleHQgID0gIiRucGFzcyAvICRudGVzdCI7Ci0g
ICAgICAgICRyY2xhc3MgPSAkJHJlcHtzdGF0dXN9PT0wPyAncGFzcycgOiAkbnBhc3M/ICd3YXJu
JyA6ICdmYWlsJzsKKyAgICAgICAgJHJjbGFzcyA9ICEkJHJlcHtzdGF0dXN9ICA/ICdwYXNzJyA6
CisgICAgICAgICAgICAgICAgICAkbnBhc3MgPCAkbnRlc3QgPyAnd2FybicgOiAnZmFpbCc7CiAg
ICAgfSBlbHNpZiAoISRudGVzdCBhbmQgISQkcmVwe3N0YXR1c30pIHsKICAgICAgICAgJHJ0ZXh0
ICA9ICJidWlsZCBvbmx5IjsKICAgICAgICAgJHJjbGFzcyA9ICQkcmVwe3N0YXR1c30/ICdmYWls
JyA6ICdwYXNzJzsKLS0gCjIuNTIuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdCAtLSBmZm1wZWctZGV2ZWxA
ZmZtcGVnLm9yZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGZmbXBlZy1kZXZlbC1s
ZWF2ZUBmZm1wZWcub3JnCg==