Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vNmgv-00Eaxh-2h for pgsql-hackers@arkaria.postgresql.org; Tue, 25 Nov 2025 06:38:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vNmgs-006n6P-1Z for pgsql-hackers@arkaria.postgresql.org; Tue, 25 Nov 2025 06:38:18 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vNmgs-006n6H-02 for pgsql-hackers@lists.postgresql.org; Tue, 25 Nov 2025 06:38:18 +0000 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vNmgp-001N9c-16 for pgsql-hackers@lists.postgresql.org; Tue, 25 Nov 2025 06:38:17 +0000 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-3438d4ae152so5690116a91.1 for ; Mon, 24 Nov 2025 22:38:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764052692; x=1764657492; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=rNoejThZrJaTG8OVt3C7do+WyQELNzah41HL5Gt/9KI=; b=GuX/U6IFnfXT3mYzI+BCx6GSIn7PkXCuipk6kFkGvT+g1gfXAIK8RcNMX3LPcwH/Ru CssN4vAWAu6Kz8Z0tyy8R6KNiWYMmC4/1Xq3/P9y5cOOVZhGTiFk1A9CH1z8/bLomiM8 UELSPyNg6/yBP461rfqntr9UVlnK4VTi4y05K9aQuKwttRm6QhUVn5UfsCXhC908o+Zh lbB5tw9IiOcLRC1/4/juyqXZ1N+U18SEtD9RMbLxmL6y5F9OETlxBjn36KEzFohXECjQ 7A164+rkfYJcVGiOKS9i5t02bFFXLwOpRAWCWuDE0CfBQFLXWOgsQTzLli8Ww8jw8XiY mcbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764052692; x=1764657492; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=rNoejThZrJaTG8OVt3C7do+WyQELNzah41HL5Gt/9KI=; b=evfsoHzP3iMqdCnoyq9gToX2pSXD3TnFuG/O2mh7p83vOO/GlEepTsOhWWT9wMEC5x Q/UGITSUAaa0KY1SGRXR/TJSneACbBxxTH6CDL9IIE4NS/g6+YFu2nv2k9Gn2acc544Q y/dCuPc0OLVRBU/v4HrCsXve8Y0lb7IdYMS3mvrYVWlfe0F7Z7eQDbMUxZqyx6kELNcw pNwely1FEtQEUYxExgumdeNCMBW14L+wN9mk5lAnR6AIRr5tXTkFLpbUahgYF7qMlb/l +64rtOxRjwNzDH3n2+T9oNtp997/isMfzH/41DxUtz0c5s7ZwT+JDaNpBEczxqWLz2yt 3dIw== X-Forwarded-Encrypted: i=1; AJvYcCXzu1U7lfxd4Wamja7hoWm8oz04FboDywf79JI+XpRve3Tpy0ajhdTS+wQwFkpfI2MXqubFqC1rA9At+uaL@lists.postgresql.org X-Gm-Message-State: AOJu0Yz9fIRvEZqRNYfjZyfgW69NI+Fqcz9THrtnWCx97DIxUDpUFtmO 8hKzruEg6irwUyhsx/sqUXq9mG4OKxqfIctll+m05Ta1cOwzvDclKfosfhFy09WmnL+1hun04nt MbJ8O9/I97Dnou39KrMq2l3HlESk4s4A= X-Gm-Gg: ASbGncsRYyx42gJeMSO1hHddmCaOym/YbJYh5O4Zs7DFIa4TDHw9YhGHd7dP/fzy2bK dEXtxYO+Ruu7rE6Rj6lIdRvB+JczpYbuqbHwkNStsiTwzhsEE/aZ5Ua2NYyAuVxDBXosnFjtcap 7MJdo+fMXqGZ9nl1u8gqwVo5RFI/0ESGhVkfUcuJZNxrskY3O3YU3kxuKuOhwlxpaf0IyJCpopX 6BTlSJlo4cPM5Q+WmEGOe3K1a3TuzOpK5qMS0MNutbJNOkeBMXFRY+c3phOJiBUF0TR2loG1Q== X-Google-Smtp-Source: AGHT+IHnVRizFLuSDwmM6dPoVFizHS3s0y6RByX7hoRqA/8/CwYTglz/T1xc/sEg3vzVKX3ciIv/mCmJYHRk/+YA+ew= X-Received: by 2002:a17:90a:c2c7:b0:33b:dec9:d9aa with SMTP id 98e67ed59e1d1-34733f483eemr11723599a91.25.1764052691846; Mon, 24 Nov 2025 22:38:11 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Amul Sul Date: Tue, 25 Nov 2025 12:07:32 +0530 X-Gm-Features: AWmQ_bm1oebitSIYqEU_HcHL008tfBobED3OPbjRc-Gv7_gSIPCYqgGkh6LvgmY Message-ID: Subject: Re: pg_waldump: support decoding of WAL inside tarfile To: Jakub Wartak Cc: Robert Haas , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000102ced06446586db" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000102ced06446586db Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Nov 21, 2025 at 5:14=E2=80=AFPM Amul Sul wrote: > > On Wed, Nov 19, 2025 at 1:50=E2=80=AFPM Jakub Wartak > wrote: > > > > On Mon, Nov 17, 2025 at 5:51=E2=80=AFAM Amul Sul wr= ote: > > > > > > On Thu, Nov 6, 2025 at 2:33=E2=80=AFPM Amul Sul w= rote: > > > > > > > > On Mon, Oct 20, 2025 at 8:05=E2=80=AFPM Robert Haas wrote: > > > > > > > > > > On Thu, Oct 16, 2025 at 7:49=E2=80=AFAM Amul Sul wrote: > > > > > [....] > > > > Kindly have a look at the attached version. Thank you ! > > > > > > > > > > Attached is the rebased version against the latest master head (e76de= fbcf09). > > > > Hi Amul, thanks for working on this. I haven't really looked at the > > source code deeply (I trust Robert eyes much more than mine on this > > one), just skimmed a little bit: > > > > 1. As stated earlier, get_tmp_walseg_path() is still vulnerable (it > > uses predictable path that could be used by attacker in $TMPDIR) > > > > Yeah, I haven't done anything regarding this since I am unsure of what > should be done and what the risks involved are. I am thinking of > taking Robert's opinion on this. > Per offline discussion with Robert and Jakub, I have updated the patch to use mkdtemp() as suggested, which is already available in the tree for similar purposes. Thanks ! Regards, Amul --000000000000102ced06446586db Content-Type: application/x-patch; name="v8-0001-Refactor-pg_waldump-Move-some-declarations-to-new.patch" Content-Disposition: attachment; filename="v8-0001-Refactor-pg_waldump-Move-some-declarations-to-new.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mie7aj2z0 RnJvbSAxNzEzNTkzZjc4YmI3Nzk5ZWYyNzg0MjRiMGVmYTU2YWNlZjhiZmJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjQgSnVuIDIwMjUgMTE6MzM6MjAgKzA1MzAKU3ViamVjdDogW1BBVENIIHY4IDEvOF0gUmVm YWN0b3I6IHBnX3dhbGR1bXA6IE1vdmUgc29tZSBkZWNsYXJhdGlvbnMgdG8gbmV3CiBwZ193YWxk dW1wLmgKClRoaXMgY2hhbmdlIHByZXBhcmVzIGZvciBhIHNlY29uZCBzb3VyY2UgZmlsZSBpbiB0 aGlzIGRpcmVjdG9yeSB0bwpzdXBwb3J0IHJlYWRpbmcgV0FMIGZyb20gdGFyIGZpbGVzLiBDb21t b24gc3RydWN0dXJlcywgZGVjbGFyYXRpb25zLAphbmQgZnVuY3Rpb25zIGFyZSBiZWluZyBleHBv cnRlZCB0aHJvdWdoIHRoaXMgaW5jbHVkZSBmaWxlIHNvCnRoZXkgY2FuIGJlIHVzZWQgaW4gYm90 aCBmaWxlcy4KLS0tCiBzcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jIHwgMTEgKystLS0t LS0tLS0KIHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmggfCAyNyArKysrKysrKysrKysr KysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgOSBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVt cC5oCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYyBiL3NyYy9i aW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKaW5kZXggYzZkNmJhNzllNDQuLjU4NDZlZTI0ZjQ2 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCisrKyBiL3NyYy9i aW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJj b21tb24vbG9nZ2luZy5oIgogI2luY2x1ZGUgImNvbW1vbi9yZWxwYXRoLmgiCiAjaW5jbHVkZSAi Z2V0b3B0X2xvbmcuaCIKKyNpbmNsdWRlICJwZ193YWxkdW1wLmgiCiAjaW5jbHVkZSAicm1ncmRl c2MuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1ZnBhZ2UuaCIKIApAQCAtMzksMTkgKzQwLDExIEBA CiAKIHN0YXRpYyBjb25zdCBjaGFyICpwcm9nbmFtZTsKIAotc3RhdGljIGludAlXYWxTZWdTejsK K2ludAkJCVdhbFNlZ1N6ID0gREVGQVVMVF9YTE9HX1NFR19TSVpFOwogc3RhdGljIHZvbGF0aWxl IHNpZ19hdG9taWNfdCB0aW1lX3RvX3N0b3AgPSBmYWxzZTsKIAogc3RhdGljIGNvbnN0IFJlbEZp bGVMb2NhdG9yIGVtcHR5UmVsRmlsZUxvY2F0b3IgPSB7MCwgMCwgMH07CiAKLXR5cGVkZWYgc3Ry dWN0IFhMb2dEdW1wUHJpdmF0ZQotewotCVRpbWVMaW5lSUQJdGltZWxpbmU7Ci0JWExvZ1JlY1B0 cglzdGFydHB0cjsKLQlYTG9nUmVjUHRyCWVuZHB0cjsKLQlib29sCQllbmRwdHJfcmVhY2hlZDsK LX0gWExvZ0R1bXBQcml2YXRlOwotCiB0eXBlZGVmIHN0cnVjdCBYTG9nRHVtcENvbmZpZwogewog CS8qIGRpc3BsYXkgb3B0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3Bn X3dhbGR1bXAuaCBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjllNjJiNjRlYWQ1Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaApAQCAtMCwwICsxLDI3IEBACisvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ193YWxkdW1wLmggLSBkZWNvZGUgYW5kIGRpc3BsYXkg V0FMCisgKgorICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERl dmVsb3BtZW50IEdyb3VwCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCQkgIHNyYy9iaW4vcGdf d2FsZHVtcC9wZ193YWxkdW1wLmgKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVmIFBH X1dBTERVTVBfSAorI2RlZmluZSBQR19XQUxEVU1QX0gKKworI2luY2x1ZGUgImFjY2Vzcy94bG9n ZGVmcy5oIgorCitleHRlcm4gaW50CVdhbFNlZ1N6OworCisvKiBDb250YWlucyB0aGUgbmVjZXNz YXJ5IGluZm9ybWF0aW9uIHRvIGRyaXZlIFdBTCBkZWNvZGluZyAqLwordHlwZWRlZiBzdHJ1Y3Qg WExvZ0R1bXBQcml2YXRlCit7CisJVGltZUxpbmVJRAl0aW1lbGluZTsKKwlYTG9nUmVjUHRyCXN0 YXJ0cHRyOworCVhMb2dSZWNQdHIJZW5kcHRyOworCWJvb2wJCWVuZHB0cl9yZWFjaGVkOworfSBY TG9nRHVtcFByaXZhdGU7CisKKyNlbmRpZgkJLyogZW5kIG9mIFBHX1dBTERVTVBfSCAqLwotLSAK Mi40Ny4xCgo= --000000000000102ced06446586db Content-Type: application/x-patch; name="v8-0002-Refactor-pg_waldump-Separate-logic-used-to-calcul.patch" Content-Disposition: attachment; filename="v8-0002-Refactor-pg_waldump-Separate-logic-used-to-calcul.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mie7amp81 RnJvbSBjNWNlNjg1MTJhNTRiN2Y1ODZiNDU4Mzc0ZjY4OWRmNDA2ZjM5YWQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjYgSnVuIDIwMjUgMTE6NDI6NTMgKzA1MzAKU3ViamVjdDogW1BBVENIIHY4IDIvOF0gUmVm YWN0b3I6IHBnX3dhbGR1bXA6IFNlcGFyYXRlIGxvZ2ljIHVzZWQgdG8gY2FsY3VsYXRlCiB0aGUg cmVxdWlyZWQgcmVhZCBzaXplLgoKVGhpcyByZWZhY3RvcmluZyBwcmVwYXJlcyB0aGUgY29kZWJh c2UgZm9yIGFuIHVwY29taW5nIHBhdGNoIHRoYXQgd2lsbApzdXBwb3J0IHJlYWRpbmcgV0FMIGZy b20gdGFyIGZpbGVzLiBUaGUgbG9naWMgZm9yIGNhbGN1bGF0aW5nIHRoZQpyZXF1aXJlZCByZWFk IHNpemUgaGFzIGJlZW4gdXBkYXRlZCB0byBoYW5kbGUgYm90aCBub3JtYWwgV0FMIGZpbGVzCmFu ZCBXQUwgZmlsZXMgbG9jYXRlZCBpbnNpZGUgYSB0YXIgYXJjaGl2ZS4KLS0tCiBzcmMvYmluL3Bn X3dhbGR1bXAvcGdfd2FsZHVtcC5jIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYyBiL3NyYy9iaW4vcGdf d2FsZHVtcC9wZ193YWxkdW1wLmMKaW5kZXggNTg0NmVlMjRmNDYuLjBkYzI4ZWEzNjBjIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdf d2FsZHVtcC9wZ193YWxkdW1wLmMKQEAgLTMyNiw2ICszMjYsMjkgQEAgaWRlbnRpZnlfdGFyZ2V0 X2RpcmVjdG9yeShjaGFyICpkaXJlY3RvcnksIGNoYXIgKmZuYW1lKQogCXJldHVybiBOVUxMOwkJ CQkvKiBub3QgcmVhY2hlZCAqLwogfQogCisvKiBSZXR1cm5zIHRoZSBzaXplIGluIGJ5dGVzIG9m IHRoZSBkYXRhIHRvIGJlIHJlYWQuICovCitzdGF0aWMgaW5saW5lIGludAorcmVxdWlyZWRfcmVh ZF9sZW4oWExvZ0R1bXBQcml2YXRlICpwcml2YXRlLCBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQdHIs CisJCQkJICBpbnQgcmVxTGVuKQoreworCWludAkJCWNvdW50ID0gWExPR19CTENLU1o7CisKKwlp ZiAoWExvZ1JlY1B0cklzVmFsaWQocHJpdmF0ZS0+ZW5kcHRyKSkKKwl7CisJCWlmICh0YXJnZXRQ YWdlUHRyICsgWExPR19CTENLU1ogPD0gcHJpdmF0ZS0+ZW5kcHRyKQorCQkJY291bnQgPSBYTE9H X0JMQ0tTWjsKKwkJZWxzZSBpZiAodGFyZ2V0UGFnZVB0ciArIHJlcUxlbiA8PSBwcml2YXRlLT5l bmRwdHIpCisJCQljb3VudCA9IHByaXZhdGUtPmVuZHB0ciAtIHRhcmdldFBhZ2VQdHI7CisJCWVs c2UKKwkJeworCQkJcHJpdmF0ZS0+ZW5kcHRyX3JlYWNoZWQgPSB0cnVlOworCQkJcmV0dXJuIC0x OworCQl9CisJfQorCisJcmV0dXJuIGNvdW50OworfQorCiAvKiBwZ193YWxkdW1wJ3MgWExvZ1Jl YWRlclJvdXRpbmUtPnNlZ21lbnRfb3BlbiBjYWxsYmFjayAqLwogc3RhdGljIHZvaWQKIFdBTER1 bXBPcGVuU2VnbWVudChYTG9nUmVhZGVyU3RhdGUgKnN0YXRlLCBYTG9nU2VnTm8gbmV4dFNlZ05v LApAQCAtMzgzLDIxICs0MDYsMTEgQEAgV0FMRHVtcFJlYWRQYWdlKFhMb2dSZWFkZXJTdGF0ZSAq c3RhdGUsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwgaW50IHJlcUxlbiwKIAkJCQlYTG9nUmVj UHRyIHRhcmdldFB0ciwgY2hhciAqcmVhZEJ1ZmYpCiB7CiAJWExvZ0R1bXBQcml2YXRlICpwcml2 YXRlID0gc3RhdGUtPnByaXZhdGVfZGF0YTsKLQlpbnQJCQljb3VudCA9IFhMT0dfQkxDS1NaOwor CWludAkJCWNvdW50ID0gcmVxdWlyZWRfcmVhZF9sZW4ocHJpdmF0ZSwgdGFyZ2V0UGFnZVB0ciwg cmVxTGVuKTsKIAlXQUxSZWFkRXJyb3IgZXJyaW5mbzsKIAotCWlmIChYTG9nUmVjUHRySXNWYWxp ZChwcml2YXRlLT5lbmRwdHIpKQotCXsKLQkJaWYgKHRhcmdldFBhZ2VQdHIgKyBYTE9HX0JMQ0tT WiA8PSBwcml2YXRlLT5lbmRwdHIpCi0JCQljb3VudCA9IFhMT0dfQkxDS1NaOwotCQllbHNlIGlm ICh0YXJnZXRQYWdlUHRyICsgcmVxTGVuIDw9IHByaXZhdGUtPmVuZHB0cikKLQkJCWNvdW50ID0g cHJpdmF0ZS0+ZW5kcHRyIC0gdGFyZ2V0UGFnZVB0cjsKLQkJZWxzZQotCQl7Ci0JCQlwcml2YXRl LT5lbmRwdHJfcmVhY2hlZCA9IHRydWU7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQl9CisJaWYgKHBy aXZhdGUtPmVuZHB0cl9yZWFjaGVkKQorCQlyZXR1cm4gLTE7CiAKIAlpZiAoIVdBTFJlYWQoc3Rh dGUsIHJlYWRCdWZmLCB0YXJnZXRQYWdlUHRyLCBjb3VudCwgcHJpdmF0ZS0+dGltZWxpbmUsCiAJ CQkJICZlcnJpbmZvKSkKLS0gCjIuNDcuMQoK --000000000000102ced06446586db Content-Type: application/x-patch; name="v8-0003-Refactor-pg_waldump-Restructure-TAP-tests.patch" Content-Disposition: attachment; filename="v8-0003-Refactor-pg_waldump-Restructure-TAP-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mie7ar2u2 RnJvbSBlMGEyMjk2YzBiNzliZjNlMmM2MmM3MTI4MjljOWFhYTBiNTE2MzM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMzAgSnVsIDIwMjUgMTI6NDM6MzAgKzA1MzAKU3ViamVjdDogW1BBVENIIHY4IDMvOF0gUmVm YWN0b3I6IHBnX3dhbGR1bXA6IFJlc3RydWN0dXJlIFRBUCB0ZXN0cy4KClJlc3RydWN0dXJlZCBz b21lIHRlc3RzIHRvIHJ1biBpbnNpZGUgYSBsb29wLCBmYWNpbGl0YXRpbmcgdGhlaXIKcmUtZXhl Y3V0aW9uIGZvciBkZWNvZGluZyBXQUwgZnJvbSB0YXIgYXJjaGl2ZXMuCi0tLQogc3JjL2Jpbi9w Z193YWxkdW1wL3QvMDAxX2Jhc2ljLnBsIHwgMTIzICsrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbCBiL3NyYy9iaW4v cGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbAppbmRleCBmMjZkNzVlMDFjZi4uMWI3MTJlOGQ3NGQg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbAorKysgYi9zcmMv YmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMucGwKQEAgLTE5OCwyOCArMTk4LDYgQEAgY29tbWFu ZF9saWtlKAogCV0sCiAJcXIvLi8sCiAJJ3J1bnMgd2l0aCBzdGFydCBhbmQgZW5kIHNlZ21lbnQg c3BlY2lmaWVkJyk7Ci1jb21tYW5kX2ZhaWxzX2xpa2UoCi0JWyAncGdfd2FsZHVtcCcsICctLXBh dGgnID0+ICRub2RlLT5kYXRhX2RpciBdLAotCXFyL2Vycm9yOiBubyBzdGFydCBXQUwgbG9jYXRp b24gZ2l2ZW4vLAotCSdwYXRoIG9wdGlvbiByZXF1aXJlcyBzdGFydCBsb2NhdGlvbicpOwotY29t bWFuZF9saWtlKAotCVsKLQkJJ3BnX3dhbGR1bXAnLAotCQknLS1wYXRoJyA9PiAkbm9kZS0+ZGF0 YV9kaXIsCi0JCSctLXN0YXJ0JyA9PiAkc3RhcnRfbHNuLAotCQknLS1lbmQnID0+ICRlbmRfbHNu LAotCV0sCi0JcXIvLi8sCi0JJ3J1bnMgd2l0aCBwYXRoIG9wdGlvbiBhbmQgc3RhcnQgYW5kIGVu ZCBsb2NhdGlvbnMnKTsKLWNvbW1hbmRfZmFpbHNfbGlrZSgKLQlbCi0JCSdwZ193YWxkdW1wJywK LQkJJy0tcGF0aCcgPT4gJG5vZGUtPmRhdGFfZGlyLAotCQknLS1zdGFydCcgPT4gJHN0YXJ0X2xz biwKLQldLAotCXFyL2Vycm9yOiBlcnJvciBpbiBXQUwgcmVjb3JkIGF0LywKLQknZmFsbGluZyBv ZmYgdGhlIGVuZCBvZiB0aGUgV0FMIHJlc3VsdHMgaW4gYW4gZXJyb3InKTsKLQogY29tbWFuZF9s aWtlKAogCVsKIAkJJ3BnX3dhbGR1bXAnLCAnLS1xdWlldCcsCkBAIC0yMjcsMTUgKzIwNSw2IEBA IGNvbW1hbmRfbGlrZSgKIAldLAogCXFyL14kLywKIAknbm8gb3V0cHV0IHdpdGggLS1xdWlldCBv cHRpb24nKTsKLWNvbW1hbmRfZmFpbHNfbGlrZSgKLQlbCi0JCSdwZ193YWxkdW1wJywgJy0tcXVp ZXQnLAotCQknLS1wYXRoJyA9PiAkbm9kZS0+ZGF0YV9kaXIsCi0JCSctLXN0YXJ0JyA9PiAkc3Rh cnRfbHNuCi0JXSwKLQlxci9lcnJvcjogZXJyb3IgaW4gV0FMIHJlY29yZCBhdC8sCi0JJ2Vycm9y cyBhcmUgc2hvd24gd2l0aCAtLXF1aWV0Jyk7Ci0KIAogIyBUZXN0IGZvcjogRGlzcGxheSBhIG1l c3NhZ2UgdGhhdCB3ZSdyZSBza2lwcGluZyBkYXRhIGlmIGBmcm9tYAogIyB3YXNuJ3QgYSBwb2lu dGVyIHRvIHRoZSBzdGFydCBvZiBhIHJlY29yZC4KQEAgLTI3Miw3ICsyNDEsNiBAQCBzdWIgdGVz dF9wZ193YWxkdW1wCiAKIAlteSAkcmVzdWx0ID0gSVBDOjpSdW46OnJ1biBbCiAJCSdwZ193YWxk dW1wJywKLQkJJy0tcGF0aCcgPT4gJG5vZGUtPmRhdGFfZGlyLAogCQknLS1zdGFydCcgPT4gJHN0 YXJ0X2xzbiwKIAkJJy0tZW5kJyA9PiAkZW5kX2xzbiwKIAkJQG9wdHMKQEAgLTI4OCwzOCArMjU2 LDgxIEBAIHN1YiB0ZXN0X3BnX3dhbGR1bXAKIAogbXkgQGxpbmVzOwogCi1AbGluZXMgPSB0ZXN0 X3BnX3dhbGR1bXA7Ci1pcyhncmVwKCEvXnJtZ3I6IFx3LywgQGxpbmVzKSwgMCwgJ2FsbCBvdXRw dXQgbGluZXMgYXJlIHJtZ3IgbGluZXMnKTsKK215IEBzY2VuYXJpbyA9ICgKKwl7CisJCSdwYXRo JyA9PiAkbm9kZS0+ZGF0YV9kaXIKKwl9KTsKIAotQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCct LWxpbWl0JyA9PiA2KTsKLWlzKEBsaW5lcywgNiwgJ2xpbWl0IG9wdGlvbiBvYnNlcnZlZCcpOwor Zm9yIG15ICRzY2VuYXJpbyAoQHNjZW5hcmlvKQoreworCW15ICRwYXRoID0gJHNjZW5hcmlvLT57 J3BhdGgnfTsKIAotQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLWZ1bGxwYWdlJyk7Ci1pcyhn cmVwKCEvXnJtZ3I6LipcYkZQV1xiLywgQGxpbmVzKSwgMCwgJ2FsbCBvdXRwdXQgbGluZXMgYXJl IEZQVycpOworCVNLSVA6CisJeworCQljb21tYW5kX2ZhaWxzX2xpa2UoCisJCQlbICdwZ193YWxk dW1wJywgJy0tcGF0aCcgPT4gJHBhdGggXSwKKwkJCXFyL2Vycm9yOiBubyBzdGFydCBXQUwgbG9j YXRpb24gZ2l2ZW4vLAorCQkJJ3BhdGggb3B0aW9uIHJlcXVpcmVzIHN0YXJ0IGxvY2F0aW9uJyk7 CisJCWNvbW1hbmRfbGlrZSgKKwkJCVsKKwkJCQkncGdfd2FsZHVtcCcsCisJCQkJJy0tcGF0aCcg PT4gJHBhdGgsCisJCQkJJy0tc3RhcnQnID0+ICRzdGFydF9sc24sCisJCQkJJy0tZW5kJyA9PiAk ZW5kX2xzbiwKKwkJCV0sCisJCQlxci8uLywKKwkJCSdydW5zIHdpdGggcGF0aCBvcHRpb24gYW5k IHN0YXJ0IGFuZCBlbmQgbG9jYXRpb25zJyk7CisJCWNvbW1hbmRfZmFpbHNfbGlrZSgKKwkJCVsK KwkJCQkncGdfd2FsZHVtcCcsCisJCQkJJy0tcGF0aCcgPT4gJHBhdGgsCisJCQkJJy0tc3RhcnQn ID0+ICRzdGFydF9sc24sCisJCQldLAorCQkJcXIvZXJyb3I6IGVycm9yIGluIFdBTCByZWNvcmQg YXQvLAorCQkJJ2ZhbGxpbmcgb2ZmIHRoZSBlbmQgb2YgdGhlIFdBTCByZXN1bHRzIGluIGFuIGVy cm9yJyk7CiAKLUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1zdGF0cycpOwotbGlrZSgkbGlu ZXNbMF0sIHFyL1dBTCBzdGF0aXN0aWNzLywgInN0YXRpc3RpY3Mgb24gc3Rkb3V0Iik7Ci1pcyhn cmVwKC9ecm1ncjovLCBAbGluZXMpLCAwLCAnbm8gcm1nciBsaW5lcyBvdXRwdXQnKTsKKwkJY29t bWFuZF9mYWlsc19saWtlKAorCQkJWworCQkJCSdwZ193YWxkdW1wJywgJy0tcXVpZXQnLAorCQkJ CSctLXBhdGgnID0+ICRwYXRoLAorCQkJCSctLXN0YXJ0JyA9PiAkc3RhcnRfbHNuCisJCQldLAor CQkJcXIvZXJyb3I6IGVycm9yIGluIFdBTCByZWNvcmQgYXQvLAorCQkJJ2Vycm9ycyBhcmUgc2hv d24gd2l0aCAtLXF1aWV0Jyk7CiAKLUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1zdGF0cz1y ZWNvcmQnKTsKLWxpa2UoJGxpbmVzWzBdLCBxci9XQUwgc3RhdGlzdGljcy8sICJzdGF0aXN0aWNz IG9uIHN0ZG91dCIpOwotaXMoZ3JlcCgvXnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25vIHJtZ3IgbGlu ZXMgb3V0cHV0Jyk7CisJCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0 aCk7CisJCWlzKGdyZXAoIS9ecm1ncjogXHcvLCBAbGluZXMpLCAwLCAnYWxsIG91dHB1dCBsaW5l cyBhcmUgcm1nciBsaW5lcycpOwogCi1AbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tcm1ncicg PT4gJ0J0cmVlJyk7Ci1pcyhncmVwKCEvXnJtZ3I6IEJ0cmVlLywgQGxpbmVzKSwgMCwgJ29ubHkg QnRyZWUgbGluZXMnKTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRw YXRoLCAnLS1saW1pdCcgPT4gNik7CisJCWlzKEBsaW5lcywgNiwgJ2xpbWl0IG9wdGlvbiBvYnNl cnZlZCcpOwogCi1AbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tZm9yaycgPT4gJ2luaXQnKTsK LWlzKGdyZXAoIS9mb3JrIGluaXQvLCBAbGluZXMpLCAwLCAnb25seSBpbml0IGZvcmsgbGluZXMn KTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1mdWxs cGFnZScpOworCQlpcyhncmVwKCEvXnJtZ3I6LipcYkZQV1xiLywgQGxpbmVzKSwgMCwgJ2FsbCBv dXRwdXQgbGluZXMgYXJlIEZQVycpOwogCi1AbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoCi0JJy0t cmVsYXRpb24nID0+ICIkZGVmYXVsdF90c19vaWQvJHBvc3RncmVzX2RiX29pZC8kcmVsX3QxX29p ZCIpOwotaXMoZ3JlcCghL3JlbCAkZGVmYXVsdF90c19vaWRcLyRwb3N0Z3Jlc19kYl9vaWRcLyRy ZWxfdDFfb2lkLywgQGxpbmVzKSwKLQkwLCAnb25seSBsaW5lcyBmb3Igc2VsZWN0ZWQgcmVsYXRp b24nKTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1z dGF0cycpOworCQlsaWtlKCRsaW5lc1swXSwgcXIvV0FMIHN0YXRpc3RpY3MvLCAic3RhdGlzdGlj cyBvbiBzdGRvdXQiKTsKKwkJaXMoZ3JlcCgvXnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25vIHJtZ3Ig bGluZXMgb3V0cHV0Jyk7CiAKLUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgKLQknLS1yZWxhdGlv bicgPT4gIiRkZWZhdWx0X3RzX29pZC8kcG9zdGdyZXNfZGJfb2lkLyRyZWxfaTFhX29pZCIsCi0J Jy0tYmxvY2snID0+IDEpOwotaXMoZ3JlcCghL1xiYmxrIDFcYi8sIEBsaW5lcyksIDAsICdvbmx5 IGxpbmVzIGZvciBzZWxlY3RlZCBibG9jaycpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAo Jy0tcGF0aCcgPT4gJHBhdGgsICctLXN0YXRzPXJlY29yZCcpOworCQlsaWtlKCRsaW5lc1swXSwg cXIvV0FMIHN0YXRpc3RpY3MvLCAic3RhdGlzdGljcyBvbiBzdGRvdXQiKTsKKwkJaXMoZ3JlcCgv XnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25vIHJtZ3IgbGluZXMgb3V0cHV0Jyk7CiAKKwkJQGxpbmVz ID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1ybWdyJyA9PiAnQnRyZWUn KTsKKwkJaXMoZ3JlcCghL15ybWdyOiBCdHJlZS8sIEBsaW5lcyksIDAsICdvbmx5IEJ0cmVlIGxp bmVzJyk7CisKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAn LS1mb3JrJyA9PiAnaW5pdCcpOworCQlpcyhncmVwKCEvZm9yayBpbml0LywgQGxpbmVzKSwgMCwg J29ubHkgaW5pdCBmb3JrIGxpbmVzJyk7CisKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCct LXBhdGgnID0+ICRwYXRoLAorCQkJJy0tcmVsYXRpb24nID0+ICIkZGVmYXVsdF90c19vaWQvJHBv c3RncmVzX2RiX29pZC8kcmVsX3QxX29pZCIpOworCQlpcyhncmVwKCEvcmVsICRkZWZhdWx0X3Rz X29pZFwvJHBvc3RncmVzX2RiX29pZFwvJHJlbF90MV9vaWQvLCBAbGluZXMpLAorCQkJMCwgJ29u bHkgbGluZXMgZm9yIHNlbGVjdGVkIHJlbGF0aW9uJyk7CisKKwkJQGxpbmVzID0gdGVzdF9wZ193 YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLAorCQkJJy0tcmVsYXRpb24nID0+ICIkZGVmYXVsdF90 c19vaWQvJHBvc3RncmVzX2RiX29pZC8kcmVsX2kxYV9vaWQiLAorCQkJJy0tYmxvY2snID0+IDEp OworCQlpcyhncmVwKCEvXGJibGsgMVxiLywgQGxpbmVzKSwgMCwgJ29ubHkgbGluZXMgZm9yIHNl bGVjdGVkIGJsb2NrJyk7CisJfQorfQogCiBkb25lX3Rlc3RpbmcoKTsKLS0gCjIuNDcuMQoK --000000000000102ced06446586db Content-Type: application/x-patch; name="v8-0004-pg_waldump-Add-support-for-archived-WAL-decoding.patch" Content-Disposition: attachment; filename="v8-0004-pg_waldump-Add-support-for-archived-WAL-decoding.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mie7av8q3 RnJvbSA3Njg2ZTg3NWM5ZGE0Y2VkYWZiODg0ZGQ0Y2QxNTNkMzVjOTZkNTQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgNSBOb3YgMjAyNSAxNTo0MDozNiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjggNC84XSBwZ193 YWxkdW1wOiBBZGQgc3VwcG9ydCBmb3IgYXJjaGl2ZWQgV0FMIGRlY29kaW5nLgoKcGdfd2FsZHVt cCBjYW4gbm93IGFjY2VwdCB0aGUgcGF0aCB0byBhIHRhciBhcmNoaXZlIGNvbnRhaW5pbmcgV0FM CmZpbGVzIGFuZCBkZWNvZGUgdGhlbS4gVGhpcyBmZWF0dXJlIHdhcyBhZGRlZCBwcmltYXJpbHkg Zm9yCnBnX3ZlcmlmeWJhY2t1cCwgd2hpY2ggcHJldmlvdXNseSBkaXNhYmxlZCBXQUwgcGFyc2lu ZyBmb3IKdGFyLWZvcm1hdHRlZCBiYWNrdXBzLgoKTm90ZSB0aGF0IHRoaXMgcGF0Y2ggcmVxdWly ZXMgdGhhdCB0aGUgV0FMIGZpbGVzIHdpdGhpbiB0aGUgYXJjaGl2ZSBiZQppbiBzZXF1ZW50aWFs IG9yZGVyOyBhbiBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIG90aGVyd2lzZS4gVGhlIG5leHQKcGF0 Y2ggaXMgcGxhbm5lZCB0byByZW1vdmUgdGhpcyByZXN0cmljdGlvbi4KLS0tCiBkb2Mvc3JjL3Nn bWwvcmVmL3BnX3dhbGR1bXAuc2dtbCAgICAgfCAgIDggKy0KIHNyYy9iaW4vcGdfd2FsZHVtcC9N YWtlZmlsZSAgICAgICAgICB8ICAgNyArLQogc3JjL2Jpbi9wZ193YWxkdW1wL2FyY2hpdmVfd2Fs ZHVtcC5jIHwgNTg5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2Jpbi9wZ193YWxk dW1wL21lc29uLmJ1aWxkICAgICAgIHwgICA0ICstCiBzcmMvYmluL3BnX3dhbGR1bXAvcGdfd2Fs ZHVtcC5jICAgICAgfCAyMTUgKysrKysrKy0tLQogc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1 bXAuaCAgICAgIHwgIDM2ICstCiBzcmMvYmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMucGwgICAg fCAgODQgKysrLQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgIHwgICAzICsK IDggZmlsZXMgY2hhbmdlZCwgODcwIGluc2VydGlvbnMoKyksIDc2IGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy9iaW4vcGdfd2FsZHVtcC9hcmNoaXZlX3dhbGR1bXAuYwoKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfd2FsZHVtcC5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9wZ193YWxkdW1wLnNnbWwKaW5kZXggY2UyM2FkZDU1NzcuLmQwMDRiYjBmNjdlIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3dhbGR1bXAuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BnX3dhbGR1bXAuc2dtbApAQCAtMTQxLDEzICsxNDEsMTcgQEAgUG9zdGdyZVNRTCBk b2N1bWVudGF0aW9uCiAgICAgICA8dGVybT48b3B0aW9uPi0tcGF0aD08cmVwbGFjZWFibGU+cGF0 aDwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgogICAgICAg IDxwYXJhPgotICAgICAgICBTcGVjaWZpZXMgYSBkaXJlY3RvcnkgdG8gc2VhcmNoIGZvciBXQUwg c2VnbWVudCBmaWxlcyBvciBhCi0gICAgICAgIGRpcmVjdG9yeSB3aXRoIGEgPGxpdGVyYWw+cGdf d2FsPC9saXRlcmFsPiBzdWJkaXJlY3RvcnkgdGhhdAorICAgICAgICBTcGVjaWZpZXMgYSB0YXIg YXJjaGl2ZSBvciBhIGRpcmVjdG9yeSB0byBzZWFyY2ggZm9yIFdBTCBzZWdtZW50IGZpbGVzCisg ICAgICAgIG9yIGEgZGlyZWN0b3J5IHdpdGggYSA8bGl0ZXJhbD5wZ193YWw8L2xpdGVyYWw+IHN1 YmRpcmVjdG9yeSB0aGF0CiAgICAgICAgIGNvbnRhaW5zIHN1Y2ggZmlsZXMuICBUaGUgZGVmYXVs dCBpcyB0byBzZWFyY2ggaW4gdGhlIGN1cnJlbnQKICAgICAgICAgZGlyZWN0b3J5LCB0aGUgPGxp dGVyYWw+cGdfd2FsPC9saXRlcmFsPiBzdWJkaXJlY3Rvcnkgb2YgdGhlCiAgICAgICAgIGN1cnJl bnQgZGlyZWN0b3J5LCBhbmQgdGhlIDxsaXRlcmFsPnBnX3dhbDwvbGl0ZXJhbD4gc3ViZGlyZWN0 b3J5CiAgICAgICAgIG9mIDxlbnZhcj5QR0RBVEE8L2VudmFyPi4KICAgICAgICA8L3BhcmE+Cisg ICAgICAgPHBhcmE+CisgICAgICAgIElmIGEgdGFyIGFyY2hpdmUgaXMgcHJvdmlkZWQsIGl0cyBX QUwgc2VnbWVudCBmaWxlcyBtdXN0IGJlIGluCisgICAgICAgIHNlcXVlbnRpYWwgb3JkZXI7IG90 aGVyd2lzZSwgYW4gZXJyb3Igd2lsbCBiZSByZXBvcnRlZC4KKyAgICAgICA8L3BhcmE+CiAgICAg ICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ193YWxkdW1wL01ha2VmaWxlIGIvc3JjL2Jpbi9wZ193YWxkdW1wL01ha2VmaWxlCmluZGV4 IDRjMWVlNjQ5NTAxLi4wNWFjNTc2M2E1NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ193YWxkdW1w L01ha2VmaWxlCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9NYWtlZmlsZQpAQCAtMyw2ICszLDkg QEAKIFBHRklMRURFU0MgPSAicGdfd2FsZHVtcCAtIGRlY29kZSBhbmQgZGlzcGxheSBXQUwiCiBQ R0FQUElDT049d2luMzIKIAorIyBtYWtlIHRoZXNlIGF2YWlsYWJsZSB0byBUQVAgdGVzdCBzY3Jp cHRzCitleHBvcnQgVEFSCisKIHN1YmRpciA9IHNyYy9iaW4vcGdfd2FsZHVtcAogdG9wX2J1aWxk ZGlyID0gLi4vLi4vLi4KIGluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL3NyYy9NYWtlZmlsZS5nbG9i YWwKQEAgLTEyLDExICsxNSwxMyBAQCBPQkpTID0gXAogCSQoV0lOMzJSRVMpIFwKIAljb21wYXQu byBcCiAJcGdfd2FsZHVtcC5vIFwKKwlhcmNoaXZlX3dhbGR1bXAubyBcCiAJcm1ncmRlc2MubyBc CiAJeGxvZ3JlYWRlci5vIFwKIAl4bG9nc3RhdHMubwogCi1vdmVycmlkZSBDUFBGTEFHUyA6PSAt REZST05URU5EICQoQ1BQRkxBR1MpCitvdmVycmlkZSBDUFBGTEFHUyA6PSAtREZST05URU5EIC1J JChsaWJwcV9zcmNkaXIpICQoQ1BQRkxBR1MpCitMREZMQUdTX0lOVEVSTkFMICs9IC1MJCh0b3Bf YnVpbGRkaXIpL3NyYy9mZV91dGlscyAtbHBnZmV1dGlscwogCiBSTUdSREVTQ1NPVVJDRVMgPSAk KHNvcnQgJChub3RkaXIgJCh3aWxkY2FyZCAkKHRvcF9zcmNkaXIpL3NyYy9iYWNrZW5kL2FjY2Vz cy9ybWdyZGVzYy8qZGVzYyouYykpKQogUk1HUkRFU0NPQkpTID0gJChwYXRzdWJzdCAlLmMsJS5v LCQoUk1HUkRFU0NTT1VSQ0VTKSkKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC9hcmNo aXZlX3dhbGR1bXAuYyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9hcmNoaXZlX3dhbGR1bXAuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjk5MTYzM2U1OGMKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvYXJjaGl2ZV93YWxkdW1wLmMKQEAgLTAsMCAr MSw1ODkgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGFyY2hpdmVfd2FsZHVtcC5jCisg KgkJQSBnZW5lcmljIGZhY2lsaXR5IGZvciByZWFkaW5nIFdBTCBkYXRhIGZyb20gdGFyIGFyY2hp dmVzIHZpYSBhcmNoaXZlCisgKgkJc3RyZWFtZXIuCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0 IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqIElE RU5USUZJQ0FUSU9OCisgKgkJc3JjL2Jpbi9wZ193YWxkdW1wL2FyY2hpdmVfd2FsZHVtcC5jCisg KgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzX2ZlLmgiCisK KyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgImFjY2Vzcy94bG9nX2ludGVybmFsLmgi CisjaW5jbHVkZSAiY29tbW9uL2hhc2hmbi5oIgorI2luY2x1ZGUgImNvbW1vbi9sb2dnaW5nLmgi CisjaW5jbHVkZSAiZmVfdXRpbHMvc2ltcGxlX2xpc3QuaCIKKyNpbmNsdWRlICJwZ193YWxkdW1w LmgiCisKKy8qCisgKiBIb3cgbWFueSBieXRlcyBzaG91bGQgd2UgdHJ5IHRvIHJlYWQgZnJvbSBh IGZpbGUgYXQgb25jZT8KKyAqLworI2RlZmluZSBSRUFEX0NIVU5LX1NJWkUJCQkJKDEyOCAqIDEw MjQpCisKKy8qIFN0cnVjdHVyZSBmb3Igc3RvcmluZyB0aGUgV0FMIHNlZ21lbnQgZGF0YSBmcm9t IHRoZSBhcmNoaXZlICovCit0eXBlZGVmIHN0cnVjdCBBcmNoaXZlZFdBTEVudHJ5Cit7CisJdWlu dDMyCQlzdGF0dXM7CQkJLyogaGFzaCBzdGF0dXMgKi8KKwlYTG9nU2VnTm8Jc2Vnbm87CQkJLyog aGFzaCBrZXk6IFdBTCBzZWdtZW50IG51bWJlciAqLworCVRpbWVMaW5lSUQJdGltZWxpbmU7CQkv KiB0aW1lbGluZSBvZiB0aGlzIHdhbCBmaWxlICovCisKKwlTdHJpbmdJbmZvRGF0YSBidWY7CisJ Ym9vbAkJdG1wc2VnX2V4aXN0czsJLyogc3BpbGwgZmlsZSBleGlzdHM/ICovCisKKwlpbnQJCQl0 b3RhbF9yZWFkOwkJLyogdG90YWwgcmVhZCBvZiB0aGlzIFdBTCBzZWdtZW50LCBpbmNsdWRpbmcK KwkJCQkJCQkJICogYnVmZmVyZWQgYW5kIHRlbXBvcmFyaWx5IHdyaXR0ZW4gZGF0YSAqLworfSBB cmNoaXZlZFdBTEVudHJ5OworCisjZGVmaW5lIFNIX1BSRUZJWAkJCQlBcmNoaXZlZFdBTAorI2Rl ZmluZSBTSF9FTEVNRU5UX1RZUEUJCQlBcmNoaXZlZFdBTEVudHJ5CisjZGVmaW5lIFNIX0tFWV9U WVBFCQkJCVhMb2dTZWdObworI2RlZmluZSBTSF9LRVkJCQkJCXNlZ25vCisjZGVmaW5lIFNIX0hB U0hfS0VZKHRiLCBrZXkpCW11cm11cmhhc2g2NCgodWludDY0KSBrZXkpCisjZGVmaW5lIFNIX0VR VUFMKHRiLCBhLCBiKQkJKGEgPT0gYikKKyNkZWZpbmUgU0hfR0VUX0hBU0godGIsIGEpCQlhLT5o YXNoCisjZGVmaW5lIFNIX1NDT1BFCQkJCXN0YXRpYyBpbmxpbmUKKyNkZWZpbmUgU0hfUkFXX0FM TE9DQVRPUgkJcGdfbWFsbG9jMAorI2RlZmluZSBTSF9ERUNMQVJFCisjZGVmaW5lIFNIX0RFRklO RQorI2luY2x1ZGUgImxpYi9zaW1wbGVoYXNoLmgiCisKK3N0YXRpYyBBcmNoaXZlZFdBTF9oYXNo ICpBcmNoaXZlZFdBTF9IVEFCID0gTlVMTDsKKwordHlwZWRlZiBzdHJ1Y3QgYXN0cmVhbWVyX3dh bGR1bXAKK3sKKwlhc3RyZWFtZXIJYmFzZTsKKwlYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZv OworfSBhc3RyZWFtZXJfd2FsZHVtcDsKKworc3RhdGljIGludAlyZWFkX2FyY2hpdmVfZmlsZShY TG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvLCBTaXplIGNvdW50KTsKK3N0YXRpYyBBcmNoaXZl ZFdBTEVudHJ5ICpnZXRfYXJjaGl2ZV93YWxfZW50cnkoWExvZ1NlZ05vIHNlZ25vLAorCQkJCQkJ CQkJCQkgICBYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvKTsKKworc3RhdGljIGFzdHJlYW1l ciAqYXN0cmVhbWVyX3dhbGR1bXBfbmV3KFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8pOwor c3RhdGljIHZvaWQgYXN0cmVhbWVyX3dhbGR1bXBfY29udGVudChhc3RyZWFtZXIgKnN0cmVhbWVy LAorCQkJCQkJCQkJICBhc3RyZWFtZXJfbWVtYmVyICptZW1iZXIsCisJCQkJCQkJCQkgIGNvbnN0 IGNoYXIgKmRhdGEsIGludCBsZW4sCisJCQkJCQkJCQkgIGFzdHJlYW1lcl9hcmNoaXZlX2NvbnRl eHQgY29udGV4dCk7CitzdGF0aWMgdm9pZCBhc3RyZWFtZXJfd2FsZHVtcF9maW5hbGl6ZShhc3Ry ZWFtZXIgKnN0cmVhbWVyKTsKK3N0YXRpYyB2b2lkIGFzdHJlYW1lcl93YWxkdW1wX2ZyZWUoYXN0 cmVhbWVyICpzdHJlYW1lcik7CisKK3N0YXRpYyBib29sIG1lbWJlcl9pc193YWxfZmlsZShhc3Ry ZWFtZXJfd2FsZHVtcCAqbXlzdHJlYW1lciwKKwkJCQkJCQkgICBhc3RyZWFtZXJfbWVtYmVyICpt ZW1iZXIsCisJCQkJCQkJICAgWExvZ1NlZ05vICpjdXJTZWdObywKKwkJCQkJCQkgICBUaW1lTGlu ZUlEICpjdXJUaW1lbGluZSk7CisKK3N0YXRpYyBjb25zdCBhc3RyZWFtZXJfb3BzIGFzdHJlYW1l cl93YWxkdW1wX29wcyA9IHsKKwkuY29udGVudCA9IGFzdHJlYW1lcl93YWxkdW1wX2NvbnRlbnQs CisJLmZpbmFsaXplID0gYXN0cmVhbWVyX3dhbGR1bXBfZmluYWxpemUsCisJLmZyZWUgPSBhc3Ry ZWFtZXJfd2FsZHVtcF9mcmVlCit9OworCisvKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZl biBmaWxlIGlzIGEgdGFyIGFyY2hpdmUgYW5kIG91dHB1dHMgaXRzIGNvbXByZXNzaW9uCisgKiBh bGdvcml0aG0uCisgKi8KK2Jvb2wKK2lzX2FyY2hpdmVfZmlsZShjb25zdCBjaGFyICpmbmFtZSwg cGdfY29tcHJlc3NfYWxnb3JpdGhtICpjb21wcmVzc2lvbikKK3sKKwlpbnQJCQlmbmFtZV9sZW4g PSBzdHJsZW4oZm5hbWUpOworCXBnX2NvbXByZXNzX2FsZ29yaXRobSBjb21wcmVzc19hbGdvOwor CisJLyogTm93LCBjaGVjayB0aGUgY29tcHJlc3Npb24gdHlwZSBvZiB0aGUgdGFyICovCisJaWYg KGZuYW1lX2xlbiA+IDQgJiYKKwkJc3RyY21wKGZuYW1lICsgZm5hbWVfbGVuIC0gNCwgIi50YXIi KSA9PSAwKQorCQljb21wcmVzc19hbGdvID0gUEdfQ09NUFJFU1NJT05fTk9ORTsKKwllbHNlIGlm IChmbmFtZV9sZW4gPiA0ICYmCisJCQkgc3RyY21wKGZuYW1lICsgZm5hbWVfbGVuIC0gNCwgIi50 Z3oiKSA9PSAwKQorCQljb21wcmVzc19hbGdvID0gUEdfQ09NUFJFU1NJT05fR1pJUDsKKwllbHNl IGlmIChmbmFtZV9sZW4gPiA3ICYmCisJCQkgc3RyY21wKGZuYW1lICsgZm5hbWVfbGVuIC0gNywg Ii50YXIuZ3oiKSA9PSAwKQorCQljb21wcmVzc19hbGdvID0gUEdfQ09NUFJFU1NJT05fR1pJUDsK KwllbHNlIGlmIChmbmFtZV9sZW4gPiA4ICYmCisJCQkgc3RyY21wKGZuYW1lICsgZm5hbWVfbGVu IC0gOCwgIi50YXIubHo0IikgPT0gMCkKKwkJY29tcHJlc3NfYWxnbyA9IFBHX0NPTVBSRVNTSU9O X0xaNDsKKwllbHNlIGlmIChmbmFtZV9sZW4gPiA4ICYmCisJCQkgc3RyY21wKGZuYW1lICsgZm5h bWVfbGVuIC0gOCwgIi50YXIuenN0IikgPT0gMCkKKwkJY29tcHJlc3NfYWxnbyA9IFBHX0NPTVBS RVNTSU9OX1pTVEQ7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7CisKKwkqY29tcHJlc3Npb24gPSBj b21wcmVzc19hbGdvOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBJbml0aWFsaXplcyB0 aGUgdGFyIGFyY2hpdmUgcmVhZGVyIHRvIHJlYWQgV0FMIGZpbGVzIGZyb20gdGhlIGFyY2hpdmUs CisgKiBjcmVhdGVzIGEgaGFzaCB0YWJsZSB0byBzdG9yZSB0aGVtLCBwZXJmb3JtcyBxdWljayBl eGlzdGVuY2UgY2hlY2tzIGZvciBXQUwKKyAqIGVudHJpZXMgaW4gdGhlIGFyY2hpdmUgYW5kIHJl dHJpZXZlcyB0aGUgV0FMIHNlZ21lbnQgc2l6ZSwgYW5kIHNldHMgdXAKKyAqIGZpbHRlcmluZyBj cml0ZXJpYSBmb3IgcmVsZXZhbnQgZW50cmllcy4KKyAqLwordm9pZAoraW5pdF9hcmNoaXZlX3Jl YWRlcihYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvLCBjb25zdCBjaGFyICp3YWxkaXIsCisJ CQkJCXBnX2NvbXByZXNzX2FsZ29yaXRobSBjb21wcmVzc2lvbikKK3sKKwlpbnQJCQlmZDsKKwlh c3RyZWFtZXIgICpzdHJlYW1lcjsKKwlBcmNoaXZlZFdBTEVudHJ5ICplbnRyeSA9IE5VTEw7CisJ WExvZ0xvbmdQYWdlSGVhZGVyIGxvbmdoZHI7CisKKwkvKiBPcGVuIHRhciBhcmNoaXZlIGFuZCBz dG9yZSBpdHMgZmlsZSBkZXNjcmlwdG9yICovCisJZmQgPSBvcGVuX2ZpbGVfaW5fZGlyZWN0b3J5 KHdhbGRpciwgcHJpdmF0ZUluZm8tPmFyY2hpdmVfbmFtZSk7CisKKwlpZiAoZmQgPCAwKQorCQlw Z19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCIiLCBwcml2YXRlSW5mby0+YXJjaGl2 ZV9uYW1lKTsKKworCXByaXZhdGVJbmZvLT5hcmNoaXZlX2ZkID0gZmQ7CisKKwlzdHJlYW1lciA9 IGFzdHJlYW1lcl93YWxkdW1wX25ldyhwcml2YXRlSW5mbyk7CisKKwkvKiBCZWZvcmUgdGhhdCB3 ZSBtdXN0IHBhcnNlIHRoZSB0YXIgYXJjaGl2ZS4gKi8KKwlzdHJlYW1lciA9IGFzdHJlYW1lcl90 YXJfcGFyc2VyX25ldyhzdHJlYW1lcik7CisKKwkvKiBCZWZvcmUgdGhhdCB3ZSBtdXN0IGRlY29t cHJlc3MsIGlmIGFyY2hpdmUgaXMgY29tcHJlc3NlZC4gKi8KKwlpZiAoY29tcHJlc3Npb24gPT0g UEdfQ09NUFJFU1NJT05fR1pJUCkKKwkJc3RyZWFtZXIgPSBhc3RyZWFtZXJfZ3ppcF9kZWNvbXBy ZXNzb3JfbmV3KHN0cmVhbWVyKTsKKwllbHNlIGlmIChjb21wcmVzc2lvbiA9PSBQR19DT01QUkVT U0lPTl9MWjQpCisJCXN0cmVhbWVyID0gYXN0cmVhbWVyX2x6NF9kZWNvbXByZXNzb3JfbmV3KHN0 cmVhbWVyKTsKKwllbHNlIGlmIChjb21wcmVzc2lvbiA9PSBQR19DT01QUkVTU0lPTl9aU1REKQor CQlzdHJlYW1lciA9IGFzdHJlYW1lcl96c3RkX2RlY29tcHJlc3Nvcl9uZXcoc3RyZWFtZXIpOwor CisJcHJpdmF0ZUluZm8tPmFyY2hpdmVfc3RyZWFtZXIgPSBzdHJlYW1lcjsKKworCS8qIEhhc2gg dGFibGUgc3RvcmluZyBXQUwgZW50cmllcyByZWFkIGZyb20gdGhlIGFyY2hpdmUgKi8KKwlBcmNo aXZlZFdBTF9IVEFCID0gQXJjaGl2ZWRXQUxfY3JlYXRlKDE2LCBOVUxMKTsKKworCS8qCisJICog VmVyaWZ5IHRoYXQgdGhlIGFyY2hpdmUgY29udGFpbnMgdmFsaWQgV0FMIGZpbGVzIGFuZCBmZXRj aCBXQUwgc2VnbWVudAorCSAqIHNpemUKKwkgKi8KKwl3aGlsZSAoZW50cnkgPT0gTlVMTCB8fCBl bnRyeS0+YnVmLmxlbiA8IFhMT0dfQkxDS1NaKQorCXsKKwkJaWYgKHJlYWRfYXJjaGl2ZV9maWxl KHByaXZhdGVJbmZvLCBYTE9HX0JMQ0tTWikgPT0gMCkKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qg ZmluZCBXQUwgaW4gXCIlc1wiIGFyY2hpdmUiLAorCQkJCQkgcHJpdmF0ZUluZm8tPmFyY2hpdmVf bmFtZSk7CisKKwkJZW50cnkgPSBwcml2YXRlSW5mby0+Y3VyX3dhbDsKKwl9CisKKwkvKiBTZXQg V2FsU2VnU3ogaWYgV0FMIGRhdGEgaXMgc3VjY2Vzc2Z1bGx5IHJlYWQgKi8KKwlsb25naGRyID0g KFhMb2dMb25nUGFnZUhlYWRlcikgZW50cnktPmJ1Zi5kYXRhOworCisJV2FsU2VnU3ogPSBsb25n aGRyLT54bHBfc2VnX3NpemU7CisKKwlpZiAoIUlzVmFsaWRXYWxTZWdTaXplKFdhbFNlZ1N6KSkK Kwl7CisJCXBnX2xvZ19lcnJvcihuZ2V0dGV4dCgiaW52YWxpZCBXQUwgc2VnbWVudCBzaXplIGlu IFdBTCBmaWxlIGZyb20gYXJjaGl2ZSBcIiVzXCIgKCVkIGJ5dGUpIiwKKwkJCQkJCQkgICJpbnZh bGlkIFdBTCBzZWdtZW50IHNpemUgaW4gV0FMIGZpbGUgZnJvbSBhcmNoaXZlIFwiJXNcIiAoJWQg Ynl0ZXMpIiwKKwkJCQkJCQkgIFdhbFNlZ1N6KSwKKwkJCQkJIHByaXZhdGVJbmZvLT5hcmNoaXZl X25hbWUsIFdhbFNlZ1N6KTsKKwkJcGdfbG9nX2Vycm9yX2RldGFpbCgiVGhlIFdBTCBzZWdtZW50 IHNpemUgbXVzdCBiZSBhIHBvd2VyIG9mIHR3byBiZXR3ZWVuIDEgTUIgYW5kIDEgR0IuIik7CisJ CWV4aXQoMSk7CisJfQorCisJLyoKKwkgKiBXaXRoIHRoZSBXQUwgc2VnbWVudCBzaXplIGF2YWls YWJsZSwgd2UgY2FuIG5vdyBpbml0aWFsaXplIHRoZQorCSAqIGRlcGVuZGVudCBzdGFydCBhbmQg ZW5kIHNlZ21lbnQgbnVtYmVycy4KKwkgKi8KKwlBc3NlcnQoIVhMb2dSZWNQdHJJc0ludmFsaWQo cHJpdmF0ZUluZm8tPnN0YXJ0cHRyKSk7CisJWExCeXRlVG9TZWcocHJpdmF0ZUluZm8tPnN0YXJ0 cHRyLCBwcml2YXRlSW5mby0+c3RhcnRTZWdObywgV2FsU2VnU3opOworCisJaWYgKFhMb2dSZWNQ dHJJc0ludmFsaWQocHJpdmF0ZUluZm8tPmVuZHB0cikpCisJCXByaXZhdGVJbmZvLT5lbmRTZWdO byA9IFVJTlQ2NF9NQVg7CisJZWxzZQorCQlYTEJ5dGVUb1NlZyhwcml2YXRlSW5mby0+ZW5kcHRy LCBwcml2YXRlSW5mby0+ZW5kU2VnTm8sIFdhbFNlZ1N6KTsKK30KKworLyoKKyAqIFJlbGVhc2Ug dGhlIGFyY2hpdmUgc3RyZWFtZXIgY2hhaW4gYW5kIGNsb3NlIHRoZSBhcmNoaXZlIGZpbGUuCisg Ki8KK3ZvaWQKK2ZyZWVfYXJjaGl2ZV9yZWFkZXIoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5m bykKK3sKKwkvKgorCSAqIE5COiBOb3JtYWxseSwgYXN0cmVhbWVyX2ZpbmFsaXplKCkgaXMgY2Fs bGVkIGJlZm9yZSBhc3RyZWFtZXJfZnJlZSgpIHRvCisJICogZmx1c2ggYW55IHJlbWFpbmluZyBi dWZmZXJlZCBkYXRhIG9yIHRvIGVuc3VyZSB0aGUgZW5kIG9mIHRoZSB0YXIKKwkgKiBhcmNoaXZl IGlzIHJlYWNoZWQuIEhvd2V2ZXIsIHdoZW4gZGVjb2RpbmcgYSBXQUwgZmlsZSwgb25jZSB3ZSBo aXQgdGhlCisJICogZW5kIExTTiwgYW55IHJlbWFpbmluZyBXQUwgZGF0YSBpbiB0aGUgYnVmZmVy IG9yIHRoZSB0YXIgYXJjaGl2ZSdzCisJICogdW5yZWFjaGVkIGVuZCBjYW4gYmUgc2FmZWx5IGln bm9yZWQuCisJICovCisJYXN0cmVhbWVyX2ZyZWUocHJpdmF0ZUluZm8tPmFyY2hpdmVfc3RyZWFt ZXIpOworCisJLyogQ2xvc2UgdGhlIGZpbGUuICovCisJaWYgKGNsb3NlKHByaXZhdGVJbmZvLT5h cmNoaXZlX2ZkKSAhPSAwKQorCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBjbG9zZSBmaWxlIFwi JXNcIjogJW0iLAorCQkJCQkgcHJpdmF0ZUluZm8tPmFyY2hpdmVfbmFtZSk7Cit9CisKKy8qCisg KiBDb3BpZXMgV0FMIGRhdGEgZnJvbSBhc3RyZWFtZXIgdG8gcmVhZEJ1ZmY7IGlmIHVuYXZhaWxh YmxlLCBmZXRjaGVzIG1vcmUKKyAqIGZyb20gdGhlIHRhciBhcmNoaXZlIHZpYSBhc3RyZWFtZXIu CisgKi8KK2ludAorcmVhZF9hcmNoaXZlX3dhbF9wYWdlKFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0 ZUluZm8sIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwKKwkJCQkJICBTaXplIGNvdW50LCBjaGFy ICpyZWFkQnVmZikKK3sKKwljaGFyCSAgICpwID0gcmVhZEJ1ZmY7CisJU2l6ZQkJbmJ5dGVzID0g Y291bnQ7CisJWExvZ1JlY1B0cglyZWNwdHIgPSB0YXJnZXRQYWdlUHRyOworCVhMb2dTZWdObwlz ZWdubzsKKwlBcmNoaXZlZFdBTEVudHJ5ICplbnRyeTsKKworCVhMQnl0ZVRvU2VnKHRhcmdldFBh Z2VQdHIsIHNlZ25vLCBXYWxTZWdTeik7CisJZW50cnkgPSBnZXRfYXJjaGl2ZV93YWxfZW50cnko c2Vnbm8sIHByaXZhdGVJbmZvKTsKKworCXdoaWxlIChuYnl0ZXMgPiAwKQorCXsKKwkJY2hhcgkg ICAqYnVmID0gZW50cnktPmJ1Zi5kYXRhOworCQlpbnQJCQlsZW4gPSBlbnRyeS0+YnVmLmxlbjsK KworCQkvKiBXQUwgcmVjb3JkIHJhbmdlIHRoYXQgdGhlIGJ1ZmZlciBjb250YWlucyAqLworCQlY TG9nUmVjUHRyCWVuZFB0cjsKKwkJWExvZ1JlY1B0cglzdGFydFB0cjsKKworCQlYTG9nU2VnTm9P ZmZzZXRUb1JlY1B0cihlbnRyeS0+c2Vnbm8sIGVudHJ5LT50b3RhbF9yZWFkLAorCQkJCQkJCQlX YWxTZWdTeiwgZW5kUHRyKTsKKwkJc3RhcnRQdHIgPSBlbmRQdHIgLSBsZW47CisKKwkJLyoKKwkJ ICogcGdfd2FsZHVtcCBtYXkgcmVxdWVzdCB0byByZS1yZWFkIHRoZSBjdXJyZW50bHkgYWN0aXZl IHBhZ2UsIGJ1dAorCQkgKiBuZXZlciBhIHBhZ2Ugb2xkZXIgdGhhbiB0aGUgY3VycmVudCBvbmUu IFRoZXJlZm9yZSwgYW55IGZ1bGx5CisJCSAqIGNvbnN1bWVkIFdBTCBkYXRhIHByZWNlZGluZyB0 aGUgY3VycmVudCBwYWdlIGNhbiBiZSBzYWZlbHkKKwkJICogZGlzY2FyZGVkLgorCQkgKi8KKwkJ aWYgKHJlY3B0ciA+PSBlbmRQdHIpCisJCXsKKwkJCS8qIERpc2NhcmQgdGhlIGJ1ZmZlcmVkIGRh dGEgKi8KKwkJCXJlc2V0U3RyaW5nSW5mbygmZW50cnktPmJ1Zik7CisJCQlsZW4gPSAwOworCisJ CQkvKgorCQkJICogUHVzaCBiYWNrIHRoZSBwYXJ0aWFsIHBhZ2UgZGF0YSBmb3IgdGhlIGN1cnJl bnQgcGFnZSB0byB0aGUKKwkJCSAqIGJ1ZmZlciwgZW5zdXJpbmcgaXQgcmVtYWlucyBhdmFpbGFi bGUgZm9yIHJlLXJlYWRpbmcgaWYKKwkJCSAqIHJlcXVlc3RlZC4KKwkJCSAqLworCQkJaWYgKHAg PiByZWFkQnVmZikKKwkJCXsKKwkJCQlBc3NlcnQoKGNvdW50IC0gbmJ5dGVzKSA+IDApOworCQkJ CWFwcGVuZEJpbmFyeVN0cmluZ0luZm8oJmVudHJ5LT5idWYsIHJlYWRCdWZmLCBjb3VudCAtIG5i eXRlcyk7CisJCQl9CisJCX0KKworCQlpZiAobGVuID4gMCAmJiByZWNwdHIgPiBzdGFydFB0cikK KwkJeworCQkJaW50CQkJc2tpcEJ5dGVzID0gMDsKKworCQkJLyoKKwkJCSAqIFRoZSByZXF1aXJl ZCBvZmZzZXQgaXMgbm90IGF0IHRoZSBzdGFydCBvZiB0aGUgYnVmZmVyLCBzbyBza2lwCisJCQkg KiBieXRlcyB1bnRpbCByZWFjaGluZyB0aGUgZGVzaXJlZCBvZmZzZXQgb2YgdGhlIHRhcmdldCBw YWdlLgorCQkJICovCisJCQlza2lwQnl0ZXMgPSByZWNwdHIgLSBzdGFydFB0cjsKKworCQkJYnVm ICs9IHNraXBCeXRlczsKKwkJCWxlbiAtPSBza2lwQnl0ZXM7CisJCX0KKworCQlpZiAobGVuID4g MCkKKwkJeworCQkJaW50CQkJcmVhZEJ5dGVzID0gbGVuID49IG5ieXRlcyA/IG5ieXRlcyA6IGxl bjsKKworCQkJLyogRW5zdXJlIHRoZSByZWFkaW5nIHBhZ2UgaXMgaW4gdGhlIGJ1ZmZlciAqLwor CQkJQXNzZXJ0KHJlY3B0ciA+PSBzdGFydFB0ciAmJiByZWNwdHIgPCBlbmRQdHIpOworCisJCQlt ZW1jcHkocCwgYnVmLCByZWFkQnl0ZXMpOworCisJCQkvKiBVcGRhdGUgc3RhdGUgZm9yIHJlYWQg Ki8KKwkJCW5ieXRlcyAtPSByZWFkQnl0ZXM7CisJCQlwICs9IHJlYWRCeXRlczsKKwkJCXJlY3B0 ciArPSByZWFkQnl0ZXM7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKgorCQkJICogRmV0Y2ggbW9y ZSBkYXRhOyByYWlzZSBhbiBlcnJvciBpZiBpdCdzIG5vdCB0aGUgY3VycmVudCBzZWdtZW50CisJ CQkgKiBiZWluZyByZWFkIGJ5IHRoZSBhcmNoaXZlIHN0cmVhbWVyIG9yIGlmIHJlYWRpbmcgb2Yg dGhlCisJCQkgKiBhcmNoaXZlZCBmaWxlIGhhcyBmaW5pc2hlZC4KKwkJCSAqLworCQkJaWYgKHBy aXZhdGVJbmZvLT5jdXJfd2FsICE9IGVudHJ5IHx8CisJCQkJcmVhZF9hcmNoaXZlX2ZpbGUocHJp dmF0ZUluZm8sIFJFQURfQ0hVTktfU0laRSkgPT0gMCkKKwkJCXsKKwkJCQljaGFyCQlmbmFtZVtN QVhGTkFNRUxFTl07CisKKwkJCQlYTG9nRmlsZU5hbWUoZm5hbWUsIHByaXZhdGVJbmZvLT50aW1l bGluZSwgZW50cnktPnNlZ25vLAorCQkJCQkJCSBXYWxTZWdTeik7CisJCQkJcGdfZmF0YWwoImNv dWxkIG5vdCByZWFkIGZpbGUgXCIlc1wiIGZyb20gYXJjaGl2ZSBcIiVzXCI6IHJlYWQgJWxsZCBv ZiAlbGxkIiwKKwkJCQkJCSBmbmFtZSwgcHJpdmF0ZUluZm8tPmFyY2hpdmVfbmFtZSwKKwkJCQkJ CSAobG9uZyBsb25nIGludCkgY291bnQgLSBuYnl0ZXMsCisJCQkJCQkgKGxvbmcgbG9uZyBpbnQp IG5ieXRlcyk7CisJCQl9CisJCX0KKwl9CisKKwkvKgorCSAqIFNob3VsZCBoYXZlIGVpdGhlciBo YXZlIHN1Y2Nlc3NmdWxseSByZWFkIGFsbCB0aGUgcmVxdWVzdGVkIGJ5dGVzIG9yCisJICogcmVw b3J0ZWQgYSBmYWlsdXJlIGJlZm9yZSB0aGlzIHBvaW50LgorCSAqLworCUFzc2VydChuYnl0ZXMg PT0gMCk7CisKKwkvKgorCSAqIE5COiBXZSByZXR1cm4gdGhlIGZpeGVkIHZhbHVlIHByb3ZpZGVk IGFzIGlucHV0LiBBbHRob3VnaCB3ZSBjb3VsZAorCSAqIHJldHVybiBhIGJvb2xlYW4gc2luY2Ug d2UgZWl0aGVyIHN1Y2Nlc3NmdWxseSByZWFkIHRoZSBXQUwgcGFnZSBvcgorCSAqIHJhaXNlIGFu IGVycm9yLCBidXQgdGhlIGNhbGxlciBleHBlY3RzIHRoaXMgdmFsdWUgdG8gYmUgcmV0dXJuZWQu IFRoZQorCSAqIHJvdXRpbmUgdGhhdCByZWFkcyBXQUwgcGFnZXMgZnJvbSB0aGUgcGh5c2ljYWwg V0FMIGZpbGUgZm9sbG93cyB0aGUKKwkgKiBzYW1lIGNvbnZlbnRpb24uCisJICovCisJcmV0dXJu IGNvdW50OworfQorCisvKgorICogUmVhZHMgdGhlIGFyY2hpdmUgZmlsZSBhbmQgcGFzc2VzIGl0 IHRvIHRoZSBhcmNoaXZlIHN0cmVhbWVyIGZvcgorICogZGVjb21wcmVzc2lvbi4KKyAqLworc3Rh dGljIGludAorcmVhZF9hcmNoaXZlX2ZpbGUoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbywg U2l6ZSBjb3VudCkKK3sKKwlpbnQJCQlyYzsKKwljaGFyCSAgICpidWZmZXI7CisKKwlidWZmZXIg PSBwZ19tYWxsb2MoUkVBRF9DSFVOS19TSVpFICogc2l6ZW9mKHVpbnQ4KSk7CisKKwlyYyA9IHJl YWQocHJpdmF0ZUluZm8tPmFyY2hpdmVfZmQsIGJ1ZmZlciwgY291bnQpOworCWlmIChyYyA8IDAp CisJCXBnX2ZhdGFsKCJjb3VsZCBub3QgcmVhZCBmaWxlIFwiJXNcIjogJW0iLAorCQkJCSBwcml2 YXRlSW5mby0+YXJjaGl2ZV9uYW1lKTsKKworCS8qCisJICogRGVjb21wcmVzcyAoaWYgcmVxdWly ZWQpLCBhbmQgdGhlbiBwYXJzZSB0aGUgcHJldmlvdXNseSByZWFkIGNvbnRlbnRzCisJICogb2Yg dGhlIHRhciBmaWxlLgorCSAqLworCWlmIChyYyA+IDApCisJCWFzdHJlYW1lcl9jb250ZW50KHBy aXZhdGVJbmZvLT5hcmNoaXZlX3N0cmVhbWVyLCBOVUxMLAorCQkJCQkJICBidWZmZXIsIHJjLCBB U1RSRUFNRVJfVU5LTk9XTik7CisJcGdfZnJlZShidWZmZXIpOworCisJcmV0dXJuIHJjOworfQor CisvKgorICogUmV0dXJucyB0aGUgYXJjaGl2ZWQgV0FMIGVudHJ5IGZyb20gdGhlIGhhc2ggdGFi bGUgaWYgaXQgZXhpc3RzLiBPdGhlcndpc2UsCisgKiBpdCBpbnZva2VzIHRoZSByb3V0aW5lIHRv IHJlYWQgdGhlIGFyY2hpdmVkIGZpbGUgYW5kIHJldHJpZXZlIHRoZSBlbnRyeSBpZgorICogaXQg aXMgbm90IGFscmVhZHkgaW4gaGFzaCB0YWJsZS4KKyAqLworc3RhdGljIEFyY2hpdmVkV0FMRW50 cnkgKgorZ2V0X2FyY2hpdmVfd2FsX2VudHJ5KFhMb2dTZWdObyBzZWdubywgWExvZ0R1bXBQcml2 YXRlICpwcml2YXRlSW5mbykKK3sKKwlBcmNoaXZlZFdBTEVudHJ5ICplbnRyeSA9IE5VTEw7CisJ Y2hhcgkJZm5hbWVbTUFYRk5BTUVMRU5dOworCisJLyogU2VhcmNoIGhhc2ggdGFibGUgKi8KKwll bnRyeSA9IEFyY2hpdmVkV0FMX2xvb2t1cChBcmNoaXZlZFdBTF9IVEFCLCBzZWdubyk7CisKKwlp ZiAoZW50cnkgIT0gTlVMTCkKKwkJcmV0dXJuIGVudHJ5OworCisJLyogTmVlZGVkIFdBTCB5ZXQg dG8gYmUgZGVjb2RlZCBmcm9tIGFyY2hpdmUsIGRvIHRoZSBzYW1lICovCisJd2hpbGUgKDEpCisJ eworCQllbnRyeSA9IHByaXZhdGVJbmZvLT5jdXJfd2FsOworCisJCS8qIEZldGNoIG1vcmUgZGF0 YSAqLworCQlpZiAoZW50cnkgPT0gTlVMTCB8fCBlbnRyeS0+YnVmLmxlbiA9PSAwKQorCQl7CisJ CQlpZiAocmVhZF9hcmNoaXZlX2ZpbGUocHJpdmF0ZUluZm8sIFJFQURfQ0hVTktfU0laRSkgPT0g MCkKKwkJCQlicmVhazsJCQkvKiBhcmNoaXZlIGZpbGUgZW5kZWQgKi8KKwkJfQorCisJCS8qCisJ CSAqIEVpdGhlciwgaGVyZSBmb3IgdGhlIGZpcnN0IHRpbWUsIG9yIHRoZSBhcmNoaXZlZCBzdHJl YW1lciBpcworCQkgKiByZWFkaW5nIGEgbm9uLVdBTCBmaWxlIG9yIGFuIGlycmVsZXZhbnQgV0FM IGZpbGUuCisJCSAqLworCQlpZiAoZW50cnkgPT0gTlVMTCkKKwkJCWNvbnRpbnVlOworCisJCS8q IEZvdW5kIHRoZSByZXF1aXJlZCBlbnRyeSAqLworCQlpZiAoZW50cnktPnNlZ25vID09IHNlZ25v KQorCQkJcmV0dXJuIGVudHJ5OworCisJCS8qCisJCSAqIElnbm9yZSBpZiB0aGUgdGltZWxpbmUg aXMgZGlmZmVyZW50IG9yIHRoZSBjdXJyZW50IHNlZ21lbnQgaXMgbm90CisJCSAqIHRoZSBkZXNp cmVkIG9uZS4KKwkJICovCisJCWlmIChwcml2YXRlSW5mby0+dGltZWxpbmUgIT0gZW50cnktPnRp bWVsaW5lIHx8CisJCQlwcml2YXRlSW5mby0+c3RhcnRTZWdObyA+IGVudHJ5LT5zZWdubyB8fAor CQkJcHJpdmF0ZUluZm8tPmVuZFNlZ05vIDwgZW50cnktPnNlZ25vKQorCQl7CisJCQlwcml2YXRl SW5mby0+Y3VyX3dhbCA9IE5VTEw7CisJCQljb250aW51ZTsKKwkJfQorCisJCS8qIFdBTCBzZWdt ZW50cyBtdXN0IGJlIGFyY2hpdmVkIGluIG9yZGVyICovCisJCXBnX2xvZ19lcnJvcigiV0FMIGZp bGVzIGFyZSBub3QgYXJjaGl2ZWQgaW4gc2VxdWVudGlhbCBvcmRlciIpOworCQlwZ19sb2dfZXJy b3JfZGV0YWlsKCJFeHBlY3Rpbmcgc2VnbWVudCBudW1iZXIgIiBVSU5UNjRfRk9STUFUICIgYnV0 IGZvdW5kICIgVUlOVDY0X0ZPUk1BVCAiLiIsCisJCQkJCQkJc2Vnbm8sIGVudHJ5LT5zZWdubyk7 CisJCWV4aXQoMSk7CisJfQorCisJLyogUmVxdWVzdGVkIFdBTCBzZWdtZW50IG5vdCBmb3VuZCAq LworCVhMb2dGaWxlTmFtZShmbmFtZSwgcHJpdmF0ZUluZm8tPnRpbWVsaW5lLCBzZWdubywgV2Fs U2VnU3opOworCXBnX2ZhdGFsKCJjb3VsZCBub3QgZmluZCBmaWxlIFwiJXNcIiBpbiBhcmNoaXZl IiwgZm5hbWUpOworfQorCisvKgorICogQ3JlYXRlIGFuIGFzdHJlYW1lciB0aGF0IGNhbiByZWFk IFdBTCBmcm9tIHRhciBmaWxlLgorICovCitzdGF0aWMgYXN0cmVhbWVyICoKK2FzdHJlYW1lcl93 YWxkdW1wX25ldyhYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvKQoreworCWFzdHJlYW1lcl93 YWxkdW1wICpzdHJlYW1lcjsKKworCXN0cmVhbWVyID0gcGFsbG9jMChzaXplb2YoYXN0cmVhbWVy X3dhbGR1bXApKTsKKwkqKChjb25zdCBhc3RyZWFtZXJfb3BzICoqKSAmc3RyZWFtZXItPmJhc2Uu YmJzX29wcykgPQorCQkmYXN0cmVhbWVyX3dhbGR1bXBfb3BzOworCisJc3RyZWFtZXItPnByaXZh dGVJbmZvID0gcHJpdmF0ZUluZm87CisKKwlyZXR1cm4gJnN0cmVhbWVyLT5iYXNlOworfQorCisv KgorICogTWFpbiBlbnRyeSBwb2ludCBvZiB0aGUgYXJjaGl2ZSBzdHJlYW1lciBmb3IgcmVhZGlu ZyBXQUwgZGF0YSBmcm9tIGEgdGFyCisgKiBmaWxlLiBJZiBhIG1lbWJlciBpcyBpZGVudGlmaWVk IGFzIGEgdmFsaWQgV0FMIGZpbGUsIGEgaGFzaCBlbnRyeSBpcyBjcmVhdGVkCisgKiBmb3IgaXQs IGFuZCBpdHMgY29udGVudHMgYXJlIGNvcGllZCBpbnRvIHRoYXQgZW50cnkncyBidWZmZXIsIG1h a2luZyB0aGVtCisgKiBhY2Nlc3NpYmxlIHRvIHRoZSBkZWNvZGluZyByb3V0aW5lLgorICovCitz dGF0aWMgdm9pZAorYXN0cmVhbWVyX3dhbGR1bXBfY29udGVudChhc3RyZWFtZXIgKnN0cmVhbWVy LCBhc3RyZWFtZXJfbWVtYmVyICptZW1iZXIsCisJCQkJCQkgIGNvbnN0IGNoYXIgKmRhdGEsIGlu dCBsZW4sCisJCQkJCQkgIGFzdHJlYW1lcl9hcmNoaXZlX2NvbnRleHQgY29udGV4dCkKK3sKKwlh c3RyZWFtZXJfd2FsZHVtcCAqbXlzdHJlYW1lciA9IChhc3RyZWFtZXJfd2FsZHVtcCAqKSBzdHJl YW1lcjsKKwlYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvID0gbXlzdHJlYW1lci0+cHJpdmF0 ZUluZm87CisKKwlBc3NlcnQoY29udGV4dCAhPSBBU1RSRUFNRVJfVU5LTk9XTik7CisKKwlzd2l0 Y2ggKGNvbnRleHQpCisJeworCQljYXNlIEFTVFJFQU1FUl9NRU1CRVJfSEVBREVSOgorCQkJewor CQkJCVhMb2dTZWdObwlzZWdubzsKKwkJCQlUaW1lTGluZUlECXRpbWVsaW5lOworCQkJCUFyY2hp dmVkV0FMRW50cnkgKmVudHJ5OworCQkJCWJvb2wJCWZvdW5kOworCisJCQkJcGdfbG9nX2RlYnVn KCJyZWFkaW5nIFwiJXNcIiIsIG1lbWJlci0+cGF0aG5hbWUpOworCisJCQkJaWYgKCFtZW1iZXJf aXNfd2FsX2ZpbGUobXlzdHJlYW1lciwgbWVtYmVyLAorCQkJCQkJCQkJCSZzZWdubywgJnRpbWVs aW5lKSkKKwkJCQkJYnJlYWs7CisKKwkJCQllbnRyeSA9IEFyY2hpdmVkV0FMX2luc2VydChBcmNo aXZlZFdBTF9IVEFCLCBzZWdubywgJmZvdW5kKTsKKworCQkJCS8qCisJCQkJICogU2hvdWxkbid0 IGhhcHBlbiwgYnV0IGlmIGl0IGRvZXMsIHNpbXBseSBpZ25vcmUgdGhlCisJCQkJICogZHVwbGlj YXRlIFdBTCBmaWxlLgorCQkJCSAqLworCQkJCWlmIChmb3VuZCkKKwkJCQl7CisJCQkJCXBnX2xv Z193YXJuaW5nKCJpZ25vcmluZyBkdXBsaWNhdGUgV0FMIGZpbGUgZm91bmQgaW4gYXJjaGl2ZTog XCIlc1wiIiwKKwkJCQkJCQkJICAgbWVtYmVyLT5wYXRobmFtZSk7CisJCQkJCWJyZWFrOworCQkJ CX0KKworCQkJCWluaXRTdHJpbmdJbmZvKCZlbnRyeS0+YnVmKTsKKwkJCQllbnRyeS0+dGltZWxp bmUgPSB0aW1lbGluZTsKKwkJCQllbnRyeS0+dG90YWxfcmVhZCA9IDA7CisKKwkJCQlwcml2YXRl SW5mby0+Y3VyX3dhbCA9IGVudHJ5OworCQkJfQorCQkJYnJlYWs7CisKKwkJY2FzZSBBU1RSRUFN RVJfTUVNQkVSX0NPTlRFTlRTOgorCQkJaWYgKHByaXZhdGVJbmZvLT5jdXJfd2FsKQorCQkJewor CQkJCWFwcGVuZEJpbmFyeVN0cmluZ0luZm8oJnByaXZhdGVJbmZvLT5jdXJfd2FsLT5idWYsIGRh dGEsIGxlbik7CisJCQkJcHJpdmF0ZUluZm8tPmN1cl93YWwtPnRvdGFsX3JlYWQgKz0gbGVuOwor CQkJfQorCQkJYnJlYWs7CisKKwkJY2FzZSBBU1RSRUFNRVJfTUVNQkVSX1RSQUlMRVI6CisJCQlw cml2YXRlSW5mby0+Y3VyX3dhbCA9IE5VTEw7CisJCQlicmVhazsKKworCQljYXNlIEFTVFJFQU1F Ul9BUkNISVZFX1RSQUlMRVI6CisJCQlicmVhazsKKworCQlkZWZhdWx0OgorCQkJLyogU2hvdWxk bid0IGhhcHBlbi4gKi8KKwkJCXBnX2ZhdGFsKCJ1bmV4cGVjdGVkIHN0YXRlIHdoaWxlIHBhcnNp bmcgdGFyIGZpbGUiKTsKKwl9Cit9CisKKy8qCisgKiBFbmQtb2Ytc3RyZWFtIHByb2Nlc3Npbmcg Zm9yIGEgYXN0cmVhbWVyX3dhbGR1bXAgc3RyZWFtLgorICovCitzdGF0aWMgdm9pZAorYXN0cmVh bWVyX3dhbGR1bXBfZmluYWxpemUoYXN0cmVhbWVyICpzdHJlYW1lcikKK3sKKwlBc3NlcnQoc3Ry ZWFtZXItPmJic19uZXh0ID09IE5VTEwpOworfQorCisvKgorICogRnJlZSBtZW1vcnkgYXNzb2Np YXRlZCB3aXRoIGEgYXN0cmVhbWVyX3dhbGR1bXAgc3RyZWFtLgorICovCitzdGF0aWMgdm9pZAor YXN0cmVhbWVyX3dhbGR1bXBfZnJlZShhc3RyZWFtZXIgKnN0cmVhbWVyKQoreworCUFzc2VydChz dHJlYW1lci0+YmJzX25leHQgPT0gTlVMTCk7CisJcGZyZWUoc3RyZWFtZXIpOworfQorCisvKgor ICogUmV0dXJucyB0cnVlIGlmIHRoZSBhcmNoaXZlIG1lbWJlciBuYW1lIG1hdGNoZXMgdGhlIFdB TCBuYW1pbmcgZm9ybWF0LiBJZgorICogc3VjY2Vzc2Z1bCwgaXQgYWxzbyBvdXRwdXRzIHRoZSBX QUwgc2VnbWVudCBudW1iZXIsIGFuZCB0aW1lbGluZS4KKyAqLworc3RhdGljIGJvb2wKK21lbWJl cl9pc193YWxfZmlsZShhc3RyZWFtZXJfd2FsZHVtcCAqbXlzdHJlYW1lciwgYXN0cmVhbWVyX21l bWJlciAqbWVtYmVyLAorCQkJCSAgIFhMb2dTZWdObyAqY3VyU2VnTm8sIFRpbWVMaW5lSUQgKmN1 clRpbWVsaW5lKQoreworCWludAkJCXBhdGhsZW47CisJWExvZ1NlZ05vCXNlZ05vOworCVRpbWVM aW5lSUQJdGltZWxpbmU7CisJY2hhcgkgICAqZm5hbWU7CisKKwkvKiBXZSBhcmUgb25seSBpbnRl cmVzdGVkIGluIG5vcm1hbCBmaWxlcy4gKi8KKwlpZiAobWVtYmVyLT5pc19kaXJlY3RvcnkgfHwg bWVtYmVyLT5pc19saW5rKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwYXRobGVuID0gc3RybGVuKG1l bWJlci0+cGF0aG5hbWUpOworCWlmIChwYXRobGVuIDwgWExPR19GTkFNRV9MRU4pCisJCXJldHVy biBmYWxzZTsKKworCS8qIFdBTCBmaWxlIGNvdWxkIGJlIHdpdGggZnVsbCBwYXRoICovCisJZm5h bWUgPSBtZW1iZXItPnBhdGhuYW1lICsgKHBhdGhsZW4gLSBYTE9HX0ZOQU1FX0xFTik7CisJaWYg KCFJc1hMb2dGaWxlTmFtZShmbmFtZSkpCisJCXJldHVybiBmYWxzZTsKKworCS8qCisJICogWFhY OiBPbiBzb21lIHN5c3RlbXMgKGUuZy4sIE9wZW5CU0QpLCB0aGUgdGFyIHV0aWxpdHkgaW5jbHVk ZXMKKwkgKiBQYXhIZWFkZXJzIHdoZW4gY3JlYXRpbmcgYW4gYXJjaGl2ZS4gVGhlc2UgYXJlIHNw ZWNpYWwgZW50cmllcyB0aGF0CisJICogc3RvcmUgZXh0ZW5kZWQgbWV0YWRhdGEgZm9yIHRoZSBm aWxlIGVudHJ5IGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aGVtLAorCSAqIGFuZCB0aGV5IHNoYXJl IHRoZSBleGFjdCBzYW1lIG5hbWUgYXMgdGhhdCBmaWxlLgorCSAqLworCWlmIChzdHJzdHIobWVt YmVyLT5wYXRobmFtZSwgIlBheEhlYWRlcnMuIikpCisJCXJldHVybiBmYWxzZTsKKworCS8qIFBh cnNlIHBvc2l0aW9uIGZyb20gZmlsZSAqLworCVhMb2dGcm9tRmlsZU5hbWUoZm5hbWUsICZ0aW1l bGluZSwgJnNlZ05vLCBXYWxTZWdTeik7CisKKwkqY3VyU2VnTm8gPSBzZWdObzsKKwkqY3VyVGlt ZWxpbmUgPSB0aW1lbGluZTsKKworCXJldHVybiB0cnVlOworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ193YWxkdW1wL21lc29uLmJ1aWxkIGIvc3JjL2Jpbi9wZ193YWxkdW1wL21lc29uLmJ1aWxk CmluZGV4IDkzN2UwZDY4ODQxLi5kYTAwNzQ2NTg3YyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ193 YWxkdW1wL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9tZXNvbi5idWlsZApA QCAtMyw2ICszLDcgQEAKIHBnX3dhbGR1bXBfc291cmNlcyA9IGZpbGVzKAogICAnY29tcGF0LmMn LAogICAncGdfd2FsZHVtcC5jJywKKyAgJ2FyY2hpdmVfd2FsZHVtcC5jJywKICAgJ3JtZ3JkZXNj LmMnLAogKQogCkBAIC0xOCw3ICsxOSw3IEBAIGVuZGlmCiAKIHBnX3dhbGR1bXAgPSBleGVjdXRh YmxlKCdwZ193YWxkdW1wJywKICAgcGdfd2FsZHVtcF9zb3VyY2VzLAotICBkZXBlbmRlbmNpZXM6 IFtmcm9udGVuZF9jb2RlLCBsejQsIHpzdGRdLAorICBkZXBlbmRlbmNpZXM6IFtmcm9udGVuZF9j b2RlLCBsejQsIHpzdGQsIGxpYnBxXSwKICAgY19hcmdzOiBbJy1ERlJPTlRFTkQnXSwgIyBuZWVk ZWQgZm9yIHhsb2dyZWFkZXIgZXQgYWwKICAga3dhcmdzOiBkZWZhdWx0X2Jpbl9hcmdzLAogKQpA QCAtMjksNiArMzAsNyBAQCB0ZXN0cyArPSB7CiAgICdzZCc6IG1lc29uLmN1cnJlbnRfc291cmNl X2RpcigpLAogICAnYmQnOiBtZXNvbi5jdXJyZW50X2J1aWxkX2RpcigpLAogICAndGFwJzogewor ICAgICdlbnYnOiB7J1RBUic6IHRhci5mb3VuZCgpID8gdGFyLmZ1bGxfcGF0aCgpIDogJyd9LAog ICAgICd0ZXN0cyc6IFsKICAgICAgICd0LzAwMV9iYXNpYy5wbCcsCiAgICAgICAndC8wMDJfc2F2 ZV9mdWxscGFnZS5wbCcsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVt cC5jIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYwppbmRleCAwZGMyOGVhMzYwYy4u MDJhZDE0MWU0NGEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMK KysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYwpAQCAtMTc3LDcgKzE3Nyw3IEBA IHNwbGl0X3BhdGgoY29uc3QgY2hhciAqcGF0aCwgY2hhciAqKmRpciwgY2hhciAqKmZuYW1lKQog ICoKICAqIHJldHVybiBhIHJlYWQgb25seSBmZAogICovCi1zdGF0aWMgaW50CitpbnQKIG9wZW5f ZmlsZV9pbl9kaXJlY3RvcnkoY29uc3QgY2hhciAqZGlyZWN0b3J5LCBjb25zdCBjaGFyICpmbmFt ZSkKIHsKIAlpbnQJCQlmZCA9IC0xOwpAQCAtNDM2LDYgKzQzNiw0NCBAQCBXQUxEdW1wUmVhZFBh Z2UoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSwgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLCBpbnQg cmVxTGVuLAogCXJldHVybiBjb3VudDsKIH0KIAorLyoKKyAqIHBnX3dhbGR1bXAncyBYTG9nUmVh ZGVyUm91dGluZS0+c2VnbWVudF9vcGVuIGNhbGxiYWNrIHRvIHN1cHBvcnQgZHVtcGluZyBXQUwK KyAqIGZpbGVzIGZyb20gdGFyIGFyY2hpdmVzLgorICovCitzdGF0aWMgdm9pZAorVGFyV0FMRHVt cE9wZW5TZWdtZW50KFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIFhMb2dTZWdObyBuZXh0U2VnTm8s CisJCQkJCSAgVGltZUxpbmVJRCAqdGxpX3ApCit7CisJLyogTm8gYWN0aW9uIG5lZWRlZCAqLwor fQorCisvKgorICogcGdfd2FsZHVtcCdzIFhMb2dSZWFkZXJSb3V0aW5lLT5zZWdtZW50X2Nsb3Nl IGNhbGxiYWNrLgorICovCitzdGF0aWMgdm9pZAorVGFyV0FMRHVtcENsb3NlU2VnbWVudChYTG9n UmVhZGVyU3RhdGUgKnN0YXRlKQoreworCS8qIE5vIGFjdGlvbiBuZWVkZWQgKi8KK30KKworLyoK KyAqIHBnX3dhbGR1bXAncyBYTG9nUmVhZGVyUm91dGluZS0+cGFnZV9yZWFkIGNhbGxiYWNrIHRv IHN1cHBvcnQgZHVtcGluZyBXQUwKKyAqIGZpbGVzIGZyb20gdGFyIGFyY2hpdmVzLgorICovCitz dGF0aWMgaW50CitUYXJXQUxEdW1wUmVhZFBhZ2UoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSwgWExv Z1JlY1B0ciB0YXJnZXRQYWdlUHRyLCBpbnQgcmVxTGVuLAorCQkJCSAgIFhMb2dSZWNQdHIgdGFy Z2V0UHRyLCBjaGFyICpyZWFkQnVmZikKK3sKKwlYTG9nRHVtcFByaXZhdGUgKnByaXZhdGUgPSBz dGF0ZS0+cHJpdmF0ZV9kYXRhOworCWludAkJCWNvdW50ID0gcmVxdWlyZWRfcmVhZF9sZW4ocHJp dmF0ZSwgdGFyZ2V0UGFnZVB0ciwgcmVxTGVuKTsKKworCWlmIChwcml2YXRlLT5lbmRwdHJfcmVh Y2hlZCkKKwkJcmV0dXJuIC0xOworCisJLyogUmVhZCB0aGUgV0FMIHBhZ2UgZnJvbSB0aGUgYXJj aGl2ZSBzdHJlYW1lciAqLworCXJldHVybiByZWFkX2FyY2hpdmVfd2FsX3BhZ2UocHJpdmF0ZSwg dGFyZ2V0UGFnZVB0ciwgY291bnQsIHJlYWRCdWZmKTsKK30KKwogLyoKICAqIEJvb2xlYW4gdG8g cmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIFdBTCByZWNvcmQgbWF0Y2hlcyBhIHNwZWNpZmljIHJl bGF0aW9uCiAgKiBhbmQgb3B0aW9uYWxseSBibG9jay4KQEAgLTc3Myw4ICs4MTEsOCBAQCB1c2Fn ZSh2b2lkKQogCXByaW50ZihfKCIgIC1GLCAtLWZvcms9Rk9SSyAgICAgICAgb25seSBzaG93IHJl Y29yZHMgdGhhdCBtb2RpZnkgYmxvY2tzIGluIGZvcmsgRk9SSztcbiIKIAkJCSAiICAgICAgICAg ICAgICAgICAgICAgICAgIHZhbGlkIG5hbWVzIGFyZSBtYWluLCBmc20sIHZtLCBpbml0XG4iKSk7 CiAJcHJpbnRmKF8oIiAgLW4sIC0tbGltaXQ9TiAgICAgICAgICBudW1iZXIgb2YgcmVjb3JkcyB0 byBkaXNwbGF5XG4iKSk7Ci0JcHJpbnRmKF8oIiAgLXAsIC0tcGF0aD1QQVRIICAgICAgICBkaXJl Y3RvcnkgaW4gd2hpY2ggdG8gZmluZCBXQUwgc2VnbWVudCBmaWxlcyBvciBhXG4iCi0JCQkgIiAg ICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rvcnkgd2l0aCBhIC4vcGdfd2FsIHRoYXQgY29u dGFpbnMgc3VjaCBmaWxlc1xuIgorCXByaW50ZihfKCIgIC1wLCAtLXBhdGg9UEFUSCAgICAgICAg dGFyIGFyY2hpdmUgb3IgYSBkaXJlY3RvcnkgaW4gd2hpY2ggdG8gZmluZCBXQUwgc2VnbWVudCBm aWxlcyBvclxuIgorCQkJICIgICAgICAgICAgICAgICAgICAgICAgICAgYSBkaXJlY3Rvcnkgd2l0 aCBhIC4vcGdfd2FsIHRoYXQgY29udGFpbnMgc3VjaCBmaWxlc1xuIgogCQkJICIgICAgICAgICAg ICAgICAgICAgICAgICAgKGRlZmF1bHQ6IGN1cnJlbnQgZGlyZWN0b3J5LCAuL3BnX3dhbCwgJFBH REFUQS9wZ193YWwpXG4iKSk7CiAJcHJpbnRmKF8oIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICBk byBub3QgcHJpbnQgYW55IG91dHB1dCwgZXhjZXB0IGZvciBlcnJvcnNcbiIpKTsKIAlwcmludGYo XygiICAtciwgLS1ybWdyPVJNR1IgICAgICAgIG9ubHkgc2hvdyByZWNvcmRzIGdlbmVyYXRlZCBi eSByZXNvdXJjZSBtYW5hZ2VyIFJNR1I7XG4iCkBAIC04MDYsNyArODQ0LDEwIEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogCVhMb2dSZWNvcmQgKnJlY29yZDsKIAlYTG9nUmVjUHRyCWZp cnN0X3JlY29yZDsKIAljaGFyCSAgICp3YWxkaXIgPSBOVUxMOworCWNoYXIJICAgKndhbHBhdGgg PSBOVUxMOwogCWNoYXIJICAgKmVycm9ybXNnOworCWJvb2wJCWlzX2FyY2hpdmUgPSBmYWxzZTsK KwlwZ19jb21wcmVzc19hbGdvcml0aG0gY29tcHJlc3Npb247CiAKIAlzdGF0aWMgc3RydWN0IG9w dGlvbiBsb25nX29wdGlvbnNbXSA9IHsKIAkJeyJia3AtZGV0YWlscyIsIG5vX2FyZ3VtZW50LCBO VUxMLCAnYid9LApAQCAtOTM4LDcgKzk3OSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQogCQkJCX0KIAkJCQlicmVhazsKIAkJCWNhc2UgJ3AnOgotCQkJCXdhbGRpciA9IHBnX3N0cmR1 cChvcHRhcmcpOworCQkJCXdhbHBhdGggPSBwZ19zdHJkdXAob3B0YXJnKTsKIAkJCQlicmVhazsK IAkJCWNhc2UgJ3EnOgogCQkJCWNvbmZpZy5xdWlldCA9IHRydWU7CkBAIC0xMTAyLDEwICsxMTQz LDIwIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQlnb3RvIGJhZF9hcmd1bWVudDsK IAl9CiAKLQlpZiAod2FsZGlyICE9IE5VTEwpCisJaWYgKHdhbHBhdGggIT0gTlVMTCkKIAl7CisJ CS8qIHZhbGlkYXRlIHBhdGggcG9pbnRzIHRvIHRhciBhcmNoaXZlICovCisJCWlmIChpc19hcmNo aXZlX2ZpbGUod2FscGF0aCwgJmNvbXByZXNzaW9uKSkKKwkJeworCQkJY2hhcgkgICAqZm5hbWUg PSBOVUxMOworCisJCQlzcGxpdF9wYXRoKHdhbHBhdGgsICZ3YWxkaXIsICZmbmFtZSk7CisKKwkJ CXByaXZhdGUuYXJjaGl2ZV9uYW1lID0gZm5hbWU7CisJCQlpc19hcmNoaXZlID0gdHJ1ZTsKKwkJ fQogCQkvKiB2YWxpZGF0ZSBwYXRoIHBvaW50cyB0byBkaXJlY3RvcnkgKi8KLQkJaWYgKCF2ZXJp ZnlfZGlyZWN0b3J5KHdhbGRpcikpCisJCWVsc2UgaWYgKCF2ZXJpZnlfZGlyZWN0b3J5KHdhbHBh dGgpKQogCQl7CiAJCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBvcGVuIGRpcmVjdG9yeSBcIiVz XCI6ICVtIiwgd2FsZGlyKTsKIAkJCWdvdG8gYmFkX2FyZ3VtZW50OwpAQCAtMTEyMyw2ICsxMTc0 LDE3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQlpbnQJCQlmZDsKIAkJWExvZ1Nl Z05vCXNlZ25vOwogCisJCS8qCisJCSAqIElmIGEgdGFyIGFyY2hpdmUgaXMgcGFzc2VkIHVzaW5n IHRoZSAtLXBhdGggb3B0aW9uLCBhbGwgb3RoZXIKKwkJICogYXJndW1lbnRzIGJlY29tZSB1bm5l Y2Vzc2FyeS4KKwkJICovCisJCWlmIChpc19hcmNoaXZlKQorCQl7CisJCQlwZ19sb2dfZXJyb3Io InVubmVjZXNzYXJ5IGNvbW1hbmQtbGluZSBhcmd1bWVudHMgc3BlY2lmaWVkIHdpdGggdGFyIGFy Y2hpdmUgKGZpcnN0IGlzIFwiJXNcIikiLAorCQkJCQkJIGFyZ3Zbb3B0aW5kXSk7CisJCQlnb3Rv IGJhZF9hcmd1bWVudDsKKwkJfQorCiAJCXNwbGl0X3BhdGgoYXJndltvcHRpbmRdLCAmZGlyZWN0 b3J5LCAmZm5hbWUpOwogCiAJCWlmICh3YWxkaXIgPT0gTlVMTCAmJiBkaXJlY3RvcnkgIT0gTlVM TCkKQEAgLTExMzMsNjkgKzExOTUsNzcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJ CQkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGRpcmVjdG9yeSBcIiVzXCI6ICVtIiwgd2FsZGly KTsKIAkJfQogCi0JCXdhbGRpciA9IGlkZW50aWZ5X3RhcmdldF9kaXJlY3Rvcnkod2FsZGlyLCBm bmFtZSk7Ci0JCWZkID0gb3Blbl9maWxlX2luX2RpcmVjdG9yeSh3YWxkaXIsIGZuYW1lKTsKLQkJ aWYgKGZkIDwgMCkKLQkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIiIsIGZu YW1lKTsKLQkJY2xvc2UoZmQpOwotCi0JCS8qIHBhcnNlIHBvc2l0aW9uIGZyb20gZmlsZSAqLwot CQlYTG9nRnJvbUZpbGVOYW1lKGZuYW1lLCAmcHJpdmF0ZS50aW1lbGluZSwgJnNlZ25vLCBXYWxT ZWdTeik7Ci0KLQkJaWYgKCFYTG9nUmVjUHRySXNWYWxpZChwcml2YXRlLnN0YXJ0cHRyKSkKLQkJ CVhMb2dTZWdOb09mZnNldFRvUmVjUHRyKHNlZ25vLCAwLCBXYWxTZWdTeiwgcHJpdmF0ZS5zdGFy dHB0cik7Ci0JCWVsc2UgaWYgKCFYTEJ5dGVJblNlZyhwcml2YXRlLnN0YXJ0cHRyLCBzZWdubywg V2FsU2VnU3opKQorCQlpZiAoZm5hbWUgIT0gTlVMTCAmJiBpc19hcmNoaXZlX2ZpbGUoZm5hbWUs ICZjb21wcmVzc2lvbikpCiAJCXsKLQkJCXBnX2xvZ19lcnJvcigic3RhcnQgV0FMIGxvY2F0aW9u ICVYLyUwOFggaXMgbm90IGluc2lkZSBmaWxlIFwiJXNcIiIsCi0JCQkJCQkgTFNOX0ZPUk1BVF9B UkdTKHByaXZhdGUuc3RhcnRwdHIpLAotCQkJCQkJIGZuYW1lKTsKLQkJCWdvdG8gYmFkX2FyZ3Vt ZW50OworCQkJcHJpdmF0ZS5hcmNoaXZlX25hbWUgPSBmbmFtZTsKKwkJCWlzX2FyY2hpdmUgPSB0 cnVlOwogCQl9Ci0KLQkJLyogbm8gc2Vjb25kIGZpbGUgc3BlY2lmaWVkLCBzZXQgZW5kIHBvc2l0 aW9uICovCi0JCWlmICghKG9wdGluZCArIDEgPCBhcmdjKSAmJiAhWExvZ1JlY1B0cklzVmFsaWQo cHJpdmF0ZS5lbmRwdHIpKQotCQkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoc2Vnbm8gKyAxLCAw LCBXYWxTZWdTeiwgcHJpdmF0ZS5lbmRwdHIpOwotCi0JCS8qIHBhcnNlIEVORFNFRyBpZiBwYXNz ZWQgKi8KLQkJaWYgKG9wdGluZCArIDEgPCBhcmdjKQorCQllbHNlCiAJCXsKLQkJCVhMb2dTZWdO bwllbmRzZWdubzsKLQotCQkJLyogaWdub3JlIGRpcmVjdG9yeSwgYWxyZWFkeSBoYXZlIHRoYXQg Ki8KLQkJCXNwbGl0X3BhdGgoYXJndltvcHRpbmQgKyAxXSwgJmRpcmVjdG9yeSwgJmZuYW1lKTsK LQorCQkJd2FsZGlyID0gaWRlbnRpZnlfdGFyZ2V0X2RpcmVjdG9yeSh3YWxkaXIsIGZuYW1lKTsK IAkJCWZkID0gb3Blbl9maWxlX2luX2RpcmVjdG9yeSh3YWxkaXIsIGZuYW1lKTsKIAkJCWlmIChm ZCA8IDApCiAJCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiIiwgZm5hbWUp OwogCQkJY2xvc2UoZmQpOwogCiAJCQkvKiBwYXJzZSBwb3NpdGlvbiBmcm9tIGZpbGUgKi8KLQkJ CVhMb2dGcm9tRmlsZU5hbWUoZm5hbWUsICZwcml2YXRlLnRpbWVsaW5lLCAmZW5kc2Vnbm8sIFdh bFNlZ1N6KTsKKwkJCVhMb2dGcm9tRmlsZU5hbWUoZm5hbWUsICZwcml2YXRlLnRpbWVsaW5lLCAm c2Vnbm8sIFdhbFNlZ1N6KTsKIAotCQkJaWYgKGVuZHNlZ25vIDwgc2Vnbm8pCi0JCQkJcGdfZmF0 YWwoIkVORFNFRyAlcyBpcyBiZWZvcmUgU1RBUlRTRUcgJXMiLAotCQkJCQkJIGFyZ3Zbb3B0aW5k ICsgMV0sIGFyZ3Zbb3B0aW5kXSk7CisJCQlpZiAoIVhMb2dSZWNQdHJJc1ZhbGlkKHByaXZhdGUu c3RhcnRwdHIpKQorCQkJCVhMb2dTZWdOb09mZnNldFRvUmVjUHRyKHNlZ25vLCAwLCBXYWxTZWdT eiwgcHJpdmF0ZS5zdGFydHB0cik7CisJCQllbHNlIGlmICghWExCeXRlSW5TZWcocHJpdmF0ZS5z dGFydHB0ciwgc2Vnbm8sIFdhbFNlZ1N6KSkKKwkJCXsKKwkJCQlwZ19sb2dfZXJyb3IoInN0YXJ0 IFdBTCBsb2NhdGlvbiAlWC8lMDhYIGlzIG5vdCBpbnNpZGUgZmlsZSBcIiVzXCIiLAorCQkJCQkJ CSBMU05fRk9STUFUX0FSR1MocHJpdmF0ZS5zdGFydHB0ciksCisJCQkJCQkJIGZuYW1lKTsKKwkJ CQlnb3RvIGJhZF9hcmd1bWVudDsKKwkJCX0KIAotCQkJaWYgKCFYTG9nUmVjUHRySXNWYWxpZChw cml2YXRlLmVuZHB0cikpCi0JCQkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoZW5kc2Vnbm8gKyAx LCAwLCBXYWxTZWdTeiwKLQkJCQkJCQkJCQlwcml2YXRlLmVuZHB0cik7CisJCQkvKiBubyBzZWNv bmQgZmlsZSBzcGVjaWZpZWQsIHNldCBlbmQgcG9zaXRpb24gKi8KKwkJCWlmICghKG9wdGluZCAr IDEgPCBhcmdjKSAmJiAhWExvZ1JlY1B0cklzVmFsaWQocHJpdmF0ZS5lbmRwdHIpKQorCQkJCVhM b2dTZWdOb09mZnNldFRvUmVjUHRyKHNlZ25vICsgMSwgMCwgV2FsU2VnU3osIHByaXZhdGUuZW5k cHRyKTsKIAotCQkJLyogc2V0IHNlZ25vIHRvIGVuZHNlZ25vIGZvciBjaGVjayBvZiAtLWVuZCAq LwotCQkJc2Vnbm8gPSBlbmRzZWdubzsKLQkJfQorCQkJLyogcGFyc2UgRU5EU0VHIGlmIHBhc3Nl ZCAqLworCQkJaWYgKG9wdGluZCArIDEgPCBhcmdjKQorCQkJeworCQkJCVhMb2dTZWdObwllbmRz ZWdubzsKIAorCQkJCS8qIGlnbm9yZSBkaXJlY3RvcnksIGFscmVhZHkgaGF2ZSB0aGF0ICovCisJ CQkJc3BsaXRfcGF0aChhcmd2W29wdGluZCArIDFdLCAmZGlyZWN0b3J5LCAmZm5hbWUpOwogCi0J CWlmICghWExCeXRlSW5TZWcocHJpdmF0ZS5lbmRwdHIsIHNlZ25vLCBXYWxTZWdTeikgJiYKLQkJ CXByaXZhdGUuZW5kcHRyICE9IChzZWdubyArIDEpICogV2FsU2VnU3opCi0JCXsKLQkJCXBnX2xv Z19lcnJvcigiZW5kIFdBTCBsb2NhdGlvbiAlWC8lMDhYIGlzIG5vdCBpbnNpZGUgZmlsZSBcIiVz XCIiLAotCQkJCQkJIExTTl9GT1JNQVRfQVJHUyhwcml2YXRlLmVuZHB0ciksCi0JCQkJCQkgYXJn dlthcmdjIC0gMV0pOwotCQkJZ290byBiYWRfYXJndW1lbnQ7CisJCQkJZmQgPSBvcGVuX2ZpbGVf aW5fZGlyZWN0b3J5KHdhbGRpciwgZm5hbWUpOworCQkJCWlmIChmZCA8IDApCisJCQkJCXBnX2Zh dGFsKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIiIsIGZuYW1lKTsKKwkJCQljbG9zZShmZCk7 CisKKwkJCQkvKiBwYXJzZSBwb3NpdGlvbiBmcm9tIGZpbGUgKi8KKwkJCQlYTG9nRnJvbUZpbGVO YW1lKGZuYW1lLCAmcHJpdmF0ZS50aW1lbGluZSwgJmVuZHNlZ25vLCBXYWxTZWdTeik7CisKKwkJ CQlpZiAoZW5kc2Vnbm8gPCBzZWdubykKKwkJCQkJcGdfZmF0YWwoIkVORFNFRyAlcyBpcyBiZWZv cmUgU1RBUlRTRUcgJXMiLAorCQkJCQkJCSBhcmd2W29wdGluZCArIDFdLCBhcmd2W29wdGluZF0p OworCisJCQkJaWYgKCFYTG9nUmVjUHRySXNWYWxpZChwcml2YXRlLmVuZHB0cikpCisJCQkJCVhM b2dTZWdOb09mZnNldFRvUmVjUHRyKGVuZHNlZ25vICsgMSwgMCwgV2FsU2VnU3osCisJCQkJCQkJ CQkJCXByaXZhdGUuZW5kcHRyKTsKKworCQkJCS8qIHNldCBzZWdubyB0byBlbmRzZWdubyBmb3Ig Y2hlY2sgb2YgLS1lbmQgKi8KKwkJCQlzZWdubyA9IGVuZHNlZ25vOworCQkJfQorCisKKwkJCWlm ICghWExCeXRlSW5TZWcocHJpdmF0ZS5lbmRwdHIsIHNlZ25vLCBXYWxTZWdTeikgJiYKKwkJCQlw cml2YXRlLmVuZHB0ciAhPSAoc2Vnbm8gKyAxKSAqIFdhbFNlZ1N6KQorCQkJeworCQkJCXBnX2xv Z19lcnJvcigiZW5kIFdBTCBsb2NhdGlvbiAlWC8lMDhYIGlzIG5vdCBpbnNpZGUgZmlsZSBcIiVz XCIiLAorCQkJCQkJCSBMU05fRk9STUFUX0FSR1MocHJpdmF0ZS5lbmRwdHIpLAorCQkJCQkJCSBh cmd2W2FyZ2MgLSAxXSk7CisJCQkJZ290byBiYWRfYXJndW1lbnQ7CisJCQl9CiAJCX0KIAl9Ci0J ZWxzZQotCQl3YWxkaXIgPSBpZGVudGlmeV90YXJnZXRfZGlyZWN0b3J5KHdhbGRpciwgTlVMTCk7 CisJZWxzZSBpZiAoIWlzX2FyY2hpdmUpCisJCXdhbGRpciA9IGlkZW50aWZ5X3RhcmdldF9kaXJl Y3Rvcnkod2FscGF0aCwgTlVMTCk7CiAKIAkvKiB3ZSBkb24ndCBrbm93IHdoYXQgdG8gcHJpbnQg Ki8KIAlpZiAoIVhMb2dSZWNQdHJJc1ZhbGlkKHByaXZhdGUuc3RhcnRwdHIpKQpAQCAtMTIwNywx MiArMTI3NywzNiBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkvKiBkb25lIHdpdGgg YXJndW1lbnQgcGFyc2luZywgZG8gdGhlIGFjdHVhbCB3b3JrICovCiAKIAkvKiB3ZSBoYXZlIGV2 ZXJ5dGhpbmcgd2UgbmVlZCwgc3RhcnQgcmVhZGluZyAqLwotCXhsb2dyZWFkZXJfc3RhdGUgPQot CQlYTG9nUmVhZGVyQWxsb2NhdGUoV2FsU2VnU3osIHdhbGRpciwKLQkJCQkJCSAgIFhMX1JPVVRJ TkUoLnBhZ2VfcmVhZCA9IFdBTER1bXBSZWFkUGFnZSwKLQkJCQkJCQkJCSAgLnNlZ21lbnRfb3Bl biA9IFdBTER1bXBPcGVuU2VnbWVudCwKLQkJCQkJCQkJCSAgLnNlZ21lbnRfY2xvc2UgPSBXQUxE dW1wQ2xvc2VTZWdtZW50KSwKLQkJCQkJCSAgICZwcml2YXRlKTsKKwlpZiAoaXNfYXJjaGl2ZSkK Kwl7CisJCS8qCisJCSAqIEEgTlVMTCBXQUwgZGlyZWN0b3J5IGluZGljYXRlcyB0aGF0IHRoZSBh cmNoaXZlIGZpbGUgaXMgbG9jYXRlZAorCQkgKiBpbiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVj dG9yeSBvZiB0aGUgcGdfd2FsZHVtcCBleGVjdXRpb24KKwkJICovCisJCXdhbGRpciA9IHdhbGRp ciA/IHBnX3N0cmR1cCh3YWxkaXIpIDogcGdfc3RyZHVwKCIuIik7CisKKwkJLyogU2V0IHVwIGZv ciByZWFkaW5nIHRhciBmaWxlICovCisJCWluaXRfYXJjaGl2ZV9yZWFkZXIoJnByaXZhdGUsIHdh bGRpciwgY29tcHJlc3Npb24pOworCisJCS8qIFJvdXRpbmUgdG8gZGVjb2RlIFdBTCBmaWxlcyBp biB0YXIgYXJjaGl2ZSAqLworCQl4bG9ncmVhZGVyX3N0YXRlID0KKwkJCVhMb2dSZWFkZXJBbGxv Y2F0ZShXYWxTZWdTeiwgd2FsZGlyLAorCQkJCQkJCSAgIFhMX1JPVVRJTkUoLnBhZ2VfcmVhZCA9 IFRhcldBTER1bXBSZWFkUGFnZSwKKwkJCQkJCQkJCQkgIC5zZWdtZW50X29wZW4gPSBUYXJXQUxE dW1wT3BlblNlZ21lbnQsCisJCQkJCQkJCQkJICAuc2VnbWVudF9jbG9zZSA9IFRhcldBTER1bXBD bG9zZVNlZ21lbnQpLAorCQkJCQkJCSAgICZwcml2YXRlKTsKKwl9CisJZWxzZQorCXsKKwkJLyog Um91dGluZSB0byBkZWNvZGUgV0FMIGZpbGVzICovCisJCXhsb2dyZWFkZXJfc3RhdGUgPQorCQkJ WExvZ1JlYWRlckFsbG9jYXRlKFdhbFNlZ1N6LCB3YWxkaXIsCisJCQkJCQkJICAgWExfUk9VVElO RSgucGFnZV9yZWFkID0gV0FMRHVtcFJlYWRQYWdlLAorCQkJCQkJCQkJCSAgLnNlZ21lbnRfb3Bl biA9IFdBTER1bXBPcGVuU2VnbWVudCwKKwkJCQkJCQkJCQkgIC5zZWdtZW50X2Nsb3NlID0gV0FM RHVtcENsb3NlU2VnbWVudCksCisJCQkJCQkJICAgJnByaXZhdGUpOworCX0KKwogCWlmICgheGxv Z3JlYWRlcl9zdGF0ZSkKIAkJcGdfZmF0YWwoIm91dCBvZiBtZW1vcnkgd2hpbGUgYWxsb2NhdGlu ZyBhIFdBTCByZWFkaW5nIHByb2Nlc3NvciIpOwogCkBAIC0xMzIxLDYgKzE0MTUsOSBAQCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKIAogCVhMb2dSZWFkZXJGcmVlKHhsb2dyZWFkZXJfc3Rh dGUpOwogCisJaWYgKGlzX2FyY2hpdmUpCisJCWZyZWVfYXJjaGl2ZV9yZWFkZXIoJnByaXZhdGUp OworCiAJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKIAogYmFkX2FyZ3VtZW50OgpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaCBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193 YWxkdW1wLmgKaW5kZXggOWU2MmI2NGVhZDUuLjU0NzU4YzM1NDhhIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193 YWxkdW1wLmgKQEAgLTEyLDkgKzEyLDEzIEBACiAjZGVmaW5lIFBHX1dBTERVTVBfSAogCiAjaW5j bHVkZSAiYWNjZXNzL3hsb2dkZWZzLmgiCisjaW5jbHVkZSAiZmVfdXRpbHMvYXN0cmVhbWVyLmgi CiAKIGV4dGVybiBpbnQJV2FsU2VnU3o7CiAKKy8qIEZvcndhcmQgZGVjbGFyYXRpb24gKi8KK3N0 cnVjdCBBcmNoaXZlZFdBTEVudHJ5OworCiAvKiBDb250YWlucyB0aGUgbmVjZXNzYXJ5IGluZm9y bWF0aW9uIHRvIGRyaXZlIFdBTCBkZWNvZGluZyAqLwogdHlwZWRlZiBzdHJ1Y3QgWExvZ0R1bXBQ cml2YXRlCiB7CkBAIC0yMiw2ICsyNiwzNiBAQCB0eXBlZGVmIHN0cnVjdCBYTG9nRHVtcFByaXZh dGUKIAlYTG9nUmVjUHRyCXN0YXJ0cHRyOwogCVhMb2dSZWNQdHIJZW5kcHRyOwogCWJvb2wJCWVu ZHB0cl9yZWFjaGVkOworCisJLyogRmllbGRzIHJlcXVpcmVkIHRvIHJlYWQgV0FMIGZyb20gYXJj aGl2ZSAqLworCWNoYXIJICAgKmFyY2hpdmVfbmFtZTsJLyogVGFyIGFyY2hpdmUgbmFtZSAqLwor CWludAkJCWFyY2hpdmVfZmQ7CQkvKiBGaWxlIGRlc2NyaXB0b3IgZm9yIHRoZSBvcGVuIHRhciBm aWxlICovCisKKwlhc3RyZWFtZXIgICphcmNoaXZlX3N0cmVhbWVyOworCisJLyogV2hhdCB0aGUg YXJjaGl2ZSBzdHJlYW1lciBpcyBjdXJyZW50bHkgcmVhZGluZyAqLworCXN0cnVjdCBBcmNoaXZl ZFdBTEVudHJ5ICpjdXJfd2FsOworCisJLyoKKwkgKiBBbHRob3VnaCB0aGVzZSB2YWx1ZXMgY2Fu IGJlIGVhc2lseSBkZXJpdmVkIGZyb20gc3RhcnRwdHIgYW5kIGVuZHB0ciwKKwkgKiBkb2luZyBz byByZXBlYXRlZGx5IGZvciBlYWNoIGFyY2hpdmVkIG1lbWJlciB3b3VsZCBiZSBpbmVmZmljaWVu dCwgYXMKKwkgKiBpdCB3b3VsZCBpbnZvbHZlIHJlY2FsY3VsYXRpbmcgYW5kIGZpbHRlcmluZyBv dXQgaXJyZWxldmFudCBXQUwKKwkgKiBzZWdtZW50cy4KKwkgKi8KKwlYTG9nU2VnTm8Jc3RhcnRT ZWdObzsKKwlYTG9nU2VnTm8JZW5kU2VnTm87CiB9IFhMb2dEdW1wUHJpdmF0ZTsKIAotI2VuZGlm CQkvKiBlbmQgb2YgUEdfV0FMRFVNUF9IICovCitleHRlcm4gaW50CW9wZW5fZmlsZV9pbl9kaXJl Y3RvcnkoY29uc3QgY2hhciAqZGlyZWN0b3J5LCBjb25zdCBjaGFyICpmbmFtZSk7CisKK2V4dGVy biBib29sIGlzX2FyY2hpdmVfZmlsZShjb25zdCBjaGFyICpmbmFtZSwKKwkJCQkJCQlwZ19jb21w cmVzc19hbGdvcml0aG0gKmNvbXByZXNzaW9uKTsKK2V4dGVybiB2b2lkIGluaXRfYXJjaGl2ZV9y ZWFkZXIoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbywKKwkJCQkJCQkJY29uc3QgY2hhciAq d2FsZGlyLAorCQkJCQkJCQlwZ19jb21wcmVzc19hbGdvcml0aG0gY29tcHJlc3Npb24pOworZXh0 ZXJuIHZvaWQgZnJlZV9hcmNoaXZlX3JlYWRlcihYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZv KTsKK2V4dGVybiBpbnQJcmVhZF9hcmNoaXZlX3dhbF9wYWdlKFhMb2dEdW1wUHJpdmF0ZSAqcHJp dmF0ZUluZm8sCisJCQkJCQkJCSAgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLAorCQkJCQkJCQkg IFNpemUgY291bnQsIGNoYXIgKnJlYWRCdWZmKTsKKworI2VuZGlmCQkJCQkJCS8qIGVuZCBvZiBQ R19XQUxEVU1QX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNp Yy5wbCBiL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbAppbmRleCAxYjcxMmU4ZDc0 ZC4uNDQzMTI2YTljZTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNp Yy5wbAorKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMucGwKQEAgLTMsMTAgKzMs MTMgQEAKIAogdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5ncyBGQVRBTCA9PiAnYWxsJzsKK3VzZSBD d2Q7CiB1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKIHVzZSBQb3N0Z3JlU1FMOjpUZXN0 OjpVdGlsczsKIHVzZSBUZXN0OjpNb3JlOwogCitteSAkdGFyID0gJEVOVntUQVJ9OworCiBwcm9n cmFtX2hlbHBfb2soJ3BnX3dhbGR1bXAnKTsKIHByb2dyYW1fdmVyc2lvbl9vaygncGdfd2FsZHVt cCcpOwogcHJvZ3JhbV9vcHRpb25zX2hhbmRsaW5nX29rKCdwZ193YWxkdW1wJyk7CkBAIC0yMzUs NyArMjM4LDcgQEAgY29tbWFuZF9saWtlKAogc3ViIHRlc3RfcGdfd2FsZHVtcAogewogCWxvY2Fs ICRUZXN0OjpCdWlsZGVyOjpMZXZlbCA9ICRUZXN0OjpCdWlsZGVyOjpMZXZlbCArIDE7Ci0JbXkg QG9wdHMgPSBAXzsKKwlteSAoJHBhdGgsIEBvcHRzKSA9IEBfOwogCiAJbXkgKCRzdGRvdXQsICRz dGRlcnIpOwogCkBAIC0yNDMsNiArMjQ2LDcgQEAgc3ViIHRlc3RfcGdfd2FsZHVtcAogCQkncGdf d2FsZHVtcCcsCiAJCSctLXN0YXJ0JyA9PiAkc3RhcnRfbHNuLAogCQknLS1lbmQnID0+ICRlbmRf bHNuLAorCQknLS1wYXRoJyA9PiAkcGF0aCwKIAkJQG9wdHMKIAkgIF0sCiAJICAnPicgPT4gXCRz dGRvdXQsCkBAIC0yNTQsMTEgKzI1OCw1MCBAQCBzdWIgdGVzdF9wZ193YWxkdW1wCiAJcmV0dXJu IEBsaW5lczsKIH0KIAotbXkgQGxpbmVzOworIyBDcmVhdGUgYSB0YXIgYXJjaGl2ZSwgc29ydGlu ZyB0aGUgZmlsZSBvcmRlcgorc3ViIGdlbmVyYXRlX2FyY2hpdmUKK3sKKwlteSAoJGFyY2hpdmUs ICRkaXJlY3RvcnksICRjb21wcmVzc2lvbl9mbGFncykgPSBAXzsKKworCW15IEBmaWxlczsKKwlv cGVuZGlyIG15ICRkaCwgJGRpcmVjdG9yeSBvciBkaWUgIm9wZW5kaXI6ICQhIjsKKwl3aGlsZSAo bXkgJGVudHJ5ID0gcmVhZGRpciAkZGgpIHsKKwkJIyBTa2lwICcuJyBhbmQgJy4uJworCQluZXh0 IGlmICRlbnRyeSBlcSAnLicgfHwgJGVudHJ5IGVxICcuLic7CisJCXB1c2ggQGZpbGVzLCAkZW50 cnk7CisJfQorCWNsb3NlZGlyICRkaDsKKworCUBmaWxlcyA9IHNvcnQgQGZpbGVzOworCisJIyBt b3ZlIGludG8gdGhlIFdBTCBkaXJlY3RvcnkgYmVmb3JlIGFyY2hpdmluZyBmaWxlcworCW15ICRj d2QgPSBnZXRjd2Q7CisJY2hkaXIoJGRpcmVjdG9yeSkgfHwgZGllICJjaGRpcjogJCEiOworCWNv bW1hbmRfb2soWyR0YXIsICRjb21wcmVzc2lvbl9mbGFncywgJGFyY2hpdmUsIEBmaWxlc10pOwor CWNoZGlyKCRjd2QpIHx8IGRpZSAiY2hkaXI6ICQhIjsKK30KKworbXkgJHRtcF9kaXIgPSBQb3N0 Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGVtcGRpcl9zaG9ydCgpOwogCiBteSBAc2NlbmFyaW8gPSAo CiAJewotCQkncGF0aCcgPT4gJG5vZGUtPmRhdGFfZGlyCisJCSdwYXRoJyA9PiAkbm9kZS0+ZGF0 YV9kaXIsCisJCSdpc19hcmNoaXZlJyA9PiAwLAorCQknZW5hYmxlZCcgPT4gMQorCX0sCisJewor CQkncGF0aCcgPT4gIiR0bXBfZGlyL3BnX3dhbC50YXIiLAorCQknY29tcHJlc3Npb25fbWV0aG9k JyA9PiAnbm9uZScsCisJCSdjb21wcmVzc2lvbl9mbGFncycgPT4gJy1jZicsCisJCSdpc19hcmNo aXZlJyA9PiAxLAorCQknZW5hYmxlZCcgPT4gMQorCX0sCisJeworCQkncGF0aCcgPT4gIiR0bXBf ZGlyL3BnX3dhbC50YXIuZ3oiLAorCQknY29tcHJlc3Npb25fbWV0aG9kJyA9PiAnZ3ppcCcsCisJ CSdjb21wcmVzc2lvbl9mbGFncycgPT4gJy1jemYnLAorCQknaXNfYXJjaGl2ZScgPT4gMSwKKwkJ J2VuYWJsZWQnID0+IGNoZWNrX3BnX2NvbmZpZygiI2RlZmluZSBIQVZFX0xJQlogMSIpCiAJfSk7 CiAKIGZvciBteSAkc2NlbmFyaW8gKEBzY2VuYXJpbykKQEAgLTI2Nyw2ICszMTAsMTkgQEAgZm9y IG15ICRzY2VuYXJpbyAoQHNjZW5hcmlvKQogCiAJU0tJUDoKIAl7CisJCXNraXAgInRhciBjb21t YW5kIGlzIG5vdCBhdmFpbGFibGUiLCAzCisJCSAgaWYgIWRlZmluZWQgJHRhcjsKKwkJc2tpcCAi JHNjZW5hcmlvLT57J2NvbXByZXNzaW9uX21ldGhvZCd9IGNvbXByZXNzaW9uIG5vdCBzdXBwb3J0 ZWQgYnkgdGhpcyBidWlsZCIsIDMKKwkJICBpZiAhJHNjZW5hcmlvLT57J2VuYWJsZWQnfSAmJiAk c2NlbmFyaW8tPnsnaXNfYXJjaGl2ZSd9OworCisJCSAgIyBjcmVhdGUgcGdfd2FsIGFyY2hpdmUK KwkJICBpZiAoJHNjZW5hcmlvLT57J2lzX2FyY2hpdmUnfSkKKwkJICB7CisJCQkgIGdlbmVyYXRl X2FyY2hpdmUoJHBhdGgsCisJCQkJICAkbm9kZS0+ZGF0YV9kaXIgLiAnL3BnX3dhbCcsCisJCQkJ ICAkc2NlbmFyaW8tPnsnY29tcHJlc3Npb25fZmxhZ3MnfSk7CisJCSAgfQorCiAJCWNvbW1hbmRf ZmFpbHNfbGlrZSgKIAkJCVsgJ3BnX3dhbGR1bXAnLCAnLS1wYXRoJyA9PiAkcGF0aCBdLAogCQkJ cXIvZXJyb3I6IG5vIHN0YXJ0IFdBTCBsb2NhdGlvbiBnaXZlbi8sCkBAIC0yOTgsMzggKzM1NCw0 MiBAQCBmb3IgbXkgJHNjZW5hcmlvIChAc2NlbmFyaW8pCiAJCQlxci9lcnJvcjogZXJyb3IgaW4g V0FMIHJlY29yZCBhdC8sCiAJCQknZXJyb3JzIGFyZSBzaG93biB3aXRoIC0tcXVpZXQnKTsKIAot CQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tcGF0aCcgPT4gJHBhdGgpOworCQlteSBAbGlu ZXM7CisJCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgkcGF0aCk7CiAJCWlzKGdyZXAoIS9ecm1n cjogXHcvLCBAbGluZXMpLCAwLCAnYWxsIG91dHB1dCBsaW5lcyBhcmUgcm1nciBsaW5lcycpOwog Ci0JCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0aCwgJy0tbGltaXQn ID0+IDYpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgsICctLWxpbWl0JyA9PiA2 KTsKIAkJaXMoQGxpbmVzLCA2LCAnbGltaXQgb3B0aW9uIG9ic2VydmVkJyk7CiAKLQkJQGxpbmVz ID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1mdWxscGFnZScpOworCQlA bGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgsICctLWZ1bGxwYWdlJyk7CiAJCWlzKGdyZXAo IS9ecm1ncjouKlxiRlBXXGIvLCBAbGluZXMpLCAwLCAnYWxsIG91dHB1dCBsaW5lcyBhcmUgRlBX Jyk7CiAKLQkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1z dGF0cycpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgsICctLXN0YXRzJyk7CiAJ CWxpa2UoJGxpbmVzWzBdLCBxci9XQUwgc3RhdGlzdGljcy8sICJzdGF0aXN0aWNzIG9uIHN0ZG91 dCIpOwogCQlpcyhncmVwKC9ecm1ncjovLCBAbGluZXMpLCAwLCAnbm8gcm1nciBsaW5lcyBvdXRw dXQnKTsKIAotCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tcGF0aCcgPT4gJHBhdGgsICct LXN0YXRzPXJlY29yZCcpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgsICctLXN0 YXRzPXJlY29yZCcpOwogCQlsaWtlKCRsaW5lc1swXSwgcXIvV0FMIHN0YXRpc3RpY3MvLCAic3Rh dGlzdGljcyBvbiBzdGRvdXQiKTsKIAkJaXMoZ3JlcCgvXnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25v IHJtZ3IgbGluZXMgb3V0cHV0Jyk7CiAKLQkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBh dGgnID0+ICRwYXRoLCAnLS1ybWdyJyA9PiAnQnRyZWUnKTsKKwkJQGxpbmVzID0gdGVzdF9wZ193 YWxkdW1wKCRwYXRoLCAnLS1ybWdyJyA9PiAnQnRyZWUnKTsKIAkJaXMoZ3JlcCghL15ybWdyOiBC dHJlZS8sIEBsaW5lcyksIDAsICdvbmx5IEJ0cmVlIGxpbmVzJyk7CiAKLQkJQGxpbmVzID0gdGVz dF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1mb3JrJyA9PiAnaW5pdCcpOworCQlA bGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgsICctLWZvcmsnID0+ICdpbml0Jyk7CiAJCWlz KGdyZXAoIS9mb3JrIGluaXQvLCBAbGluZXMpLCAwLCAnb25seSBpbml0IGZvcmsgbGluZXMnKTsK IAotCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tcGF0aCcgPT4gJHBhdGgsCisJCUBsaW5l cyA9IHRlc3RfcGdfd2FsZHVtcCgkcGF0aCwKIAkJCSctLXJlbGF0aW9uJyA9PiAiJGRlZmF1bHRf dHNfb2lkLyRwb3N0Z3Jlc19kYl9vaWQvJHJlbF90MV9vaWQiKTsKIAkJaXMoZ3JlcCghL3JlbCAk ZGVmYXVsdF90c19vaWRcLyRwb3N0Z3Jlc19kYl9vaWRcLyRyZWxfdDFfb2lkLywgQGxpbmVzKSwK IAkJCTAsICdvbmx5IGxpbmVzIGZvciBzZWxlY3RlZCByZWxhdGlvbicpOwogCi0JCUBsaW5lcyA9 IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0aCwKKwkJQGxpbmVzID0gdGVzdF9wZ193 YWxkdW1wKCRwYXRoLAogCQkJJy0tcmVsYXRpb24nID0+ICIkZGVmYXVsdF90c19vaWQvJHBvc3Rn cmVzX2RiX29pZC8kcmVsX2kxYV9vaWQiLAogCQkJJy0tYmxvY2snID0+IDEpOwogCQlpcyhncmVw KCEvXGJibGsgMVxiLywgQGxpbmVzKSwgMCwgJ29ubHkgbGluZXMgZm9yIHNlbGVjdGVkIGJsb2Nr Jyk7CisKKwkJIyBDbGVhbnVwLgorCQl1bmxpbmsgJHBhdGggaWYgJHNjZW5hcmlvLT57J2lzX2Fy Y2hpdmUnfTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggNTdhOGYwMzY2 YTUuLjk4MWNkYjY5MTc1IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTM5LDYgKzEz OSw4IEBAIEFyY2hpdmVPcHRzCiBBcmNoaXZlU2h1dGRvd25DQgogQXJjaGl2ZVN0YXJ0dXBDQgog QXJjaGl2ZVN0cmVhbVN0YXRlCitBcmNoaXZlZFdBTEVudHJ5CitBcmNoaXZlZFdBTF9oYXNoCiBB cmNoaXZlck91dHB1dAogQXJjaGl2ZXJTdGFnZQogQXJyYXlBbmFseXplRXh0cmFEYXRhCkBAIC0z NDY2LDYgKzM0NjgsNyBAQCBhc3RyZWFtZXJfcmVjb3ZlcnlfaW5qZWN0b3IKIGFzdHJlYW1lcl90 YXJfYXJjaGl2ZXIKIGFzdHJlYW1lcl90YXJfcGFyc2VyCiBhc3RyZWFtZXJfdmVyaWZ5Cithc3Ry ZWFtZXJfd2FsZHVtcAogYXN0cmVhbWVyX3pzdGRfZnJhbWUKIGF1dGhfcGFzc3dvcmRfaG9va190 eXAKIGF1dG92YWNfdGFibGUKLS0gCjIuNDcuMQoK --000000000000102ced06446586db Content-Type: application/x-patch; name="v8-0005-pg_waldump-Remove-the-restriction-on-the-order-of.patch" Content-Disposition: attachment; filename="v8-0005-pg_waldump-Remove-the-restriction-on-the-order-of.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mie7ayy14 RnJvbSAxYTQxMzkzZGE3Nzc4MzhlZmIzYjA5NWI4YWIxY2FmZDFmZTkyNjIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgNiBOb3YgMjAyNSAxMzo0ODozMyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjggNS84XSBwZ193 YWxkdW1wOiBSZW1vdmUgdGhlIHJlc3RyaWN0aW9uIG9uIHRoZSBvcmRlciBvZgogYXJjaGl2ZWQg V0FMIGZpbGVzLgoKV2l0aCBwcmV2aW91cyBwYXRjaCwgcGdfd2FsZHVtcCB3b3VsZCBzdG9wIGRl Y29kaW5nIGlmIFdBTCBmaWxlcyB3ZXJlCm5vdCBpbiB0aGUgcmVxdWlyZWQgc2VxdWVuY2UuIFdp dGggdGhpcyBwYXRjaCwgZGVjb2Rpbmcgd2lsbCBub3cKY29udGludWUuICBBbnkgV0FMIGZpbGUg dGhhdCBpcyBvdXQgb2Ygb3JkZXIgd2lsbCBiZSB3cml0dGVuIHRvIGEKdGVtcG9yYXJ5IGxvY2F0 aW9uLCBmcm9tIHdoaWNoIGl0IHdpbGwgYmUgcmVhZCBsYXRlci4gT25jZSBhIHRlbXBvcmFyeQpm aWxlIGhhcyBiZWVuIHJlYWQsIGl0IHdpbGwgYmUgcmVtb3ZlZC4KLS0tCiBzcmMvYmluL3BnX3dh bGR1bXAvYXJjaGl2ZV93YWxkdW1wLmMgfCAyMjAgKysrKysrKysrKysrKysrKysrKysrKysrKy0t CiBzcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jICAgICAgfCAgNDEgKysrKy0KIHNyYy9i aW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmggICAgICB8ICAgNCArCiBzcmMvYmluL3BnX3dhbGR1 bXAvdC8wMDFfYmFzaWMucGwgICAgfCAgIDMgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMjU2IGluc2Vy dGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVt cC9hcmNoaXZlX3dhbGR1bXAuYyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9hcmNoaXZlX3dhbGR1bXAu YwppbmRleCBmOTkxNjMzZTU4Yy4uZDM4ODU1ZTlhMTAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf d2FsZHVtcC9hcmNoaXZlX3dhbGR1bXAuYworKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvYXJjaGl2 ZV93YWxkdW1wLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KIAogI2lu Y2x1ZGUgImFjY2Vzcy94bG9nX2ludGVybmFsLmgiCisjaW5jbHVkZSAiY29tbW9uL2ZpbGVfcGVy bS5oIgogI2luY2x1ZGUgImNvbW1vbi9oYXNoZm4uaCIKICNpbmNsdWRlICJjb21tb24vbG9nZ2lu Zy5oIgogI2luY2x1ZGUgImZlX3V0aWxzL3NpbXBsZV9saXN0LmgiCkBAIC0yNyw2ICsyOCw5IEBA CiAgKi8KICNkZWZpbmUgUkVBRF9DSFVOS19TSVpFCQkJCSgxMjggKiAxMDI0KQogCisvKiBUZW1w b3JhcnkgZXhwb3J0ZWQgV0FMIGZpbGUgZGlyZWN0b3J5ICovCitzdGF0aWMgY2hhciAqVG1wV2Fs U2VnRGlyID0gTlVMTDsKKwogLyogU3RydWN0dXJlIGZvciBzdG9yaW5nIHRoZSBXQUwgc2VnbWVu dCBkYXRhIGZyb20gdGhlIGFyY2hpdmUgKi8KIHR5cGVkZWYgc3RydWN0IEFyY2hpdmVkV0FMRW50 cnkKIHsKQEAgLTY1LDYgKzY5LDExIEBAIHR5cGVkZWYgc3RydWN0IGFzdHJlYW1lcl93YWxkdW1w CiBzdGF0aWMgaW50CXJlYWRfYXJjaGl2ZV9maWxlKFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUlu Zm8sIFNpemUgY291bnQpOwogc3RhdGljIEFyY2hpdmVkV0FMRW50cnkgKmdldF9hcmNoaXZlX3dh bF9lbnRyeShYTG9nU2VnTm8gc2Vnbm8sCiAJCQkJCQkJCQkJCSAgIFhMb2dEdW1wUHJpdmF0ZSAq cHJpdmF0ZUluZm8pOworc3RhdGljIHZvaWQgc2V0dXBfdG1wc2VnX2Rpcihjb25zdCBjaGFyICp3 YWxkaXIpOworc3RhdGljIHZvaWQgY2xlYW51cF90bXBzZWdfZGlyX2F0ZXhpdCh2b2lkKTsKKwor c3RhdGljIEZJTEUgKnByZXBhcmVfdG1wX3dyaXRlKFhMb2dTZWdObyBzZWdubyk7CitzdGF0aWMg dm9pZCBwZXJmb3JtX3RtcF93cml0ZShYTG9nU2VnTm8gc2Vnbm8sIFN0cmluZ0luZm8gYnVmLCBG SUxFICpmaWxlKTsKIAogc3RhdGljIGFzdHJlYW1lciAqYXN0cmVhbWVyX3dhbGR1bXBfbmV3KFhM b2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8pOwogc3RhdGljIHZvaWQgYXN0cmVhbWVyX3dhbGR1 bXBfY29udGVudChhc3RyZWFtZXIgKnN0cmVhbWVyLApAQCAtMTIwLDEwICsxMjksMTEgQEAgaXNf YXJjaGl2ZV9maWxlKGNvbnN0IGNoYXIgKmZuYW1lLCBwZ19jb21wcmVzc19hbGdvcml0aG0gKmNv bXByZXNzaW9uKQogfQogCiAvKgotICogSW5pdGlhbGl6ZXMgdGhlIHRhciBhcmNoaXZlIHJlYWRl ciB0byByZWFkIFdBTCBmaWxlcyBmcm9tIHRoZSBhcmNoaXZlLAotICogY3JlYXRlcyBhIGhhc2gg dGFibGUgdG8gc3RvcmUgdGhlbSwgcGVyZm9ybXMgcXVpY2sgZXhpc3RlbmNlIGNoZWNrcyBmb3Ig V0FMCi0gKiBlbnRyaWVzIGluIHRoZSBhcmNoaXZlIGFuZCByZXRyaWV2ZXMgdGhlIFdBTCBzZWdt ZW50IHNpemUsIGFuZCBzZXRzIHVwCi0gKiBmaWx0ZXJpbmcgY3JpdGVyaWEgZm9yIHJlbGV2YW50 IGVudHJpZXMuCisgKiBJbml0aWFsaXplcyB0aGUgdGFyIGFyY2hpdmUgcmVhZGVyLCBjcmVhdGVz IGEgaGFzaCB0YWJsZSBmb3IgV0FMIGVudHJpZXMsCisgKiBjaGVja3MgZm9yIGV4aXN0aW5nIHZh bGlkIFdBTCBzZWdtZW50cyBpbiB0aGUgYXJjaGl2ZSBmaWxlIGFuZCByZXRyaWV2ZXMgdGhlCisg KiBzZWdtZW50IHNpemUsIGFuZCBzZXRzIHVwIGZpbHRlcnMgZm9yIHJlbGV2YW50IGVudHJpZXMu IEl0IGFsc28gY29uZmlndXJlcyBhCisgKiB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZvciBvdXQtb2Yt b3JkZXIgV0FMIGRhdGEgYW5kIHJlZ2lzdGVycyBhbiBleGl0IGNhbGxiYWNrCisgKiB0byBjbGVh biB1cCB0ZW1wb3JhcnkgZmlsZXMuCiAgKi8KIHZvaWQKIGluaXRfYXJjaGl2ZV9yZWFkZXIoWExv Z0R1bXBQcml2YXRlICpwcml2YXRlSW5mbywgY29uc3QgY2hhciAqd2FsZGlyLApAQCAtMTk5LDYg KzIwOSwxMyBAQCBpbml0X2FyY2hpdmVfcmVhZGVyKFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUlu Zm8sIGNvbnN0IGNoYXIgKndhbGRpciwKIAkJcHJpdmF0ZUluZm8tPmVuZFNlZ05vID0gVUlOVDY0 X01BWDsKIAllbHNlCiAJCVhMQnl0ZVRvU2VnKHByaXZhdGVJbmZvLT5lbmRwdHIsIHByaXZhdGVJ bmZvLT5lbmRTZWdObywgV2FsU2VnU3opOworCisJLyoKKwkgKiBTZXR1cCB0ZW1wb3JhcnkgZGly ZWN0b3J5IHRvIHN0b3JlIFdBTCBzZWdtZW50cyBhbmQgc2V0IHVwIGFuIGV4aXQKKwkgKiBjYWxs YmFjayB0byByZW1vdmUgaXQgdXBvbiBjb21wbGV0aW9uLgorCSAqLworCXNldHVwX3RtcHNlZ19k aXIod2FsZGlyKTsKKwlhdGV4aXQoY2xlYW51cF90bXBzZWdfZGlyX2F0ZXhpdCk7CiB9CiAKIC8q CkBAIC0zNzQsMTMgKzM5MSwxNiBAQCByZWFkX2FyY2hpdmVfZmlsZShYTG9nRHVtcFByaXZhdGUg KnByaXZhdGVJbmZvLCBTaXplIGNvdW50KQogLyoKICAqIFJldHVybnMgdGhlIGFyY2hpdmVkIFdB TCBlbnRyeSBmcm9tIHRoZSBoYXNoIHRhYmxlIGlmIGl0IGV4aXN0cy4gT3RoZXJ3aXNlLAogICog aXQgaW52b2tlcyB0aGUgcm91dGluZSB0byByZWFkIHRoZSBhcmNoaXZlZCBmaWxlIGFuZCByZXRy aWV2ZSB0aGUgZW50cnkgaWYKLSAqIGl0IGlzIG5vdCBhbHJlYWR5IGluIGhhc2ggdGFibGUuCisg KiBpdCBpcyBub3QgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBoYXNoIHRhYmxlLiBJZiB0aGUgYXJj aGl2ZSBzdHJlYW1lciBoYXBwZW5zCisgKiB0byBiZSByZWFkaW5nIGEgV0FMIGZyb20gYXJjaGl2 ZSBmaWxlIHRoYXQgaXMgbm90IGN1cnJlbnRseSBuZWVkZWQsIHRoYXQgV0FMCisgKiBkYXRhIGlz IHdyaXR0ZW4gdG8gYSB0ZW1wb3JhcnkgZmlsZS4KICAqLwogc3RhdGljIEFyY2hpdmVkV0FMRW50 cnkgKgogZ2V0X2FyY2hpdmVfd2FsX2VudHJ5KFhMb2dTZWdObyBzZWdubywgWExvZ0R1bXBQcml2 YXRlICpwcml2YXRlSW5mbykKIHsKIAlBcmNoaXZlZFdBTEVudHJ5ICplbnRyeSA9IE5VTEw7CiAJ Y2hhcgkJZm5hbWVbTUFYRk5BTUVMRU5dOworCUZJTEUJICAgKndyaXRlX2ZwID0gTlVMTDsKIAog CS8qIFNlYXJjaCBoYXNoIHRhYmxlICovCiAJZW50cnkgPSBBcmNoaXZlZFdBTF9sb29rdXAoQXJj aGl2ZWRXQUxfSFRBQiwgc2Vnbm8pOwpAQCAtNDIzLDExICs0NDMsMzIgQEAgZ2V0X2FyY2hpdmVf d2FsX2VudHJ5KFhMb2dTZWdObyBzZWdubywgWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbykK IAkJCWNvbnRpbnVlOwogCQl9CiAKLQkJLyogV0FMIHNlZ21lbnRzIG11c3QgYmUgYXJjaGl2ZWQg aW4gb3JkZXIgKi8KLQkJcGdfbG9nX2Vycm9yKCJXQUwgZmlsZXMgYXJlIG5vdCBhcmNoaXZlZCBp biBzZXF1ZW50aWFsIG9yZGVyIik7Ci0JCXBnX2xvZ19lcnJvcl9kZXRhaWwoIkV4cGVjdGluZyBz ZWdtZW50IG51bWJlciAiIFVJTlQ2NF9GT1JNQVQgIiBidXQgZm91bmQgIiBVSU5UNjRfRk9STUFU ICIuIiwKLQkJCQkJCQlzZWdubywgZW50cnktPnNlZ25vKTsKLQkJZXhpdCgxKTsKKwkJLyoKKwkJ ICogQXJjaGl2ZSBzdHJlYW1lciBpcyBjdXJyZW50bHkgcmVhZGluZyBhIGZpbGUgdGhhdCBpc24n dCB0aGUgb25lCisJCSAqIGFza2VkIGZvciwgYnV0IGl0J3MgcmVxdWlyZWQgZm9yIGEgZnV0dXJl IGZlYXR1cmUuIEl0IHNob3VsZCBiZQorCQkgKiB3cml0dGVuIHRvIGEgdGVtcG9yYXJ5IGxvY2F0 aW9uIGZvciByZXRyaWV2YWwgd2hlbiBuZWVkZWQuCisJCSAqLworCisJCS8qIENyZWF0ZSBhIHRl bXBvcmFyeSBmaWxlIGlmIG9uZSBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0ICovCisJCWlmICghZW50 cnktPnRtcHNlZ19leGlzdHMpCisJCXsKKwkJCXdyaXRlX2ZwID0gcHJlcGFyZV90bXBfd3JpdGUo ZW50cnktPnNlZ25vKTsKKwkJCWVudHJ5LT50bXBzZWdfZXhpc3RzID0gdHJ1ZTsKKwkJfQorCisJ CS8qIEZsdXNoIGRhdGEgZnJvbSB0aGUgYnVmZmVyIHRvIHRoZSBmaWxlICovCisJCXBlcmZvcm1f dG1wX3dyaXRlKGVudHJ5LT5zZWdubywgJmVudHJ5LT5idWYsIHdyaXRlX2ZwKTsKKwkJcmVzZXRT dHJpbmdJbmZvKCZlbnRyeS0+YnVmKTsKKworCQkvKgorCQkgKiBUaGUgY2hhbmdlIGluIHRoZSBj dXJyZW50IHNlZ21lbnQgZW50cnkgaW5kaWNhdGVzIHRoYXQgdGhlIHJlYWRpbmcKKwkJICogb2Yg dGhpcyBmaWxlIGhhcyBlbmRlZC4KKwkJICovCisJCWlmIChlbnRyeSAhPSBwcml2YXRlSW5mby0+ Y3VyX3dhbCAmJiB3cml0ZV9mcCAhPSBOVUxMKQorCQl7CisJCQlmY2xvc2Uod3JpdGVfZnApOwor CQkJd3JpdGVfZnAgPSBOVUxMOworCQl9CiAJfQogCiAJLyogUmVxdWVzdGVkIFdBTCBzZWdtZW50 IG5vdCBmb3VuZCAqLwpAQCAtNDM1LDYgKzQ3NiwxNjUgQEAgZ2V0X2FyY2hpdmVfd2FsX2VudHJ5 KFhMb2dTZWdObyBzZWdubywgWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbykKIAlwZ19mYXRh bCgiY291bGQgbm90IGZpbmQgZmlsZSBcIiVzXCIgaW4gYXJjaGl2ZSIsIGZuYW1lKTsKIH0KIAor LyoKKyAqIFNldCB1cCBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gdGVtcG9yYXJpbHkgc3RvcmUg V0FMIHNlZ21lbnRzLgorICovCitzdGF0aWMgdm9pZAorc2V0dXBfdG1wc2VnX2Rpcihjb25zdCBj aGFyICp3YWxkaXIpCit7CisJY2hhcgkgICAqdGVtcGxhdGU7CisKKwkvKgorCSAqIFVzZSB0aGUg ZGlyZWN0b3J5IHNwZWNpZmllZCBieSB0aGUgVEVNRElSIGVudmlyb25tZW50IHZhcmlhYmxlLiBJ ZiBpdCdzCisJICogbm90IHNldCwgdXNlIHRoZSBwcm92aWRlZCBXQUwgZGlyZWN0b3J5IHRvIGV4 dHJhY3QgV0FMIGZpbGUKKwkgKiB0ZW1wb3JhcmlseS4KKwkgKi8KKwl0ZW1wbGF0ZSA9IHBzcHJp bnRmKCIlcy93YWxkdW1wX3RtcC1YWFhYWFgiLAorCQkJCQkJZ2V0ZW52KCJUTVBESVIiKSA/IGdl dGVudigiVE1QRElSIikgOiB3YWxkaXIpOworCVRtcFdhbFNlZ0RpciA9IG1rZHRlbXAodGVtcGxh dGUpOworCisJaWYgKFRtcFdhbFNlZ0RpciA9PSBOVUxMKQorCQlwZ19mYXRhbCgiY291bGQgbm90 IGNyZWF0ZSBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIHRlbXBsYXRlKTsKKworCWNhbm9uaWNhbGl6 ZV9wYXRoKFRtcFdhbFNlZ0Rpcik7CisKKwlwZ19sb2dfZGVidWcoImNyZWF0ZWQgZGlyZWN0b3J5 IFwiJXNcIiIsIFRtcFdhbFNlZ0Rpcik7Cit9CisKKy8qCisgKiBSZW1vdmVzIHRoZSB0ZW1wb3Jh cmlseSBzdG9yZSBXQUwgc2VnbWVudHMsIGlmIGFueSwgYXQgZXhpdGluZy4KKyAqLworc3RhdGlj IHZvaWQKK2NsZWFudXBfdG1wc2VnX2Rpcl9hdGV4aXQodm9pZCkKK3sKKwlBcmNoaXZlZFdBTF9p dGVyYXRvciBpdDsKKwlBcmNoaXZlZFdBTEVudHJ5ICplbnRyeTsKKworCS8qIFJlbW92ZSB0ZW1w b3Jhcnkgc2VnbWVudHMgKi8KKwlBcmNoaXZlZFdBTF9zdGFydF9pdGVyYXRlKEFyY2hpdmVkV0FM X0hUQUIsICZpdCk7CisJd2hpbGUgKChlbnRyeSA9IEFyY2hpdmVkV0FMX2l0ZXJhdGUoQXJjaGl2 ZWRXQUxfSFRBQiwgJml0KSkgIT0gTlVMTCkKKwl7CisJCWlmIChlbnRyeS0+dG1wc2VnX2V4aXN0 cykKKwkJeworCQkJcmVtb3ZlX3RtcF93YWxzZWcoZW50cnktPnNlZ25vLCBmYWxzZSk7CisJCQll bnRyeS0+dG1wc2VnX2V4aXN0cyA9IGZhbHNlOworCQl9CisJfQorCisJLyogUmVtb3ZlIHRlbXBv cmFyeSBkaXJlY3RvcnkgKi8KKwlpZiAocm1kaXIoVG1wV2FsU2VnRGlyKSA9PSAwKQorCQlwZ19s b2dfZGVidWcoInJlbW92ZWQgZGlyZWN0b3J5IFwiJXNcIiIsIFRtcFdhbFNlZ0Rpcik7Cit9CisK Ky8qCisgKiBHZW5lcmF0ZSB0aGUgdGVtcG9yYXJ5IFdBTCBmaWxlIHBhdGguCisgKgorICogTm90 ZSB0aGF0IHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgdG8gcGZyZWUgaXQuCisgKi8KK2NoYXIg KgorZ2V0X3RtcF93YWxzZWdfcGF0aChYTG9nU2VnTm8gc2Vnbm8pCit7CisJY2hhcgkgICAqZnBh dGggPSAoY2hhciAqKSBwYWxsb2MoTUFYUEdQQVRIKTsKKworCUFzc2VydChUbXBXYWxTZWdEaXIp OworCisJc25wcmludGYoZnBhdGgsIE1BWFBHUEFUSCwgIiVzLyUwOFglMDhYIiwKKwkJCSBUbXBX YWxTZWdEaXIsCisJCQkgKHVpbnQzMikgKHNlZ25vIC8gWExvZ1NlZ21lbnRzUGVyWExvZ0lkKFdh bFNlZ1N6KSksCisJCQkgKHVpbnQzMikgKHNlZ25vICUgWExvZ1NlZ21lbnRzUGVyWExvZ0lkKFdh bFNlZ1N6KSkpOworCisJcmV0dXJuIGZwYXRoOworfQorCisvKgorICogUm91dGluZSB0byBjaGVj ayB3aGV0aGVyIGEgdGVtcG9yYXJ5IGZpbGUgZXhpc3RzIGZvciB0aGUgY29ycmVzcG9uZGluZyBX QUwKKyAqIHNlZ21lbnQgbnVtYmVyLgorICovCitib29sCit0bXBfd2Fsc2VnX2V4aXN0cyhYTG9n U2VnTm8gc2Vnbm8pCit7CisJQXJjaGl2ZWRXQUxFbnRyeSAqZW50cnk7CisKKwllbnRyeSA9IEFy Y2hpdmVkV0FMX2xvb2t1cChBcmNoaXZlZFdBTF9IVEFCLCBzZWdubyk7CisKKwlpZiAoZW50cnkg PT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIGVudHJ5LT50bXBzZWdfZXhpc3Rz OworfQorCisvKgorICogQ3JlYXRlIGFuIGVtcHR5IHBsYWNlaG9sZGVyIGZpbGUgYW5kIHJldHVy biBpdHMgaGFuZGxlLgorICovCitzdGF0aWMgRklMRSAqCitwcmVwYXJlX3RtcF93cml0ZShYTG9n U2VnTm8gc2Vnbm8pCit7CisJRklMRQkgICAqZmlsZTsKKwljaGFyCSAgICpmcGF0aDsKKworCWZw YXRoID0gZ2V0X3RtcF93YWxzZWdfcGF0aChzZWdubyk7CisKKwkvKiBDcmVhdGUgYW4gZW1wdHkg cGxhY2Vob2xkZXIgKi8KKwlmaWxlID0gZm9wZW4oZnBhdGgsIFBHX0JJTkFSWV9XKTsKKwlpZiAo ZmlsZSA9PSBOVUxMKQorCQlwZ19mYXRhbCgiY291bGQgbm90IGNyZWF0ZSBmaWxlIFwiJXNcIjog JW0iLCBmcGF0aCk7CisKKyNpZm5kZWYgV0lOMzIKKwlpZiAoY2htb2QoZnBhdGgsIHBnX2ZpbGVf Y3JlYXRlX21vZGUpKQorCQlwZ19mYXRhbCgiY291bGQgbm90IHNldCBwZXJtaXNzaW9ucyBvbiBm aWxlIFwiJXNcIjogJW0iLAorCQkJCSBmcGF0aCk7CisjZW5kaWYKKworCXBnX2xvZ19kZWJ1Zygi dGVtcG9yYXJpbHkgZXhwb3J0aW5nIGZpbGUgXCIlc1wiIiwgZnBhdGgpOworCXBmcmVlKGZwYXRo KTsKKworCXJldHVybiBmaWxlOworfQorCisvKgorICogV3JpdGUgYnVmZmVyIGRhdGEgdG8gdGhl IGdpdmVuIGZpbGUgaGFuZGxlLgorICovCitzdGF0aWMgdm9pZAorcGVyZm9ybV90bXBfd3JpdGUo WExvZ1NlZ05vIHNlZ25vLCBTdHJpbmdJbmZvIGJ1ZiwgRklMRSAqZmlsZSkKK3sKKwlBc3NlcnQo ZmlsZSk7CisKKwllcnJubyA9IDA7CisJaWYgKGJ1Zi0+bGVuID4gMCAmJiBmd3JpdGUoYnVmLT5k YXRhLCBidWYtPmxlbiwgMSwgZmlsZSkgIT0gMSkKKwl7CisJCS8qCisJCSAqIElmIHdyaXRlIGRp ZG4ndCBzZXQgZXJybm8sIGFzc3VtZSBwcm9ibGVtIGlzIG5vIGRpc2sgc3BhY2UKKwkJICovCisJ CWlmIChlcnJubyA9PSAwKQorCQkJZXJybm8gPSBFTk9TUEM7CisJCXBnX2ZhdGFsKCJjb3VsZCBu b3Qgd3JpdGUgdG8gZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkgZ2V0X3RtcF93YWxzZWdfcGF0aChz ZWdubykpOworCX0KK30KKworLyoKKyAqIFJlbW92ZSB0ZW1wb3JhcnkgZmlsZQorICovCit2b2lk CityZW1vdmVfdG1wX3dhbHNlZyhYTG9nU2VnTm8gc2Vnbm8sIGJvb2wgdXBkYXRlX2VudHJ5KQor eworCWNoYXIJICAgKmZwYXRoID0gZ2V0X3RtcF93YWxzZWdfcGF0aChzZWdubyk7CisKKwlpZiAo dW5saW5rKGZwYXRoKSA9PSAwKQorCQlwZ19sb2dfZGVidWcoInJlbW92ZWQgZmlsZSBcIiVzXCIi LCBmcGF0aCk7CisJcGZyZWUoZnBhdGgpOworCisJLyogVXBkYXRlIGVudHJ5IGlmIHJlcXVlc3Rl ZCAqLworCWlmICh1cGRhdGVfZW50cnkpCisJeworCQlBcmNoaXZlZFdBTEVudHJ5ICplbnRyeTsK KworCQllbnRyeSA9IEFyY2hpdmVkV0FMX2xvb2t1cChBcmNoaXZlZFdBTF9IVEFCLCBzZWdubyk7 CisJCUFzc2VydChlbnRyeSAhPSBOVUxMKTsKKwkJZW50cnktPnRtcHNlZ19leGlzdHMgPSBmYWxz ZTsKKwl9Cit9CisKIC8qCiAgKiBDcmVhdGUgYW4gYXN0cmVhbWVyIHRoYXQgY2FuIHJlYWQgV0FM IGZyb20gdGFyIGZpbGUuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193 YWxkdW1wLmMgYi9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCmluZGV4IDAyYWQxNDFl NDRhLi40YzU5NzRhNmFlMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1 bXAuYworKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCkBAIC00NjYsMTEgKzQ2 Niw1MCBAQCBUYXJXQUxEdW1wUmVhZFBhZ2UoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSwgWExvZ1Jl Y1B0ciB0YXJnZXRQYWdlUHRyLCBpbnQgcmVxTGVuLAogewogCVhMb2dEdW1wUHJpdmF0ZSAqcHJp dmF0ZSA9IHN0YXRlLT5wcml2YXRlX2RhdGE7CiAJaW50CQkJY291bnQgPSByZXF1aXJlZF9yZWFk X2xlbihwcml2YXRlLCB0YXJnZXRQYWdlUHRyLCByZXFMZW4pOworCVhMb2dTZWdObwluZXh0U2Vn Tm87CiAKIAlpZiAocHJpdmF0ZS0+ZW5kcHRyX3JlYWNoZWQpCiAJCXJldHVybiAtMTsKIAotCS8q IFJlYWQgdGhlIFdBTCBwYWdlIGZyb20gdGhlIGFyY2hpdmUgc3RyZWFtZXIgKi8KKwkvKgorCSAq IElmIHRoZSB0YXJnZXQgcGFnZSBpcyBpbiBhIGRpZmZlcmVudCBzZWdtZW50LCBmaXJzdCBjaGVj ayBmb3IgdGhlIFdBTAorCSAqIHNlZ21lbnQncyBwaHlzaWNhbCBleGlzdGVuY2UgaW4gdGhlIHRl bXBvcmFyeSBkaXJlY3RvcnkuCisJICovCisJbmV4dFNlZ05vID0gc3RhdGUtPnNlZy53c19zZWdu bzsKKwlpZiAoIVhMQnl0ZUluU2VnKHRhcmdldFBhZ2VQdHIsIG5leHRTZWdObywgV2FsU2VnU3op KQorCXsKKwkJaWYgKHN0YXRlLT5zZWcud3NfZmlsZSA+PSAwKQorCQl7CisJCQljbG9zZShzdGF0 ZS0+c2VnLndzX2ZpbGUpOworCQkJc3RhdGUtPnNlZy53c19maWxlID0gLTE7CisKKwkJCS8qIFJl bW92ZSB0aGlzIGZpbGUsIGFzIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuICovCisJCQlyZW1vdmVf dG1wX3dhbHNlZyhuZXh0U2VnTm8sIHRydWUpOworCQl9CisKKwkJWExCeXRlVG9TZWcodGFyZ2V0 UGFnZVB0ciwgbmV4dFNlZ05vLCBXYWxTZWdTeik7CisJCXN0YXRlLT5zZWcud3NfdGxpID0gcHJp dmF0ZS0+dGltZWxpbmU7CisJCXN0YXRlLT5zZWcud3Nfc2Vnbm8gPSBuZXh0U2VnTm87CisKKwkJ LyoKKwkJICogSWYgdGhlIG5leHQgc2VnbWVudCBleGlzdHMsIG9wZW4gaXQgYW5kIGNvbnRpbnVl IHJlYWRpbmcgZnJvbSB0aGVyZQorCQkgKi8KKwkJaWYgKHRtcF93YWxzZWdfZXhpc3RzKG5leHRT ZWdObykpCisJCXsKKwkJCWNoYXIJICAgKmZwYXRoOworCisJCQlmcGF0aCA9IGdldF90bXBfd2Fs c2VnX3BhdGgobmV4dFNlZ05vKTsKKwkJCXN0YXRlLT5zZWcud3NfZmlsZSA9IG9wZW4oZnBhdGgs IE9fUkRPTkxZIHwgUEdfQklOQVJZLCAwKTsKKwkJCXBmcmVlKGZwYXRoKTsKKwkJfQorCX0KKwor CS8qIENvbnRpbnVlIHJlYWRpbmcgZnJvbSB0aGUgb3BlbiBXQUwgc2VnbWVudCwgaWYgYW55ICov CisJaWYgKHN0YXRlLT5zZWcud3NfZmlsZSA+PSAwKQorCQlyZXR1cm4gV0FMRHVtcFJlYWRQYWdl KHN0YXRlLCB0YXJnZXRQYWdlUHRyLCBjb3VudCwgdGFyZ2V0UHRyLAorCQkJCQkJCSAgIHJlYWRC dWZmKTsKKworCS8qIE90aGVyd2lzZSwgcmVhZCB0aGUgV0FMIHBhZ2UgZnJvbSB0aGUgYXJjaGl2 ZSBzdHJlYW1lciAqLwogCXJldHVybiByZWFkX2FyY2hpdmVfd2FsX3BhZ2UocHJpdmF0ZSwgdGFy Z2V0UGFnZVB0ciwgY291bnQsIHJlYWRCdWZmKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z193YWxkdW1wL3BnX3dhbGR1bXAuaCBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmgK aW5kZXggNTQ3NThjMzU0OGEuLjVjMWZiMWUwODBhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dh bGR1bXAvcGdfd2FsZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmgK QEAgLTU4LDQgKzU4LDggQEAgZXh0ZXJuIGludAlyZWFkX2FyY2hpdmVfd2FsX3BhZ2UoWExvZ0R1 bXBQcml2YXRlICpwcml2YXRlSW5mbywKIAkJCQkJCQkJICBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQ dHIsCiAJCQkJCQkJCSAgU2l6ZSBjb3VudCwgY2hhciAqcmVhZEJ1ZmYpOwogCitleHRlcm4gY2hh ciAqZ2V0X3RtcF93YWxzZWdfcGF0aChYTG9nU2VnTm8gc2Vnbm8pOworZXh0ZXJuIGJvb2wgdG1w X3dhbHNlZ19leGlzdHMoWExvZ1NlZ05vIHNlZ25vKTsKK2V4dGVybiB2b2lkIHJlbW92ZV90bXBf d2Fsc2VnKFhMb2dTZWdObyBzZWdubywgYm9vbCB1cGRhdGVfZW50cnkpOworCiAjZW5kaWYJCQkJ CQkJLyogZW5kIG9mIFBHX1dBTERVTVBfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxk dW1wL3QvMDAxX2Jhc2ljLnBsIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3QvMDAxX2Jhc2ljLnBsCmlu ZGV4IDQ0MzEyNmE5Y2U2Li5kNWZhMWY2ZDI4ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ193YWxk dW1wL3QvMDAxX2Jhc2ljLnBsCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5w bApAQCAtNyw2ICs3LDcgQEAgdXNlIEN3ZDsKIHVzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVy OwogdXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwogdXNlIFRlc3Q6Ok1vcmU7Cit1c2UgTGlz dDo6VXRpbCBxdyhzaHVmZmxlKTsKIAogbXkgJHRhciA9ICRFTlZ7VEFSfTsKIApAQCAtMjcyLDcg KzI3Myw3IEBAIHN1YiBnZW5lcmF0ZV9hcmNoaXZlCiAJfQogCWNsb3NlZGlyICRkaDsKIAotCUBm aWxlcyA9IHNvcnQgQGZpbGVzOworCUBmaWxlcyA9IHNodWZmbGUgQGZpbGVzOwogCiAJIyBtb3Zl IGludG8gdGhlIFdBTCBkaXJlY3RvcnkgYmVmb3JlIGFyY2hpdmluZyBmaWxlcwogCW15ICRjd2Qg PSBnZXRjd2Q7Ci0tIAoyLjQ3LjEKCg== --000000000000102ced06446586db Content-Type: application/x-patch; name="v8-0006-pg_verifybackup-Delay-default-WAL-directory-prepa.patch" Content-Disposition: attachment; filename="v8-0006-pg_verifybackup-Delay-default-WAL-directory-prepa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mie7b2g95 RnJvbSA1Y2MzN2UwM2FlM2I2Y2YzZDAxYjY4MWJhZmRjMGNjM2NmMTM2YzI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMTYgSnVsIDIwMjUgMTQ6NDc6NDMgKzA1MzAKU3ViamVjdDogW1BBVENIIHY4IDYvOF0gcGdf dmVyaWZ5YmFja3VwOiBEZWxheSBkZWZhdWx0IFdBTCBkaXJlY3RvcnkKIHByZXBhcmF0aW9uLgoK V2UgYXJlIG5vdCBzdXJlIHdoZXRoZXIgdG8gcGFyc2UgV0FMIGZyb20gYSBkaXJlY3Rvcnkgb3Ig YW4gYXJjaGl2ZQp1bnRpbCB0aGUgYmFja3VwIGZvcm1hdCBpcyBrbm93bi4gVGhlcmVmb3JlLCB3 ZSBkZWxheSBwcmVwYXJpbmcgdGhlCmRlZmF1bHQgV0FMIGRpcmVjdG9yeSB1bnRpbCB0aGUgcG9p bnQgb2YgcGFyc2luZy4gVGhpcyBkZWxheSBpcwpoYXJtbGVzcywgYXMgdGhlIFdBTCBkaXJlY3Rv cnkgaXMgbm90IHVzZWQgZWxzZXdoZXJlLgotLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bn X3ZlcmlmeWJhY2t1cC5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1 cC9wZ192ZXJpZnliYWNrdXAuYyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJh Y2t1cC5jCmluZGV4IDhkNWJlZmE5NDdmLi5hNTAyZTc5NWIyZSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKKysrIGIvc3JjL2Jpbi9wZ192ZXJp ZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKQEAgLTI4NSwxMCArMjg1LDYgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAJCW1hbmlmZXN0X3BhdGggPSBwc3ByaW50ZigiJXMvYmFja3Vw X21hbmlmZXN0IiwKIAkJCQkJCQkJIGNvbnRleHQuYmFja3VwX2RpcmVjdG9yeSk7CiAKLQkvKiBC eSBkZWZhdWx0LCBsb29rIGZvciB0aGUgV0FMIGluIHRoZSBiYWNrdXAgZGlyZWN0b3J5LCB0b28u ICovCi0JaWYgKHdhbF9kaXJlY3RvcnkgPT0gTlVMTCkKLQkJd2FsX2RpcmVjdG9yeSA9IHBzcHJp bnRmKCIlcy9wZ193YWwiLCBjb250ZXh0LmJhY2t1cF9kaXJlY3RvcnkpOwotCiAJLyoKIAkgKiBU cnkgdG8gcmVhZCB0aGUgbWFuaWZlc3QuIFdlIHRyZWF0IGFueSBlcnJvcnMgZW5jb3VudGVyZWQg d2hpbGUgcGFyc2luZwogCSAqIHRoZSBtYW5pZmVzdCBhcyBmYXRhbDsgdGhlcmUgZG9lc24ndCBz ZWVtIHRvIGJlIG11Y2ggcG9pbnQgaW4gdHJ5aW5nIHRvCkBAIC0zNjgsNiArMzY0LDEwIEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWlmIChjb250ZXh0LmZvcm1hdCA9PSAncCcgJiYg IWNvbnRleHQuc2tpcF9jaGVja3N1bXMpCiAJCXZlcmlmeV9iYWNrdXBfY2hlY2tzdW1zKCZjb250 ZXh0KTsKIAorCS8qIEJ5IGRlZmF1bHQsIGxvb2sgZm9yIHRoZSBXQUwgaW4gdGhlIGJhY2t1cCBk aXJlY3RvcnksIHRvby4gKi8KKwlpZiAod2FsX2RpcmVjdG9yeSA9PSBOVUxMKQorCQl3YWxfZGly ZWN0b3J5ID0gcHNwcmludGYoIiVzL3BnX3dhbCIsIGNvbnRleHQuYmFja3VwX2RpcmVjdG9yeSk7 CisKIAkvKgogCSAqIFRyeSB0byBwYXJzZSB0aGUgcmVxdWlyZWQgcmFuZ2VzIG9mIFdBTCByZWNv cmRzLCB1bmxlc3Mgd2Ugd2VyZSB0b2xkCiAJICogbm90IHRvIGRvIHNvLgotLSAKMi40Ny4xCgo= --000000000000102ced06446586db Content-Type: application/x-patch; name="v8-0007-pg_verifybackup-Rename-the-wal-directory-switch-t.patch" Content-Disposition: attachment; filename="v8-0007-pg_verifybackup-Rename-the-wal-directory-switch-t.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mie7b8386 RnJvbSBjZmI1Yjk1MTQ1MGI2NWYzMmI3YTIzNTc2MzBjMTg0YWYzNmJkYmE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjQgSnVsIDIwMjUgMTY6Mzc6NDMgKzA1MzAKU3ViamVjdDogW1BBVENIIHY4IDcvOF0gcGdf dmVyaWZ5YmFja3VwOiBSZW5hbWUgdGhlIHdhbC1kaXJlY3Rvcnkgc3dpdGNoIHRvCiB3YWwtcGF0 aAoKV2l0aCBwcmV2aW91cyBwYXRjaGVzIHRvIHBnX3dhbGR1bXAgY2FuIG5vdyBkZWNvZGUgV0FM IGRpcmVjdGx5IGZyb20KdGFyIGZpbGVzLiAgVGhpcyBtZWFucyB5b3UnbGwgYmUgYWJsZSB0byBz cGVjaWZ5IGEgdGFyIGFyY2hpdmUgcGF0aAppbnN0ZWFkIG9mIGEgdHJhZGl0aW9uYWwgV0FMIGRp cmVjdG9yeS4KClRvIGtlZXAgdGhpbmdzIGNvbnNpc3RlbnQgYW5kIG1vcmUgdmVyc2F0aWxlLCB3 ZSBzaG91bGQgYWxzbwpnZW5lcmFsaXplIHRoZSBpbnB1dCBzd2l0Y2ggZm9yIHBnX3ZlcmlmeWJh Y2t1cC4gSXQgc2hvdWxkIGFjY2VwdAplaXRoZXIgYSBkaXJlY3Rvcnkgb3IgYSB0YXIgZmlsZSBw YXRoIHRoYXQgY29udGFpbnMgV0FMcy4gVGhpcyBjaGFuZ2UKd2lsbCBhbHNvIGFsaWduaW5nIGl0 IHdpdGggdGhlIGV4aXN0aW5nIG1hbmlmZXN0LXBhdGggc3dpdGNoIG5hbWluZy4KLS0tCiBkb2Mv c3JjL3NnbWwvcmVmL3BnX3ZlcmlmeWJhY2t1cC5zZ21sICAgICB8ICAyICstCiBzcmMvYmluL3Bn X3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYyB8IDIyICsrKysrKysrKysrLS0tLS0tLS0t LS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2RlLnBvICAgICAgICAgIHwgIDQgKystLQog c3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZWwucG8gICAgICAgICAgfCAgNCArKy0tCiBzcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC9wby9lcy5wbyAgICAgICAgICB8ICA0ICsrLS0KIHNyYy9iaW4v cGdfdmVyaWZ5YmFja3VwL3BvL2ZyLnBvICAgICAgICAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ192 ZXJpZnliYWNrdXAvcG8vaXQucG8gICAgICAgICAgfCAgNCArKy0tCiBzcmMvYmluL3BnX3Zlcmlm eWJhY2t1cC9wby9qYS5wbyAgICAgICAgICB8ICA0ICsrLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFj a3VwL3BvL2thLnBvICAgICAgICAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAv cG8va28ucG8gICAgICAgICAgfCAgNCArKy0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9y dS5wbyAgICAgICAgICB8ICA0ICsrLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL3N2LnBv ICAgICAgICAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vdWsucG8gICAg ICAgICAgfCAgNCArKy0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby96aF9DTi5wbyAgICAg ICB8ICA0ICsrLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL3poX1RXLnBvICAgICAgIHwg IDQgKystLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDdfd2FsLnBsICAgICAgfCAgNCAr Ky0tCiAxNiBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3ZlcmlmeWJhY2t1cC5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAuc2dtbAppbmRleCA2MWMxMjk3NWU0YS4uZTli OGJmZDUxYjEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3VwLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAuc2dtbApAQCAtMjYxLDcg KzI2MSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgICAgIDx2YXJsaXN0ZW50cnk+ CiAgICAgICA8dGVybT48b3B0aW9uPi13IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w YXRoPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+Ci0gICAgICA8dGVybT48b3B0aW9uPi0t d2FsLWRpcmVjdG9yeT08cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0aDwvcmVwbGFj ZWFibGU+PC9vcHRpb24+PC90ZXJtPgorICAgICAgPHRlcm0+PG9wdGlvbj4tLXdhbC1wYXRoPTxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXRoPC9yZXBsYWNlYWJsZT48L29wdGlvbj48 L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIFRyeSB0byBw YXJzZSBXQUwgZmlsZXMgc3RvcmVkIGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5LCByYXRoZXIg dGhhbgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3Vw LmMgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYwppbmRleCBhNTAy ZTc5NWIyZS4uOWZjZDZiZTAwNGUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BnX3ZlcmlmeWJhY2t1cC5jCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3Zlcmlm eWJhY2t1cC5jCkBAIC05Myw3ICs5Myw3IEBAIHN0YXRpYyB2b2lkIHZlcmlmeV9maWxlX2NoZWNr c3VtKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsCiAJCQkJCQkJCSB1aW50OCAqYnVmZmVyKTsK IHN0YXRpYyB2b2lkIHBhcnNlX3JlcXVpcmVkX3dhbCh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0 LAogCQkJCQkJCSAgIGNoYXIgKnBnX3dhbGR1bXBfcGF0aCwKLQkJCQkJCQkgICBjaGFyICp3YWxf ZGlyZWN0b3J5KTsKKwkJCQkJCQkgICBjaGFyICp3YWxfcGF0aCk7CiBzdGF0aWMgYXN0cmVhbWVy ICpjcmVhdGVfYXJjaGl2ZV92ZXJpZmllcih2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LAogCQkJ CQkJCQkJCSAgY2hhciAqYXJjaGl2ZV9uYW1lLAogCQkJCQkJCQkJCSAgT2lkIHRibHNwY19vaWQs CkBAIC0xMjYsNyArMTI2LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXsicHJv Z3Jlc3MiLCBub19hcmd1bWVudCwgTlVMTCwgJ1AnfSwKIAkJeyJxdWlldCIsIG5vX2FyZ3VtZW50 LCBOVUxMLCAncSd9LAogCQl7InNraXAtY2hlY2tzdW1zIiwgbm9fYXJndW1lbnQsIE5VTEwsICdz J30sCi0JCXsid2FsLWRpcmVjdG9yeSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAndyd9LAor CQl7IndhbC1wYXRoIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICd3J30sCiAJCXtOVUxMLCAw LCBOVUxMLCAwfQogCX07CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKIAljaGFyCSAgICptYW5pZmVzdF9wYXRoID0gTlVMTDsKIAlib29sCQlub19wYXJz ZV93YWwgPSBmYWxzZTsKIAlib29sCQlxdWlldCA9IGZhbHNlOwotCWNoYXIJICAgKndhbF9kaXJl Y3RvcnkgPSBOVUxMOworCWNoYXIJICAgKndhbF9wYXRoID0gTlVMTDsKIAljaGFyCSAgICpwZ193 YWxkdW1wX3BhdGggPSBOVUxMOwogCURJUgkJICAgKmRpcjsKIApAQCAtMjIxLDggKzIyMSw4IEBA IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCWNvbnRleHQuc2tpcF9jaGVja3N1bXMg PSB0cnVlOwogCQkJCWJyZWFrOwogCQkJY2FzZSAndyc6Ci0JCQkJd2FsX2RpcmVjdG9yeSA9IHBz dHJkdXAob3B0YXJnKTsKLQkJCQljYW5vbmljYWxpemVfcGF0aCh3YWxfZGlyZWN0b3J5KTsKKwkJ CQl3YWxfcGF0aCA9IHBzdHJkdXAob3B0YXJnKTsKKwkJCQljYW5vbmljYWxpemVfcGF0aCh3YWxf cGF0aCk7CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIGdldG9wdF9sb25nIGFscmVh ZHkgZW1pdHRlZCBhIGNvbXBsYWludCAqLwpAQCAtMzY1LDE1ICszNjUsMTUgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAJCXZlcmlmeV9iYWNrdXBfY2hlY2tzdW1zKCZjb250ZXh0KTsK IAogCS8qIEJ5IGRlZmF1bHQsIGxvb2sgZm9yIHRoZSBXQUwgaW4gdGhlIGJhY2t1cCBkaXJlY3Rv cnksIHRvby4gKi8KLQlpZiAod2FsX2RpcmVjdG9yeSA9PSBOVUxMKQotCQl3YWxfZGlyZWN0b3J5 ID0gcHNwcmludGYoIiVzL3BnX3dhbCIsIGNvbnRleHQuYmFja3VwX2RpcmVjdG9yeSk7CisJaWYg KHdhbF9wYXRoID09IE5VTEwpCisJCXdhbF9wYXRoID0gcHNwcmludGYoIiVzL3BnX3dhbCIsIGNv bnRleHQuYmFja3VwX2RpcmVjdG9yeSk7CiAKIAkvKgogCSAqIFRyeSB0byBwYXJzZSB0aGUgcmVx dWlyZWQgcmFuZ2VzIG9mIFdBTCByZWNvcmRzLCB1bmxlc3Mgd2Ugd2VyZSB0b2xkCiAJICogbm90 IHRvIGRvIHNvLgogCSAqLwogCWlmICghbm9fcGFyc2Vfd2FsKQotCQlwYXJzZV9yZXF1aXJlZF93 YWwoJmNvbnRleHQsIHBnX3dhbGR1bXBfcGF0aCwgd2FsX2RpcmVjdG9yeSk7CisJCXBhcnNlX3Jl cXVpcmVkX3dhbCgmY29udGV4dCwgcGdfd2FsZHVtcF9wYXRoLCB3YWxfcGF0aCk7CiAKIAkvKgog CSAqIElmIGV2ZXJ5dGhpbmcgbG9va3MgT0ssIHRlbGwgdGhlIHVzZXIgdGhpcywgdW5sZXNzIHdl IHdlcmUgYXNrZWQgdG8KQEAgLTExOTgsNyArMTE5OCw3IEBAIHZlcmlmeV9maWxlX2NoZWNrc3Vt KHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIG1hbmlmZXN0X2ZpbGUgKm0sCiAgKi8KIHN0YXRp YyB2b2lkCiBwYXJzZV9yZXF1aXJlZF93YWwodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgY2hh ciAqcGdfd2FsZHVtcF9wYXRoLAotCQkJCSAgIGNoYXIgKndhbF9kaXJlY3RvcnkpCisJCQkJICAg Y2hhciAqd2FsX3BhdGgpCiB7CiAJbWFuaWZlc3RfZGF0YSAqbWFuaWZlc3QgPSBjb250ZXh0LT5t YW5pZmVzdDsKIAltYW5pZmVzdF93YWxfcmFuZ2UgKnRoaXNfd2FsX3JhbmdlID0gbWFuaWZlc3Qt PmZpcnN0X3dhbF9yYW5nZTsKQEAgLTEyMDgsNyArMTIwOCw3IEBAIHBhcnNlX3JlcXVpcmVkX3dh bCh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjaGFyICpwZ193YWxkdW1wX3BhdGgsCiAJCWNo YXIJICAgKnBnX3dhbGR1bXBfY21kOwogCiAJCXBnX3dhbGR1bXBfY21kID0gcHNwcmludGYoIlwi JXNcIiAtLXF1aWV0IC0tcGF0aD1cIiVzXCIgLS10aW1lbGluZT0ldSAtLXN0YXJ0PSVYLyUwOFgg LS1lbmQ9JVgvJTA4WFxuIiwKLQkJCQkJCQkJICBwZ193YWxkdW1wX3BhdGgsIHdhbF9kaXJlY3Rv cnksIHRoaXNfd2FsX3JhbmdlLT50bGksCisJCQkJCQkJCSAgcGdfd2FsZHVtcF9wYXRoLCB3YWxf cGF0aCwgdGhpc193YWxfcmFuZ2UtPnRsaSwKIAkJCQkJCQkJICBMU05fRk9STUFUX0FSR1ModGhp c193YWxfcmFuZ2UtPnN0YXJ0X2xzbiksCiAJCQkJCQkJCSAgTFNOX0ZPUk1BVF9BUkdTKHRoaXNf d2FsX3JhbmdlLT5lbmRfbHNuKSk7CiAJCWZmbHVzaChOVUxMKTsKQEAgLTEzNzYsNyArMTM3Niw3 IEBAIHVzYWdlKHZvaWQpCiAJcHJpbnRmKF8oIiAgLVAsIC0tcHJvZ3Jlc3MgICAgICAgICAgICAg IHNob3cgcHJvZ3Jlc3MgaW5mb3JtYXRpb25cbiIpKTsKIAlwcmludGYoXygiICAtcSwgLS1xdWll dCAgICAgICAgICAgICAgICAgZG8gbm90IHByaW50IGFueSBvdXRwdXQsIGV4Y2VwdCBmb3IgZXJy b3JzXG4iKSk7CiAJcHJpbnRmKF8oIiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgIHNraXAg Y2hlY2tzdW0gdmVyaWZpY2F0aW9uXG4iKSk7Ci0JcHJpbnRmKF8oIiAgLXcsIC0td2FsLWRpcmVj dG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iKSk7CisJcHJp bnRmKF8oIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICAgICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBm b3IgV0FMIGZpbGVzXG4iKSk7CiAJcHJpbnRmKF8oIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAg ICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uLCB0aGVuIGV4aXRcbiIpKTsKIAlwcmludGYo XygiICAtPywgLS1oZWxwICAgICAgICAgICAgICAgICAgc2hvdyB0aGlzIGhlbHAsIHRoZW4gZXhp dFxuIikpOwogCXByaW50ZihfKCJcblJlcG9ydCBidWdzIHRvIDwlcz4uXG4iKSwgUEFDS0FHRV9C VUdSRVBPUlQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZGUucG8g Yi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9kZS5wbwppbmRleCBhOWUyNDkzMTEwMC4uOWI1 Y2Q1ODk4Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2RlLnBvCisr KyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2RlLnBvCkBAIC03ODUsOCArNzg1LDggQEAg bXNnc3RyICIgIC1zLCAtLXNraXAtY2hlY2tzdW1zICAgICAgICDDnGJlcnByw7xmdW5nIGRlciBQ csO8ZnN1bW1lbiDDvGJlcnNwcmluZ2UKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6MTM3OQogIywg Yy1mb3JtYXQKLW1zZ2lkICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCAgICB1c2Ugc3BlY2lm aWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgotbXNnc3RyICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9 UEZBRCAgICBhbmdlZ2ViZW5lbiBQZmFkIGbDvHIgV0FMLURhdGVpZW4gdmVyd2VuZGVuXG4iCitt c2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FM IGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBhdGg9UEZBRCAgICBhbmdlZ2ViZW5lbiBQ ZmFkIGbDvHIgV0FMLURhdGVpZW4gdmVyd2VuZGVuXG4iCiAKICM6IHBnX3ZlcmlmeWJhY2t1cC5j OjEzODAKICMsIGMtZm9ybWF0CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9w by9lbC5wbyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2VsLnBvCmluZGV4IDNlM2YyMGM2 N2M1Li44MTQ0MmY1MWMxNyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8v ZWwucG8KKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZWwucG8KQEAgLTQ5NCw4ICs0 OTQsOCBAQCBtc2dzdHIgIiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgIM+AzrHPgc6szrrO sc68z4jOtSDPhM63zr0gzrXPgM6xzrvOrs64zrXPhQogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5 OTIKICMsIGMtZm9ybWF0Ci1tc2dpZCAiICAtdywgLS13YWwtZGlyZWN0b3J5PVBBVEggICAgdXNl IHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKLW1zZ3N0ciAiICAtdywgLS13YWwtZGly ZWN0b3J5PVBBVEggICAgz4fPgc63z4POuc68zr/PgM6/zq/Ot8+DzrUgz4TOt869IM66zrHOuM6/ z4HOuc+DzrzOrc69zrcgzrTOuc6xzrTPgc6/zrzOriDOs865zrEgzrHPgc+HzrXOr86xIFdBTFxu IgorbXNnaWQgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9y IFdBTCBmaWxlc1xuIgorbXNnc3RyICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgz4fPgc63z4PO uc68zr/PgM6/zq/Ot8+DzrUgz4TOt869IM66zrHOuM6/z4HOuc+DzrzOrc69zrcgzrTOuc6xzrTP gc6/zrzOriDOs865zrEgzrHPgc+HzrXOr86xIFdBTFxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAu Yzo5OTMKICMsIGMtZm9ybWF0CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9w by9lcy5wbyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2VzLnBvCmluZGV4IDBjYjk1OGYz NDQ4Li43ZjcyOWZhMzViYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8v ZXMucG8KKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZXMucG8KQEAgLTQ5NSw4ICs0 OTUsOCBAQCBtc2dzdHIgIiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgIG9taXRpciBsYSB2 ZXJpZmljYWNpw7NuIGRlIGxhIHN1bWEgZGUgY29tcAogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5 OTIKICMsIGMtZm9ybWF0Ci1tc2dpZCAiICAtdywgLS13YWwtZGlyZWN0b3J5PVBBVEggICAgdXNl IHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKLW1zZ3N0ciAiICAtdywgLS13YWwtZGly ZWN0b3J5PVBBVEggICAgdXRpbGl6YXIgbGEgcnV0YSBlc3BlY2lmaWNhZGEgcGFyYSBsb3MgYXJj aGl2b3MgV0FMXG4iCittc2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBzcGVjaWZp ZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAg ICB1dGlsaXphciBsYSBydXRhIGVzcGVjaWZpY2FkYSBwYXJhIGxvcyBhcmNoaXZvcyBXQUxcbiIK IAogIzogcGdfdmVyaWZ5YmFja3VwLmM6OTkzCiAjLCBjLWZvcm1hdApkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZnIucG8gYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9w by9mci5wbwppbmRleCBkYThjNzJmNjQyNy4uMDk5Mzc5NjZmYTcgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfdmVyaWZ5YmFja3VwL3BvL2ZyLnBvCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BvL2ZyLnBvCkBAIC00OTgsOCArNDk4LDggQEAgbXNnc3RyICIgIC1zLCAtLXNraXAtY2hlY2tz dW1zICAgICAgICBpZ25vcmUgbGEgdsOpcmlmaWNhdGlvbiBkZXMgc29tbWVzIGRlIGNvbnQKIAog IzogcGdfdmVyaWZ5YmFja3VwLmM6OTkyCiAjLCBjLWZvcm1hdAotbXNnaWQgIiAgLXcsIC0td2Fs LWRpcmVjdG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCi1t c2dzdHIgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1DSEVNSU4gIHV0aWxpc2UgbGUgY2hlbWluIHNw w6ljaWZpw6kgcG91ciBsZXMgZmljaGllcnMgV0FMXG4iCittc2dpZCAiICAtdywgLS13YWwtcGF0 aD1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCittc2dzdHIgIiAg LXcsIC0td2FsLXBhdGg9Q0hFTUlOICB1dGlsaXNlIGxlIGNoZW1pbiBzcMOpY2lmacOpIHBvdXIg bGVzIGZpY2hpZXJzIFdBTFxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5OTMKICMsIGMtZm9y bWF0CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9pdC5wbyBiL3NyYy9i aW4vcGdfdmVyaWZ5YmFja3VwL3BvL2l0LnBvCmluZGV4IDMxN2IwYjcxZTdmLi40ZGE2OGQwMDc0 ZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vaXQucG8KKysrIGIvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vaXQucG8KQEAgLTQ3Miw4ICs0NzIsOCBAQCBtc2dzdHIg IiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgICBzYWx0YSBsYSB2ZXJpZmljYSBkZWwgY2hl Y2tzdW1cbiIKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6OTExCiAjLCBjLWZvcm1hdAotbXNnaWQg IiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FM IGZpbGVzXG4iCi1tc2dzdHIgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIICAgICB1c2EgaWwg cGVyY29yc28gc3BlY2lmaWNhdG8gcGVyIGkgZmlsZSBXQUxcbiIKK21zZ2lkICIgIC13LCAtLXdh bC1wYXRoPVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKK21zZ3N0 ciAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgICB1c2EgaWwgcGVyY29yc28gc3BlY2lmaWNhdG8g cGVyIGkgZmlsZSBXQUxcbiIKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6OTEyCiAjLCBjLWZvcm1h dApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vamEucG8gYi9zcmMvYmlu L3BnX3ZlcmlmeWJhY2t1cC9wby9qYS5wbwppbmRleCBjOTEwZmIyMzZjYy4uYTk0ODk1OWI1NGYg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2phLnBvCisrKyBiL3NyYy9i aW4vcGdfdmVyaWZ5YmFja3VwL3BvL2phLnBvCkBAIC02NzIsOCArNjcyLDggQEAgbXNnc3RyICIg IC1zLCAtLXNraXAtY2hlY2tzdW1zICAgICAgICDjg4Hjgqfjg4Pjgq/jgrXjg6DmpJzoqLzjgpLj grnjgq3jg4Pjg5dcbiIKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6MTM3OQogIywgYy1mb3JtYXQK LW1zZ2lkICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGgg Zm9yIFdBTCBmaWxlc1xuIgotbXNnc3RyICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCAgICBX QUzjg5XjgqHjgqTjg6vjgavmjIflrprjgZfjgZ/jg5HjgrnjgpLkvb/nlKjjgZnjgotcbiIKK21z Z2lkICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwg ZmlsZXNcbiIKK21zZ3N0ciAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIFdBTOODleOCoeOCpOOD q+OBq+aMh+WumuOBl+OBn+ODkeOCueOCkuS9v+eUqOOBmeOCi1xuIgogCiAjOiBwZ192ZXJpZnli YWNrdXAuYzoxMzgwCiAjLCBjLWZvcm1hdApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvcG8va2EucG8gYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9rYS5wbwppbmRleCA5 ODI3NTE5ODRjNy4uZWYyNzk5MzE2YTggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFj a3VwL3BvL2thLnBvCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2thLnBvCkBAIC03 ODQsOCArNzg0LDggQEAgbXNnc3RyICIgIC1zLCAtLXNraXAtY2hlY2tzdW1zICAgICAgICDhg6Hh g5Dhg5nhg53hg5zhg6Lhg6Dhg53hg5rhg50g4YOv4YOQ4YObCiAKICM6IHBnX3ZlcmlmeWJhY2t1 cC5jOjEzNzkKICMsIGMtZm9ybWF0Ci1tc2dpZCAiICAtdywgLS13YWwtZGlyZWN0b3J5PVBBVEgg ICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKLW1zZ3N0ciAiICAtdywgLS13 YWwtZGlyZWN0b3J5PeGDkeGDmOGDmuGDmOGDmeGDmCAgICBXQUwg4YOk4YOQ4YOY4YOa4YOU4YOR 4YOY4YOh4YOX4YOV4YOY4YOhIOGDm+GDmOGDl+GDmOGDl+GDlOGDkeGDo+GDmuGDmCDhg5Hhg5jh g5rhg5jhg5nhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOQXG4iCittc2dpZCAi ICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVz XG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBhdGg94YOR4YOY4YOa4YOY4YOZ4YOYICAgIFdBTCDh g6Thg5Dhg5jhg5rhg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOb4YOY4YOX4YOY4YOX4YOU4YOR 4YOj4YOa4YOYIOGDkeGDmOGDmuGDmOGDmeGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Th g5Hhg5BcbiIKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6MTM4MAogIywgYy1mb3JtYXQKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2tvLnBvIGIvc3JjL2Jpbi9wZ192ZXJp ZnliYWNrdXAvcG8va28ucG8KaW5kZXggYWNkYzNkYTVlMDIuLmVhZjkxZWYxZTk4IDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9rby5wbworKysgYi9zcmMvYmluL3BnX3Zl cmlmeWJhY2t1cC9wby9rby5wbwpAQCAtNTAxLDggKzUwMSw4IEBAIG1zZ3N0ciAiICAtcywgLS1z a2lwLWNoZWNrc3VtcyAgICAgICAg7LK07YGs7ISsIOqygOyCrCDqsbTrhIjrnIBcbiIKIAogIzog cGdfdmVyaWZ5YmFja3VwLmM6OTkyCiAjLCBjLWZvcm1hdAotbXNnaWQgIiAgLXcsIC0td2FsLWRp cmVjdG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCi1tc2dz dHIgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT3qsr3roZwgICAgV0FMIO2MjOydvOydtCDsnojripQg 6rK966GcIOyngOyglVxuIgorbXNnaWQgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICB1c2Ugc3Bl Y2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgorbXNnc3RyICIgIC13LCAtLXdhbC1wYXRoPeqy veuhnCAgICBXQUwg7YyM7J287J20IOyeiOuKlCDqsr3roZwg7KeA7KCVXG4iCiAKICM6IHBnX3Zl cmlmeWJhY2t1cC5jOjk5MwogIywgYy1mb3JtYXQKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3BvL3J1LnBvIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vcnUucG8KaW5k ZXggNjQwMDVmZWVkZmQuLjdmYjBlNWFiMWY2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Zlcmlm eWJhY2t1cC9wby9ydS5wbworKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9ydS5wbwpA QCAtNTA3LDkgKzUwNyw5IEBAIG1zZ3N0ciAiICAtcywgLS1za2lwLWNoZWNrc3VtcyAgICAgICAg 0L/RgNC+0L/Rg9GB0YLQuNGC0Ywg0L/RgNC+0LLQtdGA0LrRgyDQutC+CiAKICM6IHBnX3Zlcmlm eWJhY2t1cC5jOjk5MgogIywgYy1mb3JtYXQKLW1zZ2lkICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9 UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgorbXNnaWQgIiAgLXcs IC0td2FsLXBhdGg9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgog bXNnc3RyICIiCi0iICAtdywgLS13YWwtZGlyZWN0b3J5PdCf0KPQotCsICAgINC40YHQv9C+0LvR jNC30L7QstCw0YLRjCDQt9Cw0LTQsNC90L3Ri9C5INC/0YPRgtGMINC6INGE0LDQudC70LDQvCBX QUxcbiIKKyIgIC13LCAtLXdhbC1wYXRoPdCf0KPQotCsICAgINC40YHQv9C+0LvRjNC30L7QstCw 0YLRjCDQt9Cw0LTQsNC90L3Ri9C5INC/0YPRgtGMINC6INGE0LDQudC70LDQvCBXQUxcbiIKIAog IzogcGdfdmVyaWZ5YmFja3VwLmM6OTkzCiAjLCBjLWZvcm1hdApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ192ZXJpZnliYWNrdXAvcG8vc3YucG8gYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9z di5wbwppbmRleCAxNzI0MGZlZWI1Yy4uOTcxMjU4MzhlOGMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfdmVyaWZ5YmFja3VwL3BvL3N2LnBvCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bv L3N2LnBvCkBAIC00OTIsOCArNDkyLDggQEAgbXNnc3RyICIgIC1zLCAtLXNraXAtY2hlY2tzdW1z ICAgICAgICBob3BwYSDDtnZlciB2ZXJpZmllcmluZyBhdiBrb250cm9sbHN1bW1vclwKIAogIzog cGdfdmVyaWZ5YmFja3VwLmM6OTkyCiAjLCBjLWZvcm1hdAotbXNnaWQgIiAgLXcsIC0td2FsLWRp cmVjdG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCi1tc2dz dHIgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1Tw5ZLVsOERyAgYW52w6RuZCBkZW5uYSBzw7ZrdsOk ZyB0aWxsIFdBTC1maWxlclxuIgorbXNnaWQgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICB1c2Ug c3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgorbXNnc3RyICIgIC13LCAtLXdhbC1wYXRo PVPDlktWw4RHICBhbnbDpG5kIGRlbm5hIHPDtmt2w6RnIHRpbGwgV0FMLWZpbGVyXG4iCiAKICM6 IHBnX3ZlcmlmeWJhY2t1cC5jOjk5MwogIywgYy1mb3JtYXQKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfdmVyaWZ5YmFja3VwL3BvL3VrLnBvIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vdWsu cG8KaW5kZXggMDM0Yjk3NjQyMzIuLjYzZjgwNDFhYjM4IDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X3ZlcmlmeWJhY2t1cC9wby91ay5wbworKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby91 ay5wbwpAQCAtNDg0LDggKzQ4NCw4IEBAIG1zZ3N0ciAiICAtcywgLS1za2lwLWNoZWNrc3VtcyDQ vdC1INC/0LXRgNC10LLRltGA0Y/RgtC4INC60L7QvdGC0YDQvtC70YzQvdGWINGBCiAKICM6IHBn X3ZlcmlmeWJhY2t1cC5jOjk5MgogIywgYy1mb3JtYXQKLW1zZ2lkICIgIC13LCAtLXdhbC1kaXJl Y3Rvcnk9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgotbXNnc3Ry ICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCDQstC40LrQvtGA0LjRgdGC0L7QstGD0LLQsNGC 0Lgg0LLQutCw0LfQsNC90LjQuSDRiNC70Y/RhSDQtNC70Y8g0YTQsNC50LvRltCyIFdBTFxuIgor bXNnaWQgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdB TCBmaWxlc1xuIgorbXNnc3RyICIgIC13LCAtLXdhbC1wYXRoPVBBVEgg0LLQuNC60L7RgNC40YHR gtC+0LLRg9Cy0LDRgtC4INCy0LrQsNC30LDQvdC40Lkg0YjQu9GP0YUg0LTQu9GPINGE0LDQudC7 0ZbQsiBXQUxcbiIKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6OTkzCiAjLCBjLWZvcm1hdApkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vemhfQ04ucG8gYi9zcmMvYmluL3Bn X3ZlcmlmeWJhY2t1cC9wby96aF9DTi5wbwppbmRleCBiN2Q5N2M4OTc2ZC4uZmI2ZmNhZThiODIg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL3poX0NOLnBvCisrKyBiL3Ny Yy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL3poX0NOLnBvCkBAIC00NjUsOCArNDY1LDggQEAgbXNn c3RyICIgIC1zLCAtLXNraXAtY2hlY2tzdW1zICAgICAgICDot7Pov4fmoKHpqozlkozpqozor4Fc biIKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6OTE5CiAjLCBjLWZvcm1hdAotbXNnaWQgIiAgLXcs IC0td2FsLWRpcmVjdG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVz XG4iCi1tc2dzdHIgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIICAgIOWvuVdBTOaWh+S7tuS9 v+eUqOaMh+Wumui3r+W+hFxuIgorbXNnaWQgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICB1c2Ug c3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgorbXNnc3RyICIgIC13LCAtLXdhbC1wYXRo PVBBVEggICAg5a+5V0FM5paH5Lu25L2/55So5oyH5a6a6Lev5b6EXG4iCiAKICM6IHBnX3Zlcmlm eWJhY2t1cC5jOjkyMAogIywgYy1mb3JtYXQKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5 YmFja3VwL3BvL3poX1RXLnBvIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vemhfVFcucG8K aW5kZXggYzFiNzEwYjBhMzYuLjU2OGY5NzJiMGJiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Zl cmlmeWJhY2t1cC9wby96aF9UVy5wbworKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby96 aF9UVy5wbwpAQCAtNTU1LDggKzU1NSw4IEBAIG1zZ3N0ciAiICAtcywgLS1za2lwLWNoZWNrc3Vt cyAgICAgICAg6Lez6YGO5qqi5p+l56K86amX6K2JXG4iCiAKICM6IHBnX3ZlcmlmeWJhY2t1cC5j Ojk5MgogIywgYy1mb3JtYXQKLW1zZ2lkICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCAgICB1 c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgotbXNnc3RyICIgIC13LCAtLXdhbC1k aXJlY3Rvcnk9UEFUSCAgICDnlKjmjIflrprnmoTot6/lvpHlrZjmlL4gV0FMIOaqlFxuIgorbXNn aWQgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBm aWxlc1xuIgorbXNnc3RyICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAg55So5oyH5a6a55qE6Lev 5b6R5a2Y5pS+IFdBTCDmqpRcbiIKIAogIzogcGdfdmVyaWZ5YmFja3VwLmM6OTkzCiAjLCBjLWZv cm1hdApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDdfd2FsLnBsIGIv c3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDdfd2FsLnBsCmluZGV4IGJhYmM0ZjBhODZiLi5i MDdmODA3MTliMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDdfd2Fs LnBsCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDA3X3dhbC5wbApAQCAtNDIsMTAg KzQyLDEwIEBAIGNvbW1hbmRfb2soWyAncGdfdmVyaWZ5YmFja3VwJywgJy0tbm8tcGFyc2Utd2Fs JywgJGJhY2t1cF9wYXRoIF0sCiBjb21tYW5kX29rKAogCVsKIAkJJ3BnX3ZlcmlmeWJhY2t1cCcs Ci0JCSctLXdhbC1kaXJlY3RvcnknID0+ICRyZWxvY2F0ZWRfcGdfd2FsLAorCQknLS13YWwtcGF0 aCcgPT4gJHJlbG9jYXRlZF9wZ193YWwsCiAJCSRiYWNrdXBfcGF0aAogCV0sCi0JJy0td2FsLWRp cmVjdG9yeSBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IFdBTCBkaXJlY3RvcnknKTsKKwknLS13YWwt cGF0aCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IFdBTCBkaXJlY3RvcnknKTsKIAogIyBNb3ZlIGRp cmVjdG9yeSBiYWNrIHRvIG9yaWdpbmFsIGxvY2F0aW9uLgogcmVuYW1lKCRyZWxvY2F0ZWRfcGdf d2FsLCAkb3JpZ2luYWxfcGdfd2FsKSB8fCBkaWUgInJlbmFtZSBwZ193YWwgYmFjazogJCEiOwot LSAKMi40Ny4xCgo= --000000000000102ced06446586db Content-Type: application/x-patch; name="v8-0008-pg_verifybackup-enabled-WAL-parsing-for-tar-forma.patch" Content-Disposition: attachment; filename="v8-0008-pg_verifybackup-enabled-WAL-parsing-for-tar-forma.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mie7bcrp7 RnJvbSBkMDAyOGI5NmYwMmM2ZjE1MjMxZjQ3ODhiODhhYmQ5ZmY0NmIxN2YxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMTcgSnVsIDIwMjUgMTY6Mzk6MzYgKzA1MzAKU3ViamVjdDogW1BBVENIIHY4IDgvOF0gcGdf dmVyaWZ5YmFja3VwOiBlbmFibGVkIFdBTCBwYXJzaW5nIGZvciB0YXItZm9ybWF0CiBiYWNrdXAK Ck5vdyB0aGF0IHBnX3dhbGR1bXAgc3VwcG9ydHMgZGVjb2RpbmcgZnJvbSB0YXIgYXJjaGl2ZXMs IHdlIHNob3VsZApsZXZlcmFnZSB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gcmVtb3ZlIHRoZSBwcmV2 aW91cyByZXN0cmljdGlvbiBvbiBXQUwKcGFyc2luZyBmb3IgdGFyLWJhY2tlZCBmb3JtYXRzLgot LS0KIGRvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3VwLnNnbWwgICAgICAgICB8ICA1ICst CiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYyAgICAgfCA2NiArKysr KysrKysrKysrLS0tLS0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwMl9hbGdvcml0aG0u cGwgICAgfCAgNCAtLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29ycnVwdGlvbi5w bCAgIHwgIDQgKy0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDA4X3VudGFyLnBsICAgICAg ICB8ICA1ICstCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRfdW50YXIucGwg fCAgNSArLQogNiBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3ZlcmlmeWJhY2t1cC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAuc2dtbAppbmRleCBlOWI4YmZkNTFiMS4u MTZiNTBiNWE0ZGYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3Vw LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAuc2dtbApAQCAtMzYs MTAgKzM2LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICA8bGl0ZXJhbD5iYWNrdXBf bWFuaWZlc3Q8L2xpdGVyYWw+IGdlbmVyYXRlZCBieSB0aGUgc2VydmVyIGF0IHRoZSB0aW1lCiAg ICBvZiB0aGUgYmFja3VwLiBUaGUgYmFja3VwIG1heSBiZSBzdG9yZWQgZWl0aGVyIGluIHRoZSAi cGxhaW4iIG9yIHRoZSAidGFyIgogICAgZm9ybWF0OyB0aGlzIGluY2x1ZGVzIHRhci1mb3JtYXQg YmFja3VwcyBjb21wcmVzc2VkIHdpdGggYW55IGFsZ29yaXRobQotICAgc3VwcG9ydGVkIGJ5IDxh cHBsaWNhdGlvbj5wZ19iYXNlYmFja3VwPC9hcHBsaWNhdGlvbj4uIEhvd2V2ZXIsIGF0IHByZXNl bnQsCi0gICA8bGl0ZXJhbD5XQUw8L2xpdGVyYWw+IHZlcmlmaWNhdGlvbiBpcyBzdXBwb3J0ZWQg b25seSBmb3IgcGxhaW4tZm9ybWF0Ci0gICBiYWNrdXBzLiBUaGVyZWZvcmUsIGlmIHRoZSBiYWNr dXAgaXMgc3RvcmVkIGluIHRhci1mb3JtYXQsIHRoZQotICAgPGxpdGVyYWw+LW4sIC0tbm8tcGFy c2Utd2FsPC9saXRlcmFsPiBvcHRpb24gc2hvdWxkIGJlIHVzZWQuCisgICBzdXBwb3J0ZWQgYnkg PGFwcGxpY2F0aW9uPnBnX2Jhc2ViYWNrdXA8L2FwcGxpY2F0aW9uPi4KICAgPC9wYXJhPgogCiAg IDxwYXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFj a3VwLmMgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYwppbmRleCA5 ZmNkNmJlMDA0ZS4uNjkxNWZjN2YyOGUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFj a3VwL3BnX3ZlcmlmeWJhY2t1cC5jCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3Zl cmlmeWJhY2t1cC5jCkBAIC03NCw3ICs3NCw5IEBAIHBnX25vcmV0dXJuIHN0YXRpYyB2b2lkIHJl cG9ydF9tYW5pZmVzdF9lcnJvcihKc29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRleHQsCiAJ CQkJCQkJCQkJCSAgY29uc3QgY2hhciAqZm10LC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9wcmludGYo MiwgMyk7CiAKLXN0YXRpYyB2b2lkIHZlcmlmeV90YXJfYmFja3VwKHZlcmlmaWVyX2NvbnRleHQg KmNvbnRleHQsIERJUiAqZGlyKTsKK3N0YXRpYyB2b2lkIHZlcmlmeV90YXJfYmFja3VwKHZlcmlm aWVyX2NvbnRleHQgKmNvbnRleHQsIERJUiAqZGlyLAorCQkJCQkJCSAgY2hhciAqKmJhc2VfYXJj aGl2ZV9wYXRoLAorCQkJCQkJCSAgY2hhciAqKndhbF9hcmNoaXZlX3BhdGgpOwogc3RhdGljIHZv aWQgdmVyaWZ5X3BsYWluX2JhY2t1cF9kaXJlY3RvcnkodmVyaWZpZXJfY29udGV4dCAqY29udGV4 dCwKIAkJCQkJCQkJCQkgIGNoYXIgKnJlbHBhdGgsIGNoYXIgKmZ1bGxwYXRoLAogCQkJCQkJCQkJ CSAgRElSICpkaXIpOwpAQCAtODMsNyArODUsOSBAQCBzdGF0aWMgdm9pZCB2ZXJpZnlfcGxhaW5f YmFja3VwX2ZpbGUodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgY2hhciAqcmVscGF0aCwKIHN0 YXRpYyB2b2lkIHZlcmlmeV9jb250cm9sX2ZpbGUoY29uc3QgY2hhciAqY29udHJvbHBhdGgsCiAJ CQkJCQkJCXVpbnQ2NCBtYW5pZmVzdF9zeXN0ZW1faWRlbnRpZmllcik7CiBzdGF0aWMgdm9pZCBw cmVjaGVja190YXJfYmFja3VwX2ZpbGUodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgY2hhciAq cmVscGF0aCwKLQkJCQkJCQkJCSBjaGFyICpmdWxscGF0aCwgU2ltcGxlUHRyTGlzdCAqdGFyZmls ZXMpOworCQkJCQkJCQkJIGNoYXIgKmZ1bGxwYXRoLCBTaW1wbGVQdHJMaXN0ICp0YXJmaWxlcywK KwkJCQkJCQkJCSBjaGFyICoqYmFzZV9hcmNoaXZlX3BhdGgsCisJCQkJCQkJCQkgY2hhciAqKndh bF9hcmNoaXZlX3BhdGgpOwogc3RhdGljIHZvaWQgdmVyaWZ5X3Rhcl9maWxlKHZlcmlmaWVyX2Nv bnRleHQgKmNvbnRleHQsIGNoYXIgKnJlbHBhdGgsCiAJCQkJCQkJY2hhciAqZnVsbHBhdGgsIGFz dHJlYW1lciAqc3RyZWFtZXIpOwogc3RhdGljIHZvaWQgcmVwb3J0X2V4dHJhX2JhY2t1cF9maWxl cyh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0KTsKQEAgLTEzNiw2ICsxNDAsOCBAQCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikKIAlib29sCQlub19wYXJzZV93YWwgPSBmYWxzZTsKIAlib29s CQlxdWlldCA9IGZhbHNlOwogCWNoYXIJICAgKndhbF9wYXRoID0gTlVMTDsKKwljaGFyCSAgICpi YXNlX2FyY2hpdmVfcGF0aCA9IE5VTEw7CisJY2hhcgkgICAqd2FsX2FyY2hpdmVfcGF0aCA9IE5V TEw7CiAJY2hhcgkgICAqcGdfd2FsZHVtcF9wYXRoID0gTlVMTDsKIAlESVIJCSAgICpkaXI7CiAK QEAgLTMyNywxNyArMzMzLDYgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXBmcmVl KHBhdGgpOwogCX0KIAotCS8qCi0JICogWFhYOiBJbiB0aGUgZnV0dXJlLCB3ZSBzaG91bGQgY29u c2lkZXIgZW5oYW5jaW5nIHBnX3dhbGR1bXAgdG8gcmVhZCBXQUwKLQkgKiBmaWxlcyBmcm9tIGFu IGFyY2hpdmUuCi0JICovCi0JaWYgKCFub19wYXJzZV93YWwgJiYgY29udGV4dC5mb3JtYXQgPT0g J3QnKQotCXsKLQkJcGdfbG9nX2Vycm9yKCJwZ193YWxkdW1wIGNhbm5vdCByZWFkIHRhciBmaWxl cyIpOwotCQlwZ19sb2dfZXJyb3JfaGludCgiWW91IG11c3QgdXNlIC1uLy0tbm8tcGFyc2Utd2Fs IHdoZW4gdmVyaWZ5aW5nIGEgdGFyLWZvcm1hdCBiYWNrdXAuIik7Ci0JCWV4aXQoMSk7Ci0JfQot CiAJLyoKIAkgKiBQZXJmb3JtIHRoZSBhcHByb3ByaWF0ZSB0eXBlIG9mIHZlcmlmaWNhdGlvbiBh cHByb3ByaWF0ZSBiYXNlZCBvbiB0aGUKIAkgKiBiYWNrdXAgZm9ybWF0LiBUaGlzIHdpbGwgY2xv c2UgJ2RpcicuCkBAIC0zNDYsNyArMzQxLDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAJCXZlcmlmeV9wbGFpbl9iYWNrdXBfZGlyZWN0b3J5KCZjb250ZXh0LCBOVUxMLCBjb250ZXh0 LmJhY2t1cF9kaXJlY3RvcnksCiAJCQkJCQkJCQkgIGRpcik7CiAJZWxzZQotCQl2ZXJpZnlfdGFy X2JhY2t1cCgmY29udGV4dCwgZGlyKTsKKwkJdmVyaWZ5X3Rhcl9iYWNrdXAoJmNvbnRleHQsIGRp ciwgJmJhc2VfYXJjaGl2ZV9wYXRoLCAmd2FsX2FyY2hpdmVfcGF0aCk7CiAKIAkvKgogCSAqIFRo ZSAibWF0Y2hlZCIgZmxhZyBzaG91bGQgbm93IGJlIHNldCBvbiBldmVyeSBlbnRyeSBpbiB0aGUg aGFzaCB0YWJsZS4KQEAgLTM2NCw5ICszNTksMjggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFy Z3YpCiAJaWYgKGNvbnRleHQuZm9ybWF0ID09ICdwJyAmJiAhY29udGV4dC5za2lwX2NoZWNrc3Vt cykKIAkJdmVyaWZ5X2JhY2t1cF9jaGVja3N1bXMoJmNvbnRleHQpOwogCi0JLyogQnkgZGVmYXVs dCwgbG9vayBmb3IgdGhlIFdBTCBpbiB0aGUgYmFja3VwIGRpcmVjdG9yeSwgdG9vLiAqLworCS8q CisJICogQnkgZGVmYXVsdCwgV0FMIGZpbGVzIGFyZSBleHBlY3RlZCB0byBiZSBmb3VuZCBpbiB0 aGUgYmFja3VwIGRpcmVjdG9yeQorCSAqIGZvciBwbGFpbi1mb3JtYXQgYmFja3Vwcy4gSW4gdGhl IGNhc2Ugb2YgdGFyLWZvcm1hdCBiYWNrdXBzLCBpZiBhCisJICogc2VwYXJhdGUgV0FMIGFyY2hp dmUgaXMgbm90IGZvdW5kLCB0aGUgV0FMIGZpbGVzIGFyZSBtb3N0IGxpa2VseQorCSAqIGluY2x1 ZGVkIHdpdGhpbiB0aGUgbWFpbiBkYXRhIGRpcmVjdG9yeSBhcmNoaXZlLgorCSAqLwogCWlmICh3 YWxfcGF0aCA9PSBOVUxMKQotCQl3YWxfcGF0aCA9IHBzcHJpbnRmKCIlcy9wZ193YWwiLCBjb250 ZXh0LmJhY2t1cF9kaXJlY3RvcnkpOworCXsKKwkJaWYgKGNvbnRleHQuZm9ybWF0ID09ICdwJykK KwkJCXdhbF9wYXRoID0gcHNwcmludGYoIiVzL3BnX3dhbCIsIGNvbnRleHQuYmFja3VwX2RpcmVj dG9yeSk7CisJCWVsc2UgaWYgKHdhbF9hcmNoaXZlX3BhdGgpCisJCQl3YWxfcGF0aCA9IHdhbF9h cmNoaXZlX3BhdGg7CisJCWVsc2UgaWYgKGJhc2VfYXJjaGl2ZV9wYXRoKQorCQkJd2FsX3BhdGgg PSBiYXNlX2FyY2hpdmVfcGF0aDsKKwkJZWxzZQorCQl7CisJCQlwZ19sb2dfZXJyb3IoIndhbCBh cmNoaXZlIG5vdCBmb3VuZCIpOworCQkJcGdfbG9nX2Vycm9yX2hpbnQoIlNwZWNpZnkgdGhlIGNv cnJlY3QgcGF0aCB1c2luZyB0aGUgb3B0aW9uIC13Ly0td2FsLXBhdGguIgorCQkJCQkJCSAgIk9y IHlvdSBtdXN0IHVzZSAtbi8tLW5vLXBhcnNlLXdhbCB3aGVuIHZlcmlmeWluZyBhIHRhci1mb3Jt YXQgYmFja3VwLiIpOworCQkJZXhpdCgxKTsKKwkJfQorCX0KIAogCS8qCiAJICogVHJ5IHRvIHBh cnNlIHRoZSByZXF1aXJlZCByYW5nZXMgb2YgV0FMIHJlY29yZHMsIHVubGVzcyB3ZSB3ZXJlIHRv bGQKQEAgLTc4Nyw3ICs4MDEsOCBAQCB2ZXJpZnlfY29udHJvbF9maWxlKGNvbnN0IGNoYXIgKmNv bnRyb2xwYXRoLCB1aW50NjQgbWFuaWZlc3Rfc3lzdGVtX2lkZW50aWZpZXIpCiAgKiBjbG9zZSB3 aGVuIHdlJ3JlIGRvbmUgd2l0aCBpdC4KICAqLwogc3RhdGljIHZvaWQKLXZlcmlmeV90YXJfYmFj a3VwKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIERJUiAqZGlyKQordmVyaWZ5X3Rhcl9iYWNr dXAodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgRElSICpkaXIsIGNoYXIgKipiYXNlX2FyY2hp dmVfcGF0aCwKKwkJCQkgIGNoYXIgKip3YWxfYXJjaGl2ZV9wYXRoKQogewogCXN0cnVjdCBkaXJl bnQgKmRpcmVudDsKIAlTaW1wbGVQdHJMaXN0IHRhcmZpbGVzID0ge05VTEwsIE5VTEx9OwpAQCAt ODE2LDcgKzgzMSw4IEBAIHZlcmlmeV90YXJfYmFja3VwKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRl eHQsIERJUiAqZGlyKQogCQkJY2hhcgkgICAqZnVsbHBhdGg7CiAKIAkJCWZ1bGxwYXRoID0gcHNw cmludGYoIiVzLyVzIiwgY29udGV4dC0+YmFja3VwX2RpcmVjdG9yeSwgZmlsZW5hbWUpOwotCQkJ cHJlY2hlY2tfdGFyX2JhY2t1cF9maWxlKGNvbnRleHQsIGZpbGVuYW1lLCBmdWxscGF0aCwgJnRh cmZpbGVzKTsKKwkJCXByZWNoZWNrX3Rhcl9iYWNrdXBfZmlsZShjb250ZXh0LCBmaWxlbmFtZSwg ZnVsbHBhdGgsICZ0YXJmaWxlcywKKwkJCQkJCQkJCSBiYXNlX2FyY2hpdmVfcGF0aCwgd2FsX2Fy Y2hpdmVfcGF0aCk7CiAJCQlwZnJlZShmdWxscGF0aCk7CiAJCX0KIAl9CkBAIC04NzUsMTEgKzg5 MSwxMyBAQCB2ZXJpZnlfdGFyX2JhY2t1cCh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBESVIg KmRpcikKICAqCiAgKiBUaGUgYXJndW1lbnRzIHRvIHRoaXMgZnVuY3Rpb24gYXJlIG1vc3RseSB0 aGUgc2FtZSBhcyB0aGUKICAqIHZlcmlmeV9wbGFpbl9iYWNrdXBfZmlsZS4gVGhlIGFkZGl0aW9u YWwgYXJndW1lbnQgb3V0cHV0cyBhIGxpc3Qgb2YgdmFsaWQKLSAqIHRhciBmaWxlcy4KKyAqIHRh ciBmaWxlcywgYWxvbmcgd2l0aCB0aGUgZnVsbCBwYXRocyB0byB0aGUgbWFpbiBhcmNoaXZlIGFu ZCB0aGUgV0FMCisgKiBkaXJlY3RvcnkgYXJjaGl2ZS4KICAqLwogc3RhdGljIHZvaWQKIHByZWNo ZWNrX3Rhcl9iYWNrdXBfZmlsZSh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjaGFyICpyZWxw YXRoLAotCQkJCQkJIGNoYXIgKmZ1bGxwYXRoLCBTaW1wbGVQdHJMaXN0ICp0YXJmaWxlcykKKwkJ CQkJCSBjaGFyICpmdWxscGF0aCwgU2ltcGxlUHRyTGlzdCAqdGFyZmlsZXMsCisJCQkJCQkgY2hh ciAqKmJhc2VfYXJjaGl2ZV9wYXRoLCBjaGFyICoqd2FsX2FyY2hpdmVfcGF0aCkKIHsKIAlzdHJ1 Y3Qgc3RhdCBzYjsKIAlPaWQJCQl0YmxzcGNfb2lkID0gSW52YWxpZE9pZDsKQEAgLTkxOCw5ICs5 MzYsMTcgQEAgcHJlY2hlY2tfdGFyX2JhY2t1cF9maWxlKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRl eHQsIGNoYXIgKnJlbHBhdGgsCiAJICogZXh0ZW5zaW9uIHN1Y2ggYXMgLmd6LCAubHo0LCBvciAu enN0LgogCSAqLwogCWlmIChzdHJuY21wKCJiYXNlIiwgcmVscGF0aCwgNCkgPT0gMCkKKwl7CiAJ CXN1ZmZpeCA9IHJlbHBhdGggKyA0OworCisJCSpiYXNlX2FyY2hpdmVfcGF0aCA9IHBzdHJkdXAo ZnVsbHBhdGgpOworCX0KIAllbHNlIGlmIChzdHJuY21wKCJwZ193YWwiLCByZWxwYXRoLCA2KSA9 PSAwKQorCXsKIAkJc3VmZml4ID0gcmVscGF0aCArIDY7CisKKwkJKndhbF9hcmNoaXZlX3BhdGgg PSBwc3RyZHVwKGZ1bGxwYXRoKTsKKwl9CiAJZWxzZQogCXsKIAkJLyogRXhwZWN0ZWQgYSA8dGFi bGVzcGFjZW9pZD4udGFyIGZpbGUgaGVyZS4gKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3QvMDAyX2FsZ29yaXRobS5wbCBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Qv MDAyX2FsZ29yaXRobS5wbAppbmRleCBhZTE2YzExYmM0ZC4uNGYyODRhOWU4MjggMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDAyX2FsZ29yaXRobS5wbAorKysgYi9zcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwMl9hbGdvcml0aG0ucGwKQEAgLTMwLDEwICszMCw2IEBA IHN1YiB0ZXN0X2NoZWNrc3VtcwogCXsKIAkJIyBBZGQgc3dpdGNoIHRvIGdldCBhIHRhci1mb3Jt YXQgYmFja3VwCiAJCXB1c2ggQGJhY2t1cCwgKCctLWZvcm1hdCcgPT4gJ3RhcicpOwotCi0JCSMg QWRkIHN3aXRjaCB0byBza2lwIFdBTCB2ZXJpZmljYXRpb24sIHdoaWNoIGlzIG5vdCB5ZXQgc3Vw cG9ydGVkIGZvcgotCQkjIHRhci1mb3JtYXQgYmFja3VwcwotCQlwdXNoIEB2ZXJpZnksICgnLS1u by1wYXJzZS13YWwnKTsKIAl9CiAKIAkjIEEgYmFja3VwIHdpdGggYSBib2d1cyBhbGdvcml0aG0g c2hvdWxkIGZhaWwuCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwM19j b3JydXB0aW9uLnBsIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29ycnVwdGlvbi5w bAppbmRleCAxZGQ2MGY3MDljZi4uZjFlYmRiYjQ2YjQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf dmVyaWZ5YmFja3VwL3QvMDAzX2NvcnJ1cHRpb24ucGwKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvdC8wMDNfY29ycnVwdGlvbi5wbApAQCAtMTkzLDEwICsxOTMsOCBAQCBmb3IgbXkgJHNj ZW5hcmlvIChAc2NlbmFyaW8pCiAJCQljb21tYW5kX29rKFsgJHRhciwgJy1jZicgPT4gIiR0YXJf YmFja3VwX3BhdGgvYmFzZS50YXIiLCAnLicgXSk7CiAJCQljaGRpcigkY3dkKSB8fCBkaWUgImNo ZGlyOiAkISI7CiAKLQkJCSMgTm93IGNoZWNrIHRoYXQgdGhlIGJhY2t1cCBubyBsb25nZXIgdmVy aWZpZXMuIFdlIG11c3QgdXNlIC1uCi0JCQkjIGhlcmUsIGJlY2F1c2UgcGdfd2FsZHVtcCBjYW4n dCB5ZXQgcmVhZCBXQUwgZnJvbSBhIHRhcmZpbGUuCiAJCQljb21tYW5kX2ZhaWxzX2xpa2UoCi0J CQkJWyAncGdfdmVyaWZ5YmFja3VwJywgJy0tbm8tcGFyc2Utd2FsJywgJHRhcl9iYWNrdXBfcGF0 aCBdLAorCQkJCVsgJ3BnX3ZlcmlmeWJhY2t1cCcsICR0YXJfYmFja3VwX3BhdGggXSwKIAkJCQkk c2NlbmFyaW8tPnsnZmFpbHNfbGlrZSd9LAogCQkJCSJjb3JydXB0IGJhY2t1cCBmYWlscyB2ZXJp ZmljYXRpb246ICRuYW1lIik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3QvMDA4X3VudGFyLnBsIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDhfdW50YXIucGwK aW5kZXggYmMzZDZiMzUyYWQuLjA5MDc5YTk0ZmVlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Zl cmlmeWJhY2t1cC90LzAwOF91bnRhci5wbAorKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90 LzAwOF91bnRhci5wbApAQCAtNDcsNyArNDcsNiBAQCBteSAkdHNvaWQgPSAkcHJpbWFyeS0+c2Fm ZV9wc3FsKAogCQlTRUxFQ1Qgb2lkIEZST00gcGdfdGFibGVzcGFjZSBXSEVSRSBzcGNuYW1lID0g J3JlZ3Jlc3NfdHMxJykpOwogCiBteSAkYmFja3VwX3BhdGggPSAkcHJpbWFyeS0+YmFja3VwX2Rp ciAuICcvc2VydmVyLWJhY2t1cCc7Ci1teSAkZXh0cmFjdF9wYXRoID0gJHByaW1hcnktPmJhY2t1 cF9kaXIgLiAnL2V4dHJhY3RlZC1iYWNrdXAnOwogCiBteSBAdGVzdF9jb25maWd1cmF0aW9uID0g KAogCXsKQEAgLTEyMywxNCArMTIyLDEyIEBAIGZvciBteSAkdGMgKEB0ZXN0X2NvbmZpZ3VyYXRp b24pCiAJCSMgVmVyaWZ5IHRhciBiYWNrdXAuCiAJCSRwcmltYXJ5LT5jb21tYW5kX29rKAogCQkJ WwotCQkJCSdwZ192ZXJpZnliYWNrdXAnLCAnLS1uby1wYXJzZS13YWwnLAotCQkJCSctLWV4aXQt b24tZXJyb3InLCAkYmFja3VwX3BhdGgsCisJCQkJJ3BnX3ZlcmlmeWJhY2t1cCcsICctLWV4aXQt b24tZXJyb3InLCAkYmFja3VwX3BhdGgsCiAJCQldLAogCQkJInZlcmlmeSBiYWNrdXAsIGNvbXBy ZXNzaW9uICRtZXRob2QiKTsKIAogCQkjIENsZWFudXAuCiAJCXJtdHJlZSgkYmFja3VwX3BhdGgp OwotCQlybXRyZWUoJGV4dHJhY3RfcGF0aCk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRfdW50YXIucGwgYi9zcmMvYmluL3BnX3Zlcmlm eWJhY2t1cC90LzAxMF9jbGllbnRfdW50YXIucGwKaW5kZXggYjYyZmFlYjVhY2YuLjViMGU3NmVl NjlkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRfdW50 YXIucGwKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMTBfY2xpZW50X3VudGFyLnBs CkBAIC0zMiw3ICszMiw2IEBAIHByaW50ICRqZiAkanVua19kYXRhOwogY2xvc2UgJGpmOwogCiBt eSAkYmFja3VwX3BhdGggPSAkcHJpbWFyeS0+YmFja3VwX2RpciAuICcvY2xpZW50LWJhY2t1cCc7 Ci1teSAkZXh0cmFjdF9wYXRoID0gJHByaW1hcnktPmJhY2t1cF9kaXIgLiAnL2V4dHJhY3RlZC1i YWNrdXAnOwogCiBteSBAdGVzdF9jb25maWd1cmF0aW9uID0gKAogCXsKQEAgLTEzNywxMyArMTM2 LDExIEBAIGZvciBteSAkdGMgKEB0ZXN0X2NvbmZpZ3VyYXRpb24pCiAJCSMgVmVyaWZ5IHRhciBi YWNrdXAuCiAJCSRwcmltYXJ5LT5jb21tYW5kX29rKAogCQkJWwotCQkJCSdwZ192ZXJpZnliYWNr dXAnLCAnLS1uby1wYXJzZS13YWwnLAotCQkJCSctLWV4aXQtb24tZXJyb3InLCAkYmFja3VwX3Bh dGgsCisJCQkJJ3BnX3ZlcmlmeWJhY2t1cCcsICctLWV4aXQtb24tZXJyb3InLCAkYmFja3VwX3Bh dGgsCiAJCQldLAogCQkJInZlcmlmeSBiYWNrdXAsIGNvbXByZXNzaW9uICRtZXRob2QiKTsKIAog CQkjIENsZWFudXAuCi0JCXJtdHJlZSgkZXh0cmFjdF9wYXRoKTsKIAkJcm10cmVlKCRiYWNrdXBf cGF0aCk7CiAJfQogfQotLSAKMi40Ny4xCgo= --000000000000102ced06446586db--