From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7177438393541853184 X-Received: by 2002:a05:6870:d62a:b0:144:e47:b897 with SMTP id a42-20020a056870d62a00b001440e47b897mr632718oaq.107.1671145295653; Thu, 15 Dec 2022 15:01:35 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6808:1a26:b0:345:9a88:c799 with SMTP id bk38-20020a0568081a2600b003459a88c799ls135809oib.5.-pod-prod-gmail; Thu, 15 Dec 2022 15:01:35 -0800 (PST) X-Google-Smtp-Source: AA0mqf6TjClg0+T4Cqe/I7FF+XVvsYAFxGKeHhE2hQll6PVmo16OLMsmnqg862iNZLAFQbnddzn1 X-Received: by 2002:a05:6808:1825:b0:355:1de9:651f with SMTP id bh37-20020a056808182500b003551de9651fmr15246255oib.1.1671145294908; Thu, 15 Dec 2022 15:01:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671145294; cv=none; d=google.com; s=arc-20160816; b=AnA2eZL0VwIkcegHojtjONnUu4uD7v0fRgHA2GZwRFD1BzZfiwaDbmUl1i2rO8VP3P pQpq1RuGSdkQIek/0jJCFE8iTNviOHv3iqoFQ9gBQfxtfefEihWzSYDUQilobwpyt3VJ ezjCPvrnymVy2yODRpGj5E3AcmcyNNU2HX5LkU2h2HWxALjbxUw5M9mWW336zbmTJYfZ Kriknc+ICRgxSG98yCyozXv4rATnV9vvxx/qgXr6w3MPrepAhUDGwZiPmKoFjn6X5eaJ 0CQBpeY1Y8yZeMykuYPByHDwFGp7M8pW/M4b/P1W3nqQ3pWYK1hkoVruWADHcnLEWtCV 7nZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=VKoTK2n0LNA4C2HjSpxKxdgr3Sk92NcXd3kINZ5E2aA=; b=KpB6gsWhPJfDlJiA/n69Vof2GKCigLI9Xe4Z36QoWHNZu8Sc4qAzm3jdDhBSZKTv36 8skwBg84TNqcPkOmv8sGj2q/5ZwGeQieVMvIltBHLBPgQwCebKnCJfqA6hbqR1bNYn0P j1K/Fzw3um8+judtji6PNtCdOrEliMVvQf0WAfzT13IvqnSTwS2Q88OvIDGGejAOSKGe Dnf3Qs+gHeWDobVNTyQE0t/2iOx0ONOF/JK0/nf5OxJRkcTaklja2iHtlQEaSnZCF5Si EDT98nKzNwrDhmO/h9QagkLCVZEjkSHaPMhqR0m1MLSD4K121w5RtzyTnRvVkuZ4JGzX GEGw== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=CWUmAQhi; spf=pass (google.com: domain of roberto.foglietta@gmail.com designates 2607:f8b0:4864:20::736 as permitted sender) smtp.mailfrom=roberto.foglietta@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from mail-qk1-x736.google.com (mail-qk1-x736.google.com. [2607:f8b0:4864:20::736]) by gmr-mx.google.com with ESMTPS id g84-20020acab657000000b00353e4e7f335si21752oif.4.2022.12.15.15.01.34 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 15 Dec 2022 15:01:34 -0800 (PST) Received-SPF: pass (google.com: domain of roberto.foglietta@gmail.com designates 2607:f8b0:4864:20::736 as permitted sender) client-ip=2607:f8b0:4864:20::736; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=CWUmAQhi; spf=pass (google.com: domain of roberto.foglietta@gmail.com designates 2607:f8b0:4864:20::736 as permitted sender) smtp.mailfrom=roberto.foglietta@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: by mail-qk1-x736.google.com with SMTP id f28so204753qkh.10 for ; Thu, 15 Dec 2022 15:01:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=VKoTK2n0LNA4C2HjSpxKxdgr3Sk92NcXd3kINZ5E2aA=; b=CWUmAQhiVnzafIN9l4q4iPRjS8SRKYKkVfkCYAIqFc5qmO0ZdxBBCtYVFypb0DSbnz dQMQdnz/Z10NF8+yJD6Auc7ONMehjjnI+7GyOvW3EvaIc25ZPVDEToZErFZiy4EVUmgs liCFFzRLEkAPQKKPKotGa2195on4w7FDd6IhcA9zuApdi9LgbGhXTr1IrMY5c5Sg9cZN LipL3Z5VWR4zNuozJlAvtpae4AaltEm2uS2MFrehNfxsCGeEsyTncneS9VEoKcVLyQ4U vSMlsymuxJXuInk36OJL4Dk/E9U0fBXoNTeIaY/Z9qyoPwN2W4AZ7p3hT0xdRMC3rCGy rdKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=VKoTK2n0LNA4C2HjSpxKxdgr3Sk92NcXd3kINZ5E2aA=; b=EqSx/oAe82aerowfLoPsCv52xOwlSUyn+D9TdilGOsTXEsYSq15xs0HD73VVa91fws 9gitn6U/sSwRo5abFoH4EIQ9nqECcVpe6oPyoK2mKI6GrcGJhxabdIdTgo6B09XwtMRB NmB+IDYxZznTzsW/yy3g6oY8AI/nmMRmewguFSj9MzqIRqip40/+wvFpfS8MMOVFox9w xhiLJHTZZChPFO1NQBE6NCCB/GfU5NpSYjabIwLreackzP5hjRYnqYnc4AlmPg5KYAMt /e1juF+l9PR2Z/BibBkmLuw1r8mBiBdOCPpWbLExjieTcN4/p7MGxJLx+cRfKeCgon0K THJA== X-Gm-Message-State: ANoB5pmrCpmMObB6G9zrRCWjzw7OmQYAfDytoo2sEa21eimuQM9oy0TG kDSYxuIrl5i7rWr8Q6mpoFZwHEN0Uwz/GT4hHTxZanVN1sIu X-Received: by 2002:a37:de19:0:b0:6fa:8954:b767 with SMTP id h25-20020a37de19000000b006fa8954b767mr69277940qkj.50.1671145293707; Thu, 15 Dec 2022 15:01:33 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: "Roberto A. Foglietta" Date: Fri, 16 Dec 2022 00:00:56 +0100 Message-ID: Subject: Re: [PATCHSET] expand last partition script and its usage To: isar-users@googlegroups.com Cc: Anton Mikanovich , Henning Schild , "Moessbauer, Felix" , "Schmidl, Tobias" , Joe MacDonald Content-Type: multipart/mixed; boundary="00000000000099cd2705efe5d539" X-TUID: pCnM53RVQAo8 --00000000000099cd2705efe5d539 Content-Type: text/plain; charset="UTF-8" Hi all, this is the single patch for rework and generalisation of last partition expansion. As usual has been sent by elastic mail SMTP and it went in moderation. UPDATE: the unpartition volume resizing has been tested in this way git clone https://github.com/robang74/isar-nvidia-debian.git cd isar-nvidia-debian source .profile build basic-os wicshell cd /boot cp -arf vmlinuz-5.10.0-19-amd64 initrd.img-5.10.0-19-amd64 /work exit wicinst file:image.wic sudo losetup -P $(losetup -f) image.wic sudo dd if=/dev/loop3p2 bs=1M > disk.wic dd if=/dev/zero bs=1 seek=$[4*1024*1024*1024] count=1 oflag=append conv=notrunc,sparse status=none of=disk.wic sudo qemu-system-x86_64 --cpu host --enable-kvm -smp 4 -m 1024 -drive format=raw,file=disk.wic -device sdhci-pci -kernel build/tmp/work/vmlinuz-5.10.0-19-amd64 -initrd build/tmp/work/initrd.img-5.10.0-19-amd64 -append "root=/dev/sda console=ttyS0" --nographic; echo ">>> press ENTER"; read; reset dmesg | grep expand df -h poweroff Best regards, R- =========================================== The script has been reworked to simplify its code: - the last partition free space is not computed anymore because useless - on exit a function take care of some final tasks and logs in /dev/kmsg and to extend its functionalities supporting new filesystems: - filesystem type is managed by a switch-case block of code - temporary directory to mount is created relying on TMPDIR - unsupervised systems have the option to reboot because error - if temporary directory creation fails 2nd try with /dev/shm - additional ext2, ext3 and btrfs filesystems supported - udev support: udevadm settle is the first task to run - unpartitioned volumes are resized as well (tested) This patch has been created by a collection of 7 patches to be applied on ilbers ISAR, branch next, commit d26660b724b034b602f3889f55a23cd9be2e87bd Author: Roberto A. Foglietta This code has been developed taking inspiration by suggestions and code from: Felix Moessbauer Tobias Schmidl Henning Schild Signed-off-by: Roberto A. Foglietta --00000000000099cd2705efe5d539 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-The-expand-last-partition-rework-and-generalisation.patch" Content-Disposition: attachment; filename="0001-The-expand-last-partition-rework-and-generalisation.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lbpn20tw0 RnJvbSBiNDFiZWY0NjIyODk0MjJlOWZlZGM4ZDg3NzA2ZTExZjI2N2IyYzM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUm9iZXJ0byBBLiBGb2dsaWV0dGEiIDxyb2JlcnRvLmZvZ2xp ZXR0YUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTIgRGVjIDIwMjIgMjE6MTQ6MjYgKzAxMDAKU3Vi amVjdDogW1BBVENIXSBUaGUgZXhwYW5kIGxhc3QgcGFydGl0aW9uIHJld29yayBhbmQgZ2VuZXJh bGlzYXRpb24KClRoZSBzY3JpcHQgaGFzIGJlZW4gcmVvd3JrZWQgdG8gc2ltcGxpZnkgaXRzIGNv ZGU6CgogLSB0aGUgbGFzdCBwYXJ0aXRpb24gZnJlZSBzcGFjZSBpcyBub3QgY29tcHV0ZWQgYW55 bW9yZSBiZWNhdXNlIHVzZWxlc3MKIC0gb24gZXhpdCBhIGZ1bmN0aW9uIHRha2UgY2FyZSBvZiBz b21lIGZpbmFsIHRhc2tzIGFuZCBsb2dzIGluIC9kZXYva21zZwoKYW5kIHRvIGV4dGVuZCBpdHMg ZnVuY3Rpb25hbGl0aWVzIHN1cHBvcnRpbmcgbmV3IGZpbGVzeXN0ZW1zOgoKIC0gZmlsZXN5c3Rl bSB0eXBlIGlzIG1hbmFnZWQgYnkgYSBzd2l0Y2gtY2FzZSBibG9jayBvZiBjb2RlCiAtIHRlbXBv cmFyeSBkaXJlY3RvcnkgdG8gbW91bnQgaXMgY3JlYXRlZCByZWx5aW5nIG9uIFRNUERJUgogLSB1 bnN1cGVydmlzZWQgc3lzdGVtcyBoYXZlIHRoZSBvcHRpb24gdG8gcmVib290IGJlY2F1c2UgZXJy b3IKIC0gaWYgdGVtcG9yYXJ5IGRpcmVjdG9yeSBjcmVhdGlvbiBmYWlscyAybmQgdHJ5IHdpdGgg L2Rldi9zaG0KIC0gYWRkaXRpb25hbCBleHQyLCBleHQzIGFuZCBidHJmcyBmaWxlc3lzdGVtcyBz dXBwb3J0ZWQKIC0gdWRldiBzdXBwb3J0OiB1ZGV2YWRtIHNldHRsZSBpcyB0aGUgZmlyc3QgdGFz ayB0byBydW4KIC0gdW5wYXJ0aXRpb25lZCB2b2x1bWVzIGFyZSByZXNpemVkIGFzIHdlbGwgKHRl c3RlZCkKClRoaXMgcGF0Y2ggaGFzIGJlZW4gY3JlYXRlZCBieSBhIGNvbGxlY3Rpb24gb2YgNyBw YXRjaGVzIHRvIGJlIGFwcGxpZWQgb24KaWxiZXJzIElTQVIsIGJyYW5jaCBuZXh0LCBjb21taXQg ZDI2NjYwYjcyNGIwMzRiNjAyZjM4ODlmNTVhMjNjZDliZTJlODdiZAoKICAgQXV0aG9yOiBSb2Jl cnRvIEEuIEZvZ2xpZXR0YSA8cm9iZXJ0by5mb2dsaWV0dGFAZ21haWwuY29tPgoKVGhpcyBjb2Rl IGhhcyBiZWVuIGRldmVsb3BlZCB0YWtpbmcgaW5zcGlyYXRpb24gYnkgc3VnZ2VzdGlvbnMgYW5k IGNvZGUgZnJvbToKCiAgIEZlbGl4IE1vZXNzYmF1ZXIgPGZlbGl4Lm1vZXNzYmF1ZXJAc2llbWVu cy5jb20+CiAgIFRvYmlhcyBTY2htaWRsIDx0b2JpYXNzY2htaWRsQHNpZW1lbnMuY29tPgogICBI ZW5uaW5nIFNjaGlsZCA8aGVubmluZy5zY2hpbGRAc2llbWVucy5jb20+CgpTaWduZWQtb2ZmLWJ5 OiBSb2JlcnRvIEEuIEZvZ2xpZXR0YSA8cm9iZXJ0by5mb2dsaWV0dGFAZ21haWwuY29tPgoKPSAx LzcgPT0gSW4gZXhwYW5kIGxhc3QgcGFydGl0aW9uIHdhaXQgZm9yIHVkZXYgaGF2ZSBmaW5pc2hl ZCA9PT09PT09PT09PT09PT09PQoKYnVnZml4LCBleHBhbmQgbGFzdCBwYXJ0aXRpb24sIHdhaXQg Zm9yIHVkZXYgY29tcGxldGlvbgoKT24gc29tZSBoYXJkd2FyZSB0aGUgdWRldiBkaWQgbm90IGNy ZWF0ZSB0aGUgbGlua3MgdG8gdGhlIGRpc2sgcGFydGl0aW9ucwp3aGlsZSB0aGlzIHNjcmlwdCBp cyB3b3JraW5nIHRodXMgaXQgZmFpbHMuIFRoaXMgcGF0Y2ggZml4ZXMgdGhvc2UgY2FzZXMuCgp2 MjogYXMgdW5kZXJsaW5lZCBieSBUb2JpYXMgdGhpcyBzY3JpcHQgcmVxdWlyZXMgc3lzdGVtZC11 ZGV2ZC5zZXJ2aWNlIGFuZAppdCBjYW4gc2FmZWx5IHJ1biBvbmx5IGFmdGVyIHRoYXQgc2Vydmlj ZSBoYXMgYmVlbiBzdGFydGVkIG90aGVyd2lzZSBpdCBtaWdodApmYWlsLiBUaGlzIGRlcGVuZGVu Y3kgd2lsbCByZW9yZGVyIHRoZSBib290IHByb2NlZHVyZSBidXQgbm90IHNsb3cgZG93biBpdAp1 bmxlc3MgdGhlIGhhcmR3YXJlIGlzIHNsb3cgdG8gZ2V0IG1hcHBlZCBieSB1ZGV2IGJ1dCBpbiB0 aGF0IGNhc2UgcmVzaXplCnRoZSBsYXN0IHBhcnRpdGlvbiB3b3VsZCBoYXZlIGZhaWxlZC4gVGh1 cywgbm8gcmVncmVzc2lvbiBpcyBleHBlY3RlZC4KCj0gMi83ID09IEluIGV4cGFuZCBsYXN0IHBh cnRpdGlvbiBzY3JpcHQgYnRyZnMgc3VwcG9ydCBhZGRlZCA9PT09PT09PT09PT09PT09PT0KCklt cHJvdmVtZW50LCBleHBhbmQtb24tZmlyc3QtYm9vdDogc3VwcG9ydCBmb3IgYnRyZnMgYWRkZWQK CnYyOiB0aGUgbW91bnQgcG9pbnQgZm9yIGJ0cmZzIGZpbGVzeXN0ZW0gdG8gcmVzaXplIGlzIHVu ZGVyIC9kZXYvc2htCmJ5IGRlZmF1bHQgYnV0IGEgdmFyaWFibGUgZGVmaW5lZCBpbiB0aGUgcnVu bmluZyBlbnZpcm9ubWVudCBjYW4KY2hhbmdlIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHBhdGgu IFRoZSAvZGV2L3NobSBoYXMgYmVlbiBjaG9zZW4KYmVjYXVzZSBpbiBzb21lIHN5c3RlbXMgL3Rt cCBjYW4gYmUgb24gYSBSTyByb290IGZpbGVzeXN0ZW0gYW5kCi90bXAgbm90IHlldCBtb3VudGVk IHdpdGggdG1wZnMuIFRoaXMgcmVxdWlyZXMgdGhlIHN5c3RlbSB0byBoYXZlCi9kZXYvc2htIGNv bmZpZ3VyZWQgaW50byB0aGUga2VybmVsLgoKdjM6IHRoZSBwcmV2aW91cyB2ZXJzaW9uIHdhcyB1 c2luZyBhIGJhc2hpc20gYnV0IHRoZSBzaGViYW5nIGlzIC9iaW4vc2gKdGhpcyBtZWFucyB0aGF0 IHRoZSBzY3JpcHQgd2lsbCBmYWlsIGluIGEgY3VzdG9taXplZCBzeXN0ZW0gaW4gd2hpY2ggL2Jp bi9zaApkbyBub3QgbGluayB0byBiYXNoIG9yIGJhc2ggaXMgbm90IGF2YWlsYWJsZS4KCnY0OiBG ZWxpeCBzdWdnZXN0ZWQgdXNpbmcgbWt0ZW1wIGZvciB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBp biB3aGljaCB0bwptb3VudCB0aGUgYnRyZnMgZmlsZXN5c3RlbSB0byByZXNpemUuIFRoZSBkZWZh dWx0IHBhdGggL3RtcCBjb3VsZCBiZSBjaGFuZ2VkCnVzaW5nIHRoZSB2YXJpYWJsZSBUTVBESVIg dG8gc2V0IGluIHRoZSBydW5uaW5nIGVudmlyb25tZW50LgoKdjU6IHR5cG8gZml4ZXMgaW50byB0 aGUgcGF0Y2ggZGVzY3JpcHRpb24KCnY2OiBta3RlbXAgZG9lcyBhIHJlYXNvbmFibGUgc2Vjb25k IHRyeSB3aXRoIC1wIC9kZXYvc2htIGJlZm9yZSBmYWlsaW5nCgo9IDMvNyA9PSBJZiBleHBhbmQg bGFzdCBwYXJ0aXRpb24gZmFpbHMsIHVuc3VwZXJ2aXNlZCBzeXN0ZW1zIHJlYm9vdCA9PT09PT09 PT09CgpJbXByb3ZlbWVudCBmb3IgdW5zdXBlcnZpc2VkIGVtYmVkZGVkIGRldmljZXMgd2hpY2gg bmVlZCB0byByZWJvb3QgaWYgZXhwYW5kaW5nCmxhc3QgcGFydGl0aW9uIGZhaWxzIGJlY2F1c2Ug YW4gdW5kZXItcHJvdmlkZWQgc3lzdGVtIHNob3VsZCBub3QgZXZlbiBjb21wbGV0ZQp0aGUgYm9v dCBpbiB0aGUgZmllbGQgaW4gb3JkZXIgdG8gYXZvaWQgZnVuY3Rpb25pbmcgZmFpbHVyZXMgYXQg dW5leHBlY3RlZApmdXR1cmUgdGltZS4gVGhpcyBwYXRjaCBkbyBub3QgYWZmZWN0IHRoZSBwcmV2 aW91cyBiZWhhdmlvdXIgYmVjYXVzZSByZXF1aXJlcwp0aGF0IC9ldGMvdW5zdXBlcnZpc2VkIGZp bGUgZXhpc3RzLgoKdjI6IGlmIHRoZXJlIGlzIG5vIHBhcnRpdGlvbiB0YWJsZSBleGl0IDAgaW5z dGVhZCBvZiBleGl0IDEKCj0gNC83ID09IEluIGV4cGFuZCBsYXN0IHBhcnRpdGlvbiBjaGVja2lu ZyB0aGUgc2l6ZSBpcyB1c2VsZXNzID09PT09PT09PT09PT09PT0KCmNvZGUgbWFpbnRlbmFuY2Us IHN1cGVyZmx1b3VzIG9wZXJhdGlvbnMgY29tbWVudGVkLCBrZXB0IGZvciB0aGUgZnV0dXJlCgpU ZXN0cyBzaG93biB0aGF0IHJlc2l6ZSBpbiBmdWxsIGEgZXh0NCBvciBidHJmcyBwYXJ0aXRpb24v ZmlsZXN5c3RlbSBkb2VzIG5vdApodXJ0IGFuZCBkb2VzIG5vdCByZXBvcnQgYSBmYWlsdXJlLCBz byBub3RoaW5nIGNoYW5nZXMgd2l0aG91dCB0aGUgc2l6ZSBjaGVjawoKPSA1LzcgPT0gVGhlIGV4 cGFuZCBsYXN0IHBhcnRpdGlvbiBtaWdodCBzdXBwb3J0IGZ1bGwgdm9sdW1lcyBhbHNvLCB0byB0 ZXN0ID09CgpJbXByb3ZlbWVudCwgZXhwYW5zaW9uIG9mIHVucGFydGl0aW9uZWQgdm9sdW1lcyBz dXBwb3J0ZWQgYWxzbyBidXQgdG8gdGVzdAoKRE9ORSwgMTQuMTIuMjAyMjogdGhpcyBjaGFuZ2Ug c2hvdWxkIGJlIHRlc3RlZCB3aXRoIGEgc2luZ2xlIHZvbHVtZSBzeXN0ZW0KcHJlbGltaW5hcnkg dGVzdHMgc2hvd24gdGhhdCBleHQ0IGFuZCBidHJmcyBlbnRpcmUgdm9sdW1lcyBjYW0gYmUgcmVz aXplZAoKPSA2LzcgPT0gSW4gZXhwYW5kIGxhc3QgcGFydGl0aW9uIHRyYXAgZXhpdG5sb2cgRVhJ VCBsb2dzIHdpdGggc2ltcGxlciBjb2RlID09PQoKSW1wcm92ZW1lbnQsIHRoZSBzY3JpcHQgbG9n IGF0IGV4aXQgd2l0aCB0aGUgc3RhdHVzIG9mIGNvbXBsZXRpb24gYW5kIGl0cyBmdWxsCnBhdGgg aW4gdGhpcyB3YXkgLSBpbiBjYXNlIG9mIGZhaWx1cmUgLSB0aGUgdXNlciB3aWxsIGZpbmQgaW4g ZG1lc2cgdGhlIGVycm9yCmFuZCBhbHNvIHRoZSBzY3JpcHQgZnVsbCBwYXRoIHRvIGRlYnVnLiBJ dCB1c2VzIC9kZXYva21zZyB0byBsb2cuCkNvZGUgc2ltcGxpZmllZC4KCj0gNy83ID09IEluIGV4 cGFuZCBsYXN0IHBhcnRpdGlvbiBmZXcgaW1wcm92ZW1lbnRzIGFuZCBhIGJ1Z2ZpeCA9PT09PT09 PT09PT09PT0KClNvbWUgaW1wcm92ZW1lbnRzIGFuZCBhIGJ1Z2ZpeCBpbiBleHBhbmRpbmcgbGFz dCBwYXJ0aXRpb24uCgpJbXByb3ZlbWVudHM6IGZpbGVzeXN0ZW1zIGV4dDIgYW5kIGV4dDMgYWxz byBzdXBwb3J0ZWQsIHdhcm5pbmcgaW4gZG1lc2cgaW4KY2FzZSBvZiB1bnN1cHBvcnRlZCBmaWxl c3lzdGVtLCB0aGUgdmFyaWFibGUgdG1wZGlyIGlzIHVzZWQgd2l0aCBkb3VibGUKcXVvdGVzIGV2 ZW4gaWYgdW5uZWVkZWQgYnV0IGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgb3JpZ2luYWwgc2NyaXB0 IG5vdGF0aW9uLgoKQnVnZml4OiBldmVuIGlmIGJ0cmZzIHJlc2l6ZSBmYWlscywgdW1vdW50IHRo ZSBsYXN0IHBhcnRpdGlvbiBhbmQgcmV0dXJuIGVycm9yLgotLS0KIC4uLi9leHBhbmQtb24tZmly c3QtYm9vdF8xLjIuYmIgICAgICAgICAgICAgICB8ICAgMiArLQogLi4uL2ZpbGVzL2V4cGFuZC1s YXN0LXBhcnRpdGlvbi5zaCAgICAgICAgICAgIHwgMTM0ICsrKysrKysrKystLS0tLS0tLQogLi4u L2ZpbGVzL2V4cGFuZC1vbi1maXJzdC1ib290LnNlcnZpY2UgICAgICAgIHwgICAyICsKIDMgZmls ZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbWV0YS9yZWNpcGVzLXN1cHBvcnQvZXhwYW5kLW9uLWZpcnN0LWJvb3QvZXhwYW5kLW9uLWZp cnN0LWJvb3RfMS4yLmJiIGIvbWV0YS9yZWNpcGVzLXN1cHBvcnQvZXhwYW5kLW9uLWZpcnN0LWJv b3QvZXhwYW5kLW9uLWZpcnN0LWJvb3RfMS4yLmJiCmluZGV4IDA5OTYwMDAuLmZlN2I3MmIgMTAw NjQ0Ci0tLSBhL21ldGEvcmVjaXBlcy1zdXBwb3J0L2V4cGFuZC1vbi1maXJzdC1ib290L2V4cGFu ZC1vbi1maXJzdC1ib290XzEuMi5iYgorKysgYi9tZXRhL3JlY2lwZXMtc3VwcG9ydC9leHBhbmQt b24tZmlyc3QtYm9vdC9leHBhbmQtb24tZmlyc3QtYm9vdF8xLjIuYmIKQEAgLTEwLDcgKzEwLDcg QEAgaW5oZXJpdCBkcGtnLXJhdwogREVTQ1JJUFRJT04gPSAiVGhpcyBzZXJ2aWNlIGdyb3dzIHRo ZSBsYXN0IHBhcnRpdGlvbiB0byB0aGUgZnVsbCBtZWRpdW0gZHVyaW5nIGZpcnN0IGJvb3QiCiBN QUlOVEFJTkVSID0gImlzYXItdXNlcnMgPGlzYXItdXNlcnNAZ29vZ2xlZ3JvdXBzLmNvbT4iCiAK LURFQklBTl9ERVBFTkRTID0gInN5c3RlbWQsIHNlZCwgZ3JlcCwgY29yZXV0aWxzLCBtb3VudCwg ZTJmc3Byb2dzLCBmZGlzayAoPj0yLjI5LjItMykgfCB1dGlsLWxpbnV4ICg8Mi4yOS4yLTMpLCB1 dGlsLWxpbnV4IgorREVCSUFOX0RFUEVORFMgPSAic3lzdGVtZCwgc2VkLCBncmVwLCBjb3JldXRp bHMsIG1vdW50LCBlMmZzcHJvZ3MsIGZkaXNrICg+PTIuMjkuMi0zKSB8IHV0aWwtbGludXggKDwy LjI5LjItMyksIHV0aWwtbGludXgsIGJ0cmZzLXByb2dzIgogCiBTUkNfVVJJID0gIiBcCiAgICAg ZmlsZTovL2V4cGFuZC1vbi1maXJzdC1ib290LnNlcnZpY2UgXApkaWZmIC0tZ2l0IGEvbWV0YS9y ZWNpcGVzLXN1cHBvcnQvZXhwYW5kLW9uLWZpcnN0LWJvb3QvZmlsZXMvZXhwYW5kLWxhc3QtcGFy dGl0aW9uLnNoIGIvbWV0YS9yZWNpcGVzLXN1cHBvcnQvZXhwYW5kLW9uLWZpcnN0LWJvb3QvZmls ZXMvZXhwYW5kLWxhc3QtcGFydGl0aW9uLnNoCmluZGV4IDU3MDU1Y2MuLjVjZDZmYzMgMTAwNzU1 Ci0tLSBhL21ldGEvcmVjaXBlcy1zdXBwb3J0L2V4cGFuZC1vbi1maXJzdC1ib290L2ZpbGVzL2V4 cGFuZC1sYXN0LXBhcnRpdGlvbi5zaAorKysgYi9tZXRhL3JlY2lwZXMtc3VwcG9ydC9leHBhbmQt b24tZmlyc3QtYm9vdC9maWxlcy9leHBhbmQtbGFzdC1wYXJ0aXRpb24uc2gKQEAgLTcsOCArNywy NSBAQAogIwogIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCiAKK2V4aXRubG9nKCkgewor CWVjPSQ/CisJc2V0ICtlCisJaWYgWyAiJGVjIiAhPSAiMCIgXTsgdGhlbgorCQllY2hvICJFUlJP UjogJDAgZmFpbGVkIgorCWVsc2UKKwkJZWNobyAiJDAgc3VjY2VkZWQiCisJZmkgPi9kZXYva21z ZworCWlmIFsgIiRlYyIgIT0gIjAiIC1hIC1lIC9ldGMvdW5zdXBlcnZpc2VkIF07IHRoZW4KKwkJ cmVib290CisJZmkKK30KK2V4cG9ydCAtZiBleGl0bmxvZwordHJhcCBleGl0bmxvZyBFWElUCisK IHNldCAtZQogCit1ZGV2YWRtIHNldHRsZQorCiBST09UX0RFVj0iJChmaW5kbW50IC8gLW8gc291 cmNlIC1uKSIKIFJPT1RfREVWX05BTUU9JHtST09UX0RFViMjKi99CiBST09UX0RFVl9TTEFWRT0k KGZpbmQgL3N5cy9ibG9jay8iJHtST09UX0RFVl9OQU1FfSIvc2xhdmVzIC1taW5kZXB0aCAxIC1w cmludCAtcXVpdCAyPi9kZXYvbnVsbCB8fCB0cnVlKQpAQCAtMTYsNzAgKzMzLDY3IEBAIGlmIFsg LW4gIiR7Uk9PVF9ERVZfU0xBVkV9IiBdOyB0aGVuCiAJUk9PVF9ERVY9L2Rldi8ke1JPT1RfREVW X1NMQVZFIyMqL30KIGZpCiAKLUJPT1RfREVWPSIkKGVjaG8gIiR7Uk9PVF9ERVZ9IiB8IHNlZCAn cy9wXD9bMC05XSokLy8nKSIKLWlmIFsgIiR7Uk9PVF9ERVZ9IiA9ICIke0JPT1RfREVWfSIgXTsg dGhlbgotCWVjaG8gIkJvb3QgZGV2aWNlIGVxdWFscyByb290IGRldmljZSAtIG5vIHBhcnRpdGlv bmluZyBmb3VuZCIgPiYyCi0JZXhpdCAxCi1maQotCi0jIHRoaXMgdmFsdWUgaXMgaW4gYmxvY2tz LiBOb3JtYWxseSBhIGJsb2NrIGhhcyA1MTIgYnl0ZXMuCi1CVUZGRVJfU0laRT0zMjc2OAotQk9P VF9ERVZfTkFNRT0ke0JPT1RfREVWIyMqL30KLURJU0tfU0laRT0iJChjYXQgL3N5cy9jbGFzcy9i bG9jay8iJHtCT09UX0RFVl9OQU1FfSIvc2l6ZSkiCi1BTExfUEFSVFNfU0laRT0wCi1mb3IgUEFS VElUSU9OIGluIC9zeXMvY2xhc3MvYmxvY2svIiR7Qk9PVF9ERVZfTkFNRX0iLyIke0JPT1RfREVW X05BTUV9Iio7IGRvCi0JUEFSVF9TSVpFPSQoY2F0ICIke1BBUlRJVElPTn0iL3NpemUpCi0JQUxM X1BBUlRTX1NJWkU9JCgoQUxMX1BBUlRTX1NJWkUgKyBQQVJUX1NJWkUpKQotZG9uZQotCi1NSU5J TUFMX1NJWkU9JCgoQUxMX1BBUlRTX1NJWkUgKyBCVUZGRVJfU0laRSkpCi1pZiBbICIkRElTS19T SVpFIiAtbHQgIiRNSU5JTUFMX1NJWkUiIF07IHRoZW4KLQllY2hvICJEaXNrIGlzIHByYWN0aWNh bGx5IGFscmVhZHkgZnVsbCwgZG9pbmcgbm90aGluZy4iID4mMgotCWV4aXQgMAotZmkKKyMgZnVs bCByZXNpemluZyBvZiBleHQ0IGFuZCBidHJmcyBkb2VzIG5vdCBmYWlsIG5vciBodXJ0IGJ1dCBz dXBwb3J0aW5nIG1vcmUKKyMgZmlsZXN5c3RlbXMgaW4gZnV0dXJlIG1pZ2h0IGNoYW5nZSB0aGlz IGNvbmRpdGlvbiwgc28gY29tbWVudGluZyB0aGlzIGNvZGUKK3VzZWxlc3NfZm9yX25vdygpIHsK KwkjIHRoaXMgdmFsdWUgaXMgaW4gYmxvY2tzLiBOb3JtYWxseSBhIGJsb2NrIGhhcyA1MTIgYnl0 ZXMuCisJQlVGRkVSX1NJWkU9MzI3NjgKKwlCT09UX0RFVl9OQU1FPSR7Qk9PVF9ERVYjIyovfQor CURJU0tfU0laRT0iJChjYXQgL3N5cy9jbGFzcy9ibG9jay8iJHtCT09UX0RFVl9OQU1FfSIvc2l6 ZSkiCisJQUxMX1BBUlRTX1NJWkU9MAorCWZvciBQQVJUSVRJT04gaW4gL3N5cy9jbGFzcy9ibG9j ay8iJHtCT09UX0RFVl9OQU1FfSIvIiR7Qk9PVF9ERVZfTkFNRX0iKjsgZG8KKwkJUEFSVF9TSVpF PSQoY2F0ICIke1BBUlRJVElPTn0iL3NpemUpCisJCUFMTF9QQVJUU19TSVpFPSQoKEFMTF9QQVJU U19TSVpFICsgUEFSVF9TSVpFKSkKKwlkb25lCiAKLUxBU1RfUEFSVD0iJChzZmRpc2sgLWQgIiR7 Qk9PVF9ERVZ9IiAyPi9kZXYvbnVsbCB8IHRhaWwgLTEgfCBjdXQgLWQgJyAnIC1mIDEpIgorCU1J TklNQUxfU0laRT0kKChBTExfUEFSVFNfU0laRSArIEJVRkZFUl9TSVpFKSkKKwlpZiBbICIkRElT S19TSVpFIiAtbHQgIiRNSU5JTUFMX1NJWkUiIF07IHRoZW4KKwkJZWNobyAiRGlzayBpcyBwcmFj dGljYWxseSBhbHJlYWR5IGZ1bGwsIGRvaW5nIG5vdGhpbmcuIiA+JjIKKwkJZXhpdCAwCisJZmkK K30gCiAKLSMgVHJhbnNmb3JtIHRoZSBwYXJ0aXRpb24gdGFibGUgYXMgZm9sbG93czoKLSMKLSMg LSBSZW1vdmUgYW55ICdsYXN0LWxiYScgaGVhZGVyIHNvIHNmZGlzayB1c2VzIHRoZSBlbnRpcmUg YXZhaWxhYmxlIHNwYWNlLgotIyAtIElmIHRoaXMgcGFydGl0aW9uIHRhYmxlIGlzIE1CUiBhbmQg YW4gZXh0ZW5kZWQgcGFydGl0aW9uIGNvbnRhaW5lciAoRUJSKQotIyAgIGV4aXN0cywgd2UgYXNz dW1lIHRoaXMgbmVlZHMgdG8gYmUgZXhwYW5kZWQgYXMgd2VsbDsgcmVtb3ZlIGl0cyBzaXplCi0j ICAgZmllbGQgc28gc2ZkaXNrIGV4cGFuZHMgaXQuCi0jIC0gRm9yIHRoZSBwcmV2aW91c2x5IGZl dGNoZWQgbGFzdCBwYXJ0aXRpb24sIGFsc28gcmVtb3ZlIHRoZSBzaXplIGZpZWxkIHNvCi0jICAg c2ZkaXNrIGV4cGFuZHMgaXQuCi1zZmRpc2sgLWQgIiR7Qk9PVF9ERVZ9IiAyPi9kZXYvbnVsbCB8 IFwKLQlncmVwIC12IGxhc3QtbGJhIHwgXAotCXNlZCAnc3xeXCguKiwgXClzaXplPVteLF0qLCBc KHR5cGU9W2Y1XVwpJHxcMVwyfCcgfCBcCi0Jc2VkICdzfF5cKCciJHtMQVNUX1BBUlR9IicgLios IFwpc2l6ZT1bXixdKiwgfFwxfCcgfCBcCi0Jc2ZkaXNrIC0tZm9yY2UgIiR7Qk9PVF9ERVZ9Igot Ci0jIEluZm9ybSB0aGUga2VybmVsIGFib3V0IHRoZSBwYXJ0aXRpb25pbmcgY2hhbmdlCi1wYXJ0 eCAtdSAiJHtMQVNUX1BBUlR9IgotCi0jIHRoaXMgaXMgZm9yIGRlYmlhbiBzdHJldGNoIG9yIHN5 c3RlbWQgPCAyMzYKLWlmIFsgISAteCAvbGliL3N5c3RlbWQvc3lzdGVtZC1ncm93ZnMgXTsgdGhl bgotCSMgRG8gbm90IGZhaWwgcmVzaXplMmZzIGlmIG5vIG10YWIgZW50cnkgaXMgZm91bmQsIGUu Zy4sCi0JIyB3aGVuIHVzaW5nIHN5c3RlbWQgbW91bnQgdW5pdHMuCi0JZXhwb3J0IEVYVDJGU19O T19NVEFCX09LPTEKKyMgVE9ETywgMTQuMTIuMjAyMjogdGhpcyBjaGFuZ2Ugc2hvdWxkIGJlIHRl c3RlZCB3aXRoIGEgc2luZ2xlIHZvbHVtZSBzeXN0ZW0KKyMgcHJlbGltaW5hcnkgdGVzdHMgc2hv d24gdGhhdCBleHQ0IGFuZCBidHJmcyBlbnRpcmUgdm9sdW1lcyBjYW0gYmUgcmVzaXplZCAKK0JP T1RfREVWPSIkKGVjaG8gIiR7Uk9PVF9ERVZ9IiB8IHNlZCAncy9wXD9bMC05XSokLy8nKSIKK2lm IFsgIiR7Uk9PVF9ERVZ9IiA9ICIke0JPT1RfREVWfSIgXTsgdGhlbgorCUxBU1RfUEFSVD0iJHtC T09UX0RFVn0iCitlbHNlCisJTEFTVF9QQVJUPSIkKHNmZGlzayAtZCAiJHtCT09UX0RFVn0iIDI+ L2Rldi9udWxsIHwgdGFpbCAtMSB8IGN1dCAtZCAnICcgLWYgMSkiCiAKLQlyZXNpemUyZnMgIiR7 TEFTVF9QQVJUfSIKLQlleGl0IDAKLWZpCisJIyBUcmFuc2Zvcm0gdGhlIHBhcnRpdGlvbiB0YWJs ZSBhcyBmb2xsb3dzOgorCSMKKwkjIC0gUmVtb3ZlIGFueSAnbGFzdC1sYmEnIGhlYWRlciBzbyBz ZmRpc2sgdXNlcyB0aGUgZW50aXJlIGF2YWlsYWJsZSBzcGFjZS4KKwkjIC0gSWYgdGhpcyBwYXJ0 aXRpb24gdGFibGUgaXMgTUJSIGFuZCBhbiBleHRlbmRlZCBwYXJ0aXRpb24gY29udGFpbmVyIChF QlIpCisJIyAgIGV4aXN0cywgd2UgYXNzdW1lIHRoaXMgbmVlZHMgdG8gYmUgZXhwYW5kZWQgYXMg d2VsbDsgcmVtb3ZlIGl0cyBzaXplCisJIyAgIGZpZWxkIHNvIHNmZGlzayBleHBhbmRzIGl0Lgor CSMgLSBGb3IgdGhlIHByZXZpb3VzbHkgZmV0Y2hlZCBsYXN0IHBhcnRpdGlvbiwgYWxzbyByZW1v dmUgdGhlIHNpemUgZmllbGQgc28KKwkjICAgc2ZkaXNrIGV4cGFuZHMgaXQuCisJc2ZkaXNrIC1k ICIke0JPT1RfREVWfSIgMj4vZGV2L251bGwgfCBcCisJCWdyZXAgLXYgbGFzdC1sYmEgfCBcCisJ CXNlZCAnc3xeXCguKiwgXClzaXplPVteLF0qLCBcKHR5cGU9W2Y1XVwpJHxcMVwyfCcgfCBcCisJ CXNlZCAnc3xeXCgnIiR7TEFTVF9QQVJUfSInIC4qLCBcKXNpemU9W14sXSosIHxcMXwnIHwgXAor CQlzZmRpc2sgLS1mb3JjZSAiJHtCT09UX0RFVn0iCiAKLWlmIGdyZXAgLXEgeC1zeXN0ZW1kLmdy b3dmcyAvZXRjL2ZzdGFiOyB0aGVuCi0JZWNobyAiRm91bmQgeC1zeXN0ZW1kLmdyb3dmcyBvcHRp b24gaW4gL2V0Yy9mc3RhYiwgd29uJ3QgY2FsbCBpdCBleHBsaWNpdGx5LiIgPiYyCi0JZXhpdCAw CisJIyBJbmZvcm0gdGhlIGtlcm5lbCBhYm91dCB0aGUgcGFydGl0aW9uaW5nIGNoYW5nZQorCXBh cnR4IC11ICIke0xBU1RfUEFSVH0iCiBmaQogCi0jIG1vdW50ICRMQVNUX1BBUlQgb3V0IG9mIHRy ZWUsIHNvIHdlIHdvbid0IGNvbmZsaWN0IHdpdGggb3RoZXIgbW91bnRzCi1NT1VOVF9QT0lOVD0k KG1rdGVtcCAtZCAtcCAvbW50ICIkKGJhc2VuYW1lICIkMCIpLlhYWFhYWFhYWFgiKQotaWYgWyAh IC1kICIke01PVU5UX1BPSU5UfSIgXTsgdGhlbgotCWVjaG8gIkNhbm5vdCBjcmVhdGUgdGVtcG9y YXJ5IG1vdW50IHBvaW50ICR7TU9VTlRfUE9JTlR9LiIgPiYyCi0JZXhpdCAxCi1maQorIyBEbyBu b3QgZmFpbCByZXNpemUyZnMgaWYgbm8gbXRhYiBlbnRyeSBpcyBmb3VuZCwgZS5nLiwKKyMgd2hl biB1c2luZyBzeXN0ZW1kIG1vdW50IHVuaXRzLgorZXhwb3J0IEVYVDJGU19OT19NVEFCX09LPTEK IAotbW91bnQgIiR7TEFTVF9QQVJUfSIgIiR7TU9VTlRfUE9JTlR9IgotL2xpYi9zeXN0ZW1kL3N5 c3RlbWQtZ3Jvd2ZzICIke01PVU5UX1BPSU5UfSIKLXVtb3VudCAiJHtNT1VOVF9QT0lOVH0iCi1y bWRpciAiJHtNT1VOVF9QT0lOVH0iCitjYXNlICQobHNibGsgLWZubyBGU1RZUEUgIiR7TEFTVF9Q QVJUfSIpIGluCisJZXh0WzIzNF0pIHJlc2l6ZTJmcyAiJHtMQVNUX1BBUlR9IgorCQk7OworCWJ0 cmZzKSAJZXJyPTAKKwkJdG1wZGlyPSQobWt0ZW1wIC1kIC1wICIkVE1QRElSIiBidHJmcy5YWFhY IHx8IFwKKwkJCW1rdGVtcCAtZCAtcCAiL2Rldi9zaG0iIGJ0cmZzLlhYWFgpCisJCW1vdW50ICIk e0xBU1RfUEFSVH0iICIkdG1wZGlyIgorCQlidHJmcyBmaWxlc3lzdGVtIHJlc2l6ZSBtYXggIiR0 bXBkaXIiIHx8IGVycj0xCisJCXVtb3VudCAiJHRtcGRpciIgJiYgcm1kaXIgIiR0bXBkaXIiCisJ CWV4aXQgJGVycgorCQk7OworCSopCWVjaG8gIldBUk5JTkc6ICQwIHVuc3VwcG9ydGVkIGZpbGVz eXN0ZW0iID4vZGV2L2ttc2cgfHwgdHJ1ZQorCQk7OworZXNhYwpkaWZmIC0tZ2l0IGEvbWV0YS9y ZWNpcGVzLXN1cHBvcnQvZXhwYW5kLW9uLWZpcnN0LWJvb3QvZmlsZXMvZXhwYW5kLW9uLWZpcnN0 LWJvb3Quc2VydmljZSBiL21ldGEvcmVjaXBlcy1zdXBwb3J0L2V4cGFuZC1vbi1maXJzdC1ib290 L2ZpbGVzL2V4cGFuZC1vbi1maXJzdC1ib290LnNlcnZpY2UKaW5kZXggZmRhNTAwMS4uMmMxMjBj NCAxMDA2NDQKLS0tIGEvbWV0YS9yZWNpcGVzLXN1cHBvcnQvZXhwYW5kLW9uLWZpcnN0LWJvb3Qv ZmlsZXMvZXhwYW5kLW9uLWZpcnN0LWJvb3Quc2VydmljZQorKysgYi9tZXRhL3JlY2lwZXMtc3Vw cG9ydC9leHBhbmQtb24tZmlyc3QtYm9vdC9maWxlcy9leHBhbmQtb24tZmlyc3QtYm9vdC5zZXJ2 aWNlCkBAIC03LDcgKzcsOSBAQAogRGVzY3JpcHRpb249RXhwYW5kIGxhc3QgcGFydGl0aW9uCiBE ZWZhdWx0RGVwZW5kZW5jaWVzPW5vCiBDb25mbGljdHM9c2h1dGRvd24udGFyZ2V0CitSZXF1aXJl cz1zeXN0ZW1kLXVkZXZkLnNlcnZpY2UKIEFmdGVyPXN5c3RlbWQtcmVtb3VudC1mcy5zZXJ2aWNl CitBZnRlcj1zeXN0ZW1kLXVkZXZkLnNlcnZpY2UKIEJlZm9yZT1sb2NhbC1mcy1wcmUudGFyZ2V0 IHNodXRkb3duLnRhcmdldAogQ29uZGl0aW9uUGF0aElzUmVhZFdyaXRlPS9ldGMKIAotLSAKMi4z NC4xCgo= --00000000000099cd2705efe5d539--