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=-7.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,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 97FA8C433DF for ; Wed, 8 Jul 2020 16:15:23 +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 515BF2078D for ; Wed, 8 Jul 2020 16:15:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="rbrMotgC" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 515BF2078D Authentication-Results: mail.kernel.org; dmarc=none (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-Transfer-Encoding: Content-Type: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=3R15Ep9ioGtsSdCNUVhMlykXi9U95p5Gex4KhOov5yg=; b=rbrMotgC+7qUHONgGFhLTclLb //TRKHh8vDs1dmLnWrruNLGJ9+xu0JZETBFaBmPvT+l/XUb3E0Rs88ZTfR2RKTsZl08EDZf0nxQbP fm2vGAqjuGRfXwMjxQXcnJySOgh6tYC/i5fDJmX932/fN6EypS62bWQNBMo5Q+n9+Re7jUzCLdELB Q7Qskjyu4Y/WyVtWqJ6bQvnwh1CUyWvvtakXgPq4McY3eYjuT+pU1TaXahGi1JSPlRUwcFvcigTTQ tvtNqEGtpPmYQyRV0OrtCcb/Ow9X5VSOvWCJPsGdd2eureTdn4yWgqedQdRF2/+B+KMxm3koDlORR NGcsf/GMA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jtChU-00083N-LE; Wed, 08 Jul 2020 16:13:36 +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 1jtChS-00081a-6s for linux-arm-kernel@lists.infradead.org; Wed, 08 Jul 2020 16:13:35 +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 D5D8731B; Wed, 8 Jul 2020 09:13:28 -0700 (PDT) Received: from [192.168.0.14] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 24EB23F68F; Wed, 8 Jul 2020 09:13:28 -0700 (PDT) Subject: Re: [Question] How to testing SDEI client driver To: Gavin Shan References: <8cdef8ea-e550-ccff-2041-526d6f6fcda0@redhat.com> <3cc7e69c-9315-5138-85f7-7b36e17b67a1@redhat.com> From: James Morse Message-ID: <2b5ef5b2-cf6b-3f4e-4250-c1d0a34e9873@arm.com> Date: Wed, 8 Jul 2020 17:11:48 +0100 User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <3cc7e69c-9315-5138-85f7-7b36e17b67a1@redhat.com> Content-Language: en-GB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200708_121334_349901_91529476 X-CRM114-Status: GOOD ( 44.42 ) 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: mark.rutland@arm.com, pbonzini@redhat.com, linux-arm-kernel@lists.infradead.org, maz@kernel.org 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 SGkgR2F2aW4sCgpPbiAwMy8wNy8yMDIwIDAxOjI2LCBHYXZpbiBTaGFuIHdyb3RlOgo+IE9uIDcv MS8yMCA5OjU3IFBNLCBKYW1lcyBNb3JzZSB3cm90ZToKPj4gT24gMzAvMDYvMjAyMCAwNjoxNywg R2F2aW4gU2hhbiB3cm90ZToKPj4+IEknbSBjdXJyZW50bHkgbG9va2luZyBpbnRvIFNERUkgY2xp ZW50IGRyaXZlciBhbmQgcmV3b3JraW5nIG9uIGl0IHNvIHRoYXQKPj4+IGl0IGNhbiBwcm92aWRl IGNhcGFiaWxpdHkvc2VydmljZXMgdG8gYXJtNjQva3ZtIHRvIGdldCBpdCB2aXJ0dWFsaXplZC4K Pj4KPj4gV2hhdCBkbyB5b3UgbWVhbiBieSB2aXJ0dWFsaXNlZD8gVGhlIGV4cGVjdGF0aW9uIGlz IHRoZSBWTU0gd291bGQgaW1wbGVtZW50IHRoZSAnZmlybXdhcmUnCj4+IHNpZGUgb2YgdGhpcy4g J2V2ZW50cycgYXJlIG1vc3QgbGlrZWx5IHRvIGNvbWUgZnJvbSB0aGUgVk1NLCBhbmQgaGF2aW5n IHRvIGhhbmRzaGFrZSB3aXRoCj4+IHRoZSBrZXJuZWwgdG8gd29yayBvdXQgaWYgdGhlIGV2ZW50 IHlvdSB3YW50IHRvIGluamVjdCBpcyByZWdpc3RlcmVkIGFuZCBlbmFibGVkIGlzCj4+IG92ZXIt Y29tcGxpY2F0ZWQuIFN1cHBvcnRpbmcgaXQgaW4gdGhlIFZNTSBtZWFucyB5b3UgY2FuIG5vdGlm eSBhIGRpZmZlcmVudCB2Q1BVIGlmIHRoYXQKPj4gaXMgYXBwcm9wcmlhdGUsIG9yIHRha2UgYSBk aWZmZXJlbnQgYWN0aW9uIGlmIHRoZSBldmVudCBpc24ndCByZWdpc3RlcmVkLgo+Pgo+PiBUaGlz IHdhcyBhbGwgYmxvY2tlZCBvbiBmaW5kaW5nIGEgZnV0dXJlLXByb29mIHdheSBmb3IgdG9vbHMg bGlrZSBRZW11IHRvIGNvbnN1bWUKPj4gcmVmZXJlbmNlIGNvZGUgZnJvbSBBVEYuCgo+IFNvcnJ5 IHRoYXQgSSBkaWRuJ3QgbWVudGlvbiB0aGUgc3RvcnkgYSBiaXQgbGFzdCB0aW1lLiBXZSBwbGFu IHRvIHVzZSBTREVJIHRvCj4gZGVsaXZlciB0aGUgbm90aWZpY2F0aW9uIChzaWduYWwpIGZyb20g aG9zdCB0byBndWVzdCwgbmVlZGVkIGJ5IHRoZSBhc3luY2hyb25vdXMKPiBwYWdlIGZhdWx0IGZl YXR1cmUuIFRoZSBSRkN2MiBwYXRjaHNldCB3YXMgcG9zdCBhIHdoaWxlIGFnbyBbMV0uCgpUaGFu a3MuIFNvIHRoaXMgaXMgdG8gaGludCB0byB0aGUgZ3Vlc3QgdGhhdCB5b3UnZCBzd2FwcGVkIGl0 cyBtZW1vcnkgdG8gZGlzay4gWXVjay4KCldoZW4gd291bGQgeW91IGRvIHRoaXM/CgpTdXJlbHkg dGhpcyBpcyAicGVyZm9ybWFuY2Ugb2YgYW4gb3Zlci1jb21taXR0ZWQgaG9zdCBzdWNrcyIuCgp+ CgpJc24ndCB0aGlzIHJvdWdobHkgZXF1aXZhbGVudCB0byBTTVQgQ1BVcyB0YWtpbmcgYSBjYWNo ZS1taXNzPyAuLi4KSWYgeW91IHBpbm5lZCB0d28gdkNQVXMgdG8gb25lIHBoeXNpY2FsIENQVSwg dGhlIGhvc3Q6c2NoZWR1bGVyIHdvdWxkIG11bHRpcGxleCBiZXR3ZWVuCnRoZW0uIElmIG9uZSBj b3VsZG4ndCBkdWUgdXNlZnVsIHdvcmsgYmVjYXVzZSBpdCB3YXMgd2FpdGluZyBmb3IgbWVtb3J5 LCB0aGUgb3RoZXIgZ2V0cwphbGwgdGhlIHNsYWNrIHRpbWUuICh0aGUgVExCIG1haW50ZW5hbmNl IHdvdWxkIGh1cnQsIGJ1dCBub3QgYXMgbXVjaCBhcyB3YWl0aW5nIGZvciB0aGUgZGlzaykKVGhl IGdvb2QgbmV3cyBpcyB0aGUgZ3Vlc3Q6c2NoZWR1bGVyIGFscmVhZHkga25vd3MgaG93IHRvIGRl YWwgd2l0aCB0aGlzIQooYW5kLCBpdCB3b3JrcyBmb3Igb3RoZXIgT1MgdG9vKQoKCldvdWxkbid0 IGl0IGJlIGJldHRlciB0byBsZXQgdGhlIGd1ZXN0IG1ha2UgdGhlIHN3YXBwaW5nIGRlY2lzaW9u PyBZb3UgY291bGQgcHJvdmlkZSBhCmZhc3QgdmlydGlvIHN3YXAgZGV2aWNlIHRvIHRoZSBndWVz dCB0aGF0IGlzIGJhY2tlZCBieSBtYXliZS1zd2FwcGVkIGhvc3QgbWVtb3J5LiAoeW91J2QKbmVl ZCB0byBnZXQgdGhlIGhvc3QgdG8gc3dhcCB0aGUgYmxvY2sgZGV2aWNlIGluIHByZWZlcmVuY2Ug dG8gdGhlIGd1ZXN0IG1lbW9yeSwgb3IKbWxvY2soKSBpdCkKVGhlIGd1ZXN0IGdldHMgZ3JlYXQg cGVyZm9ybWFuY2UsIHVubGVzcyBpdHMgc3dhcCB3YXMgYWN0dWFsbHkgc3dhcHBlZC4gSXQgbWln aHQgZXZlbiBiZQpwb3NzaWJsZSB0byBkbyB0aGlzIHdpdGhvdXQgYSBndWVzdCBleGl0IQooSSdt IG5vdCBhd2FyZSBvZiBhIHdheSBmb3IgdXNlci1zcGFjZSB0byBnaXZlIGEgcHJlZmVyZW5jZSBv biB3aGF0IGdldHMgc3dhcHBlZCkKCkRvbmUgbGlrZSB0aGlzLCB5b3UgZG9uJ3QgcGF5IHRoZSBw ZW5hbHR5IHdoZW4gdGhlIGd1ZXN0IHRyaWVzIHRvIHN3YXAgb3V0IGEgcGFnZSB0aGF0IHRoZQpo b3N0IGhhZCBhbHJlYWR5IHN3YXBwZWQuCgoKSSB0aGluayByZS11c2luZyBzb21lIG9mIHRoZXNl IGV4aXN0aW5nIGNvbmNlcHRzIHdvdWxkIGJlIGJldHRlciB0aGFuIHNvbWV0aGluZyB0aGF0IGlz CmxpbnV4K2t2bSthYXJjaDY0IHNwZWNpZmljLgoKCj4gRm9yIHRoZSBTREVJCj4gZXZlbnRzIG5l ZWRlZCBieSB0aGUgYXN5bmMgcGFnZSBmYXVsdCwgaXQncyBvcmlnaW5hdGVkIGZyb20gS1ZNICho b3N0KS4gSW4gb3JkZXIKPiB0byBhY2hpZXZlIHRoZSBnb2FsLCBLVk0gbmVlZHMgc29tZSBjb2Rl IHNvIHRoYXQgU0RFSSBldmVudCBjYW4gYmUgaW5qZWN0ZWQgYW5kCj4gZGVsaXZlcmVkLiBBbHNv LCB0aGUgU0RFSSByZWxhdGVkIGh5cGVyY2FsbHMgbmVlZHMgdG8gYmUgaGFuZGxlZCBlaXRoZXIu CgpJIGF2b2lkZWQgZG9pbmcgdGhpcyBiZWNhdXNlIGl0IG1ha2VzIGl0IG1hc3NpdmVseSBjb21w bGljYXRlZCBmb3IgdGhlIFZNTS4gQWxsIHRoYXQKaW4ta2VybmVsIHN0YXRlIG5vdyBoYXMgdG8g YmUgbWlncmF0ZWQuIEtWTSBoYXMgdG8gZXhwb3NlIEFQSXMgdG8gbGV0IHRoZSBWTU0gaW5qZWN0 CmV2ZW50cywgd2hpY2ggZ2V0cyBuYXN0eSBmb3Igc2hhcmVkIGV2ZW50cyB3aGVyZSBzb21lIENQ VXMgYXJlIG1hc2tlZCwgYW5kIG90aGVycyBhcmVuJ3QuCgpIYXZpbmcgc29tZXRoaW5nIGxpa2Ug UWVtdSBkcml2ZSB0aGUgcmVmZXJlbmNlIGNvZGUgZnJvbSBURkEgaXMgdGhlIHJpZ2h0IHRoaW5n IHRvIGRvIGZvcgpTREVJLgoKCj4gU2luY2Ugd2UncmUgaGVyZSwgSSBwbGFuIHRvIGV4cGFuZCB0 aGUgc2NvcGUgc28gdGhhdCB0aGUgZmlybXdhcmUgb3duZWQgU0RFSQo+IGV2ZW50cyAocHJpdmF0 ZS9zaGFyZWQpIGNhbiBiZSBwYXNzZWQgdGhyb3VnaCB0byBtdWx0aXBsZSBWTXMuIExldHMgc2F5 IHRoZXkncmUKPiBwYXNzdGhyb3UgZXZlbnQuIEZvciB0aGVzZSBwYXNzdGhyb3UgZXZlbnRzLCB0 aGV5IGNhbiBiZSBzaGFyZWQgYnkgbXVsdGlwbGUgVk1zCj4gZWl0aGVyLgoKV2h5PyBEbyB5b3Ug aGF2ZSBhbiBleGFtcGxlIHdoZXJlIHRoYXQgaXMgbmVjZXNzYXJ5PwoKVGhpcyBzdHVmZiBpcyBm b3IgdGhpbmdzIGZpcm13YXJlIG5lZWRzIHRvIHRlbGwgdGhlIE9TIHVyZ2VudGx5LCBlLmcuIGxp a2UgUkFTIGV2ZW50cywKcGxhdGZvcm0gb3Zlci10ZW1wZXJhdHVyZSBvciB0aGUgcmVib290IHdh dGNoZG9nIGlzIGFib3V0IHRvIGZpcmUuCgpJIGNhbid0IHRoaW5rIG9mIGFueXRoaW5nIHRoYXQg ZmlybXdhcmUgd291bGQga25vdyBhYm91dCwgdGhhdCBhIGd1ZXN0IG5lZWRzIHRvIGtub3cuIEl0 CnZpb2xhdGVzIHRoZSBpc29sYXRpb24gYW5kIGFic3RyYWN0aW9uIHRoYXQgcnVubmluZyBzdHVm ZiBpbiBhIGd1ZXN0IGlzIGFsbCBhYm91dCEKCgpSQVMgZXZlbnRzIGNvbWUgdGhlIGNsb3Nlc3Qu IEZvciBSQVMgZXZlbnRzIHRoZSBob3N0IGhhcyB0byBoYW5kbGUgdGhlIGVycm9yIGZpcnN0LCB0 aGVuCml0IG5vdGlmaWVzIHRoZSBWTU0gbGlrZSBsaW51eCB3b3VsZCBmb3IgYW55IHVzZXItc3Bh Y2UgcHJvY2Vzcy4gVGhlIFZNTSBjYW4gdGhlbiwgYXQgaXRzCm9wdGlvbiwgcmVwbGF5IHRoZSBl dmVudCBpbnRvIHRoZSBndWVzdCB1c2luZyB3aGF0ZXZlciBtZWNoYW5pc20gaXQgbGlrZXMuClRo aXMgZGVjb3VwbGluZyBpcyBpbXBvcnRhbnQgdG8gZW5zdXJlIHRoZSBWTU0gZG9lcyBub3QgbmVl ZCB0byBrbm93IGhvdyB0aGUgaG9zdCBsZWFybnMKYWJvdXQgUkFTIGVycm9ycywgYW5kIGhhcyBm cmVlIGNob2ljZSBvdmVyIGhvdyBpdCB0ZWxscyB0aGUgZ3Vlc3QuCgoKPj4+IFRoZQo+Pj4gcHJp bWFyeSByZWFzb24gaXMgd2Ugd2FudCB0byB1c2UgU0RFSSB0byBkZWxpdmVyIHRoZSBhc3luY2hy b25vdXMgcGFnZSBmYXVsdAo+Pj4gbm90aWZpY2F0aW9uIGZyb20gaG9zdCB0byBndWVzdC4KPj4K Pj4gQXMgYW4gTk1JPyEgWXVjayEKPj4gVGhlIFNERUkgaGFuZGxlciByZWFkcyBtZW1vcnksIHlv dSdkIG5lZWQgdG8gc3RvcCBpdCBiZWluZyByZS1lbnRyYW50LiBJdCBleGl0cyB0aHJvdWdoCj4+ IHRoZSBJUlEgdmVjdG9yLCAod2hpY2ggaXMgbmVjZXNzYXJ5IGZvciBmb3J3YXJkLXByb2dyZXNz IGdpdmVuIGEgc3luY2hyb25vdXMgUkFTIGV2ZW50LAo+PiBhbmQgZm9yIEtWTSB0byB0cmlnZ2Vy IGd1ZXN0LWV4aXQgYmVmb3JlIHRoZSAncmVhbCcgd29yayB0aGF0IGlzIG9mZmxvYWRlZCB0byBh biBpcnEKPj4gaGFuZGxlciBjYW4gcnVuKSwgaXRzIGdvaW5nIHRvIGJlICdmdW4nIHRvIGhhdmUg YW55IGd1YXJhbnRlZSBvZiBmb3J3YXJkLXByb2dyZXNzIGlmIHRoaXMKPj4gaXMgaW52b2x2ZWQg d2l0aCBzdGFnZTIuCgo+IFllYWgsIEl0J3Mgc29tZXRoaW5nIHNpbWlsYXIgdG8gTk1JLgoKQWFy Y2g2NCBkb2Vzbid0IGRlZmluZSBhbiBOTUksIGJ1dCB3ZSB1c2UgdGhlIHRlcm0gZm9yIGFueXRo aW5nIHRoYXQgaW50ZXJydXB0cyBJUlEtbWFza2VkCmNvZGUuIFlvdSB3YW50IHRvIHNjaGVkdWxl KCksIHdoaWNoIHlvdSBjYW4ndCBkbyBmcm9tIGFuIE5NSS4KCgo+IFRoZSBub3RpZmljYXRpb24g KHNpZ25hbCkgaGFzIHRvIGJlIGRlbGl2ZXJlZCBpbiBzeW5jaHJvbm91cyBtb2RlLgoKSGVoLCBz byB5b3UncmUgdXNpbmcgU0RFSSB0byBnZXQgaW50byB0aGUgSVJRIGhhbmRsZXIgc3luY2hyb25v dXNseSwgc28geW91IGNhbgpyZXNjaGVkdWxlLiBZb3UgZG9uJ3QgYWN0dWFsbHkgd2FudCB0aGUg Tk1JIHByb3BlcnRpZXMsIG9ubHkgdGhlIHNvZnR3YXJlIGRlZmluZWQKc3luY2hyb25vdXMgZXhj ZXB0aW9uLgoKCj4gWWVzLCBUaGUgU0RFSSBzcGVjaWZpY2F0aW9uIGFscmVhZHkgbWVudGlvbmVk Cj4gdGhpczogdGhlIGNsaWVudCBoYW5kbGVyIHNob3VsZCBoYXZlIGFsbCByZXF1aXJlZCByZXNv dXJjZXMgaW4gcGxhY2UgYmVmb3JlCj4gdGhlIGhhbmRsZXIgaXMgZ29pbmcgdG8gcnVuLiBIb3dl dmVyLCBJIGRvbid0IHNlZSBpdCdzIGEgcHJvYmxlbSBzbyBmYXIuCgpXaGF0IGlmIHRoZXkgYXJl IHN3YXBwZWQgb3V0PyBUaGlzIHRoaW5nIGJlY29tZXMgcmUtZW50cmFudCAuLi4gd2hpY2ggdGhl IHNwZWMgZm9yYmlkcy4KVGhlIGhvc3QgaGFzIG5vIGNsdWUgd2hhdCBpcyBpbiBndWVzdCBtZW1v cnkuCgoKPiBMZXRzIHdhaXQgYW5kIHNlZSBpZiBpdCdzIGEgcmVhbCBpc3N1ZSB1bnRpbCBJIHBv c3QgdGhlIFJGQyBwYXRjaHNldCA6KQoKSXRzIG5vdCByZWFsbHkgYSB0cnkgaXQgYW5kIHNlZSB0 aGluZyEKClsuLi5dCgo+Pj4gSXQgc2VlbXMgdGhhdCBUUkYgKFRydXN0ZWQgRmlybXdhcmUpIGlz IHRoZSBvbmx5IGZpcm13YXJlIHdpdGggU0RFSSBzZXJ2aWNlCj4+PiBpbXBsZW1lbnRlZCBhbmQg c3VwcG9ydGVkLgo+Pgo+PiBUaGlzIHByb2plY3QgY2FsbHMgaXRzZWxmIFRGLUEuIEFURiBpcyB0 aGUgb3RoZXIgd2lkZWx5IHVzZWQgbmFtZS4gKEkndmUgbmV2ZXIgc2VlbiBUUkYKPj4gYmVmb3Jl KQo+Pgo+IAo+IFllYWgsIEkgbXVzdCBoYXZlIHByb3ZpZGVkIHdyb25nIG5hbWUuIEhlcmUgaXMg dGhlIGdpdCByZXBvIEkgd2FzCj4gbG9va2luZyBpbnRvOgo+IAo+IMKgwqAgaHR0cHM6Ly9naXRo dWIuY29tL0FSTS1zb2Z0d2FyZS9hcm0tdHJ1c3RlZC1maXJtd2FyZQo+IAo+Pgo+Pj4gSWYgc28s IGRvZXMgaXQgbWVhbiBJIG5lZWQgdG8gaW5zdGFsbCBUUkYgb24gbXkgYmFyZSBtZXRhbCBtYWNo aW5lPwo+Pj4gSSdtIHdhbmRlcmluZyBob3cgaXQgY2FuIGJlIGluc3RhbGxlZCBhbmQgbm90IHN1 cmUgaWYKPj4+IHRoZXJlIGlzIGFueSBkb2N1bWVudCBhYm91dCB0aGlzLgo+Pgo+PiBGaXJtd2Fy ZSBzaG91bGQgY29tZSB3aXRoIHRoZSBwbGF0Zm9ybS4gWW91J2QgbmVlZCB0byBrbm93IGludHJp Y2F0ZSBkZXRhaWxzIGFib3V0IHBvd2VyCj4+IG1hbmFnZW1lbnQgYW5kIGluaXRpYWxpc2luZyBw YXJ0cyBvZiB0aGUgU29DIHRvIHBvcnQgaXQuCj4+Cj4+IEFURiBoYXMgYSBwb3J0IGZvciB0aGUg ZmFzdC1tb2RlbC9mb3VuZGF0aW9uIG1vZGVsLiBJIHRlc3QgdGhpcyB3aXRoIEFURiBpbiB0aGUg ZmFzdC1tb2RlbC4KCj4gSSBoYXZlIG5vIGlkZWEgb2YgZmFzdC1tb2RlbCBhbmQgZm91bmRhdGlv biBtb2RlbCwgYW5kIEkgZ290IG5vdGhpbmcKPiBmcm9tIGJlbG93IGNvbW1hbmRzIGluIEFURiBn aXQgcmVwbzoKCldoYXQgYXJlIHlvdSB1c2luZyB0byB0ZXN0IHlvdXIga2VybmVsIGNoYW5nZXM/ IENhbiBpdCBydW4gRUwzIHNvZnR3YXJlLgoKVGhlIGZvdW5kYXRpb24gbW9kZWwgY2FuIGJlIGRv d25sb2FkZWQgaGVyZToKaHR0cHM6Ly9kZXZlbG9wZXIuYXJtLmNvbS90b29scy1hbmQtc29mdHdh cmUvc2ltdWxhdGlvbi1tb2RlbHMvZml4ZWQtdmlydHVhbC1wbGF0Zm9ybXMvYXJtLWVjb3N5c3Rl bS1tb2RlbHMKCgo+IFtnd3NoYW5AbG9jYWxob3N0IGF0Zl0kIGdpdCBncmVwIC1pIGZhc3QgfCBn cmVwIC1pIG1vZGVsCj4gW2d3c2hhbkBsb2NhbGhvc3QgYXRmXSQgZ2l0IGdyZXAgLWkgZnVuZGF0 aW9uIHwgZ3JlcCAtaSBtb2RlbAoKVGhlIHR5cG8gaXMgd2h5LiBTd2FwOgoKfCBtb3JzZUBlZ2xv bjp+L21vZGVsL21wYW0vYXJtLXRydXN0ZWQtZmlybXdhcmUkIGdpdCBncmVwIC1pIGZvdW5kYXRp b24gfCBncmVwIG1vZGVsCnwgZmR0cy9mdnAtZm91bmRhdGlvbi1naWN2Mi1wc2NpLmR0czogICAg IG1vZGVsID0gIkZWUCBGb3VuZGF0aW9uIjsKfCBmZHRzL2Z2cC1mb3VuZGF0aW9uLWdpY3YzLXBz Y2kuZHRzOiAgICAgbW9kZWwgPSAiRlZQIEZvdW5kYXRpb24iOwoKJ2Z2cCcgaXMgdGhlIG5hbWUg YXRmIHVzZXMgZm9yIHRoZSBwbGF0Zm9ybS4KClRoZSBydW5lcyBJIGhhZCB0byBidWlsZCBpdCB3 aXRoIFNERUkgc3VwcG9ydCBhcmU6CnwgbWFrZSBERUJVRz0xIFBMQVQ9ZnZwIFNERUlfU1VQUE9S VD0xIEVMM19FWENFUFRJT05fSEFORExJTkc9MSBmaXAgYWxsCgoKCj4+PiBCZXNpZGVzLCBHSEVT IHNlZW1zIHRoZSBvbmx5IHVzZXIgb2YgU0RFSSBpbiB0aGUgbGludXgga2VybmVsLiBJZiBzbywg aXMKPj4+IHRoZXJlIGEgd2F5IHRvIGluamVjdCB0aGUgcmVsZXZhbnQgZXJyb3JzIGFuZCBob3c/ Cj4+Cj4+IEl0IGlzLCBhbmQgdW5mb3J0dW5hdGVseSBsYXN0IHRpbWUgSSBjaGVja2VkLCB1cHN0 cmVhbSBBVEYgZG9lc24ndCBoYXZlIHRoZSBmaXJtd2FyZS1maXJzdAo+PiBzdHVmZiBmb3IgdGhp cy4gSXRzIHRvbyBTb0Mgc3BlY2lmaWMuCj4+Cj4+IEkgdGVzdCB0aGlzIGJ5IGJpbmRpbmcgdGhl IGZhc3QtbW9kZWwncyBTUDgwNCBvbmUtc2hvdCBpbnRlcnJ1cHQgY29udHJvbGxlciBhcyBhbiBl dmVudCwKPj4gdGhlbiBwbHVtYmluZyB0aGF0IGludG8gR0hFUy4gSXRzIG1vcmUgb2YgY2FzZS1z dHVkeSBpbiB3aHkgdGhlIGJpbmRhYmxlLWlycSBzdHVmZiBpcwo+PiBuYXN0eSB0aGFuIHVzYWJs ZSBlcnJvciBpbmplY3Rpb24gbWV0aG9kLgo+PiBJIGNhbiBwdXNoIHRoZSBtb3N0IHJlY2VudGx5 IHJlYmFzZWQgdmVyc2lvbiBvZiB0aGlzLCBidXQgeW91J2QgYWxzbyBuZWVkIHRvIGhhY2stdXAg YQo+PiBIRVNUIHRhYmxlIHdpdGggR0hFUyBlbnRyaWVzIHRvIGFjdHVhbGx5IGdldCBpdCBydW5u aW5nLgo+PiA+IEJ1dCwgdW5sZXNzIHlvdSBhcmUgd29ya2luZyBvbiBFTDMgZmlybWFyZSwgb3Ig YSBWTU0sIEkgZG9uJ3QgdGhpbmsgU0RFSSBpcyB3aGF0IHlvdQo+PiB3YW50Lgo+PiBXaGF0IHBy b2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/Cgo+IFRoYW5rcyBmb3IgdGhlIGluZm9ybWF0 aW9uLiBJdCBzZWVtcyBJIGFsc28gbmVlZCB0byBlbXVsYXRlIFNERUkgZXZlbnQgYnkKPiBteXNl bGYgaW4gb3JkZXIgdG8gdGVzdCBpdC4gVGhlIGJlc3Qgd2F5IGZvciBtZSBpcyB0byBpbmplY3Qg U0RFSSBldmVudAo+IGZyb20gS1ZNLiBCeSB0aGUgd2F5LCB0aGUgY29kZSB5b3UgaGFkIGlzIHBh cnQgb2YgdGhlIGZpcm13YXJlIHVzZWQgYnkKPiBiYXJlLW1ldGFsIG1hY2hpbmUgb3IgVk0/Cj4g Cj4gVGhlIGlzc3VlIHdlIHdhbnQgdG8gcmVzb2x2ZSBpcyB0byBkZWxpdmVyIGFzeW5jIHBhZ2Ug ZmF1bHQgbm90aWZpY2F0aW9uCj4gYXMgbWVudGlvbmVkIGFib3ZlLiBQbGVhc2UgbGV0IG1lIGtu b3cgaWYgdGhlcmUgYXJlIG1vcmUgY29uY2VybnMgOikKClJlLWVudHJhbmNlIGFuZCBmb3J3YXJk IHByb2dyZXNzLgoKSSdkIGxvdmUgdG8ga25vdyB3aHkgYWRkaXRpb25hbCBjb21wbGV4aXR5IHRv IHRlbGwgdGhlIGd1ZXN0IHRoaXMgc3R1ZmYgaXMgYmV0dGVyIHRoYW4gdGhlCnR3byBhcHByb2Fj aGVzIGRlc2NyaWJlZCBhYm92ZS4KCgpUaGFua3MsCgpKYW1lcwoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxp c3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=