[ruby-core:97021] [Ruby master Feature#16511] Staged warnings for keyword arguments

From: daniel@...42.com
Date: 2020-01-29 16:57:34 UTC
List: ruby-core #97021
SXNzdWUgIzE2NTExIGhhcyBiZWVuIHVwZGF0ZWQgYnkgRGFuMDA0MiAoRGFuaWVsIERlTG9ybWUp
Lg0KDQoNCj4gZ2VtIHVzZXIgZG9lc24ndCB3YW50IHRvIHVwZ3JhZGUgdG8gYSBuZXcgbWFqb3Ig
dmVyc2lvbiBvZiB0aGUgZ2VtIHdpdGggYW4gaW5jb21wYXRpYmxlIEFQSQ0KDQpJIHRoaW5rIHRo
aXMgcGFydCBkZXNlcnZlcyBleHBsYW5hdGlvbiBiZWNhdXNlIHNvIGZhciBJIGhhdmVuJ3Qgc2Vl
biBtdWNoIGRpc2N1c3Npb24gb2Ygd2hhdCBoYXBwZW5zIHRvIHBlb3BsZSB3aG8gX3VzZV8gZ2Vt
cy4NClBsZWFzZSBjb25zaWRlciB0aGlzIHNjZW5hcmlvOg0KDQoqIGF1dGhvciBvZiBnZW0gImZv
b2JhciIgZml4ZXMgdGhlIGtleXdvcmQgd2FybmluZ3MgaW4gcnVieSAyLjcgYW5kIHB1Ymxpc2hl
cyBhIG5ldyB2ZXJzaW9uIDMuMS4wIChvbmx5IHYzIGlzIHN1cHBvcnRlZCkNCiogZ2VtIHVzZXIg
ZmluZHMga2V5d29yZCB3YXJuaW5ncyBjb21pbmcgZnJvbSBmb29iYXIgMS40LjcNCiogaGUgdXBn
cmFkZXMgdGVlbnkgdmVyc2lvbiB0byAxLjQuMTIgYnV0IHRoZSB3YXJuaW5ncyBhcmUgc3RpbGwg
dGhlcmUNCiogaGUgdXBncmFkZXMgbWlub3IgdmVyc2lvbiB0byAxLjYuMyBidXQgdGhlIHdhcm5p
bmdzIGFyZSBzdGlsbCB0aGVyZQ0KKiBoZSBtdXN0IHVwZ3JhZGUgdG8gMy4xLjAgYnV0IHRoZSBB
UEkgaGFzIGNoYW5nZWQgYW5kIHJlcXVpcmVzIHZhcmlvdXMgZml4ZXMgdG8gdGhlIGFwcA0KKiBo
ZSBjYW4ndCB1cGdyYWRlIHRvIHJ1YnkgMy4wIGFzIGxvbmcgYXMgdGhpcyBpc24ndCBkb25lDQoq
IHNvIGhlIGhhcyB0byBmaXggdGhlIGFwcCB0byB1c2UgZm9vYmFyIDMuMS4wDQoqICoqMyB5ZWFy
cyBwYXNzLi4uKiogcnVieTJfa2V5d29yZHMgYXJlIGJlaW5nIGRlcHJlY2F0ZWQNCiogYXV0aG9y
IG9mIGdlbSAiZm9vYmFyIiBjaGFuZ2VzIHJ1YnkyX2tleXdvcmRzIHRvIGAqKmt3cmVzdGAgZGVs
ZWdhdGlvbiBhbmQgcHVibGlzaGVzIGEgbmV3IHZlcnNpb24gNC4yLjAgKG9ubHkgdjQgaXMgc3Vw
cG9ydGVkKQ0KKiB1c2VyIG9mIGdlbSAiZm9vYmFyIiBmaW5kcyBrZXl3b3JkIHdhcm5pbmdzIGNv
bWluZyBmcm9tIHRoZSBnZW0NCiogaGUgdXBncmFkZXMgdGVlbnkgdmVyc2lvbiB0byAzLjEuNyBi
dXQgdGhlIHdhcm5pbmdzIGFyZSBzdGlsbCB0aGVyZQ0KKiBoZSB1cGdyYWRlcyBtaW5vciB2ZXJz
aW9uIHRvIDMuMi4yIGJ1dCB0aGUgd2FybmluZ3MgYXJlIHN0aWxsIHRoZXJlDQoqIGhlIG11c3Qg
dXBncmFkZSB0byA0LjIuMCBidXQgdGhlIEFQSSBoYXMgY2hhbmdlZCBhbmQgcmVxdWlyZXMgdmFy
aW91cyBmaXhlcyB0byB0aGUgYXBwDQoqIGhlIGNhbid0IHVwZ3JhZGUgdG8gcnVieSAzLjMgYXMg
bG9uZyBhcyB0aGlzIGlzbid0IGRvbmUNCiogc28gaGUgaGFzIHRvIGZpeCB0aGUgYXBwIF9BR0FJ
Tl8sIHRvIHVzZSBmb29iYXIgNC4yLjANCg0KVGhpcyBpcyBhIHdvcnN0LWNhc2Ugc2NlbmFyaW8g
YnV0IGl0IGRvZXNuJ3Qgc291bmQgc28gZmFyZmV0Y2hlZCB0byBtZS4NCg0KV2hhdCBJIHdvdWxk
IGxpa2UgdG8gc2VlIGlzIHRoaXM6DQoNCiogYXV0aG9yIG9mIGdlbSAiZm9vYmFyIiBmaXhlcyB0
aGUga2V5d29yZCB3YXJuaW5ncyAoZXhjZXB0IFtmaXggaW4gMy54XSkgYW5kIHB1Ymxpc2hlcyBh
IG5ldyB2ZXJzaW9uIDMuMS4wIChvbmx5IHYzIGlzIHN1cHBvcnRlZCkNCiogb25seSBbRklYIE5P
V10gd2FybmluZ3MgYXJlIGRpc3BsYXllZCBpbiB0aGUgY2FzZSBvZiBnZW1zIGluIFJVQllHRU1T
X0RJUiwgYW5kIHRoZXkgYXJlIHByZXR0eSByYXJlDQoqIHVzZXIgb2YgZ2VtICJmb29iYXIiIGZp
bmRzIG5vIGtleXdvcmQgd2FybmluZ3MgY29taW5nIGZyb20gdGhlIGdlbSwgbm90aGluZyB0byB1
cGdyYWRlIGV4Y2VwdCBoaXMgb3duIGNvZGUNCiogKiozIHllYXJzIHBhc3MuLi4qKiBbZml4IG5v
d10gYW5kIFtmaXggaW4gMy54XSB3YXJuaW5ncyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0IGV2ZW4g
aW4gUlVCWUdFTVNfRElSDQoqIGF1dGhvciBvZiBnZW0gImZvb2JhciIgZml4ZXMgdGhlIHdhcm5p
bmdzIHRvIHVzZSBgKipgIHN5bnRheCBhbmQgcHVibGlzaGVzIGEgbmV3IHZlcnNpb24gNC4yLjAg
KG9ubHkgdjQgaXMgc3VwcG9ydGVkKQ0KKiBnZW0gdXNlciBmaW5kcyBrZXl3b3JkIHdhcm5pbmdz
IGNvbWluZyBmcm9tIGZvb2JhciAxLjQuNw0KKiBoZSB1cGdyYWRlcyB0ZWVueSB2ZXJzaW9uIHRv
IDEuNC4xMiBidXQgdGhlIHdhcm5pbmdzIGFyZSBzdGlsbCB0aGVyZQ0KKiBoZSB1cGdyYWRlcyBt
aW5vciB2ZXJzaW9uIHRvIDEuNi4zIGJ1dCB0aGUgd2FybmluZ3MgYXJlIHN0aWxsIHRoZXJlDQoq
IGhlIG11c3QgdXBncmFkZSB0byA0LjIuMCBidXQgdGhlIEFQSSBoYXMgY2hhbmdlZCBhbmQgcmVx
dWlyZXMgdmFyaW91cyBmaXhlcyB0byB0aGUgYXBwDQoqIGhlIGNhbid0IHVwZ3JhZGUgdG8gcnVi
eSAzLjQgYXMgbG9uZyBhcyB0aGlzIGlzbid0IGRvbmUsIGJ1dCB0aGF0J3MgaW4gdHdvIHllYXJz
DQoqIHNvIGhlIGhhcyBzb21lIHRpbWUgdG8gZml4IHRoZSBhcHAsIE9OQ0UsIHRvIHVzZSBmb29i
YXIgNC4yLjANCg0KSXNuJ3QgdGhhdCBiZXR0ZXI/IE5vdGUgdGhhdCB0aGUgd29yc3QgY2FzZSB3
b3VsZCBzdGlsbCBpbnZvbHZlIHR3byB1cGdyYWRlcywgYnV0IGl0IHdvdWxkIGJlIHNpZ25pZmlj
YW50bHkgbGVzcyBsaWtlbHk6IG9ubHkgaWYgYSBnZW0gaGFzIHdhcm5pbmdzIHdpdGggX2JvdGhf
IFtGSVggTk9XXSBhbmQgW2ZpeCBpbiAzLnhdIHdhcm5pbmdzLg0KDQoNCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzE2NTExOiBTdGFnZWQgd2Fybmlu
Z3MgZm9yIGtleXdvcmQgYXJndW1lbnRzDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1
ZXMvMTY1MTEjY2hhbmdlLTg0MTExDQoNCiogQXV0aG9yOiBEYW4wMDQyIChEYW5pZWwgRGVMb3Jt
ZSkNCiogU3RhdHVzOiBPcGVuDQoqIFByaW9yaXR5OiBOb3JtYWwNCiogQXNzaWduZWU6IA0KKiBU
YXJnZXQgdmVyc2lvbjogDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQpBcyBhbiBhbHRlcm5hdGl2ZSB0byAjMTY0NjMgYW5kICMxNjQ5NCBJJ2QgbGlrZSB0byBwcm9w
b3NlIHRoaXMgYXBwcm9hY2gsIHdoaWNoIEkgYmVsaWV2ZSBhbGxvd3MgYSAqKm11Y2gqKiBtb3Jl
IGZsZXhpYmxlIHBhdGggZm9yIG1pZ3JhdGlvbiBvZiBrZXl3b3JkIGFyZ3VtZW50cy4NCg0KVGhl
IGlkZWEgaXMgdG8gaW5kaWNhdGUgZm9yIGV2ZXJ5IEhhc2ggb2JqZWN0IGlmIGl0J3MgaW50ZW5k
ZWQgdG8gcmVwcmVzZW50IGEgX2tleXdvcmRfIGhhc2ggb3IgYSBfZGF0YV8gaGFzaC4gVGhpcyBl
eHRyYSBpbmZvcm1hdGlvbiBpcyB0aGVuIHVzZWQgdG8gZ2VuZXJhdGUgbW9yZSBncmFudWxhciB3
YXJuaW5ncyBkZXBlbmRpbmcgb24gYSB1c2VyJ3MgY29tcGF0aWJpbGl0eSBuZWVkcy4NCg0KVGhl
ICJrZXl3b3JkbmVzcyIgb2YgYSBoYXNoIHdvdWxkIGJlIGluZGljYXRlZCBieSBhICoqZmxhZyoq
IG9uIHRoZSBIYXNoIG9iamVjdDsgdGhpcyBpcyBhbHJlYWR5IGltcGxlbWVudGVkIGluIDIuNyBh
bmQgaXMgdGhlIGFwcHJvYWNoIGZhdm9yZWQgYnkgTWF0ei4gTGV0J3MgY2FsbCB0aGlzIGZsYWdn
ZWQgaGFzaCBhICJLd0hhc2giLCBhbmQgYSBub24tZmxhZ2dlZCBoYXNoIGlzIGp1c3QgYSAiSGFz
aCIuIE5vdGU6IHRoaXMgY291bGQgYWxzbyBiZSBpbXBsZW1lbnRlZCB2aWEgYSAqKnN1YmNsYXNz
Kiogb2YgSGFzaCAoSSBwZXJzb25hbGx5IGZhdm9yIHRoaXMgb2JqZWN0LW9yaWVudGVkIGFwcHJv
YWNoKSB3aGljaCB3YXMgdGhlIG9yaWdpbmFsIGlkZWEgaW4gdGhpcyBwcm9wb3NhbC4NCg0KSSds
bCB0cnkgdG8gZGVzY3JpYmUgdGhlIGlkZWEgaW4gZGV0YWlsIGJ5IGJyZWFraW5nIGl0IGRvd24g
aW50byBmaWd1cmF0aXZlIHN0ZXBzLiAoU2tpcCB0byAiUHV0dGluZyBpdCBhbGwgdG9nZXRoZXIi
IGZvciB0aGUgVEw7RFIgdmVyc2lvbi4pIEltYWdpbmUgc3RhcnRpbmcgd2l0aCBydWJ5IDIuNiBh
bmQgdGhlbjoNCg0KIyMjIFN0ZXAgMQ0KDQpXaGVuIGEgZG91YmxlLXNwbGF0IG9yIGEgYnJhY2Ut
bGVzcyBoYXNoIGlzIHVzZWQsIGluc3RlYWQgb2YgYSBIYXNoIGl0IGNyZWF0ZXMgYSBLd0hhc2gu
DQoNCmBgYHJ1YnkNCmRlZiBmb28oeCkgeCBlbmQNCmZvbyhrOjEpLmNsYXNzICAgICAgIz0+IEt3
SGFzaA0KZm9vKCoqaGFzaCkuY2xhc3MgICAjPT4gS3dIYXNoDQpbazoxXS5sYXN0LmNsYXNzICAg
ICM9PiBLd0hhc2gNClsqKmhhc2hdLmxhc3QuY2xhc3MgIz0+IEt3SGFzaA0KeyoqaGFzaH0uY2xh
c3MgICAgICAjPT4gSGFzaA0KYGBgDQoNCkF0IHRoaXMgcG9pbnQgd2UgaGF2ZW4ndCBpbnRyb2R1
Y2VkIGFueSByZWFsIGNoYW5nZS4gRXZlcnl0aGluZyB0aGF0IHdvcmtlZCBiZWZvcmUgaXMgc3Rp
bGwgd29ya2luZyB0aGUgc2FtZSB3YXkuDQooV2l0aCBhIG1pbm9yIGV4Y2VwdGlvbiBpZiB1c2lu
ZyB0aGUgc3ViY2xhc3MgYXBwcm9hY2g6IHVudXN1YWwgY29kZSBsaWtlIGBrdy5jbGFzcyA9PSBI
YXNoYCB3b3VsZCBub3cgcmV0dXJuIGZhbHNlLikNCg0KIyMjIFN0ZXAgMg0KDQpXaGVuIHRoZXJl
IGlzIGFtYmlndWl0eSBkdWUgdG8gb3B0aW9uYWwgdnMga2V5d29yZCBhcmd1bWVudCwgd2UgcmVs
eSBvbiB0aGUgbGFzdCBhcmd1bWVudCBiZWluZyBIYXNoIG9yIEt3SGFzaCB0byBkaXNhbWJpZ3Vh
dGUuDQoNCmBgYHJ1YnkNCmRlZiBmb28oeD1uaWwsICoqa3cpDQogIFt4LGt3XQ0KZW5kDQpmb28o
e2s6MX0pICM9PiBbe2s6MX0se31dDQpmb28oazoxKSAgICM9PiBbbmlsLHtrOjF9XQ0KYGBgDQoN
ClRoaXMgaXMgdGhlIF9taW5pbXVtXyBhbW91bnQgb2YgaW5jb21wYXRpYmlsaXR5IHJlcXVpcmVk
IHRvIHNvbHZlIEFMTCBidWdzIHByZXZpb3VzbHkgcmVwb3J0ZWQgd2l0aCBrZXl3b3JkIGFyZ3Vt
ZW50cy4gKCM4MDQwLCAjODMxNiwgIzk4OTgsICMxMDg1NiwgIzExMjM2LCAjMTE5NjcsICMxMjEw
NCwgIzEyNzE3LCAjMTI4MjEsICMxMzMzNiwgIzEzNjQ3LCAjMTQxMzAsIGV0Yy4pIA0KDQpUaGUg
d2FybmluZ3MgZm9yIHRoaXMgd291bGQgYmUgYWJvdXQgYW4gaW1wZW5kaW5nIF9jaGFuZ2Ugb2Yg
YmVoYXZpb3JfIGluIHRoZSBfbmV4dCBydWJ5IHZlcnNpb25fLCB3aGVyZSBgZm9vKHtrOjF9KWAg
aXMgbm8gbG9uZ2VyIGludGVycHJldGVkIGFzIGtleXdvcmQgYXJndW1lbnQuDQoNCiMjIyBTdGVw
IDMNCg0KSW50cm9kdWNlIGFkZGl0aW9uYWwgaW5jb21wYXRpYmlsaXR5IHRvIGltcHJvdmUgY2xh
cml0eSBvZiBkZXNpZ24uIEhlcmUgd2UgZGVwcmVjYXRlIHRoZSBhdXRvbWF0aWMgY29udmVyc2lv
biBvZiBIYXNoIHRvIGtleXdvcmQgYXJndW1lbnQ7IG9ubHkgS3dIYXNoIGlzIGFjY2VwdGVkLiBX
aXRoIGEgZGVwcmVjYXRpb24vd2FybmluZyBwaGFzZSwgb2YgY291cnNlLiBUaGUgImF1dG9tYXRp
YyIgcHJvbW90aW9uIG9mIGEgS3dIYXNoIHRvIGEga2V5d29yZCBhcmd1bWVudCBmb2xsb3dzIHRo
ZSBzYW1lIHJ1bGVzIGFzIGEgSGFzaCBpbiAyLjY7IHNpbmNlIHRoZSBLd0hhc2ggaXMgY29uY2Vw
dHVhbGx5IGludGVuZGVkIHRvIHJlcHJlc2VudCBrZXl3b3JkIGFyZ3VtZW50cywgdGhpcyBjb252
ZXJzaW9uIG1ha2VzIHNlbnNlIGluIGEgd2F5IHRoYXQgYSBub3JtYWwgZGF0YSBIYXNoIGRvZXNu
J3QuIFdlJ3ZlIHRha2VuIHRoZSAibGFzdCBwb3NpdGlvbmFsIGhhc2giIGNvbmNlcHQgYW5kIHNw
bGl0IGl0IGludG8gImNvbmNlcHR1YWxseSBhIGhhc2giIGFuZCAiY29uY2VwdHVhbGx5IGtleXdv
cmQgYXJndW1lbnRzIi4gX01vc3QgaW1wb3J0YW50bHlfLCBhbGwgdGhlIGNoYW5nZXMgcmVxdWly
ZWQgdG8gc2lsZW5jZSB0aGVzZSB3YXJuaW5ncyBhcmUgX2NvbXBhdGlibGUgd2l0aCAyLjZfLg0K
DQpgYGBydWJ5DQpkZWYgZm9vKHgsICoqa3cpOyBlbmQNCmZvbyhrOjEpICAgICAgIyBBcmd1bWVu
dEVycm9yIGJlY2F1c2UgeCBub3Qgc3BlY2lmaWVkDQpmb28oMSwge2s6MX0pICMgQXJndW1lbnRF
cnJvciBiZWNhdXNlIHRvbyBtYW55IGFyZ3VtZW50czsgSGFzaCBjYW5ub3QgYmUgY29udmVydGVk
IHRvIEt3SGFzaHMNCm9wdHMgPSBbazoxXS5maXJzdA0KZm9vKG9wdHMpICAgICAjIG9wdHMgaXMg
YSBLd0hhc2ggdGhlcmVmb3JlIHVzZWQgYXMga2V5d29yZCBhcmd1bWVudDsgQXJndW1lbnRFcnJv
ciBiZWNhdXNlIHggbm90IHNwZWNpZmllZA0KZm9vKDEsIG9wdHMpICAjIG9wdHMgaXMgYSBLd0hh
c2ggdGhlcmVmb3JlIHVzZWQgYXMga2V5d29yZCBhcmd1bWVudA0KYGBgDQoNClRoZSB3YXJuaW5n
cyBmb3IgdGhpcyB3b3VsZCBiZSBhYm91dCB1cGNvbWluZyBfZXJyb3JzXyBmb3IgcG9zaXRpb25h
bCBhcmd1bWVudHM6IGBmb28oeDoxKWAgd2lsbCBiZSAiZ2l2ZW4gMCwgZXhwZWN0ZWQgMSIgYW5k
IGBmb28oMSx7eDoyfSlgIHdpbGwgYmUgImdpdmVuIDIsIGV4cGVjdGVkIDEiLiBTdWNoIGVycm9y
cyBhcmUgdXNlZnVsIHdoZW4gZGV2ZWxvcGluZywgYnV0IHRoZXJlIGlzIG5vIG5ldyBmdW5jdGlv
bmFsaXR5IHBlciBzZSwganVzdCBhIHN0cmljdGVyIHN5bnRheC4gU28gaXQncyBsZXNzIGltcG9y
dGFudCB0byBlc2NhbGF0ZSB0byBhbiBlcnJvciBhbmQgd2UgY2FuIGtlZXAgdGhlIHdhcm5pbmdz
IGZvciBsb25nZXIgdGhhbiBTdGVwIDIuDQoNCkF0IHRoaXMgcG9pbnQgd2UgaGF2ZSBhY2hpZXZl
ZCBfYWxtb3N0LWZ1bGxfICoqZHluYW1pYyoqIGtleXdvcmQgc2VwYXJhdGlvbiwgYXMgb3Bwb3Nl
ZCB0byB0aGUgY3VycmVudCBfYWxtb3N0LWZ1bGxfICoqc3RhdGljKiogYXBwcm9hY2guIEkgd2Fu
dCB0byBtYWtlIHRoZSBwb2ludCBoZXJlIHRoYXQsIHllcywga2V5d29yZCBhcmd1bWVudHMgKiph
cmUqKiBzZXBhcmF0ZWQsIGl0J3MganVzdCBhIGRpZmZlcmVudCBwYXJhZGlnbS4gV2l0aCBzdGF0
aWMgc2VwYXJhdGlvbiwgYSBrZXl3b3JkIGFyZ3VtZW50IGlzIGRlZmluZWQgbGV4aWNhbGx5IGJ5
IGEgZG91YmxlLXNwbGF0LiBXaXRoIGR5bmFtaWMgc2VwYXJhdGlvbiwgYSBrZXl3b3JkIGFyZ3Vt
ZW50IGlzIHdoZW4gdGhlIGxhc3QgYXJndW1lbnQgaXMgYSBLd0hhc2guIHt7Tm90ZTogSSdtIHNh
eWluZyAiYWxtb3N0LWZ1bGwiIGJlY2F1c2UgS3dIYXNoIGlzIG5vdCBwcm9tb3RlZCB0byBrZXl3
b3JkcyBpbiBgZGVmIGZvbyhhLCoqa3cpO2VuZDtmb28oeDoxKWAgYW5kIGJlY2F1c2Ugc3RhdGlj
IGtleXdvcmRzIGFyZSBhdXRvLWRlbW90ZWQgdG8gcG9zaXRpb25hbCBpbiBgZGVmIGZvbyhhKTtl
bmQ7Zm9vKHg6MSlgfX0NCg0KQW55IGZvcm0gb2YgZGVsZWdhdGlvbiB3b3JrcyB3aXRoIG5vIGNo
YW5nZSByZXF1aXJlZC4gVGhpcyBwcmVzZXJ2ZXMgdGhlIGJlaGF2aW9yIG9mIDIuNiBidXQgb25s
eSBmb3IgS3dIYXNoIG9iamVjdHMuIFRoaXMgaXMgc2ltaWxhciB0byBoYXZpbmcgMi43IHdpdGgg
YHJ1YnkyX2tleXdvcmRzYCBlbmFibGVkIGJ5IGRlZmF1bHQuIEJ1dCBhbHNvIGRpZmZlcmVudCBp
biBzb21lIHdheXM7IG1vc3Qgbm90YWJseSBpdCBhbGxvd3MgdGhlIGNhc2Ugc2hvd24gaW4gIzE2
NDk0IHRvIHdvcmsgYnkgZGVmYXVsdDoNCg0KYGBgcnVieQ0KYXJyYXkgPSBbeDoxXQ0KYXJyYXku
cHVzaCh4OjIpDQphcnJheS5tYXB7IHx4OnwgeCB9ICM9PiBbMSwyXQ0KW3t4OjN9XS5tYXB7IHx4
OnwgeCB9ICM9PiBidXQgdGhpcyB3YXJucywgYXMgaXQgc2hvdWxkDQpgYGANCg0KVGhlIGN1cnJl
bnQgYXBwcm9hY2ggZG9lcyBub3QgYWxsb3cgdGhpcyB0byB3b3JrIGF0IGFsbC4gVGhlIHNvbHV0
aW9uIHByb3Bvc2VkIGluICMxNjQ5NCBoYXMgYWxsIHRoZSBzYW1lIGZsYXdzIGFzIEhhc2gtYmFz
ZWQga2V5d29yZCBhcmd1bWVudHM7IHdoYXQgaGFwcGVucyB0byBgZWFjaHsgfHg9bmlsLCoqa3d8
IH1gID8gVGhpcyBzb2x1dGlvbiBhbGxvd3MgYSBLd0hhc2ggdG8gYmUgY29udmVydGVkIHRvLi4u
IGtleXdvcmRzLiBWZXJ5IHVuc3VycHJpc2luZy4NCg0KR2l2ZW4gdGhhdCBydWJ5IGlzIGEgZHlu
YW1pY2FsbHktdHlwZWQgbGFuZ3VhZ2UgSSBmZWVsIHRoYXQgZHluYW1pYyB0eXBpbmcgb2Yga2V5
d29yZHMgaWYgYSBtb3JlIG5hdHVyYWwgZml0IHRoYW4gc3RhdGljIHR5cGluZy4gQnV0IEkgcmVh
bGl6ZSB0aGF0IG1hbnkgZGlzYWdyZWUgd2l0aCB0aGF0LCB3aGljaCBpcyB3aHkgd2UgY29udGlu
dWUgdG8uLi4NCg0KIyMjIFN0ZXAgNA0KDQpJbnRyb2R1Y2UgYWRkaXRpb25hbCBpbmNvbXBhdGli
aWxpdHkgdG8gcmVhY2ggc3RhdGljL2xleGljYWwgc2VwYXJhdGlvbiBvZiBrZXl3b3JkIGFyZ3Vt
ZW50cy4gSGVyZSB3ZSByZXF1aXJlIHRoYXQgZXZlbiBhIEt3SGFzaCBzaG91bGQgYmUgcGFzc2Vk
IHdpdGggYSBkb3VibGUtc3BsYXQgaW4gb3JkZXIgdG8gcXVhbGlmeSBhcyBhIGtleXdvcmQgYXJn
dW1lbnQuDQoNCmBgYHJ1YnkNCmRlZiBiYXIoKiprdykNCmVuZA0KZGVmIGZvbygqKmt3KQ0KICBi
YXIoa3cpICAgIz0+IGVycm9yOyBLd0hhc2ggcGFzc2VkIHdpdGhvdXQgKioNCiAgYmFyKCoqa3cp
ICM9PiBvaw0KZW5kDQpgYGANCg0KQXQgdGhpcyBwb2ludCB3ZSd2ZSByZWFjaGVkIHRoZSBzYW1l
IGJlaGF2aW9yIGFzIDIuNy4gRGVsZWdhdGlvbiBuZWVkcyB0byBiZSBmaXhlZCwgYnV0IGFzIHdl
IGtub3cgdGhlIGNoYW5nZXMgcmVxdWlyZWQgdG8gc2lsZW5jZSB0aGVzZSB3YXJuaW5ncyBhcmUg
Kipub3QqKiBjb21wYXRpYmxlIHdpdGggMi42IG9yIDIuNy4gVGhlIHdhcm5pbmdzIGZvciB0aGlz
IGFyZSBfZnVuZGFtZW50YWxseSBub3QgZml4YWJsZV8gYXMgbG9uZyBhcyBTdGVwIDIgaGFzIG5v
dCBiZWVuIGZpeGVkLiBUaGlzIGlzIHRoZSBjb3JlIHJlYXNvbiB3aHkgYHJ1YnkyX2tleXdvcmRz
YCBpcyBjdXJyZW50bHkgbmVjZXNzYXJ5IGluIDIuNy4gU28gaW4gdGhlIHZlcnNpb24gYWZ0ZXIg
Mi43IHdlIGNhbiBlbmFibGUgdGhlc2Ugd2FybmluZ3MgYnkgZGVmYXVsdCBzaW5jZSBpdCdzIG5v
dyBwb3NzaWJsZSB0byBmaXggZGVsZWdhdGlvbiB0byB1c2Ugc3RhdGljIGtleXdvcmRzLiBFeGNl
cHQgdGhhdCBnZW0gYXV0aG9ycyB3aG8gbmVlZCB0byBzdGF5IGNvbXBhdGlibGUgd2l0aCDiiaQy
LjcgY2Fubm90IHlldCBtYWtlIHRoZXNlIGNoYW5nZXMsIHNvIHdlIGludHJvZHVjZSBhIHdheSB0
byBfc2lsZW5jZSAqKm9ubHkqKiB0aGVzZSAiU3RlcCA0IiB3YXJuaW5nc18sIGZvciBwZW9wbGUg
d2hvIG5lZWQgdG8gcmVtYWluIGNvbXBhdGlibGUgd2l0aCDiiaQyLjcuIEFuZCB3ZSBrZWVwIHRo
ZW0gYXMgd2FybmluZ3MgaW5zdGVhZCBvZiBlcnJvcnMgdW50aWwgcnVieSAyLjcgaXMgRU9MLg0K
DQpTbyBpbnN0ZWFkIG9mIGhhdmluZyB0byB1cGRhdGUgYSBidW5jaCBvZiBwbGFjZXMgd2l0aCBg
cnVieTJfa2V5d29yZHNgIGp1c3QgdG8gdGVtcG9yYXJpbHkgc2lsZW5jZSB3YXJuaW5ncywgaXQn
cyBhIHNpbmdsZSBmbGFnIGxpa2UgYFdhcm5pbmdbOnJ1YnkzX2tleXdvcmRzXWAuIE9uY2UgcnVi
eSAyLjcgaXMgRU9MIHRoZXNlIGJlY29tZSBjb250cm9sbGVkIGJ5IGBXYXJuaW5nWzpkZXByZWNh
dGVkXWAgd2hpY2ggdGVsbHMgcGVvcGxlIHRoZXkgKipoYXZlKiogdG8gZml4IHRoZWlyIGNvZGUu
IFdoaWNoIGlzIGp1c3QgbGlrZSB0aGUgZXZlbnR1YWwgZGVwcmVjYXRpb24gb2YgYHJ1YnkyX2tl
eXdvcmRzYCwganVzdCB3aXRob3V0IHRoZSBidXN5IHdvcmsgb2YgYWRkaW5nIGBydWJ5Ml9rZXl3
b3Jkc2Agc3RhdGVtZW50cyBpbiB0aGUgZmlyc3QgcGxhY2UuIEJ1dCBhZ2FpbiwgdGhpcyBpbnRy
b2R1Y2VzIG5vIG5ldyBmdW5jdGlvbmFsaXR5LCBqdXN0IGEgc3RyaWN0ZXIgc3ludGF4LiBTbyB3
ZSBjYW4gcGxheSBuaWNlIGFuZCBsZWF2ZSB0aGUgd2FybmluZ3MgZm9yIGEgZmV3IHllYXJzIGJl
Zm9yZSBjaGFuZ2luZyB0byBlcnJvcnMuDQoNClRoZSBxdWVzdGlvbiByZW1haW5zIG9mIGhvdyB0
byBoYW5kbGUgIzE2NDk0IGhlcmUuIEVpdGhlciBkaXNhbGxvdyBpdCBlbnRpcmVseSwgYnV0IEkg
dGhpbmsgdGhhdCB3b3VsZCBiZSBhIHNoYW1lLiBPciBqdXN0IGxpa2UgIzE2NDk0IHN1Z2dlc3Rz
LCBhbGxvdyBoYXNoIHVucGFja2luZyBpbiBub24tbGFtYmRhIFByb2MuIEV4Y2VwdCB0aGF0IG5v
dyBpdCBjYW4gYmUgYSBLd0hhc2ggaW5zdGVhZCBvZiBhIEhhc2gsIHdoaWNoIGF0IGxlYXN0IHBy
ZXNlcnZlcyBkeW5hbWljIGtleXdvcmQgc2VwYXJhdGlvbi4NCg0KIyMgUHV0dGluZyBpdCBhbGwg
dG9nZXRoZXIgKFRMO0RSKQ0KDQpUaGUgaWRlYSBpcyBfbm90XyB0byByZWltcGxlbWVudCBrZXl3
b3JkIGFyZ3VtZW50IHNlcGFyYXRpb247IGFsbCB0aGF0IGlzIG5lZWRlZCBpcyB0byBpbXBsZW1l
bnQgdGhlIHRoaW5ncyBhYm92ZSB0aGF0IGFyZSBub3QgaW4gMi43Og0KKiBDcmVhdGUgYSBLd0hh
c2ggb2JqZWN0IGZvciBicmFjZS1sZXNzIGFuZCBkb3VibGUtc3BsYXR0ZWQgaGFzaGVzLg0KKiBE
aWZmZXJlbnRpYXRlIHRoZSB2YXJpb3VzIHR5cGVzIG9mIHdhcm5pbmdzIGFuZCBhbGxvdyB0byB0
b2dnbGUgb24vb2ZmIHNlcGFyYXRlbHkNCiAgKiBTdGVwIDIgd2FybmluZ3MgX211c3RfIGJlIGZp
eGVkIG5vdzsgY2Fubm90IHRvZ2dsZSBvZmYNCiAgKiBTdGVwIDMgd2FybmluZ3MgX3Nob3VsZF8g
YmUgZml4ZWQgbm93IGJ1dCB5b3UgZG9uJ3QgYWJzb2x1dGVseSBuZWVkIHRvIHVwZ3JhZGUgeW91
ciBnZW1zIGp1c3QgZm9yIHRoYXQNCiAgKiBTdGVwIDQgd2FybmluZ3MgX3Nob3VsZF8gYmUgZml4
ZWQgaW4gbmV4dCB2ZXJzaW9uIHVubGVzcyB5b3UgbmVlZCB0byBzdXBwb3J0IOKJpDIuNw0KDQpJ
IHRoaW5rIHRoYXQncyBhbGwsIHJlYWxseS4uLg0KDQojIyMgUHJvcw0KKiBDbGVhbmVyIHdheSB0
byBzb2x2ZSAjMTY0OTQNCiogQmV0dGVyIGNvbXBhdGliaWxpdHkgKGF0IGxlYXN0IHVudGlsIDIu
NiBpcyBFT0wpDQogICAqIGRlbGVnYXRpb24NCiAgICogc3RvcmluZyBhbiBhcmd1bWVudCBsaXN0
IHRoYXQgZW5kcyB3aXRoIGEgS3dIYXNoDQogICAqIGRlc3RydWN0dXJpbmcgaXRlcmF0aW9uICgj
MTY0OTQpDQoqIFdlIGNhbiBhdm9pZCB0aGUgInVuZm9ydHVuYXRlIGNvcm5lciBjYXNlIiBhcyBk
ZXNjcmliZWQgaW4gdGhlIFtyZWxlYXNlIG5vdGVzXShodHRwczovL3d3dy5ydWJ5LWxhbmcub3Jn
L2VuL25ld3MvMjAxOS8xMi8xMi9zZXBhcmF0aW9uLW9mLXBvc2l0aW9uYWwtYW5kLWtleXdvcmQt
YXJndW1lbnRzLWluLXJ1YnktMy0wLykNCiAgICogaW4gMi43IG9ubHkgZG8gbm90IG91dHB1dCAi
U3RlcCA0IiB3YXJuaW5ncywgbGVhdmUgZGVsZWdhdGlvbiBsaWtlIGl0IHdhcw0KICAgKiBpbiAy
LjggdGhlICJTdGVwIDMiIHdhcm5pbmdzIGhhdmUgYmVlbiBmaXhlZCBhbmQgYSBIYXNoIHdpbGwg
bm90IGJlIGNvbnZlcnRlZCB0byBrZXl3b3JkIGFyZ3VtZW50cw0KICAgKiBkZWxlZ2F0aW9uIGNh
biBub3cgc2FmZWx5IGJlIGZpeGVkIHRvIHVzZSB0aGUgYCoqYCBzeW50YXgNCiogcnVieTJfa2V5
d29yZHMgaXMgbm90IHJlcXVpcmVkLCB3aGljaCBpcyBkZXNpcmFibGUgYmVjYXVzZQ0KICAgKiBp
dCdzIGEgaGlkZGVuIGZsYWcgX2hhY2tfDQogICAqIGl0IHJlcXVpcmVzIHRvIGNoYW5nZSB0aGUg
Y29kZSBub3csIGFuZCBjaGFuZ2UgaXQgX2FnYWluXyB3aGVuIHJ1YnkyX2tleXdvcmRzIGlzIGRl
cHJlY2F0ZWQ7IHR3aWNlIHRoZSB3b3JrOyB0d2ljZSB0aGUgZ2VtIHVwZ3JhZGVzDQogICAqIGl0
IHdhcyBzdXBwb3NlZCB0byBiZSB1c2VkIG9ubHkgZm9yIHBlb3BsZSB3aG8gbmVlZCB0byBzdXBw
b3J0IDIuNiBvciBiZWxvdywgYnV0IGl0J3MgYmVpbmcgbWlzdW5kZXJzdG9vZCBhcyBhbiBhY2Nl
cHRhYmxlIHdheSB0byBmaXggZGVsZWdhdGlvbiBpbiBnZW5lcmFsDQogICAqIHRoZXJlJ3MgdGhl
IG5vbi16ZXJvIHJpc2sgdGhhdCBydWJ5Ml9rZXl3b3JkcyB3aWxsIG5ldmVyIGJlIHJlbW92ZWQs
IGxlYXZpbmcgdXMgd2l0aCBhIHBlcm1hbmVudCAiaGFjayBtb2RlIg0KICAgICAgKiBkeW5hbWlj
IGtleXdvcmRzIGFyZSBieSBmYXIgcHJlZmVyYWJsZSB0byBzdXBwb3J0aW5nIHJ1YnkyX2tleXdv
cmRzIGZvcmV2ZXINCiogTGlrZWx5IF9iZXR0ZXIgcGVyZm9ybWFuY2VfLCBhcyB0aGUgS3dIYXNo
IGNsYXNzIGNhbiBiZSBvcHRpbWl6ZWQgc3BlY2lmaWNhbGx5IGZvciB0aGUgY2hhcmFjdGVyaXN0
aWNzIG9mIGtleXdvcmQgYXJndW1lbnRzLg0KKiBNb3JlIGZsZXhpYmxlIG1pZ3JhdGlvbg0KICAg
KiBBbGxvdyBtb3JlIHRpbWUgdG8gdXBncmFkZSB0aGUgaGFyZCBzdHVmZiBpbiBTdGVwIDQNCiAg
ICogQ2FuIHJlYWNoIHRoZSBfc2FtZV8gZ29hbCBhcyB0aGUgY3VycmVudCBzdGF0aWMgYXBwcm9h
Y2gNCiAgICogTGFyZ2VyICJzdXBwb3J0IHpvbmUiIGh0dHBzOi8veGtjZC5jb20vMjIyNC8NCiAg
ICogSW5zdGVhZCBvZiB3aWRlLXJhbmdpbmcgaW5jb21wYXRpYmlsaXRpZXMgYWxsIGF0IG9uY2Us
IHRoZXJlJ3MgdGhlIF9wb3NzaWJpbGl0eV8gb2YgbWFraW5nIGl0IGZpbmVyLWdyYWluZWQgYW5k
IG1vcmUgZ3JhZHVhbA0KICAgICAgKiBydWJ5aXN0cyBjYW4gX2Nob29zZV8gdG8gbWlncmF0ZSBh
bGwgYXQgb25jZSBvciBpbiBzbWFsbGVyIGNodW5rcw0KICAgKiBJdCBoZWRnZXMgdGhlIHJpc2tz
IGJ5IGtlZXBpbmcgbW9yZSBwb3NzaWJpbGl0aWVzIG9wZW4gZm9yIG5vdy4NCiAgICogSXQgYWxs
b3dzIHRvIGNvcC1vdXQgYXQgU3RlcCAzIGlmIFN0ZXAgNCB0dXJucyBvdXQgdG9vIGhhcmQgYmVj
YXVzZSBpdCBicmVha3MgdG9vIG11Y2ggc3R1ZmYNCg0KIyMjIENvbnMNCiogSXQgYWxsb3dzIHRv
IGNvcC1vdXQgYXQgU3RlcCAzIGlmIFN0ZXAgNCB0dXJucyBvdXQgdG9vIGhhcmQgYmVjYXVzZSBp
dCBicmVha3MgdG9vIG11Y2ggc3R1ZmYNCg0KDQoNCg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1s
YW5nLm9yZy8NCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxh
bmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9j
Z2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==

In This Thread

Prev Next