[#105544] [Ruby master Feature#18239] Variable Width Allocation: Strings — "peterzhu2118 (Peter Zhu)" <noreply@...>

SXNzdWUgIzE4MjM5IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHBldGVyemh1MjExOCAoUGV0ZXIgWmh1

18 messages 2021/10/04

[#105566] [Ruby master Bug#18242] Parser makes multiple assignment sad in confusing way — "danh337 (Dan Higgins)" <noreply@...>

SXNzdWUgIzE4MjQyIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGRhbmgzMzcgKERhbiBIaWdnaW5zKS4K

9 messages 2021/10/06

[#105573] [Ruby master Bug#18243] Ractor.make_shareable does not freeze the receiver of a Proc but allows accessing ivars of it — "Eregon (Benoit Daloze)" <noreply@...>

SXNzdWUgIzE4MjQzIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IEVyZWdvbiAoQmVub2l0IERhbG96ZSku

11 messages 2021/10/06

[#105586] [Ruby master Bug#18244] Unexpected errors output order — "inversion (Yura Babak)" <noreply@...>

SXNzdWUgIzE4MjQ0IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGludmVyc2lvbiAoWXVyYSBCYWJhayku

8 messages 2021/10/07

[#105618] [Ruby master Bug#18249] The ABI version of dev builds of CRuby does not correspond to the ABI — "Eregon (Benoit Daloze)" <noreply@...>

SXNzdWUgIzE4MjQ5IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IEVyZWdvbiAoQmVub2l0IERhbG96ZSku

23 messages 2021/10/11

[#105626] [Ruby master Bug#18250] Anonymous variables seem to break `Ractor.make_shareable` — "tenderlovemaking (Aaron Patterson)" <noreply@...>

SXNzdWUgIzE4MjUwIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHRlbmRlcmxvdmVtYWtpbmcgKEFhcm9u

14 messages 2021/10/12

[#105660] [Ruby master Feature#18254] Add an `offset` parameter to String#unpack and String#unpack1 — "byroot (Jean Boussier)" <noreply@...>

SXNzdWUgIzE4MjU0IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGJ5cm9vdCAoSmVhbiBCb3Vzc2llciku

13 messages 2021/10/18

[#105665] [Ruby master Bug#18255] ioctl zeroes the last buffer byte — "vihai (Daniele Orlandi)" <noreply@...>

SXNzdWUgIzE4MjU1IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHZpaGFpIChEYW5pZWxlIE9ybGFuZGkp

8 messages 2021/10/18

[#105672] [Ruby master Feature#18256] Change the canonical name of Thread::Mutex, Thread::Queue, Thread::SizedQueue and Thread::ConditionVariable to just Mutex, Queue, SizedQueue and ConditionVariable — "Eregon (Benoit Daloze)" <noreply@...>

SXNzdWUgIzE4MjU2IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IEVyZWdvbiAoQmVub2l0IERhbG96ZSku

6 messages 2021/10/19

[#105692] [Ruby master Bug#18257] SystemTap/DTrace coredump on ppc64le/s390x — "vo.x (Vit Ondruch)" <noreply@...>

SXNzdWUgIzE4MjU3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHZvLnggKFZpdCBPbmRydWNoKS4KCi0t

22 messages 2021/10/20

[#105750] [Ruby master Feature#18262] Enumerator::Lazy#partition — "zverok (Victor Shepelev)" <noreply@...>

SXNzdWUgIzE4MjYyIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHp2ZXJvayAoVmljdG9yIFNoZXBlbGV2

8 messages 2021/10/22

[#105781] [Ruby master Misc#18266] DevelopersMeeting20211118Japan — "mame (Yusuke Endoh)" <noreply@...>

SXNzdWUgIzE4MjY2IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IG1hbWUgKFl1c3VrZSBFbmRvaCkuCgot

13 messages 2021/10/25

[#105805] [Ruby master Bug#18270] Refinement#{extend_object, append_features, prepend_features} should be removed — "shugo (Shugo Maeda)" <noreply@...>

SXNzdWUgIzE4MjcwIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHNodWdvIChTaHVnbyBNYWVkYSkuCgot

8 messages 2021/10/26

[#105826] [Ruby master Feature#18273] Class.subclasses — "byroot (Jean Boussier)" <noreply@...>

SXNzdWUgIzE4MjczIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGJ5cm9vdCAoSmVhbiBCb3Vzc2llciku

35 messages 2021/10/27

[#105833] [Ruby master Feature#18275] Add an option to define_method to not capture the surrounding environment — "vinistock (Vinicius Stock)" <noreply@...>

SXNzdWUgIzE4Mjc1IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHZpbmlzdG9jayAoVmluaWNpdXMgU3Rv

11 messages 2021/10/27

[#105853] [Ruby master Feature#18276] `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)` — "ko1 (Koichi Sasada)" <noreply@...>

SXNzdWUgIzE4Mjc2IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGtvMSAoS29pY2hpIFNhc2FkYSkuCgot

15 messages 2021/10/28

[ruby-core:105862] [Ruby master Feature#18020] Introduce `IO::Buffer` for fiber scheduler.

From: "ioquatix (Samuel Williams)" <noreply@...>
Date: 2021-10-29 01:26:16 UTC
List: ruby-core #105862
SXNzdWUgIzE4MDIwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgaW9xdWF0aXggKFNhbXVlbCBXaWxsaWFt
cykuCgoKQG1hdHogeW91IHNhaWQgeW91IGFyZSBwb3NpdGl2ZSBvbiB0aGlzIGZlYXR1cmUuIENh
biB5b3UgY29uZmlybSB0aGF0IHdlIGNhbiBtZXJnZSB0aGlzIFBSPyBFdmVuIHdlIGNhbiBtYXJr
IGl0IGFzIGV4cGVyaW1lbnRhbCwgYnV0IGl0IHdvdWxkIGJlIGdyZWF0IHRvIHN0YXJ0IHRlc3Rp
bmcgd2l0aCAzLjEgcHJldmlldyByZWxlYXNlLgoKQGFrciBJIGJlbGlldmUgd2UgYWRkcmVzc2Vk
IHlvdXIgY29uY2VybnMgcHJldmVudGluZyBtb2RpZnlpbmcgYnVmZmVyIHdoaWxlIGl0J3MgaW4g
dXNlIGJ5IE9TIGJ5IHByZXZlbnRpbmcgUnVieSBmcm9tIGNhbGxpbmcgIiN1bmxvY2siLiBEbyB5
b3UgaGF2ZSBhbnkgb3RoZXIgY29uY2VybnM/IEV2ZW4gaWYgeW91IGNhbid0IGVudW1lcmF0ZSBp
dCBhbGwgbm93LCB3ZSBjYW4gdHJ5IHdpdGggUnVieSAzLjEgcHJldmlldyByZWxlYXNlIGFuZCBh
ZGRyZXNzIGFueSBmdXJ0aGVyIGNvbmNlcm5zIG92ZXIgdGhlIG5leHQgZmV3IG1vbnRocy4KClRo
YW5rcyBldmVyeW9uZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
RmVhdHVyZSAjMTgwMjA6IEludHJvZHVjZSBgSU86OkJ1ZmZlcmAgZm9yIGZpYmVyIHNjaGVkdWxl
ci4KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE4MDIwI2NoYW5nZS05NDQwMAoK
KiBBdXRob3I6IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlhbXMpCiogU3RhdHVzOiBPcGVuCiogUHJp
b3JpdHk6IE5vcm1hbAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkFm
dGVyIGNvbnRpbnVpbmcgdG8gYnVpbGQgb3V0IHRoZSBmaWJlciBzY2hlZHVsZXIgaW50ZXJmYWNl
IGFuZCB0aGUgc3BlY2lmaWMgaG9va3MgcmVxdWlyZWQgZm9yIGBpb191cmluZ2AsIEkgZm91bmQg
c29tZSB0cm91YmxlIHdpdGhpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgYElPYC4KCkkgZm91bmQg
dGhhdCBpbiBzb21lIGNhc2VzLCB3ZSBuZWVkIHRvIHJlYWQgaW50byB0aGUgaW50ZXJuYWwgSU8g
YnVmZmVycyBkaXJlY3RseS4gSSB0cmllZCBjcmVhdGluZyBhICJmYWtlIHN0cmluZyIgaW4gb3Jk
ZXIgdG8gdHJhbnNpdCBiYWNrIGludG8gdGhlIFJ1YnkgZmliZXIgc2NoZWR1bGVyIGludGVyZmFj
ZSBhbmQgdGhpcyBkaWQgd29yayB0byBhIGNlcnRhaW4gZXh0ZW50LCBidXQgSSB3YXMgdG9sZCB3
ZSBjYW5ub3QgZXhwb3NlIGZha2Ugc3RyaW5nIHRvIFJ1Ynkgc2NoZWR1bGVyIGludGVyZmFjZS4K
ClNvLCBhZnRlciB0aGlzLCBhbmQgbWFueSBvdGhlciBmcnVzdHJhdGlvbnMgd2l0aCB1c2luZyBg
U3RyaW5nYCBhcyBhIElPIGJ1ZmZlciwgSSBkZWNpZGVkIHRvIGltcGxlbWVudCBhIGxvdyBsZXZl
bCBgSU86OkJ1ZmZlcmAgYmFzZWQgb24gbXkgbmVlZHMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgSU8s
IGFuZCBhcyBwYXJ0IG9mIHRoZSBmaWJlciBzY2hlZHVsZXIgaW50ZXJmYWNlLgoKSGVyZSBpcyBy
b3VnaGx5IHRoZSBpbnRlcmZhY2UgaW1wbGVtZW50ZWQgYnkgdGhlIHNjaGVkdWxlciB3LnIudC4g
dGhlIGJ1ZmZlcjoKCmBgYHJ1YnkKY2xhc3MgU2NoZWR1bGVyCiAgIyBAcGFyYW1ldGVyIGJ1ZmZl
ciBbSU86OkJ1ZmZlcl0gQnVmZmVyIGZvciByZWFkaW5nIGludG8uCiAgZGVmIGlvX3JlYWQoaW8s
IGJ1ZmZlciwgbGVuZ3RoKQogICAgIyBpbXBsZW1lbnRhdGlvbiBwcm92aWRlZCBieSBgcmVhZGAg
c3lzdGVtIGNhbGwsIElPX1VSSU5HX1JFQURWLCBldGMuCiAgZW5kCgogICMgQHBhcmFtZXRlciBi
dWZmZXIgW0lPOjpCdWZmZXJdIEJ1ZmZlciBmb3Igd3JpdGluZyBmcm9tLgogIGRlZiBpb193cml0
ZShpbywgYnVmZmVyLCBsZW5ndGgpCiAgICAjIGltcGxlbWVudGF0aW9uIHByb3ZpZGVkIGJ5IGB3
cml0ZWAgc3lzdGVtIGNhbGwsIElPX1VSSU5HX1dSSVRFViwgZXRjLgogIGVuZAoKICAjIFBvdGVu
dGlhbCBuZXcgaG9va3MgKFNvY2tldCNyZWN2bXNnLCBzZW5kbXNnLCBldGMpOgogIGRlZiBpb19y
ZWN2bXNnKGlvLCBidWZmZXIsIGxlbmd0aCkKICBlbmQKZW5kCmBgYAoKSW4gcmV2aWV3aW5nIG90
aGVyIGxhbmd1YWdlIGRlc2lnbnMsIEkgZm91bmQgdGhhdCB0aGlzIGRlc2lnbiBpcyB2ZXJ5IHNp
bWlsYXIgdG8gQ3J5c3RhbCdzIElPIGJ1ZmZlcmluZyBzdHJhdGVneS4KClRoZSBwcm9wb3NlZCBp
bXBsZW1lbnRhdGlvbiBwcm92aWRlcyBlbm91Z2ggb2YgYW4gaW50ZXJmYWNlIHRvIGltcGxlbWVu
dCBib3RoIG5hdGl2ZSBzY2hlZHVsZXJzIGFzIHdlbGwgYXMgcHVyZSBSdWJ5IHNjaGVkdWxlcnMu
IEl0IGFsc28gcHJvdmlkZXMgc29tZSBleHRyYSBmdW5jdGlvbmFsaXR5IGZvciBpbnRlcnByZXRp
bmcgdGhlIGRhdGEgaW4gdGhlIGJ1ZmZlci4gVGhpcyBpcyBtb3N0bHkgZm9yIHRlc3RpbmcgYW5k
IGV4cGVyaW1lbnRhdGlvbiwgYWx0aG91Z2ggaXQgbWlnaHQgbWFrZSBzZW5zZSB0byBleHBvc2Ug
dGhpcyBpbnRlcmZhY2UgZm9yIGJpbmFyeSBwcm90b2NvbHMgbGlrZSBIVFRQLzIsIFFVSUMsIFdl
YlNvY2tldHMsIGV0Yy4KCiMjIFByb3Bvc2VkIFNvbHV0aW9uCgpXZSBpbnRyb2R1Y2UgbmV3IGNs
YXNzIGBJTzo6QnVmZmVyYC4KCmBgYHJ1YnkKY2xhc3MgSU86OkJ1ZmZlcgogICMgQHJldHVybnMg
W0lPOjpCdWZmZXJdIEEgYnVmZmVyIHdpdGggdGhlIGNvbnRlbnRzIG9mIHRoZSBzdHJpbmcgZGF0
YS4KICBkZWYgc2VsZi5mb3Ioc3RyaW5nKQogIGVuZAoKICBQQUdFX1NJWkUgPSAjIC4uLiBvcGVy
YXRpbmcgc3lzdGVtIHBhZ2Ugc2l6ZQoKICAjIEByZXR1cm5zIFtJTzo6QnVmZmVyXSBBIGJ1ZmZl
ciB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZSBtYXBwZWQgdG8gbWVtb3J5LgogIGRlZiBz
ZWxmLm1hcChmaWxlKQogIGVuZAoKICAjIEZsYWdzIGZvciBidWZmZXIgc3RhdGUuCiAgRVhURVJO
QUwgPSAjIFRoZSBidWZmZXIgaXMgZnJvbSBleHRlcm5hbCBtZW1vcnkuCiAgSU5URVJOQUwgPSAj
IFRoZSBidWZmZXIgaXMgZnJvbSBpbnRlcm5hbCBtZW1vcnkgKG1hbGxvYykuCiAgTUFQUEVEID0g
IyBUaGUgYnVmZmVyIGlzIGZyb20gbWFwcGVkIG1lbW9yeSAobW1hcCwgVmlydHVhbEFsbG9jLCBl
dGMpCiAgTE9DS0VEID0gIyBUaGUgYnVmZmVyIGlzIGxvY2tlZCBmb3IgdXNhZ2UgKGNhbm5vdCBi
ZSByZXNpemVkKQogIFBSSVZBVEUgPSAjIFRoZSBidWZmZXIgaXMgbWFwcGVkIGFzIGNvcHktb24t
d3JpdGUuCiAgSU1NVVRBQkxFID0gIyBUaGUgYnVmZmVyIGNhbm5vdCBiZSBtb2RpZmllZC4KCiAg
IyBAcmV0dXJucyBbSU86OkJ1ZmZlcl0gQSBidWZmZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHNpemUs
IGFsbG9jYXRlZCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIGZsYWdzLgogIGRlZiBpbml0aWFsaXpl
KHNpemUsIGZsYWdzKQogIGVuZAoKICAjIEByZXR1cm5zIFtJbnRlZ3JhbF0gVGhlIHNpemUgb2Yg
dGhlIGJ1ZmZlcgogIGF0dHIgOnNpemUKCiAgIyBAcmV0dXJucyBbU3RyaW5nXSBBIGJyaWVmIHN1
bW1hcnkgYW5kIGhleCBkdW1wIG9mIHRoZSBidWZmZXIuCiAgZGVmIGluc3BlY3QKICBlbmQKCiAg
IyBAcmV0dXJucyBbU3RyaW5nXSBBIGJyaWVmIHN1bW1hcnkgb2YgdGhlIGJ1ZmZlci4KICBkZWYg
dG9fcwogIGVuZAoKICAjIEZsYWcgcHJlZGljYXRlczoKICBkZWYgZXh0ZXJuYWw/CiAgZW5kCgog
IGRlZiBpbnRlcm5hbD8KICBlbmQKCiAgZGVmIG1hcHBlZD8KICBlbmQKCiAgZGVmIGxvY2tlZD8K
ICBlbmQKCiAgZGVmIGltbXV0YWJsZT8KICBlbmQKCiAgIyBGbGFncyBmb3IgZW5kaWFuL2J5dGUg
b3JkZXI6CiAgTElUVExFX0VORElBTiA9ICMgLi4uCiAgQklHX0VORElBTiA9ICMgLi4uCiAgSE9T
VF9FTkRJQU4gPSAjIC4uLgogIE5FVFdPUktfRU5ESUFOPSAjIC4uLgoKICAjIExvY2sgdGhlIGJ1
ZmZlciAocHJldmVudCByZXNpemUsIHVubWFwLCBjaGFuZ2VzIHRvIGJhc2UgYW5kIHNpemUpLgog
IGRlZiBsb2NrCiAgICByYWlzZSAiQWxyZWFkeSBsb2NrZWQhIiBpZiBmbGFncyAmIExPQ0tFRAog
ICAgCiAgICBmbGFncyB8PSBMT0NLRUQKICBlbmQKCiAgIyBVbmxvY2sgdGhlIGJ1ZmZlci4KICBk
ZWYgdW5sb2NrCiAgICByYWlzZSAiTm90IGxvY2tlZCEiIHVubGVzcyBmbGFncyAmIExPQ0tFRAog
ICAgCiAgICBmbGFncyB8PSB+TE9DS0VECiAgZW5kCgogIC8vIE1hbmlwdWxhdGlvbjoKICAjIEBy
ZXR1cm5zIFtJTzo6QnVmZmVyXSBBIHNsaWNlIG9mIHRoZSBidWZmZXIncyBkYXRhLiBEb2VzIG5v
dCBjb3B5LgogIGRlZiBzbGljZShvZmZzZXQsIGxlbmd0aCkKICBlbmQKCiAgIyBAcmV0dXJucyBb
U3RyaW5nXSBBIGJpbmFyeSBzdHJpbmcgc3RhcnRpbmcgYXQgb2Zmc2V0LCBsZW5ndGggYnl0ZXMu
CiAgZGVmIHRvX3N0cihvZmZzZXQsIGxlbmd0aCkKICBlbmQKCiAgIyBDb3B5IHRoZSBzcGVjaWZp
ZWQgc3RyaW5nIGludG8gdGhlIGJ1ZmZlciBhdCB0aGUgZ2l2ZW4gb2Zmc2V0LgogIGRlZiBjb3B5
KHN0cmluZywgb2Zmc2V0KQogIGVuZAoKICAjIENvbXBhcmUgdHdvIGJ1ZmZlcnMuCiAgZGVmIDw9
PihvdGhlcikKICBlbmQKCiAgaW5jbHVkZSBDb21wYXJhYmxlCgogICMgUmVzaXplIHRoZSBidWZm
ZXIsIHByZXNlcnZpbmcgdGhlIGdpdmVuIGxlbmd0aCAoaWYgbm9uLXplcm8pLgogIGRlZiByZXNp
emUoc2l6ZSwgcHJlc2VydmUgPSAwKQogIGVuZAoKICAjIENsZWFyIHRoZSBidWZmZXIgdG8gdGhl
IHNwZWNpZmllZCB2YWx1ZS4KICBkZWYgY2xlYXIodmFsdWUgPSAwLCBvZmZzZXQgPSAwLCBsZW5n
dGggPSAoQHNpemUgLSBvZmZzZXQpKQogIGVuZAoKICAjIERhdGEgVHlwZXM6CiAgIyBMb3dlciBj
YXNlOiBsaXR0bGUgZW5kaWFuLgogICMgVXBwZXIgY2FzZTogYmlnIGVuZGlhbiAobmV0d29yayBl
bmRpYW4pLgogICMKICAjIDpVOCAgICAgICAgfCB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VyLgogICMg
OlM4ICAgICAgICB8IHNpZ25lZCA4LWJpdCBpbnRlZ2VyLgogICMKICAjIDp1MTYsIDpVMTYgfCB1
bnNpZ25lZCAxNi1iaXQgaW50ZWdlci4KICAjIDpzMTYsIDpTMTYgfCBzaWduZWQgMTYtYml0IGlu
dGVnZXIuCiAgIwogICMgOnUzMiwgOlUzMiB8IHVuc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLgogICMg
OnMzMiwgOlMzMiB8IHNpZ25lZCAzMi1iaXQgaW50ZWdlci4KICAjCiAgIyA6dTY0LCA6VTY0IHwg
dW5zaWduZWQgNjQtYml0IGludGVnZXIuCiAgIyA6czY0LCA6UzY0IHwgc2lnbmVkIDY0LWJpdCBp
bnRlZ2VyLgogICMKICAjIDpmMzIsIDpGMzIgfCAzMi1iaXQgZmxvYXRpbmcgcG9pbnQgbnVtYmVy
LgogICMgOmY2NCwgOkY2NCB8IDY0LWJpdCBmbG9hdGluZyBwb2ludCBudW1iZXIuCgogICMgR2V0
IHRoZSBnaXZlbiBkYXRhIHR5cGUgYXQgdGhlIHNwZWNpZmllZCBvZmZzZXQuCiAgZGVmIGdldCh0
eXBlLCBvZmZzZXQpCiAgZW5kCgogICMgU2V0IHRoZSBnaXZlbiB2YWx1ZSBhcyB0aGUgc3BlY2lm
aWVkIGRhdGEgdHlwZSBhdCB0aGUgc3BlY2lmaWVkIG9mZnNldC4KICBkZWYgc2V0KHR5cGUsIG9m
ZnNldCwgdmFsdWUpCiAgZW5kCmVuZApgYGAKClRoZSBDIGludGVyZmFjZSBwcm92aWRlcyBhIGZl
dyBjb252ZW5pZW50IG1ldGhvZHMgZm9yIGFjY2Vzc2luZyB0aGUgdW5kZXJseWluZyBkYXRhIGJ1
ZmZlcjoKCmBgYGMKdm9pZCByYl9pb19idWZmZXJfZ2V0X211dGFibGUoVkFMVUUgc2VsZiwgdm9p
ZCAqKmJhc2UsIHNpemVfdCAqc2l6ZSk7CnZvaWQgcmJfaW9fYnVmZmVyX2dldF9pbW11dGFibGUo
VkFMVUUgc2VsZiwgY29uc3Qgdm9pZCAqKmJhc2UsIHNpemVfdCAqc2l6ZSk7CmBgYAoKSW4gdGhl
IGZpYmVyIHNjaGVkdWxlciwgaXQgaXMgdXNlZCBsaWtlIHRoaXM6CgpgYGBjClZBTFVFCnJiX2Zp
YmVyX3NjaGVkdWxlcl9pb19yZWFkX21lbW9yeShWQUxVRSBzY2hlZHVsZXIsIFZBTFVFIGlvLCB2
b2lkICpiYXNlLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGxlbmd0aCkKewogICAgVkFMVUUgYnVmZmVy
ID0gcmJfaW9fYnVmZmVyX25ldyhiYXNlLCBzaXplLCBSQl9JT19CVUZGRVJfTE9DS0VEKTsKCiAg
ICBWQUxVRSByZXN1bHQgPSByYl9maWJlcl9zY2hlZHVsZXJfaW9fcmVhZChzY2hlZHVsZXIsIGlv
LCBidWZmZXIsIGxlbmd0aCk7CgogICAgcmJfaW9fYnVmZmVyX2ZyZWUoYnVmZmVyKTsKCiAgICBy
ZXR1cm4gcmVzdWx0Owp9CmBgYAoKVGhpcyBmdW5jdGlvbiBpcyBpbnZva2VkIGZyb20gYGlvLmNg
IGF0IHZhcmlvdXMgcGxhY2VzIHRvIGZpbGwgdGhlIGJ1ZmZlci4gV2Ugc3BlY2lmaWNhbGx5IHRo
ZSBgKGJhc2UsIHNpemUpYCB0dXBsZSwgYWxvbmcgd2l0aCBgbGVuZ3RoYCB3aGljaCBpcyB0aGUg
Km1pbmltdW0qIGxlbmd0aCByZXF1aXJlZCBhbmQgYXNzaXN0cyB3aXRoIGVmZmljaWVudCBub24t
YmxvY2tpbmcgaW1wbGVtZW50YXRpb24uCgpUaGUgYHVyaW5nLmNgIGltcGxlbWVudGF0aW9uIGlu
IHRoZSBldmVudCBnZW0gdXNlcyB0aGlzIGludGVyZmFjZSBsaWtlIHNvOgoKYGBgYwpWQUxVRSBF
dmVudF9CYWNrZW5kX1VSaW5nX2lvX3JlYWQoVkFMVUUgc2VsZiwgVkFMVUUgZmliZXIsIFZBTFVF
IGlvLCBWQUxVRSBidWZmZXIsIFZBTFVFIF9sZW5ndGgpIHsKCXN0cnVjdCBFdmVudF9CYWNrZW5k
X1VSaW5nICpkYXRhID0gTlVMTDsKCVR5cGVkRGF0YV9HZXRfU3RydWN0KHNlbGYsIHN0cnVjdCBF
dmVudF9CYWNrZW5kX1VSaW5nLCAmRXZlbnRfQmFja2VuZF9VUmluZ19UeXBlLCBkYXRhKTsKCQoJ
aW50IGRlc2NyaXB0b3IgPSBSQl9OVU0ySU5UKHJiX2Z1bmNhbGwoaW8sIGlkX2ZpbGVubywgMCkp
OwoJCgl2b2lkICpiYXNlOwoJc2l6ZV90IHNpemU7CglyYl9pb19idWZmZXJfZ2V0X211dGFibGUo
YnVmZmVyLCAmYmFzZSwgJnNpemUpOwoJCglzaXplX3Qgb2Zmc2V0ID0gMDsKCXNpemVfdCBsZW5n
dGggPSBOVU0yU0laRVQoX2xlbmd0aCk7CgkKCXdoaWxlIChsZW5ndGggPiAwKSB7CgkJc2l6ZV90
IG1heGltdW1fc2l6ZSA9IHNpemUgLSBvZmZzZXQ7CgkJaW50IHJlc3VsdCA9IGlvX3JlYWQoZGF0
YSwgZmliZXIsIGRlc2NyaXB0b3IsIChjaGFyKiliYXNlK29mZnNldCwgbWF4aW11bV9zaXplKTsK
CQkKCQlpZiAocmVzdWx0ID09IDApIHsKCQkJYnJlYWs7CgkJfSBlbHNlIGlmIChyZXN1bHQgPiAw
KSB7CgkJCW9mZnNldCArPSByZXN1bHQ7CgkJCWlmICgoc2l6ZV90KXJlc3VsdCA+IGxlbmd0aCkg
YnJlYWs7CgkJCWxlbmd0aCAtPSByZXN1bHQ7CgkJfSBlbHNlIGlmICgtcmVzdWx0ID09IEVBR0FJ
TiB8fCAtcmVzdWx0ID09IEVXT1VMREJMT0NLKSB7CgkJCUV2ZW50X0JhY2tlbmRfVVJpbmdfaW9f
d2FpdChzZWxmLCBmaWJlciwgaW8sIFJCX0lOVDJOVU0oUkVBREFCTEUpKTsKCQl9IGVsc2UgewoJ
CQlyYl9zeXNlcnJfZmFpbCgtcmVzdWx0LCBzdHJlcnJvcigtcmVzdWx0KSk7CgkJfQoJfQoJCgly
ZXR1cm4gU0laRVQyTlVNKG9mZnNldCk7Cn0KYGBgCgojIyBCdWZmZXIgQWxsb2NhdGlvbgoKVGhl
IExpbnV4IGtlcm5lbCBwcm92aWRlcyBzb21lIGFkdmFuY2VkIG1lY2hhbmlzbXMgZm9yIHJlZ2lz
dGVyaW5nIGJ1ZmZlcnMgZm9yIGFzeW5jaHJvbm91cyBJL08gdG8gcmVkdWNlIHBlci1vcGVyYXRp
b24gb3ZlcmhlYWQuCgo+IFRoZSBpb191cmluZ19yZWdpc3RlcigpIHN5c3RlbSBjYWxsIHJlZ2lz
dGVycyB1c2VyIGJ1ZmZlcnMgb3IgZmlsZXMgZm9yIHVzZSBpbiBhbiBpb191cmluZyg3KSBpbnN0
YW5jZSByZWZlcmVuY2VkIGJ5IGZkLiBSZWdpc3RlcmluZyBmaWxlcyBvciB1c2VyIGJ1ZmZlcnMg
YWxsb3dzIHRoZSBrZXJuZWwgdG8gdGFrZSBsb25nIHRlcm0gcmVmZXJlbmNlcyB0byBpbnRlcm5h
bCBkYXRhIHN0cnVjdHVyZXMgb3IgY3JlYXRlIGxvbmcgdGVybSBtYXBwaW5ncyBvZiBhcHBsaWNh
dGlvbiBtZW1vcnksIGdyZWF0bHkgcmVkdWNpbmcgcGVyLUkvTyBvdmVyaGVhZC4KCldpdGggYXBw
cm9wcmlhdGUgc3VwcG9ydCwgd2UgY2FuIHVzZSBgSU9SSU5HX09QX1BST1ZJREVfQlVGRkVSU2Ag
dG8gZWZmaWNpZW50bHkgbWFuYWdlIGJ1ZmZlcnMgaW4gYXBwbGljYXRpb25zIHdoaWNoIGFyZSBk
ZWFsaW5nIHdpdGggbG90cyBvZiBzb2NrZXRzLiBTZWUgPGh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn
L2lvLXVyaW5nLzIwMjAwMjI4MjAzMDUzLjI1MDIzLTEtYXhib2VAa2VybmVsLmRrL1QvPiBmb3Ig
bW9yZSBkZXRhaWxzIGFib3V0IGhvdyBpdCB3b3Jrcy4gSSdtIHN0aWxsIGV4cGxvcmluZyB0aGUg
cGVyZm9ybWFuY2UgaW1wbGljYXRpb25zIG9mIHRoaXMsIGJ1dCB0aGUgcHJvcG9zZWQgaW1wbGVt
ZW50YXRpb24gcHJvdmlkZXMgc3VmZmljaWVudCBtZXRhLWRhdGEgZm9yIHVzIHRvIGV4cGxvcmUg
dGhpcyBpbiByZWFsIHdvcmxkIHNjaGVkdWxlcnMuCgpQUjogaHR0cHM6Ly9naXRodWIuY29tL3J1
YnkvcnVieS9wdWxsLzQ2MjEKCgoKLS0gCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLwoKVW5z
dWJzY3JpYmU6IDxtYWlsdG86cnVieS1jb3JlLXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0
PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFu
L29wdGlvbnMvcnVieS1jb3JlPgo=

In This Thread