[ruby-core:95039] [Ruby master Feature#16168] Add keyword argument separation to C functions using rb_scan_args

From: merch-redmine@...
Date: 2019-09-22 22:21:32 UTC
List: ruby-core #95039
SXNzdWUgIzE2MTY4IGhhcyBiZWVuIHVwZGF0ZWQgYnkgamVyZW15ZXZhbnMwIChKZXJlbXkgRXZh
bnMpLg0KDQoNCkF0IHRoZSBsYXN0IGRldmVsb3BlciBtZWV0aW5nLCBtYXR6IHJlcXVlc3RlZCB0
aGF0IGluc3RlYWQgb2YgImsiLCAiZSIsIGFuZCAibiIgbW9kaWZpZXJzIHRvIGByYl9zY2FuX2Fy
Z3NgLCBhIG5ldyBgcmJfc2Nhbl9hcmdzX2t3YCBtZXRob2QgYmUgYWRkZWQgZm9yIHRoYXQgYmVo
YXZpb3IuICBJIGhhdmUgdXBkYXRlZCB0aGUgcHVsbCByZXF1ZXN0IHRvIGFkZCB0aGF0IG1ldGhv
ZC4NCg0KbWF0eiBhbHNvIGhhZCBhIHF1ZXN0aW9uOg0KDQpgYGANCldoeSBpcyByYl9zY2FuX2Fy
Z3MoIjoiKSB0cmVhdGVkIGFzIGRlZiBmb28ob3B0ID0ge30pPyBJZiB0aGVyZSBpcyBubyBzcGVj
aWFsIHJlYXNvbiwgSeKAmWQgbGlrZSB0byBoYW5kbGUgaXQgYXMgZGVmIGZvbygqKm9wdCkNCmBg
YA0KDQpUaGUgYmVuZWZpdCBvZiB0cmVhdGluZyBpdCBhcyBgb3B0ID0ge31gIGlzIHRoYXQgaXQg
aXMgYmV0dGVyIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIGNvZGUs
IGJlY2F1c2UgeW91IGNhbiBjb250aW51ZSB0byBwYXNzIGluIGEgaGFzaCBpbnN0ZWFkIG9mIGEg
a2V5d29yZCBzcGxhdC4gIFBhc3NpbmcgaW4gYSBoYXNoIGlzIGFsc28gYmV0dGVyIGZvciBwZXJm
b3JtYW5jZSwgYXMgYSBrZXl3b3JkIHNwbGF0IHJlcXVpcmVzIGEgaGFzaCBhbGxvY2F0aW9uLg0K
DQpUaGUgYmVuZWZpdCBvZiB0cmVhdGluZyBpdCBhcyBgKipvcHRgIGlzIHRoYXQgeW91IGNvdWxk
IGFkZCBvcHRpb25hbCBvciB2YXJpYWJsZSBhcmd1bWVudHMgdG8gdGhlIG1ldGhvZCBsYXRlciBh
bmQgcmV0YWluIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LiAgSWYgeW91IHRyZWF0IGl0IGFzIGBv
cHQgPSB7fWAsIHRoZW4gYWRkaW5nIG9wdGlvbmFsIG9yIHZhcmlhYmxlIGFyZ3VtZW50cyB3b3Vs
ZCBub3QgYmUgYmFja3dhcmRzIGNvbXBhdGlibGUuDQoNCklmIGEgbWV0aG9kIGFjY2VwdHMgb3B0
aW9uYWwgb3IgdmFyaWFibGUgYXJndW1lbnRzIGFuZCB0aGUgbWV0aG9kIGFjY2VwdHMga2V5d29y
ZCBhcmd1bWVudHMsIHlvdSBjYW5ub3QgdHJlYXQgYDpgIGFzIGBvcHQgPSB7fWAgYXMgaXQgd291
bGQgbm90IGJlIGJhY2t3YXJkcyBjb21wYXRpYmxlLiAgQWxzbywgbWV0aG9kcyB0aGF0IGFjY2Vw
dCBvcHRpb25hbCBvciB2YXJpYWJsZSBhcmd1bWVudHMgYW5kIGtleXdvcmQgYXJndW1lbnRzIGFy
ZSB0aGUgbWFpbiBzb3VyY2Ugb2YgaXNzdWVzIHdpdGgga2V5d29yZHMsIGFuZCB0aGUgcHJpbWFy
eSByZWFzb24gd2UgYXJlIGludHJvZHVjaW5nIGtleXdvcmQgYXJndW1lbnQgc2VwYXJhdGlvbi4N
Cg0KVHJlYXRpbmcgYDpgIGFzIGAqKm9wdGAgaW4gbWV0aG9kcyB0aGF0IG90aGVyd2lzZSBvbmx5
IGFjY2VwdCBtYW5kYXRvcnkgYXJndW1lbnRzIHJlcXVpcmVzIGNoYW5naW5nIGFsbCBjYWxsIHNp
dGVzIHRoYXQgcGFzcyBpbiBhIHBvc2l0aW9uYWwgaGFzaCB0byBwYXNzIGEga2V5d29yZCBzcGxh
dC4gIFRoaXMgY2F1c2VzIGFkZGl0aW9uYWwgd29yayB3aGVuIHVwZ3JhZGluZyBSdWJ5LCBpdCBo
dXJ0cyBwZXJmb3JtYW5jZSwgYW5kIGl0IGNhbiBhY3R1YWxseSBjaGFuZ2UgYmVoYXZpb3IsIGJl
Y2F1c2UgdGhlIGVtcHR5IGtleXdvcmQgc3BsYXQgYW5kIGFuIGVtcHR5IGhhc2ggY2FuIGJlIHRy
ZWF0ZWQgZGlmZmVyZW50bHkgYnkgdGhlIGNvZGUuICBUaGF0J3MgbGlrZWx5IHRvIGJlIGEgYnVn
IGluIHRoZSByZWxhdGVkIGNvZGUsIGJ1dCBpdCBpcyBnb2luZyB0byBoYXBwZW4sIGFuZCBhY3R1
YWxseSBkb2VzIGhhcHBlbiBpbiBzdGRsaWIgKGluIHRoZSBqc29uIGxpYnJhcnkpLg0KDQpBcyBh
IHRlc3QsIEkgd29ya2VkIG9uIGFsd2F5cyB0cmVhdGluZyBgOmAgYXMgYCoqb3B0YCwgYW5kIHRo
ZSBjaGFuZ2VzIG5lY2Vzc2FyeSB0byBnZXQgYG1ha2UgY2hlY2tgIHBhc3Npbmcgd2VyZSBub3Qg
dGhhdCBleHRlbnNpdmUgKHdoaWNoIHN1cnByaXNlZCBtZSkuICBJZiB5b3Ugd2FudCB0byB0cnkg
b3V0IHRoaXMgYmVoYXZpb3IsIEkgaGF2ZSBhZGRlZCBhIGJyYW5jaCBvbiBHaXRIdWIgZm9yIGl0
OiBodHRwczovL2dpdGh1Yi5jb20vamVyZW15ZXZhbnMvcnVieS90cmVlL3JiX3NjYW5fYXJncy1j
b2xvbi1hbHdheXMta2V5d29yZA0KDQpJIHN0aWxsIHJlY29tbWVuZCB0cmVhdGluZyBgOmAgYXMg
YG9wdD17fWAgZm9yIG1ldGhvZHMgdGhhdCBkbyBub3QgYWNjZXB0IG9wdGlvbmFsIG9yIHZhcmlh
YmxlIGFyZ3VtZW50cywgYXMgSSB0aGluayBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIGV4
aXN0aW5nIGNvZGUgYW5kIGJldHRlciBwZXJmb3JtYW5jZSBvdXR3ZWlnaCB0aGUgYWJpbGl0eSB0
byBhZGQgb3B0aW9uYWwgb3IgdmFyaWFibGUgYXJndW1lbnRzIGxhdGVyIGluIGEgYmFja3dhcmRz
IGNvbXBhdGlibGUgbWFubmVyLiAgSG93ZXZlciwgdHJlYXRpbmcgYDpgIGFsd2F5cyBhcyBgKipv
cHRgIG1heSBiZSBtb3JlIGNvbnNpc3RlbnQuICBXaGF0ZXZlciB0aGUgZGVjaXNpb24gaXMsIGhv
cGVmdWxseSB0aGUgZGVjaXNpb24gb24gdGhpcyBjYW4gYmUgbWFkZSBiZWZvcmUgMi43LjAgcHJl
dmlldzIgaXMgcmVsZWFzZWQuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCkZlYXR1cmUgIzE2MTY4OiBBZGQga2V5d29yZCBhcmd1bWVudCBzZXBhcmF0aW9uIHRv
IEMgZnVuY3Rpb25zIHVzaW5nIHJiX3NjYW5fYXJncw0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5v
cmcvaXNzdWVzLzE2MTY4I2NoYW5nZS04MTY3MA0KDQoqIEF1dGhvcjogamVyZW15ZXZhbnMwIChK
ZXJlbXkgRXZhbnMpDQoqIFN0YXR1czogT3Blbg0KKiBQcmlvcml0eTogTm9ybWFsDQoqIEFzc2ln
bmVlOiANCiogVGFyZ2V0IHZlcnNpb246IA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KTW9zdCBSdWJ5IG1ldGhvZHMgaW1wbGVtZW50ZWQgYXMgQyBmdW5jdGlvbnMg
dGhhdCBhY2NlcHQgYSB2YXJpYWJsZSBudW1iZXIgb2YgYXJndW1lbnRzIHVzZSByYl9zY2FuX2Fy
Z3MgZm9yIGFyZ3VtZW50IGhhbmRsaW5nLiAgcmJfc2Nhbl9hcmdzIHN1cHBvcnRzIGEgYDpgIGNo
YXJhY3RlciBmb3Igb3B0aW9uIGhhc2gva2V5d29yZCBhcmd1bWVudHMsIHRoYXQgb3BlcmF0ZXMg
c2ltaWxhcmx5IHRvIGhvdyBrZXl3b3JkIGFyZ3VtZW50cyB3b3JrIGZvciBSdWJ5IG1ldGhvZHMg
aW4gUnVieSAyLjYuDQoNCklmIGEgQyBmdW5jdGlvbiBhY2NlcHRzIG9wdGlvbmFsIG9yIHZhcmlh
YmxlIGFyZ3VtZW50cyBpbiBhZGRpdGlvbiB0byB0aGUgb3B0aW9uIGhhc2gva2V5d29yZCBhcmd1
bWVudHMsIHRoZSBrZXl3b3JkIGFyZ3VtZW50IGlzc3VlcyBkaXNjdXNzZWQgaW4gIzE0MTgzIGFs
c28gYXBwbHkuICBJZiB0aGUgQyBmdW5jdGlvbiBvbmx5IGFjY2VwdHMgbWFuZGF0b3J5IGFyZ3Vt
ZW50cyBhbmQgYW4gb3B0aW9uIGhhc2gsIHRoZW4gdGhlIGFyZ3VtZW50IGhhbmRsaW5nIGlzIG5v
dCBhbWJpZ3VvdXMsIGFuZCB0aGVyZSBzaG91bGRuJ3QgYmUgaXNzdWVzIHdpdGggaXQuICBGb3Ig
dGhpcyByZWFzb24sIEkgcHJvcG9zZSB0byBjaGFuZ2UgcmJfc2Nhbl9hcmdzIHNvIHRoYXQgaWYg
YDpgIGlzIHVzZWQgd2l0aCBvcHRpb25hbCBvciB2YXJpYWJsZSBhcmd1bWVudHMsIGl0IGlzIHRy
ZWF0ZWQgYXMga2V5d29yZHMgKGtleXdvcmQgbW9kZSksIHdoZXJlYXMgaWYgb25seSB1c2VkIHdp
dGggbWFuZGF0b3J5IGFyZ3VtZW50cywgaXQgaXMgdHJlYXRlZCBhcyBhbiBvcHRpb25hbCBwb3Np
dGlvbmFsIGFyZ3VtZW50IChyZWd1bGFyIG1vZGUpLg0KDQpGb3IgZXhhbXBsZSwgSSB3b3VsZCBs
aWtlIHRvIHRyZWF0IHRoZSBmb2xsb3dpbmcgcmJfc2Nhbl9hcmdzIGNhbGxzIHNpbWlsYXIgdG8g
dGhlIGZvbGxvd2luZyBSdWJ5IG1ldGhvZCBkZWZpbml0aW9uczoNCg0KYGBgDQpyYl9zY2FuX2Fy
Z3MoYXJnYywgYXJndiwgIjoiLCAuLi4pICAgICAjIGRlZiBmb28ob3B0cyA9IHt9KQ0KcmJfc2Nh
bl9hcmdzKGFyZ2MsIGFyZ3YsICIxOiIsIC4uLikgICAgIyBkZWYgZm9vKHYxLCBvcHRzID0ge30p
DQoNCnJiX3NjYW5fYXJncyhhcmdjLCBhcmd2LCAiMDE6IiwgLi4uKSAgICMgZGVmIGZvbyh2MT1u
aWwsICoqb3B0cykNCnJiX3NjYW5fYXJncyhhcmdjLCBhcmd2LCAiMTE6IiwgLi4uKSAgICMgZGVm
IGZvbyh2MSwgdjI9bmlsLCAqKm9wdHMpDQoNCnJiX3NjYW5fYXJncyhhcmdjLCBhcmd2LCAiKjoi
LCAuLi4pICAgICMgZGVmIGZvbygqYXJncywgKipvcHRzKQ0KcmJfc2Nhbl9hcmdzKGFyZ2MsIGFy
Z3YsICIxKjoiLCAuLi4pICAgIyBkZWYgZm9vKHYxLCAqYXJncywgKipvcHRzKQ0KcmJfc2Nhbl9h
cmdzKGFyZ2MsIGFyZ3YsICIwMSo6IiwgLi4uKSAgIyBkZWYgZm9vKHYxPW5pbCwgKmFyZ3MsICoq
b3B0cykNCnJiX3NjYW5fYXJncyhhcmdjLCBhcmd2LCAiMTEqOiIsIC4uLikgICMgZGVmIGZvbyh2
MSwgdjI9bmlsLCAqYXJncywgKipvcHRzKQ0KYGBgDQoNCkluIDIuNywgSSB3b3VsZCBsaWtlIHRv
IGtlZXAgcmJfc2Nhbl9hcmdzIGJlaGF2aW9yIHRoZSBzYW1lIGFzIGl0IGlzIG5vdywgYnV0IGFk
ZCB3YXJuaW5ncyBmb3IgY2FzZXMgdGhhdCB3aWxsIGNoYW5nZSBpbiAzLjAuICBUaGVzZSBtaXJy
b3IgdGhlIGhhbmRsaW5nIG9mIGtleXdvcmQgYXJndW1lbnRzIGZvciBSdWJ5IG1ldGhvZHMgaW4g
Mi43IGFuZCAzLjAuDQoNCk9uZSBiZWhhdmlvciBjaGFuZ2UgaW4gMi43IGNvbXBhcmVkIHRvIHBy
ZXZpb3VzIHZlcnNpb25zIGlzIHRoYXQgaW4ga2V5d29yZCBtb2RlLCBjYWxsaW5nIHRoZSBDIG1l
dGhvZCB3aXRoIGFuIGVtcHR5IGtleXdvcmQgc3BsYXQgKGUuZy4gYCoqe31gKSB3aWxsIG1ha2Ug
cmJfc2Nhbl9hcmdzIG5vdCBjb25zaWRlciB0aGUgbGFzdCBwb3NpdGlvbmFsIGFyZ3VtZW50IGFz
IHBvc3NpYmxlIGtleXdvcmQgYXJndW1lbnRzLiBUaGlzIGlzIGFuIGltcG9ydGFudCBjaGFuZ2Ug
dG8gbWFrZSwgc28gdGhhdCB5b3UgY2FuIGNhbGwgdGhlIEMgbWV0aG9kIHdpdGggYSB3YXkgdG8g
ZGlzYWJsZSB0aGUgb3B0aW9uIHBhcnNpbmcuDQoNClRoZXJlIGFyZSBhbHNvIHNvbWUgcmVsYXRl
ZCBpc3N1ZXMgaW4gcmJfc2Nhbl9hcmdzIHRoYXQgSSB3b3VsZCBsaWtlIHRvIGZpeCAod2l0aCB3
YXJuaW5ncyBpbiAyLjcgYW5kIGJlaGF2aW9yIGNoYW5nZXMgaW4gMy4wOg0KDQoqIHJiX3NjYW5f
YXJncyBjdXJyZW50bHkgc3BsaXRzIGhhc2hlcywgc2VwYXJhdGluZyB0aGUgbm9uLXN5bWJvbCBr
ZXlzIGludG8gYSBzZXBhcmF0ZSBwb3NpdGlvbmFsIGFyZ3VtZW50LiAgSSB3b3VsZCBsaWtlIHRv
IHJlbW92ZSB0aGlzIHNwbGl0dGluZyBpbiBib3RoIGtleXdvcmQgbW9kZSBhbmQgcmVndWxhciBt
b2RlLCBhcyBSdWJ5IHdpbGwgbm8gbG9uZ2VyIHNwbGl0IGhhc2hlcyBpbiAzLjAgZm9yIFJ1Ynkg
bWV0aG9kcy4NCg0KKiByYl9zY2FuX2FyZ3MgY3VycmVudGx5IHdpbGwgdHJlYXQgYSBuaWwgdmFs
dWUgYXMgYW4gZW1wdHkgaGFzaCBpbiBzb21lIGNhc2VzLiAgUnVieSBtZXRob2RzIGRvIG5vdCBk
byB0aGlzLCBhbmQgSSB0aGluayBpdCB3b3VsZCBiZSBiZXN0IGlmIEMgbWV0aG9kcyBzdG9wcGVk
IGRvaW5nIHRoaXMgZG8gdGhpcyBpbiBib3RoIHJlZ3VsYXIgbW9kZSBhbmQga2V5d29yZCBtb2Rl
Lg0KDQoqIHJiX3NjYW5fYXJncyB3aWxsIHVzZSBrZXl3b3JkIGFyZ3VtZW50cyBpZiBuZWNlc3Nh
cnkgdG8gZmlsbCBhIG1hbmRhdG9yeSBwb3NpdGlvbmFsIGFyZ3VtZW50LiAgSSB0aGluayB3ZSBz
aG91bGQga2VlcCB0aGlzIGJlaGF2aW9yIGluIHJlZ3VsYXIgbW9kZSBhbmQgcmVtb3ZlIGl0IGlu
IGtleXdvcmQgbW9kZSwgc2ltaWxhciB0byBob3cgUnVieSBtZXRob2RzIGhhbmRsZSB0aGUgc2l0
dWF0aW9uLg0KDQoqIHJiX3NjYW5fYXJncyB3aGVuIGNhbGxlZCB3aXRoIGFuIGVtcHR5IGtleXdv
cmQgc3BsYXQgY3VycmVudGx5IGJyZWFrcyBjb21wYXRpYmlsaXR5IHdpdGggUnVieSAyLjYsIHdo
aWNoIHBhc3NlZCBhbiBlbXB0eSBoYXNoIGluIHRoaXMgY2FzZS4gIFJlc3RvcmUgYmFja3dhcmRz
IGNvbXBhdGliaWxpdHkgYnkgYWRkaW5nIHRoZSBlbXB0eSBoYXNoIGlmIG5lZWRlZCBmb3IgYSBt
YW5kYXRvcnkgcG9zaXRpb25hbCBhcmd1bWVudCwgYnV0IHRoaXMgYmVoYXZpb3Igc2hvdWxkIGJl
IHJlbW92ZWQgaW4gMy4wLg0KDQpUaGVyZSBhcmUgYSBmZXcgcGxhY2VzIGluIFJ1Ynkgd2hlcmUg
cmJfc2Nhbl9hcmdzIGlzIGNhbGxlZCBpbmRpcmVjdGx5LCB3aGVyZSBhIFJ1YnkgbWV0aG9kIGlz
IGltcGxlbWVudGVkIGluIEMsIGFuZCBpdCBjYWxscyByYl9zY2FuX2FyZ3Mgd2l0aCB0aGUgYXJn
dW1lbnRzIHBhc3NlZCBmcm9tIFJ1YnksIGJ1dCB0aGVuIGl0IGNhbGxzIGFub3RoZXIgQyBmdW5j
dGlvbiB3aXRoIGEgZGlmZmVyZW50IHNldCBvZiBhcmd1bWVudHMuICBJbiB0aGlzIGNhc2UsIHdl
IGNhbm5vdCB1c2UgdGhlIHJiX2tleXdvcmRfZ2l2ZW5fcCBhbmQgcmJfZW1wdHlfa2V5d29yZF9n
aXZlbl9wIGZ1bmN0aW9ucyB0byBkZXRlcm1pbmUgaG93IHRoZSBhcmd1bWVudHMgc2hvdWxkIGJl
IGhhbmRsZWQsIGFzIHRoZXNlIHJlbHkgb24gVk0gZnJhbWUgZmxhZ3MsIGFuZCB0aGUgZnJhbWUg
ZmxhZ3MgbWF5IG5vdCBtYXRjaCB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byByYl9zY2FuX2FyZ3Mu
ICBIYW5kbGUgdGhpcyBjYXNlIGJ5IGFsbG93aW5nIHByZXBlbmRpbmcgdGhlIHJiX3NjYW5fYXJn
cyBzdHJpbmcgd2l0aCBhIGBrYCwgYGVgLCBvciBgbmAgcHJlZml4Og0KDQoqIGs6IFRyZWF0IGFz
IGlmIHRoZSBrZXl3b3JkIGdpdmVuIGZsYWcgaXMgc2V0IChsYXN0IGFyZ3VtZW50IHNob3VsZCBi
ZSBhIGhhc2gpLg0KICAgIA0KKiBlOiBUcmVhdCBhcyBpZiB0aGUgZW1wdHkga2V5d29yZCBnaXZl
biBmbGFnIGlzIHNldCAoaW4ga2V5d29yZCBtb2RlLCBkbyBub3QgbG9vayBmb3IgYSBsYXN0IHBv
c2l0aW9uYWwgaGFzaCkuDQogICAgDQoqIG46IEluIGtleXdvcmQgbW9kZSwgYXNzdW1lIHRoZSBj
YWxsIGRpZCBub3Qgc2V0IHRoZSBrZXl3b3JkIG9yIGVtcHR5IGtleXdvcmQgZmxhZ3MsIGJ1dCBk
byBub3QgaXNzdWUgYSB3YXJuaW5nIGlmIHRoZSBsYXN0IGFyZ3VtZW50IGlzIGEgaGFzaCB0aGF0
IGlzIHRyZWF0ZWQgYXMga2V5d29yZHMuDQogICAgDQpXaXRoIHRoaXMgYXBwcm9hY2gsIGV4dGVy
bmFsIEMgZXh0ZW5zaW9ucyB3aWxsIGJlIGFibGUgdG8gZ2V0IGJhY2t3YXJkcyBjb21wYXRpYmxl
IGJlaGF2aW9yIG9uIFJ1YnkgPDIuNyBieSB1c2luZyBhIG1hY3JvLiBPbiAyLjcrLCB0aGUgbWFj
cm8gY2FuIGJlIGRlZmluZWQgdG8gImsiLCAiZSIsIG9yICJuIiwgYW5kIG9uIDwyLjcsIGl0IGNh
biBiZSBkZWZpbmVkIHRvICIiLg0KDQpJIGhhdmUgYSBwdWxsIHJlcXVlc3QgdGhhdCBoYXMgcGFz
c2VkIENJIChodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvMjQ2MCkgdGhhdCBpbXBs
ZW1lbnRzIGFsbCBvZiB0aGUgYWJvdmUuICBJdCBpcyBhbHNvIGF0dGFjaGVkIGFzIHBhdGNoLiBJ
dCBmaXhlcyBhbGwgY2FzZXMgaW4gdGhlIHRlc3RzLCBjb3JlLCBleHRlbnNpb25zLCBzdGRsaWIg
d2hlcmUgd2FybmluZ3Mgd2VyZSByYWlzZWQgZHVlIHRvIGNoYW5nZXMuICBUaGUgc3RkbGliIGFu
ZCB0ZXN0IGZpeGVzIChSdWJ5IGxldmVsKSBhcmUgbW9zdGx5IGFkZGluZyBrZXl3b3JkIHNwbGF0
cyBpbnN0ZWFkIG9mIHBhc3NpbmcgYXMgcG9zaXRpb25hbCBhcmd1bWVudHMsIG9yIG1ha2luZyBz
dXJlIHRvIHVzZSBhbiBlbXB0eSBoYXNoIGluc3RlYWQgb2YgbmlsIGFzIGFuIG9wdGlvbiBoYXNo
LiBUaGUgY29yZSBhbmQgZXh0ZW5zaW9uIGNoYW5nZXMgYXJlIG1vc3RseSBzd2l0Y2hpbmcgdG8g
YCpfa3dgIGZ1bmN0aW9ucyB0byBhcHByb3ByaWF0ZWx5IHBhc3MgdGhhdCBhcmd1bWVudHMgc2hv
dWxkIGJlIHRyZWF0ZWQgYXMga2V5d29yZHMgaWYgY2FsbGVkIHdpdGgga2V5d29yZHMuDQoNCi0t
LUZpbGVzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnJiX3NjYW5fYXJncy1rZXl3
b3JkLWFyZ3VtZW50LXNlcGFyYXRpb24ucGF0Y2ggKDYxLjggS0IpDQoNCg0KLS0gDQpodHRwczov
L2J1Z3MucnVieS1sYW5nLm9yZy8NCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUtcmVx
dWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMucnVi
eS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==

In This Thread

Prev Next