From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C62B2C4332F for ; Wed, 16 Nov 2022 15:26:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234496AbiKPP0r (ORCPT ); Wed, 16 Nov 2022 10:26:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45118 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231403AbiKPP0p (ORCPT ); Wed, 16 Nov 2022 10:26:45 -0500 Received: from out30-42.freemail.mail.aliyun.com (out30-42.freemail.mail.aliyun.com [115.124.30.42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 66923218; Wed, 16 Nov 2022 07:26:43 -0800 (PST) X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R121e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046049;MF=renyu.zj@linux.alibaba.com;NM=1;PH=DS;RN=20;SR=0;TI=SMTPD_---0VUyHU7C_1668612396; Received: from 30.39.64.129(mailfrom:renyu.zj@linux.alibaba.com fp:SMTPD_---0VUyHU7C_1668612396) by smtp.aliyun-inc.com; Wed, 16 Nov 2022 23:26:38 +0800 Message-ID: Date: Wed, 16 Nov 2022 23:26:36 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: Re: [PATCH RFC 0/6] Add metrics for neoverse-n2 To: James Clark , nick Forrington , Jumana MP , John Garry Cc: Will Deacon , Mike Leach , Leo Yan , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Andrew Kilroy , Shuai Xue , Zhuo Song , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org References: <1667214694-89839-1-git-send-email-renyu.zj@linux.alibaba.com> From: Jing Zhang In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-perf-users@vger.kernel.org 在 2022/11/16 下午7:19, James Clark 写道: > > > On 31/10/2022 11:11, Jing Zhang wrote: >> This series add six metricgroups for neoverse-n2, among which, the >> formula of topdown L1 is from the document: >> https://documentation-service.arm.com/static/60250c7395978b529036da86?token= >> >> Since neoverse-n2 does not yet support topdown L2, metricgroups such >> as Cache, TLB, Branch, InstructionsMix, and PEutilization are added to >> help further analysis of performance bottlenecks. >> > > Hi Jing, > > Thanks for working on this, these metrics look ok to me in general, > although we're currently working on publishing standardised metrics > across all new cores as part of a new project in Arm. This will include > N2, and our ones are very similar (or almost identical) to yours, > barring slightly different group names, metric names, and differences in > things like outputting topdown metrics as percentages. > > We plan to publish our standard metrics some time in the next 2 months. > Would you consider holding off on merging this change so that we have > consistant group names and units going forward? Otherwise N2 would be> the odd one out. I will send you the metrics when they are ready, and we > will have a script to generate perf jsons from them, so you can review. > Do you mean that after you release the new standard metrics, I remake my patch referring to them, such as consistent group names and unit? > We also have a slightly different forumula for one of the top down > metrics which I think would be slightly more accurate. We don't have The v2 version of the patchset updated the formula of topdown L1. Link: https://lore.kernel.org/all/1668411720-3581-1-git-send-email-renyu.zj@linux.alibaba.com/ The formula of the v2 version is more accurate than v1, and it has been verified in our test environment. Can you share your formula first and we can discuss it together? :) Thanks, Jing > anything for your "PE utilization" metrics, which I can raise > internally. It could always be added to perf on top of the standardised > ones if we don't add it to our standard ones. > > Thanks > James > >> with this series on neoverse-n2: >> >> $./perf list metricgroup >> >> List of pre-defined events (to be used in -e): >> >> >> Metric Groups: >> >> Branch >> Cache >> InstructionMix >> PEutilization >> TLB >> TopDownL1 >> >> >> $./perf list >> >> ... >> Metric Groups: >> >> Branch: >> branch_miss_pred_rate >> [The rate of branches mis-predited to the overall branches] >> branch_mpki >> [The rate of branches mis-predicted per kilo instructions] >> branch_pki >> [The rate of branches retired per kilo instructions] >> Cache: >> l1d_cache_miss_rate >> [The rate of L1 D-Cache misses to the overall L1 D-Cache] >> l1d_cache_mpki >> [The rate of L1 D-Cache misses per kilo instructions] >> ... >> >> >> $sudo ./perf stat -a -M TLB sleep 1 >> >> Performance counter stats for 'system wide': >> >> 35,861,936 L1I_TLB # 0.00 itlb_walk_rate (74.91%) >> 5,661 ITLB_WALK (74.91%) >> 97,279,240 INST_RETIRED # 0.07 itlb_mpki (74.91%) >> 6,851 ITLB_WALK (74.91%) >> 26,391 DTLB_WALK # 0.00 dtlb_walk_rate (75.07%) >> 35,585,545 L1D_TLB (75.07%) >> 85,923,244 INST_RETIRED # 0.35 dtlb_mpki (75.11%) >> 29,992 DTLB_WALK (75.11%) >> >> 1.003450755 seconds time elapsed >> >> >> Jing Zhang (6): >> perf vendor events arm64: Add topdown L1 metrics for neoverse-n2 >> perf vendor events arm64: Add TLB metrics for neoverse-n2 >> perf vendor events arm64: Add cache metrics for neoverse-n2 >> perf vendor events arm64: Add branch metrics for neoverse-n2 >> perf vendor events arm64: Add PE utilization metrics for neoverse-n2 >> perf vendor events arm64: Add instruction mix metrics for neoverse-n2 >> >> .../arch/arm64/arm/neoverse-n2/metrics.json | 247 +++++++++++++++++++++ >> 1 file changed, 247 insertions(+) >> create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-n2/metrics.json >> From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1B211C43219 for ; Wed, 16 Nov 2022 17:02:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=KNCSl5kc8NHa6JOru4h8sv8ugRTT9SmixN09zkll36M=; b=36kvD6WCAyuiU+ OFnrlbKUsI9SXTobzIvp0kc+5expW8Bv9zj4acTMLA8VC7j6SQZLBDWuxBZCcMicohUAuzr/m1ljF EmTa91zkX1FVrmyPsw1XsYTang5SL+8cmqYrV4/7eIcTH2Ur+L+vGjClgkjX3ca+iUsIdJuew0x1/ QnLl4AJrUJamcvVpEzshOboo1JBRE3rCPoJvBWohcoGTzIBnkgbNNYsuO7poSKfl7faGiObN05P0y WfHVds2FUq6IRAcBbjsdl64bJFAMkf6V3sk37ZSUKbjQ/h8hBXueRKyrUhRLmuR4OvbuvU/8z0ZZv QantdVydGO6jQeY/GUsw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ovLmU-006C16-CU; Wed, 16 Nov 2022 17:00:58 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ovKbu-005Yjv-JW for linux-arm-kernel@bombadil.infradead.org; Wed, 16 Nov 2022 15:45:58 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type :In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date:Message-ID: Sender:Reply-To:Content-ID:Content-Description; bh=lXp2FK/xOC3GUBJn/OOLA4lfNWAcP3POxB03Xc2/6t4=; b=MBAVHQ219cQZJZrUCEyB3/DkFR d0cc965O4T6Rk7IBo3FoaqZzys8fUteDnbw5or7V18HiNKY2iDYbZ96t71NiMXikDk8+3uz33CFdL 1lh6Y6nTYbhBZupYhFOVSaYOwRjei9kkapkqOZ7MJ36Lr9uETpIVDLiqX3vxRwZQHw5FAChBZMN/7 TSUTT83Gv1lniPu51XJPMcKB13gOlQluspjfQtVEs8do8PTWZKg7jkLSMj7bKgmeZYtEP0QMvyd8u xbo/oLek1JbE5oJhq51Wuhw1ZQ4NDIbybdIoCWkDVR4yia7Jp4Fsn2HnWpk/p72JjQGsVgt0WkSz9 kZ2q8iEA==; Received: from out30-131.freemail.mail.aliyun.com ([115.124.30.131]) by desiato.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ovKJT-001N6s-Fp for linux-arm-kernel@lists.infradead.org; Wed, 16 Nov 2022 15:26:58 +0000 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R121e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046049;MF=renyu.zj@linux.alibaba.com;NM=1;PH=DS;RN=20;SR=0;TI=SMTPD_---0VUyHU7C_1668612396; Received: from 30.39.64.129(mailfrom:renyu.zj@linux.alibaba.com fp:SMTPD_---0VUyHU7C_1668612396) by smtp.aliyun-inc.com; Wed, 16 Nov 2022 23:26:38 +0800 Message-ID: Date: Wed, 16 Nov 2022 23:26:36 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: Re: [PATCH RFC 0/6] Add metrics for neoverse-n2 To: James Clark , nick Forrington , Jumana MP , John Garry Cc: Will Deacon , Mike Leach , Leo Yan , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Andrew Kilroy , Shuai Xue , Zhuo Song , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org References: <1667214694-89839-1-git-send-email-renyu.zj@linux.alibaba.com> From: Jing Zhang In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221116_152655_888970_BD8F5CEA X-CRM114-Status: GOOD ( 20.88 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgrlnKggMjAyMi8xMS8xNiDkuIvljYg3OjE5LCBKYW1lcyBDbGFyayDlhpnpgZM6Cj4gCj4gCj4g T24gMzEvMTAvMjAyMiAxMToxMSwgSmluZyBaaGFuZyB3cm90ZToKPj4gVGhpcyBzZXJpZXMgYWRk IHNpeCBtZXRyaWNncm91cHMgZm9yIG5lb3ZlcnNlLW4yLCBhbW9uZyB3aGljaCwgdGhlCj4+IGZv cm11bGEgb2YgdG9wZG93biBMMSBpcyBmcm9tIHRoZSBkb2N1bWVudDoKPj4gaHR0cHM6Ly9kb2N1 bWVudGF0aW9uLXNlcnZpY2UuYXJtLmNvbS9zdGF0aWMvNjAyNTBjNzM5NTk3OGI1MjkwMzZkYTg2 P3Rva2VuPQo+Pgo+PiBTaW5jZSBuZW92ZXJzZS1uMiBkb2VzIG5vdCB5ZXQgc3VwcG9ydCB0b3Bk b3duIEwyLCBtZXRyaWNncm91cHMgc3VjaAo+PiBhcyBDYWNoZSwgVExCLCBCcmFuY2gsIEluc3Ry dWN0aW9uc01peCwgYW5kIFBFdXRpbGl6YXRpb24gYXJlIGFkZGVkIHRvCj4+IGhlbHAgZnVydGhl ciBhbmFseXNpcyBvZiBwZXJmb3JtYW5jZSBib3R0bGVuZWNrcy4KPj4KPiAKPiBIaSBKaW5nLAo+ IAo+IFRoYW5rcyBmb3Igd29ya2luZyBvbiB0aGlzLCB0aGVzZSBtZXRyaWNzIGxvb2sgb2sgdG8g bWUgaW4gZ2VuZXJhbCwKPiBhbHRob3VnaCB3ZSdyZSBjdXJyZW50bHkgd29ya2luZyBvbiBwdWJs aXNoaW5nIHN0YW5kYXJkaXNlZCBtZXRyaWNzCj4gYWNyb3NzIGFsbCBuZXcgY29yZXMgYXMgcGFy dCBvZiBhIG5ldyBwcm9qZWN0IGluIEFybS4gVGhpcyB3aWxsIGluY2x1ZGUKPiBOMiwgYW5kIG91 ciBvbmVzIGFyZSB2ZXJ5IHNpbWlsYXIgKG9yIGFsbW9zdCBpZGVudGljYWwpIHRvIHlvdXJzLAo+ IGJhcnJpbmcgc2xpZ2h0bHkgZGlmZmVyZW50IGdyb3VwIG5hbWVzLCBtZXRyaWMgbmFtZXMsIGFu ZCBkaWZmZXJlbmNlcyBpbgo+IHRoaW5ncyBsaWtlIG91dHB1dHRpbmcgdG9wZG93biBtZXRyaWNz IGFzIHBlcmNlbnRhZ2VzLgo+IAo+IFdlIHBsYW4gdG8gcHVibGlzaCBvdXIgc3RhbmRhcmQgbWV0 cmljcyBzb21lIHRpbWUgaW4gdGhlIG5leHQgMiBtb250aHMuCj4gV291bGQgeW91IGNvbnNpZGVy IGhvbGRpbmcgb2ZmIG9uIG1lcmdpbmcgdGhpcyBjaGFuZ2Ugc28gdGhhdCB3ZSBoYXZlCj4gY29u c2lzdGFudCBncm91cCBuYW1lcyBhbmQgdW5pdHMgZ29pbmcgZm9yd2FyZD8gT3RoZXJ3aXNlIE4y IHdvdWxkIGJlPiB0aGUgb2RkIG9uZSBvdXQuIEkgd2lsbCBzZW5kIHlvdSB0aGUgbWV0cmljcyB3 aGVuIHRoZXkgYXJlIHJlYWR5LCBhbmQgd2UKPiB3aWxsIGhhdmUgYSBzY3JpcHQgdG8gZ2VuZXJh dGUgcGVyZiBqc29ucyBmcm9tIHRoZW0sIHNvIHlvdSBjYW4gcmV2aWV3Lgo+IAoKRG8geW91IG1l YW4gdGhhdCBhZnRlciB5b3UgcmVsZWFzZSB0aGUgbmV3IHN0YW5kYXJkIG1ldHJpY3MsIEkgcmVt YWtlIG15CnBhdGNoIHJlZmVycmluZyB0byB0aGVtLCBzdWNoIGFzIGNvbnNpc3RlbnQgZ3JvdXAg bmFtZXMgYW5kIHVuaXQ/CgoKPiBXZSBhbHNvIGhhdmUgYSBzbGlnaHRseSBkaWZmZXJlbnQgZm9y dW11bGEgZm9yIG9uZSBvZiB0aGUgdG9wIGRvd24KPiBtZXRyaWNzIHdoaWNoIEkgdGhpbmsgd291 bGQgYmUgc2xpZ2h0bHkgbW9yZSBhY2N1cmF0ZS4gV2UgZG9uJ3QgaGF2ZQoKClRoZSB2MiB2ZXJz aW9uIG9mIHRoZSBwYXRjaHNldCB1cGRhdGVkIHRoZSBmb3JtdWxhIG9mIHRvcGRvd24gTDEuCkxp bms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2FsbC8xNjY4NDExNzIwLTM1ODEtMS1naXQtc2Vu ZC1lbWFpbC1yZW55dS56akBsaW51eC5hbGliYWJhLmNvbS8KClRoZSBmb3JtdWxhIG9mIHRoZSB2 MiB2ZXJzaW9uIGlzIG1vcmUgYWNjdXJhdGUgdGhhbiB2MSwgYW5kIGl0IGhhcyBiZWVuCnZlcmlm aWVkIGluIG91ciB0ZXN0IGVudmlyb25tZW50LiBDYW4geW91IHNoYXJlIHlvdXIgZm9ybXVsYSBm aXJzdCBhbmQgd2UKY2FuIGRpc2N1c3MgaXQgdG9nZXRoZXI/IDopCgpUaGFua3MsCkppbmcKCgo+ IGFueXRoaW5nIGZvciB5b3VyICJQRSB1dGlsaXphdGlvbiIgbWV0cmljcywgd2hpY2ggSSBjYW4g cmFpc2UKPiBpbnRlcm5hbGx5LiBJdCBjb3VsZCBhbHdheXMgYmUgYWRkZWQgdG8gcGVyZiBvbiB0 b3Agb2YgdGhlIHN0YW5kYXJkaXNlZAo+IG9uZXMgaWYgd2UgZG9uJ3QgYWRkIGl0IHRvIG91ciBz dGFuZGFyZCBvbmVzLgo+IAo+IFRoYW5rcwo+IEphbWVzCj4gCj4+IHdpdGggdGhpcyBzZXJpZXMg b24gbmVvdmVyc2UtbjI6Cj4+Cj4+ICQuL3BlcmYgbGlzdCBtZXRyaWNncm91cAo+Pgo+PiBMaXN0 IG9mIHByZS1kZWZpbmVkIGV2ZW50cyAodG8gYmUgdXNlZCBpbiAtZSk6Cj4+Cj4+Cj4+IE1ldHJp YyBHcm91cHM6Cj4+Cj4+IEJyYW5jaAo+PiBDYWNoZQo+PiBJbnN0cnVjdGlvbk1peAo+PiBQRXV0 aWxpemF0aW9uCj4+IFRMQgo+PiBUb3BEb3duTDEKPj4KPj4KPj4gJC4vcGVyZiBsaXN0Cj4+Cj4+ IC4uLgo+PiBNZXRyaWMgR3JvdXBzOgo+Pgo+PiBCcmFuY2g6Cj4+ICAgYnJhbmNoX21pc3NfcHJl ZF9yYXRlCj4+ICAgICAgICBbVGhlIHJhdGUgb2YgYnJhbmNoZXMgbWlzLXByZWRpdGVkIHRvIHRo ZSBvdmVyYWxsIGJyYW5jaGVzXQo+PiAgIGJyYW5jaF9tcGtpCj4+ICAgICAgICBbVGhlIHJhdGUg b2YgYnJhbmNoZXMgbWlzLXByZWRpY3RlZCBwZXIga2lsbyBpbnN0cnVjdGlvbnNdCj4+ICAgYnJh bmNoX3BraQo+PiAgICAgICAgW1RoZSByYXRlIG9mIGJyYW5jaGVzIHJldGlyZWQgcGVyIGtpbG8g aW5zdHJ1Y3Rpb25zXQo+PiBDYWNoZToKPj4gICBsMWRfY2FjaGVfbWlzc19yYXRlCj4+ICAgICAg ICBbVGhlIHJhdGUgb2YgTDEgRC1DYWNoZSBtaXNzZXMgdG8gdGhlIG92ZXJhbGwgTDEgRC1DYWNo ZV0KPj4gICBsMWRfY2FjaGVfbXBraQo+PiAgICAgICAgW1RoZSByYXRlIG9mIEwxIEQtQ2FjaGUg bWlzc2VzIHBlciBraWxvIGluc3RydWN0aW9uc10KPj4gLi4uCj4+Cj4+Cj4+ICRzdWRvIC4vcGVy ZiBzdGF0IC1hIC1NIFRMQiBzbGVlcCAxCj4+Cj4+ICBQZXJmb3JtYW5jZSBjb3VudGVyIHN0YXRz IGZvciAnc3lzdGVtIHdpZGUnOgo+Pgo+PiAgICAgICAgIDM1LDg2MSw5MzYgICAgICBMMUlfVExC ICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAwLjAwIGl0bGJfd2Fsa19yYXRlICAgICAg ICAgICAoNzQuOTElKQo+PiAgICAgICAgICAgICAgNSw2NjEgICAgICBJVExCX1dBTEsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoNzQu OTElKQo+PiAgICAgICAgIDk3LDI3OSwyNDAgICAgICBJTlNUX1JFVElSRUQgICAgICAgICAgICAg ICAgICAgICAjICAgICAwLjA3IGl0bGJfbXBraSAgICAgICAgICAgICAgICAoNzQuOTElKQo+PiAg ICAgICAgICAgICAgNiw4NTEgICAgICBJVExCX1dBTEsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoNzQuOTElKQo+PiAgICAgICAgICAg ICAyNiwzOTEgICAgICBEVExCX1dBTEsgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAwLjAw IGR0bGJfd2Fsa19yYXRlICAgICAgICAgICAoNzUuMDclKQo+PiAgICAgICAgIDM1LDU4NSw1NDUg ICAgICBMMURfVExCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoNzUuMDclKQo+PiAgICAgICAgIDg1LDkyMywyNDQgICAgICBJTlNU X1JFVElSRUQgICAgICAgICAgICAgICAgICAgICAjICAgICAwLjM1IGR0bGJfbXBraSAgICAgICAg ICAgICAgICAoNzUuMTElKQo+PiAgICAgICAgICAgICAyOSw5OTIgICAgICBEVExCX1dBTEsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo NzUuMTElKQo+Pgo+PiAgICAgICAgMS4wMDM0NTA3NTUgc2Vjb25kcyB0aW1lIGVsYXBzZWQKPj4g ICAgICAgIAo+Pgo+PiBKaW5nIFpoYW5nICg2KToKPj4gICBwZXJmIHZlbmRvciBldmVudHMgYXJt NjQ6IEFkZCB0b3Bkb3duIEwxIG1ldHJpY3MgZm9yIG5lb3ZlcnNlLW4yCj4+ICAgcGVyZiB2ZW5k b3IgZXZlbnRzIGFybTY0OiBBZGQgVExCIG1ldHJpY3MgZm9yIG5lb3ZlcnNlLW4yCj4+ICAgcGVy ZiB2ZW5kb3IgZXZlbnRzIGFybTY0OiBBZGQgY2FjaGUgbWV0cmljcyBmb3IgbmVvdmVyc2UtbjIK Pj4gICBwZXJmIHZlbmRvciBldmVudHMgYXJtNjQ6IEFkZCBicmFuY2ggbWV0cmljcyBmb3IgbmVv dmVyc2UtbjIKPj4gICBwZXJmIHZlbmRvciBldmVudHMgYXJtNjQ6IEFkZCBQRSB1dGlsaXphdGlv biBtZXRyaWNzIGZvciBuZW92ZXJzZS1uMgo+PiAgIHBlcmYgdmVuZG9yIGV2ZW50cyBhcm02NDog QWRkIGluc3RydWN0aW9uIG1peCBtZXRyaWNzIGZvciBuZW92ZXJzZS1uMgo+Pgo+PiAgLi4uL2Fy Y2gvYXJtNjQvYXJtL25lb3ZlcnNlLW4yL21ldHJpY3MuanNvbiAgICAgICAgfCAyNDcgKysrKysr KysrKysrKysrKysrKysrCj4+ICAxIGZpbGUgY2hhbmdlZCwgMjQ3IGluc2VydGlvbnMoKykKPj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9wZXJmL3BtdS1ldmVudHMvYXJjaC9hcm02NC9hcm0v bmVvdmVyc2UtbjIvbWV0cmljcy5qc29uCj4+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1h cm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==