From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0CE2E311589; Mon, 15 Sep 2025 15:09:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757948977; cv=none; b=JZIV4QQbJuwIH7D6AqF7FjyIL/pWOU6KsOlVe67KHZkcTPI1Lcve5aiyqDXiL0n5ZgF5GxEupZJB8BkIfYXt7ekvpOIn6/TqaquqA1VSbCIgcEzX/DtvrRNoOvoUMU3RXG/f5wWaCO6kVM+//G+PhSks2F8zYlhM0dhaSu7HMdA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757948977; c=relaxed/simple; bh=23l5n3Gi2GgLW96NWqJ0wlBjhuJHhaDkgtjHtv10bNs=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=fEbSqFf/H4Vs2z6EksVOSwpr+0bHPE5fbo7csUkpGDhKEbUt6S+Y/4f3/SktD7ec2Zd3VR9Wmf9ni+7BEEZeZXTRKEjHH23tSTg77acP+3Z8UiurxlIxhFfREVI4dh7zdEYeetkiREFCmm1F2nLM1J/QF7QQhK4Sr92dmehMh18= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=M0BoQ5p3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="M0BoQ5p3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DE82DC4CEF1; Mon, 15 Sep 2025 15:09:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1757948976; bh=23l5n3Gi2GgLW96NWqJ0wlBjhuJHhaDkgtjHtv10bNs=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=M0BoQ5p34ra40ERuxBP5hxrbXAIRFC5gKYoL3WDPnq0KXtgDYEmaGG1QR7GybTKyl CQFHW+53shZMluwE8Qvrx6CHKyNRSOYSdppjNZ+N07WsGJxzMldstf1m5Lc9KZcwPk B3+bRMesADVmS9czC4CSZr+KYIt66GClsoVdI+Yt3bkzAOh5RmTABfabcheI8+AlOg fmhUZig1W8YvG/NqAX92R658AcRFBmekztmsVbB9qcpRgLfu3mUZG4ua93muHnb6Jd 4/CCfCaqNNKchUxJsJ9vqLG8fLYEy6yZyosQrseUM/+3Srbuv/0K+ZnKiXhJ2f0avT dzyF9H5WI/3bA== Message-ID: <916bb20962e4c0e480539d6ec80a25d67c30a4ae.camel@kernel.org> Subject: Re: [PATCH 2/5] Documentation: trace: histogram-design: Trim trailing vertices in diagram explanation text From: Tom Zanussi To: Bagas Sanjaya , Linux Kernel Mailing List , Linux Documentation , Linux Kernel Tracing Cc: Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Jonathan Corbet Date: Mon, 15 Sep 2025 10:09:35 -0500 In-Reply-To: <20250911042527.22573-3-bagasdotme@gmail.com> References: <20250911042527.22573-1-bagasdotme@gmail.com> <20250911042527.22573-3-bagasdotme@gmail.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.52.3-0ubuntu1 Precedence: bulk X-Mailing-List: linux-trace-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 T24gVGh1LCAyMDI1LTA5LTExIGF0IDExOjI1ICswNzAwLCBCYWdhcyBTYW5qYXlhIHdyb3RlOgo+ IERpYWdyYW0gZXhwbGFuYXRpb24gdGV4dCBpcyBzdXBwb3NlZCB0byBiZSBpbnRlcmxlYXZlZCBj b21tZW50YXJ5Cj4gYmV0d2VlbiBkaWFncmFtIHBhcnRzIHRoYXQgYXJlIHNwcmVhZCBvdXQsIGJ1 dCBpdCBvdXRwdXRzIHVnbHkgaW4KPiBodG1sZG9jcyBkdWUgdG8gdHJhaWxpbmcgdmVydGljZXMg YXMgaWYgYm90aCB0aGUgZXhwbGFuYXRpb24gYW5kIHRoZQo+IGRpYWdyYW0gYXJlIGluIHRoZSBz YW1lIGxpdGVyYWwgY29kZSBibG9jay4KPiAKPiBUcmltIHRyYWlsaW5nIHZlcnRpY2VzLgoKWWVz LCB0aGlzIGlzIG11Y2ggYmV0dGVyLCBhbmQgdGhlIGxpbmVzIGFyZSBzdGlsbCBmb2xsb3dhYmxl IGluIHRoZQp0ZXh0IHZlcnNpb24uIFRoYW5rcywKClJldmlld2VkLWJ5OiBUb20gWmFudXNzaSA8 emFudXNzaUBrZXJuZWwub3JnPgoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBCYWdhcyBTYW5qYXlhIDxi YWdhc2RvdG1lQGdtYWlsLmNvbT4KPiAtLS0KPiDCoERvY3VtZW50YXRpb24vdHJhY2UvaGlzdG9n cmFtLWRlc2lnbi5yc3QgfCAxMzggKysrKysrKysrKystLS0tLS0tLS0tCj4gLS0KPiDCoDEgZmls ZSBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspLCA2OSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0t Z2l0IGEvRG9jdW1lbnRhdGlvbi90cmFjZS9oaXN0b2dyYW0tZGVzaWduLnJzdAo+IGIvRG9jdW1l bnRhdGlvbi90cmFjZS9oaXN0b2dyYW0tZGVzaWduLnJzdAo+IGluZGV4IDU3NjVlYjNlOWVmYTc4 Li4yMzFhMTJiZDdkNDYxYyAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVudGF0aW9uL3RyYWNlL2hpc3Rv Z3JhbS1kZXNpZ24ucnN0Cj4gKysrIGIvRG9jdW1lbnRhdGlvbi90cmFjZS9oaXN0b2dyYW0tZGVz aWduLnJzdAo+IEBAIC0xNDIsMzAgKzE0MiwzMCBAQCBlbGVtZW50cyBmb3IgYSBjb3VwbGUgaHlw b3RoZXRpY2FsIGtleXMgYW5kCj4gdmFsdWVzLjo6Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLS0KPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCB8 Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBuX2tleXMgPSBuX2ZpZWxkcyAtCj4g bl92YWxzwqDCoCB8wqAgfAo+IMKgCj4gLVRoZSBoaXN0X2RhdGEgbl92YWxzIGFuZCBuX2ZpZWxk cyBkZWxpbmVhdGUgdGhlIGV4dGVudCBvZiB0aGUKPiBmaWVsZHNbXcKgwqAgfMKgIHwKPiAtYXJy YXkgYW5kIHNlcGFyYXRlIGtleXMgZnJvbSB2YWx1ZXMgZm9yIHRoZSByZXN0IG9mIHRoZQo+IGNv ZGUuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgfAo+ICtUaGUgaGlzdF9kYXRhIG5fdmFscyBh bmQgbl9maWVsZHMgZGVsaW5lYXRlIHRoZSBleHRlbnQgb2YgdGhlCj4gZmllbGRzW10KPiArYXJy YXkgYW5kIHNlcGFyYXRlIGtleXMgZnJvbSB2YWx1ZXMgZm9yIHRoZSByZXN0IG9mIHRoZSBjb2Rl Lgo+IMKgCj4gLUJlbG93IGlzIGEgcnVuLXRpbWUgcmVwcmVzZW50YXRpb24gb2YgdGhlIHRyYWNp bmdfbWFwIHBhcnQgb2YKPiB0aGXCoMKgwqDCoMKgwqDCoCB8wqAgfAo+IC1oaXN0b2dyYW0sIHdp dGggcG9pbnRlcnMgZnJvbSB2YXJpb3VzIHBhcnRzIG9mIHRoZSBmaWVsZHNbXQo+IGFycmF5wqDC oMKgwqDCoMKgwqAgfMKgIHwKPiAtdG8gY29ycmVzcG9uZGluZyBwYXJ0cyBvZiB0aGUKPiB0cmFj aW5nX21hcC7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgfMKgIHwKPiArQmVsb3cgaXMgYSBydW4tdGltZSByZXByZXNlbnRhdGlvbiBv ZiB0aGUgdHJhY2luZ19tYXAgcGFydCBvZiB0aGUKPiAraGlzdG9ncmFtLCB3aXRoIHBvaW50ZXJz IGZyb20gdmFyaW91cyBwYXJ0cyBvZiB0aGUgZmllbGRzW10gYXJyYXkKPiArdG8gY29ycmVzcG9u ZGluZyBwYXJ0cyBvZiB0aGUgdHJhY2luZ19tYXAuCj4gwqAKPiAtVGhlIHRyYWNpbmdfbWFwIGNv bnNpc3RzIG9mIGFuIGFycmF5IG9mIHRyYWNpbmdfbWFwX2VudHJ5cyBhbmQgYQo+IHNldMKgwqDC oMKgIHzCoCB8Cj4gLW9mIHByZWFsbG9jYXRlZCB0cmFjaW5nX21hcF9lbHRzIChhYmJyZXZpYXRl ZCBiZWxvdyBhcyBtYXBfZW50cnkKPiBhbmTCoMKgwqDCoCB8wqAgfAo+IC1tYXBfZWx0KS7CoCBU aGUgdG90YWwgbnVtYmVyIG9mIG1hcF9lbnRyeXMgaW4gdGhlIGhpc3RfZGF0YS5tYXAgYXJyYXkK PiA9wqDCoCB8wqAgfAo+IC1tYXAtPm1heF9lbHRzIChhY3R1YWxseSBtYXAtPm1hcF9zaXplIGJ1 dCBvbmx5IG1heF9lbHRzIG9mIHRob3NlCj4gYXJlwqDCoMKgwqAgfMKgIHwKPiAtdXNlZC7CoCBU aGlzIGlzIGEgcHJvcGVydHkgcmVxdWlyZWQgYnkgdGhlIG1hcF9pbnNlcnQoKQo+IGFsZ29yaXRo bSkuwqDCoMKgwqDCoMKgIHzCoCB8Cj4gK1RoZSB0cmFjaW5nX21hcCBjb25zaXN0cyBvZiBhbiBh cnJheSBvZiB0cmFjaW5nX21hcF9lbnRyeXMgYW5kIGEgc2V0Cj4gK29mIHByZWFsbG9jYXRlZCB0 cmFjaW5nX21hcF9lbHRzIChhYmJyZXZpYXRlZCBiZWxvdyBhcyBtYXBfZW50cnkgYW5kCj4gK21h cF9lbHQpLsKgIFRoZSB0b3RhbCBudW1iZXIgb2YgbWFwX2VudHJ5cyBpbiB0aGUgaGlzdF9kYXRh Lm1hcCBhcnJheQo+ID0KPiArbWFwLT5tYXhfZWx0cyAoYWN0dWFsbHkgbWFwLT5tYXBfc2l6ZSBi dXQgb25seSBtYXhfZWx0cyBvZiB0aG9zZSBhcmUKPiArdXNlZC7CoCBUaGlzIGlzIGEgcHJvcGVy dHkgcmVxdWlyZWQgYnkgdGhlIG1hcF9pbnNlcnQoKSBhbGdvcml0aG0pLgo+IMKgCj4gLUlmIGEg bWFwX2VudHJ5IGlzIHVudXNlZCwgbWVhbmluZyBubyBrZXkgaGFzIHlldCBoYXNoZWQgaW50byBp dCwKPiBpdHPCoMKgwqDCoCB8wqAgfAo+IC0ua2V5IHZhbHVlIGlzIDAgYW5kIGl0cyAudmFsIHBv aW50ZXIgaXMgTlVMTC7CoCBPbmNlIGEgbWFwX2VudHJ5Cj4gaGFzwqDCoMKgwqDCoCB8wqAgfAo+ IC1iZWVuIGNsYWltZWQsIHRoZSAua2V5IHZhbHVlIGNvbnRhaW5zIHRoZSBrZXkncyBoYXNoIHZh bHVlIGFuZAo+IHRoZcKgwqDCoMKgwqDCoCB8wqAgfAo+IC0udmFsIG1lbWJlciBwb2ludHMgdG8g YSBtYXBfZWx0IGNvbnRhaW5pbmcgdGhlIGZ1bGwga2V5IGFuZCBhbgo+IGVudHJ5wqDCoMKgwqAg fMKgIHwKPiAtZm9yIGVhY2gga2V5IG9yIHZhbHVlIGluIHRoZSBtYXBfZWx0LmZpZWxkc1tdIGFy cmF5LsKgIFRoZXJlIGlzCj4gYW7CoMKgwqDCoMKgwqDCoCB8wqAgfAo+IC1lbnRyeSBpbiB0aGUg bWFwX2VsdC5maWVsZHNbXSBhcnJheSBjb3JyZXNwb25kaW5nIHRvIGVhY2gKPiBoaXN0X2ZpZWxk wqDCoMKgwqAgfMKgIHwKPiAtaW4gdGhlIGhpc3RvZ3JhbSwgYW5kIHRoaXMgaXMgd2hlcmUgdGhl IGNvbnRpbnVhbGx5IGFnZ3JlZ2F0ZWQKPiBzdW1zwqDCoMKgwqDCoCB8wqAgfAo+IC1jb3JyZXNw b25kaW5nIHRvIGVhY2ggaGlzdG9ncmFtIHZhbHVlIGFyZQo+IGtlcHQuwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIHwKPiArSWYgYSBtYXBfZW50 cnkgaXMgdW51c2VkLCBtZWFuaW5nIG5vIGtleSBoYXMgeWV0IGhhc2hlZCBpbnRvIGl0LCBpdHMK PiArLmtleSB2YWx1ZSBpcyAwIGFuZCBpdHMgLnZhbCBwb2ludGVyIGlzIE5VTEwuwqAgT25jZSBh IG1hcF9lbnRyeSBoYXMKPiArYmVlbiBjbGFpbWVkLCB0aGUgLmtleSB2YWx1ZSBjb250YWlucyB0 aGUga2V5J3MgaGFzaCB2YWx1ZSBhbmQgdGhlCj4gKy52YWwgbWVtYmVyIHBvaW50cyB0byBhIG1h cF9lbHQgY29udGFpbmluZyB0aGUgZnVsbCBrZXkgYW5kIGFuIGVudHJ5Cj4gK2ZvciBlYWNoIGtl eSBvciB2YWx1ZSBpbiB0aGUgbWFwX2VsdC5maWVsZHNbXSBhcnJheS7CoCBUaGVyZSBpcyBhbgo+ ICtlbnRyeSBpbiB0aGUgbWFwX2VsdC5maWVsZHNbXSBhcnJheSBjb3JyZXNwb25kaW5nIHRvIGVh Y2ggaGlzdF9maWVsZAo+ICtpbiB0aGUgaGlzdG9ncmFtLCBhbmQgdGhpcyBpcyB3aGVyZSB0aGUg Y29udGludWFsbHkgYWdncmVnYXRlZCBzdW1zCj4gK2NvcnJlc3BvbmRpbmcgdG8gZWFjaCBoaXN0 b2dyYW0gdmFsdWUgYXJlIGtlcHQuCj4gwqAKPiAtVGhlIGRpYWdyYW0gYXR0ZW1wdHMgdG8gc2hv dyB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4KPiB0aGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgfMKgIHwKPiAtaGlzdF9kYXRhLmZpZWxkc1tdIGFuZCB0aGUgbWFwX2VsdC5maWVsZHNb XSB3aXRoIHRoZSBsaW5rcwo+IGRyYXduwqDCoMKgwqDCoMKgwqDCoCB8wqAgfAo+ICtUaGUgZGlh Z3JhbSBhdHRlbXB0cyB0byBzaG93IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUKPiAraGlz dF9kYXRhLmZpZWxkc1tdIGFuZCB0aGUgbWFwX2VsdC5maWVsZHNbXSB3aXRoIHRoZSBsaW5rcyBk cmF3bgo+IMKgYmV0d2VlbiBkaWFncmFtczo6Cj4gwqAKPiDCoMKgICstLS0tLS0tLS0tLQo+ICsJ CcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgfAo+IEBAIC00NDAs MzEgKzQ0MCwzMSBAQCBzY2hlZF93YWtpbmcgaGlzdG9ncmFtCj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIG5fa2V5cyA9IG5fZmllbGRzIC0KPiBuX3ZhbHPCoMKgIHwgfCB8Cj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gwqDCoMKgwqDCoCB8IHwgfAo+IMKgCj4gLVRoaXMg aXMgdmVyeSBzaW1pbGFyIHRvIHRoZSBiYXNpYyBjYXNlLsKgIEluIHRoZSBhYm92ZSBkaWFncmFt LCB3ZQo+IGNhbsKgwqDCoMKgIHwgfCB8Cj4gLXNlZSBhIG5ldyAuZmxhZ3MgbWVtYmVyIGhhcyBi ZWVuIGFkZGVkIHRvIHRoZSBzdHJ1Y3QKPiBoaXN0X2ZpZWxkwqDCoMKgwqDCoMKgwqDCoMKgwqAg fCB8IHwKPiAtc3RydWN0LCBhbmQgYSBuZXcgZW50cnkgYWRkZWQgdG8gaGlzdF9kYXRhLmZpZWxk cyByZXByZXNlbnRpbmcgdGhlCj4gdHMwwqDCoMKgIHwgfCB8Cj4gLXZhcmlhYmxlLsKgIEZvciBh IG5vcm1hbCB2YWwgaGlzdF9maWVsZCwgLmZsYWdzIGlzIGp1c3QgMAo+IChtb2R1bG/CoMKgwqDC oMKgwqDCoMKgwqAgfCB8IHwKPiAtbW9kaWZpZXIgZmxhZ3MpLCBidXQgaWYgdGhlIHZhbHVlIGlz IGRlZmluZWQgYXMgYSB2YXJpYWJsZSwgdGhlCj4gLmZsYWdzwqDCoMKgIHwgfCB8Cj4gLWNvbnRh aW5zIGEgc2V0IEZMX1ZBUgo+IGJpdC7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHwgfCB8Cj4gK1RoaXMgaXMgdmVyeSBzaW1pbGFyIHRvIHRoZSBiYXNpYyBjYXNlLsKgIElu IHRoZSBhYm92ZSBkaWFncmFtLCB3ZQo+IGNhbgo+ICtzZWUgYSBuZXcgLmZsYWdzIG1lbWJlciBo YXMgYmVlbiBhZGRlZCB0byB0aGUgc3RydWN0IGhpc3RfZmllbGQKPiArc3RydWN0LCBhbmQgYSBu ZXcgZW50cnkgYWRkZWQgdG8gaGlzdF9kYXRhLmZpZWxkcyByZXByZXNlbnRpbmcgdGhlCj4gdHMw Cj4gK3ZhcmlhYmxlLsKgIEZvciBhIG5vcm1hbCB2YWwgaGlzdF9maWVsZCwgLmZsYWdzIGlzIGp1 c3QgMCAobW9kdWxvCj4gK21vZGlmaWVyIGZsYWdzKSwgYnV0IGlmIHRoZSB2YWx1ZSBpcyBkZWZp bmVkIGFzIGEgdmFyaWFibGUsIHRoZQo+IC5mbGFncwo+ICtjb250YWlucyBhIHNldCBGTF9WQVIg Yml0Lgo+IMKgCj4gLUFzIHlvdSBjYW4gc2VlLCB0aGUgdHMwIGVudHJ5J3MgLnZhci5pZHggbWVt YmVyIGNvbnRhaW5zIHRoZQo+IGluZGV4wqDCoMKgwqDCoMKgwqAgfCB8IHwKPiAtaW50byB0aGUg dHJhY2luZ19tYXBfZWx0cycgLnZhcnNbXSBhcnJheSBjb250YWluaW5nIHZhcmlhYmxlCj4gdmFs dWVzLsKgwqDCoMKgwqAgfCB8IHwKPiAtVGhpcyBpZHggaXMgdXNlZCB3aGVuZXZlciB0aGUgdmFs dWUgb2YgdGhlIHZhcmlhYmxlIGlzIHNldCBvcgo+IHJlYWQuwqDCoMKgwqDCoMKgIHwgfCB8Cj4g LVRoZSBtYXBfZWx0LnZhcnMgaWR4IGFzc2lnbmVkIHRvIHRoZSBnaXZlbiB2YXJpYWJsZSBpcyBh c3NpZ25lZAo+IGFuZMKgwqDCoMKgwqDCoCB8IHwgfAo+IC1zYXZlZCBpbiAudmFyLmlkeCBieSBj cmVhdGVfdHJhY2luZ19tYXBfZmllbGRzKCkgYWZ0ZXIgaXQKPiBjYWxsc8KgwqDCoMKgwqDCoMKg wqDCoMKgIHwgfCB8Cj4gLQo+IHRyYWNpbmdfbWFwX2FkZF92YXIoKS7CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiDCoMKgwqAgfCB8IHwKPiArQXMgeW91IGNhbiBzZWUs IHRoZSB0czAgZW50cnkncyAudmFyLmlkeCBtZW1iZXIgY29udGFpbnMgdGhlIGluZGV4Cj4gK2lu dG8gdGhlIHRyYWNpbmdfbWFwX2VsdHMnIC52YXJzW10gYXJyYXkgY29udGFpbmluZyB2YXJpYWJs ZSB2YWx1ZXMuCj4gK1RoaXMgaWR4IGlzIHVzZWQgd2hlbmV2ZXIgdGhlIHZhbHVlIG9mIHRoZSB2 YXJpYWJsZSBpcyBzZXQgb3IgcmVhZC4KPiArVGhlIG1hcF9lbHQudmFycyBpZHggYXNzaWduZWQg dG8gdGhlIGdpdmVuIHZhcmlhYmxlIGlzIGFzc2lnbmVkIGFuZAo+ICtzYXZlZCBpbiAudmFyLmlk eCBieSBjcmVhdGVfdHJhY2luZ19tYXBfZmllbGRzKCkgYWZ0ZXIgaXQgY2FsbHMKPiArdHJhY2lu Z19tYXBfYWRkX3ZhcigpLgo+IMKgCj4gLUJlbG93IGlzIGEgcmVwcmVzZW50YXRpb24gb2YgdGhl IGhpc3RvZ3JhbSBhdCBydW4tdGltZSwKPiB3aGljaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 IHwgfAo+IC1wb3B1bGF0ZXMgdGhlIG1hcCwgYWxvbmcgd2l0aCBjb3JyZXNwb25kZW5jZSB0byB0 aGUgYWJvdmUgaGlzdF9kYXRhCj4gYW5kwqDCoCB8IHwgfAo+IC1oaXN0X2ZpZWxkIGRhdGEKPiBz dHJ1Y3R1cmVzLsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgfCB8Cj4gK0Jl bG93IGlzIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGhpc3RvZ3JhbSBhdCBydW4tdGltZSwgd2hp Y2gKPiArcG9wdWxhdGVzIHRoZSBtYXAsIGFsb25nIHdpdGggY29ycmVzcG9uZGVuY2UgdG8gdGhl IGFib3ZlIGhpc3RfZGF0YQo+IGFuZAo+ICtoaXN0X2ZpZWxkIGRhdGEgc3RydWN0dXJlcy4KPiDC oAo+IC1UaGUgZGlhZ3JhbSBhdHRlbXB0cyB0byBzaG93IHRoZSByZWxhdGlvbnNoaXAgYmV0d2Vl bgo+IHRoZcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgfCB8Cj4gLWhpc3RfZGF0 YS5maWVsZHNbXSBhbmQgdGhlIG1hcF9lbHQuZmllbGRzW10gYW5kIG1hcF9lbHQudmFyc1tdCj4g d2l0aMKgwqDCoMKgwqDCoCB8IHwgfAo+IC10aGUgbGlua3MgZHJhd24gYmV0d2VlbiBkaWFncmFt cy7CoCBGb3IgZWFjaCBvZiB0aGUgbWFwX2VsdHMsIHlvdQo+IGNhbsKgwqDCoMKgwqAgfCB8IHwK PiAtc2VlIHRoYXQgdGhlIC5maWVsZHNbXSBtZW1iZXJzIHBvaW50IHRvIHRoZSAuc3VtIG9yIC5v ZmZzZXQgb2YgYQo+IGtlecKgwqDCoMKgwqAgfCB8IHwKPiAtb3IgdmFsIGFuZCB0aGUgLnZhcnNb XSBtZW1iZXJzIHBvaW50IHRvIHRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxlLsKgCj4gVGhlwqDCoMKg wqAgfCB8IHwKPiAtYXJyb3dzIGJldHdlZW4gdGhlIHR3byBkaWFncmFtcyBzaG93IHRoZSBsaW5r YWdlcyBiZXR3ZWVuCj4gdGhvc2XCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IHwgfAo+IC10cmFjaW5n X21hcCBtZW1iZXJzIGFuZCB0aGUgZmllbGQgZGVmaW5pdGlvbnMgaW4gdGhlCj4gY29ycmVzcG9u ZGluZ8KgwqDCoMKgwqDCoMKgIHwgfCB8Cj4gK1RoZSBkaWFncmFtIGF0dGVtcHRzIHRvIHNob3cg dGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZQo+ICtoaXN0X2RhdGEuZmllbGRzW10gYW5kIHRo ZSBtYXBfZWx0LmZpZWxkc1tdIGFuZCBtYXBfZWx0LnZhcnNbXSB3aXRoCj4gK3RoZSBsaW5rcyBk cmF3biBiZXR3ZWVuIGRpYWdyYW1zLsKgIEZvciBlYWNoIG9mIHRoZSBtYXBfZWx0cywgeW91IGNh bgo+ICtzZWUgdGhhdCB0aGUgLmZpZWxkc1tdIG1lbWJlcnMgcG9pbnQgdG8gdGhlIC5zdW0gb3Ig Lm9mZnNldCBvZiBhIGtleQo+ICtvciB2YWwgYW5kIHRoZSAudmFyc1tdIG1lbWJlcnMgcG9pbnQg dG8gdGhlIHZhbHVlIG9mIGEgdmFyaWFibGUuwqAKPiBUaGUKPiArYXJyb3dzIGJldHdlZW4gdGhl IHR3byBkaWFncmFtcyBzaG93IHRoZSBsaW5rYWdlcyBiZXR3ZWVuIHRob3NlCj4gK3RyYWNpbmdf bWFwIG1lbWJlcnMgYW5kIHRoZSBmaWVsZCBkZWZpbml0aW9ucyBpbiB0aGUgY29ycmVzcG9uZGlu Zwo+IMKgaGlzdF9kYXRhIGZpZWxkc1tdIG1lbWJlcnMuOjoKPiDCoAo+IMKgwqAgKy0tLS0tLS0t LS0tCj4gKwkJwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCB8IHwK PiBAQCAtNTY1LDQwICs1NjUsNDAgQEAgaGlzdF9kYXRhIGZpZWxkc1tdIG1lbWJlcnMuOjoKPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiB8wqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqAgfCB8Cj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLS0tLS0tCj4gLS0r wqDCoMKgwqAgfCB8Cj4gwqAKPiAtRm9yIGVhY2ggdXNlZCBtYXAgZW50cnksIHRoZXJlJ3MgYSBt YXBfZWx0IHBvaW50aW5nIHRvIGFuIGFycmF5Cj4gb2bCoMKgwqDCoMKgwqDCoMKgwqAgfCB8Cj4g LS52YXJzIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHZhcmlhYmxlcyBhc3Nv Y2lhdGVkCj4gd2l0aMKgwqDCoMKgwqDCoMKgwqAgfCB8Cj4gLXRoYXQgaGlzdG9ncmFtIGVudHJ5 LsKgIFNvIGluIHRoZSBhYm92ZSwgdGhlIHRpbWVzdGFtcCBhc3NvY2lhdGVkCj4gd2l0aMKgwqDC oMKgwqDCoCB8IHwKPiAtcGlkIDk5OSBpcyAxMTMzNDU2Nzk4NzYsIGFuZCB0aGUgdGltZXN0YW1w IHZhcmlhYmxlIGluIHRoZQo+IHNhbWXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCB8Cj4gLS52 YXIuaWR4IGZvciBwaWQgNDQ0NCBpcwo+IDIxMzQ5OTI0MDcyOS7CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 IHwKPiArRm9yIGVhY2ggdXNlZCBtYXAgZW50cnksIHRoZXJlJ3MgYSBtYXBfZWx0IHBvaW50aW5n IHRvIGFuIGFycmF5IG9mCj4gKy52YXJzIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2Yg dGhlIHZhcmlhYmxlcyBhc3NvY2lhdGVkIHdpdGgKPiArdGhhdCBoaXN0b2dyYW0gZW50cnkuwqAg U28gaW4gdGhlIGFib3ZlLCB0aGUgdGltZXN0YW1wIGFzc29jaWF0ZWQKPiB3aXRoCj4gK3BpZCA5 OTkgaXMgMTEzMzQ1Njc5ODc2LCBhbmQgdGhlIHRpbWVzdGFtcCB2YXJpYWJsZSBpbiB0aGUgc2Ft ZQo+ICsudmFyLmlkeCBmb3IgcGlkIDQ0NDQgaXMgMjEzNDk5MjQwNzI5Lgo+IMKgCj4gLXNjaGVk X3N3aXRjaAo+IGhpc3RvZ3JhbcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgfCB8Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgfAo+ICtzY2hlZF9zd2l0Y2gg aGlzdG9ncmFtCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiDCoAo+IC1UaGUgc2NoZWRfc3dp dGNoIGhpc3RvZ3JhbSBwYWlyZWQgd2l0aCB0aGUgYWJvdmUKPiBzY2hlZF93YWtpbmfCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgfAo+IC1oaXN0b2dyYW0gaXMgc2hvd24gYmVsb3cuwqAg VGhlIG1vc3QgaW1wb3J0YW50IGFzcGVjdCBvZgo+IHRoZcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHwgfAo+IC1zY2hlZF9zd2l0Y2ggaGlzdG9ncmFtIGlzIHRoYXQgaXQgcmVmZXJl bmNlcyBhIHZhcmlhYmxlIG9uCj4gdGhlwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCB8Cj4g LXNjaGVkX3dha2luZyBoaXN0b2dyYW0KPiBhYm92ZS7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB8IHwKPiArVGhlIHNjaGVkX3N3aXRjaCBoaXN0b2dyYW0gcGFpcmVkIHdpdGgg dGhlIGFib3ZlIHNjaGVkX3dha2luZwo+ICtoaXN0b2dyYW0gaXMgc2hvd24gYmVsb3cuwqAgVGhl IG1vc3QgaW1wb3J0YW50IGFzcGVjdCBvZiB0aGUKPiArc2NoZWRfc3dpdGNoIGhpc3RvZ3JhbSBp cyB0aGF0IGl0IHJlZmVyZW5jZXMgYSB2YXJpYWJsZSBvbiB0aGUKPiArc2NoZWRfd2FraW5nIGhp c3RvZ3JhbSBhYm92ZS4KPiDCoAo+IC1UaGUgaGlzdG9ncmFtIGRpYWdyYW0gaXMgdmVyeSBzaW1p bGFyIHRvIHRoZSBvdGhlcnMgc28gZmFyCj4gZGlzcGxheWVkLMKgwqDCoMKgwqDCoCB8IHwKPiAt YnV0IGl0IGFkZHMgdmFyaWFibGUgcmVmZXJlbmNlcy7CoCBZb3UgY2FuIHNlZSB0aGUgbm9ybWFs IGhpdGNvdW50Cj4gYW5kwqDCoMKgwqDCoMKgIHwgfAo+IC1rZXkgZmllbGRzIGFsb25nIHdpdGgg YSBuZXcgd2FrZXVwX2xhdCB2YXJpYWJsZSBpbXBsZW1lbnRlZCBpbgo+IHRoZcKgwqDCoMKgwqDC oMKgwqDCoCB8IHwKPiAtc2FtZSB3YXkgYXMgdGhlIHNjaGVkX3dha2luZyB0czAgdmFyaWFibGUs IGJ1dCBpbiBhZGRpdGlvbiB0aGVyZSdzCj4gYW7CoMKgwqDCoMKgwqAgfCB8Cj4gLWVudHJ5IHdp dGggdGhlIG5ldyBGTF9WQVJfUkVGIChzaG9ydCBmb3IgSElTVF9GSUVMRF9GTF9WQVJfUkVGKQo+ IGZsYWcuwqDCoMKgwqDCoMKgIHwgfAo+ICtUaGUgaGlzdG9ncmFtIGRpYWdyYW0gaXMgdmVyeSBz aW1pbGFyIHRvIHRoZSBvdGhlcnMgc28gZmFyCj4gZGlzcGxheWVkLAo+ICtidXQgaXQgYWRkcyB2 YXJpYWJsZSByZWZlcmVuY2VzLsKgIFlvdSBjYW4gc2VlIHRoZSBub3JtYWwgaGl0Y291bnQKPiBh bmQKPiAra2V5IGZpZWxkcyBhbG9uZyB3aXRoIGEgbmV3IHdha2V1cF9sYXQgdmFyaWFibGUgaW1w bGVtZW50ZWQgaW4gdGhlCj4gK3NhbWUgd2F5IGFzIHRoZSBzY2hlZF93YWtpbmcgdHMwIHZhcmlh YmxlLCBidXQgaW4gYWRkaXRpb24gdGhlcmUncwo+IGFuCj4gK2VudHJ5IHdpdGggdGhlIG5ldyBG TF9WQVJfUkVGIChzaG9ydCBmb3IgSElTVF9GSUVMRF9GTF9WQVJfUkVGKQo+IGZsYWcuCj4gwqAK PiAtQXNzb2NpYXRlZCB3aXRoIHRoZSBuZXcgdmFyIHJlZiBmaWVsZCBhcmUgYSBjb3VwbGUgb2Yg bmV3Cj4gaGlzdF9maWVsZMKgwqDCoMKgwqDCoMKgIHwgfAo+IC1tZW1iZXJzLCB2YXIuaGlzdF9k YXRhIGFuZCB2YXJfcmVmX2lkeC7CoCBGb3IgYSB2YXJpYWJsZSByZWZlcmVuY2UsCj4gdGhlwqDC oMKgwqDCoCB8IHwKPiAtdmFyLmhpc3RfZGF0YSBnb2VzIHdpdGggdGhlIHZhci5pZHgsIHdoaWNo IHRvZ2V0aGVyIHVuaXF1ZWx5Cj4gaWRlbnRpZnnCoMKgwqDCoMKgwqAgfCB8Cj4gLWEgcGFydGlj dWxhciB2YXJpYWJsZSBvbiBhIHBhcnRpY3VsYXIgaGlzdG9ncmFtLsKgIFRoZSB2YXJfcmVmX2lk eAo+IGlzwqDCoMKgwqDCoMKgwqAgfCB8Cj4gLWp1c3QgdGhlIGluZGV4IGludG8gdGhlIHZhcl9y ZWZfdmFsc1tdIGFycmF5IHRoYXQgY2FjaGVzIHRoZSB2YWx1ZXMKPiBvZsKgwqDCoMKgwqAgfCB8 Cj4gLWVhY2ggdmFyaWFibGUgd2hlbmV2ZXIgYSBoaXN0IHRyaWdnZXIgaXMgdXBkYXRlZC7CoCBU aG9zZQo+IHJlc3VsdGluZ8KgwqDCoMKgwqDCoMKgwqDCoCB8IHwKPiAtdmFsdWVzIGFyZSB0aGVu IGZpbmFsbHkgYWNjZXNzZWQgYnkgb3RoZXIgY29kZSBzdWNoIGFzIHRyYWNlCj4gYWN0aW9uwqDC oMKgwqDCoMKgwqDCoCB8IHwKPiAtY29kZSB0aGF0IHVzZXMgdGhlIHZhcl9yZWZfaWR4IHZhbHVl cyB0byBhc3NpZ24gcGFyYW0KPiB2YWx1ZXMuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 IHwKPiArQXNzb2NpYXRlZCB3aXRoIHRoZSBuZXcgdmFyIHJlZiBmaWVsZCBhcmUgYSBjb3VwbGUg b2YgbmV3IGhpc3RfZmllbGQKPiArbWVtYmVycywgdmFyLmhpc3RfZGF0YSBhbmQgdmFyX3JlZl9p ZHguwqAgRm9yIGEgdmFyaWFibGUgcmVmZXJlbmNlLAo+IHRoZQo+ICt2YXIuaGlzdF9kYXRhIGdv ZXMgd2l0aCB0aGUgdmFyLmlkeCwgd2hpY2ggdG9nZXRoZXIgdW5pcXVlbHkKPiBpZGVudGlmeQo+ ICthIHBhcnRpY3VsYXIgdmFyaWFibGUgb24gYSBwYXJ0aWN1bGFyIGhpc3RvZ3JhbS7CoCBUaGUg dmFyX3JlZl9pZHggaXMKPiAranVzdCB0aGUgaW5kZXggaW50byB0aGUgdmFyX3JlZl92YWxzW10g YXJyYXkgdGhhdCBjYWNoZXMgdGhlIHZhbHVlcwo+IG9mCj4gK2VhY2ggdmFyaWFibGUgd2hlbmV2 ZXIgYSBoaXN0IHRyaWdnZXIgaXMgdXBkYXRlZC7CoCBUaG9zZSByZXN1bHRpbmcKPiArdmFsdWVz IGFyZSB0aGVuIGZpbmFsbHkgYWNjZXNzZWQgYnkgb3RoZXIgY29kZSBzdWNoIGFzIHRyYWNlIGFj dGlvbgo+ICtjb2RlIHRoYXQgdXNlcyB0aGUgdmFyX3JlZl9pZHggdmFsdWVzIHRvIGFzc2lnbiBw YXJhbSB2YWx1ZXMuCj4gwqAKPiAtVGhlIGRpYWdyYW0gYmVsb3cgZGVzY3JpYmVzIHRoZSBzaXR1 YXRpb24gZm9yIHRoZQo+IHNjaGVkX3N3aXRjaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwg fAo+ICtUaGUgZGlhZ3JhbSBiZWxvdyBkZXNjcmliZXMgdGhlIHNpdHVhdGlvbiBmb3IgdGhlIHNj aGVkX3N3aXRjaAo+IMKgaGlzdG9ncmFtIHJlZmVycmVkIHRvIGJlZm9yZTo6Cj4gwqAKPiAtwqAg IyBlY2hvICdoaXN0OmtleXM9bmV4dF9waWQ6d2FrZXVwX2xhdD1jb21tb25fdGltZXN0YW1wLnVz ZWNzLSR0czAnCj4gPj7CoMKgwqDCoCB8IHwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgCj4gZXZlbnRz L3NjaGVkL3NjaGVkX3N3aXRjaC90cmlnZ2VywqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IHwKPiArwqAgIyBlY2hvICdoaXN0 OmtleXM9bmV4dF9waWQ6d2FrZXVwX2xhdD1jb21tb25fdGltZXN0YW1wLnVzZWNzLSR0czAnCj4g Pj4KPiArwqDCoMKgwqDCoMKgwqDCoMKgIGV2ZW50cy9zY2hlZC9zY2hlZF9zd2l0Y2gvdHJpZ2dl cgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+IMKgwqDCoMKgwqDCoMKgIHwgfAo+IMKgwqAg Ky0tLS0tLS0tLS0tLS0tLS0tLQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHwgfAo+IMKgwqAgfCBoaXN0X2RhdGHCoMKgwqDCoMKgwqDCoAo+IHzC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgfAoK