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 C9D514D11B; Mon, 17 Jun 2024 20:40:11 +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=1718656811; cv=none; b=Crk6lN1Vcj1ElUY+G+N7tiTBY8cj34t+FYBivO+gIjO+qU/vAKs41R+YLceEie3h7DogX0HIO7z+sgiOuzeQcEmpbpbLkE/BQwxuG8JoTiGbkrkTaJpCh3TXwBJVki5gVrleMLBZBnsJ+jsOVKQKMpvY91sAtpFq+pof/ilWdYk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718656811; c=relaxed/simple; bh=/w8gigNTHYHd+OJMiklAcDfHBQNQ3yg4VJKrnvfsXYI=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=s6Tivjri2aTKyBO6+Me7qzyTwoWzghAGohS+Ler06Cu3m9ToC3UL/fcxR4wee7aDrPueCeNa5tX1iFECPVId+s+w9AAuB+CNpEpB0hoyySBMvC+QlBZFrfJkf/pns4DposudPPmPupjmsKI+s/RACgkqD6sIFmJHVIj8PAQ/K2g= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 631C6C2BD10; Mon, 17 Jun 2024 20:40:08 +0000 (UTC) Date: Mon, 17 Jun 2024 16:40:06 -0400 From: Steven Rostedt To: Alexander Graf Cc: , , Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton , Vincent Donnefort , "Joel Fernandes" , Daniel Bristot de Oliveira , Ingo Molnar , Peter Zijlstra , , Thomas Gleixner , Vineeth Pillai , Youssef Esmat , Beau Belgrave , "Baoquan He" , Borislav Petkov , "Paul E. McKenney" , David Howells , Mike Rapoport , Ard Biesheuvel Subject: Re: [PATCH v6 0/2] mm/memblock: Add "reserve_mem" to reserved named memory at boot up Message-ID: <20240617164006.198b9ba3@rorschach.local.home> In-Reply-To: <7c90c574-5cfa-40cf-bd4c-1188136cd886@amazon.com> References: <20240613155506.811013916@goodmis.org> <20240613131212.7d1a7ffa@rorschach.local.home> <7c90c574-5cfa-40cf-bd4c-1188136cd886@amazon.com> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Precedence: bulk X-Mailing-List: linux-trace-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/kv2Xhvwo3lQ0YCQWEV.uhm+" --MP_/kv2Xhvwo3lQ0YCQWEV.uhm+ Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline On Mon, 17 Jun 2024 09:07:29 +0200 Alexander Graf wrote: > Hey Steve, > > > I believe we're talking about 2 different things :). Let me rephrase a > bit and make a concrete example. > > Imagine you have passed the "reserve_mem=12M:4096:trace" kernel command > line option. The kernel now comes up and allocates a random chunk of > memory that - by (admittedly good) chance - may be at the same physical > location as before. Let's assume it deemed 0x1000000 as a good offset. Note, it's not random. It picks from the top of available memory every time. But things can mess with it (see below). > > Let's now assume you're running on a UEFI system. There, you always have > non-volatile storage available to you even in the pre-boot phase. That > means the kernel could create a UEFI variable that says "12M:4096:trace > -> 0x1000000". The pre-boot phase takes all these UEFI variables and > marks them as reserved. When you finally reach your command line parsing > logic for reserve_mem=, you can flip all reservations that were not on > the command line back to normal memory. > > That way you have pretty much guaranteed persistent memory regions, even > with KASLR changing your memory layout across boots. > > The nice thing is that the above is an extension of what you've already > built: Systems with UEFI simply get better guarantees that their regions > persist. This could be an added feature, but it is very architecture specific, and would likely need architecture specific updates. > > > > > >> > >>> Requirement: > >>> > >>> Need a way to reserve memory that will be at a consistent location for > >>> every boot, if the kernel and system are the same. Does not need to work > >>> if rebooting to a different kernel, or if the system can change the > >>> memory layout between boots. > >>> > >>> The reserved memory can not be an hard coded address, as the same kernel / > >>> command line needs to run on several different machines. The picked memory > >>> reservation just needs to be the same for a given machine, but may be > >> > >> With KASLR is enabled, doesn't this approach break too often to be > >> reliable enough for the data you want to extract? > >> > >> Picking up the idea above, with a persistent variable we could even make > >> KASLR avoid that reserved pstore region in its search for a viable KASLR > >> offset. > > I think I was hit by it once in all my testing. For our use case, the > > few times it fails to map is not going to affect what we need this for > > at all. > > > Once is pretty good. Do you know why? Also once out of how many runs? Is > the randomness source not as random as it should be or are the number of > bits for KASLR maybe so few on your target architecture that the odds of > hitting anything become low? Do these same constraints hold true outside > of your testing environment? So I just ran it a hundred times in a loop. I added a patch to print the location of "_text". The loop was this: for i in `seq 100`; do ssh root@debiantesting-x86-64 "dmesg | grep -e 'text starts' -e 'mapped boot' >> text; grub-reboot '1>0'; sleep 0.5; reboot" sleep 25 done It searches dmesg for my added printk as well as the print of were the ring buffer was loaded in physical memory. It takes about 15 seconds to reboot, so I waited 25. The results are attached. I found that it was consistent 76 times, which means 1 out of 4 it's not. Funny enough, it broke whenever it loaded the kernel below 0x100000000. And then it would be off by a little. It was consistently at: 0x27d000000 And when it failed, it was at 0x27ce00000. Note, when I used the e820 tables to do this, I never saw a failure. My assumption is that when it is below 0x100000000, something else gets allocated causing this to get pushed down. As this code relies on memblock_phys_alloc() being consistent, if something gets allocated before it differently depending on where the kernel is, it can also move the location. A plugin to UEFI would mean that it would need to reserve the memory, and the code here will need to know where it is. We could always make the function reserve_mem() global and weak so that architectures can override it. -- Steve --MP_/kv2Xhvwo3lQ0YCQWEV.uhm+ Content-Type: application/octet-stream; name=text Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=text WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDI2MWEwMDAwMApbICAgIDAuMjc5 NjAxXSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMjY0YTAwMDAwClsgICAgMC4yNTgxNjBdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx NmQ4MDAwMDAKWyAgICAwLjI3NDQ5OF0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDFlMzIwMDAwMApbICAgIDAuMzIx MTMzXSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMTg1MjAwMDAwClsgICAgMC4yODk4ODBdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx MjFhMDAwMDAKWyAgICAwLjMzNTg5OF0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDAzY2EwMDAwMApbICAgIDAuMjk5 OTY5XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2NlMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMjU0ZTAwMDAwClsgICAgMC4yNTczMzBdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx Y2E0MDAwMDAKWyAgICAwLjM2MTg5NV0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDFhM2EwMDAwMApbICAgIDAuMjY0 NjA5XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMjIxMjAwMDAwClsgICAgMC4zMDI3NzhdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAy MjM0MDAwMDAKWyAgICAwLjI4MTMwN10gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDFlNTYwMDAwMApbICAgIDAuMjYz NDU5XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMjJkYzAwMDAwClsgICAgMC4yOTMwMTNdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx MGRjMDAwMDAKWyAgICAwLjI1NTk5Nl0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDFiMGMwMDAwMApbICAgIDAuMjYw Nzg3XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMDUyNDAwMDAwClsgICAgMC4yNTc0NTZdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3Y2UwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx NWNhMDAwMDAKWyAgICAwLjI3MTA2NV0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDEwMTgwMDAwMApbICAgIDAuMzIw OTUxXSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMjUyNDAwMDAwClsgICAgMC4zMDc4ODVdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAy Mjc4MDAwMDAKWyAgICAwLjI4MDY0Nl0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDAwNzgwMDAwMApbICAgIDAuMjUy MjEyXSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2NlMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMjI3YzAwMDAwClsgICAgMC4yNjIxODldIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAy NWZlMDAwMDAKWyAgICAwLjM0MzA2MF0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDIyM2EwMDAwMApbICAgIDAuMjY1 MjY1XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMWFmYTAwMDAwClsgICAgMC4zMjQ0OTFdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx NTE0MDAwMDAKWyAgICAwLjI3NTkwN10gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDEzNmUwMDAwMApbICAgIDAuMjk2 MDUzXSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMWEzMjAwMDAwClsgICAgMC4yNTYxMDhdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAy Nzg0MDAwMDAKWyAgICAwLjI1NDAxOV0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDA2MTgwMDAwMApbICAgIDAuMjUz NTEzXSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2NlMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMWI1MDAwMDAwClsgICAgMC4yODMwNzddIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAw Mjk2MDAwMDAKWyAgICAwLjI1Mzk3Ml0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdjZTAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDA1ZDYwMDAwMApbICAgIDAuMjU4 MDg1XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2NlMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMWFkZTAwMDAwClsgICAgMC4yNjM2NDJdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx ZDA0MDAwMDAKWyAgICAwLjI1NDYxNl0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDIyMjIwMDAwMApbICAgIDAuMjc1 MTM1XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMDJmMjAwMDAwClsgICAgMC4yNTcxMjBdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3Y2UwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx NGIyMDAwMDAKWyAgICAwLjI1MzM1OF0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDEwNzIwMDAwMApbICAgIDAuMjc3 NjMxXSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMTg1MDAwMDAwClsgICAgMC4yNzc5MTZdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx ZjU2MDAwMDAKWyAgICAwLjI2NzQzMl0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDA2ZmEwMDAwMApbICAgIDAuMjU0 NTU3XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2NlMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMTE4MDAwMDAwClsgICAgMC4yNTk1OThdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx OGIyMDAwMDAKWyAgICAwLjI3NzU1Ml0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDFiMTQwMDAwMApbICAgIDAuMjQ4 NDY4XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMDU2NDAwMDAwClsgICAgMC4yNTMxMzRdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3Y2UwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAw MWZlMDAwMDAKWyAgICAwLjMwOTUxMl0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdjZTAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDFlNjQwMDAwMApbICAgIDAuMjYy Mzg5XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMTZlNjAwMDAwClsgICAgMC4yNjEwOThdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx ODQ2MDAwMDAKWyAgICAwLjI0NjkxMV0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDI3NWEwMDAwMApbICAgIDAuMjQ1 OTQ3XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMjNlMjAwMDAwClsgICAgMC4yNDM2NTldIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx MDM4MDAwMDAKWyAgICAwLjI0NTA4Ml0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDA0ZTAwMDAwMApbICAgIDAuMzEx NjU1XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2NlMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMjJkYzAwMDAwClsgICAgMC4zMDMzMzddIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAy MjY4MDAwMDAKWyAgICAwLjI0ODQxOF0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDFlMDgwMDAwMApbICAgIDAuMjQ4 NTUxXSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMTE1YzAwMDAwClsgICAgMC4yNTQ3MTFdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx YmJhMDAwMDAKWyAgICAwLjMwNDQ0M10gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDEwYzIwMDAwMApbICAgIDAuMjUw ODEzXSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMTQyYTAwMDAwClsgICAgMC4yNTAwODhdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx MmZhMDAwMDAKWyAgICAwLjI2ODU2MF0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDE0MDAwMDAwMApbICAgIDAuMjUy Mjk4XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMWFkYzAwMDAwClsgICAgMC4yNTEyNjFdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAw MTIyMDAwMDAKWyAgICAwLjI0ODAwNF0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdjZTAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDEwY2UwMDAwMApbICAgIDAuMjUw NzQzXSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMDViNDAwMDAwClsgICAgMC4zMTM4MDVdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3Y2UwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx ZDkyMDAwMDAKWyAgICAwLjAwMDAwMF0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDAyOTQwMDAwMApbICAgIDAuMjQy MTI5XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2NlMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMDYwYzAwMDAwClsgICAgMC4zMDMzNzNdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3Y2UwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAw MGMyMDAwMDAKWyAgICAwLjI5MDk1Ml0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdjZTAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDI1MDIwMDAwMApbICAgIDAuMzEw MTk4XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMDNkNjAwMDAwClsgICAgMC4yNDY4MDRdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3Y2UwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx OWZlMDAwMDAKWyAgICAwLjI2NTQ3N10gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDE3NTAwMDAwMApbICAgIDAuMjU1 MzY2XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMTMzNjAwMDAwClsgICAgMC4yNzAxMjddIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx MWQ2MDAwMDAKWyAgICAwLjI4MTkxOF0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDAyNGEwMDAwMApbICAgIDAuMjU2 MTg2XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2NlMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMTY1YTAwMDAwClsgICAgMC4yNTc0NzBdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAw M2RjMDAwMDAKWyAgICAwLjI2MzY3MV0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdjZTAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDEwMjYwMDAwMApbICAgIDAuMjU0 Mjg4XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMWNlMjAwMDAwClsgICAgMC4zMzU2NTldIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx OGFjMDAwMDAKWyAgICAwLjI1MjAxMF0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDA3NGEwMDAwMApbICAgIDAuMjU0 MzM3XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2NlMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMWVjZTAwMDAwClsgICAgMC4zMTExMjRdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAw NGQ0MDAwMDAKWyAgICAwLjI2MDUzNF0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdjZTAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDAxM2MwMDAwMApbICAgIDAuMjk1 ODIzXSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2NlMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMDVlYzAwMDAwClsgICAgMC4yNzEwNjRdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3Y2UwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx NjZjMDAwMDAKWyAgICAwLjI1NTQ4NF0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDI1ZmEwMDAwMApbICAgIDAuMjU3 Mjc1XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMjFjYzAwMDAwClsgICAgMC4yNTQ5MTVdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAy Mzk0MDAwMDAKWyAgICAwLjI4MzY4N10gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDE4ZjAwMDAwMApbICAgIDAuMjU4 NzIyXSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMjc1ODAwMDAwClsgICAgMC4yODE1ODddIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAx NTc0MDAwMDAKWyAgICAwLjI1NjA0Ml0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdkMDAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDIxNWMwMDAwMApbICAgIDAuMDAw MDAwXSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMApbICAgIDAuMDAwMDAwXSB0ZXh0 IHN0YXJ0cyBhdCAwMDAwMDAwMTE1NDAwMDAwClsgICAgMC4yNDM3MDFdIFRyYWNpbmc6IG1hcHBl ZCBib290IGluc3RhbmNlIGJvb3RfbWFwcGVkIGF0IHBoeXNpY2FsIG1lbW9yeSAweDI3ZDAwMDAw MCBvZiBzaXplIDB4YzAwMDAwClsgICAgMC4wMDAwMDBdIHRleHQgc3RhcnRzIGF0IDAwMDAwMDAw NGY0MDAwMDAKWyAgICAwLjMxOTQwNV0gVHJhY2luZzogbWFwcGVkIGJvb3QgaW5zdGFuY2UgYm9v dF9tYXBwZWQgYXQgcGh5c2ljYWwgbWVtb3J5IDB4MjdjZTAwMDAwIG9mIHNpemUgMHhjMDAwMDAK WyAgICAwLjAwMDAwMF0gdGV4dCBzdGFydHMgYXQgMDAwMDAwMDI2NzgwMDAwMApbICAgIDAuMzA3 NDY0XSBUcmFjaW5nOiBtYXBwZWQgYm9vdCBpbnN0YW5jZSBib290X21hcHBlZCBhdCBwaHlzaWNh bCBtZW1vcnkgMHgyN2QwMDAwMDAgb2Ygc2l6ZSAweGMwMDAwMAo= --MP_/kv2Xhvwo3lQ0YCQWEV.uhm+--