[COMMIT] Avoid confusion about ELC vs. source file encoding, #'load, #'load-internal.

Aidan Kehoe <[email protected]> Wed, 3 Jun 2015 20:14:52 +0100
Newsgroups gmane.emacs.xemacs.patches
Message-ID <[email protected]>
CkFQUFJPVkUgQ09NTUlUCgpOT1RFOiBUaGlzIHBhdGNoIGhhcyBiZWVuIGNvbW1pdHRlZC4KCiMg
SEcgY2hhbmdlc2V0IHBhdGNoCiMgVXNlciBBaWRhbiBLZWhvZSA8a2Vob2VhQHBhcmhhc2FyZC5u
ZXQ+CiMgRGF0ZSAxNDMzMzU4Nzg3IC0zNjAwCiMgICAgICBXZWQgSnVuIDAzIDIwOjEzOjA3IDIw
MTUgKzAxMDAKIyBOb2RlIElEIDExNTJlMDA5MWY4YzViZDc5OTkxN2Y1MGQ0MjU0ZWZlZmYyYTU1
YzgKIyBQYXJlbnQgIDFhZjUzZDM1ZGQ1MzAwMjNjOWU5NmE0YzIzMGY5M2U0MWE2NDMzMDYKQXZv
aWQgY29uZnVzaW9uIGFib3V0IEVMQyB2cy4gc291cmNlIGZpbGUgZW5jb2RpbmcsICMnbG9hZCwg
Iydsb2FkLWludGVybmFsLgoKbGlzcC9DaGFuZ2VMb2cgYWRkaXRpb246CgoyMDE1LTA2LTAzICBB
aWRhbiBLZWhvZSAgPGtlaG9lYUBwYXJoYXNhcmQubmV0PgoKCSogY29kZS1maWxlcy5lbCAobG9h
ZCk6CglSZXZpc2UgdGhpcyB0byByZXNwZWN0IGxvYWQtaWdub3JlLW91dC1vZi1kYXRlLWVsYy1m
aWxlcywgcmF0aGVyCgl0aGFuIGxlYXZpbmcgdGhhdCB0byAjJ2xvYWQtaW50ZXJuYWwuIEF2b2lk
cyBhIGNvcm5lciBjYXNlIHdoZXJlCgl0aGUgc291cmNlIGFuZCB0aGUgY29tcGlsZWQgZmlsZSBo
YXZlIGRpZmZlcmVudCwgaW5jb21wYXRpYmxlCgllbmNvZGluZ3MuCglNb3ZlIHRoZSBjYWxsIHRv
ICMnc3Vic3RpdHV0ZS1pbi1maWxlLW5hbWUgaGVyZS4KCU5vIGxvbmdlciBjaGVjayBmb3IgYSB6
ZXJvLWxlbmd0aCBmaWxlbmFtZSwgc2luY2UgIydsb2FkLWludGVybmFsCglubyBsb25nZXIgY2hv
a2VzIG9uIHNhbWUgYW5kIGVycm9ycyBjb3JyZWN0bHkuCgpzcmMvQ2hhbmdlTG9nIGFkZGl0aW9u
OgoKMjAxNS0wNi0wMyAgQWlkYW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KCgkqIGxy
ZWFkLmMgKEZsb2FkX2ludGVybmFsKToKCURlbGVnYXRlIGNhbGxpbmcgdGhlIGhhbmRsZXIgYW5k
ICMnc3Vic3RpdHV0ZS1pbi1maWxlLW5hbWUgdG8gIydsb2FkLgoJRXJyb3IgY29ycmVjdGx5IHdp
dGggYSB6ZXJvLWxlbmd0aCBmaWxlIG5hbWUsIGluc3RlYWQgb2YgZ2l2aW5nIGEKCWJ1cyBlcnJv
ciBvbiBteSBtYWNoaW5lLgoJRGVsZWdhdGUgdGhlIGNoZWNrIGZvciBvdXQtb2YtZGF0ZSBFTEMg
ZmlsZXMgdG8gIydsb2FkLAoJYXZvaWRpbmcgYSBidWcgd2hlcmUgdGhlIGVuY29kaW5nIG9mIHRo
ZSBFTEMgZmlsZSBhbmQgdGhlIHNvdXJjZQoJZmlsZSBkaWZmZXJlZC4KCSogbHJlYWQuYyAoUFJJ
TlRfTE9BRElOR19NRVNTQUdFXzEpOgoJVGhpcyBpcyBzaW1wbGlmaWVkLCBub3cgd2Ugbm8gbG9u
Z2VyIGhhdmUgdG8gdGFsayBhYm91dAoJb3V0LW9mLWRhdGUgRUxDIGZpbGVzLgoKdGVzdHMvQ2hh
bmdlTG9nIGFkZGl0aW9uOgoKMjAxNS0wNi0wMyAgQWlkYW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFz
YXJkLm5ldD4KCgkqIGF1dG9tYXRlZC9maWxlLXRlc3RzLmVsOgoJR3Jvc3Mgc2FuaXR5IGNoZWNr
IGZvciAjJ2xvYWQgYW5kICMnbG9hZC1pbnRlcm5hbCB3aXRoIGEKCXplcm8tbGVuZ3RoIEZJTEUs
IHNvbWV0aGluZyB0aGF0IGNyYXNoZWQgdW50aWwgdG9kYXkuCgpkaWZmIC1yIDFhZjUzZDM1ZGQ1
MyAtciAxMTUyZTAwOTFmOGMgbGlzcC9DaGFuZ2VMb2cKLS0tIGEvbGlzcC9DaGFuZ2VMb2cJRnJp
IE1heSAyOSAxNzowNjoyNCAyMDE1ICswMTAwCisrKyBiL2xpc3AvQ2hhbmdlTG9nCVdlZCBKdW4g
MDMgMjA6MTM6MDcgMjAxNSArMDEwMApAQCAtMSwzICsxLDE0IEBACisyMDE1LTA2LTAzICBBaWRh
biBLZWhvZSAgPGtlaG9lYUBwYXJoYXNhcmQubmV0PgorCisJKiBjb2RlLWZpbGVzLmVsIChsb2Fk
KToKKwlSZXZpc2UgdGhpcyB0byByZXNwZWN0IGxvYWQtaWdub3JlLW91dC1vZi1kYXRlLWVsYy1m
aWxlcywgcmF0aGVyCisJdGhhbiBsZWF2aW5nIHRoYXQgdG8gIydsb2FkLWludGVybmFsLiBBdm9p
ZHMgYSBjb3JuZXIgY2FzZSB3aGVyZQorCXRoZSBzb3VyY2UgYW5kIHRoZSBjb21waWxlZCBmaWxl
IGhhdmUgZGlmZmVyZW50LCBpbmNvbXBhdGlibGUKKwllbmNvZGluZ3MuCisJTW92ZSB0aGUgY2Fs
bCB0byAjJ3N1YnN0aXR1dGUtaW4tZmlsZS1uYW1lIGhlcmUuCisJTm8gbG9uZ2VyIGNoZWNrIGZv
ciBhIHplcm8tbGVuZ3RoIGZpbGVuYW1lLCBzaW5jZSAjJ2xvYWQtaW50ZXJuYWwKKwlubyBsb25n
ZXIgY2hva2VzIG9uIHNhbWUgYW5kIGVycm9ycyBjb3JyZWN0bHkuCisKIDIwMTUtMDUtMTUgIEFp
ZGFuIEtlaG9lICA8a2Vob2VhQHBhcmhhc2FyZC5uZXQ+CiAKIAkqIHNpbXBsZS5lbDoKZGlmZiAt
ciAxYWY1M2QzNWRkNTMgLXIgMTE1MmUwMDkxZjhjIGxpc3AvY29kZS1maWxlcy5lbAotLS0gYS9s
aXNwL2NvZGUtZmlsZXMuZWwJRnJpIE1heSAyOSAxNzowNjoyNCAyMDE1ICswMTAwCisrKyBiL2xp
c3AvY29kZS1maWxlcy5lbAlXZWQgSnVuIDAzIDIwOjEzOjA3IDIwMTUgKzAxMDAKQEAgLTI0OCw1
NCArMjQ4LDg4IEBACiAgLmVsYywgLmVsLCBvciBlbGVtZW50cyBvZiBgbW9kdWxlLWV4dGVuc2lv
bnMnIHRvIHRoZSBzcGVjaWZpZWQgbmFtZSBGSUxFLgogUmV0dXJuIHQgaWYgZmlsZSBleGlzdHMu
IgogICAoZGVjbGFyZSAoc3BlY2lhbCBsb2FkLW1vZHVsZXMtcXVpZXRseSkpCi0gIChsZXQgKCho
YW5kbGVyIChmaW5kLWZpbGUtbmFtZS1oYW5kbGVyIGZpbGVuYW1lICdsb2FkKSkKLQkocGF0aCBu
aWwpKQotICAgIChpZiBoYW5kbGVyCi0JKGZ1bmNhbGwgaGFuZGxlciAnbG9hZCBmaWxlbmFtZSBu
b2Vycm9yIG5vbWVzc2FnZSBub3N1ZmZpeCkKLSAgICAgIDs7IEZpcnN0IHRyeSB0byBsb2FkIGEg
TGlzcCBmaWxlCi0gICAgICAoaWYgKGFuZCAoPiAobGVuZ3RoIGZpbGVuYW1lKSAwKQotCSAgICAg
ICAoc2V0cSBwYXRoIChsb2NhdGUtZmlsZSBmaWxlbmFtZSBsb2FkLXBhdGgKLQkJCQkgICAgICAg
KGFuZCAobm90IG5vc3VmZml4KQotCQkJCQkgICAgJygiLmVsYyIgIi5lbCIgIiIpKSkpKQotCSAg
Ozsgbm93IHVzZSB0aGUgaW50ZXJuYWwgbG9hZCB0byBhY3R1YWxseSBsb2FkIHRoZSBmaWxlLgot
CSAgKGxvYWQtaW50ZXJuYWwKLQkgICBmaWxlbmFtZSBub2Vycm9yIG5vbWVzc2FnZSBub3N1ZmZp
eAotCSAgIChsZXQgKChlbGMgOyB1c2Ugc3RyaW5nPSBpbnN0ZWFkIG9mIHN0cmluZy1tYXRjaCB0
byBrZWVwIG1hdGNoLWRhdGEuCi0JCSAgKGVxdWFscCAiLmVsYyIgKHN1YnN0cmluZyBwYXRoIC00
KSkpKQotCSAgICAgKG9yIChhbmQgKG5vdCBlbGMpIGNvZGluZy1zeXN0ZW0tZm9yLXJlYWQpCTtw
cmVmZXIgZm9yIHNvdXJjZSBmaWxlCi0JCSA7OyBmaW5kIG1hZ2ljLWNvb2tpZQotCQkgKGxldCAo
KGNvZGVzeXMKLQkJCShmaW5kLWNvZGluZy1zeXN0ZW0tbWFnaWMtY29va2llLWluLWZpbGUgcGF0
aCkpKQotCQkgICAod2hlbiBjb2Rlc3lzCi0JCSAgICAgKHNldHEgY29kZXN5cyAoaW50ZXJuIGNv
ZGVzeXMpKQotCQkgICAgIChpZiAoZmluZC1jb2Rpbmctc3lzdGVtIGNvZGVzeXMpIGNvZGVzeXMp
KSkKLQkJIChpZiBlbGMKLQkJICAgICA7OyBpZiByZWFkaW5nIGEgYnl0ZS1jb21waWxlZCBmaWxl
IGFuZCB3ZSBkaWRuJ3QgZmluZAotCQkgICAgIDs7IGEgY29kaW5nLXN5c3RlbSBtYWdpYyBjb29r
aWUsIHRoZW4gdXNlIGBiaW5hcnknLgotCQkgICAgIDs7IFdlIG5lZWQgdG8gZ3VhcmFudGVlIHRo
YXQgd2UgbmV2ZXIgZG8gYXV0b2RldGVjdGlvbgotCQkgICAgIDs7IG9uIGJ5dGUtY29tcGlsZWQg
ZmlsZXMgYmVjYXVzZSBjb25mdXNpb24gaGVyZSB3b3VsZAotCQkgICAgIDs7IGJlIGEgdmVyeSBi
YWQgdGhpbmcuICBQcmUtZXhpc3RpbmcgYnl0ZS1jb21waWxlZAotCQkgICAgIDs7IGZpbGVzIGFy
ZSBhbHdheXMgaW4gdGhlIGBiaW5hcnknIGNvZGluZyBzeXN0ZW0uCi0JCSAgICAgOzsgQWxzbywg
Ynl0ZS1jb21waWxlZCBmaWxlcyBhbHdheXMgdXNlIGBsZicgdG8gdGVybWluYXRlCi0JCSAgICAg
OzsgYSBsaW5lOyBkb24ndCByaXNrIGNvbmZ1c2lvbiBoZXJlIGVpdGhlci4KLQkJICAgICAnYmlu
YXJ5Ci0JCSAgIChvciAoZmluZC1maWxlLWNvZGluZy1zeXN0ZW0tZm9yLXJlYWQtZnJvbS1maWxl
bmFtZSBwYXRoKQotCQkgICAgICAgOzsgbG9va2luZyB1cCBpbiBgZmlsZS1jb2Rpbmctc3lzdGVt
LWFsaXN0Jy4KLQkJICAgICAgIDs7IG90aGVyd2lzZSB1c2UgYGJ1ZmZlci1maWxlLWNvZGluZy1z
eXN0ZW0tZm9yLXJlYWQnLAotCQkgICAgICAgOzsgYXMgbm9ybWFsCi0JCSAgICAgICBidWZmZXIt
ZmlsZS1jb2Rpbmctc3lzdGVtLWZvci1yZWFkKQotCQkgICApKSkpCi0JOzsgVGhlIGZpbGUgbmFt
ZSBpcyBpbnZhbGlkLCBvciB3ZSB3YW50IHRvIGxvYWQgYSBiaW5hcnkgbW9kdWxlCi0JKGlmIChh
bmQgKD4gKGxlbmd0aCBmaWxlbmFtZSkgMCkKLQkJIChsb2NhdGUtZmlsZSBmaWxlbmFtZSBtb2R1
bGUtbG9hZC1wYXRoCi0JCQkgICAgICAoYW5kIChub3Qgbm9zdWZmaXgpIG1vZHVsZS1leHRlbnNp
b25zKSkpCi0JICAgIChpZiAoZmVhdHVyZXAgJ21vZHVsZXMpCi0JCShsZXQgKChsb2FkLW1vZHVs
ZXMtcXVpZXRseSBub21lc3NhZ2UpKQotCQkgIChkZWNsYXJlLWZib3VuZHAgKGxvYWQtbW9kdWxl
IGZpbGVuYW1lKSkpCi0JICAgICAgKHNpZ25hbCAnZmlsZS1lcnJvciAnKCJUaGlzIFhFbWFjcyBk
b2VzIG5vdCBzdXBwb3J0IG1vZHVsZXMiKSkpCi0JICAoYW5kIChudWxsIG5vZXJyb3IpCi0JICAg
ICAgIChzaWduYWwgJ2ZpbGUtZXJyb3IgKGxpc3QgIkNhbm5vdCBvcGVuIGxvYWQgZmlsZSIgZmls
ZW5hbWUpKSkpCi0JKSkpKQorICAobGV0IChoYW5kbGVyIHBhdGggZWxjIG9sZCAoc3BhY2VzICIi
KSkKKyAgICAoY29uZAorICAgICAgOzsgTWF5YmUgdGhlcmUncyBhIGhhbmRsZXIuCisgICAgICAo
KHNldHEgaGFuZGxlciAoZmluZC1maWxlLW5hbWUtaGFuZGxlciBmaWxlbmFtZSAnbG9hZCkpCisg
ICAgICAgKGZ1bmNhbGwgaGFuZGxlciAnbG9hZCBmaWxlbmFtZSBub2Vycm9yIG5vbWVzc2FnZSBu
b3N1ZmZpeCkpCisgICAgICA7OyBOb3BlLCBubyBoYW5kbGVyLiBUcnkgdG8gbG9hZCBhIExpc3Ag
ZmlsZS4KKyAgICAgICgoc2V0cSBwYXRoCisgICAgICAgICAgICAgKGxvY2F0ZS1maWxlIChzZXRx
IGZpbGVuYW1lIChzdWJzdGl0dXRlLWluLWZpbGUtbmFtZSBmaWxlbmFtZSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvYWQtcGF0aCAoYW5kIChub3Qgbm9zdWZmaXgpICcoIi5lbGMiICIu
ZWwiICIiKSkpKQorICAgICAgIChzZXRxIGVsYworICAgICAgICAgICAgIChub3QgKG1pc21hdGNo
CisgICAgICAgICAgICAgICAgICAgIi5lbGMiIHBhdGggOnRlc3QgKGFuZCAoZmlsZS1zeXN0ZW0t
aWdub3JlLWNhc2UtcCBwYXRoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIydlcXVhbHApCis6c3RhcnQyIChtYXggMCAoLSAobGVuZ3RoIHBhdGgpIChsZW5ndGgg
Ii5lbGMiKSkpKSkpCisgICAgICAgOzsgTWF5YmUgdGhlIC5lbGMgaXMgb3V0IG9mIGRhdGUgd2l0
aCByZWdhcmQgdG8gdGhlIC5lbCBmaWxlLiBJZiBzbyB3ZQorICAgICAgIDs7IG1heSBuZWVkIHRv
IHByZWZlciB0aGUgLmVsIGZpbGUsIG9yIGp1c3QgdG8gd2Fybi4KKyAgICAgICAod2hlbiAoYW5k
IGVsYyAob3IgbG9hZC1pZ25vcmUtb3V0LW9mLWRhdGUtZWxjLWZpbGVzCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvYWQtd2Fybi13aGVuLXNvdXJjZS1uZXdlcikKKyAgICAgICAgICAgICAg
ICAgIChmaWxlLW5ld2VyLXRoYW4tZmlsZS1wIChzdWJzZXEgcGF0aCAwIC0xKSBwYXRoKSkKKyAg
ICAgICAgIChzZXRxIG9sZCAoaWYgbG9hZC1zaG93LWZ1bGwtcGF0aC1pbi1tZXNzYWdlcworICAg
ICAgICAgICAgICAgICAgICAgICBwYXRoCisgICAgICAgICAgICAgICAgICAgICAoZmlsZS1uYW1l
LW5vbmRpcmVjdG9yeSBwYXRoKSkKKyAgICAgICAgICAgICAgIG5vbWVzc2FnZSAob3Igbm9tZXNz
YWdlIHQpKQorICAgICAgICAgICAgICAgOzsgQ29uc2lkZXJlZCBiaW5kaW5nIHRoaXMgd2l0aGlu
IHRoaXMgZnVuY3Rpb24sIGJ1dCBkZWNpZGVkCisgICAgICAgICAgICAgICA7OyBhZ2FpbnN0IGl0
LCBzaW5jZSBpdCdzIG1vc3QgdXNlZCBmb3IgZGVidWdnaW5nLCBhbmQKKyAgICAgICAgICAgICAg
IDs7IGVuY291bnRlcmluZyBhbiBvdXQtb2YtZGF0ZS1FTEMgZmlsZSBzaG91bGQgaGFwcGVuIHJh
cmVseQorICAgICAgICAgICAgICAgOzsgZW5vdWdoIHRoYXQgdGhlIGluZmVsaWNpdHkgb2YgdGhl
IGRvdWJsZS1sb2FkaW5nIG1lc3NhZ2UgaXMKKyAgICAgICAgICAgICAgIDs7IG91dHdlaWdoZWQg
YnkgdGhlIGltcHJvdmVtZW50IGluIGRlYnVnZ2luZzoKKyAgICAgICAgICAgICAgIDtsb2FkLWFs
d2F5cy1kaXNwbGF5LW1lc3NhZ2VzIG5pbCkKKyAgICAgICAgIChpZiAoYW5kIG5vbmludGVyYWN0
aXZlIGxvYWQtaW4tcHJvZ3Jlc3MpCisgICAgICAgICAgICAgKHNldHEgc3BhY2VzICIgICIpKQor
ICAgICAgICAgKHdoZW4gbG9hZC1pZ25vcmUtb3V0LW9mLWRhdGUtZWxjLWZpbGVzCisgICAgICAg
ICAgIChzZXRxIGZpbGVuYW1lCisgICAgICAgICAgICAgICAgIChpZiAobm90IChtaXNtYXRjaCAi
LmVsYyIgZmlsZW5hbWUKKzpzdGFydDIgKG1heCAwICgtIChsZW5ndGggZmlsZW5hbWUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3Ro
ICIuZWxjIikpKSkpCisgICAgICAgICAgICAgICAgICAgICAoc3Vic2VxIGZpbGVuYW1lIDAgLTEp
CisgICAgICAgICAgICAgICAgICAgKGNvbmNhdCBmaWxlbmFtZSAiLmVsYyIpKQorICAgICAgICAg
ICAgICAgICBwYXRoIChsb2NhdGUtZmlsZSBmaWxlbmFtZSBsb2FkLXBhdGgpKSkKKyAgICAgICAg
IChtZXNzYWdlICIlcyVzICVzLi4uIChmaWxlICVzIGlzIG91dC1vZi1kYXRlKSIgc3BhY2VzCisg
ICAgICAgICAgICAgICAgICAoaWYgKGVxIG5vbWVzc2FnZSAncmVxdWlyZSkgIlJlcXVpcmluZyIg
IkxvYWRpbmciKQorICAgICAgICAgICAgICAgICAgKGlmIGxvYWQtc2hvdy1mdWxsLXBhdGgtaW4t
bWVzc2FnZXMgcGF0aCBmaWxlbmFtZSkgb2xkKSkKKyAgICAgICA7OyBOb3cgdXNlICMnbG9hZC1p
bnRlcm5hbCB0byBhY3R1YWxseSBsb2FkIHRoZSBmaWxlLgorICAgICAgIChwcm9nMQorICAgICAg
ICAgICAobG9hZC1pbnRlcm5hbAorICAgICAgICAgICAgZmlsZW5hbWUgbm9lcnJvciBub21lc3Nh
Z2Ugbm9zdWZmaXgKKyAgICAgICAgICAgIChvciAoYW5kIChub3QgZWxjKSBjb2Rpbmctc3lzdGVt
LWZvci1yZWFkKSA7OyBQcmVmZXIgZm9yIHNvdXJjZQorICAgICAgICAgICAgICAgIDs7IGZpbmQg
bWFnaWMtY29va2llCisgICAgICAgICAgICAgICAgKGxldCAoKGNvZGVzeXMKKyAgICAgICAgICAg
ICAgICAgICAgICAgKGZpbmQtY29kaW5nLXN5c3RlbS1tYWdpYy1jb29raWUtaW4tZmlsZSBwYXRo
KSkpCisgICAgICAgICAgICAgICAgICAod2hlbiBjb2Rlc3lzCisgICAgICAgICAgICAgICAgICAg
IChzZXRxIGNvZGVzeXMgKGludGVybiBjb2Rlc3lzKSkKKyAgICAgICAgICAgICAgICAgICAgKGlm
IChmaW5kLWNvZGluZy1zeXN0ZW0gY29kZXN5cykgY29kZXN5cykpKQorICAgICAgICAgICAgICAg
IChpZiBlbGMKKyAgICAgICAgICAgICAgICAgICAgOzsgSWYgcmVhZGluZyBhIGJ5dGUtY29tcGls
ZWQgZmlsZSBhbmQgd2UgZGlkbid0IGZpbmQgYQorICAgICAgICAgICAgICAgICAgICA7OyBjb2Rp
bmctc3lzdGVtIG1hZ2ljIGNvb2tpZSwgdGhlbiB1c2UgYGJpbmFyeScuICBXZSBuZWVkCisgICAg
ICAgICAgICAgICAgICAgIDs7IHRvIGd1YXJhbnRlZSB0aGF0IHdlIG5ldmVyIGRvIGF1dG9kZXRl
Y3Rpb24gb24KKyAgICAgICAgICAgICAgICAgICAgOzsgYnl0ZS1jb21waWxlZCBmaWxlcyBiZWNh
dXNlIGNvbmZ1c2lvbiBoZXJlIHdvdWxkIGJlIGEKKyAgICAgICAgICAgICAgICAgICAgOzsgdmVy
eSBiYWQgdGhpbmcuICBQcmUtZXhpc3RpbmcgYnl0ZS1jb21waWxlZCBmaWxlcyBhcmUKKyAgICAg
ICAgICAgICAgICAgICAgOzsgYWx3YXlzIGluIHRoZSBgYmluYXJ5JyBjb2Rpbmcgc3lzdGVtLiAg
QWxzbywKKyAgICAgICAgICAgICAgICAgICAgOzsgYnl0ZS1jb21waWxlZCBmaWxlcyBhbHdheXMg
dXNlIGBsZicgdG8gdGVybWluYXRlIGEKKyAgICAgICAgICAgICAgICAgICAgOzsgbGluZTsgZG9u
J3QgcmlzayBjb25mdXNpb24gaGVyZSBlaXRoZXIuCisgICAgICAgICAgICAgICAgICAgICdiaW5h
cnkKKyAgICAgICAgICAgICAgICAgIChvciAoZmluZC1maWxlLWNvZGluZy1zeXN0ZW0tZm9yLXJl
YWQtZnJvbS1maWxlbmFtZSBwYXRoKQorICAgICAgICAgICAgICAgICAgICAgIDs7IGxvb2tpbmcg
dXAgaW4gYGZpbGUtY29kaW5nLXN5c3RlbS1hbGlzdCcuICBvdGhlcndpc2UKKyAgICAgICAgICAg
ICAgICAgICAgICA7OyB1c2UgYGJ1ZmZlci1maWxlLWNvZGluZy1zeXN0ZW0tZm9yLXJlYWQnLCBh
cyBub3JtYWwKKyAgICAgICAgICAgICAgICAgICAgICBidWZmZXItZmlsZS1jb2Rpbmctc3lzdGVt
LWZvci1yZWFkKSkpKQorICAgICAgICAgKGFuZCBvbGQKKyAgICAgICAgICAgICAgKG1lc3NhZ2Ug
IiVzJXMgJXMuLi4gZG9uZSAoZmlsZSAlcyBpcyBvdXQtb2YtZGF0ZSkiIHNwYWNlcworICAgICAg
ICAgICAgICAgICAgICAgICAoaWYgKGVxIG5vbWVzc2FnZSAncmVxdWlyZSkgIlJlcXVpcmluZyIg
IkxvYWRpbmciKQorICAgICAgICAgICAgICAgICAgICAgICAoaWYgbG9hZC1zaG93LWZ1bGwtcGF0
aC1pbi1tZXNzYWdlcyBwYXRoIGZpbGVuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICBvbGQp
KSkpCisgICAgICA7OyBNYXliZSB0aGVyZSdzIGEgbW9kdWxlLgorICAgICAgKChsb2NhdGUtZmls
ZSBmaWxlbmFtZSBtb2R1bGUtbG9hZC1wYXRoCisgICAgICAgICAgICAgICAgICAgIChhbmQgKG5v
dCBub3N1ZmZpeCkgbW9kdWxlLWV4dGVuc2lvbnMpKQorICAgICAgIChsZXQgKChsb2FkLW1vZHVs
ZXMtcXVpZXRseSBub21lc3NhZ2UpKQorICAgICAgICAgOzsgVGhpcyB3aWxsIGp1c3QgZXJyb3Ig
aWYgd2UgZG9uJ3QgaGF2ZSBtb2R1bGUgc3VwcG9ydCwgbm8gbmVlZCB0bworICAgICAgICAgOzsg
ZXJyb3Igc3BlY2lhbGx5IG91cnNlbHZlcy4KKyAgICAgICAgIChkZWNsYXJlLWZib3VuZHAgKGxv
YWQtbW9kdWxlIGZpbGVuYW1lKSkpKQorICAgICAgOzsgTWF5YmUgd2UgY2FuJ3QgZmluZCB0aGUg
ZmlsZS4KKyAgICAgICh0IChhbmQgKG5vdCBub2Vycm9yKQorICAgICAgICAgICAgICAoc2lnbmFs
ICdmaWxlLWVycm9yIChsaXN0ICJDYW5ub3Qgb3BlbiBsb2FkIGZpbGUiIGZpbGVuYW1lKSkpKSkp
KQogCiAoZGVmdmFyIGluc2VydC1maWxlLWNvbnRlbnRzLWFjY2Vzcy1ob29rIG5pbAogICAiQSBo
b29rIHRvIG1ha2UgYSBmaWxlIGFjY2Vzc2libGUgYmVmb3JlIHJlYWRpbmcgaXQuCmRpZmYgLXIg
MWFmNTNkMzVkZDUzIC1yIDExNTJlMDA5MWY4YyBzcmMvQ2hhbmdlTG9nCi0tLSBhL3NyYy9DaGFu
Z2VMb2cJRnJpIE1heSAyOSAxNzowNjoyNCAyMDE1ICswMTAwCisrKyBiL3NyYy9DaGFuZ2VMb2cJ
V2VkIEp1biAwMyAyMDoxMzowNyAyMDE1ICswMTAwCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDYt
MDMgIEFpZGFuIEtlaG9lICA8a2Vob2VhQHBhcmhhc2FyZC5uZXQ+CisKKwkqIGxyZWFkLmMgKEZs
b2FkX2ludGVybmFsKToKKwlEZWxlZ2F0ZSBjYWxsaW5nIHRoZSBoYW5kbGVyIGFuZCAjJ3N1YnN0
aXR1dGUtaW4tZmlsZS1uYW1lIHRvICMnbG9hZC4KKwlFcnJvciBjb3JyZWN0bHkgd2l0aCBhIHpl
cm8tbGVuZ3RoIGZpbGUgbmFtZSwgaW5zdGVhZCBvZiBnaXZpbmcgYQorCWJ1cyBlcnJvciBvbiBt
eSBtYWNoaW5lLgorCURlbGVnYXRlIHRoZSBjaGVjayBmb3Igb3V0LW9mLWRhdGUgRUxDIGZpbGVz
IHRvICMnbG9hZCwgCisJYXZvaWRpbmcgYSBidWcgd2hlcmUgdGhlIGVuY29kaW5nIG9mIHRoZSBF
TEMgZmlsZSBhbmQgdGhlIHNvdXJjZQorCWZpbGUgZGlmZmVyZWQuCisJKiBscmVhZC5jIChQUklO
VF9MT0FESU5HX01FU1NBR0VfMSk6CisJVGhpcyBpcyBzaW1wbGlmaWVkLCBub3cgd2Ugbm8gbG9u
Z2VyIGhhdmUgdG8gdGFsayBhYm91dAorCW91dC1vZi1kYXRlIEVMQyBmaWxlcy4KKwogMjAxNS0w
NS0xNSAgQWlkYW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KIAogCSogYnVmZmVyLmM6
CmRpZmYgLXIgMWFmNTNkMzVkZDUzIC1yIDExNTJlMDA5MWY4YyBzcmMvbHJlYWQuYwotLS0gYS9z
cmMvbHJlYWQuYwlGcmkgTWF5IDI5IDE3OjA2OjI0IDIwMTUgKzAxMDAKKysrIGIvc3JjL2xyZWFk
LmMJV2VkIEp1biAwMyAyMDoxMzowNyAyMDE1ICswMTAwCkBAIC01MzIsNDIgKzUzMiwyNiBAQAog
ICBpbnQgZmQgPSAtMTsKICAgaW50IHNwZWNjb3VudCA9IHNwZWNwZGxfZGVwdGggKCk7CiAgIGlu
dCBzb3VyY2Vfb25seSA9IDA7Ci0gIC8qIE5FV0VSIGFuZCBPTERFUiBhcmUgZmlsZW5hbWVzIHcv
byBkaXJlY3RvcnksIHVzZWQgaW4gbG9hZGluZyBtZXNzYWdlcwotICAgICB0byBlLmcuIHdhcm4g
b2YgbmV3ZXIgLmVsIGZpbGVzIHdoZW4gdGhlIC5lbGMgaXMgYmVpbmcgbG9hZGVkLiAqLworICAv
KiBORVdFUiBpcyBhIGZpbGVuYW1lIHdpdGhvdXQgZGlyZWN0b3J5LCB1c2VkIGluIGxvYWRpbmcg
bWVzc2FnZXMgd2hlbgorICAgICBsb2FkLWlnbm9yZS1lbGMtZmlsZXMgaXMgbm9uLW5pbC4gKi8K
ICAgTGlzcF9PYmplY3QgbmV3ZXIgICA9IFFuaWw7Ci0gIExpc3BfT2JqZWN0IG9sZGVyICAgPSBR
bmlsOwotICBMaXNwX09iamVjdCBoYW5kbGVyID0gUW5pbDsKICAgTGlzcF9PYmplY3QgZm91bmQg
ICA9IFFuaWw7CiAgIExpc3BfT2JqZWN0IHJldHZhbDsKLSAgc3RydWN0IGdjcHJvIGdjcHJvMSwg
Z2Nwcm8yLCBnY3BybzMsIGdjcHJvNDsKKyAgc3RydWN0IGdjcHJvIGdjcHJvMSwgZ2Nwcm8yLCBn
Y3BybzM7CiAgIGludCByZWFkaW5nX2VsYyA9IDA7CiAgIGludCBmcm9tX3JlcXVpcmUgPSBFUSAo
bm9tZXNzYWdlLCBRcmVxdWlyZSk7CiAgIGludCBtZXNzYWdlX3AgPSBOSUxQIChub21lc3NhZ2Up
IHx8IGxvYWRfYWx3YXlzX2Rpc3BsYXlfbWVzc2FnZXM7Ci0gIHN0cnVjdCBzdGF0IHMxLCBzMjsK
ICAgSWJ5dGUgKnNwYWNlcyA9IGFsbG9jYV9pYnl0ZXMgKGxvYWRfaW5fcHJvZ3Jlc3MgKiAyICsg
MTApOwogICBpbnQgaTsKICAgUFJPRklMRV9ERUNMQVJFICgpOwogCi0gIEdDUFJPNCAoZmlsZSwg
bmV3ZXIsIG9sZGVyLCBmb3VuZCk7CiAgIENIRUNLX1NUUklORyAoZmlsZSk7CisgIENIRUNLX1NZ
TUJPTCAodXNlZF9jb2Rlc3lzKTsgLyogRWl0aGVyIG5pbCBvciBhbm90aGVyIHN5bWJvbCB0byB3
cml0ZSB0by4gKi8KKworICBHQ1BSTzMgKGZpbGUsIG5ld2VyLCBmb3VuZCk7CiAKICAgUFJPRklM
RV9SRUNPUkRfRU5URVJJTkdfU0VDVElPTiAoUWxvYWRfaW50ZXJuYWwpOwogCi0gIC8qIElmIGZp
bGUgbmFtZSBpcyBtYWdpYywgY2FsbCB0aGUgaGFuZGxlci4gICovCi0gIGhhbmRsZXIgPSBGZmlu
ZF9maWxlX25hbWVfaGFuZGxlciAoZmlsZSwgUWxvYWQpOwotICBpZiAoIU5JTFAgKGhhbmRsZXIp
KQotICAgIHsKLSAgICAgIHJldHZhbCA9IGNhbGw1IChoYW5kbGVyLCBRbG9hZCwgZmlsZSwgbm9l
cnJvciwgbm9tZXNzYWdlLCBub3N1ZmZpeCk7Ci0gICAgICBnb3RvIGRvbmU7Ci0gICAgfQotCi0g
IC8qIERvIHRoaXMgYWZ0ZXIgdGhlIGhhbmRsZXIgdG8gYXZvaWQKLSAgICAgdGhlIG5lZWQgdG8g
Z2Nwcm8gbm9lcnJvciwgbm9tZXNzYWdlIGFuZCBub3N1ZmZpeC4KLSAgICAgKEJlbG93IGhlcmUs
IHdlIGNhcmUgb25seSB3aGV0aGVyIHRoZXkgYXJlIG5pbCBvciBub3QuKSAgKi8KLSAgZmlsZSA9
IEZzdWJzdGl0dXRlX2luX2ZpbGVfbmFtZSAoZmlsZSk7Ci0gIGlmICghTklMUCAodXNlZF9jb2Rl
c3lzKSkKLSAgICBDSEVDS19TWU1CT0wgKHVzZWRfY29kZXN5cyk7Ci0KICAgaWYgKG5vbmludGVy
YWN0aXZlKQogICAgIHsKICAgICAgIGZvciAoaSA9IDA7IGkgPCBsb2FkX2luX3Byb2dyZXNzICog
MjsgaSsrKQpAQCAtNTgwLDcgKzU2NCwxNyBAQAogICAvKiBBdm9pZCB3ZWlyZCBsb3NzYWdlIHdp
dGggbnVsbCBzdHJpbmcgYXMgYXJnLAogICAgICBzaW5jZSBpdCB3b3VsZCB0cnkgdG8gbG9hZCBh
IGRpcmVjdG9yeSBhcyBhIExpc3AgZmlsZS4KICAgICAgVW5peCB0cnVseSBzdWNrcy4gKi8KLSAg
aWYgKFhTVFJJTkdfTEVOR1RIIChmaWxlKSA+IDApCisgIGlmIChYU1RSSU5HX0xFTkdUSCAoZmls
ZSkgPT0gMCkKKyAgICB7CisgICAgICBpZiAoTklMUCAobm9lcnJvcikpCisgICAgICAgIHNpZ25h
bF9lcnJvciAoUWZpbGVfZXJyb3IsICJDYW5ub3Qgb3BlbiBsb2FkIGZpbGUiLCBmaWxlKTsKKyAg
ICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgIHJldHZhbCA9IFFuaWw7CisgICAgICAgICAg
Z290byBkb25lOworICAgICAgICB9CisgICAgfQorICBlbHNlCiAgICAgewogICAgICAgSWJ5dGUg
KmZvdW5kc3RyOwogICAgICAgaW50IGZvdW5kbGVuOwpAQCAtNjExLDQ0ICs2MDUsNiBAQAogCSBk
aWZmZXIuIC0tYmVuICovCiAgICAgICBpZiAobG9hZF9pZ25vcmVfZWxjX2ZpbGVzKQogCW5ld2Vy
ID0gRmZpbGVfbmFtZV9ub25kaXJlY3RvcnkgKGZvdW5kKTsKLSAgICAgIGVsc2UgaWYgKChsb2Fk
X3dhcm5fd2hlbl9zb3VyY2VfbmV3ZXIgfHwKLQkJbG9hZF9pZ25vcmVfb3V0X29mX2RhdGVfZWxj
X2ZpbGVzKSAmJgotCSAgICAgICAhbWVtY21wICgiLmVsYyIsIGZvdW5kc3RyICsgZm91bmRsZW4g
LSA0LCA0KSkKLQl7Ci0JICBpZiAoISBxeGVfZnN0YXQgKGZkLCAmczEpKQkvKiBjYW4ndCBmYWls
LCByaWdodD8gKi8KLQkgICAgewotCSAgICAgIGludCByZXN1bHQ7Ci0JICAgICAgLyogdGVtcG9y
YXJpbHkgaGFjayB0aGUgJ2MnIG9mZiB0aGUgZW5kIG9mIHRoZSBmaWxlbmFtZSAqLwotCSAgICAg
IGZvdW5kc3RyW2ZvdW5kbGVuIC0gMV0gPSAnXDAnOwotCSAgICAgIHJlc3VsdCA9IHF4ZV9zdGF0
IChmb3VuZHN0ciwgJnMyKTsKLQkgICAgICBpZiAocmVzdWx0ID49IDAgJiYKLQkJICAodW5zaWdu
ZWQpIHMxLnN0X210aW1lIDwgKHVuc2lnbmVkKSBzMi5zdF9tdGltZSkKLQkJewotCQkgIC8qIC5l
bGMgZXhpc3RzIGFuZCBpcyBvdXQtb2YtZGF0ZSB3cnQgLmVsICovCi0JCSAgTGlzcF9PYmplY3Qg
ZWxfbmFtZSA9IG1ha2Vfc3RyaW5nIChmb3VuZHN0ciwgZm91bmRsZW4gLSAxKTsKLQkJICBzdHJ1
Y3QgZ2Nwcm8gbm5nY3BybzE7Ci0JCSAgTk5HQ1BSTzEgKGVsX25hbWUpOwotCQkgIG5ld2VyID0g
RmZpbGVfbmFtZV9ub25kaXJlY3RvcnkgKGVsX25hbWUpOwotCQkgIGlmIChsb2FkX2lnbm9yZV9v
dXRfb2ZfZGF0ZV9lbGNfZmlsZXMpCi0JCSAgICB7Ci0JCSAgICAgIGludCBuZXdmZCA9Ci0JCQls
b2NhdGVfZmlsZV9vcGVuX29yX2FjY2Vzc19maWxlCi0JCQkoWFNUUklOR19EQVRBIChlbF9uYW1l
KSwgLTEpOwotCi0JCSAgICAgIGlmIChuZXdmZCA+PSAwKQotCQkJewotCQkJICBvbGRlciA9IEZm
aWxlX25hbWVfbm9uZGlyZWN0b3J5IChmb3VuZCk7Ci0JCQkgIGZvdW5kID0gZWxfbmFtZTsKLQkJ
CSAgcmV0cnlfY2xvc2UgKGZkKTsKLQkJCSAgZmQgPSBuZXdmZDsKLQkJCX0KLQkJICAgIH0KLQkJ
ICBOTlVOR0NQUk87Ci0JCX0KLQkgICAgICAvKiBwdXQgdGhlICdjJyBiYWNrIG9uIChrbHVkZ2Ut
by1yYW1hKSAqLwotCSAgICAgIGZvdW5kc3RyW2ZvdW5kbGVuIC0gMV0gPSAnYyc7Ci0JICAgIH0K
LQl9CiAgICAgICBlbHNlIGlmIChsb2FkX3dhcm5fd2hlbl9zb3VyY2Vfb25seSAmJgogCSAgICAg
ICAvKiBgZm91bmQnIGVuZHMgaW4gIi5lbCIgKi8KIAkgICAgICAgIW1lbWNtcCAoIi5lbCIsIGZv
dW5kc3RyICsgZm91bmRsZW4gLSAzLCAzKSAmJgpAQCAtNjcxLDE5ICs2MjcsNiBAQAogCQkgWFNU
UklOR19EQVRBIChsb2FkX3Nob3dfZnVsbF9wYXRoX2luX21lc3NhZ2VzID8JXAogCQkJICAgICAg
IGZvdW5kIDogbmV3ZXIpKTsJCQkJXAogICAgIH0JCQkJCQkJCQlcCi0gIGVsc2UgaWYgKCFOSUxQ
IChvbGRlcikpCQkJCQkJXAotICAgIHsJCQkJCQkJCQlcCi0gICAgICBhc3NlcnQgKGxvYWRfaWdu
b3JlX291dF9vZl9kYXRlX2VsY19maWxlcyk7CQkJXAotICAgICAgbWVzc2FnZSAobG9hZGluZyBk
b25lICIgKGZpbGUgJXMgaXMgb3V0LW9mLWRhdGUpIiwgc3BhY2VzLAlcCi0JICAgICAgIFhTVFJJ
TkdfREFUQSAobG9hZF9zaG93X2Z1bGxfcGF0aF9pbl9tZXNzYWdlcyA/CQlcCi0JCQkgICAgIGZv
dW5kIDogbmV3ZXIpLAkJCQlcCi0JICAgICAgIFhTVFJJTkdfREFUQSAob2xkZXIpKTsJCQkJCVwK
LSAgICB9CQkJCQkJCQkJXAotICBlbHNlIGlmICghTklMUCAobmV3ZXIpKQkJCQkJCVwKLSAgICBt
ZXNzYWdlIChsb2FkaW5nIGRvbmUgIiAoZmlsZSAlcyBpcyBuZXdlcikiLCBzcGFjZXMsCQlcCi0J
ICAgICBYU1RSSU5HX0RBVEEgKGxvYWRfc2hvd19mdWxsX3BhdGhfaW5fbWVzc2FnZXMgPwkJXAot
CQkJICAgZm91bmQgOiBmaWxlKSwJCQkJXAotCSAgICAgWFNUUklOR19EQVRBIChuZXdlcikpOwkJ
CQkJXAogICBlbHNlIGlmIChzb3VyY2Vfb25seSkJCQkJCQkJXAogICAgIG1lc3NhZ2UgKGxvYWRp
bmcgZG9uZSAiIChmaWxlICVzLmVsYyBkb2VzIG5vdCBleGlzdCkiLCBzcGFjZXMsCVwKIAkgICAg
IFhTVFJJTkdfREFUQSAobG9hZF9zaG93X2Z1bGxfcGF0aF9pbl9tZXNzYWdlcyA/CQlcCmRpZmYg
LXIgMWFmNTNkMzVkZDUzIC1yIDExNTJlMDA5MWY4YyB0ZXN0cy9DaGFuZ2VMb2cKLS0tIGEvdGVz
dHMvQ2hhbmdlTG9nCUZyaSBNYXkgMjkgMTc6MDY6MjQgMjAxNSArMDEwMAorKysgYi90ZXN0cy9D
aGFuZ2VMb2cJV2VkIEp1biAwMyAyMDoxMzowNyAyMDE1ICswMTAwCkBAIC0xLDMgKzEsOSBAQAor
MjAxNS0wNi0wMyAgQWlkYW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KKworCSogYXV0
b21hdGVkL2ZpbGUtdGVzdHMuZWw6CisJR3Jvc3Mgc2FuaXR5IGNoZWNrIGZvciAjJ2xvYWQgYW5k
ICMnbG9hZC1pbnRlcm5hbCB3aXRoIGEKKwl6ZXJvLWxlbmd0aCBGSUxFLCBzb21ldGhpbmcgdGhh
dCBjcmFzaGVkIHVudGlsIHRvZGF5LgorCiAyMDE1LTA1LTI5ICBBaWRhbiBLZWhvZSAgPGtlaG9l
YUBwYXJoYXNhcmQubmV0PgogCiAJKiBhdXRvbWF0ZWQvbGlzcC10ZXN0cy5lbDoKZGlmZiAtciAx
YWY1M2QzNWRkNTMgLXIgMTE1MmUwMDkxZjhjIHRlc3RzL2F1dG9tYXRlZC9maWxlLXRlc3RzLmVs
Ci0tLSBhL3Rlc3RzL2F1dG9tYXRlZC9maWxlLXRlc3RzLmVsCUZyaSBNYXkgMjkgMTc6MDY6MjQg
MjAxNSArMDEwMAorKysgYi90ZXN0cy9hdXRvbWF0ZWQvZmlsZS10ZXN0cy5lbAlXZWQgSnVuIDAz
IDIwOjEzOjA3IDIwMTUgKzAxMDAKQEAgLTQwLDQgKzQwLDExIEBACiAgIGRvCiAgIChBc3NlcnQg
KGVxdWFsIChmaWxlLXRydWVuYW1lIChmaWxlLXRydWVuYW1lIGZpbGUpKSAoZmlsZS10cnVlbmFt
ZSBmaWxlKSkpKQogCis7OworOzsgR3Jvc3Mgc2FuaXR5IGNoZWNrIHdpdGggIydsb2FkIGFuZCBh
IHplcm8tbGVuZ3RoIGZpbGVuYW1lOgorKENoZWNrLUVycm9yIGZpbGUtZXJyb3IgKGxvYWQgIiIp
KQorKEFzc2VydCAoZXEgbmlsIChsb2FkICIiIHQpKSkKKyhDaGVjay1FcnJvciBmaWxlLWVycm9y
IChsb2FkLWludGVybmFsICIiKSkKKyhBc3NlcnQgKGVxIG5pbCAobG9hZC1pbnRlcm5hbCAiIiB0
KSkpCiAKKzs7OyBlbmQgb2YgZmlsZS10ZXN0cy5lbAoKCi0tIArigJhUcmFtYWRvbCBpcyBmdXJ0
aGVyIGZlZCB0byBjYXR0bGUgW+KApl0gd2hlbiB3b3JraW5nIHRoZW0gW+KApl0gKGFzIGRyYWZ0
CmFuaW1hbHMpIHNvIHRoYXQgdGhlIGFuaW1hbHMgZG8gbm90IGdldCB0aXJlZCBxdWlja2x5LiDi
gKbigJkKCeKAlCBBbmdld2FuZHRlIENoZW1pZSwgU2VwdCAyMDE0LCBkZXNjcmliaW5nIHRoZSBz
b2NpYWwgY29udGV4dCBvZgoJKHN5bnRoZXRpYykgdHJhbWFkb2wgaGF2aW5nIGJlZW4gZm91bmQg
aW4gQ2FtZXJvb24gdHJlZSByb290cy4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fClhFbWFjcy1QYXRjaGVzIG1haWxpbmcgbGlzdApYRW1hY3MtUGF0Y2hl
c0B4ZW1hY3Mub3JnCmh0dHA6Ly9saXN0cy54ZW1hY3Mub3JnL21haWxtYW4vbGlzdGluZm8veGVt
YWNzLXBhdGNoZXMK