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 X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 80203C433DB for ; Tue, 5 Jan 2021 11:40:10 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1D29722286 for ; Tue, 5 Jan 2021 11:40:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1D29722286 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=GPdBRdhJ6tV/wwe/ic+/Cb7pVrLReO4O7jWIGoIl2aY=; b=qcYEv5wF27aFZbrekiacWnIap 8P42Ds5JCsJgLwFg4DM/NhfJJoqMbF6qPENQpg/zV+LUzgvhtd8facizhvd5YWk81hM3Z3864oYIz Xjzq4XEIrrr/vsJ7jHUPm/dHBMrVrKzqzzrGwqnA5XDupYoPZpGeyTntzuZKvpe090ZVaPT9EW21a RiDOqnuHNMbMRwXU6/pbaQZjK9rI75kpEGjKJw007sArjpyVUd9MudcG3sN3nHMcYolYyZVfPcakU wW6bXNsj62h48Ob/qSX82etiUtx/4Q7h4WYJsjNgYZo/kwpXcujU1k3csr7WqZsLpNCwyQnarLUPg 8XQy0YJzQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kwkfD-0006rf-KG; Tue, 05 Jan 2021 11:38:12 +0000 Received: from foss.arm.com ([217.140.110.172]) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kwkfA-0006rI-A1 for linux-arm-kernel@lists.infradead.org; Tue, 05 Jan 2021 11:38:09 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 7C51A1FB; Tue, 5 Jan 2021 03:38:05 -0800 (PST) Received: from [10.57.38.6] (unknown [10.57.38.6]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 41CBC3F70D; Tue, 5 Jan 2021 03:38:04 -0800 (PST) Subject: Re: [PATCH 10/11] coresight: sink: Add TRBE driver To: Anshuman Khandual , linux-arm-kernel@lists.infradead.org, coresight@lists.linaro.org References: <1608717823-18387-1-git-send-email-anshuman.khandual@arm.com> <1608717823-18387-11-git-send-email-anshuman.khandual@arm.com> <92b5ae56-df5d-3772-0206-b50ea4080c4f@arm.com> From: Suzuki K Poulose Message-ID: Date: Tue, 5 Jan 2021 11:37:58 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-GB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210105_063808_471257_F2EA3952 X-CRM114-Status: GOOD ( 42.22 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Linu Cherian , linux-kernel@vger.kernel.org, Mathieu Poirier , Mike Leach Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMS81LzIxIDk6MjkgQU0sIEFuc2h1bWFuIEtoYW5kdWFsIHdyb3RlOgo+IAo+IAo+IE9uIDEv NC8yMSA5OjU4IFBNLCBTdXp1a2kgSyBQb3Vsb3NlIHdyb3RlOgo+Pgo+PiBIaSBBbnNodW1hbiwK Pj4KPj4gT24gMTIvMjMvMjAgMTA6MDMgQU0sIEFuc2h1bWFuIEtoYW5kdWFsIHdyb3RlOgo+Pj4g VHJhY2UgQnVmZmVyIEV4dGVuc2lvbiAoVFJCRSkgaW1wbGVtZW50cyBhIHRyYWNlIGJ1ZmZlciBw ZXIgQ1BVIHdoaWNoIGlzCj4+PiBhY2Nlc3NpYmxlIHZpYSB0aGUgc3lzdGVtIHJlZ2lzdGVycy4g VGhlIFRSQkUgc3VwcG9ydHMgZGlmZmVyZW50IGFkZHJlc3NpbmcKPj4+IG1vZGVzIGluY2x1ZGlu ZyBDUFUgdmlydHVhbCBhZGRyZXNzIGFuZCBidWZmZXIgbW9kZXMgaW5jbHVkaW5nIHRoZSBjaXJj dWxhcgo+Pj4gYnVmZmVyIG1vZGUuIFRoZSBUUkJFIGJ1ZmZlciBpcyBhZGRyZXNzZWQgYnkgYSBi YXNlIHBvaW50ZXIgKFRSQkJBU0VSX0VMMSksCj4+PiBhbiB3cml0ZSBwb2ludGVyIChUUkJQVFJf RUwxKSBhbmQgYSBsaW1pdCBwb2ludGVyIChUUkJMSU1JVFJfRUwxKS4gQnV0IHRoZQo+Pj4gYWNj ZXNzIHRvIHRoZSB0cmFjZSBidWZmZXIgY291bGQgYmUgcHJvaGliaXRlZCBieSBhIGhpZ2hlciBl eGNlcHRpb24gbGV2ZWwKPj4+IChFTDMgb3IgRUwyKSwgaW5kaWNhdGVkIGJ5IFRSQklEUl9FTDEu UC4gVGhlIFRSQkUgY2FuIGFsc28gZ2VuZXJhdGUgYSBDUFUKPj4+IHByaXZhdGUgaW50ZXJydXB0 IChQUEkpIG9uIGFkZHJlc3MgdHJhbnNsYXRpb24gZXJyb3JzIGFuZCB3aGVuIHRoZSBidWZmZXIK Pj4+IGlzIGZ1bGwuIE92ZXJhbGwgaW1wbGVtZW50YXRpb24gaGVyZSBpcyBpbnNwaXJlZCBmcm9t IHRoZSBBcm0gU1BFIGRyaXZlci4KPj4+Cj4+PiBDYzogTWF0aGlldSBQb2lyaWVyIDxtYXRoaWV1 LnBvaXJpZXJAbGluYXJvLm9yZz4KPj4+IENjOiBNaWtlIExlYWNoIDxtaWtlLmxlYWNoQGxpbmFy by5vcmc+Cj4+PiBDYzogU3V6dWtpIEsgUG91bG9zZSA8c3V6dWtpLnBvdWxvc2VAYXJtLmNvbT4K Pj4+IFNpZ25lZC1vZmYtYnk6IEFuc2h1bWFuIEtoYW5kdWFsIDxhbnNodW1hbi5raGFuZHVhbEBh cm0uY29tPgo+Pj4gLS0tCj4+Cj4+Pgo+Pj4gIMKgIERvY3VtZW50YXRpb24vdHJhY2UvY29yZXNp Z2h0L2NvcmVzaWdodC10cmJlLnJzdCB8wqAgMzkgKwo+Pj4gIMKgIGFyY2gvYXJtNjQvaW5jbHVk ZS9hc20vc3lzcmVnLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDIg Kwo+Pj4gIMKgIGRyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9LY29uZmlnwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfMKgIDExICsKPj4+ICDCoCBkcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2ln aHQvTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMSArCj4+PiAgwqAgZHJp dmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC10cmJlLmPCoMKgwqDCoCB8IDkyNSAr KysrKysrKysrKysrKysrKysrKysrKwo+Pj4gIMKgIGRyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdo dC9jb3Jlc2lnaHQtdHJiZS5owqDCoMKgwqAgfCAyNDggKysrKysrCj4+PiAgwqAgNiBmaWxlcyBj aGFuZ2VkLCAxMjI2IGluc2VydGlvbnMoKykKPj4+ICDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgRG9j dW1lbnRhdGlvbi90cmFjZS9jb3Jlc2lnaHQvY29yZXNpZ2h0LXRyYmUucnN0Cj4+PiAgwqAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtdHJi ZS5jCj4+PiAgwqAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdo dC9jb3Jlc2lnaHQtdHJiZS5oCj4+PgoKPj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1 ZGUvYXNtL3N5c3JlZy5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9zeXNyZWcuaAo+Pj4gaW5k ZXggZTY5NjJiMS4uMmE5YmZiNyAxMDA2NDQKPj4+IC0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9h c20vc3lzcmVnLmgKPj4+ICsrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vc3lzcmVnLmgKPj4+ IEBAIC05Nyw2ICs5Nyw3IEBACj4+PiAgwqAgI2RlZmluZSBTRVRfUFNUQVRFX1VBTyh4KcKgwqDC oMKgwqDCoMKgIF9fZW1pdF9pbnN0KDB4ZDUwMDQwMWYgfCBQU1RBVEVfVUFPIHwgKCghIXgpIDw8 IFBTVEFURV9JbW1fc2hpZnQpKQo+Pj4gIMKgICNkZWZpbmUgU0VUX1BTVEFURV9TU0JTKHgpwqDC oMKgwqDCoMKgwqAgX19lbWl0X2luc3QoMHhkNTAwNDAxZiB8IFBTVEFURV9TU0JTIHwgKCghIXgp IDw8IFBTVEFURV9JbW1fc2hpZnQpKQo+Pj4gIMKgICNkZWZpbmUgU0VUX1BTVEFURV9UQ08oeCnC oMKgwqDCoMKgwqDCoCBfX2VtaXRfaW5zdCgweGQ1MDA0MDFmIHwgUFNUQVRFX1RDTyB8ICgoISF4 KSA8PCBQU1RBVEVfSW1tX3NoaWZ0KSkKPj4+ICsjZGVmaW5lIFRTQl9DU1lOQ8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgX19lbWl0X2luc3QoMHhkNTAzMjI1ZikKPj4+ICDCoCDCoCAjZGVmaW5lIF9f U1lTX0JBUlJJRVJfSU5TTihDUm0sIG9wMiwgUnQpIFwKPj4+ICDCoMKgwqDCoMKgIF9fZW1pdF9p bnN0KDB4ZDUwMDAwMDAgfCBzeXNfaW5zbigwLCAzLCAzLCAoQ1JtKSwgKG9wMikpIHwgKChSdCkg JiAweDFmKSkKPj4+IEBAIC04NjksNiArODcwLDcgQEAKPj4+ICDCoCAjZGVmaW5lIElEX0FBNjRN TUZSMl9DTlBfU0hJRlTCoMKgwqDCoMKgwqDCoCAwCj4+PiAgwqAgwqAgLyogaWRfYWE2NGRmcjAg Ki8KPj4+ICsjZGVmaW5lIElEX0FBNjRERlIwX1RSQkVfU0hJRlTCoMKgwqDCoMKgwqDCoCA0NAo+ Pj4gIMKgICNkZWZpbmUgSURfQUE2NERGUjBfVFJBQ0VfRklMVF9TSElGVMKgwqDCoCA0MAo+Pj4g IMKgICNkZWZpbmUgSURfQUE2NERGUjBfRE9VQkxFTE9DS19TSElGVMKgwqDCoCAzNgo+Pj4gIMKg ICNkZWZpbmUgSURfQUE2NERGUjBfUE1TVkVSX1NISUZUwqDCoMKgIDMyCgoKPj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvTWFrZWZpbGUgYi9kcml2ZXJzL2h3dHJh Y2luZy9jb3Jlc2lnaHQvTWFrZWZpbGUKPj4+IGluZGV4IGYyMGUzNTcuLmQ2MDgxNjUgMTAwNjQ0 Cj4+PiAtLS0gYS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvTWFrZWZpbGUKPj4+ICsrKyBi L2RyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9NYWtlZmlsZQo+Pj4gQEAgLTIxLDUgKzIxLDYg QEAgb2JqLSQoQ09ORklHX0NPUkVTSUdIVF9TVE0pICs9IGNvcmVzaWdodC1zdG0ubwo+Pj4gIMKg IG9iai0kKENPTkZJR19DT1JFU0lHSFRfQ1BVX0RFQlVHKSArPSBjb3Jlc2lnaHQtY3B1LWRlYnVn Lm8KPj4+ICDCoCBvYmotJChDT05GSUdfQ09SRVNJR0hUX0NBVFUpICs9IGNvcmVzaWdodC1jYXR1 Lm8KPj4+ICDCoCBvYmotJChDT05GSUdfQ09SRVNJR0hUX0NUSSkgKz0gY29yZXNpZ2h0LWN0aS5v Cj4+PiArb2JqLSQoQ09ORklHX0NPUkVTSUdIVF9UUkJFKSArPSBjb3Jlc2lnaHQtdHJiZS5vCj4+ PiAgwqAgY29yZXNpZ2h0LWN0aS15IDo9IGNvcmVzaWdodC1jdGktY29yZS5vwqDCoMKgIGNvcmVz aWdodC1jdGktcGxhdGZvcm0ubyBcCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvcmVz aWdodC1jdGktc3lzZnMubwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHd0cmFjaW5nL2NvcmVz aWdodC9jb3Jlc2lnaHQtdHJiZS5jIGIvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVz aWdodC10cmJlLmMKPj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+PiBpbmRleCAwMDAwMDAwLi5i YTI4MGU2Cj4+PiAtLS0gL2Rldi9udWxsCj4+PiArKysgYi9kcml2ZXJzL2h3dHJhY2luZy9jb3Jl c2lnaHQvY29yZXNpZ2h0LXRyYmUuYwoKPj4+ICtzdGF0aWMgdm9pZCB0cmJlX3Jlc2V0X2xvY2Fs KHZvaWQpCj4+PiArewo+Pj4gK8KgwqDCoCB0cmJlX2Rpc2FibGVfYW5kX2RyYWluX2xvY2FsKCk7 Cj4+PiArwqDCoMKgIHdyaXRlX3N5c3JlZ19zKDAsIFNZU19UUkJQVFJfRUwxKTsKPj4+ICvCoMKg wqAgd3JpdGVfc3lzcmVnX3MoMCwgU1lTX1RSQkJBU0VSX0VMMSk7Cj4+PiArwqDCoMKgIHdyaXRl X3N5c3JlZ19zKDAsIFNZU19UUkJTUl9FTDEpOwo+Pj4gK8KgwqDCoCBpc2IoKTsKPj4+ICt9Cj4+ PiArCj4+PiArLyoKPj4+ICsgKiBUUkJFIEJ1ZmZlciBNYW5hZ2VtZW50Cj4+PiArICoKPj4+ICsg KiBUaGUgVFJCRSBidWZmZXIgc3BhbnMgZnJvbSB0aGUgYmFzZSBwb2ludGVyIHRpbGwgdGhlIGxp bWl0IHBvaW50ZXIuIFdoZW4gZW5hYmxlZCwKPj4+ICsgKiBpdCBzdGFydHMgd3JpdGluZyB0cmFj ZSBkYXRhIGZyb20gdGhlIHdyaXRlIHBvaW50ZXIgb253YXJkIHRpbGwgdGhlIGxpbWl0IHBvaW50 ZXIuCj4+PiArICogV2hlbiB0aGUgd3JpdGUgcG9pbnRlciByZWFjaGVzIHRoZSBhZGRyZXNzIGp1 c3QgYmVmb3JlIHRoZSBsaW1pdCBwb2ludGVyLCBpdCBnZXRzCj4+PiArICogd3JhcHBlZCBhcm91 bmQgYWdhaW4gdG8gdGhlIGJhc2UgcG9pbnRlci4gVGhpcyBpcyBjYWxsZWQgYSBUUkJFIHdyYXAg ZXZlbnQgd2hpY2gKPj4+ICsgKiBpcyBhY2NvbXBhbmllZCBieSBhbiBJUlEuCj4+Cj4+IFRoaXMg aXMgdHJ1ZSBmb3Igb25lIG9mIHRoZSBtb2RlcyBvZiBvcGVyYXRpb24sIHRoZSBXUkFQIG1vZGUs IHdoaWNoIGNvdWxkIGJlIHNwZWNpZmllZAo+PiBpbiB0aGUgY29tbWVudC4gZS5nLAo+Pgo+PiBU aGlzIGlzIGNhbGxlZCBhIFRSQkUgd3JhcCBldmVudCwgd2hpY2ggZ2VuZXJhdGVzIGEgbWFpbnRl bmFuY2UgaW50ZXJydXB0IHdoZW4gb3BlcmF0ZWQKPj4gaW4gV1JBUCBtb2RlLgo+IAo+IFN1cmUs IHdpbGwgY2hhbmdlLgoKU29ycnksIGNvcnJlY3RpbmcgbXlzZWxmOgoKcy93aGVuIG9wZXJhdGVk IGluIFdSQVAgbW9kZS93aGVuIG9wZXJhdGVkIGluIFdSQVAgb3IgU1RPUCBtb2RlLwoKLi4uCgo+ Pj4gKwo+Pj4gK3N0YXRpYyB1bnNpZ25lZCBsb25nIGdldF90cmJlX2xpbWl0KHN0cnVjdCBwZXJm X291dHB1dF9oYW5kbGUgKmhhbmRsZSkKPj4KPj4gbml0OiBUaGUgbmFtaW5nIGlzIGEgYml0IGNv bmZ1c2luZyB3aXRoIGdldF90cmJlX2xpbWl0KCkgYW5kIGdldF90cmJlX2xpbWl0X3BvaW50ZXIo KS4KPj4gT25lIGNvbXB1dGVzIHRoZSBUUkJFIGJ1ZmZlciBsaW1pdCBhbmQgdGhlIG90aGVyIHJl YWRzIHRoZSBoYXJkd2FyZSBMaW1pdCBwb2ludGVyLgo+PiBJdCB3b3VsZCBiZSBnb29kIGlmIGZv bGxvdyBhIHNjaGVtZSBmb3IgdGhlIG5hbWluZ3MuCj4+Cj4+IGUuZywgdHJiZV9saW1pdF9wb2lu dGVyKCkgLCB0cmJlX2Jhc2VfcG9pbnRlcigpLCB0cmJlXzxyZWdpc3Rlcj5fPG5hbWU+IGZvciBh bnl0aGluZwo+PiB0aGF0IHJlYWRzIHRoZSBoYXJkd2FyZSByZWdpc3Rlci4KPiAKPiBUaGUgY3Vy cmVudCBzY2hlbWUgaXMgaW4gdGhlIGZvcm0gZ2V0X3RyYmVfWFhYKCkgd2hlcmUgWFhYCj4gaXMg YSBUUkJFIGhhcmR3YXJlIGNvbXBvbmVudCBlLmcuCj4gCj4gZ2V0X3RyYmVfYmFzZV9wb2ludGVy KCkKPiBnZXRfdHJiZV9saW1pdF9wb2ludGVyKCkKPiBnZXRfdHJiZV93cml0ZV9wb2ludGVyKCkK PiBnZXRfdHJiZV9lYygpCj4gZ2V0X3RyYmVfYnNjKCkKPiBnZXRfdHJiZV9hZGRyZXNzX2FsaWdu KCkKPiBnZXRfdHJiZV9mbGFnX3VwZGF0ZSgpCj4gCj4+Cj4+IE9yIG1heSBiZSByZW5hbWUgdGhl IGdldF90cmJlX2xpbWl0KCkgdG8gY29tcHV0ZV90cmJlX2J1ZmZlcl9saW1pdCgpCj4gCj4gVGhp cyBtYWtlcyBpdCBjbGVhciwgd2lsbCBjaGFuZ2UuCj4gCj4+Cj4+PiArewo+Pj4gK8KgwqDCoCBz dHJ1Y3QgdHJiZV9idWYgKmJ1ZiA9IGV0bV9wZXJmX3NpbmtfY29uZmlnKGhhbmRsZSk7Cj4+PiAr wqDCoMKgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0Owo+Pj4gKwo+Pj4gK8KgwqDCoCBpZiAoYnVmLT5z bmFwc2hvdCkKPj4+ICvCoMKgwqDCoMKgwqDCoCBvZmZzZXQgPSB0cmJlX3NuYXBzaG90X29mZnNl dChoYW5kbGUpOwo+Pj4gK8KgwqDCoCBlbHNlCj4+PiArwqDCoMKgwqDCoMKgwqAgb2Zmc2V0ID0g dHJiZV9ub3JtYWxfb2Zmc2V0KGhhbmRsZSk7Cj4+PiArwqDCoMKgIHJldHVybiBidWYtPnRyYmVf YmFzZSArIG9mZnNldDsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIHZvaWQgY2xlYXJfdHJiZV9z dGF0ZSh2b2lkKQo+Pgo+PiBuaXQ6IFRoZSBuYW1lIGRvZXNuJ3QgZ2l2ZSBtdWNoIGNsdWUgYWJv dXQgd2hhdCBpdCBpcyBkb2luZywgZXNwZWNpYWxseSwgZ2l2ZW4KPj4gdGhlIGZvbGxvd2luZyAi c2V0X3RyYmVfc3RhdGUoKSIgd2hpY2ggZG9lcyBjb21wbGV0ZWx5IGRpZmZlcmVudCBmcm9tIHRo aXMgImNsZWFyIgo+PiBvcGVyYXRpb24uCj4gCj4gSSBhZ3JlZSB0aGF0IHRoZXNlIG5hbWVzIGNv dWxkIGhhdmUgYmVlbiBiZXR0ZXIuCj4gCj4gcy9jbGVhcl90cmJlX3N0YXRlL3RyYmVfcmVzZXRf cGVyZl9zdGF0ZSAgLSBDbGVhcnMgVFJCRSBmcm9tIGN1cnJlbnQgcGVyZiBjb25maWcKPiBzL3Nl dF90cmJlX3N0YXRlL3RyYmVfcHJlcGFyZV9wZXJmX3N0YXRlICAtIFByZXBhcmVzIFRSQkUgZm9y IHRoZSBuZXh0IHBlcmYgY29uZmlnCgpQbGVhc2UgZG9uJ3QgdGllIHRoZW0gdG8gInBlcmYiLiBU aGlzIGlzIHB1cmUgaGFyZHdhcmUgY29uZmlndXJhdGlvbiwgbm90IHBlcmYuCgpBbHNvLCBJIHdv bmRlciBpZiB3ZSBuZWVkIGEgc2VwYXJhdGUgInNldF90cmJlX3N0YXRlIi4gQ291bGQgd2Ugbm90 IGluaXRpYWxpemUgdGhlIExJTUlUUgphdCBvbmUgZ28gPwoKaS5lLCBkbyBzb21ldGhpbmcgbGlr ZSA6CgpzZXRfdHJiZV9saW1pdF9wb2ludGVyKGxpbWl0LCBtb2RlKSA/Cgp3aGVyZSBpdCBzZXRz IGFsbCB0aGUgZmllbGRzIG9mIGxpbWl0IHBvaW50ZXIuIEFsc28sIHlvdSBtYXkgd2FudCB0byBk b2N1bWVudCB0aGUgbW9kZSB3ZQpjaG9vc2UgZm9yIFRSQkUuIGkuZSwgRklMTCBTVE9QIG1vZGUg Zm9yIHVzIHRvIGNvbGxlY3QgdGhlIHRyYWNlLgoKPiAKPiAKPj4KPj4gSSB3b3VsZCByYXRoZXIg b3BlbiBjb2RlIHRoaXMgd2l0aCBhIHdyaXRlIG9mIDAgdG8gdHJic3IgaW4gdGhlIGNhbGxlci4K Pj4KPj4+ICt7Cj4+PiArwqDCoMKgIHU2NCB0cmJzciA9IHJlYWRfc3lzcmVnX3MoU1lTX1RSQlNS X0VMMSk7Cj4+PiArCj4+PiArwqDCoMKgIFdBUk5fT04oaXNfdHJiZV9lbmFibGVkKCkpOwo+Pj4g K8KgwqDCoCB0cmJzciAmPSB+VFJCU1JfSVJROwo+Pj4gK8KgwqDCoCB0cmJzciAmPSB+VFJCU1Jf VFJHOwo+Pj4gK8KgwqDCoCB0cmJzciAmPSB+VFJCU1JfV1JBUDsKPj4+ICvCoMKgwqAgdHJic3Ig Jj0gfihUUkJTUl9FQ19NQVNLIDw8IFRSQlNSX0VDX1NISUZUKTsKPj4+ICvCoMKgwqAgdHJic3Ig Jj0gfihUUkJTUl9CU0NfTUFTSyA8PCBUUkJTUl9CU0NfU0hJRlQpOwo+Pj4gK8KgwqDCoCB0cmJz ciAmPSB+KFRSQlNSX0ZTQ19NQVNLIDw8IFRSQlNSX0ZTQ19TSElGVCk7Cj4+Cj4+IEJTQyBhbmQg RlNDIGFyZSB0aGUgc2FtZSBmaWVsZHMgdW5kZXIgTVNTLCB3aXRoIHRoZWlyIG1lYW5pbmdzIGRl dGVybWluZWQgYnkgdGhlIEVDIGZpZWxkLgo+IAo+IENvdWxkIGp1c3QgZHJvcCB0aGUgRlNDIHBh cnQgaWYgcmVxdWlyZWQuCj4gCj4+Cj4+IENvdWxkIHdlIHNpbXBseSB3cml0ZSAwIHRvIHRoZSBy ZWdpc3RlciA/Cj4gCj4gSSB3b3VsZCByZWFsbHkgbGlrZSB0byBhdm9pZCB0aGF0LiBUaGlzIGZ1 bmN0aW9uIGNsZWFybHkgZW51bWVyYXRlcyBhbGwKPiBpbmRpdmlkdWFsIGJpdCBmaWVsZHMgYmVp bmcgY2xlYXJlZCBmb3IgcmVzZXR0aW5nIGFzIHdlbGwgYXMgcHJlcGFyaW5nCj4gdGhlIFRSQkUg Zm9yIHRoZSBuZXh0IHBlcmYgc2Vzc2lvbi4gQ29udmVydGluZyB0aGlzIGludG8gYSAwIHdyaXRl IGZvcgo+IFNZU19UUkJTUl9FTDEgc291bmRzIGV4Y2Vzc2l2ZSBhbmQgdGhlIG9ubHkgdGhpbmcg aXQgd291bGQgc2F2ZSBpcyB0aGUKPiByZWdpc3RlciByZWFkLgoKPiAKPj4KPj4+ICvCoMKgwqAg d3JpdGVfc3lzcmVnX3ModHJic3IsIFNZU19UUkJTUl9FTDEpOwo+Pj4gK30KPj4+ICsKPj4+ICtz dGF0aWMgdm9pZCBzZXRfdHJiZV9zdGF0ZSh2b2lkKQo+Pj4gK3sKPj4+ICvCoMKgwqAgdTY0IHRy YmxpbWl0ciA9IHJlYWRfc3lzcmVnX3MoU1lTX1RSQkxJTUlUUl9FTDEpOwo+Pj4gKwo+Pj4gK8Kg wqDCoCB0cmJsaW1pdHIgJj0gflRSQkxJTUlUUl9OVk07Cj4+PiArwqDCoMKgIHRyYmxpbWl0ciAm PSB+KFRSQkxJTUlUUl9GSUxMX01PREVfTUFTSyA8PCBUUkJMSU1JVFJfRklMTF9NT0RFX1NISUZU KTsKPj4+ICvCoMKgwqAgdHJibGltaXRyICY9IH4oVFJCTElNSVRSX1RSSUdfTU9ERV9NQVNLIDw8 IFRSQkxJTUlUUl9UUklHX01PREVfU0hJRlQpOwo+Pj4gK8KgwqDCoCB0cmJsaW1pdHIgfD0gKFRS QkVfRklMTF9TVE9QICYgVFJCTElNSVRSX0ZJTExfTU9ERV9NQVNLKSA8PCBUUkJMSU1JVFJfRklM TF9NT0RFX1NISUZUOwo+Pj4gK8KgwqDCoCB0cmJsaW1pdHIgfD0gKFRSQkVfVFJJR0dFUl9JR05P UkUgJiBUUkJMSU1JVFJfVFJJR19NT0RFX01BU0spIDw8IFRSQkxJTUlUUl9UUklHX01PREVfU0hJ RlQ7Cj4+PiArwqDCoMKgIHdyaXRlX3N5c3JlZ19zKHRyYmxpbWl0ciwgU1lTX1RSQkxJTUlUUl9F TDEpOwo+Pgo+PiBEbyB3ZSBuZWVkIHRvIHJlYWQtY29weS11cGRhdGUgaGVyZSA/IENvdWxkIHdl IHNpbXBseSB3cml0ZSAwID8KPj4gU2FtZSBhcyBhYm92ZSBjb21tZW50LCBjb3VsZCB3ZSBub3Qg c2ltcGx5IG9wZW5jb2RlIGl0IGF0IHRoZSBjYWxsZXIgPwo+PiBDbGVhcmx5IHRoZSBuYW1lcyBk b24ndCBoZWxwLgo+IAo+IFdpbGwgY2hhbmdlIHRoZSBuYW1lcyBhcyBwcm9wb3NlZCBvciBzb21l dGhpbmcgYmV0dGVyLiBCdXQgbGV0cyBsZWF2ZQo+IHRoZXNlIGZ1bmN0aW9ucyBhcyBpcy4gQmVz aWRlcyBUUkJFX1RSSUdHRVJfSUdOT1JFIGFsc28gaGFzIGEgcG9zaXRpdmUKPiB2YWx1ZSAoaS5l IDMpLCB3cml0aW5nIGFsbCAwcyBpbnRvIFNZU19UUkJMSU1JVFJfRUwxIHdpbGwgbm90IGJlIGlk ZWFsLgo+CgpUaGUgcG9pbnQgaXMsIHdlIGRvbid0IG5lZWQgdG8gcHJlc2VydmUgdGhlIHZhbHVl cyBmb3IgTElNSVRSLiBBbHNvIHNlZSBteSBjb21tZW50CmFib3ZlLCBmb3IgZm9sZGluZyB0aGlz IHRvIHNldF90cmJlX2xpbWl0X3BvaW50ZXIoKS4gSW4gYW55IGNhc2UsIEkgZG9uJ3QgdGhpbmsK d2Ugc2hvdWxkIHJlbHkgb24gdGhlIHZhbHVlcyBvZiBmaWVsZHMgd2UgY2hhbmdlLiBTbyBpdCBp cyBzYWZlciBhbmQgY2xlYW5lciB0bwpzZXQgc2V0IGFsbCB0aGUgYml0cyBmb3IgTElNSVRSLCBp bmNsdWRpbmcgdGhlIExJTUlUIGFkZHJlc3MgaW4gb25lIGdvLCB3aXRob3V0CnJlYWR5LWNvcHkt dXBkYXRlLgoKCj4+Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyB2b2lkIHRyYmVfZW5hYmxlX2h3 KHN0cnVjdCB0cmJlX2J1ZiAqYnVmKQo+Pj4gK3sKPj4+ICvCoMKgwqAgV0FSTl9PTihidWYtPnRy YmVfd3JpdGUgPCBidWYtPnRyYmVfYmFzZSk7Cj4+PiArwqDCoMKgIFdBUk5fT04oYnVmLT50cmJl X3dyaXRlID49IGJ1Zi0+dHJiZV9saW1pdCk7Cj4+PiArwqDCoMKgIHNldF90cmJlX2Rpc2FibGVk KCk7Cj4+PiArwqDCoMKgIGNsZWFyX3RyYmVfc3RhdGUoKTsKPj4+ICvCoMKgwqAgc2V0X3RyYmVf c3RhdGUoKTsKPj4+ICvCoMKgwqAgaXNiKCk7Cj4+PiArwqDCoMKgIHNldF90cmJlX2Jhc2VfcG9p bnRlcihidWYtPnRyYmVfYmFzZSk7Cj4+PiArwqDCoMKgIHNldF90cmJlX2xpbWl0X3BvaW50ZXIo YnVmLT50cmJlX2xpbWl0KTsKPj4+ICvCoMKgwqAgc2V0X3RyYmVfd3JpdGVfcG9pbnRlcihidWYt PnRyYmVfd3JpdGUpOwo+Pgo+PiBXaGVyZSBkbyB3ZSBzZXQgdGhlIGZpbGwgbW9kZSA/Cj4gCj4g VFJCRV9GSUxMX1NUT1AgaGFzIGFscmVhZHkgYmVlbiBjb25maWd1cmVkIGluIHNldF90cmJlX3N0 YXRlKCkuCj4gCgpBcyBtZW50aW9uZWQgYWJvdmUsIHRoaXMgbmVlZHMgdG8gYmUgZG9jdW1lbnRl ZC4gSXQgaXMgbm90IGV2aWRlbnQKZm9yIHNvbWVvbmUgd2hvIGlzIGxvb2tpbmcgYXQgdGhlIGNv ZGUuIGUuZywgSSB0aG91Z2h0IHRoZSBzZXRfdHJiZV9zdGF0ZSgpCndhcyBzaW1wbHkgc3RvcHBp bmcgdGhlIFRSQkUuCgpBbHNvLCBsb29raW5nIGF0IHRoZSBzcGVjLCBJIGZpbmQgdGhlIG5hbWVz IG9mIHRoZSBmaWxsIG1vZGVzIGNvbmZ1c2luZy4KVGhlIG1vZGVzIGFyZSBGSUxMLCBXUkFQIGFu ZCBDSVJDVUxBUiBCVUZGRVIuIFN0b3AgaXMganVzdCB0aGUgYmVoYXZpb3IKb2YgRklMTC4gU28s IHBsZWFzZSBkbyBub3QgdXNlIFNUT1AgZm9yIHRoZSBtb2RlIG5hbWUuCgpBbHNvLCBwbGVhc2Ug cmVuYW1lIHRoZSBtb2RlIHN5bWJvbHMgdG8gOgoKVFJCRV9GSUxMX01PREVfRklMTApUUkJFX0ZJ TExfTU9ERV9XUkFQClRSQkVfRklMTF9NT0RFX0NJUkNVTEFSX0JVRkZFUgoKdG8gYWxpZ24gd2l0 aCB0aGUgc3BlYy4KCj4+Cj4+PiArwqDCoMKgIGlzYigpOwo+Pj4gK8KgwqDCoCBzZXRfdHJiZV9y dW5uaW5nKCk7Cj4+PiArwqDCoMKgIHNldF90cmJlX2VuYWJsZWQoKTsKPj4+ICvCoMKgwqAgc2V0 X3RyYmVfZmx1c2goKTsKPj4+ICt9Cj4+PiArCgoKPj4+ICsKPj4+ICtzdGF0aWMgaW50IGFybV90 cmJlX2NwdV9zdGFydHVwKHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCBobGlzdF9ub2RlICpub2Rl KQo+Pj4gK3sKPj4+ICvCoMKgwqAgc3RydWN0IHRyYmVfZHJ2ZGF0YSAqZHJ2ZGF0YSA9IGhsaXN0 X2VudHJ5X3NhZmUobm9kZSwgc3RydWN0IHRyYmVfZHJ2ZGF0YSwgaG90cGx1Z19ub2RlKTsKPj4+ ICsKPj4+ICvCoMKgwqAgaWYgKGNwdW1hc2tfdGVzdF9jcHUoY3B1LCAmZHJ2ZGF0YS0+c3VwcG9y dGVkX2NwdXMpKSB7Cj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCFwZXJfY3B1KGNzZGV2X3Npbmss IGNwdSkgJiYgKHN5c3RlbV9zdGF0ZSA9PSBTWVNURU1fUlVOTklORykpIHsKPj4KPj4gV2h5IGlz IHRoZSBzeXN0ZW1fc3RhdGUgY2hlY2sgcmVsZXZhbnQgaGVyZSA/Cj4gCj4gSSBoYWQgYSBjb25j ZXJuIHJlZ2FyZGluZyB3aGV0aGVyIGFybV90cmJlX3Byb2JlX2NvcmVzaWdodF9jcHUoKSBpbnZv Y2F0aW9ucwo+IGZyb20gYXJtX3RyYmVfY3B1X3N0YXJ0dXAoKSBtaWdodCByYWNlIHdpdGggaXRz IGludm9jYXRpb25zIGR1cmluZyBib290IGZyb20KPiBhcm1fdHJiZV9kZXZpY2VfcHJvYmUoKS4g Q2hlY2tpbmcgZm9yIHJ1bnRpbWUgc3lzdGVtX3N0YXRlIHdvdWxkIGVuc3VyZSB0aGF0Cj4gYSBj b21wbGV0ZSBUUkJFIHByb2JlIG9uIGEgZ2l2ZW4gY3B1IGlzIGNhbGxlZCBvbmx5IGFmdGVyIHRo ZSBib290IGlzIGNvbXBsZXRlLgo+IEJ1dCBpZiB0aGUgcmFjZSBjb25kaXRpb24gaXMgcmVhbGx5 IG5ldmVyIHBvc3NpYmxlLCBjYW4ganVzdCBkcm9wIHRoaXMgY2hlY2suCgpJIGRvbid0IHRoaW5r IHRoZXkgc2hvdWxkLgoKU3V6dWtpCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtl cm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=