From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id A9XaJgilGGROLxUAWB0awg (envelope-from ) for ; Mon, 20 Mar 2023 14:25:12 -0400 Received: by simark.ca (Postfix, from userid 112) id 8D69D1E223; Mon, 20 Mar 2023 14:25:12 -0400 (EDT) Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=lists.lttng.org header.i=@lists.lttng.org header.a=rsa-sha256 header.s=default header.b=KxxGluPr; dkim-atps=neutral X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-9.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,NICE_REPLY_A, RCVD_IN_DNSWL_HI,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.lttng.org (lists.lttng.org [167.114.26.123]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id E1C891E110 for ; Mon, 20 Mar 2023 14:25:11 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=lists.lttng.org; s=default; t=1679336711; bh=mtPJxOkHvAYDbxm4I67gx/5CKSBKNEuGrPQpPrI3o/o=; h=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=KxxGluPrd0tIFGj6z4lQJ+UVJ3tPa8HbteyyOC+gdokMAEXQ3lU7Xb6qY4vwD5Wt1 Ck3YqlHqoJZJi5AmJ/62S2BjKMIURvEMEGIAs9UzwuZxGfjMPR7HqA8XtnzGx6An+h lw01po7OdMPX9Yv+PZfMiqKTsrSO+hjrDI3PS9fJUgDVxNo5ugwtabd+fnO2TzmLtJ jBagX+1IeET4Xfo6lVFUIBXNiZe4SAKXMCk+lNeJpoyax4GkOToFTWMWdMAaD6SSi9 O4rWw3oO381xUfT4+of4dosjqimtX7YVMQp9W2HgNjibCA1q8XIM1URmbb9sgOcZFl XoxEINKcNbJMg== Received: from lists-lttng01.efficios.com (localhost [IPv6:::1]) by lists.lttng.org (Postfix) with ESMTP id 4PgNSl2PWnz2FVY; Mon, 20 Mar 2023 14:25:11 -0400 (EDT) Received: from smtpout.efficios.com (smtpout.efficios.com [167.114.26.122]) by lists.lttng.org (Postfix) with ESMTPS id 4PgNSj6dVtz2Gbf for ; Mon, 20 Mar 2023 14:25:09 -0400 (EDT) Received: from [172.16.0.188] (192-222-143-198.qc.cable.ebox.net [192.222.143.198]) by smtpout.efficios.com (Postfix) with ESMTPSA id 4PgNSj30QFzqxQ; Mon, 20 Mar 2023 14:25:09 -0400 (EDT) Message-ID: <4db80685-6ba7-f926-5e75-525ba73d0c5e@efficios.com> Date: Mon, 20 Mar 2023 14:25:20 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Content-Language: en-US To: =?UTF-8?B?T25kxZllaiBTdXLDvQ==?= , lttng-dev@lists.lttng.org, paulmck References: <20230317213755.455957-1-ondrej@sury.org> <20230317213755.455957-5-ondrej@sury.org> In-Reply-To: <20230317213755.455957-5-ondrej@sury.org> Subject: Re: [lttng-dev] [PATCH 4/7] Replace the internal pointer manipulation with __atomic builtins X-BeenThere: lttng-dev@lists.lttng.org X-Mailman-Version: 2.1.39 Precedence: list List-Id: LTTng development list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Mathieu Desnoyers via lttng-dev Reply-To: Mathieu Desnoyers Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: lttng-dev-bounces@lists.lttng.org Sender: "lttng-dev" T24gMjAyMy0wMy0xNyAxNzozNywgT25kxZllaiBTdXLDvSB2aWEgbHR0bmctZGV2IHdyb3RlOgo+ IEluc3RlYWQgb2YgY3VzdG9tIGNvZGUsIHVzZSB0aGUgX19hdG9taWMgYnVpbHRpbnMgdG8gaW1w bGVtZW50IHRoZQo+IHJjdV9kZXJlZmVyZW5jZSgpLCByY3VfY21weGNoZ19wb2ludGVyKCksIHJj dV94Y2hnX3BvaW50ZXIoKSBhbmQKPiByY3VfYXNzaWduX3BvaW50ZXIoKS4KClRoaXMgYWxzbyBj aGFuZ2VzIHRoZSBjbW1fbWIoKSBmYW1pbHkgb2YgZnVuY3Rpb25zLCBidXQgbm90IGV2ZXJ5d2hl cmUuIApUaGlzIHNob3VsZCBiZSBkb2N1bWVudGVkLgoKSSdtIGFsc28gdW5zdXJlIHdoeSBhcmNo aXRlY3R1cmUgY29kZSBoYXMgI2lmbmRlZiBjbW1fbWIgd2hlbiB3ZSB3b3VsZCAKZXhwZWN0IHRo ZSBnZW5lcmljIGFyY2ggaW1wbGVtZW50YXRpb24gdG8gYmUgY29uZGl0aW9uYWwgKHRoZSBvdGhl ciB3YXkgCmFyb3VuZCkuCgo+IAo+IFNpZ25lZC1vZmYtYnk6IE9uZMWZZWogU3Vyw70gPG9uZHJl akBzdXJ5Lm9yZz4KPiAtLS0KPiAgIGluY2x1ZGUvdXJjdS9hcmNoLmggICAgICAgICAgIHwgMjAg KysrKysrKysrCj4gICBpbmNsdWRlL3VyY3UvYXJjaC9hbHBoYS5oICAgICB8ICA2ICsrKwo+ICAg aW5jbHVkZS91cmN1L2FyY2gvYXJtLmggICAgICAgfCAxMiArKysrKysKPiAgIGluY2x1ZGUvdXJj dS9hcmNoL21pcHMuaCAgICAgIHwgIDIgKwo+ICAgaW5jbHVkZS91cmN1L2FyY2gvbmlvczIuaCAg ICAgfCAgMiArCj4gICBpbmNsdWRlL3VyY3UvYXJjaC9wcGMuaCAgICAgICB8ICA2ICsrKwo+ICAg aW5jbHVkZS91cmN1L2FyY2gvczM5MC5oICAgICAgfCAgMiArCj4gICBpbmNsdWRlL3VyY3UvYXJj aC9zcGFyYzY0LmggICB8ICA2ICsrKwo+ICAgaW5jbHVkZS91cmN1L2FyY2gveDg2LmggICAgICAg fCAyMCArKysrKysrKysKPiAgIGluY2x1ZGUvdXJjdS9zdGF0aWMvcG9pbnRlci5oIHwgNzcgKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIDEwIGZpbGVzIGNoYW5nZWQsIDkw IGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L3VyY3UvYXJjaC5oIGIvaW5jbHVkZS91cmN1L2FyY2guaAo+IGluZGV4IGQzOTE0ZGEuLmFlYzZm YTEgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS91cmN1L2FyY2guaAo+ICsrKyBiL2luY2x1ZGUvdXJj dS9hcmNoLmgKPiBAQCAtMjEsNiArMjEsMjYgQEAKPiAgICNpZm5kZWYgX1VSQ1VfQVJDSF9ICj4g ICAjZGVmaW5lIF9VUkNVX0FSQ0hfSAo+ICAgCj4gKyNpZiAhZGVmaW5lZChfX2hhc19mZWF0dXJl KQo+ICsjZGVmaW5lIF9faGFzX2ZlYXR1cmUoeCkgMAo+ICsjZW5kaWYgLyogaWYgIWRlZmluZWQo X19oYXNfZmVhdHVyZSkgKi8KPiArCj4gKy8qIEdDQyBkZWZpbmVzIF9fU0FOSVRJWkVfQUREUkVT U19fLCBzbyByZXVzZSB0aGUgbWFjcm8gZm9yIGNsYW5nICovCj4gKyNpZiBfX2hhc19mZWF0dXJl KGFkZHJlc3Nfc2FuaXRpemVyKQo+ICsjZGVmaW5lIF9fU0FOSVRJWkVfQUREUkVTU19fIDEKPiAr I2VuZGlmIC8qIGlmIF9faGFzX2ZlYXR1cmUoYWRkcmVzc19zYW5pdGl6ZXIpICovCj4gKwo+ICsj aWZkZWYgX19TQU5JVElaRV9USFJFQURfXwo+ICsvKiBGSVhNRTogU29tZWJvZHkgd2hvIHVuZGVy c3RhbmRzIHRoZSBiYXJyaWVycyBzaG91bGQgbG9vayBpbnRvIHRoaXMgKi8KPiArI2RlZmluZSBj bW1fbWIoKSBfX2F0b21pY190aHJlYWRfZmVuY2UoX19BVE9NSUNfQUNRX1JFTCkKClRoaXMgcmVh bGx5IG5lZWRzIHRvIGJlIF9fQVRPTUlDX1NFUV9DU1QuCgo+ICsjZGVmaW5lIGNtbV9ybWIoKSBf X2F0b21pY190aHJlYWRfZmVuY2UoX19BVE9NSUNfQUNRVUlSRSkKPiArI2RlZmluZSBjbW1fd21i KCkgX19hdG9taWNfdGhyZWFkX2ZlbmNlKF9fQVRPTUlDX1JFTEVBU0UpCgpJIGFtIHJlYWxseSB1 bnN1cmUgdGhhdCBybWIvd21iIHNlbWFudGljcyBtYXAgdG8gYWNxL3JlbC4gUGF1bCwgY2FuIHlv dSAKY29uZmlybSA/Cgo+ICsjZGVmaW5lIGNtbV9zbXBfbWIoKSBfX2F0b21pY190aHJlYWRfZmVu Y2UoX19BVE9NSUNfQUNRX1JFTCkKClNFUV9DU1QuCgo+ICsjZGVmaW5lIGNtbV9zbXBfcm1iKCkg X19hdG9taWNfdGhyZWFkX2ZlbmNlKF9fQVRPTUlDX0FDUVVJUkUpCj4gKyNkZWZpbmUgY21tX3Nt cF93bWIoKSBfX2F0b21pY190aHJlYWRfZmVuY2UoX19BVE9NSUNfUkVMRUFTRSkKClVuc3VyZSAo c2VlIGFib3ZlKS4KCj4gKyNkZWZpbmUgY21tX3JlYWRfYmFycmllcl9kZXBlbmRzKCkgX19hdG9t aWNfdGhyZWFkX2ZlbmNlKF9fQVRPTUlDX0FDUV9SRUwpCgpUaGlzIHdvdWxkIG1hcCB0byBfX0FU T01JQ19DT05TVU1FLCBidXQgQUZBSUsgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gCm9mIHRo aXMgc2VtYW50aWMgaXMgZG9uZSB3aXRoIF9fQVRPTUlDX0FDUVVJUkUgd2hpY2ggaXMgc3Ryb25n ZXIgdGhhbiAKd2hhdCBpcyByZWFsbHkgbmVlZGVkIGhlcmUuIFNvIHdlIGNhbiBleHBlY3QgYSBz bG93ZG93biBvbiBzb21lIAphcmNoaXRlY3R1cmVzIGlmIHdlIGdvIHRoYXQgd2F5LgoKU2hvdWxk IHdlIGZhdm9yIGNvZGUgc2ltcGxpY2l0eSBhbmQgbG9uZy10ZXJtIG1haW50YWluYWJpbGl0eSBh dCB0aGUgCmV4cGVuc2Ugb2YgcGVyZm9ybWFuY2UgaW4gdGhlIHNob3J0LXRlcm0gPyBPciBzaG91 bGQgd2Uga2VlcCAKYXJjaC1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgdW50aWwgdGhlIHRvb2xj aGFpbnMgZW5kIHVwIGltcGxlbWVudGluZyBhIApwcm9wZXIgY29uc3VtZSBzZW1hbnRpYyA/Cgo+ ICsjZW5kaWYKPiArCj4gICAvKgo+ICAgICogQXJjaGl0ZWN0dXJlIGRldGVjdGlvbiB1c2luZyBj b21waWxlciBkZWZpbmVzLgo+ICAgICoKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91cmN1L2FyY2gv YWxwaGEuaCBiL2luY2x1ZGUvdXJjdS9hcmNoL2FscGhhLmgKPiBpbmRleCBkYzMzZTI4Li44NDUy NmVmIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdXJjdS9hcmNoL2FscGhhLmgKPiArKysgYi9pbmNs dWRlL3VyY3UvYXJjaC9hbHBoYS5oCj4gQEAgLTI5LDkgKzI5LDE1IEBACj4gICBleHRlcm4gIkMi IHsKPiAgICNlbmRpZgo+ICAgCj4gKyNpZm5kZWYgY21tX21iCj4gICAjZGVmaW5lIGNtbV9tYigp CQkJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtYiI6OjoibWVtb3J5IikKPiArI2VuZGlmCj4gKyNp Zm5kZWYgY21tX3dtYgo+ICAgI2RlZmluZSBjbW1fd21iKCkJCQlfX2FzbV9fIF9fdm9sYXRpbGVf XyAoIndtYiI6OjoibWVtb3J5IikKPiArI2VuZGlmCj4gKyNpZm5kZWYgY21tX3JlYWRfYmFycmll cl9kZXBlbmRzCj4gICAjZGVmaW5lIGNtbV9yZWFkX2JhcnJpZXJfZGVwZW5kcygpCV9fYXNtX18g X192b2xhdGlsZV9fICgibWIiOjo6Im1lbW9yeSIpCj4gKyNlbmRpZgo+ICAgClsuLi5dCj4gZGlm ZiAtLWdpdCBhL2luY2x1ZGUvdXJjdS9zdGF0aWMvcG9pbnRlci5oIGIvaW5jbHVkZS91cmN1L3N0 YXRpYy9wb2ludGVyLmgKPiBpbmRleCA5ZTQ2YTU3Li4zZjExNmYzIDEwMDY0NAo+IC0tLSBhL2lu Y2x1ZGUvdXJjdS9zdGF0aWMvcG9pbnRlci5oCj4gKysrIGIvaW5jbHVkZS91cmN1L3N0YXRpYy9w b2ludGVyLmgKPiBAQCAtMzgsNiArMzgsOCBAQAo+ICAgZXh0ZXJuICJDIiB7Cj4gICAjZW5kaWYK PiAgIAo+ICsjZGVmaW5lIF9yY3VfZ2V0X3BvaW50ZXIoYWRkcikgX19hdG9taWNfbG9hZF9uKGFk ZHIsIF9fQVRPTUlDX0NPTlNVTUUpCj4gKwo+ICAgLyoqCj4gICAgKiBfcmN1X2RlcmVmZXJlbmNl IC0gcmVhZHMgKGNvcHkpIGEgUkNVLXByb3RlY3RlZCBwb2ludGVyIHRvIGEgbG9jYWwgdmFyaWFi bGUKPiAgICAqIGludG8gYSBSQ1UgcmVhZC1zaWRlIGNyaXRpY2FsIHNlY3Rpb24uIFRoZSBwb2lu dGVyIGNhbiBsYXRlciBiZSBzYWZlbHkKPiBAQCAtNDksMTQgKzUxLDYgQEAgZXh0ZXJuICJDIiB7 Cj4gICAgKiBJbnNlcnRzIG1lbW9yeSBiYXJyaWVycyBvbiBhcmNoaXRlY3R1cmVzIHRoYXQgcmVx dWlyZSB0aGVtIChjdXJyZW50bHkgb25seQo+ICAgICogQWxwaGEpIGFuZCBkb2N1bWVudHMgd2hp Y2ggcG9pbnRlcnMgYXJlIHByb3RlY3RlZCBieSBSQ1UuCj4gICAgKgo+IC0gKiBXaXRoIEMgc3Rh bmRhcmRzIHByaW9yIHRvIEMxMS9DKysxMSwgdGhlIGNvbXBpbGVyIG1lbW9yeSBiYXJyaWVyIGlu Cj4gLSAqIENNTV9MT0FEX1NIQVJFRCgpIGVuc3VyZXMgdGhhdCB2YWx1ZS1zcGVjdWxhdGl2ZSBv cHRpbWl6YXRpb25zIChlLmcuCj4gLSAqIFZTUzogVmFsdWUgU3BlY3VsYXRpb24gU2NoZWR1bGlu ZykgZG9lcyBub3QgcGVyZm9ybSB0aGUgZGF0YSByZWFkCj4gLSAqIGJlZm9yZSB0aGUgcG9pbnRl ciByZWFkIGJ5IHNwZWN1bGF0aW5nIHRoZSB2YWx1ZSBvZiB0aGUgcG9pbnRlci4KPiAtICogQ29y cmVjdCBvcmRlcmluZyBpcyBlbnN1cmVkIGJlY2F1c2UgdGhlIHBvaW50ZXIgaXMgcmVhZCBhcyBh IHZvbGF0aWxlCj4gLSAqIGFjY2Vzcy4gVGhpcyBhY3RzIGFzIGEgZ2xvYmFsIHNpZGUtZWZmZWN0 IG9wZXJhdGlvbiwgd2hpY2ggZm9yYmlkcwo+IC0gKiByZW9yZGVyaW5nIG9mIGRlcGVuZGVudCBt ZW1vcnkgb3BlcmF0aW9ucy4KCldlIHNob3VsZCBkb2N1bWVudCB0aGF0IHdlIGVuZCB1cCByZWx5 aW5nIG9uIENPTlNVTUUgZm9yIHJjdV9kZXJlZmVyZW5jZSAKaW4gdGhlIHBhdGNoIGNvbW1pdCBt ZXNzYWdlLgoKPiAtICoKPiAgICAqIFdpdGggQyBzdGFuZGFyZHMgQzExL0MrKzExLCBjb25jZXJu cyBhYm91dCBkZXBlbmRlbmN5LWJyZWFraW5nCj4gICAgKiBvcHRpbWl6YXRpb25zIGFyZSB0YWtl biBjYXJlIG9mIGJ5IHRoZSAibWVtb3J5X29yZGVyX2NvbnN1bWUiIGF0b21pYwo+ICAgICogbG9h ZC4KPiBAQCAtNjUsMTAgKzU5LDYgQEAgZXh0ZXJuICJDIiB7Cj4gICAgKiBleHBsaWNpdCBiZWNh dXNlIHRoZSBwb2ludGVyIHVzZWQgYXMgaW5wdXQgYXJndW1lbnQgaXMgYSBwb2ludGVyLAo+ICAg ICogbm90IGFuIF9BdG9taWMgdHlwZSBhcyByZXF1aXJlZCBieSBDMTEvQysrMTEuCj4gICAgKgo+ IC0gKiBCeSBkZWZpbmluZyBVUkNVX0RFUkVGRVJFTkNFX1VTRV9WT0xBVElMRSwgdGhlIHVzZXIg cmVxdWlyZXMgdXNlIG9mCj4gLSAqIHZvbGF0aWxlIGFjY2VzcyB0byBpbXBsZW1lbnQgcmN1X2Rl cmVmZXJlbmNlIHJhdGhlciB0aGFuCj4gLSAqIG1lbW9yeV9vcmRlcl9jb25zdW1lIGxvYWQgZnJv bSB0aGUgQzExL0MrKzExIHN0YW5kYXJkcy4KPiAtICoKPiAgICAqIFRoaXMgbWF5IGltcHJvdmUg cGVyZm9ybWFuY2Ugb24gd2Vha2x5LW9yZGVyZWQgYXJjaGl0ZWN0dXJlcyB3aGVyZQo+ICAgICog dGhlIGNvbXBpbGVyIGltcGxlbWVudHMgbWVtb3J5X29yZGVyX2NvbnN1bWUgYXMgYQo+ICAgICog bWVtb3J5X29yZGVyX2FjcXVpcmUsIHdoaWNoIGlzIHN0cmljdGVyIHRoYW4gcmVxdWlyZWQgYnkg dGhlCj4gQEAgLTgzLDM1ICs3Myw3IEBAIGV4dGVybiAiQyIgewo+ICAgICogbWVldHMgdGhlIDEw LWxpbmUgY3JpdGVyaW9uIGluIExHUEwsIGFsbG93aW5nIHRoaXMgZnVuY3Rpb24gdG8gYmUKPiAg ICAqIGV4cGFuZGVkIGRpcmVjdGx5IGluIG5vbi1MR1BMIGNvZGUuCj4gICAgKi8KPiAtCj4gLSNp ZiAhZGVmaW5lZCAoVVJDVV9ERVJFRkVSRU5DRV9VU0VfVk9MQVRJTEUpICYmCQlcCj4gLQkoKGRl ZmluZWQgKF9fY3BsdXNwbHVzKSAmJiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMKSB8fAlcCj4gLQko ZGVmaW5lZCAoX19TVERDX1ZFUlNJT05fXykgJiYgX19TVERDX1ZFUlNJT05fXyA+PSAyMDExMTJM KSkKPiAtIyBkZWZpbmUgX19VUkNVX0RFUkVGRVJFTkNFX1VTRV9BVE9NSUNfQ09OU1VNRQo+IC0j ZW5kaWYKPiAtCj4gLS8qCj4gLSAqIElmIHAgaXMgY29uc3QgKHRoZSBwb2ludGVyIGl0c2VsZiwg bm90IHdoYXQgaXQgcG9pbnRzIHRvKSwgdXNpbmcKPiAtICogX190eXBlb2ZfXyhwKSB3b3VsZCBk ZWNsYXJlIGEgY29uc3QgdmFyaWFibGUsIGxlYWRpbmcgdG8KPiAtICogLVdpbmNvbXBhdGlibGUt cG9pbnRlci10eXBlcyBlcnJvcnMuICBVc2luZyB0aGUgc3RhdGVtZW50IGV4cHJlc3Npb24KPiAt ICogbWFrZXMgaXQgYW4gcnZhbHVlIGFuZCBnZXRzIHJpZCBvZiB0aGUgY29uc3QtbmVzcy4KPiAt ICovCj4gLSNpZmRlZiBfX1VSQ1VfREVSRUZFUkVOQ0VfVVNFX0FUT01JQ19DT05TVU1FCj4gLSMg ZGVmaW5lIF9yY3VfZGVyZWZlcmVuY2UocCkgX19leHRlbnNpb25fXyAoewkJCQkJCVwKPiAtCQkJ CV9fdHlwZW9mX18oX19leHRlbnNpb25fXyAoewkJCQlcCj4gLQkJCQkJX190eXBlb2ZfXyhwKSBf X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBfX19fX19fX19wMCA9IHsgMCB9OyBcCj4gLQkJCQkJX19f X19fX19fcDA7CQkJCQlcCj4gLQkJCQl9KSkgX19fX19fX19fcDE7CQkJCQlcCj4gLQkJCQlfX2F0 b21pY19sb2FkKCYocCksICZfX19fX19fX19wMSwgX19BVE9NSUNfQ09OU1VNRSk7CVwKPiAtCQkJ CShfX19fX19fX19wMSk7CQkJCQkJXAo+IC0JCQl9KQo+IC0jZWxzZQo+IC0jIGRlZmluZSBfcmN1 X2RlcmVmZXJlbmNlKHApIF9fZXh0ZW5zaW9uX18gKHsJCQkJCQlcCj4gLQkJCQlfX3R5cGVvZl9f KHApIF9fX19fX19fX3AxID0gQ01NX0xPQURfU0hBUkVEKHApOwkJXAo+IC0JCQkJY21tX3NtcF9y ZWFkX2JhcnJpZXJfZGVwZW5kcygpOwkJCQlcCj4gLQkJCQkoX19fX19fX19fcDEpOwkJCQkJCVwK PiAtCQkJfSkKPiAtI2VuZGlmCj4gKyNkZWZpbmUgX3JjdV9kZXJlZmVyZW5jZShwKSBfcmN1X2dl dF9wb2ludGVyKCYocCkpCj4gICAKPiAgIC8qKgo+ICAgICogX3JjdV9jbXB4Y2hnX3BvaW50ZXIg LSBzYW1lIGFzIHJjdV9hc3NpZ25fcG9pbnRlciwgYnV0IHRlc3RzIGlmIHRoZSBwb2ludGVyCj4g QEAgLTEyNiwxMiArODgsMTIgQEAgZXh0ZXJuICJDIiB7Cj4gICAgKiBtZWV0cyB0aGUgMTAtbGlu ZSBjcml0ZXJpb24gaW4gTEdQTCwgYWxsb3dpbmcgdGhpcyBmdW5jdGlvbiB0byBiZQo+ICAgICog ZXhwYW5kZWQgZGlyZWN0bHkgaW4gbm9uLUxHUEwgY29kZS4KPiAgICAqLwo+IC0jZGVmaW5lIF9y Y3VfY21weGNoZ19wb2ludGVyKHAsIG9sZCwgX25ldykJCQkJXAo+IC0JX19leHRlbnNpb25fXwkJ CQkJCQlcCj4gLQkoewkJCQkJCQkJXAo+IC0JCV9fdHlwZW9mX18oKnApIF9fX19fX19fX3BvbGQg PSAob2xkKTsJCQlcCj4gLQkJX190eXBlb2ZfXygqcCkgX19fX19fX19fcG5ldyA9IChfbmV3KTsJ CQlcCj4gLQkJdWF0b21pY19jbXB4Y2hnKHAsIF9fX19fX19fX3BvbGQsIF9fX19fX19fX3BuZXcp OwlcCj4gKyNkZWZpbmUgX3JjdV9jbXB4Y2hnX3BvaW50ZXIocCwgb2xkLCBfbmV3KQkJCQkJCVwK PiArCSh7CQkJCQkJCQkJCVwKPiArCQlfX3R5cGVvZl9fKCoocCkpIF9fb2xkID0gb2xkOwkJCQkJ CVwKPiArCQlfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlX24ocCwgJl9fb2xkLCBfbmV3LCAwLAkJ CQlcCj4gKwkJCQkJICAgIF9fQVRPTUlDX0FDUV9SRUwsIF9fQVRPTUlDX0NPTlNVTUUpOwlcCgpf X0FUT01JQ19TRVFfQ1NUIG9uIGJvdGggc3VjY2VzcyBhbmQgZmFpbHVyZS4KCj4gKwkJX19vbGQ7 CQkJCQkJCQkJXAo+ICAgCX0pCj4gICAKPiAgIC8qKgo+IEBAIC0xNDUsMjIgKzEwNywxMSBAQCBl eHRlcm4gIkMiIHsKPiAgICAqIG1lZXRzIHRoZSAxMC1saW5lIGNyaXRlcmlvbiBpbiBMR1BMLCBh bGxvd2luZyB0aGlzIGZ1bmN0aW9uIHRvIGJlCj4gICAgKiBleHBhbmRlZCBkaXJlY3RseSBpbiBu b24tTEdQTCBjb2RlLgo+ICAgICovCj4gLSNkZWZpbmUgX3JjdV94Y2hnX3BvaW50ZXIocCwgdikJ CQkJXAo+IC0JX19leHRlbnNpb25fXwkJCQkJXAo+IC0JKHsJCQkJCQlcCj4gLQkJX190eXBlb2Zf XygqcCkgX19fX19fX19fcHYgPSAodik7CVwKPiAtCQl1YXRvbWljX3hjaGcocCwgX19fX19fX19f cHYpOwkJXAo+IC0JfSkKPiAtCj4gKyNkZWZpbmUgX3JjdV94Y2hnX3BvaW50ZXIocCwgdikgXAo+ ICsJX19hdG9taWNfZXhjaGFuZ2VfbihwLCB2LCBfX0FUT01JQ19BQ1FfUkVMKQoKX19BVE9NSUNf U0VRX0NTVC4KCj4gICAKPiAtI2RlZmluZSBfcmN1X3NldF9wb2ludGVyKHAsIHYpCQkJCVwKPiAt CWRvIHsJCQkJCQlcCj4gLQkJX190eXBlb2ZfXygqcCkgX19fX19fX19fcHYgPSAodik7CVwKPiAt CQlpZiAoIV9fYnVpbHRpbl9jb25zdGFudF9wKHYpIHx8IAlcCj4gLQkJICAgICgodikgIT0gTlVM TCkpCQkJXAo+IC0JCQljbW1fd21iKCk7CQkJCVwKPiAtCQl1YXRvbWljX3NldChwLCBfX19fX19f X19wdik7CQlcCj4gLQl9IHdoaWxlICgwKQo+ICsjZGVmaW5lIF9yY3Vfc2V0X3BvaW50ZXIocCwg dikgXAo+ICsJX19hdG9taWNfc3RvcmVfbihwLCB2LCBfX0FUT01JQ19SRUxFQVNFKQoKT0suCgpU aGFua3MsCgpNYXRoaWV1Cgo+ICAgCj4gICAvKioKPiAgICAqIF9yY3VfYXNzaWduX3BvaW50ZXIg LSBhc3NpZ24gKHB1YmxpY2l6ZSkgYSBwb2ludGVyIHRvIGEgbmV3IGRhdGEgc3RydWN0dXJlCj4g QEAgLTE3OCw3ICsxMjksNyBAQCBleHRlcm4gIkMiIHsKPiAgICAqIG1lZXRzIHRoZSAxMC1saW5l IGNyaXRlcmlvbiBpbiBMR1BMLCBhbGxvd2luZyB0aGlzIGZ1bmN0aW9uIHRvIGJlCj4gICAgKiBl eHBhbmRlZCBkaXJlY3RseSBpbiBub24tTEdQTCBjb2RlLgo+ICAgICovCj4gLSNkZWZpbmUgX3Jj dV9hc3NpZ25fcG9pbnRlcihwLCB2KQlfcmN1X3NldF9wb2ludGVyKCYocCksIHYpCj4gKyNkZWZp bmUgX3JjdV9hc3NpZ25fcG9pbnRlcihwLCB2KSByY3Vfc2V0X3BvaW50ZXIoJihwKSwgdikKPiAg IAo+ICAgI2lmZGVmIF9fY3BsdXNwbHVzCj4gICB9CgotLSAKTWF0aGlldSBEZXNub3llcnMKRWZm aWNpT1MgSW5jLgpodHRwczovL3d3dy5lZmZpY2lvcy5jb20KCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmx0dG5nLWRldiBtYWlsaW5nIGxpc3QKbHR0bmct ZGV2QGxpc3RzLmx0dG5nLm9yZwpodHRwczovL2xpc3RzLmx0dG5nLm9yZy9jZ2ktYmluL21haWxt YW4vbGlzdGluZm8vbHR0bmctZGV2Cg==