[#110185] [Ruby master Bug#19037] [Ruby 3.1.2] irb output color as literal when set IRB.conf[:USE_COLORIZE] = true (it is default) — "zw963 (Wei Zheng)" <noreply@...>

SXNzdWUgIzE5MDM3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHp3OTYzIChXZWkgWmhlbmcpLgoKLS0t

6 messages 2022/10/05

[#110211] [Ruby master Misc#19040] DevMeeting-2022-10-20 — "mame (Yusuke Endoh)" <noreply@...>

SXNzdWUgIzE5MDQwIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IG1hbWUgKFl1c3VrZSBFbmRvaCkuCgot

9 messages 2022/10/06

[#110218] [Ruby master Bug#19041] Weakref is still alive after major garbage collection — "parker (Parker Finch)" <noreply@...>

SXNzdWUgIzE5MDQxIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHBhcmtlciAoUGFya2VyIEZpbmNoKS4K

9 messages 2022/10/06

[#110250] [Ruby master Bug#19047] DelegateClass displays "method redefined" warning when overriding methods — "jonathanhefner (Jonathan Hefner)" <noreply@...>

SXNzdWUgIzE5MDQ3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGpvbmF0aGFuaGVmbmVyIChKb25hdGhh

14 messages 2022/10/10

[#110287] [Ruby master Bug#19055] Regexp.new(regexp, timeout: nil) is intrupted by Regexp.timeout — "jaruga (Jun Aruga)" <noreply@...>

SXNzdWUgIzE5MDU1IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGphcnVnYSAoSnVuIEFydWdhKS4KCi0t

9 messages 2022/10/14

[#110293] [Ruby master Bug#19056] Introduce `Fiber.annotation` for attaching messages to fibers. — "ioquatix (Samuel Williams)" <noreply@...>

SXNzdWUgIzE5MDU2IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlh

12 messages 2022/10/14

[#110300] [Ruby master Bug#19057] Hide implementation of `rb_io_t`. — "ioquatix (Samuel Williams)" <noreply@...>

SXNzdWUgIzE5MDU3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlh

53 messages 2022/10/15

[#110312] [Ruby master Feature#19061] Proposal: make a concept of "consuming enumerator" explicit — "zverok (Victor Shepelev)" <noreply@...>

SXNzdWUgIzE5MDYxIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHp2ZXJvayAoVmljdG9yIFNoZXBlbGV2

12 messages 2022/10/15

[#110320] [Ruby master Bug#19062] Introduce `Fiber#locals` for shared inheritable state. — "ioquatix (Samuel Williams)" <noreply@...>

SXNzdWUgIzE5MDYyIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlh

33 messages 2022/10/16

[#110324] [Ruby master Feature#19063] Hash.new with non-value objects should be less confusing — "baweaver (Brandon Weaver)" <noreply@...>

SXNzdWUgIzE5MDYzIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGJhd2VhdmVyIChCcmFuZG9uIFdlYXZl

35 messages 2022/10/16

[#110378] [Ruby master Bug#19067] `private_constant` does not work at toplevel in wrapped module context — "shioyama (Chris Salzberg)" <noreply@...>

SXNzdWUgIzE5MDY3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHNoaW95YW1hIChDaHJpcyBTYWx6YmVy

8 messages 2022/10/18

[#110383] [Ruby master Feature#19068] Print NODE type with yydebug option — "yui-knk (Kaneko Yuichiro)" <noreply@...>

SXNzdWUgIzE5MDY4IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHl1aS1rbmsgKEthbmVrbyBZdWljaGly

9 messages 2022/10/18

[#110422] [Ruby master Feature#19071] Add Time#deconstruct, #deconstruct_keys, and #to_h — "zverok (Victor Shepelev)" <noreply@...>

SXNzdWUgIzE5MDcxIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHp2ZXJvayAoVmljdG9yIFNoZXBlbGV2

9 messages 2022/10/19

[#110461] [Ruby master Misc#19074] DevMeeting-2022-11-17 — "mame (Yusuke Endoh)" <noreply@...>

SXNzdWUgIzE5MDc0IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IG1hbWUgKFl1c3VrZSBFbmRvaCkuCgot

17 messages 2022/10/21

[#110473] [Ruby master Feature#19075] Add Array#bsearch_last and #bsearch_last_index — "kyanagi (Kouhei Yanagita)" <noreply@...>

SXNzdWUgIzE5MDc1IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGt5YW5hZ2kgKEtvdWhlaSBZYW5hZ2l0

16 messages 2022/10/21

[#110481] [Ruby master Bug#19078] Introduce `Fiber#storage` for inheritable fiber-scoped variables. — "ioquatix (Samuel Williams)" <noreply@...>

SXNzdWUgIzE5MDc4IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlh

30 messages 2022/10/22

[#110502] [Ruby master Bug#19082] Recent change in the ruby_3_1 branch prevents some gems from being installed on Apple Silicon — "monfresh (Moncef Belyamani)" <noreply@...>

SXNzdWUgIzE5MDgyIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IG1vbmZyZXNoIChNb25jZWYgQmVseWFt

8 messages 2022/10/24

[#110529] [Ruby master Feature#19089] Load bundler/setup in gem_prelude.rb when "bundle exec" is used — "mame (Yusuke Endoh)" <noreply@...>

SXNzdWUgIzE5MDg5IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IG1hbWUgKFl1c3VrZSBFbmRvaCkuCgot

13 messages 2022/10/28

[#110542] [Ruby master Feature#19090] Do not duplicate an unescaped string in CGI.escapeHTML — "k0kubun (Takashi Kokubun)" <noreply@...>

SXNzdWUgIzE5MDkwIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGswa3VidW4gKFRha2FzaGkgS29rdWJ1

15 messages 2022/10/29

[#110554] [Ruby master Bug#19094] `sleep(nil)` vs `sleep()` and replicating the default implementation. — "ioquatix (Samuel Williams)" <noreply@...>

SXNzdWUgIzE5MDk0IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlh

8 messages 2022/10/31

[ruby-core:110266] [Ruby master Feature#19024] Proposal: Import Modules

From: "austin (Austin Ziegler)" <noreply@...>
Date: 2022-10-12 04:25:25 UTC
List: ruby-core #110266
SXNzdWUgIzE5MDI0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgYXVzdGluIChBdXN0aW4gWmllZ2xlciku
DQoNCg0KQHNoaW95YW1hLCB0aGFua3MgZm9yIHRoZSBkZWVwZXIgZGV0YWlscy4gQXMgcmVxdWVz
dGVkLCBJJ20gY29uc2lkZXJpbmcgdGhlIGNvbmNlcHQgb2YgdHJhbnNpdGl2ZSBgcmVxdWlyZWAg
b2ZmIHRoZSB0YWJsZS4gSSBoYXZlIGVsaWRlZCBzb21lIG9mIHlvdXIgbWVzc2FnZSBpbiByZXNw
b25zZSwgYnV0IEkgKmRvIG5vdCBiZWxpZXZlKiB0aGF0IEkgaGF2ZSBtaXNyZXByZXNlbnRlZCBh
bnl0aGluZy4gSSBhbSBhbHNvIHJlcGx5aW5nIHRvICNub3RlLTIwIGJlY2F1c2UgSSBkbyBub3Qg
YmVsaWV2ZSB0aGF0IHlvdXIgc3Vic2VxdWVudCBmb2xsb3ctdXAgZnVuZGFtZW50YWxseSBjaGFu
Z2VzIG15IHBvc2l0aW9uIGluIGFueSB3YXkuDQoNCnNoaW95YW1hIChDaHJpcyBTYWx6YmVyZykg
d3JvdGUgaW4gI25vdGUtMjA6DQo+IEVuY2Fwc3VsYXRpb24gYW5kIG5hbWVzcGFjaW5nIGFyZSBk
aXJlY3RseSByZWxhdGVkOiBSdWJ5J3MgbWVjaGFuaXNtIGZvciBlbmNhcHN1bGF0aW9uIF9pc18g
bmFtZXNwYWNpbmcuIFlvdSBuYW1lIHNvbWV0aGluZyBpbiBhIGZpbGUgYW5kIGRlZmluZSB3aGF0
IHlvdSB3YW50IHVuZGVyIGl0LCBhbmQgaG9wZSBub2JvZHkgcmVhY2hlcyBpbnRvIHRoYXQgbW9k
dWxlIG5hbWVzcGFjZSB3aGVuIHRoZXkgc2hvdWxkbid0LiBZb3UgaGF2ZSBgcHJpdmF0ZV9jb25z
dGFudGAgYW5kIHRoYXQncyBhYm91dCBpdC4NCg0KRnVuZGFtZW50YWxseSwgdGhhdCdzIG5vdCB0
cnVlLiBJdCBpcyBfYnkgY29udmVudGlvbl8gdGhhdCBgcmVxdWlyZSAnZm9vJ2AgZGVmaW5lcyBg
OjpGb29gLiBJdCBjb3VsZCBkZWZpbmUgYDpGb29gIF9hbmRfIGA6OkJhcmAsIG9yIGl0IGNvdWxk
IGp1c3QgZGVmaW5lIGA6OkhvZ2VgLiBJIHRoaW5rIGl0J3MgYSBfZ29vZF8gY29udmVudGlvbi4g
QXMgd2UncmUgdGFsa2luZyBhYm91dCBhIG5ldyBmZWF0dXJlLCBpdCBpcyB3b3J0aHdoaWxlIG1h
a2luZyBpdCBzbyB0aGF0IGZpbGVuYW1lcyBhcmUgY29ycmVsYXRlZCB0byBkZWZpbmVkIGNvbnN0
YW50c+KApm1vcmUgb3IgbGVzcy4gSSBhbHNvIHRoaW5rIHRoYXQgaXQncyB3b3J0aCBub3Rpbmcg
dGhhdCB3ZSBfY3VycmVudGx5XyBoYXZlIG9ubHkgYHByaXZhdGVfY29uc3RhbnRg4oCUYW5kIGl0
IHN0aWxsIGZlZWxzIGxpa2UgYSBuZXcgdGhpbmcgdG8gbWUgKGFsdGhvdWdoIEkgdXNlIGl0IGV4
dGVuc2l2ZWx5IG5vdykuDQoNCj4gW05dYW1lc3BhY2luZyBlbmZvcmNbaW5nXSBlbmNhcHN1bGF0
aW9uIOKApmZ1bmRhbWVudGFsbHkgbWlzYWxpZ25zIHR3byB2ZXJ5IGltcG9ydGFudCBpbmNlbnRp
dmVz4oCmDQo+DQo+IFRoZSBmaXJzdCDigKYgaXMgKip0byB3cml0ZSBsZXNzIGNvZGUqKiwgcGFy
dGljdWxhcmx5IGJvaWxlcnBsYXRlIGNvZGUuIEl0J3MgbXVjaCBlYXNpZXIgdG8gd3JpdGUgYFBy
b2R1Y3RgIHRoYW4gaXQgaXMgdG8gd3JpdGUgYE1lcmNoYW5kaXNpbmc6OlByb2R1Y3RgLCBhbmQg
bXVjaCBlYXNpZXIgdG8gbm90IHdyYXAgeW91ciBnZW0gY29kZSBpbiBgbW9kdWxlIE1lcmNoYW5k
aXNpbmdgIHRoYW4gaXQgaXMgdG8gd3JhcCBpdC4gVGhlIGludGVycHJldGVyIG1heSB0cmVhdCB0
aGVzZSByb3VnaGx5IHRoZSBzYW1lIHdheSwgYnV0IGh1bWFucyB3aWxsIHNlZSB0aGVtIHF1aXRl
IGRpZmZlcmVudGx5IGFuZCBuYXR1cmFsbHkgcHJlZmVyIHRoZSBmb3JtZXIgb3ZlciB0aGUgbGF0
dGVyLg0KDQpJIGRvbid0LCBmdWxsIHN0b3AuIEknbSBkb2luZyBtb3N0IG9mIG15IHdvcmsgdGhl
c2UgZGF5cyBpbiBFbGl4aXIsIHdoZXJlIEkgaGF2ZSBgZGVmbW9kdWxlIENvbXBhbnkuUmVzb3Vy
Y2VzLlByb2R1Y3RWYXJpYW50YCBmb3Igb3VyIHByb2R1Y3QgdmFyaWFudCBzdHJ1Y3R1cmUuIFll
cywgSSByZWZlciB0byB0aGlzIGFzIGBQcm9kdWN0VmFyaWFudGAgaW4gZGlzY3Vzc2lvbnMsIGFu
ZCB3aWxsIHVzZSBgYWxpYXMgQ29tcGFueS5SZXNvdXJjZXMuUHJvZHVjdFZhcmlhbnRgIHNvIHRo
YXQgX2luIGNvbnRleHRfIHRoZSBvYmplY3QgY2FuIGJlIHJlZmVycmVkIHRvIGFzIGBQcm9kdWN0
VmFyaWFudGDigKZidXQgSSBhbHNvIGhhdmUgYGRlZm1vZHVsZSBDb21wYW55LkdRTC5TY2hlbWEu
UHJvZHVjdFZhcmlhbnRgIChtb3JlIG9yIGxlc3MpIG9yIGBkZWZtb2R1bGUgQ29tcGFueS5HUUwu
UmVzb2x2ZXIuUHJvZHVjdFZhcmlhbnRgIChhZ2FpbiwgbW9yZSBvciBsZXNzKS4NCg0KSSd2ZSBn
b3QgYSBjb2RlYmFzZSB0aGF0IEkgY2Fubm90IF93YWl0XyB0byBoYXZlIHRoZSBvcHBvcnR1bml0
eSB0byByZXdyaXRlIGZyb20gTm9kZS5qcyB0byBFbGl4aXIgb3IgUnVieSwgYmVjYXVzZSB0aGUg
bGFjayBvZiBfYW55IHZpYWJsZV8gbmFtZXNwYWNpbmcgYW5kIGluLWJ1aWx0IHN0cnVjdHVyZSBp
biBKYXZhU2NyaXB0IGhhcyBtYWRlIHRoZSBjb2RlIGFuIGFic29sdXRlIGRpc2FzdGVyIHRvIHdv
cmsgaW4uDQoNCj4gVGhlIHNlY29uZCB0aGluZyB0aGF0IHdlIF93YW50XyB0byBpbmNlbnRpdml6
ZSBpcyAqKnRvIGdyb3VwIHJlbGF0ZWQgY29kZSB0b2dldGhlcioq4oCmDQo+DQo+IFRoaXMgaXMg
YSB0ZXJyaWJsZSB0cmFkZW9mZi4gVGhlIHJlYWxpdHkgaXMgdGhhdCBob3dldmVyIG11Y2ggeW91
IGNhbiB0cnkgdG8gZW5jb3VyYWdlICJkb2luZyB0aGUgcmlnaHQgdGhpbmciLCB5b3Ugd2lsbCBh
bHdheXMgYmUgZmlnaHRpbmcgYSBsb3NpbmcgYmF0dGxlLiAoSSBzaG91bGQga25vdywgSSdtIGZp
Z2h0aW5nIHRoaXMgYmF0dGxlIGV2ZXJ5IGRheSEpIEFuZCB0aGlzIGlzIGEgYmF0dGxlIHdoaWNo
IEkgYmVsaWV2ZSBpcyB1bm5lY2Vzc2FyeSwgYmVjYXVzZSB0aGUgbGl0ZXJhbCBuYW1lc3BhY2Ug
aXMgbW9zdGx5IHJlZHVuZGFudDsgZGlyZWN0b3J5IHN0cnVjdHVyZSBhbHJlYWR5IHNlcnZlcyB0
byBzaWduYWwgZ3JvdXBpbmcuDQoNClJ1YnkgX2lzIG5vdF8gSmF2YSwgUHl0aG9uLCBvciBhbnkg
b3RoZXIgbGFuZ3VhZ2Ugd2hpY2ggY2hvc2UgdG8gaGF2ZSBhIHRpZ2h0IHJlbGF0aW9uc2hpcCB0
byB0aGUgZmlsZXN5c3RlbSBmb3IgbW9kdWxlIHNwZWNpZmljYXRpb24uIEkgZG8gdW5kZXJzdGFu
ZCB0aGF0IHBhcnQgb2YgeW91ciBkaXNjdXNzaW9uIGlzIHdoZXRoZXIgUnVieSBzaG91bGQgX2hh
dmVfIGEgZmlsZXN5c3RlbS1iYXNlZCBtb2R1bGUgc3BlY2lmaWNhdGlvbi4NCg0KPiBUaGUgcG9p
bnRzIEkgbWFkZSBhYm92ZSBhcmUgYWJvdXQgX2xpdGVyYWxfIG5hbWVzcGFjZXMsIGJ5IHdoaWNo
IEkgbWVhbiBuYW1lc3BhY2VzIHRoYXQgYXJlIGxpdGVyYWxseSB3cml0dGVuIGludG8gdGhlIGZp
bGUuIENvbnRyYXN0IHRoaXMgd2l0aCB0aGUgY2FzZSBvZiBgbG9hZCAiZm9vLnJiIiwgbW9kYCwg
d2hlcmUgYG1vZGAgYWN0cyBhcyBuYW1lc3BhY2UgaW4gYGZvby5yYmAgYnV0IGlzIF9pbXBsaWNp
dF8uICoqSW4gdGhpcyBjYXNlLCB0aGUgaW5jZW50aXZlcyBhYm92ZSBjYW4gaW4gZmFjdCBiZSBh
bGlnbmVkLioqDQoNClRoaXMgZnVuZGFtZW50YWxseSBjaGFuZ2VzIF9ldmVyeXRoaW5nXyBhYm91
dCBSdWJ5IGlmIGl0IHdlcmUgdG8gYmUgYWRvcHRlZCwgYW5kIEkgZGlzYWdyZWUgdGhhdCB0aGlz
IHdvdWxkIGJlIGEgbmV0IHBvc2l0aXZlIGNoYW5nZS4NCg0KVGhlIHJlYXNvbiB0aGlzIHdvcmtz
IGZvciBKYXZhU2NyaXB0IGlzIGJlY2F1c2UgdGhlcmUncyBhYnNvbHV0ZWx5IF9ub18gbmFtZXNw
YWNpbmcgb2YgYW55IHNvcnQsIGV4cGxpY2l0IG9yIGltcGxpY2l0LCBpbiBKYXZhU2NyaXB0LiBO
YW1lc3BhY2VzIGFyZSBfc2ltdWxhdGVkXyB0aHJvdWdoIG9iamVjdCBwcm9wZXJ0aWVzIGFuZCBj
bG9zdXJlcyAoYW5kIHRyZWF0aW5nIGBtb2R1bGUuZXhwb3J0c2Agb3IgYGV4cG9ydCDigKZgIGFz
IGRlY2xhcmluZyBhbiBvYmplY3QpLg0KDQpUbyBtYWtlIHRoaXMgd29yayBpbiBSdWJ5LCBpdCBz
ZWVtcyB0byBtZSB0aGF0IGl0IHdvdWxkIGJlIG5lY2Vzc2FyeSB0byBpbnRyb2R1Y2UgdGhlIGNv
bmNlcHQgb2YgYGV4cG9ydGBzIGZvciBSdWJ54oCmYW5kIEkgZG9uJ3QgdGhpbmsgaXQgbWVhbmlu
Z2Z1bGx5IGltcHJvdmVzIHJlYWRhYmlsaXR5IG9yIG1haW50YWluYWJpbGl0eS4gVGhlIG9ubHkg
Y29uY2VwdCB0aGF0IFJ1YnkgaGFzIGZvciBhbiBleHBvcnQgaXMgYSBjb25zdGFudOKApmFuZCBl
dmVuIHdpdGggYGxvYWQgJ2Zvby5yYicsIG1vZGAsIHRoZXJlJ3MgYSBfbG90XyBvZiBzaGFycCBl
ZGdlczoNCg0KYGBgY29uc29sZQ0KWzFdIHByeShtYWluKT4gLmNhdCAidGVzdC5yYiINCmZvbyA9
ICJiYXIiDQoNCkJheiA9ICJiYXoiDQoNCmRlZiBob2dlDQogICJob2dlIg0KZW5kDQoNCm1vZHVs
ZSBRdXV4DQplbmQNCnByaXZhdGVfY29uc3RhbnQgOlF1dXgNClsyXSBwcnkobWFpbik+IHEgPSBN
b2R1bGUubmV3OyBsb2FkICJ0ZXN0LnJiIiwgcQ0KTm9NZXRob2RFcnJvcjogdW5kZWZpbmVkIG1l
dGhvZCBgcHJpdmF0ZV9jb25zdGFudCcgZm9yIG1haW46T2JqZWN0DQoNCnByaXZhdGVfY29uc3Rh
bnQgOlF1dXgNCl5eXl5eXl5eXl5eXl5eXl4NCkRpZCB5b3UgbWVhbj8gIHByaXZhdGVfbWV0aG9k
cw0KZnJvbSB0ZXN0LnJiOjExOmluIGA8dG9wIChyZXF1aXJlZCk+Jw0KYGBgDQoNCkV2ZW4gcmVt
b3ZpbmcgYHByaXZhdGVfY29uc3RhbnQgOlF1dXhgLCB0aGVyZSBhcmUgc2hhcnAgZWRnZXM6DQoN
CmBgYGNvbnNvbGUNClsxXSBwcnkobWFpbik+IHEgPSBNb2R1bGUubmV3OyBsb2FkICJ0ZXN0LnJi
IiwgcQ0KPT4gdHJ1ZQ0KWzJdIHByeShtYWluKT4gcS5CYXoNCk5vTWV0aG9kRXJyb3I6IHVuZGVm
aW5lZCBtZXRob2QgYEJheicgZm9yICM8TW9kdWxlOjB4MDAwMDAwMDEwYTM3Y2E3MD4NCmZyb20g
KHByeSk6MjppbiBgX19wcnlfXycNClszXSBwcnkobWFpbik+IHE6OkJheg0KPT4gImJheiINCls0
XSBwcnkobWFpbik+IHE6OlF1dXgNCj0+ICM8TW9kdWxlOjB4MDAwMDAwMDEwYTM3Y2E3MD46OlF1
dXgNCls1XSBwcnkobWFpbik+IHE6OmhvZ2UNCk5vTWV0aG9kRXJyb3I6IHVuZGVmaW5lZCBtZXRo
b2QgYGhvZ2UnIGZvciAjPE1vZHVsZToweDAwMDAwMDAxMGEzN2NhNzA+DQpmcm9tIChwcnkpOjU6
aW4gYF9fcHJ5X18nDQpbNl0gcHJ5KG1haW4pPiBxLmhvZ2UNCk5vTWV0aG9kRXJyb3I6IHVuZGVm
aW5lZCBtZXRob2QgYGhvZ2UnIGZvciAjPE1vZHVsZToweDAwMDAwMDAxMGEzN2NhNzA+DQpmcm9t
IChwcnkpOjY6aW4gYF9fcHJ5X18nDQpgYGANCg0KPiB3ZSBoYXZlIGluc3RlYWQgc29tZXRoaW5n
IGxpa2UgdGhpcyAoYXNzdW1pbmcgIm15X2NsaWVudF9nZW0iIG9wdHMgaW4gdG8gYmVpbmcgImlt
cG9ydGFibGUiLCB3aGF0ZXZlciB0aGF0IG1lYW5zKToNCj4NCj4gYGBgcnVieQ0KPiAjIHBheW1l
bnRzL2FwaV9jbGllbnRzL2Zvb19jbGllbnQucmINCj4gYXBpX2NsaWVudCA9IGltcG9ydCAibXlf
Y2xpZW50X2dlbS9hcGlfY2xpZW50Ig0KPg0KPiBjbGFzcyBGb29DbGllbnQgPCBhcGlfY2xpZW50
OjpBcGlDbGllbnQNCj4gICAjIC4uLg0KPiBlbmQNCj4NCj4gIyBwYXltZW50cy9hcGlfY2xpZW50
cy9iYXJfY2xpZW50LnJiDQo+IGFwaV9jbGllbnQgPSBpbXBvcnQgIm15X2NsaWVudF9nZW0vYXBp
X2NsaWVudCINCj4NCj4gY2xhc3MgQmFyQ2xpZW50IDwgYXBpX2NsaWVudDo6QXBpQ2xpZW50DQo+
ICAgIyAuLi4NCj4gZW5kDQo+DQo+ICMgcGF5bWVudHMucmINCj4gbW9kdWxlIFBheW1lbnRzDQo+
ICAgZm9vX2NsaWVudCA9IGltcG9ydCAiLi9hcGlfY2xpZW50cy9mb29fY2xpZW50Ig0KPiAgIGJh
cl9jbGllbnQgPSBpbXBvcnQgIi4vYXBpX2NsaWVudHMvYmFyX2NsaWVudCINCj4NCj4gICAjIGRv
IHNvbWV0aGluZyB3aXRoIGZvb19jbGllbnQ6OkZvb0NsaWVudCBhbmQgYmFyX2NsaWVudDo6QmFy
Q2xpZW50DQo+IGVuZA0KPiBgYGANCg0KSSBjYW4ndCBfcXVpdGVfIHRlbGwgd2hldGhlciB0aGF0
IHdvdWxkIGxvYWQgb25lIG9yIHR3byBpbnN0YW5jZXMgb2YgYG15X2NsaWVudF9nZW0vYXBpX2Ns
aWVudGAuIFJlZ2FyZGxlc3MsIEkgZG9uJ3QgcmVhbGx5IHNlZSBob3cgYGFwaV9jbGllbnQ6OkFw
aUNsaWVudGAgaXMgYW4gaW1wcm92ZW1lbnQgb3ZlciBgTXlDbGllbnRHZW06OkFwaUNsaWVudGAs
IGV2ZW4gaWYgaXQncyBhY3R1YWxseSBgTXk6OkNsaWVudDo6R2VtOjpBcGlDbGllbnRgLg0KDQo+
IFRvIG1lIGF0IGxlYXN0LCBoYXZpbmcgZGVhbHQgd2l0aCBfcmVhbXNfIG9mIG5hbWVzcGFjZSBi
b2lsZXJwbGF0ZSwgSSBjYW5ub3QgZXhwcmVzcyB0byB5b3Ugd2hhdCBhIHBsZWFzdXJlIGl0IGlz
IGp1c3QgdG8gd3JpdGUgdGhpcyBoZXJlLiBJdCB0YWtlcyBhd2F5IHNvIG11Y2ggdGhhdCBpcyBp
cnJlbGV2YW50IGFuZCBsZWF2ZXMgb25seSB3aGF0IF9pc18gcmVsZXZhbnQ6IHdoYXQgdGhlIGNv
ZGUgaXMgYWN0dWFsbHkgZG9pbmcuIFRoaXMgSSBiZWxpZXZlIGlzIHdoeSB0aGlzIGlkZWEgaGFz
IGdlbmVyYXRlZCBbc28gbXVjaCBleGNpdGVtZW50XShodHRwczovL3R3aXR0ZXIuY29tL2ZsYXZv
cmpvbmVzL3N0YXR1cy8xNTcwMzkwNjMzNTI0NzQ0MTk1KS4NCg0KV2hhdCB5b3UgY2FsbCAibmFt
ZXNwYWNlIGJvaWxlcnBsYXRlIiwgSSBjYWxsICJjb250ZXh0Ii4gSSB0aGluayB0aGF0IHRoZSAi
ZmxvYXRpbmcgbmFtZXNwYWNlcyIgdGhpcyBpcyB0aGUgc2luZ2xlIF93b3JzdF8gdGhpbmcgYWJv
dXQgSmF2YVNjcmlwdCBhbmQgVHlwZXNjcmlwdCB3aGVuIGl0IGNvbWVzIHRvIGNvbXBsZXggY29k
ZWJhc2VzLiBBcyBJIHNhaWQgZWFybGllciwgSSBoYXZlIG9uZSB3aXRoIGEgZG96ZW4gb3Igc28g
dGFibGVzIGFuZCBtYXliZSB0d2ljZSB0aGF0IG1hbnkgZW5kcG9pbnRz4oCmYW5kIEkgY2Fubm90
IF93YWl0XyB0byByZXdyaXRlIGl0IGluIHNvbWV0aGluZyB0aGF0IGlzIF9ub3RfIEphdmFTY3Jp
cHQsIGJlY2F1c2UgdGhlcmUgYXJlIGZpdmUgZGlmZmVyZW50IHdheXMgdGhhdCB0aGUgZmlsZXMg
aGF2ZSBiZWVuIG9yZ2FuaXplZCBiZWNhdXNlIEphdmFTY3JpcHQgc2ltcGx5IGRvZXMgbm90IF9j
YXJlXyBhYm91dCBvciBldmVuIF9zdXBwb3J0XyBnb29kIGNvZGUgb3JnYW5pemF0aW9uLg0KDQpJ
J3ZlIHJlY2VudGx5IHdyaXR0ZW4gYSBsaWJyYXJ5IGluIEVsaXhpciwgUnVieSwgYW5kIFR5cGVz
Y3JpcHTigKZhbmQgd2hpbGUgdGhlcmUgYXJlIHRoaW5ncyB0aGF0IGNhbiBiZSBzYWlkIGJvdGgg
cG9zaXRpdmUgYW5kIG5lZ2F0aXZlIGFib3V0IGFsbCB0aHJlZSBpbXBsZW1lbnRhdGlvbnMsIEkg
cHJlZmVyIHdvcmtpbmcgb24gdGhlIEVsaXhpciBvciBSdWJ5IG9uZXMgdG8gdGhlIFR5cGVzY3Jp
cHQgYmVjYXVzZSB0aGVyZSdzIF9iZXR0ZXJfIHN1cHBvcnQgZm9yIGdvb2QgcHJhY3RpY2VzIGlu
IGJvdGggb3RoZXIgbGFuZ3VhZ2VzLg0KDQo+IFdlIGFyZSBhY3R1YWxseSBfcmVhbGx5IGNsb3Nl
XyB0aG91Z2ggdG8gd2hhdCBJIHRoaW5rIGlzIGEgYmV0dGVyIHNvbHV0aW9uIHRvIHRoYXQgcHJv
YmxlbS4gSWYgdG9wbGV2ZWwgaW4gdGhlIGltcG9ydGVkIGZpbGUgcmVzb2x2ZWQgdG8gdGhlIHRv
cCBvZiB0aGUgaW1wb3J0IGNvbnRleHQsIHdlIHdvdWxkIGFjdHVhbGx5IGFjaGlldmUgYSBraW5k
IG9mICJuZXN0ZWQgZW5jYXBzdWxhdGlvbiIuIEEgd3JhcHBlZCBsb2FkIGNvbnRleHQgb25seSAi
c2VlcyIgYXMgZmFyIHVwIGFzIGl0cyB3cmFwIG1vZHVsZS4gSXQgaXMgZXNzZW50aWFsbHkgYSAi
dW5pdmVyc2UgdW50byBpdHNlbGYiLiBUaGUgaW1wb3J0ZXIgc2lkZSBjYW4gc2VlIGRvd24gdGhl
IG5hbWVzcGFjZSwgYnV0IHRoZSAiaW1wb3J0ZWUiIGNhbm5vdCBzZWUgdXAgcGFzdCBpdHMgdG9w
bGV2ZWwuDQoNCkkgY2FuJ3QgY291bnQgdGhlIG51bWJlciBvZiB0aW1lcyB0aGF0IHRoaXMgImZh
Y3QiIGhhcyBwcm92ZWQgdG8gYmUgcHJvYmxlbWF0aWMgaW4gdGhlIEphdmFTY3JpcHQgY29kZSB0
aGF0IEkndmUgd3JpdHRlbi4gSGF2aW5nIHRvIGltcG9ydCB0aGUgdW5pdmVyc2UgdG8gYWNjb21w
bGlzaCBhIHRhc2sgbGVhZHMgdG8gYSBsb3Qgb2YgX2ltcG9ydF8gYm9pbGVycGxhdGUgdGhhdCBJ
IGZpbmQgZmFyIG1vcmUgZGlzdHJhY3RpbmcgdGhhbiB3aGF0IHlvdSBjYWxsIG5hbWVzcGFjZSBi
b2lsZXJwbGF0ZS4NCg0KRnJvbSBhIHBhY2thZ2UgYWNjZXNzIHBlcnNwZWN0aXZlLCB0aG91Z2gs
IEkgdGhpbmsgdGhhdCB5b3UncmUgdHJ5aW5nIHRvIHNvbHZlIHRoaXMgdGhlIF93cm9uZyBkaXJl
Y3Rpb25fLiBJdCBzaG91bGQgbm90IG1hdHRlciB3aGV0aGVyIHRoZSBfaW1wb3J0ZWRfIGNvZGUg
Y2FuIHJlYWNoIG91dCBiZXlvbmQgaXRzIHRvcGxldmVsLCBidXQgaXQgX3Nob3VsZF8gbWF0dGVy
IHRoYXQgb3RoZXIgY29kZSBzaG91bGQgbm90IGJlIGFibGUgdG8gcmVhY2ggX2ludG9fIHRoZSBp
bXBvcnRlZCBjb2RlIGV4Y2VwdCB0aHJvdWdoIGRlZmluZWQgQVBJcyAobW9kdWxvLCBvZiBjb3Vy
c2UsIGBfX3NlbmRfX2ApLg0KDQpUaGF0J3Mgd2h5IEkgdGhpbmsgdGhhdCwgd2l0aG91dCBpbnRy
b2R1Y2luZyBhbiBgaW1wb3J0YCBjb25jZXB0IHRoYXQgcmVxdWlyZXMgZXhwb3J0cyBhbmQgbXVs
dGlwbGUgdG9wbGV2ZWxz4oChLCB3ZSBjb3VsZCBpbnRyb2R1Y2Ugc29tZXRoaW5nIHRoYXQgSU1P
IHdvdWxkIGJlIChhKSBtb3JlIGdlbmVyYWwsIChiKSBtb3JlIGRlY2xhcmF0aXZlLCAoYykgaW5j
cmVtZW50YWwsIGFuZCAoZCkgZWFzaWVyIHRvIHVuZGVyc3RhbmQgYW5kIGV4cGxhaW4uIFRoYXQg
d291bGQgYmUgd2hhdCBJJ2xsIGNhbGwgYSAicGFja2FnZSBkZWNsYXJhdGlvbiIuIEl0J3MgdmVy
eSByb3VnaCwgYW5kIEkgZG9uJ3Qga25vdyB0aGF0IEknbGwgZGV2ZWxvcCBpdCBtdWNoIG1vcmUg
dGhhbiB0aGlzIGJlY2F1c2UgaXQgaXNuJ3Qgc29tZXRoaW5nIHRoYXQgSSBfbmVlZF8uDQoNClRo
ZSBiYXNpYyBjb25jZXB0IGlzIHRoYXQgeW91J2QgZGVjbGFyZSBhIHBhcnRpY3VsYXIgbmFtZSAv
IG5hbWVzcGFjZSB0byBiZSBhIGBwYWNrYWdlYCwgYW5kIHRoZW4geW91J2QgbWFyayBzdWItbmFt
ZXNwYWNlcyB0byBiZSBgcGFja2FnZV9jb25zdGFudGBzLiBGcm9tIHdpdGhpbiBhbnkgY2hpbGQg
b2YgdGhlIGBwYWNrYWdlYCBuYW1lc3BhY2UsIGEgYHBhY2thZ2VfY29uc3RhbnRgIHdvdWxkIGp1
c3QgYmUgYSByZWd1bGFyIGNvbnN0YW50LiBGcm9tIF9vdXRzaWRlXyBvZiB0aGUgcGFja2FnZSBu
YW1lc3BhY2UsIGl0IHdvdWxkIGJlIHRoZSBzYW1lIGFzIGEgYHByaXZhdGVfY29uc3RhbnRgLg0K
DQoNCmBgYHJ1YnkNCmNsYXNzIEZvbw0KICBjbGFzcyBCYXINCiAgICBjbGFzcyBIb2dlDQogICAg
ICBkZWYgaG9nZSA9ICJob2dlIg0KICAgIGVuZA0KICAgIHByaXZhdGVfY29uc3RhbnQgOkhvZ2UN
Cg0KICAgIGRlZiBob2dlID0gSG9nZS5uZXcuaG9nZQ0KDQogICAgZGVmIGJhciA9ICJiYXIiDQog
IGVuZA0KICBwYWNrYWdlX2NvbnN0YW50IDpCYXINCg0KICBjbGFzcyBCYXoNCiAgICBkZWYgYmF6
ID0gImJheiINCg0KICAgIGRlZiBiYXIgPSBGb286OkJhci5uZXcuYmFyDQoNCiAgICBkZWYgaG9n
ZSA9IEZvbzo6QmFyLm5ldy5ob2dlDQogIGVuZA0KDQogIGRlZiBiYWQgPSBCYXI6OkhvZ2UubmV3
LmhvZ2UNCg0KICBkZWYgZ29vZA0KICAgIFtCYXoubmV3LmJheiwgQmFyLm5ldy5iYXIsIEJhci5u
ZXcuaG9nZV0NCiAgZW5kDQplbmQNCg0KcGFja2FnZSA6Rm9vDQoNCkZvbzo6QmFyICMgPT4gTmFt
ZUVycm9yOiBwYWNrYWdlIGNvbnN0YW50IEZvbzo6QmFyIHJlZmVyZW5jZWQNCkZvbzo6QmF6ICMg
PT4gRm9vOjpCYXoNCkZvbyAjID0+IEZvbw0KYGBgDQoNCldpdGggdGhlIGNvbmNlcHQgdGhhdCBJ
J20gdGFsa2luZyBhYm91dCwgb25seSBgRm9vOjpCYXJgIGNvdWxkIHJlYWNoIGBGb286OkJhcjo6
SG9nZWAgKGl0J3MgYSBwcml2YXRlIGNvbnN0YW50KSwgYW5kIG9ubHkgYEZvb2AgYW5kIGBGb286
OkJhemAgY291bGQgcmVhY2ggYEZvbzo6QmFyYCwgYW5kIGJvdGggYEZvbzo6QmFyYCBhbmQgYEZv
b2Agd291bGQgYmUgcHVibGljbHkgZXhwb3NlZCBjb25zdGFudHMgLyBjbGFzc2VzLg0KDQrigKEg
SSB1bmRlcnN0YW5kIHRoYXQgcGFydCBvZiB5b3VyIGdvYWwgaXMgdG8gcmVkdWNlICJuYW1lc3Bh
Y2UgYm9pbGVycGxhdGUiLiBJIGRpc2FncmVlIHdpdGggdGhhdCBnb2FsIGFuZCBkb3VidCB0aGF0
IEkgY291bGQgYmUgY29udmluY2VkIHRoYXQgdGhpcyB3b3VsZCBiZSBhIG5ldCBwb3NpdGl2ZSBj
aGFuZ2UuIEkgX3dpc2hfIHRoYXQgSSBjb3VsZCB3cml0ZSBKYXZhU2NyaXB0IGxpa2UgaXQgYWN0
dWFsbHkgaGFkIGFueSBzb3J0IG9mIHN0cnVjdHVyZSBhdCBhbGwgcHJvdmlkZWQgYnkgYW5kL29y
IGVuZm9yY2VkIGJ5IHRoZSBsYW5ndWFnZSBpbnRlbnRpb25hbGx5LCByYXRoZXIgdGhhbiBhY2Np
ZGVudGFsbHkuXA0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpG
ZWF0dXJlICMxOTAyNDogUHJvcG9zYWw6IEltcG9ydCBNb2R1bGVzDQpodHRwczovL2J1Z3MucnVi
eS1sYW5nLm9yZy9pc3N1ZXMvMTkwMjQjY2hhbmdlLTk5NTUzDQoNCiogQXV0aG9yOiBzaGlveWFt
YSAoQ2hyaXMgU2FsemJlcmcpDQoqIFN0YXR1czogT3Blbg0KKiBQcmlvcml0eTogTm9ybWFsDQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpUaGVyZSBpcyBubyBnZW5l
cmFsIHdheSBpbiBSdWJ5IHRvIGxvYWQgY29kZSBvdXRzaWRlIG9mIHRoZSBnbG9iYWxseS1zaGFy
ZWQgbmFtZXNwYWNlLiBUaGlzIG1ha2VzIGl0IGhhcmQgdG8gaXNvbGF0ZSBjb21wb25lbnRzIG9m
IGFuIGFwcGxpY2F0aW9uIGZyb20gZWFjaCBvdGhlciBhbmQgZnJvbSB0aGUgYXBwbGljYXRpb24g
aXRzZWxmLCBsZWFkaW5nIHRvIGNvbXBsaWNhdGVkIHJlbGF0aW9uc2hpcHMgdGhhdCBjYW4gYmVj
b21lIGludHJhY3RhYmxlIGFzIGFwcGxpY2F0aW9ucyBncm93IGluIHNpemUuDQoNClRoZSBncm93
aW5nIHBvcHVsYXJpdHkgb2YgYSBnZW0gbGlrZSBbUGFja3dlcmtdKGh0dHBzOi8vZ2l0aHViLmNv
bS9zaG9waWZ5L3BhY2t3ZXJrKSwgd2hpY2ggcHJvdmlkZXMgYSBuZXcgY29uY2VwdCBvZiAicGFj
a2FnZSIgdG8gZW5mb2NlIGJvdW5kYXJpZXMgc3RhdGljYWxseSBpbiBDSSwgaXMgZXZpZGVuY2Ug
dGhhdCB0aGlzIGlzIGEgcmVhbCBwcm9ibGVtLiBCdXQgaW50cm9kdWNpbmcgYSBuZXcgcGFja2Fn
aW5nIGNvbmNlcHQgYW5kIENJIHN0ZXAgaXMgYXQgYmVzdCBvbmx5IGEgcGFydGlhbCBzb2x1dGlv
biwgd2l0aCBkb3duc2lkZXM6IGl0IGFkZHMgY29tcGxleGl0eSBhbmQgY29nbml0aXZlIG92ZXJo
ZWFkIHRoYXQgd291bGRuJ3QgYmUgbmVjZXNzYXJ5IGlmIFJ1YnkgcHJvdmlkZWQgYmV0dGVyIHBh
Y2thZ2luZyBpdHNlbGYgKGFzIE1hdHogaGFzIHN1Z2dlc3RlZCBbaXQgc2hvdWxkXShodHRwczov
L3lvdXR1LmJlL0RwMTJhM0tHTkZ3P3Q9Mjk1NikpLg0KDQpUaGVyZSBpcyBfb25lXyBsaW1pdGVk
IHdheSBpbiBSdWJ5IGN1cnJlbnRseSB0byBsb2FkIGNvZGUgd2l0aG91dCBwb2xsdXRpbmcgdGhl
IGdsb2JhbCBuYW1lc3BhY2U6IGBsb2FkYCB3aXRoIHRoZSBgd3JhcGAgcGFyYW1ldGVyLCB3aGlj
aCBhcyBvZiBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvNjIxMCBjYW4gbm93IGJl
IGEgbW9kdWxlLiBIb3dldmVyLCB0aGlzIG9wdGlvbiBkb2VzIG5vdCBhcHBseSB0cmFuc2l0aXZl
bHkgdG8gYHJlcXVpcmVgIGNhbGxzIHdpdGhpbiB0aGUgbG9hZGVkIGZpbGUsIHNvIGl0cyB1c2Vm
dWxuZXNzIGlzIGxpbWl0ZWQuDQoNCk15IHByb3Bvc2FsIGhlcmUgaXMgdG8gZW5hYmxlIG1vZHVs
ZSBpbXBvcnRzIGJ5IGRvaW5nIHRoZSBmb2xsb3dpbmc6DQoNCjEuIGFwcGx5IHRoZSBgd3JhcGAg
bW9kdWxlIG5hbWVzcGFjZSB0cmFuc2l0aXZlbHkgdG8gYHJlcXVpcmVgcyBpbnNpZGUgdGhlIGxv
YWRlZCBjb2RlLCBpbmNsdWRpbmcgbmF0aXZlIGV4dGVuc2lvbnMgKG9yIHByb3ZpZGUgYSBuZXcg
ZmxhZyBvciBtZXRob2QgdGhhdCB3b3VsZCBkbyB0aGlzKSwNCjIuIG1ha2UgdGhlIGB3cmFwYCBt
b2R1bGUgdGhlIHRvcGxldmVsIGNvbnRleHQgZm9yIGNvZGUgbG9hZGVkIHVuZGVyIGl0LCBzbyBg
OjpGb29gIHJlc29sdmVzIHRvIGA8dG9wX3dyYXBwZXI+OjpGb29gIGluIGxvYWRlZCBjb2RlIChv
ciwgYWdhaW4sIHByb3ZpZGUgYSBuZXcgZmxhZyBvciBtZXRob2QgdGhhdCB3b3VsZCBkbyB0aGlz
KS4gX0Fsc28gbWFrZSB0aGlzIGFwcGx5IHdoZW4gY29kZSB1bmRlciB0aGUgd3JhcHBlciBtb2R1
bGUgaXMgY2FsbGVkIG91dHNpZGUgb2YgdGhlIGxvYWQgcHJvY2VzcyAod2hlbiBgdG9wX3dyYXBw
ZXJgIGlzIG5vIGxvbmdlciBzZXQpICZtZGFzaDsgdGhpcyBtYXkgYmUgcXVpdGUgaGFyZCB0byBk
b18uDQozLiByZXNvbHZlIGBuYW1lYCBvbiBhbm9ueW1vdXMgbW9kdWxlcyB1bmRlciB0aGUgd3Jh
cHBlZCBtb2R1bGUgdG8gdGhlaXIgbmFtZXMgd2l0aG91dCB0aGUgdG9wIHdyYXBwZXIgbW9kdWxl
LCBzbyBgPHRvcF93cmFwcGVyPjo6Rm9vLm5hbWVgIGV2YWx1YXRlcyB0byBgIkZvbyJgLiBUaGVy
ZSBtYXkgYmUgb3RoZXIgd2F5cyB0byBoYW5kbGUgdGhpcyBwcm9ibGVtLCBidXQgYSBnZW0gbGlr
ZSBSYWlscyB1c2VzIGBuYW1lYCB0byByZXNvbHZlIGZpbGVuYW1lcyBhbmQgZmFpbHMgd2hlbiBh
bm9ueW1vdXMgbW9kdWxlcyByZXR1cm4gc29tZXRoaW5nIGxpa2UgYCM8TW9kdWxlOiAuLi4+OjpB
Y3RpdmVSZWNvcmRgIGluc3RlYWQgb2YganVzdCBgQWN0aXZlUmVjb3JkYC4NCg0KSSBoYXZlIHJv
dWdobHkgaW1wbGVtZW50ZWQgdGhlc2UgdGhyZWUgdGhpbmdzIGluIFt0aGlzIHBhdGNoXShodHRw
czovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L2NvbXBhcmUvbWFzdGVyLi4uc2hpb3lhbWE6cnVieTpp
bXBvcnRfbW9kdWxlcykuIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgaW5jb21wbGV0ZSAoaXQgZG9l
cyBub3QgY292ZXIgdGhlIGxhc3QgaGlnaGxpZ2h0ZWQgcGFydCBvZiAyKSBidXQgcHJvdmlkZXMg
ZW5vdWdoIG9mIGEgYmFzaXMgdG8gaW1wbGVtZW50IGFuIGBpbXBvcnRgIG1ldGhvZCwgd2hpY2gg
SSBoYXZlIGRvbmUgaW4gYSBnZW0gY2FsbGVkIFtJbV0oaHR0cHM6Ly9naXRodWIuY29tL3NoaW95
YW1hL2ltKS4NCg0KSW0gcHJvdmlkZXMgYW4gYGltcG9ydGAgbWV0aG9kIHdoaWNoIGNhbiBiZSB1
c2VkIHRvIGltcG9ydCBnZW0gY29kZSB1bmRlciBhIG5hbWVzcGFjZToNCg0KYGBgcnVieQ0KcmVx
dWlyZSAiaW0iDQpleHRlbmQgSW0NCg0KYWN0aXZlX21vZGVsID0gaW1wb3J0ICJhY3RpdmVfbW9k
ZWwiDQojPT4gPCNJbTo6SW1wb3J0IHJvb3Q6IGFjdGl2ZV9tb2RlbD4NCg0KQWN0aXZlTW9kZWwN
CiM9PiBOYW1lRXJyb3INCg0KYWN0aXZlX21vZGVsOjpBY3RpdmVNb2RlbA0KIz0+IEFjdGl2ZU1v
ZGVsDQoNCmFjdGl2ZV9yZWNvcmQgPSBpbXBvcnQgImFjdGl2ZV9yZWNvcmQiDQojPT4gPCNJbTo6
SW1wb3J0IHJvb3Q6IGFjdGl2ZV9yZWNvcmQ+DQoNCiMgQ29uc3RhbnRzIGRlZmluZWQgaW4gdGhl
IHNhbWUgZmlsZSB1bmRlciBkaWZmZXJlbnQgaW1wb3J0cyBwb2ludCB0byB0aGUgc2FtZSBvYmpl
Y3RzDQphY3RpdmVfcmVjb3JkOjpBY3RpdmVNb2RlbCA9PSBhY3RpdmVfbW9kZWw6OkFjdGl2ZU1v
ZGVsDQojPT4gdHJ1ZQ0KYGBgDQoNCldpdGggdGhlIGNvbnN0YW50cyBhbGwgbG9hZGVkIHVuZGVy
IGFuIGFub255bW91cyBuYW1lc3BhY2UsIGFueSBjb2RlIGltcG9ydGluZyB0aGUgZ2VtIGNhbiBu
YW1lIGNvbnN0YW50cyBob3dldmVyIGl0IGxpa2VzOg0KDQpgYGBydWJ5DQpjbGFzcyBQb3N0IDwg
YWN0aXZlX3JlY29yZDo6QWN0aXZlUmVjb3JkOjpCYXNlDQplbmQNCg0KQVIgPSBhY3RpdmVfcmVj
b3JkOjpBY3RpdmVSZWNvcmQNCg0KUG9zdC5zdXBlcmNsYXNzDQojPT4gQVI6OkJhc2UNCmBgYA0K
DQpOb3RlIHRoYXQgdGhpcyBlbmFibGVzIHRoZSBpbXBvcnRlciB0byBjb21wbGV0ZWx5IGRldGVy
bWluZSB0aGUgbmFtaW5nIGZvciBldmVyeSBjb25zdGFudCBpdCBpbXBvcnRzLiBTbyBnZW1zIGNh
biBvcHQgdG8gaGlkZSB0aGVpciBkZXBlbmRlbmNpZXMgYnkgImFuY2hvcmluZyIgdGhlbSBpbnNp
ZGUgdGhlaXIgb3duIG5hbWVzcGFjZSwgbGlrZSB0aGlzOg0KDQpgYGBydWJ5DQojIGluIGxpYi9t
eV9nZW0ucmINCm1vZHVsZSBNeUdlbQ0KICBkZXAgPSBpbXBvcnQgIm15X2dlbV9kZXBlbmRlbmN5
Ig0KDQogICMgbXlfZ2VtX2RlcGVuZGVuY3kgaXMgImFuY2hvcmVkIiB1bmRlciB0aGUgTXlHZW0g
bmFtZXNwYWNlLCBzbyBub3QgZXhwb3NlZCB0byB1c2Vycw0KICAjIG9mIHRoZSBnZW0gdW5sZXNz
IHRoZXkgYWxzbyByZXF1aXJlIGl0Lg0KICBNeUdlbURlcGVuZGVuY3kgPSBkZXANCg0KICAjLi4u
DQplbmQNCmBgYA0KDQpUaGVyZSBhcmUgYSBjb3VwbGUgaW1wb3J0YW50IGltcGxlbWVudGF0aW9u
IGRlY2lzaW9ucyBpbiB0aGUgZ2VtOg0KDQoxLiBfT25seSBsb2FkIGNvZGUgb25jZS5fIFdoZW4g
dGhlIHNhbWUgZmlsZSBpcyBpbXBvcnRlZCBhZ2FpbiAoZWl0aGVyIGRpcmVjdGx5IG9yIHRyYW5z
aXRpdmVseSksICJjb3B5IiBjb25zdGFudHMgZnJvbSBwcmV2aW91c2x5IGltcG9ydGVkIG5hbWVz
cGFjZSB0byB0aGUgbmV3IG5hbWVzcGFjZSB1c2luZyBhIHJlZ2lzdHJ5IHdoaWNoIG1hcHMgd2hp
Y2ggbmFtZXNwYWNlIChpbXBvcnQpIHdhcyB1c2VkIHRvIGxvYWQgd2hpY2ggZmlsZSAoYXMgc2hv
d24gYWJvdmUgd2l0aCBhY3RpdmVyZWNvcmQvYWN0aXZlbW9kZWwpLiBUaGlzIGlzIG5lY2Vzc2Fy
eSB0byBlbnN1cmUgdGhhdCBkaWZmZXJlbnQgaW1wb3J0cyBjYW4gInNlZSIgc2hhcmVkIGZpbGVz
LiBBIHNpbWlsYXIgcmVnaXN0cnkgaXMgdXNlZCB0byB0cmFjayBhdXRvbG9hZHMgc28gdGhhdCB0
aGV5IHdvcmsgY29ycmVjdGx5IHdoZW4gdXNlZCBmcm9tIGltcG9ydGVkIGNvZGUuDQoyLiBUb3Bs
ZXZlbCBjb3JlIHR5cGVzIChgTmlsQ2xhc3NgLCBgVHJ1ZUNsYXNzYCwgYEZhbHNlQ2xhc3NgLCBg
U3RyaW5nYCwgZXRjKSBhcmUgImFsaWFzZWQiIHRvIGNvbnN0YW50cyB1bmRlciBlYWNoIGltcG9y
dCBtb2R1bGUgdG8gbWFrZSB0aGVtIGF2YWlsYWJsZS4gVGh1cyB0aGVyZSBjYW4gYmUgc2lkZS1l
ZmZlY3RzIG9mIGltcG9ydGluZyBjb2RlLCBidXQgdGhpcyBhbGxvd3MgYSBnZW0gbGlrZSBSYWls
cyB0byBtb25rZXlwYXRjaCBjb3JlIGNsYXNzZXMgd2hpY2ggaXQgbmVlZHMgdG8gZG8gZm9yIGl0
IHRvIHdvcmsuDQozLiBgT2JqZWN0LmNvbnN0X21pc3NpbmdgIGlzIHBhdGNoZWQgdG8gY2hlY2sg
dGhlIGNhbGxlciBsb2NhdGlvbiBhbmQgcmVzb2x2ZSB0byB0aGUgY29uc3RhbnQgZGVmaW5lZCB1
bmRlciBhbiBpbXBvcnQsIGlmIHRoZXJlIGlzIGFuIGltcG9ydCBkZWZpbmVkIGZvciB0aGF0IGZp
bGUuDQoNClRvIGJlIGNsZWFyOiAqKkkgdGhpbmsgMSkgc2hvdWxkIGJlIGltcGxlbWVudGVkIGlu
IFJ1YnksIGJ1dCBub3QgMikgYW5kIDMpLioqIFRoZSBsYXN0IG9uZSAoYE9iamVjdC5jb25zdF9t
aXNzaW5nYCkgaXMgYSBoYWNrIHRvIHN1cHBvcnQgdGhlIGNhc2Ugd2hlcmUgYSB0b3BsZXZlbCBj
b25zdGFudCBpcyByZWZlcmVuY2VkIGZyb20gYSBtZXRob2QgY2FsbGVkIGluIGltcG9ydGVkIGNv
ZGUgKGF0IHdoaWNoIHBvaW50IHRoZSBgdG9wX3dyYXBwZXJgIGlzIG5vdCBhY3RpdmUuKQ0KDQpJ
IGtub3cgdGhpcyBpcyBhIGJpZyBwcm9wb3NhbCwgYW5kIHRoZXJlIGFyZSBzdHJvbmcgb3Bpbmlv
bnMgaGVsZC4gSSB3b3VsZCByZWFsbHkgYXBwcmVjaWF0ZSBjb25zdHJ1Y3RpdmUgZmVlZGJhY2sg
b24gdGhpcyBnZW5lcmFsIGlkZWEuDQoNClNlZSBhbHNvIHNpbWlsYXIgZGlzY3Vzc2lvbiBpbjog
aHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzEwMzIwDQoNCg0KDQotLSANCmh0dHBz
Oi8vYnVncy5ydWJ5LWxhbmcub3JnLw0KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29yZS1y
ZXF1ZXN0QHJ1YnktbGFuZy5vcmc/c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0cy5y
dWJ5LWxhbmcub3JnL2NnaS1iaW4vbWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K

In This Thread