Re: Issue with acl note (without -m) splitting helper tokens containing commas

Alex Rousskov <[email protected]> Tue, 21 Apr 2026 10:05:10 -0400
Newsgroups gmane.comp.web.squid.devel
Message-ID <[email protected]>
T24gMjAyNi0wNC0yMSAwNjoyNCwgQW5kcmV5IEsgd3JvdGU6Cj4gID4gPj4gMS4gUmVtb3Zpbmcg
dGhlIGRlZmF1bHQgY29tbWEgZGVsaW1pdGVyLgo+ICA+ID4KPiAgPiA+IC4uLiBhbmQgY2hlY2sg
ZW5hYmxlZCgpIGJlZm9yZSB1c2luZyB0aGUgc3RvcmVkIHZhbHVlLCBmaXhpbmcgdGhlIGJ1Zwo+
ICA+ID4gaW50cm9kdWNlZCBpbiAyMDE3IGNvbW1pdCA0ZWFjMzQwNy4KPiAKPiBJIGFncmVlIHdp
dGggQWxleCB0aGF0IGNoZWNraW5nIGVuYWJsZWQoKSBpcyB0aGUgY29ycmVjdCB3YXkgdG8gZml4
IHRoZSAKPiBidWcgaW50cm9kdWNlZCBpbiBjb21taXQgNGVhYzM0MDcuCgpHbGFkIHdlIGFyZSBv
biB0aGUgc2FtZSBwYWdlLgoKCj4gSSBoYXZlIHJlY29uc2lkZXJlZCBteSBwcmV2aW91cyBpZGVh
IGFib3V0IHJlbW92aW5nIHRoZSBkZWZhdWx0IGNvbW1hIAo+IGRlbGltaXRlciBmcm9tIHRoZSBj
bGFzcyBjb25zdHJ1Y3Rvci4gSSBub3cgc2VlIHRoYXQgaXQgc2hvdWxkIHN0YXksIGFzIAo+IHRo
ZSBkb2N1bWVudGF0aW9uIHN0YXRlcyB0aGF0IGEgY29tbWEgc2hvdWxkIGJlIHVzZWQgYXMgYSBz
ZXBhcmF0b3Igd2hlbiAKPiB0aGUgLW0gb3B0aW9uIGlzIHNwZWNpZmllZCB3aXRob3V0IHBhcmFt
ZXRlcnMuCgpZZXMsIHByb2JhYmx5LCBhdCBsZWFzdCBmb3Igbm93LiBJIGFtIHByZXR0eSBzdXJl
IHRoYXQgYW4gaWRlYWwgCmltcGxlbWVudGF0aW9uIHdvdWxkIGhhbmRsZSB0aGF0IGRlZmF1bHQg
c2VwYXJhdG9yIGRpZmZlcmVudGx5IGJlY2F1c2UgCnRoZSBkZWZhdWx0IGlzIG5vdCAiZGVsaW1p
dGVkIGJ5IGNvbW1hcyI7IHRoZSBkZWZhdWx0IGlzICJub3QgCmRlbGltaXRlZCIuIElkZWFsbHks
IFNxdWlkIHNob3VsZCBub3QgZG8gdW5uZWNlc3Nhcnkgd29yay4uLiBIb3dldmVyLCAKeW91ciBm
dXR1cmUgUFIgcHJvYmFibHkgc2hvdWxkIF9ub3RfIGJlIHJlc3BvbnNpYmxlIGZvciByZWFjaGlu
ZyB0aGF0IAppZGVhbCBiZWNhdXNlIGltcHJvdmluZyBob3cgd2UgaGFuZGxlIHN1Y2ggZGVmYXVs
dCB2YWx1ZXMgcHJvYmFibHkgCnJlcXVpcmVzIHNpZ25pZmljYW50IHJlZmFjdG9yaW5nIG9mIGFu
IGFscmVhZHkgY29tcGxleCBjb2RlLgoKCj4gU28sIGZvbGxvd2luZyBBbGV4J3Mgc3VnZ2VzdGlv
biwgdGhlIGZpeCB3b3VsZCBiZToKPiAKPiBib29sCj4gQWNsOjpOb3RlQ2hlY2s6Om1hdGNoTm90
ZXMoY29uc3QgTm90ZVBhaXJzICpub3RlKSBjb25zdAo+IHsKPiAgwqAgwqAgY29uc3QgQ2hhcmFj
dGVyU2V0ICpzZXAgPSBkZWxpbWl0ZXJzLmVuYWJsZWQoKSA/ICZkZWxpbWl0ZXJzLnZhbHVlIAo+
IDogbnVsbHB0cjsKPiAgwqAgwqAgY29uc3QgTm90ZVBhaXJzOjpFbnRyaWVzICZlbnRyaWVzID0g
bm90ZS0+ZXhwYW5kTGlzdEVudHJpZXMoc2VwKTsKPiAgwqAgwqAgZm9yIChhdXRvIGU6IGVudHJp
ZXMpCj4gIMKgIMKgIMKgIMKgIGlmIChkYXRhLT5tYXRjaChlLmdldFJhdygpKSkKPiAgwqAgwqAg
wqAgwqAgwqAgwqAgcmV0dXJuIHRydWU7Cj4gIMKgIMKgIHJldHVybiBmYWxzZTsKPiB9Cj4gCj4g
TWF5IEkgc3VibWl0IHRoZSBQUiB3aXRoIHRoaXMgY2hhbmdlPwoKWWVzLCBvZiBjb3Vyc2UhIEhv
d2V2ZXIsIHRoZSBhYm92ZSBpcyBub3QgZW5vdWdoIHRvIGZ1bGx5IGFkZHJlc3MgdGhpcyAKYnVn
IEFGQUlDVC4gTXkgc3VnZ2VzdGlvbiBiZWxvdyBzaG91bGQgZXhwb3NlIHRoZSBjYXNlcyBtaXNz
ZWQgYnkgdGhlIAphYm92ZSBmaXguCgoKUGxlYXNlIHRyeSB0byByZWZhY3RvciBzbyB0aGF0IGFj
Y2Vzc2luZyBgZGVsaW1pdGVycy52YWx1ZWAgYmVjb21lcyAKaW1wb3NzaWJsZSB3aGVuIGRlbGlt
aXRlcnMgYXJlIG5vdCBlbmFibGVkLiBDb25jZXB0dWFsbHksIApBQ0xGbGFnczo6ZGVsaW1pdGVy
cygpIHJlbW92ZWQgaW4gMjAxNyBjb21taXQgNGVhYzM0MDcgZ290IGl0IHJpZ2h0LiBXZSAKc2hv
dWxkIHJlc3RvcmUgdGhvc2UgcHJvdGVjdGlvbnMuCgpJIGhhdmUgbm90IGNoZWNrZWQgYWxsIHRo
ZSBkZXRhaWxzLCBidXQgSSB3b3VsZCBfc3RhcnRfIGJ5IHJlcGxhY2luZyB0aGUgCmZvbGxvd2lu
ZyBPcHRpb25WYWx1ZSBkYXRhIG1lbWJlcjoKCiAgICAgVmFsdWUgdmFsdWU7IC8vLzwgZmluYWwg
dmFsdWUgc3RvcmFnZSwgcG9zc2libHkgYWZ0ZXIgY29udmVyc2lvbnMKCndpdGg6CgogICAgIC8v
LyBvcHRpb24gdmFsdWUgKGlmIHRoZSBvcHRpb24gd2FzIGVuYWJsZWQpIG9yIG5pbCAob3RoZXJ3
aXNlKQogICAgIGNvbnN0IFZhbHVlICp2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGVuYWJsZWQoKSA/
IAomZXhwbGljaXRPckRlZmF1bHRWYWx1ZSA6IG51bGxwdHI7IH0KCiAgICAgLy8gVE9ETzogTWFr
ZSBwcml2YXRlLgogICAgIC8vLyBGaW5hbCB2YWx1ZSBzdG9yYWdlLCBwb3NzaWJseSBhZnRlciBj
b252ZXJzaW9ucy4KICAgICAvLy8gV2hlbiBgdmFsdWVkYCBpcyB0cnVlLCB0aGlzIGlzIGFuIGV4
cGxpY2l0bHkgc2V0IHZhbHVlLgogICAgIC8vLyBPdGhlcndpc2UsIHRoaXMgaXMgdGhlIGRlZmF1
bHQgdmFsdWUuCiAgICAgVmFsdWUgZXhwbGljaXRPckRlZmF1bHRWYWx1ZTsKCgpJZGVhbGx5LCBl
eHBsaWNpdE9yRGVmYXVsdFZhbHVlIHNob3VsZCBiZSBwcml2YXRlLCBidXQgYWNoaWV2aW5nIHRo
YXQgCmlkZWFsIHJlcXVpcmVzIG1vcmUgcmVmYWN0b3Jpbmcgd29yaywgYW5kIEkgZG8gbm90IHJl
Y29tbWVuZCBpdCBhdCB0aGlzIAp0aW1lLgoKQ3VycmVudCBPcHRpb25WYWx1ZTo6dmFsdWUgdXNl
cnMgc2hvdWxkIGJlIGFkanVzdGVkIGFjY29yZGluZ2x5LCBvZiAKY291cnNlLCBhbmQgSSBob3Bl
IHRoYXQgdGhlIGNvbXBpbGVyIHdpbGwgY2F0Y2ggbW9zdCBjYXNlcyB0aGF0IGEgbWFudWFsIApz
ZWFyY2ggaGFzIG1pc3NlZC4gVGhlICJUT0RPOiBTb21lIGNhbGxlcnMuLi4iIGNvbW1lbnQgd2ls
bCBuZWVkIHRvIGJlIAphZGp1c3RlZCBhcyB3ZWxsLgoKCj4gUmVnYXJkaW5nIHRoZSB3YXJuaW5n
IGZvciBhZG1pbnM6Cj4gCj4gID4gPiBXZSBjYW4gYWxzbyBhZGQgY29kZSB0byB3YXJuIGFkbWlu
cyAodmlhIGEgY2FjaGUubG9nIFdBUk5JTkcgbWVzc2FnZSkKPiAgPiA+IHdoZW4gYSAibm90ZSIg
QUNMIGNvbmZpZ3VyZWQgd2l0aG91dCAiLW0iIGxvb2tzIGF0IGFuIGFubm90YXRpb24gdmFsdWUK
PiAgPiA+IGNvbnRhaW5pbmcgYSBjb21tYSwgYnV0IHRoYXQgcmVxdWlyZXMgbW9yZSB3b3JrLgo+
IAo+IEkgYmVsaWV2ZSB0aGlzIHdhcm5pbmcgbWlnaHQgYmUgdXNlZnVsIGZvciB0aGUgY3VycmVu
dCBidWdneSB2ZXJzaW9uLgo+IEhvd2V2ZXIsIHdpdGggdGhpcyBmaXgsIHRoZSBiZWhhdmlvciB3
aWxsIGNvcnJlY3RseSBmb2xsb3cgdGhlIAo+IGRvY3VtZW50YXRpb24sIHNvIGEgd2FybmluZyBz
aG91bGRuJ3QgYmUgbmVjZXNzYXJ5IGluIHRoZSBwYXRjaGVkIHZlcnNpb24uCgpUaGF0IHdhcm5p
bmcgd291bGQgYmUgdXNlZnVsIGluIHNldmVyYWwgY2FzZXMuIEZvciBleGFtcGxlLCBpdCB3b3Vs
ZCBiZSAKdXNlZnVsIGZvciBhbiBhZG1pbiBvZiBhIHVzZWQtdG8td29yay1iZWZvcmUtdGhlLXVw
Z3JhZGUtU3F1aWQgd2hvIGRvZXMgCm5vdCByZWFsaXplIHRoYXQgdGhlaXIgaGVscGVyIGlzIHJl
dHVybmluZyBhIGxpc3Qgb2YgdmFsdWVzIGFuZCB0aGF0IAp0aGV5IG5vdyBtdXN0IHN0YXJ0IHVz
aW5nICItbSIgZm9yIHRoZWlyIHVwZ3JhZGVkIFNxdWlkIHRvIChjb250aW51ZSB0bykgCmhhbmRs
ZSB0aGF0IGNhc2UgY29ycmVjdGx5LgoKQUZBSUNULCB0aGUgYmlnZ2VzdCBwcm9ibGVtIHdpdGgg
dGhhdCB3YXJuaW5nIGlzIHRoYXQgYWRtaW5zIG9mIGhlbHBlcnMgCnRoYXQgcmV0dXJuIHZhbHVl
cyB3aXRoIGNvbW1hcyB0aGF0IHNob3VsZCBfbm90XyB1c2UgIi1tIiAoYmVjYXVzZSB0aG9zZSAK
Y29tbWFzIGFyZSBub3QgdXNlZCBhcyBzdWItdmFsdWUgc2VwYXJhdG9ycykgd291bGQgaGF2ZSB0
byBtYW51YWxseSAKZGlzYWJsZSB0aGUgd2FybmluZyAodmlhIGNhY2hlX2xvZ19tZXNzYWdlIG9y
LCBpZiB3ZSBkbyBldmVuIG1vcmUgZXh0cmEgCndvcmssIHZpYSBzb21ldGhpbmcgbGlrZSAiK20i
IGluIGluZGl2aWR1YWwgQUNMIGRlZmluaXRpb25zKS4KCgpIVEgsCgpBbGV4LgoKCj4g0LLRgiwg
MjEg0LDQv9GALiAyMDI24oCv0LMuINCyIDExOjAyLCBBbW9zIEplZmZyaWVzIDxzcXVpZDNAdHJl
ZW5ldC5jby5ueiAKPiA8bWFpbHRvOnNxdWlkM0B0cmVlbmV0LmNvLm56Pj46Cj4gCj4gICAgIE9u
IDIxLzA0LzIwMjYgMDY6NTksIEFsZXggUm91c3Nrb3Ygd3JvdGU6Cj4gICAgICA+IE9uIDIwMjYt
MDQtMTcgMDk6MDgsIEFuZHJleSBLIHdyb3RlOgo+ICAgICAgPgo+ICAgICAgPj4gV2hpbGUgd29y
a2luZyB3aXRoIGFubm90YXRpb25zLCBJ4oCZdmUgbm90aWNlZCBhbiBpbmNvbnNpc3RlbmN5IGlu
Cj4gICAgIGhvdwo+ICAgICAgPj4gYWNsIG5vdGUgKHdpdGhvdXQgdGhlIC1tIG9wdGlvbikgaGFu
ZGxlcyB0b2tlbnMgcmVjZWl2ZWQgZnJvbQo+ICAgICBoZWxwZXJzCj4gICAgICA+PiB3aGVuIHRo
ZXkgY29udGFpbiBhIGNvbW1hLgo+ICAgICAgPgo+ICAgICAgPiBJIHRoaW5rIGl0IGlzIGltcG9y
dGFudCB0byBub3RlIHRoYXQgdGhlcmUgYXJlIHNldmVyYWwgZGlzdGluY3QKPiAgICAgcGxheWVy
cwo+ICAgICAgPiBoZXJlLCBpbmNsdWRpbmc6Cj4gICAgICA+Cj4gICAgICA+IDEuIFdoYXQgYW5u
b3RhdGlvbnMgdGhlIGhlbHBlciBzZW5kcyB0byBTcXVpZC4KPiAgICAgID4KPiAKPiAgICAgV2hp
Y2ggaXM6Cj4gCj4gICAgICDCoCDCoCDCoGdyb3VwPSJTdGFmZjphY2NvdW50YW50cyxsYXd5ZXJz
LHNlY3VyaXR5Igo+IAo+IAo+ICAgICAgPiAyLiBIb3cgaGVscGVyIHJlc3BvbnNlIHBhcnNlciBj
b252ZXJ0cyByZWNlaXZlZCBoZWxwZXIgcmVzcG9uc2UgaW50bwo+ICAgICAgPsKgIMKgwqAgdHJh
bnNhY3Rpb24gYW5ub3RhdGlvbnMuCj4gICAgICA+Cj4gCj4gICAgIFdoaWNoIGlzOgo+IAo+ICAg
ICAgwqAgwqAxKSByZW1vdmUgZG91YmxlLXF1b3Rlcwo+ICAgICAgwqAgwqAyKSB0cmFuc2xhdGUg
XC1lc2NhcGVzIHdpdGhpbiBxdW90ZWQtc3RyaW5nIHZhbHVlcwo+ICAgICAgwqAgwqAzKSB0cmFu
c2xhdGUgJS1jb2RlZCB3aXRoaW4gdG9rZW4gdmFsdWVzCj4gCj4gICAgIE5vdGhpbmcgbW9yZS4g
JywnIGlzIG5vdCBzcGVjaWFsIGZvciB0aGF0IHBhcnNlci4KPiAKPiAKPiAgICAgID4gMy4gSG93
IHRoZSAibm90ZSIgQUNMIGNvZGUgaW50ZXJwcmV0cyB0cmFuc2FjdGlvbiBhbm5vdGF0aW9ucy4K
PiAgICAgID7CoCDCoMKgIFRoZXNlIGFubm90YXRpb25zIG1heSBjb21lIGZyb20gc291cmNlcyBv
dGhlciB0aGFuIGEgaGVscGVyLgo+ICAgICAgPgo+IAo+ICAgICBUaGlzIGlzIHdoZXJlICcsJyBi
ZWNvbWVzIHNwZWNpYWwgYXMgYSBsaXN0IGRlbGltaXRlci4KPiAKPiAgICAgVGhlIGFubm90YXRp
b24gc3lzdGVtIGludGVycHJldHMgImEsYixjIiBhcyBhIHNldCBvZiB0aHJlZSB2YWx1ZXMsCj4g
ICAgIHN0b3JlZCBhcyBhIGxpc3QuCj4gCj4gICAgICDCoCAoSSBkbyBub3QgdW5kZXJzdGFuZCB3
aHkgd2UgbmVlZCB0byBzdG9yZSBhbm5vdGF0aW9ucyBpbiB0aGVpcgo+ICAgICBzZXJpYWxpemVk
IGZvcm1hdCBpbiB0aGUgZmlyc3QgcGxhY2UuIEl0IGlzIGdlbmVyYWxseSBhIGJhZCBkZXNpZ24u
KQo+IAo+IAo+ICAgICAgPgo+ICAgICAgPj4gQWNjb3JkaW5nIHRvIHRoZSBkb2N1bWVudGF0aW9u
LCBhbiBBQ0wgbGlrZSB0aGlzOgo+ICAgICAgPj4gwqDCoCDCoCBhY2wgc3RhZmYgbm90ZSBncm91
cCBTdGFmZjphY2NvdW50YW50cyxsYXd5ZXJzLHNlY3VyaXR5Cj4gICAgICA+PiBzaG91bGQgbWF0
Y2ggYSBoZWxwZXIgcmVzcG9uc2Ugc3VjaCBhczoKPiAgICAgID4+IMKgwqAgwqAgZ3JvdXA9IlN0
YWZmOmFjY291bnRhbnRzLGxhd3llcnMsc2VjdXJpdHkiCj4gICAgICA+Cj4gICAgICA+IFRoZSBh
Ym92ZSBpbXBsaWVzIHRoYXQgaGVscGVyIHJlc3BvbnNlIHBhcnNlciBzaG91bGQgbm90IHNwbGl0
Cj4gICAgIGdyb3VwPVgKPiAgICAgID4gcmVzcG9uc2UgZmllbGRzICh1c2luZyBjb21tYSBhcyBh
IGRlbGltaXRlcikuIERvIHdlIGRvY3VtZW50IHRoYXQKPiAgICAgID4gYW55d2hlcmU/Cj4gCj4g
ICAgIFRoZSBvbmx5IHRoaW5nIHRoZSBoZWxwZXIgcmVzcG9uc2UgcGFyc2VyIGRvZXMgaXMgcmVt
b3ZlIHRoZSBEUVVPVEUKPiAgICAgY2hhcmFjdGVycyBhcm91bmQgdGhlIHZhbHVlIHN0cmluZy4K
PiAKPiAgICAgQXMgeW91IG5vdGVkIGJlbG93LCB0aGUgcHJvYmxlbSBpcyBBQ0wgbG9naWMgaW50
ZXJhY3Rpb24gd2l0aCB0aGUKPiAgICAgYW5ub3RhdGlvbiBzdG9yYWdlLgo+IAo+IAo+ICAgICAg
PiBEaWQgb3VyIGhlbHBlciByZXNwb25zZSBwYXJzZXIgZXZlciBzcGxpdCBzdWNoIGZpZWxkcyBp
biB0aGUKPiAgICAgID4gcGFzdD8KPiAgICAgID4KPiAKPiAgICAgSWYgaXQgZGlkIHRoYXQgd2Fz
IGEgYnVnLiBQcmlvciB0byB0aGUgYW5ub3RhdGlvbnMgZmVhdHVyZSB3ZSBkaWQgbm90Cj4gICAg
IHN1cHBvcnQga2V5PXZhbHVlLWxpc3QsIG9ubHkga2V5PXZhbHVlIChzaW5ndWxhciB2YWx1ZSku
Cj4gCj4gCj4gCj4gICAgICA+IEJUVywgMjAxNSBjb21taXQgNzZlZTY3YWMgdXNlZCBhIHZlcnkg
c2ltaWxhciBleGFtcGxlLiBBRkFJQ1QgYnkKPiAgICAgbG9va2luZwo+ICAgICAgPiBhdCB0aGF0
IGNvZGUsIHdlIGRpZCBub3QgYXBwbHkgdmFsdWUgZGVsaW1pdGVycyBieSBkZWZhdWx0IGJhY2sg
dGhlbgo+ICAgICAgPiAoaS5lLiB3aGVuIEFDTF9GX1NVQlNUUklORyBhLmsuYS4gIi1tIiBmbGFn
IHdhcyBub3Qgc2V0KS4gVGhlIGJ1Zwo+ICAgICB3YXMKPiAgICAgID4gaW50cm9kdWNlZCBpbiAy
MDE3IGNvbW1pdCA0ZWFjMzQwNyB0aGF0IHJlcGxhY2VkIGEgcG9zc2libHktbmlsCj4gICAgICA+
IGBmbGFncy5kZWxpbWl0ZXJzKClgIHdpdGggYSBuZXZlci1uaWwgYCZkZWxpbWl0ZXJzLnZhbHVl
YC4KPiAgICAgID4KPiAgICAgID4gVGhlIGZvbGxvd2luZyBjb21tZW50IHN1Z2dlc3RzIHRoYXQg
d2UgbWlzc2VkIHRoZSBmYWN0IHRoYXQgdXNpbmcKPiAgICAgdGhlCj4gICAgICA+IFtkZWZhdWx0
LWluaXRpYWxpemVkXSB2YWx1ZSAid2l0aG91dCBjaGVja2luZyB3aGV0aGVyIHRoZSBvcHRpb24g
aXMKPiAgICAgID4gZW5hYmxlZCgpIiBpcyBhIGJ1ZyAtLSB0aGUgY29ycmVzcG9uZGluZyAidHJp
Y2siIG5ldmVyIGZ1bGx5IHdvcmtlZDoKPiAgICAgID4KPiAgICAgID4gYGBgQysrCj4gICAgICA+
IC8vIFRPRE86IFNvbWUgY2FsbGVycyB1c2UgLnZhbHVlIHdpdGhvdXQgY2hlY2tpbmcgd2hldGhl
ciB0aGUKPiAgICAgb3B0aW9uIGlzCj4gICAgICA+IC8vIGVuYWJsZWQoKSwgYWNjZXNzaW5nIHRo
ZSAoZGVmYXVsdC1pbml0aWFsaXplZCBvciBjdXN0b21pemVkKQo+ICAgICBkZWZhdWx0Cj4gICAg
ICA+IC8vIHZhbHVlIHRoYXQgd2F5LiBUaGlzIHRyaWNrIHdpbGwgc3RvcCB3b3JraW5nIGlmIHdl
IGFkZCB2YWx1ZWQKPiAgICAgb3B0aW9ucwo+ICAgICAgPiAvLyB0aGF0IGNhbiBiZSBkaXNhYmxl
ZCAoZS5nLiwgLS13aXRoLWZvbz14IC0td2l0aG91dC1mb28pLgo+ICAgICAgPiBgYGAKPiAgICAg
ID4KPiAgICAgID4KPiAgICAgID4+IEhvd2V2ZXIsIHRoaXMgaXMgbm90IHRoZSBjYXNlLiBUaGUg
aGVscGVyJ3MgcmVzcG9uc2UgaXMgc3BsaXQgaW50bwo+ICAgICAgPj4gdG9rZW5zIHVzaW5nIGEg
Y29tbWEgYXMgdGhlIGRlZmF1bHQgZGVsaW1pdGVyLiBBcyBhIHJlc3VsdCwgb25seQo+ICAgICBB
Q0xzCj4gICAgICA+PiBsaWtlIHRoZSBmb2xsb3dpbmcgd2lsbCBtYXRjaDoKPiAgICAgID4+IMKg
wqAgwqAgYWNsIHN0YWZmIG5vdGUgZ3JvdXAgbGF3eWVycwo+ICAgICAgPj4KPiAgICAgID4+IFRo
aXMgYmVoYXZpb3Igb2NjdXJzIGJlY2F1c2UgaW4gQWNsOjpOb3RlQ2hlY2s6Om1hdGNoTm90ZXMo
KSwgYQo+ICAgICBjb21tYQo+ICAgICAgPj4gaXMgcGFzc2VkIGFzIHRoZSBkZWZhdWx0IGRlbGlt
aXRlciB0byB0aGUgZXhwYW5kTGlzdEVudHJpZXMoKQo+ICAgICBmdW5jdGlvbgo+ICAgICAgPgo+
ICAgICAgPiBBZ3JlZWQuCj4gICAgICA+Cj4gCj4gICAgIE5vZC4KPiAKPiAgICAgID4KPiAgICAg
ID4+IEkgd291bGQgbGlrZSB0byBwcm9wb3NlIHR3byBjaGFuZ2VzOgo+ICAgICAgPj4gMS4gUmVt
b3ZpbmcgdGhlIGRlZmF1bHQgY29tbWEgZGVsaW1pdGVyLgo+ICAgICAgPgo+ICAgICAgPiAuLi4g
YW5kIGNoZWNrIGVuYWJsZWQoKSBiZWZvcmUgdXNpbmcgdGhlIHN0b3JlZCB2YWx1ZSwgZml4aW5n
IHRoZQo+ICAgICBidWcKPiAgICAgID4gaW50cm9kdWNlZCBpbiAyMDE3IGNvbW1pdCA0ZWFjMzQw
Ny4KPiAgICAgID4KPiAKPiAgICAgSU1PIHRoYXQgaXMgdGhlIGluaXRpYWwgYnVnIGNhdXNpbmcg
aXNzdWVzLgo+IAo+IAo+IAo+ICAgICAgPgo+ICAgICAgPj4gSSBhbSBwcmVwYXJlZCB0byBzdWJt
aXQgYSBzaW1wbGUgUFIgdG8gZXhjbHVkZSB0aGlzIGNvbW1hIHRvIGZpeAo+ICAgICB0aGUKPiAg
ICAgID4+IGluY29ycmVjdCBtYXRjaGluZyBvZiBzdHJpbmdzIGNvbnRhaW5pbmcgY29tbWFzLgo+
ICAgICAgPj4gSG93ZXZlciwgSSByZWFsaXplIHRoaXMgbWlnaHQgYmUgYSBicmVha2luZyBjaGFu
Z2UgZm9yIHVzZXJzIHdobwo+ICAgICAgPj4gY3VycmVudGx5IHJlbHkgb24gdGhpcyBpbXBsaWNp
dCBzcGxpdHRpbmcgYmVoYXZpb3IuCj4gICAgICA+Cj4gICAgICA+IFllcy4gV2Ugc2hvdWxkIGRp
c2Nsb3NlIHRoZSBidWcgZml4IGluIFNxdWlkIHJlbGVhc2Ugbm90ZXMuCj4gICAgICA+Cj4gICAg
ICA+IFdlIGNhbiBhbHNvIGFkZCBjb2RlIHRvIHdhcm4gYWRtaW5zICh2aWEgYSBjYWNoZS5sb2cg
V0FSTklORwo+ICAgICBtZXNzYWdlKQo+ICAgICAgPiB3aGVuIGEgIm5vdGUiIEFDTCBjb25maWd1
cmVkIHdpdGhvdXQgIi1tIiBsb29rcyBhdCBhbiBhbm5vdGF0aW9uCj4gICAgIHZhbHVlCj4gICAg
ICA+IGNvbnRhaW5pbmcgYSBjb21tYSwgYnV0IHRoYXQgcmVxdWlyZXMgbW9yZSB3b3JrLgo+ICAg
ICAgPgo+ICAgICAgPgo+ICAgICAgPj4gMi4gU3VwcG9ydGluZyBjdXN0b20gZGVsaW1pdGVycyBp
biBoZWxwZXIgcmVzcG9uc2VzLgo+ICAgICAgPj4gSSBhbHNvIHByb3Bvc2UgYSBQUiB0byBzdXBw
b3J0IGEgZm9ybWF0IHdoZXJlIHRhZyB2YWx1ZXMgY2FuIGJlCj4gICAgIHBhc3NlZAo+ICAgICAg
Pj4gYXMgYSBsaXN0IHdpdGggYSBjdXN0b20gZGVsaW1pdGVyOgo+ICAgICAgPj4gwqDCoCDCoCA8
a2V5Pj08ZGVsaW1pdGVyPiI8dmFsdWUxPjxkZWxpbWl0ZXI+PHZhbHVlMj4uLi4iCj4gICAgICA+
PiBGb3IgZXhhbXBsZToKPiAgICAgID4+IMKgwqAgwqAgZ3JvdXA9LCJncm91cDEsZ3JvdXAyLGdy
b3VwMyIKPiAgICAgID4+IMKgwqAgwqAgY2x0X2Nvbl90YWc9OyJ0YWcxO3RhZzI7dGFnMyIKPiAg
ICAgID4+IEluIHRoaXMgUFIsIHRoZSBoZWxwZXIgcmVzcG9uc2Ugd291bGQgYmUgdG9rZW5pemVk
IGJhc2VkIG9uIHRoZQo+ICAgICAgPj4gc3BlY2lmaWVkIGN1c3RvbSBkZWxpbWl0ZXIsIHdoaWxl
IHN0aWxsIHN1cHBvcnRpbmcgZGVsaW1pdGVyCj4gICAgIGVzY2FwaW5nCj4gICAgICA+PiB3aXRo
IGEgYmFja3NsYXNoIChcKS4KPiAgICAgID4KPiAgICAgID4gSSBkbyBub3QgdGhpbmsgdGhpcyBo
YWNrIHdpbGwgd29yayB3ZWxsIGFzIGlzLCB3aXRob3V0IHN5bnRheAo+ICAgICAgPiBtb2RpZmlj
YXRpb25zIGJlY2F1c2UgU3F1aWQgYWxyZWFkeSB1c2VzIGRvdWJsZSBxdW90ZXMgc3BlY2lhbGx5
Cj4gICAgIGluIHRoaXMKPiAgICAgID4gY29udGV4dC4gT3ZlcmxvYWRpbmcgcXVvdGF0aW9uIG1l
YW5pbmcgd291bGQgYmUgY29uZnVzaW5nL3dyb25nLgo+ICAgICAgPgo+ICAgICAgPiBPdmVyYWxs
LCBJIGFtIG5vdCBleGNpdGVkIGFib3V0IHRoaXMgaGFjaywgYnV0IGxldCdzIHN0YXJ0IHdpdGgK
PiAgICAgdGhlc2UKPiAgICAgID4gcXVlc3Rpb25zIGFib3V0IGl0cyBzY29wZToKPiAgICAgID4K
PiAgICAgID4gKiBDYW4gdGhlIHNhbWUgZWZmZWN0IGJlIGFjaGlldmVkIHRvZGF5IGJ5IHNlbmRp
bmcgYSBoZWxwZXIgcmVzcG9uc2UKPiAgICAgID4gY29udGFpbmluZyBtdWx0aXBsZSBzYW1lLW5h
bWUgYW5ub3RhdGlvbnM/IEZvciBleGFtcGxlOgo+ICAgICAgPgo+ICAgICAgPsKgIMKgwqDCoCBn
cm91cD1ncm91cDEgZ3JvdXA9Z3JvdXAyIGdyb3VwPWdyb3VwMwo+ICAgICAgPgo+IAo+ICAgICBO
by4gVGhhdCB3aWxsIGJlIGFkZGVkIGFzIHRocmVlIGRpZmZlcmVudCBrdi1wYWlyIGJ5IHRoZSBo
ZWxwZXIgbG9naWMuCj4gCj4gICAgIFRoZSBhbm5vdGF0aW9ucyBzdG9yaW5nIGt2LXBhaXIgaW4g
TWlNRSBzeW50YXggd2l0aCBtaXhlZCBhcmJpdHJhcnkKPiAgICAga2V5PXZhbHVlIGFuZCBrZXk9
bGlzdCxvZix2YWx1ZXMgaXMgYSBwcm9ibGVtLgo+IAo+IAo+ICAgICAgPiAqIElmIHRoZSAibm90
ZSIgQUNMIGJ1ZyBpcyBmaXhlZCwgZG8gd2Ugc3RpbGwgbmVlZCB0byBhbGxvdwo+ICAgICBoZWxw
ZXIgdG8KPiAgICAgID4gdXNlIGN1c3RvbSB2YWx1ZSBkZWxpbWl0ZXJzPwo+ICAgICAgPgo+ICAg
ICAgPiAqIFdoYXQgd291bGQgU3F1aWQgZG8gdG9kYXkgaWYgaXQgcmVjZWl2ZXMgYSBgZ3JvdXA9
LCJhLGIiYAo+ICAgICBhbm5vdGF0aW9uCj4gICAgICA+IGZyb20gYSBoZWxwZXI/IEFGQUlDVCBm
cm9tIGxvb2tpbmcgYXQKPiAgICAgID4gSGVscGVyOjpSZXBseTo6cGFyc2VSZXNwb25zZUtleXMo
KSwgU3F1aWQgd291bGQgc2lsZW50bHkgdHJlYXQgdGhlCj4gICAgICA+IGxlYWRpbmcgY29tbWEg
ZGVsaW1pdGVyIGFzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHJlY2VpdmVkCj4gICAgICA+
IGFubm90YXRpb24gdmFsdWUgYW5kIGtlZXAgZG91YmxlIHF1b3RlcywgcmlnaHQ/Cj4gCj4gICAg
IE5vLiBBbGwgZG91YmxlLXF1b3RlcyBhcmUgcmVtb3ZlZC4KPiAKPiAgICAgVGhhdCBpbnB1dCB3
b3VsZCByZWFjaCB0aGUgYW5ub3RhdGlvbnMgc3RvcmFnZSBhczoKPiAgICAgIMKgIMKgeyBrZXk6
ICdncm91cCcsIHZhbHVlOiAnLGEsYicgfQo+IAo+ICAgICBUaGVuIHRoZSBhbm5vdGF0aW9uIHN0
b3JhZ2Ugc2F2ZXMgdGhhdCBhcyBrZXk9dmFsdWUsbGlzdCBzeW50YXggYW5kCj4gICAgIGV4cGFu
ZHMgaXQgbGF0ZXIuIFNhbWUgcHJvYmxlbXMgYWxsIG92ZXIgYWdhaW4uCj4gCj4gCj4gICAgICA+
Cj4gICAgICA+ICogU3F1aWQgZG9lcyBub3QgdHJlYXQgYmFja3NsYXNoZXMgaW4gYW5ub3RhdGlv
biB2YWx1ZXMgc3BlY2lhbGx5Cj4gICAgIHRvZGF5LAo+ICAgICAgPiBkb2VzIGl0PyBJZiBwcmVz
ZW50LCB0aGV5IGJlY29tZSBwYXJ0IG9mIHRoZSBhbm5vdGF0aW9uIGtleSBvcgo+ICAgICB2YWx1
ZSwKPiAgICAgID4gcmlnaHQ/Cj4gCj4gICAgIE5vLiBUaGV5IGFyZSB0cmFuc2xhdGVkIGJ5IHRo
ZSBoZWxwZXIgcmVzcG9uc2UgcGFyc2VyIGludG8gb2N0ZXRzLgo+IAo+IAo+ICAgICBJbnB1dCAn
IGdyb3VwPSJhXCxiIiAnIHdvdWxkIHJlYWNoIHRoZSBhbm5vdGF0aW9ucyBzdG9yYWdlIGFzOgo+
ICAgICAgwqAgwqB7IGtleTogJ2dyb3VwJywgdmFsdWU6ICdhLGInIH0KPiAKPiAKPiAgICAgVGhl
IGJ1ZyBpcyBub3QgaW4gdGhlIGhlbHBlciBwcm90b2NvbC4gSXQgZG9lcyAqKm5vdGhpbmcqKiB3
aXRoIGNvbW1hLgo+ICAgICBDb3JyZWN0bHkgc28gSU1PLgo+IAo+IAo+ICAgICBIVEgKPiAgICAg
QW1vcwo+IAo+ICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwo+ICAgICBzcXVpZC1kZXYgbWFpbGluZyBsaXN0Cj4gICAgIHNxdWlkLWRldkBsaXN0cy5z
cXVpZC1jYWNoZS5vcmcgPG1haWx0bzpzcXVpZC1kZXZAbGlzdHMuc3F1aWQtY2FjaGUub3JnPgo+
ICAgICBodHRwczovL2xpc3RzLnNxdWlkLWNhY2hlLm9yZy9saXN0aW5mby9zcXVpZC1kZXYKPiAg
ICAgPGh0dHBzOi8vbGlzdHMuc3F1aWQtY2FjaGUub3JnL2xpc3RpbmZvL3NxdWlkLWRldj4KPiAK
PiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IHNx
dWlkLWRldiBtYWlsaW5nIGxpc3QKPiBzcXVpZC1kZXZAbGlzdHMuc3F1aWQtY2FjaGUub3JnCj4g
aHR0cHM6Ly9saXN0cy5zcXVpZC1jYWNoZS5vcmcvbGlzdGluZm8vc3F1aWQtZGV2CgpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpzcXVpZC1kZXYgbWFpbGlu
ZyBsaXN0CnNxdWlkLWRldkBsaXN0cy5zcXVpZC1jYWNoZS5vcmcKaHR0cHM6Ly9saXN0cy5zcXVp
ZC1jYWNoZS5vcmcvbGlzdGluZm8vc3F1aWQtZGV2Cg==