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=-2.4 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no 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 CE5E8C3F68F for ; Fri, 14 Feb 2020 23:21:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9C3F7217F4 for ; Fri, 14 Feb 2020 23:21:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amazon.com header.i=@amazon.com header.b="HzGynpHx" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728088AbgBNXVs (ORCPT ); Fri, 14 Feb 2020 18:21:48 -0500 Received: from smtp-fw-2101.amazon.com ([72.21.196.25]:54557 "EHLO smtp-fw-2101.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727458AbgBNXVs (ORCPT ); Fri, 14 Feb 2020 18:21:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1581722508; x=1613258508; h=date:from:to:subject:message-id:mime-version; bh=1fLOsGyjydnuCdMIlSr0tRhTDRsX7ZRCLdT+L++drvk=; b=HzGynpHx3sdhV0Bx1uOB8r4cgMQLaZJ4H9o0jHzwXvEKJw5spptBLxWR Zdl81tPVzPYAQ36aX1ntyL1Z9aLVCT0LhL6BVzeGdSJ26NpD0Thvui3kv 5Y24jyo0nx7eofba97HYsbHCivVgOkf+XqMDRn0fpnfON7LcCLOXRMZJc E=; IronPort-SDR: alGkphRrlsws2hadl8S9c/eZyCGO7Z01dk4t0uMbaNcrIZgDXf7iizySPNmo2aoN60Pt/CeZH3 cqsJr0cy5oHg== X-IronPort-AV: E=Sophos;i="5.70,442,1574121600"; d="scan'208";a="17277260" Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-2a-1c1b5cdd.us-west-2.amazon.com) ([10.43.8.2]) by smtp-border-fw-out-2101.iad2.amazon.com with ESMTP; 14 Feb 2020 23:21:34 +0000 Received: from EX13MTAUEB002.ant.amazon.com (pdx4-ws-svc-p6-lb7-vlan2.pdx.amazon.com [10.170.41.162]) by email-inbound-relay-2a-1c1b5cdd.us-west-2.amazon.com (Postfix) with ESMTPS id 455CEA0719; Fri, 14 Feb 2020 23:21:32 +0000 (UTC) Received: from EX13D08UEB001.ant.amazon.com (10.43.60.245) by EX13MTAUEB002.ant.amazon.com (10.43.60.12) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 14 Feb 2020 23:21:20 +0000 Received: from EX13MTAUEB002.ant.amazon.com (10.43.60.12) by EX13D08UEB001.ant.amazon.com (10.43.60.245) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 14 Feb 2020 23:21:20 +0000 Received: from dev-dsk-anchalag-2a-9c2d1d96.us-west-2.amazon.com (172.22.96.68) by mail-relay.amazon.com (10.43.60.234) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Fri, 14 Feb 2020 23:21:20 +0000 Received: by dev-dsk-anchalag-2a-9c2d1d96.us-west-2.amazon.com (Postfix, from userid 4335130) id 003184028E; Fri, 14 Feb 2020 23:21:19 +0000 (UTC) Date: Fri, 14 Feb 2020 23:21:19 +0000 From: Anchal Agarwal To: , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [RFC RESEND PATCH v3 00/12] Enable PM hibernation on guest VMs Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Resending this in a more threaded format. Hello, I am sending out a v3 version of series of patches that implements guest PM hibernation. These guests are running on xen hypervisor. The patches had been tested against mainstream kernel. EC2 instance hibernation feature is provided to the AWS EC2 customers. PM hibernation uses swap space carved out within the guest[or can be a separate partition], where hibernation image is stored and restored from. Doing guest hibernation does not involve any support from hypervisor and this way guest has complete control over its state. Infrastructure restrictions for saving up guest state can be overcome by guest initiated hibernation. This series includes some improvements over RFC series sent last year: https://lists.xenproject.org/archives/html/xen-devel/2018-06/msg00823.html Changelog v3: 1. Feedback from V2 2. Introduced 2 new patches for xen sched clock offset fix 3. Fixed pirq shutdown/restore in generic irq subsystem 4. Split save/restore steal clock patches into 2 for better readability Changelog v2: 1. Removed timeout/request present on the ring in xen-blkfront during blkfront freeze 2. Fixed restoring of PIRQs which was apparently working for 4.9 kernels but not for newer kernel. [Legacy irqs were no longer restored after hibernation introduced with this commit "020db9d3c1dc0"] 3. Merged couple of related patches to make the code more coherent and readable 4. Code refactoring 5. Sched clock fix when hibernating guest is under heavy CPU load Note: Under very rare circumstances we see resume failures with KASLR enabled only on xen instances. We are roughly seeing 3% failures [>1000 runs] when testing with various instance sizes and some workload running on each instance. I am currently investigating the issue as to confirm if its a xen issue or kernel issue. However, it should not hold back anyone from reviewing/accepting these patches. Testing done: All testing is done for multiple hibernation cycle for 5.4 kernel on EC2. Testing How to: --------------- Example: Set up a file-backed swap space. Swap file size>=Total memory on the system sudo dd if=/dev/zero of=/swap bs=$(( 1024 * 1024 )) count=4096 # 4096MiB sudo chmod 600 /swap sudo mkswap /swap sudo swapon /swap Update resume device/resume offset in grub if using swap file: resume=/dev/xvda1 resume_offset=200704 Execute: -------- sudo pm-hibernate OR echo disk > /sys/power/state && echo reboot > /sys/power/disk Compute resume offset code: " #!/usr/bin/env python import sys import array import fcntl #swap file f = open(sys.argv[1], 'r') buf = array.array('L', [0]) #FIBMAP ret = fcntl.ioctl(f.fileno(), 0x01, buf) print buf[0] " Aleksei Besogonov (1): PM / hibernate: update the resume offset on SNAPSHOT_SET_SWAP_AREA Anchal Agarwal (4): x86/xen: Introduce new function to map HYPERVISOR_shared_info on Resume genirq: Shutdown irq chips in suspend/resume during hibernation xen: Introduce wrapper for save/restore sched clock offset xen: Update sched clock offset to avoid system instability in hibernation Munehisa Kamata (7): xen/manage: keep track of the on-going suspend mode xenbus: add freeze/thaw/restore callbacks support x86/xen: add system core suspend and resume callbacks xen-netfront: add callbacks for PM suspend and hibernation support xen-blkfront: add callbacks for PM suspend and hibernation xen/time: introduce xen_{save,restore}_steal_clock x86/xen: save and restore steal clock arch/x86/xen/enlighten_hvm.c | 8 ++ arch/x86/xen/suspend.c | 72 ++++++++++++++++++ arch/x86/xen/time.c | 18 ++++- arch/x86/xen/xen-ops.h | 3 + drivers/block/xen-blkfront.c | 119 ++++++++++++++++++++++++++++-- drivers/net/xen-netfront.c | 98 +++++++++++++++++++++++- drivers/xen/events/events_base.c | 1 + drivers/xen/manage.c | 73 ++++++++++++++++++ drivers/xen/time.c | 29 +++++++- drivers/xen/xenbus/xenbus_probe.c | 99 ++++++++++++++++++++----- include/linux/irq.h | 2 + include/xen/xen-ops.h | 8 ++ include/xen/xenbus.h | 3 + kernel/irq/chip.c | 2 +- kernel/irq/internals.h | 1 + kernel/irq/pm.c | 31 +++++--- kernel/power/user.c | 6 +- 17 files changed, 533 insertions(+), 40 deletions(-) -- 2.24.1.AMZN 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=-0.9 required=3.0 tests=DKIM_ADSP_ALL,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=no 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 DBA87C35242 for ; Fri, 14 Feb 2020 23:22:10 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 ACCA82081E for ; Fri, 14 Feb 2020 23:22:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amazon.com header.i=@amazon.com header.b="DbMh0I/U" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ACCA82081E Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amazon.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1j2kHN-0000Om-8E; Fri, 14 Feb 2020 23:21:49 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1j2kHL-0000OF-FG for xen-devel@lists.xenproject.org; Fri, 14 Feb 2020 23:21:47 +0000 X-Inumbo-ID: c522203c-4f80-11ea-bb5b-12813bfff9fa Received: from smtp-fw-2101.amazon.com (unknown [72.21.196.25]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id c522203c-4f80-11ea-bb5b-12813bfff9fa; Fri, 14 Feb 2020 23:21:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1581722507; x=1613258507; h=date:from:to:subject:message-id:mime-version; bh=1fLOsGyjydnuCdMIlSr0tRhTDRsX7ZRCLdT+L++drvk=; b=DbMh0I/U1CZ9lqQETNR5cZlAspsl5bLkuUPfeW5hy4RbvH5U0GprSXqY VjRBOL63n/YIrMRMP4XFrVw9PWTArFuBdTH4tYMl7KPCK8Y480D7yYJIN 82lILRvCSdMwPVnjnqyCkYKzUBKUgXspWuiJ0LhXeMISfVVhyDrdJn9Ou w=; IronPort-SDR: alGkphRrlsws2hadl8S9c/eZyCGO7Z01dk4t0uMbaNcrIZgDXf7iizySPNmo2aoN60Pt/CeZH3 cqsJr0cy5oHg== X-IronPort-AV: E=Sophos;i="5.70,442,1574121600"; d="scan'208";a="17277260" Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-2a-1c1b5cdd.us-west-2.amazon.com) ([10.43.8.2]) by smtp-border-fw-out-2101.iad2.amazon.com with ESMTP; 14 Feb 2020 23:21:34 +0000 Received: from EX13MTAUEB002.ant.amazon.com (pdx4-ws-svc-p6-lb7-vlan2.pdx.amazon.com [10.170.41.162]) by email-inbound-relay-2a-1c1b5cdd.us-west-2.amazon.com (Postfix) with ESMTPS id 455CEA0719; Fri, 14 Feb 2020 23:21:32 +0000 (UTC) Received: from EX13D08UEB001.ant.amazon.com (10.43.60.245) by EX13MTAUEB002.ant.amazon.com (10.43.60.12) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 14 Feb 2020 23:21:20 +0000 Received: from EX13MTAUEB002.ant.amazon.com (10.43.60.12) by EX13D08UEB001.ant.amazon.com (10.43.60.245) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 14 Feb 2020 23:21:20 +0000 Received: from dev-dsk-anchalag-2a-9c2d1d96.us-west-2.amazon.com (172.22.96.68) by mail-relay.amazon.com (10.43.60.234) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Fri, 14 Feb 2020 23:21:20 +0000 Received: by dev-dsk-anchalag-2a-9c2d1d96.us-west-2.amazon.com (Postfix, from userid 4335130) id 003184028E; Fri, 14 Feb 2020 23:21:19 +0000 (UTC) Date: Fri, 14 Feb 2020 23:21:19 +0000 From: Anchal Agarwal To: , , , , , , , , , , , , , , , , , , , , , , , , , , , , Message-ID: MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Precedence: Bulk Subject: [Xen-devel] [RFC RESEND PATCH v3 00/12] Enable PM hibernation on guest VMs X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" UmVzZW5kaW5nIHRoaXMgaW4gYSBtb3JlIHRocmVhZGVkIGZvcm1hdC4KICAKSGVsbG8sCkkgYW0g c2VuZGluZyBvdXQgYSB2MyB2ZXJzaW9uIG9mIHNlcmllcyBvZiBwYXRjaGVzIHRoYXQgaW1wbGVt ZW50cyBndWVzdApQTSBoaWJlcm5hdGlvbi4KVGhlc2UgZ3Vlc3RzIGFyZSBydW5uaW5nIG9uIHhl biBoeXBlcnZpc29yLiBUaGUgcGF0Y2hlcyBoYWQgYmVlbiB0ZXN0ZWQKYWdhaW5zdCBtYWluc3Ry ZWFtIGtlcm5lbC4gRUMyIGluc3RhbmNlIGhpYmVybmF0aW9uIGZlYXR1cmUgaXMgcHJvdmlkZWQK dG8gdGhlIEFXUyBFQzIgY3VzdG9tZXJzLiBQTSBoaWJlcm5hdGlvbiB1c2VzIHN3YXAgc3BhY2Ug Y2FydmVkIG91dCB3aXRoaW4KdGhlIGd1ZXN0W29yIGNhbiBiZSBhIHNlcGFyYXRlIHBhcnRpdGlv bl0sIHdoZXJlIGhpYmVybmF0aW9uIGltYWdlIGlzCnN0b3JlZCBhbmQgcmVzdG9yZWQgZnJvbS4K CkRvaW5nIGd1ZXN0IGhpYmVybmF0aW9uIGRvZXMgbm90IGludm9sdmUgYW55IHN1cHBvcnQgZnJv bSBoeXBlcnZpc29yIGFuZAp0aGlzIHdheSBndWVzdCBoYXMgY29tcGxldGUgY29udHJvbCBvdmVy IGl0cyBzdGF0ZS4gSW5mcmFzdHJ1Y3R1cmUKcmVzdHJpY3Rpb25zIGZvciBzYXZpbmcgdXAgZ3Vl c3Qgc3RhdGUgY2FuIGJlIG92ZXJjb21lIGJ5IGd1ZXN0IGluaXRpYXRlZApoaWJlcm5hdGlvbi4K ClRoaXMgc2VyaWVzIGluY2x1ZGVzIHNvbWUgaW1wcm92ZW1lbnRzIG92ZXIgUkZDIHNlcmllcyBz ZW50IGxhc3QgeWVhcjoKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1s L3hlbi1kZXZlbC8yMDE4LTA2L21zZzAwODIzLmh0bWwKCkNoYW5nZWxvZyB2MzoKMS4gRmVlZGJh Y2sgZnJvbSBWMgoyLiBJbnRyb2R1Y2VkIDIgbmV3IHBhdGNoZXMgZm9yIHhlbiBzY2hlZCBjbG9j ayBvZmZzZXQgZml4CjMuIEZpeGVkIHBpcnEgc2h1dGRvd24vcmVzdG9yZSBpbiBnZW5lcmljIGly cSBzdWJzeXN0ZW0KNC4gU3BsaXQgc2F2ZS9yZXN0b3JlIHN0ZWFsIGNsb2NrIHBhdGNoZXMgaW50 byAyIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkKCkNoYW5nZWxvZyB2MjoKMS4gUmVtb3ZlZCB0aW1l b3V0L3JlcXVlc3QgcHJlc2VudCBvbiB0aGUgcmluZyBpbiB4ZW4tYmxrZnJvbnQgZHVyaW5nIGJs a2Zyb250IGZyZWV6ZQoyLiBGaXhlZCByZXN0b3Jpbmcgb2YgUElSUXMgd2hpY2ggd2FzIGFwcGFy ZW50bHkgd29ya2luZyBmb3IgNC45IGtlcm5lbHMgYnV0IG5vdCBmb3IKbmV3ZXIga2VybmVsLiBb TGVnYWN5IGlycXMgd2VyZSBubyBsb25nZXIgcmVzdG9yZWQgYWZ0ZXIgaGliZXJuYXRpb24gaW50 cm9kdWNlZCB3aXRoCnRoaXMgY29tbWl0ICIwMjBkYjlkM2MxZGMwIl0KMy4gTWVyZ2VkIGNvdXBs ZSBvZiByZWxhdGVkIHBhdGNoZXMgdG8gbWFrZSB0aGUgY29kZSBtb3JlIGNvaGVyZW50IGFuZCBy ZWFkYWJsZQo0LiBDb2RlIHJlZmFjdG9yaW5nCjUuIFNjaGVkIGNsb2NrIGZpeCB3aGVuIGhpYmVy bmF0aW5nIGd1ZXN0IGlzIHVuZGVyIGhlYXZ5IENQVSBsb2FkCk5vdGU6IFVuZGVyIHZlcnkgcmFy ZSBjaXJjdW1zdGFuY2VzIHdlIHNlZSByZXN1bWUgZmFpbHVyZXMgd2l0aCBLQVNMUiBlbmFibGVk IG9ubHkKb24geGVuIGluc3RhbmNlcy4gIFdlIGFyZSByb3VnaGx5IHNlZWluZyAzJSBmYWlsdXJl cyBbPjEwMDAgcnVuc10gd2hlbiB0ZXN0aW5nIHdpdGgKdmFyaW91cyBpbnN0YW5jZSBzaXplcyBh bmQgc29tZSB3b3JrbG9hZCBydW5uaW5nIG9uIGVhY2ggaW5zdGFuY2UuIEkgYW0gY3VycmVudGx5 CmludmVzdGlnYXRpbmcgdGhlIGlzc3VlIGFzIHRvIGNvbmZpcm0gaWYgaXRzIGEgeGVuIGlzc3Vl IG9yIGtlcm5lbCBpc3N1ZS4KSG93ZXZlciwgaXQgc2hvdWxkIG5vdCBob2xkIGJhY2sgYW55b25l IGZyb20gcmV2aWV3aW5nL2FjY2VwdGluZyB0aGVzZSBwYXRjaGVzLgoKVGVzdGluZyBkb25lOgpB bGwgdGVzdGluZyBpcyBkb25lIGZvciBtdWx0aXBsZSBoaWJlcm5hdGlvbiBjeWNsZSBmb3IgNS40 IGtlcm5lbCBvbiBFQzIuCgpUZXN0aW5nIEhvdyB0bzoKLS0tLS0tLS0tLS0tLS0tCkV4YW1wbGU6 ClNldCB1cCBhIGZpbGUtYmFja2VkIHN3YXAgc3BhY2UuIFN3YXAgZmlsZSBzaXplPj1Ub3RhbCBt ZW1vcnkgb24gdGhlIHN5c3RlbQpzdWRvIGRkIGlmPS9kZXYvemVybyBvZj0vc3dhcCBicz0kKCgg MTAyNCAqIDEwMjQgKSkgY291bnQ9NDA5NiAjIDQwOTZNaUIKc3VkbyBjaG1vZCA2MDAgL3N3YXAK c3VkbyBta3N3YXAgL3N3YXAKc3VkbyBzd2Fwb24gL3N3YXAKClVwZGF0ZSByZXN1bWUgZGV2aWNl L3Jlc3VtZSBvZmZzZXQgaW4gZ3J1YiBpZiB1c2luZyBzd2FwIGZpbGU6CnJlc3VtZT0vZGV2L3h2 ZGExIHJlc3VtZV9vZmZzZXQ9MjAwNzA0CgpFeGVjdXRlOgotLS0tLS0tLQpzdWRvIHBtLWhpYmVy bmF0ZQpPUgplY2hvIGRpc2sgPiAvc3lzL3Bvd2VyL3N0YXRlICYmIGVjaG8gcmVib290ID4gL3N5 cy9wb3dlci9kaXNrCgpDb21wdXRlIHJlc3VtZSBvZmZzZXQgY29kZToKIgojIS91c3IvYmluL2Vu diBweXRob24KaW1wb3J0IHN5cwppbXBvcnQgYXJyYXkKaW1wb3J0IGZjbnRsCgojc3dhcCBmaWxl CmYgPSBvcGVuKHN5cy5hcmd2WzFdLCAncicpCmJ1ZiA9IGFycmF5LmFycmF5KCdMJywgWzBdKQoK I0ZJQk1BUApyZXQgPSBmY250bC5pb2N0bChmLmZpbGVubygpLCAweDAxLCBidWYpCnByaW50IGJ1 ZlswXQoiCgpBbGVrc2VpIEJlc29nb25vdiAoMSk6CiAgUE0gLyBoaWJlcm5hdGU6IHVwZGF0ZSB0 aGUgcmVzdW1lIG9mZnNldCBvbiBTTkFQU0hPVF9TRVRfU1dBUF9BUkVBCgpBbmNoYWwgQWdhcndh bCAoNCk6CiAgeDg2L3hlbjogSW50cm9kdWNlIG5ldyBmdW5jdGlvbiB0byBtYXAgSFlQRVJWSVNP Ul9zaGFyZWRfaW5mbyBvbgogICAgUmVzdW1lCiAgZ2VuaXJxOiBTaHV0ZG93biBpcnEgY2hpcHMg aW4gc3VzcGVuZC9yZXN1bWUgZHVyaW5nIGhpYmVybmF0aW9uCiAgeGVuOiBJbnRyb2R1Y2Ugd3Jh cHBlciBmb3Igc2F2ZS9yZXN0b3JlIHNjaGVkIGNsb2NrIG9mZnNldAogIHhlbjogVXBkYXRlIHNj aGVkIGNsb2NrIG9mZnNldCB0byBhdm9pZCBzeXN0ZW0gaW5zdGFiaWxpdHkgaW4KICAgIGhpYmVy bmF0aW9uCgpNdW5laGlzYSBLYW1hdGEgKDcpOgogIHhlbi9tYW5hZ2U6IGtlZXAgdHJhY2sgb2Yg dGhlIG9uLWdvaW5nIHN1c3BlbmQgbW9kZQogIHhlbmJ1czogYWRkIGZyZWV6ZS90aGF3L3Jlc3Rv cmUgY2FsbGJhY2tzIHN1cHBvcnQKICB4ODYveGVuOiBhZGQgc3lzdGVtIGNvcmUgc3VzcGVuZCBh bmQgcmVzdW1lIGNhbGxiYWNrcwogIHhlbi1uZXRmcm9udDogYWRkIGNhbGxiYWNrcyBmb3IgUE0g c3VzcGVuZCBhbmQgaGliZXJuYXRpb24gc3VwcG9ydAogIHhlbi1ibGtmcm9udDogYWRkIGNhbGxi YWNrcyBmb3IgUE0gc3VzcGVuZCBhbmQgaGliZXJuYXRpb24KICB4ZW4vdGltZTogaW50cm9kdWNl IHhlbl97c2F2ZSxyZXN0b3JlfV9zdGVhbF9jbG9jawogIHg4Ni94ZW46IHNhdmUgYW5kIHJlc3Rv cmUgc3RlYWwgY2xvY2sKCiBhcmNoL3g4Ni94ZW4vZW5saWdodGVuX2h2bS5jICAgICAgfCAgIDgg KysKIGFyY2gveDg2L3hlbi9zdXNwZW5kLmMgICAgICAgICAgICB8ICA3MiArKysrKysrKysrKysr KysrKysKIGFyY2gveDg2L3hlbi90aW1lLmMgICAgICAgICAgICAgICB8ICAxOCArKysrLQogYXJj aC94ODYveGVuL3hlbi1vcHMuaCAgICAgICAgICAgIHwgICAzICsKIGRyaXZlcnMvYmxvY2sveGVu LWJsa2Zyb250LmMgICAgICB8IDExOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIGRy aXZlcnMvbmV0L3hlbi1uZXRmcm9udC5jICAgICAgICB8ICA5OCArKysrKysrKysrKysrKysrKysr KysrKy0KIGRyaXZlcnMveGVuL2V2ZW50cy9ldmVudHNfYmFzZS5jICB8ICAgMSArCiBkcml2ZXJz L3hlbi9tYW5hZ2UuYyAgICAgICAgICAgICAgfCAgNzMgKysrKysrKysrKysrKysrKysrCiBkcml2 ZXJzL3hlbi90aW1lLmMgICAgICAgICAgICAgICAgfCAgMjkgKysrKysrKy0KIGRyaXZlcnMveGVu L3hlbmJ1cy94ZW5idXNfcHJvYmUuYyB8ICA5OSArKysrKysrKysrKysrKysrKysrKy0tLS0tCiBp bmNsdWRlL2xpbnV4L2lycS5oICAgICAgICAgICAgICAgfCAgIDIgKwogaW5jbHVkZS94ZW4veGVu LW9wcy5oICAgICAgICAgICAgIHwgICA4ICsrCiBpbmNsdWRlL3hlbi94ZW5idXMuaCAgICAgICAg ICAgICAgfCAgIDMgKwoga2VybmVsL2lycS9jaGlwLmMgICAgICAgICAgICAgICAgIHwgICAyICst CiBrZXJuZWwvaXJxL2ludGVybmFscy5oICAgICAgICAgICAgfCAgIDEgKwoga2VybmVsL2lycS9w bS5jICAgICAgICAgICAgICAgICAgIHwgIDMxICsrKysrLS0tCiBrZXJuZWwvcG93ZXIvdXNlci5j ICAgICAgICAgICAgICAgfCAgIDYgKy0KIDE3IGZpbGVzIGNoYW5nZWQsIDUzMyBpbnNlcnRpb25z KCspLCA0MCBkZWxldGlvbnMoLSkKCi0tIAoyLjI0LjEuQU1aTgoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv bWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=