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 lists.gnu.org (lists.gnu.org [209.51.188.17]) (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 6004AC433F5 for ; Fri, 25 Feb 2022 15:19:02 +0000 (UTC) Received: from localhost ([::1]:46482 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nNcN3-0000nX-5N for qemu-devel@archiver.kernel.org; Fri, 25 Feb 2022 10:19:01 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35302) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nNcIp-0006i1-LY for qemu-devel@nongnu.org; Fri, 25 Feb 2022 10:14:39 -0500 Received: from smtp-fw-6002.amazon.com ([52.95.49.90]:1239) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nNcIm-0006kx-9x for qemu-devel@nongnu.org; Fri, 25 Feb 2022 10:14:38 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1645802077; x=1677338077; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to; bh=5RUU43EoScVv75OhCVvSDytOAn3CftC0G3KumsxymFQ=; b=h+C+5QviUGKvPOdykzZWT8GYXtzWPW/JFJQEseYAdn49/hvgqVOPOOUZ 5d8IcwMdCT8ZtFVrTiuWfFjnRSuXWIB0i4XLsgBTKvKw+k4cOrzu+k9GE k9NKIl+7RLWKrlgaGF5/GtUl/FU77Sait/Jc9SRVoxpiS/2SAYGNDo1G/ c=; X-IronPort-AV: E=Sophos;i="5.90,136,1643673600"; d="scan'208,217";a="179877754" Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-iad-1a-8691d7ea.us-east-1.amazon.com) ([10.43.8.2]) by smtp-border-fw-6002.iad6.amazon.com with ESMTP; 25 Feb 2022 15:14:23 +0000 Received: from EX13MTAUWC002.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan2.iad.amazon.com [10.40.163.34]) by email-inbound-relay-iad-1a-8691d7ea.us-east-1.amazon.com (Postfix) with ESMTPS id 6A8F8C0ADE; Fri, 25 Feb 2022 15:14:16 +0000 (UTC) Received: from EX13D20UWC001.ant.amazon.com (10.43.162.244) by EX13MTAUWC002.ant.amazon.com (10.43.162.240) with Microsoft SMTP Server (TLS) id 15.0.1497.28; Fri, 25 Feb 2022 15:14:11 +0000 Received: from [0.0.0.0] (10.43.160.150) by EX13D20UWC001.ant.amazon.com (10.43.162.244) with Microsoft SMTP Server (TLS) id 15.0.1497.28; Fri, 25 Feb 2022 15:14:05 +0000 Content-Type: multipart/alternative; boundary="------------HvDIABrsVwix3c0YbFT95dSM" Message-ID: <5b4bf5f8-07b1-00f5-12e2-365fd1e588ea@amazon.com> Date: Fri, 25 Feb 2022 16:14:03 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Subject: Re: [PATCH v4] virt: vmgenid: introduce driver for reinitializing RNG on VM fork To: Ard Biesheuvel CC: "Jason A. Donenfeld" , KVM list , Linux Crypto Mailing List , , Linux Kernel Mailing List , , , =?UTF-8?Q?Daniel_P=2e_Berrang=c3=a9?= , "Colm MacCarthaigh" , Dexuan Cui , "Woodhouse, David" , Eric Biggers , Eduardo Habkost , Greg Kroah-Hartman , Haiyang Zhang , "Igor Mammedov" , Jann Horn , KY Srinivasan , Laszlo Ersek , Dominik Brodowski , "Michael S. Tsirkin" , "QEMU Developers" , "Weiss, Radu" , Stephen Hemminger , "Theodore Y. Ts'o" , Wei Liu References: <20220225124848.909093-1-Jason@zx2c4.com> <05c9f2a9-accb-e0de-aac7-b212adac7eb2@amazon.com> From: Alexander Graf In-Reply-To: X-Originating-IP: [10.43.160.150] X-ClientProxiedBy: EX13D15UWA002.ant.amazon.com (10.43.160.218) To EX13D20UWC001.ant.amazon.com (10.43.162.244) Precedence: Bulk Received-SPF: pass client-ip=52.95.49.90; envelope-from=prvs=048cb90a0=graf@amazon.de; helo=smtp-fw-6002.amazon.com X-Spam_score_int: -40 X-Spam_score: -4.1 X-Spam_bar: ---- X-Spam_report: (-4.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" --------------HvDIABrsVwix3c0YbFT95dSM MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Ck9uIDI1LjAyLjIyIDE2OjAzLCBBcmQgQmllc2hldXZlbCB3cm90ZToKPiBPbiBGcmksIDI1IEZl YiAyMDIyIGF0IDE0OjU4LCBBbGV4YW5kZXIgR3JhZjxncmFmQGFtYXpvbi5jb20+ICB3cm90ZToK Pj4KPj4gT24gMjUuMDIuMjIgMTM6NDgsIEphc29uIEEuIERvbmVuZmVsZCB3cm90ZToKPj4+IFZN IEdlbmVyYXRpb24gSUQgaXMgYSBmZWF0dXJlIGZyb20gTWljcm9zb2Z0LCBkZXNjcmliZWQgYXQK Pj4+IDxodHRwczovL2dvLm1pY3Jvc29mdC5jb20vZndsaW5rLz9MaW5rSWQ9MjYwNzA5PiwgYW5k IHN1cHBvcnRlZCBieQo+Pj4gSHlwZXItViBhbmQgUUVNVS4gSXRzIHVzYWdlIGlzIGRlc2NyaWJl ZCBpbiBNaWNyb3NvZnQncyBSTkcgd2hpdGVwYXBlciwKPj4+IDxodHRwczovL2FrYS5tcy93aW4x MHJuZz4sIGFzOgo+Pj4KPj4+ICAgICAgIElmIHRoZSBPUyBpcyBydW5uaW5nIGluIGEgVk0sIHRo ZXJlIGlzIGEgcHJvYmxlbSB0aGF0IG1vc3QKPj4+ICAgICAgIGh5cGVydmlzb3JzIGNhbiBzbmFw c2hvdCB0aGUgc3RhdGUgb2YgdGhlIG1hY2hpbmUgYW5kIGxhdGVyIHJld2luZAo+Pj4gICAgICAg dGhlIFZNIHN0YXRlIHRvIHRoZSBzYXZlZCBzdGF0ZS4gVGhpcyByZXN1bHRzIGluIHRoZSBtYWNo aW5lIHJ1bm5pbmcKPj4+ICAgICAgIGEgc2Vjb25kIHRpbWUgd2l0aCB0aGUgZXhhY3Qgc2FtZSBS Tkcgc3RhdGUsIHdoaWNoIGxlYWRzIHRvIHNlcmlvdXMKPj4+ICAgICAgIHNlY3VyaXR5IHByb2Js ZW1zLiAgVG8gcmVkdWNlIHRoZSB3aW5kb3cgb2YgdnVsbmVyYWJpbGl0eSwgV2luZG93cwo+Pj4g ICAgICAgMTAgb24gYSBIeXBlci1WIFZNIHdpbGwgZGV0ZWN0IHdoZW4gdGhlIFZNIHN0YXRlIGlz IHJlc2V0LCByZXRyaWV2ZQo+Pj4gICAgICAgYSB1bmlxdWUgKG5vdCByYW5kb20pIHZhbHVlIGZy b20gdGhlIGh5cGVydmlzb3IsIGFuZCByZXNlZWQgdGhlIHJvb3QKPj4+ICAgICAgIFJORyB3aXRo IHRoYXQgdW5pcXVlIHZhbHVlLiAgVGhpcyBkb2VzIG5vdCBlbGltaW5hdGUgdGhlCj4+PiAgICAg ICB2dWxuZXJhYmlsaXR5LCBidXQgaXQgZ3JlYXRseSByZWR1Y2VzIHRoZSB0aW1lIGR1cmluZyB3 aGljaCB0aGUgUk5HCj4+PiAgICAgICBzeXN0ZW0gd2lsbCBwcm9kdWNlIHRoZSBzYW1lIG91dHB1 dHMgYXMgaXQgZGlkIGR1cmluZyBhIHByZXZpb3VzCj4+PiAgICAgICBpbnN0YW50aWF0aW9uIG9m IHRoZSBzYW1lIFZNIHN0YXRlLgo+Pj4KPj4+IExpbnV4IGhhcyB0aGUgc2FtZSBpc3N1ZSwgYW5k IGdpdmVuIHRoYXQgdm1nZW5pZCBpcyBzdXBwb3J0ZWQgYWxyZWFkeSBieQo+Pj4gbXVsdGlwbGUg aHlwZXJ2aXNvcnMsIHdlIGNhbiBpbXBsZW1lbnQgbW9yZSBvciBsZXNzIHRoZSBzYW1lIHNvbHV0 aW9uLgo+Pj4gU28gdGhpcyBjb21taXQgd2lyZXMgdXAgdGhlIHZtZ2VuaWQgQUNQSSBub3RpZmlj YXRpb24gdG8gdGhlIFJORydzIG5ld2x5Cj4+PiBhZGRlZCBhZGRfdm1mb3JrX3JhbmRvbW5lc3Mo KSBmdW5jdGlvbi4KPj4+Cj4+PiBJdCBjYW4gYmUgdXNlZCBmcm9tIHFlbXUgdmlhIHRoZSBgLWRl dmljZSB2bWdlbmlkLGd1aWQ9YXV0b2AgcGFyYW1ldGVyLgo+Pj4gQWZ0ZXIgc2V0dGluZyB0aGF0 LCB1c2UgYHNhdmV2bWAgaW4gdGhlIG1vbml0b3IgdG8gc2F2ZSB0aGUgVk0gc3RhdGUsCj4+PiB0 aGVuIHF1aXQgUUVNVSwgc3RhcnQgaXQgYWdhaW4sIGFuZCB1c2UgYGxvYWR2bWAuIFRoYXQgd2ls bCB0cmlnZ2VyIHRoaXMKPj4+IGRyaXZlcidzIG5vdGlmeSBmdW5jdGlvbiwgd2hpY2ggaGFuZHMg dGhlIG5ldyBVVUlEIHRvIHRoZSBSTkcuIFRoaXMgaXMKPj4+IGRlc2NyaWJlZCBpbjxodHRwczov L2dpdC5xZW11Lm9yZy8/cD1xZW11LmdpdDthPWJsb2I7Zj1kb2NzL3NwZWNzL3ZtZ2VuaWQudHh0 Pi4KPj4+IEFuZCB0aGVyZSBhcmUgaG9va3MgZm9yIHRoaXMgaW4gbGlidmlydCBhcyB3ZWxsLCBk ZXNjcmliZWQgaW4KPj4+IDxodHRwczovL2xpYnZpcnQub3JnL2Zvcm1hdGRvbWFpbi5odG1sI2dl bmVyYWwtbWV0YWRhdGE+Lgo+Pj4KPj4+IE5vdGUsIGhvd2V2ZXIsIHRoYXQgdGhlIHRyZWF0bWVu dCBvZiB0aGlzIGFzIGEgVVVJRCBpcyBjb25zaWRlcmVkIHRvIGJlCj4+PiBhbiBhY2NpZGVudGFs IFFFTVUgbnVhbmNlLCBwZXIKPj4+IDxodHRwczovL2dpdGh1Yi5jb20vbGliZ3Vlc3Rmcy92aXJ0 LXYydi9ibG9iL21hc3Rlci9kb2NzL3ZtLWdlbmVyYXRpb24taWQtYWNyb3NzLWh5cGVydmlzb3Jz LnR4dD4sCj4+PiBzbyB0aGlzIGRyaXZlciBzaW1wbHkgdHJlYXRzIHRoZXNlIGJ5dGVzIGFzIGFu IG9wYXF1ZSAxMjgtYml0IGJpbmFyeQo+Pj4gYmxvYiwgYXMgcGVyIHRoZSBzcGVjLiBUaGlzIGRv ZXNuJ3QgcmVhbGx5IG1ha2UgYSBkaWZmZXJlbmNlIGFueXdheSwKPj4+IGNvbnNpZGVyaW5nIHRo YXQncyBob3cgaXQgZW5kcyB1cCB3aGVuIGhhbmRlZCB0byB0aGUgUk5HIGluIHRoZSBlbmQuCj4+ Pgo+Pj4gQ2M6IEFkcmlhbiBDYXRhbmdpdTxhZHJpYW5AcGFyaXR5LmlvPgo+Pj4gQ2M6IERhbmll bCBQLiBCZXJyYW5nw6k8YmVycmFuZ2VAcmVkaGF0LmNvbT4KPj4+IENjOiBEb21pbmlrIEJyb2Rv d3NraTxsaW51eEBkb21pbmlrYnJvZG93c2tpLm5ldD4KPj4+IENjOiBBcmQgQmllc2hldXZlbDxh cmRiQGtlcm5lbC5vcmc+Cj4+PiBDYzogR3JlZyBLcm9haC1IYXJ0bWFuPGdyZWdraEBsaW51eGZv dW5kYXRpb24ub3JnPgo+Pj4gUmV2aWV3ZWQtYnk6IExhc3psbyBFcnNlazxsZXJzZWtAcmVkaGF0 LmNvbT4KPj4+IFNpZ25lZC1vZmYtYnk6IEphc29uIEEuIERvbmVuZmVsZDxKYXNvbkB6eDJjNC5j b20+Cj4+PiAtLS0KPiAuLi4KPj4+ICsKPj4+ICsgICAgICAgZGV2aWNlLT5kcml2ZXJfZGF0YSA9 IHN0YXRlOwo+Pj4gKwo+Pj4gK291dDoKPj4+ICsgICAgICAgQUNQSV9GUkVFKHBhcnNlZC5wb2lu dGVyKTsKPj4+ICsgICAgICAgcmV0dXJuIHJldDsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIHZv aWQgdm1nZW5pZF9hY3BpX25vdGlmeShzdHJ1Y3QgYWNwaV9kZXZpY2UgKmRldmljZSwgdTMyIGV2 ZW50KQo+Pj4gK3sKPj4+ICsgICAgICAgc3RydWN0IHZtZ2VuaWRfc3RhdGUgKnN0YXRlID0gYWNw aV9kcml2ZXJfZGF0YShkZXZpY2UpOwo+Pj4gKyAgICAgICB1OCBvbGRfaWRbVk1HRU5JRF9TSVpF XTsKPj4+ICsKPj4+ICsgICAgICAgbWVtY3B5KG9sZF9pZCwgc3RhdGUtPnRoaXNfaWQsIHNpemVv ZihvbGRfaWQpKTsKPj4+ICsgICAgICAgbWVtY3B5KHN0YXRlLT50aGlzX2lkLCBzdGF0ZS0+bmV4 dF9pZCwgc2l6ZW9mKHN0YXRlLT50aGlzX2lkKSk7Cj4+PiArICAgICAgIGlmICghbWVtY21wKG9s ZF9pZCwgc3RhdGUtPnRoaXNfaWQsIHNpemVvZihvbGRfaWQpKSkKPj4+ICsgICAgICAgICAgICAg ICByZXR1cm47Cj4+PiArICAgICAgIGFkZF92bWZvcmtfcmFuZG9tbmVzcyhzdGF0ZS0+dGhpc19p ZCwgc2l6ZW9mKHN0YXRlLT50aGlzX2lkKSk7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgYWNwaV9kZXZpY2VfaWQgdm1nZW5pZF9pZHNbXSA9IHsKPj4+ICsgICAgICAgeyAi Vk1HRU5JRCIsIDAgfSwKPj4+ICsgICAgICAgeyAiUUVNVVZHSUQiLCAwIH0sCj4+Cj4+IEFjY29y ZGluZyB0byB0aGUgVk1HZW5JRCBzcGVjWzFdLCB5b3UgY2FuIG9ubHkgcmVseSBvbiBfQ0lEIGFu ZCBfREROIGZvcgo+PiBtYXRjaGluZy4gVGhleSBib3RoIGNvbnRhaW4gIlZNX0dlbl9Db3VudGVy Ii4gVGhlIGxpc3QgYWJvdmUgY29udGFpbnMKPj4gX0hJRCB2YWx1ZXMgd2hpY2ggYXJlIG5vdCBh biBvZmZpY2lhbCBpZGVudGlmaWVyIGZvciB0aGUgVk1HZW5JRCBkZXZpY2UuCj4+Cj4+IElJUkMg dGhlIEFDUEkgZGV2aWNlIG1hdGNoIGxvZ2ljIGRvZXMgbWF0Y2ggX0NJRCBpbiBhZGRpdGlvbiB0 byBfSElELgo+PiBIb3dldmVyLCBpdCBpcyBsaW1pdGVkIHRvIDggY2hhcmFjdGVycy4gTGV0IG1l IHBhc3RlIGFuIGV4cGVyaW1lbnRhbAo+PiBoYWNrIEkgZGlkIGJhY2sgdGhlbiB0byBkbyB0aGUg X0NJRCBtYXRjaGluZyBpbnN0ZWFkLgo+Pgo+PiBbMV0KPj4gaHR0cHM6Ly9kb3dubG9hZC5taWNy b3NvZnQuY29tL2Rvd25sb2FkLzMvMS9DLzMxQ0ZDMzA3LTk4Q0EtNENBNS05MTRDLUQ5NzcyNjkx RTIxNC9WaXJ0dWFsTWFjaGluZUdlbmVyYXRpb25JRC5kb2N4Cj4+Cj4gSSB0aGluayBtYXRjaGlu ZyBvbiB0aGUgSElEcyBvZiB0d28ga25vd24gZXhpc3RpbmcgaW1wbGVtZW50YXRpb25zIGlzCj4g ZmluZSwgYXMgb3Bwb3NlZCB0byBtYXRjaGluZyBvbiB0aGUgKGJyb2tlbikgQ0lEIG9mIGFueSBp bXBsZW1lbnRhdGlvbgo+IHRoYXQgY2xhaW1zIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBpdC4gQW5k IGR1bXBpbmcgcmFuZG9tIHN0cmluZ3MgaW50bwo+IHRoZSBfQ0lEIHByb3BlcnR5IGRvZXNuJ3Qg bWVzaCB3ZWxsIHdpdGggdGhlIEFDUEkgc3BlYyBlaXRoZXIsIHdoaWNoCj4gaXMgd2h5IHdlIGRv bid0IGN1cnJlbnRseSBzdXBwb3J0IGl0Lgo+Cj4gV2UgY291bGQgc3RpbGwgY2hlY2sgX0RETiBp ZiB3ZSB3YW50ZWQgdG8sIGJ1dCBJIGRvbid0IHRoaW5rIHRoaXMgaXMKPiBuZWNlc3NhcnkuIE90 aGVyIGltcGxlbWVudGF0aW9ucyB0aGF0IHdhbnQgdG8gdGFyZ2V0IGhpcyBkcml2ZXIKPiBleHBs aWNpdGx5IGNhbiBhbHdheXMgcHV0IFZNR0VOSUQgb3IgUUVNVVZHSUQgaW50byB0aGUgX0NJRC4K CgpObywgdGhleSBjYW4gbm90LiBUaGUgc3BlYyBleHBsaWNpdGx5IGFsc28gc3RhdGVzIHRoYXQg X0hJRCBoYXMgdG8gYmUgCnVuaXF1ZSBwZXIgaHlwZXJ2aXNvcjoKCiJBIGh5cGVydmlzb3IgbXVz dCBhbHNvIGV4cG9zZSBhbiBvYmplY3QgYmVsb3cgdGhlIGRldmljZSwgbmFtZWQgIl9ISUQiLCAK d2hpY2ggaXMgdGhlICJoYXJkd2FyZSBJRC4iIFRoaXMgdmFsdWUgaXMgaHlwZXJ2aXNvciBzcGVj aWZpYyBhbmQgbXVzdCAKYmUgZGlmZmVyZW50IGZvciBlYWNoIHZlbmRvci4gVGhlIFdpbmRvd3Mg Z2VuZXJhdGlvbiBJRCBndWVzdCBkcml2ZXIgCndpbGwgbG9hZCBvbiB0aGUgY29tcGF0aWJsZSBJ RCBvZiAiVk1fR2VuX0NvdW50ZXIiLCBzbyBpdCB3aWxsIGJlIApwcmVzZW50IHJlZ2FyZGxlc3Mg b2Ygd2hpY2ggaHlwZXJ2aXNvciBpdCBpcyBydW5uaW5nIG9uIHRvcCBvZiwgYXMgbG9uZyAKYXMg dGhhdCBoeXBlcnZpc29yIGZvbGxvd3MgdGhlIHJ1bGVzIGFib3ZlLiIKCgpBbGV4CgoKCkFtYXpv biBEZXZlbG9wbWVudCBDZW50ZXIgR2VybWFueSBHbWJICktyYXVzZW5zdHIuIDM4CjEwMTE3IEJl cmxpbgpHZXNjaGFlZnRzZnVlaHJ1bmc6IENocmlzdGlhbiBTY2hsYWVnZXIsIEpvbmF0aGFuIFdl aXNzCkVpbmdldHJhZ2VuIGFtIEFtdHNnZXJpY2h0IENoYXJsb3R0ZW5idXJnIHVudGVyIEhSQiAx NDkxNzMgQgpTaXR6OiBCZXJsaW4KVXN0LUlEOiBERSAyODkgMjM3IDg3OQoKCg== --------------HvDIABrsVwix3c0YbFT95dSM MIME-Version: 1.0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWw+CiAgPGhlYWQ+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+ PGJyPgogICAgPC9wPgogICAgPGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4Ij5PbiAyNS4wMi4y MiAxNjowMywgQXJkIEJpZXNoZXV2ZWwKICAgICAgd3JvdGU6PGJyPgogICAgPC9kaXY+CiAgICA8 YmxvY2txdW90ZSB0eXBlPSJjaXRlIgpjaXRlPSJtaWQ6Q0FNajFrWEdiUCtOR2pxTG5kUFM3RU9f c2F6eW9ON290NXNpQ1I1aFBUSmZOWVUyU2FRQG1haWwuZ21haWwuY29tIj4KICAgICAgPHByZSBj bGFzcz0ibW96LXF1b3RlLXByZSIgd3JhcD0iIj4KT24gRnJpLCAyNSBGZWIgMjAyMiBhdCAxNDo1 OCwgQWxleGFuZGVyIEdyYWYgPGEgY2xhc3M9Im1vei10eHQtbGluay1yZmMyMzk2RSIgaHJlZj0i bWFpbHRvOmdyYWZAYW1hem9uLmNvbSI+Jmx0O2dyYWZAYW1hem9uLmNvbSZndDs8L2E+IHdyb3Rl Ogo8L3ByZT4KICAgICAgPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+CiAgICAgICAgPHByZSBjbGFz cz0ibW96LXF1b3RlLXByZSIgd3JhcD0iIj4KCk9uIDI1LjAyLjIyIDEzOjQ4LCBKYXNvbiBBLiBE b25lbmZlbGQgd3JvdGU6CjwvcHJlPgogICAgICAgIDxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPgog ICAgICAgICAgPHByZSBjbGFzcz0ibW96LXF1b3RlLXByZSIgd3JhcD0iIj4KVk0gR2VuZXJhdGlv biBJRCBpcyBhIGZlYXR1cmUgZnJvbSBNaWNyb3NvZnQsIGRlc2NyaWJlZCBhdAo8YSBjbGFzcz0i bW96LXR4dC1saW5rLXJmYzIzOTZFIiBocmVmPSJodHRwczovL2dvLm1pY3Jvc29mdC5jb20vZnds aW5rLz9MaW5rSWQ9MjYwNzA5Ij4mbHQ7aHR0cHM6Ly9nby5taWNyb3NvZnQuY29tL2Z3bGluay8/ TGlua0lkPTI2MDcwOSZndDs8L2E+LCBhbmQgc3VwcG9ydGVkIGJ5Ckh5cGVyLVYgYW5kIFFFTVUu IEl0cyB1c2FnZSBpcyBkZXNjcmliZWQgaW4gTWljcm9zb2Z0J3MgUk5HIHdoaXRlcGFwZXIsCjxh IGNsYXNzPSJtb3otdHh0LWxpbmstcmZjMjM5NkUiIGhyZWY9Imh0dHBzOi8vYWthLm1zL3dpbjEw cm5nIj4mbHQ7aHR0cHM6Ly9ha2EubXMvd2luMTBybmcmZ3Q7PC9hPiwgYXM6CgogICAgIElmIHRo ZSBPUyBpcyBydW5uaW5nIGluIGEgVk0sIHRoZXJlIGlzIGEgcHJvYmxlbSB0aGF0IG1vc3QKICAg ICBoeXBlcnZpc29ycyBjYW4gc25hcHNob3QgdGhlIHN0YXRlIG9mIHRoZSBtYWNoaW5lIGFuZCBs YXRlciByZXdpbmQKICAgICB0aGUgVk0gc3RhdGUgdG8gdGhlIHNhdmVkIHN0YXRlLiBUaGlzIHJl c3VsdHMgaW4gdGhlIG1hY2hpbmUgcnVubmluZwogICAgIGEgc2Vjb25kIHRpbWUgd2l0aCB0aGUg ZXhhY3Qgc2FtZSBSTkcgc3RhdGUsIHdoaWNoIGxlYWRzIHRvIHNlcmlvdXMKICAgICBzZWN1cml0 eSBwcm9ibGVtcy4gIFRvIHJlZHVjZSB0aGUgd2luZG93IG9mIHZ1bG5lcmFiaWxpdHksIFdpbmRv d3MKICAgICAxMCBvbiBhIEh5cGVyLVYgVk0gd2lsbCBkZXRlY3Qgd2hlbiB0aGUgVk0gc3RhdGUg aXMgcmVzZXQsIHJldHJpZXZlCiAgICAgYSB1bmlxdWUgKG5vdCByYW5kb20pIHZhbHVlIGZyb20g dGhlIGh5cGVydmlzb3IsIGFuZCByZXNlZWQgdGhlIHJvb3QKICAgICBSTkcgd2l0aCB0aGF0IHVu aXF1ZSB2YWx1ZS4gIFRoaXMgZG9lcyBub3QgZWxpbWluYXRlIHRoZQogICAgIHZ1bG5lcmFiaWxp dHksIGJ1dCBpdCBncmVhdGx5IHJlZHVjZXMgdGhlIHRpbWUgZHVyaW5nIHdoaWNoIHRoZSBSTkcK ICAgICBzeXN0ZW0gd2lsbCBwcm9kdWNlIHRoZSBzYW1lIG91dHB1dHMgYXMgaXQgZGlkIGR1cmlu ZyBhIHByZXZpb3VzCiAgICAgaW5zdGFudGlhdGlvbiBvZiB0aGUgc2FtZSBWTSBzdGF0ZS4KCkxp bnV4IGhhcyB0aGUgc2FtZSBpc3N1ZSwgYW5kIGdpdmVuIHRoYXQgdm1nZW5pZCBpcyBzdXBwb3J0 ZWQgYWxyZWFkeSBieQptdWx0aXBsZSBoeXBlcnZpc29ycywgd2UgY2FuIGltcGxlbWVudCBtb3Jl IG9yIGxlc3MgdGhlIHNhbWUgc29sdXRpb24uClNvIHRoaXMgY29tbWl0IHdpcmVzIHVwIHRoZSB2 bWdlbmlkIEFDUEkgbm90aWZpY2F0aW9uIHRvIHRoZSBSTkcncyBuZXdseQphZGRlZCBhZGRfdm1m b3JrX3JhbmRvbW5lc3MoKSBmdW5jdGlvbi4KCkl0IGNhbiBiZSB1c2VkIGZyb20gcWVtdSB2aWEg dGhlIGAtZGV2aWNlIHZtZ2VuaWQsZ3VpZD1hdXRvYCBwYXJhbWV0ZXIuCkFmdGVyIHNldHRpbmcg dGhhdCwgdXNlIGBzYXZldm1gIGluIHRoZSBtb25pdG9yIHRvIHNhdmUgdGhlIFZNIHN0YXRlLAp0 aGVuIHF1aXQgUUVNVSwgc3RhcnQgaXQgYWdhaW4sIGFuZCB1c2UgYGxvYWR2bWAuIFRoYXQgd2ls bCB0cmlnZ2VyIHRoaXMKZHJpdmVyJ3Mgbm90aWZ5IGZ1bmN0aW9uLCB3aGljaCBoYW5kcyB0aGUg bmV3IFVVSUQgdG8gdGhlIFJORy4gVGhpcyBpcwpkZXNjcmliZWQgaW4gPGEgY2xhc3M9Im1vei10 eHQtbGluay1yZmMyMzk2RSIgaHJlZj0iaHR0cHM6Ly9naXQucWVtdS5vcmcvP3A9cWVtdS5naXQ7 YT1ibG9iO2Y9ZG9jcy9zcGVjcy92bWdlbmlkLnR4dCI+Jmx0O2h0dHBzOi8vZ2l0LnFlbXUub3Jn Lz9wPXFlbXUuZ2l0O2E9YmxvYjtmPWRvY3Mvc3BlY3Mvdm1nZW5pZC50eHQmZ3Q7PC9hPi4KQW5k IHRoZXJlIGFyZSBob29rcyBmb3IgdGhpcyBpbiBsaWJ2aXJ0IGFzIHdlbGwsIGRlc2NyaWJlZCBp bgo8YSBjbGFzcz0ibW96LXR4dC1saW5rLXJmYzIzOTZFIiBocmVmPSJodHRwczovL2xpYnZpcnQu b3JnL2Zvcm1hdGRvbWFpbi5odG1sI2dlbmVyYWwtbWV0YWRhdGEiPiZsdDtodHRwczovL2xpYnZp cnQub3JnL2Zvcm1hdGRvbWFpbi5odG1sI2dlbmVyYWwtbWV0YWRhdGEmZ3Q7PC9hPi4KCk5vdGUs IGhvd2V2ZXIsIHRoYXQgdGhlIHRyZWF0bWVudCBvZiB0aGlzIGFzIGEgVVVJRCBpcyBjb25zaWRl cmVkIHRvIGJlCmFuIGFjY2lkZW50YWwgUUVNVSBudWFuY2UsIHBlcgo8YSBjbGFzcz0ibW96LXR4 dC1saW5rLXJmYzIzOTZFIiBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbGliZ3Vlc3Rmcy92aXJ0 LXYydi9ibG9iL21hc3Rlci9kb2NzL3ZtLWdlbmVyYXRpb24taWQtYWNyb3NzLWh5cGVydmlzb3Jz LnR4dCI+Jmx0O2h0dHBzOi8vZ2l0aHViLmNvbS9saWJndWVzdGZzL3ZpcnQtdjJ2L2Jsb2IvbWFz dGVyL2RvY3Mvdm0tZ2VuZXJhdGlvbi1pZC1hY3Jvc3MtaHlwZXJ2aXNvcnMudHh0Jmd0OzwvYT4s CnNvIHRoaXMgZHJpdmVyIHNpbXBseSB0cmVhdHMgdGhlc2UgYnl0ZXMgYXMgYW4gb3BhcXVlIDEy OC1iaXQgYmluYXJ5CmJsb2IsIGFzIHBlciB0aGUgc3BlYy4gVGhpcyBkb2Vzbid0IHJlYWxseSBt YWtlIGEgZGlmZmVyZW5jZSBhbnl3YXksCmNvbnNpZGVyaW5nIHRoYXQncyBob3cgaXQgZW5kcyB1 cCB3aGVuIGhhbmRlZCB0byB0aGUgUk5HIGluIHRoZSBlbmQuCgpDYzogQWRyaWFuIENhdGFuZ2l1 IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstcmZjMjM5NkUiIGhyZWY9Im1haWx0bzphZHJpYW5AcGFy aXR5LmlvIj4mbHQ7YWRyaWFuQHBhcml0eS5pbyZndDs8L2E+CkNjOiBEYW5pZWwgUC4gQmVycmFu Z8OpIDxhIGNsYXNzPSJtb3otdHh0LWxpbmstcmZjMjM5NkUiIGhyZWY9Im1haWx0bzpiZXJyYW5n ZUByZWRoYXQuY29tIj4mbHQ7YmVycmFuZ2VAcmVkaGF0LmNvbSZndDs8L2E+CkNjOiBEb21pbmlr IEJyb2Rvd3NraSA8YSBjbGFzcz0ibW96LXR4dC1saW5rLXJmYzIzOTZFIiBocmVmPSJtYWlsdG86 bGludXhAZG9taW5pa2Jyb2Rvd3NraS5uZXQiPiZsdDtsaW51eEBkb21pbmlrYnJvZG93c2tpLm5l dCZndDs8L2E+CkNjOiBBcmQgQmllc2hldXZlbCA8YSBjbGFzcz0ibW96LXR4dC1saW5rLXJmYzIz OTZFIiBocmVmPSJtYWlsdG86YXJkYkBrZXJuZWwub3JnIj4mbHQ7YXJkYkBrZXJuZWwub3JnJmd0 OzwvYT4KQ2M6IEdyZWcgS3JvYWgtSGFydG1hbiA8YSBjbGFzcz0ibW96LXR4dC1saW5rLXJmYzIz OTZFIiBocmVmPSJtYWlsdG86Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmciPiZsdDtncmVna2hA bGludXhmb3VuZGF0aW9uLm9yZyZndDs8L2E+ClJldmlld2VkLWJ5OiBMYXN6bG8gRXJzZWsgPGEg Y2xhc3M9Im1vei10eHQtbGluay1yZmMyMzk2RSIgaHJlZj0ibWFpbHRvOmxlcnNla0ByZWRoYXQu Y29tIj4mbHQ7bGVyc2VrQHJlZGhhdC5jb20mZ3Q7PC9hPgpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBB LiBEb25lbmZlbGQgPGEgY2xhc3M9Im1vei10eHQtbGluay1yZmMyMzk2RSIgaHJlZj0ibWFpbHRv Okphc29uQHp4MmM0LmNvbSI+Jmx0O0phc29uQHp4MmM0LmNvbSZndDs8L2E+Ci0tLQo8L3ByZT4K ICAgICAgICA8L2Jsb2NrcXVvdGU+CiAgICAgIDwvYmxvY2txdW90ZT4KICAgICAgPHByZSBjbGFz cz0ibW96LXF1b3RlLXByZSIgd3JhcD0iIj4uLi4KPC9wcmU+CiAgICAgIDxibG9ja3F1b3RlIHR5 cGU9ImNpdGUiPgogICAgICAgIDxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPgogICAgICAgICAgPHBy ZSBjbGFzcz0ibW96LXF1b3RlLXByZSIgd3JhcD0iIj4rCisgICAgICAgZGV2aWNlLSZndDtkcml2 ZXJfZGF0YSA9IHN0YXRlOworCitvdXQ6CisgICAgICAgQUNQSV9GUkVFKHBhcnNlZC5wb2ludGVy KTsKKyAgICAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCB2bWdlbmlkX2FjcGlfbm90 aWZ5KHN0cnVjdCBhY3BpX2RldmljZSAqZGV2aWNlLCB1MzIgZXZlbnQpCit7CisgICAgICAgc3Ry dWN0IHZtZ2VuaWRfc3RhdGUgKnN0YXRlID0gYWNwaV9kcml2ZXJfZGF0YShkZXZpY2UpOworICAg ICAgIHU4IG9sZF9pZFtWTUdFTklEX1NJWkVdOworCisgICAgICAgbWVtY3B5KG9sZF9pZCwgc3Rh dGUtJmd0O3RoaXNfaWQsIHNpemVvZihvbGRfaWQpKTsKKyAgICAgICBtZW1jcHkoc3RhdGUtJmd0 O3RoaXNfaWQsIHN0YXRlLSZndDtuZXh0X2lkLCBzaXplb2Yoc3RhdGUtJmd0O3RoaXNfaWQpKTsK KyAgICAgICBpZiAoIW1lbWNtcChvbGRfaWQsIHN0YXRlLSZndDt0aGlzX2lkLCBzaXplb2Yob2xk X2lkKSkpCisgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgYWRkX3ZtZm9ya19yYW5kb21u ZXNzKHN0YXRlLSZndDt0aGlzX2lkLCBzaXplb2Yoc3RhdGUtJmd0O3RoaXNfaWQpKTsKK30KKwor c3RhdGljIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZV9pZCB2bWdlbmlkX2lkc1tdID0geworICAg ICAgIHsgIlZNR0VOSUQiLCAwIH0sCisgICAgICAgeyAiUUVNVVZHSUQiLCAwIH0sCjwvcHJlPgog ICAgICAgIDwvYmxvY2txdW90ZT4KICAgICAgICA8cHJlIGNsYXNzPSJtb3otcXVvdGUtcHJlIiB3 cmFwPSIiPgoKQWNjb3JkaW5nIHRvIHRoZSBWTUdlbklEIHNwZWNbMV0sIHlvdSBjYW4gb25seSBy ZWx5IG9uIF9DSUQgYW5kIF9ERE4gZm9yCm1hdGNoaW5nLiBUaGV5IGJvdGggY29udGFpbiAiVk1f R2VuX0NvdW50ZXIiLiBUaGUgbGlzdCBhYm92ZSBjb250YWlucwpfSElEIHZhbHVlcyB3aGljaCBh cmUgbm90IGFuIG9mZmljaWFsIGlkZW50aWZpZXIgZm9yIHRoZSBWTUdlbklEIGRldmljZS4KCklJ UkMgdGhlIEFDUEkgZGV2aWNlIG1hdGNoIGxvZ2ljIGRvZXMgbWF0Y2ggX0NJRCBpbiBhZGRpdGlv biB0byBfSElELgpIb3dldmVyLCBpdCBpcyBsaW1pdGVkIHRvIDggY2hhcmFjdGVycy4gTGV0IG1l IHBhc3RlIGFuIGV4cGVyaW1lbnRhbApoYWNrIEkgZGlkIGJhY2sgdGhlbiB0byBkbyB0aGUgX0NJ RCBtYXRjaGluZyBpbnN0ZWFkLgoKWzFdCjxhIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQi IGhyZWY9Imh0dHBzOi8vZG93bmxvYWQubWljcm9zb2Z0LmNvbS9kb3dubG9hZC8zLzEvQy8zMUNG QzMwNy05OENBLTRDQTUtOTE0Qy1EOTc3MjY5MUUyMTQvVmlydHVhbE1hY2hpbmVHZW5lcmF0aW9u SUQuZG9jeCI+aHR0cHM6Ly9kb3dubG9hZC5taWNyb3NvZnQuY29tL2Rvd25sb2FkLzMvMS9DLzMx Q0ZDMzA3LTk4Q0EtNENBNS05MTRDLUQ5NzcyNjkxRTIxNC9WaXJ0dWFsTWFjaGluZUdlbmVyYXRp b25JRC5kb2N4PC9hPgoKPC9wcmU+CiAgICAgIDwvYmxvY2txdW90ZT4KICAgICAgPHByZSBjbGFz cz0ibW96LXF1b3RlLXByZSIgd3JhcD0iIj4KSSB0aGluayBtYXRjaGluZyBvbiB0aGUgSElEcyBv ZiB0d28ga25vd24gZXhpc3RpbmcgaW1wbGVtZW50YXRpb25zIGlzCmZpbmUsIGFzIG9wcG9zZWQg dG8gbWF0Y2hpbmcgb24gdGhlIChicm9rZW4pIENJRCBvZiBhbnkgaW1wbGVtZW50YXRpb24KdGhh dCBjbGFpbXMgdG8gYmUgY29tcGF0aWJsZSB3aXRoIGl0LiBBbmQgZHVtcGluZyByYW5kb20gc3Ry aW5ncyBpbnRvCnRoZSBfQ0lEIHByb3BlcnR5IGRvZXNuJ3QgbWVzaCB3ZWxsIHdpdGggdGhlIEFD UEkgc3BlYyBlaXRoZXIsIHdoaWNoCmlzIHdoeSB3ZSBkb24ndCBjdXJyZW50bHkgc3VwcG9ydCBp dC4KCldlIGNvdWxkIHN0aWxsIGNoZWNrIF9ERE4gaWYgd2Ugd2FudGVkIHRvLCBidXQgSSBkb24n dCB0aGluayB0aGlzIGlzCm5lY2Vzc2FyeS4gT3RoZXIgaW1wbGVtZW50YXRpb25zIHRoYXQgd2Fu dCB0byB0YXJnZXQgaGlzIGRyaXZlcgpleHBsaWNpdGx5IGNhbiBhbHdheXMgcHV0IFZNR0VOSUQg b3IgUUVNVVZHSUQgaW50byB0aGUgX0NJRC4KPC9wcmU+CiAgICA8L2Jsb2NrcXVvdGU+CiAgICA8 cD48YnI+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0iTXNvQm9keVRleHQiPk5vLCB0aGV5IGNhbiBu b3QuIFRoZSBzcGVjIGV4cGxpY2l0bHkgYWxzbwogICAgICBzdGF0ZXMgdGhhdCBfSElEIGhhcyB0 byBiZSB1bmlxdWUgcGVyIGh5cGVydmlzb3I6PGJyPgogICAgICA8YnI+CiAgICAgICI8c3BhbiBs YW5nPSJFTi1VUyI+QSBoeXBlcnZpc29yIG11c3QgYWxzbyBleHBvc2UgYW4gb2JqZWN0CiAgICAg ICAgYmVsb3cgdGhlIGRldmljZSwgbmFtZWQgIl9ISUQiLCB3aGljaCBpcyB0aGUgImhhcmR3YXJl IElELiIKICAgICAgICBUaGlzIHZhbHVlIGlzIGh5cGVydmlzb3Igc3BlY2lmaWMgYW5kIG11c3Qg YmUgZGlmZmVyZW50IGZvciBlYWNoCiAgICAgICAgdmVuZG9yLiBUaGUKICAgICAgICBXaW5kb3dz IGdlbmVyYXRpb24gSUQgZ3Vlc3QgZHJpdmVyIHdpbGwgbG9hZCBvbiB0aGUgY29tcGF0aWJsZQog ICAgICAgIElEIG9mICJWTV9HZW5fQ291bnRlciIsCiAgICAgICAgc28gaXQgd2lsbCBiZSBwcmVz ZW50IHJlZ2FyZGxlc3Mgb2Ygd2hpY2ggaHlwZXJ2aXNvciBpdCBpcwogICAgICAgIHJ1bm5pbmcg b24gdG9wIG9mLAogICAgICAgIGFzIGxvbmcgYXMgdGhhdCBoeXBlcnZpc29yIGZvbGxvd3MgdGhl IHJ1bGVzIGFib3ZlLjwvc3Bhbj4iPGJyPgogICAgICA8YnI+CiAgICAgIDxicj4KICAgICAgQWxl eDxicj4KICAgICAgPGJyPgogICAgPC9wPgogICAgPHA+CiAgICAgIDxzdHlsZT5AZm9udC1mYWNl Cgl7Zm9udC1mYW1pbHk6Ik1TIE1pbmNobyI7CglwYW5vc2UtMToyIDIgNiA5IDQgMiA1IDggMyA0 OwoJbXNvLWZvbnQtYWx0OiLvvK3vvLMg5piO5pydIjsKCW1zby1mb250LWNoYXJzZXQ6MTI4OwoJ bXNvLWdlbmVyaWMtZm9udC1mYW1pbHk6bW9kZXJuOwoJbXNvLWZvbnQtcGl0Y2g6Zml4ZWQ7Cglt c28tZm9udC1zaWduYXR1cmU6LTUzNjg3MDE0NSAxNzkxNDkxNTc5IDE4IDAgMTMxMjMxIDA7fUBm b250LWZhY2UKCXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsKCXBhbm9zZS0xOjIgNCA1IDMg NSA0IDYgMyAyIDQ7Cgltc28tZm9udC1jaGFyc2V0OjA7Cgltc28tZ2VuZXJpYy1mb250LWZhbWls eTpyb21hbjsKCW1zby1mb250LXBpdGNoOnZhcmlhYmxlOwoJbXNvLWZvbnQtc2lnbmF0dXJlOjMg MCAwIDAgMSAwO31AZm9udC1mYWNlCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsKCXBhbm9zZS0xOjIg MTUgNSAyIDIgMiA0IDMgMiA0OwoJbXNvLWZvbnQtY2hhcnNldDowOwoJbXNvLWdlbmVyaWMtZm9u dC1mYW1pbHk6c3dpc3M7Cgltc28tZm9udC1waXRjaDp2YXJpYWJsZTsKCW1zby1mb250LXNpZ25h dHVyZTotNTIwMDgyNjg5IC0xMDczNjk3NTM3IDkgMCA1MTEgMDt9QGZvbnQtZmFjZQoJe2ZvbnQt ZmFtaWx5OiJcQE1TIE1pbmNobyI7CglwYW5vc2UtMToyIDIgNiA5IDQgMiA1IDggMyA0OwoJbXNv LWZvbnQtY2hhcnNldDoxMjg7Cgltc28tZ2VuZXJpYy1mb250LWZhbWlseTptb2Rlcm47Cgltc28t Zm9udC1waXRjaDpmaXhlZDsKCW1zby1mb250LXNpZ25hdHVyZTotNTM2ODcwMTQ1IDE3OTE0OTE1 NzkgMTM0MjE3NzQ2IDAgMTMxMjMxIDA7fXAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5N c29Ob3JtYWwKCXttc28tc3R5bGUtdW5oaWRlOm5vOwoJbXNvLXN0eWxlLXFmb3JtYXQ6eWVzOwoJ bXNvLXN0eWxlLXBhcmVudDoiIjsKCW1hcmdpbjowY207Cgltc28tcGFnaW5hdGlvbjp3aWRvdy1v cnBoYW47Cglmb250LXNpemU6MTEuMHB0OwoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2Vy aWY7Cgltc28tYXNjaWktZm9udC1mYW1pbHk6Q2FsaWJyaTsKCW1zby1hc2NpaS10aGVtZS1mb250 Om1pbm9yLWxhdGluOwoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTsKCW1zby1mYXJl YXN0LXRoZW1lLWZvbnQ6bWlub3ItbGF0aW47Cgltc28taGFuc2ktZm9udC1mYW1pbHk6Q2FsaWJy aTsKCW1zby1oYW5zaS10aGVtZS1mb250Om1pbm9yLWxhdGluOwoJbXNvLWJpZGktZm9udC1mYW1p bHk6IlRpbWVzIE5ldyBSb21hbiI7Cgltc28tYmlkaS10aGVtZS1mb250Om1pbm9yLWJpZGk7Cglt c28tYW5zaS1sYW5ndWFnZTpFTi1VUzsKCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO31wLk1z b0JvZHlUZXh0LCBsaS5Nc29Cb2R5VGV4dCwgZGl2Lk1zb0JvZHlUZXh0Cgl7bXNvLXN0eWxlLXVu aGlkZTpubzsKCW1zby1zdHlsZS1saW5rOiJCb2R5IFRleHQgQ2hhciI7CgltYXJnaW4tdG9wOjBj bTsKCW1hcmdpbi1yaWdodDowY207CgltYXJnaW4tYm90dG9tOjguMHB0OwoJbWFyZ2luLWxlZnQ6 MGNtOwoJbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwoJdGFiLXN0b3BzOjE4LjBwdCAzNi4w cHQ7Cglmb250LXNpemU6MTEuMHB0OwoJbXNvLWJpZGktZm9udC1zaXplOjEwLjBwdDsKCWZvbnQt ZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOwoJbXNvLWFzY2lpLWZvbnQtZmFtaWx5OkNhbGli cmk7Cgltc28tYXNjaWktdGhlbWUtZm9udDptaW5vci1sYXRpbjsKCW1zby1mYXJlYXN0LWZvbnQt ZmFtaWx5OiJNUyBNaW5jaG8iOwoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7Cgltc28t aGFuc2ktdGhlbWUtZm9udDptaW5vci1sYXRpbjsKCW1zby1iaWRpLWZvbnQtZmFtaWx5OkFyaWFs OwoJbXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVM7Cgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUzt9 c3Bhbi5Cb2R5VGV4dENoYXIKCXttc28tc3R5bGUtbmFtZToiQm9keSBUZXh0IENoYXIiOwoJbXNv LXN0eWxlLXVuaGlkZTpubzsKCW1zby1zdHlsZS1sb2NrZWQ6eWVzOwoJbXNvLXN0eWxlLWxpbms6 IkJvZHkgVGV4dCI7Cgltc28tYmlkaS1mb250LXNpemU6MTAuMHB0OwoJZm9udC1mYW1pbHk6IkNh bGlicmkiLHNhbnMtc2VyaWY7Cgltc28tYXNjaWktZm9udC1mYW1pbHk6Q2FsaWJyaTsKCW1zby1h c2NpaS10aGVtZS1mb250Om1pbm9yLWxhdGluOwoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Ik1T IE1pbmNobyI7Cgltc28taGFuc2ktZm9udC1mYW1pbHk6Q2FsaWJyaTsKCW1zby1oYW5zaS10aGVt ZS1mb250Om1pbm9yLWxhdGluOwoJbXNvLWJpZGktZm9udC1mYW1pbHk6QXJpYWw7fS5Nc29DaHBE ZWZhdWx0Cgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7Cgltc28tZGVmYXVsdC1wcm9wczp5 ZXM7Cglmb250LXNpemU6MTEuMHB0OwoJbXNvLWFuc2ktZm9udC1zaXplOjExLjBwdDsKCW1zby1i aWRpLWZvbnQtc2l6ZToxMS4wcHQ7Cglmb250LWZhbWlseToiQ2FtYnJpYSIsc2VyaWY7Cgltc28t YXNjaWktZm9udC1mYW1pbHk6Q2FtYnJpYTsKCW1zby1hc2NpaS10aGVtZS1mb250Om1ham9yLWxh dGluOwoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTsKCW1zby1mYXJlYXN0LXRoZW1l LWZvbnQ6bWlub3ItbGF0aW47Cgltc28taGFuc2ktZm9udC1mYW1pbHk6Q2FtYnJpYTsKCW1zby1o YW5zaS10aGVtZS1mb250Om1ham9yLWxhdGluOwoJbXNvLWJpZGktZm9udC1mYW1pbHk6IlRpbWVz IE5ldyBSb21hbiI7Cgltc28tYmlkaS10aGVtZS1mb250Om1pbm9yLWJpZGk7Cgltc28tYW5zaS1s YW5ndWFnZTpFTi1VUzsKCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO31kaXYuV29yZFNlY3Rp b24xCgl7cGFnZTpXb3JkU2VjdGlvbjE7fTwvc3R5bGU+PC9wPgogIDxicj48YnI+PGJyPkFtYXpv biBEZXZlbG9wbWVudCBDZW50ZXIgR2VybWFueSBHbWJICjxicj5LcmF1c2Vuc3RyLiAzOAo8YnI+ MTAxMTcgQmVybGluCjxicj5HZXNjaGFlZnRzZnVlaHJ1bmc6IENocmlzdGlhbiBTY2hsYWVnZXIs IEpvbmF0aGFuIFdlaXNzCjxicj5FaW5nZXRyYWdlbiBhbSBBbXRzZ2VyaWNodCBDaGFybG90dGVu YnVyZyB1bnRlciBIUkIgMTQ5MTczIEIKPGJyPlNpdHo6IEJlcmxpbgo8YnI+VXN0LUlEOiBERSAy ODkgMjM3IDg3OQo8YnI+PGJyPjxicj4KPC9ib2R5Pgo8L2h0bWw+Cg== --------------HvDIABrsVwix3c0YbFT95dSM--