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 1viTyX-007aVs-2Q for pgsql-hackers@arkaria.postgresql.org; Wed, 21 Jan 2026 08:54:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1viTyW-00652E-28 for pgsql-hackers@arkaria.postgresql.org; Wed, 21 Jan 2026 08:54:04 +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 1viTyW-006526-0X for pgsql-hackers@lists.postgresql.org; Wed, 21 Jan 2026 08:54:04 +0000 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1viTyT-001gdq-3A for pgsql-hackers@postgresql.org; Wed, 21 Jan 2026 08:54:03 +0000 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-2a76b39587aso67945ad.0 for ; Wed, 21 Jan 2026 00:54:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1768985639; cv=none; d=google.com; s=arc-20240605; b=gE5VybZM332UYNNV8qmeIWkzybJGgYLW/e+j/uwW9EFLj+rLEUjdxBIztR9O2e/if5 1riI2VlqvReCTARKppelWHVytlikiqAVI7uz8HYoQJtB43kcabITdPV/gpSM8PNvVcLq /9woruKVUb6mr/WUsUjpNAG6Zd+92e4NwJjbXqqgNxre3RPYHI+e/wjlSNE4X3vkM1Yq 1a2LtiT/DNDos11RqUslTY16WC19YFa2WbjdFwGbHHfWcMwLQZKi/6BMHXtk2jZ/Rnpa u9bCDrMQIPqfpLWlWod8q9dY/uni0WanBQAoqQtJI0PA0dW5IFIz44X/o/cbm8a3NPqa E13w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=k7RkXpZBk4OVDTq8elklMdAHbrAPvMNcixhJ+OZ6Xjs=; fh=ZlPJbvZxrG/JVNkDSFojkrQaTX+ZwpNSwVEf9cvFgSg=; b=Jmwgg5JwGNPLw/lqeqzTDe1a2yj/RRNfAmWY0J7yNv7F86H25TaiSM2WjyjcjGsGC5 yOAVtw3je0Ln6NJREq1AsZqXbJ6PBGImDr6FZ7sCsgEqKkFDyMn6c3evA6G5GoBgEJPW Soq/TTh7lWbqCpgDsrNdrUUQGCugQRp6L2b4xjeO4TlMCUZyMtPNUMMQzTAAxxQPRMfg yDUIr5zENHuE9cYWfs1nFSY2WCJnkQshEIXk+OUoiwKDXO5YRNjIwtHGw5mH7pgK6hjq s2FAY4zluSFMhyXldDB17Vl3klkItrzbTQVQrNks++XJJULWDE6BkqPFA0DHTzJdUoQO Hd1A==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1768985639; x=1769590439; darn=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=k7RkXpZBk4OVDTq8elklMdAHbrAPvMNcixhJ+OZ6Xjs=; b=jy0N02Cik72NkI78INcnT2TAP7MlSpCbTtFvt2uyT30QOQHUoUJKe0RK4a6+Rv3gVc JnEnrXr9i9NVfo+GEEgWReG5oBS9kFxgE2fHxwBafevk2JYZdUL6WJ/1o56YHhdwAYVK iD0eZio7OprPy6vaEKVLOwbgOZwmN1j/G8+1xE4qBSrAbGb1ZAwZ44BExfn2L/otGYKW K5eek6pNkOXdLLRZ2OIewagJ9yixJB+piOYcNIlv1lScfDFIkjL5TTVP8hgJMAeF4R1s hyMPsmA/L7x1d8IRIxoMNaECH+5BEEC2aycKQ+CukiHitdiOJ+UdHKxSq7NjE9VXnviw /1hA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768985639; x=1769590439; 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=k7RkXpZBk4OVDTq8elklMdAHbrAPvMNcixhJ+OZ6Xjs=; b=kTc/ECwaUzfGhk8+WIb0/ys6BsPV62+s39rm0f4E6d8YrIQPBcRCZf6UAr1rRt5rLF UkW4gZMLha9gNzw0W3uTpGbJDvGnIcIonfRVqqTyYS/eMg1HVZOgnb6q/2DJC+viJIc2 ZAQ70wBgRJ+UsN8Qf1brR0zHBUxjJUdvQl0czrXlVh6lxxca4NcfdBpYZ5ixR0QPedef sUEINN0AZx11nvuXhs7Zto1UUdATE/x1mq9y2awQSPcElSEZds+r+llGa1479zzSkwYg DQI81gn/R5kyNRpZt2sPofR5M1eAfRCMiMLR5ljQc4ImwpjcPRPmKOoffQYZnHsCKOAE vKiw== X-Forwarded-Encrypted: i=1; AJvYcCUdNcGN7xclrzFNZAwJzqX7MesuRQ01v5C/Y7bzt5wwpC2HNSrj4SF6+uEq0JWroxrPiXuwOasLazPUPozE@postgresql.org X-Gm-Message-State: AOJu0YxmxKwsJkuaydvKBEln7FI8k4gPeUv8DN2fGAltvETNgRiCG54+ sRBxvzGn0lA70LfowC4r0oj8GHj9f5U2AhiosIRLOra75NpQ4qWFMj4OPTcsavXbsKeN1VJoHZ6 YgUcI7EGVA5+2NEQqDQ7A9rcSQnwOXgy4ogcgja34 X-Gm-Gg: AZuq6aL54qof+njtyHeWUntSsS80UD0qZPC28thFFZU65N+nrpztcA9X6KZE283jI9c quoZwWiA0wd1m+krpqOtC+Upy1rDVoik1V/g6qz2sryfT5rvpZXe++iuV3xHbxUBMrHpx/AWtRI vEkvHaTXT2sp6fF765xgLf3y3vPcGE1pR64GDKRqMq/3r1EJNQvvrUXyDe8FrQB4YKMDmzhQoBv ELvhXTkO2HoEQpAl2e0d5aAxhJ22KAtambO3wWF1h45TEWZUQpDHL2UidC1WY2dPloq5rLvP6Du ShN2uuxbCFfsGeSmidD6F4+u65WTHUpf8ifU X-Received: by 2002:a17:903:2290:b0:2a7:6c4e:5914 with SMTP id d9443c01a7336-2a79a3b9aefmr2675725ad.6.1768985638375; Wed, 21 Jan 2026 00:53:58 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Nitin Motiani Date: Wed, 21 Jan 2026 14:23:46 +0530 X-Gm-Features: AZwV_Qiecbj12tudGPMO3EN62OgWq4QFjxZkfc5Wok2kO8Ncxb5YYmfoSScwHks Message-ID: Subject: Re: Adding pg_dump flag for parallel export to pipes To: Dilip Kumar Cc: Thomas Munro , Hannu Krosing , pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="0000000000009797790648e21096" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009797790648e21096 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jan 13, 2026 at 4:20=E2=80=AFPM Nitin Motiani wrote: > > Hi Dilip, > > I have rebased the patches and cleaned up the TODOs. Please take a > look. The fifth patch is still WIP because I'm working on figuring out > the test failure. I'll report my findings on that soon. > Attaching the new version after rebasing and fixing a fallthrough bug introduced in v6. Thanks, Nitin Motiani Google --0000000000009797790648e21096 Content-Type: application/x-patch; name="v7-0004-Add-documentation-for-pipe-command-in-pg_dump-and.patch" Content-Disposition: attachment; filename="v7-0004-Add-documentation-for-pipe-command-in-pg_dump-and.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mknscea93 RnJvbSBmMjhlY2M1ZDFiNjM2Nzg1YmI4YWVmNTIxNzhmZmI0N2E3YjQyOWVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXRpbiBNb3RpYW5pIDxuaXRpbm1vdGlhbmlAZ29vZ2xlLmNv bT4KRGF0ZTogRnJpLCA0IEFwciAyMDI1IDE0OjM0OjQ4ICswMDAwClN1YmplY3Q6IFtQQVRDSCB2 NyA0LzVdIEFkZCBkb2N1bWVudGF0aW9uIGZvciBwaXBlLWNvbW1hbmQgaW4gcGdfZHVtcCBhbmQK IHBnX3Jlc3RvcmUKCiogQWRkIHRoZSBkZXNjcmlwdGlvbnMgb2YgdGhlIG5ldyBmbGFncyBhbmQg Y29uc3RyYWludHMKICByZWdhcmRpbmcgd2hpY2ggbW9kZSBhbmQgb3RoZXIgZmxhZ3MgdGhleSBj YW4ndCBiZSB1c2VkIHdpdGguCiogRXhwbGFpbiB0aGUgcHVycG9zZSBvZiB0aGUgZmxhZ3MuCiog QWRkIGEgZmV3IGV4YW1wbGVzIG9mIHRoZSB1c2FnZSBvZiB0aGUgZmxhZ3MuCi0tLQogZG9jL3Ny Yy9zZ21sL3JlZi9wZ19kdW1wLnNnbWwgICAgfCA1NiArKysrKysrKysrKysrKysrKysrKysrKysr KwogZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3JlLnNnbWwgfCA2OCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxMjMgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wLnNnbWwKaW5kZXggNjg4ZTIzYzBlOTAuLjAwZDRkODlj Yzk3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbApAQCAtMjk5LDYgKzI5OSw3IEBAIFBvc3RncmVTUUwg ZG9jdW1lbnRhdGlvbgogICAgICAgICBzcGVjaWZpZXMgdGhlIHRhcmdldCBkaXJlY3RvcnkgaW5z dGVhZCBvZiBhIGZpbGUuIEluIHRoaXMgY2FzZSB0aGUKICAgICAgICAgZGlyZWN0b3J5IGlzIGNy ZWF0ZWQgYnkgPGNvbW1hbmQ+cGdfZHVtcDwvY29tbWFuZD4gdW5sZXNzIHRoZSBkaXJlY3RvcnkK ICAgICAgICAgZXhpc3RzIGFuZCBpcyBlbXB0eS4KKyAgICAgICAgVGhpcyBvcHRpb24gYW5kIDxv cHRpb24+LS1waXBlLWNvbW1hbmQ8L29wdGlvbj4gY2FuJ3QgYmUgdXNlZCB0b2dldGhlci4KICAg ICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAg LTEyNDYsNiArMTI0NywzMiBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlz dGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAg ICA8dGVybT48b3B0aW9uPi0tcGlwZS1jb21tYW5kPC9vcHRpb24+PC90ZXJtPgorICAgICAgPGxp c3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9wdGlvbiBpcyBvbmx5IHN1cHBv cnRlZCB3aXRoIHRoZSBkaXJlY3Rvcnkgb3V0cHV0CisgICAgICAgIGZvcm1hdC4gSXQgY2FuIGJl IHVzZWQgdG8gd3JpdGUgdG8gbXVsdGlwbGUgc3RyZWFtcyB3aGljaAorICAgICAgICBvdGhlcndp c2Ugd291bGQgbm90IGJlIHBvc3NpYmxlIHdpdGggdGhlIGRpcmVjdG9yeSBtb2RlLgorICAgICAg ICBGb3IgZWFjaCBzdHJlYW0sIGl0IHN0YXJ0cyBhIHByb2Nlc3Mgd2hpY2ggcnVucyB0aGUKKyAg ICAgICAgc3BlY2lmaWVkIGNvbW1hbmQgYW5kIHBpcGVzIHRoZSBwZ19kdW1wIG91dHB1dCB0byB0 aGlzCisgICAgICAgIHByb2Nlc3MuCisgICAgICAgIFRoaXMgb3B0aW9uIGlzIG5vdCB2YWxpZCBp ZiA8b3B0aW9uPi0tZmlsZTwvb3B0aW9uPgorICAgICAgICBpcyBhbHNvIHNwZWNpZmllZC4KKyAg ICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBwaXBlLWNvbW1hbmQgY2Fu IGJlIHVzZWQgdG8gcGVyZm9ybSBvcGVyYXRpb25zIGxpa2UgY29tcHJlc3MKKyAgICAgICAgdXNp bmcgYSBjdXN0b20gYWxnb3JpdGhtLCBmaWx0ZXIsIG9yIHdyaXRlIHRoZSBvdXRwdXQgdG8gYSBj bG91ZAorICAgICAgICBzdG9yYWdlIGV0Yy4gVGhlIHVzZXIgd291bGQgbmVlZCBhIHdheSB0byBw aXBlIHRoZSBmaW5hbCBvdXRwdXQgb2YKKyAgICAgICAgZWFjaCBzdHJlYW0gdG8gYSBmaWxlLiBU byBoYW5kbGUgdGhhdCwgdGhlIHBpcGUgY29tbWFuZCBzdXBwb3J0cyBhIGZvcm1hdAorICAgICAg ICBzcGVjaWZpZXIgJWYuIEFuZCBhbGwgdGhlIGluc3RhbmNlcyBvZiAlZiBpbiB0aGUgY29tbWFu ZCBzdHJpbmcKKyAgICAgICAgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5n IGZpbGUgbmFtZSB3aGljaAorICAgICAgICB3b3VsZCBoYXZlIGJlZW4gdXNlZCBpbiB0aGUgZGly ZWN0b3J5IG1vZGUgd2l0aCA8b3B0aW9uPi0tZmlsZTwvb3B0aW9uPi4KKyAgICAgICAgU2VlIDx4 cmVmIGxpbmtlbmQ9InBnLWR1bXAtZXhhbXBsZXMiLz4gYmVsb3cuCisgICAgICAgPC9wYXJhPgor ICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3Rl bnRyeT4KICAgICAgIDx0ZXJtPjxvcHRpb24+LS1xdW90ZS1hbGwtaWRlbnRpZmllcnM8L29wdGlv bj48L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CkBAIC0xODAyLDYgKzE4MjksMzUgQEAgQ1JFQVRF IERBVEFCQVNFIGZvbyBXSVRIIFRFTVBMQVRFIHRlbXBsYXRlMDsKIDwvc2NyZWVuPgogICA8L3Bh cmE+CiAKKyAgPHBhcmE+CisgICBUbyB1c2UgcGlwZS1jb21tYW5kIHRvIGR1bXAgYSBkYXRhYmFz ZSBpbnRvIGEgZGlyZWN0b3J5LWZvcm1hdCBhcmNoaXZlCisgICAodGhlIGRpcmVjdG9yeSA8bGl0 ZXJhbD5kdW1wZGlyPC9saXRlcmFsPiBuZWVkcyB0byBleGlzdCBiZWZvcmUgcnVubmluZyB0aGUg Y29tbWFuZCkuCisKKzxzY3JlZW4+Cis8cHJvbXB0PiQ8L3Byb21wdD4gPHVzZXJpbnB1dD5wZ19k dW1wIC1GZCBteWRiIC0tcGlwZS1jb21tYW5kPSJjYXQgPiBkdW1wZGlyLyVmIjwvdXNlcmlucHV0 PgorPC9zY3JlZW4+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIHVzZSBwaXBlLWNvbW1h bmQgdG8gZHVtcCBhIGRhdGFiYXNlIGludG8gYSBkaXJlY3RvcnktZm9ybWF0IGFyY2hpdmUKKyAg IGluIHBhcmFsbGVsIHdpdGggNSB3b3JrZXIgam9icyAodGhlIGRpcmVjdG9yeSA8bGl0ZXJhbD5k dW1wZGlyPC9saXRlcmFsPiBuZWVkcyB0byBleGlzdAorICAgYmVmb3JlIHJ1bm5pbmcgdGhlIGNv bW1hbmQpLgorCis8c2NyZWVuPgorPHByb21wdD4kPC9wcm9tcHQ+IDx1c2VyaW5wdXQ+cGdfZHVt cCAtRmQgbXlkYiAtaiA1IC0tcGlwZS1jb21tYW5kPSJjYXQgPiBkdW1wZGlyLyVmIjwvdXNlcmlu cHV0PgorPC9zY3JlZW4+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIHVzZSBwaXBlLWNv bW1hbmQgdG8gY29tcHJlc3MgYW5kIGR1bXAgYSBkYXRhYmFzZSBpbnRvIGEKKyAgIGRpcmVjdG9y eS1mb3JtYXQgYXJjaGl2ZSAodGhlIGRpcmVjdG9yeSA8bGl0ZXJhbD5kdW1wZGlyPC9saXRlcmFs PiBuZWVkcyB0bworICAgZXhpc3QgYmVmb3JlIHJ1bm5pbmcgdGhlIGNvbW1hbmQpLgorCis8c2Ny ZWVuPgorPHByb21wdD4kPC9wcm9tcHQ+IDx1c2VyaW5wdXQ+cGdfZHVtcCAtRmQgbXlkYiAtLXBp cGUtY29tbWFuZD0iZ3ppcCA+IGR1bXBkaXIvJWYuZ3oiPC91c2VyaW5wdXQ+Cis8L3NjcmVlbj4K KyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgVG8gcmVsb2FkIGFuIGFyY2hpdmUgZmlsZSBpbnRv IGEgKGZyZXNobHkgY3JlYXRlZCkgZGF0YWJhc2UgbmFtZWQKICAgIDxsaXRlcmFsPm5ld2RiPC9s aXRlcmFsPjoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfcmVzdG9yZS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3JlLnNnbWwKaW5kZXggMmMyOTViYmY4ZGMuLmMwYWI3 YzE2ZDcxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbApAQCAtOTYsNyArOTYsMTAgQEAgUG9z dGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICAgICAgPHBhcmE+CiAgICAgICAgU3BlY2lmaWVzIHRo ZSBsb2NhdGlvbiBvZiB0aGUgYXJjaGl2ZSBmaWxlIChvciBkaXJlY3RvcnksIGZvciBhCiAgICAg ICAgZGlyZWN0b3J5LWZvcm1hdCBhcmNoaXZlKSB0byBiZSByZXN0b3JlZC4KLSAgICAgICBJZiBu b3Qgc3BlY2lmaWVkLCB0aGUgc3RhbmRhcmQgaW5wdXQgaXMgdXNlZC4KKyAgICAgICBUaGlzIG9w dGlvbiBhbmQgPG9wdGlvbj4tLXBpcGUtY29tbWFuZDwvb3B0aW9uPiBjYW4ndCBiZSBzZXQKKyAg ICAgICBhdCB0aGUgc2FtZSB0aW1lLgorICAgICAgIElmIG5laXRoZXIgdGhpcyBvcHRpb24gbm9y IDxvcHRpb24+LS1waXBlLWNvbW1hbmQ8L29wdGlvbj4gaXMgc3BlY2lmaWVkLAorICAgICAgIHRo ZSBzdGFuZGFyZCBpbnB1dCBpcyB1c2VkLgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtODMwLDYgKzgzMywzMiBAQCBQb3N0Z3JlU1FM IGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5Pgog CisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48b3B0aW9uPi0tcGlwZS1jb21tYW5k PC9vcHRpb24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAg ICBUaGlzIG9wdGlvbiBpcyBvbmx5IHN1cHBvcnRlZCB3aXRoIHRoZSBkaXJlY3Rvcnkgb3V0cHV0 CisgICAgICAgIGZvcm1hdC4gSXQgY2FuIGJlIHVzZWQgdG8gcmVhZCBmcm9tIG11bHRpcGxlIHN0 cmVhbXMgd2hpY2gKKyAgICAgICAgb3RoZXJ3aXNlIHdvdWxkIG5vdCBiZSBwb3NzaWJsZSB3aXRo IHRoZSBkaXJlY3RvcnkgbW9kZS4KKyAgICAgICAgRm9yIGVhY2ggc3RyZWFtLCBpdCBzdGFydHMg YSBwcm9jZXNzIHdoaWNoIHJ1bnMgdGhlCisgICAgICAgIHNwZWNpZmllZCBjb21tYW5kIGFuZCBw aXBlcyBpdHMgb3V0cHV0IHRvIHRoZSBwZ19yZXN0b3JlIHByb2Nlc3MuCisgICAgICAgIFRoaXMg b3B0aW9uIGlzIG5vdCB2YWxpZCBpZiA8b3B0aW9uPmZpbGVuYW1lPC9vcHRpb24+IGlzIGFsc28g c3BlY2lmaWVkLgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIHBp cGUtY29tbWFuZCBjYW4gYmUgdXNlZCB0byBwZXJmb3JtIG9wZXJhdGlvbnMgbGlrZQorICAgICAg ICBkZWNvbXByZXNzIHVzaW5nIGEgY3VzdG9tIGFsZ29yaXRobSwgZmlsdGVyLCBvciByZWFkIGZy b20KKyAgICAgICAgYSBjbG91ZCBzdG9yYWdlLiBXaGVuIHJlYWRpbmcgZnJvbSB0aGUgcGdfZHVt cCBvdXRwdXQsCisgICAgICAgIHRoZSB1c2VyIHdvdWxkIG5lZWQgYSB3YXkgdG8gcmVhZCB0aGUg Y29ycmVjdCBmaWxlIGluIGVhY2gKKyAgICAgICAgc3RyZWFtLiBUbyBoYW5kbGUgdGhhdCwgdGhl IHBpcGUgY29tbWFuZCBzdXBwb3J0cyBhIGZvcm1hdAorICAgICAgICBzcGVjaWZpZXIgJWYuIEFu ZCBhbGwgdGhlIGluc3RhbmNlcyBvZiAlZiBpbiB0aGUgY29tbWFuZCBzdHJpbmcKKyAgICAgICAg d2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGZpbGUgbmFtZSB3aGljaAor ICAgICAgICB3b3VsZCBoYXZlIGJlZW4gdXNlZCBpbiB0aGUgZGlyZWN0b3J5IG1vZGUgd2l0aCA8 b3B0aW9uPmZpbGVuYW1lPC9vcHRpb24+LgorICAgICAgICBUaGlzIGlzIHNhbWUgYXMgdGhlIDxv cHRpb24+LS1waXBlLWNvbW1hbmQ8L29wdGlvbj4gb2YgcGctZHVtcC4KKyAgICAgICAgU2VlIDx4 cmVmIGxpbmtlbmQ9ImFwcC1wZ3Jlc3RvcmUtZXhhbXBsZXMiLz4gYmVsb3cuCisgICAgICAgPC9w YXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZh cmxpc3RlbnRyeT4KICAgICAgICA8dGVybT48b3B0aW9uPi0tc2VjdGlvbj08cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+c2VjdGlvbm5hbWU8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVy bT4KICAgICAgICA8bGlzdGl0ZW0+CkBAIC0xMjM0LDYgKzEyNjMsNDMgQEAgQ1JFQVRFIERBVEFC QVNFIGZvbyBXSVRIIFRFTVBMQVRFIHRlbXBsYXRlMDsKIDxwcm9tcHQ+JDwvcHJvbXB0PiA8dXNl cmlucHV0PnBnX3Jlc3RvcmUgLUwgZGIubGlzdCBkYi5kdW1wPC91c2VyaW5wdXQ+CiA8L3NjcmVl bj48L3BhcmE+CiAKKyAgPHBhcmE+CisgICBUbyB1c2UgcGdfcmVzdG9yZSB3aXRoIHBpcGUtY29t bWFuZCB0byByZWNyZWF0ZSBmcm9tIGEgZHVtcCBpbgorICAgZGlyZWN0b3J5LWFyY2hpdmUgZm9y bWF0LiBUaGUgZGF0YWJhc2Ugc2hvdWxkIG5vdCBleGlzdCBiZWZvcmVoYW5kLgorICAgQXNzdW1l IGluIHRoaXMgZXhhbXBsZSB0aGF0IHRoZSBkdW1wIGluIGRpcmVjdG9yeS1hcmNoaXZlIGZvcm1h dCBpcworICAgc3RvcmVkIGluIDxsaXRlcmFsPmR1bXBkaXI8L2xpdGVyYWw+LgorCis8c2NyZWVu PgorPHByb21wdD4kPC9wcm9tcHQ+IDx1c2VyaW5wdXQ+cGdfcmVzdG9yZSAtQyAtRmQgLWQgcG9z dGdyZXMgLS1waXBlLWNvbW1uYWQ9ImNhdCBkdW1wZGlyLyVmIjwvdXNlcmlucHV0PgorPC9zY3Jl ZW4+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIHVzZSBwZ19yZXN0b3JlIHdpdGggcGlw ZS1jb21tYW5kIHRvIGZpcnN0IGRlY29tcHJlc3MgYW5kIHRoZW4KKyAgIHJlY3JlYXRlIGZyb20g YSBkdW1wIGluIGRpcmVjdG9yeS1hcmNoaXZlIGZvcm1hdC4gVGhlIGRhdGFiYXNlCisgICBzaG91 bGQgbm90IGV4aXN0IGJlZm9yZWhhbmQuCisgICBBc3N1bWUgaW4gdGhpcyBleGFtcGxlIHRoYXQg dGhlIGR1bXAgaW4gZGlyZWN0b3J5LWFyY2hpdmUgZm9ybWF0IGlzCisgICBzdG9yZWQgaW4gPGxp dGVyYWw+ZHVtcGRpcjwvbGl0ZXJhbD4uIEFuZCBhbGwgZmlsZXMgYXJlCisgICA8bGl0ZXJhbD5n emlwPC9saXRlcmFsPiBjb21wcmVzc2VkLgorCis8c2NyZWVuPgorPHByb21wdD4kPC9wcm9tcHQ+ IDx1c2VyaW5wdXQ+cGdfcmVzdG9yZSAtQyAtRmQgLWQgcG9zdGdyZXMgLS1waXBlLWNvbW1uYWQ9 ImNhdCBkdW1wZGlyLyVmLmd6IHwgZ3VuemlwIjwvdXNlcmlucHV0PgorPC9zY3JlZW4+CisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIFRvIHVzZSBwaXBlLWNvbW1hbmQgYWxvbmcgd2l0aCA8b3B0 aW9uPi1MPC9vcHRpb24+IHRvIHJlY3JlYXRlIG9ubHkKKyAgIHNlbGVjdGQgaXRlbXMgZnJvbSBh IGR1bXAgaW4gdGhlIGRpcmVjdG9yeS1hcmNoaXZlIGZvcm1hdC4KKyAgIFRoZSBkYXRhYmFzZSBz aG91bGQgbm90IGV4aXN0IGJlZm9yZWhhbmQuCisgICBBc3N1bWUgaW4gdGhpcyBleGFtcGxlIHRo YXQgdGhlIGR1bXAgaW4gZGlyZWN0b3J5LWFyY2hpdmUgZm9ybWF0IGlzCisgICBzdG9yZWQgaW4g ZHVtcGRpci4KKyAgIFRoZSA8bGl0ZXJhbD5kYi5saXN0PC9saXRlcmFsPiBmaWxlIGlzIHRoZSBz YW1lIGFzIG9uZSB1c2VkIGluIHRoZSBwcmV2aW91cyBleGFtcGxlIHdpdGggPG9wdGlvbj4tTDwv b3B0aW9uPgorCis8c2NyZWVuPgorPHByb21wdD4kPC9wcm9tcHQ+IDx1c2VyaW5wdXQ+cGdfcmVz dG9yZSAtQyAtRmQgLWQgcG9zdGdyZXMgLS1waXBlLWNvbW1uYWQ9ImNhdCBkdW1wZGlyLyVmIiAt TCBkYi5saXN0PC91c2VyaW5wdXQ+Cis8L3NjcmVlbj4KKyAgPC9wYXJhPgorCiAgPC9yZWZzZWN0 MT4KIAogIDxyZWZzZWN0MT4KLS0gCjIuNTIuMC40NTcuZzZiNTQ5MWRlNDMtZ29vZwoK --0000000000009797790648e21096 Content-Type: application/x-patch; name="v7-0001-Add-pipe-command-support-for-directory-mode-of-pg.patch" Content-Disposition: attachment; filename="v7-0001-Add-pipe-command-support-for-directory-mode-of-pg.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mknsce9x0 RnJvbSA4NmI0OTM5YjFlZDIwNThkYTA3ODI5ZmJjN2M3MzY2NzYwZGM1ZjYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXRpbiBNb3RpYW5pIDxuaXRpbm1vdGlhbmlAZ29vZ2xlLmNv bT4KRGF0ZTogVHVlLCAxMSBGZWIgMjAyNSAwODozMTowMiArMDAwMApTdWJqZWN0OiBbUEFUQ0gg djcgMS81XSBBZGQgcGlwZS1jb21tYW5kIHN1cHBvcnQgZm9yIGRpcmVjdG9yeSBtb2RlIG9mIHBn X2R1bXAKCiogV2UgYWRkIGEgbmV3IGZsYWcgLS1waXBlLWNvbW1hbmQgd2hpY2ggY2FuIGJlIHVz ZWQgaW4gZGlyZWN0b3J5CiAgbW9kZS4gVGhpcyBhbGxvd3MgdXMgdG8gc3VwcG9ydCBtdWx0aXBs ZSBzdHJlYW1zIGFuZCB3ZSBjYW4KICBkbyBwb3N0IHByb2Nlc3NpbmcgbGlrZSBjb21wcmVzc2lv biwgZmlsdGVyaW5nIGV0Yy4gVGhpcyBpcwogIGN1cnJlbnRseSBub3QgcG9zc2libGUgd2l0aCBk aXJlY3RvcnktYXJjaGl2ZSBmb3JtYXQuCiogQ3VycmVudGx5IHRoaXMgZmxhZyBpcyBvbmx5IHN1 cHBvcnRlZCB3aXRoIGNvbXByZXNzaW9uIG5vbmUKICBhbmQgYXJjaGl2ZSBmb3JtYXQgZGlyZWN0 b3J5LgoqIFRoaXMgZmxhZyBjYW4ndCBiZSB1c2VkIHdpdGggdGhlIGZsYWcgLS1maWxlLiBPbmx5 IG9uZSBvZiB0aGUKICB0d28gZmxhZ3MgY2FuIGJlIHVzZWQgYXQgYSB0aW1lLgoqIFdlIHJldXNl IHRoZSBmaWxlbmFtZSBmaWVsZCBmb3IgdGhlIC0tcGlwZS1jb21tYW5kIGFsc28uIEFuZCBhZGQg YQogIGJvb2wgdG8gc3BlY2lmeSB0aGF0IHRoZSBmaWVsZCB3aWxsIGJlIHVzZWQgYXMgYSBwaXBl IGNvbW1hbmQuCiogTW9zdCBvZiB0aGUgY29kZSByZW1haW5zIGFzIGl0IGlzLiBUaGUgY29yZSBj aGFuZ2UgaXMgdGhhdAogIGluIGNhc2Ugb2YgLS1waXBlLWNvbW1hbmQsIGluc3RlYWQgb2YgZm9w ZW4gd2UgZG8gcG9wZW4uCiogVGhlIHVzZXIgd291bGQgbmVlZCBhIHdheSB0byBzdG9yZSB0aGUg cG9zdC1wcm9jZXNzaW5nIG91dHB1dAogIGluIGZpbGVzLiBGb3IgdGhhdCB3ZSBzdXBwb3J0IHRo ZSBzYW1lIGZvcm1hdCBhcyB0aGUgZGlyZWN0b3J5CiAgbW9kZSBjdXJyZW50bHkgZG9lcyB3aXRo IHRoZSBmbGFnIC0tZmlsZS4gV2UgYWxsb3cgdGhlIHVzZXIKICB0byBhZGQgYSBmb3JtYXQgc3Bl Y2lmaWVyICVmIHRvIHRoZSAtLXBpcGUtY29tbWFuZC4gQW5kIGZvciBlYWNoCiAgc3RyZWFtLCB0 aGUgZm9ybWF0IHNwZWNpZmllciBpcyByZXBsYWNlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nCiAg ZmlsZSBuYW1lLiBUaGlzIGZpbGUgbmFtZSBpcyB0aGUgc2FtZSBhcyBpdCB3b3VsZCBoYXZlIGJl ZW4gaWYKICB0aGUgZmxhZyAtLWZpbGUgaGFkIGJlZW4gdXNlZC4KKiBUbyBlbmFibGUgdGhlIGFi b3ZlLCB0aGVyZSBhcmUgYSBmZXcgcGxhY2VzIGluIHRoZSBjb2RlIHdoZXJlCiAgd2UgY2hhbmdl IHRoZSBmaWxlIG5hbWUgY3JlYXRpb24gbG9naWMuIEN1cnJlbnRseSB0aGUgZmlsZSBuYW1lCiAg aXMgYXBwZW5kZWQgdG8gdGhlIGRpcmVjdG9yeSBuYW1lIHdoaWNoIGlzIHByb3ZpZGVkIHdpdGgg LS1maWxlIGZsYWcuCiAgSW4gY2FzZSBvZiAtLXBpcGUtY29tbWFuZCwgd2UgaW5zdGVhZCByZXBs YWNlICVmIHdpdGggdGhlIGZpbGUgbmFtZS4KICBUaGlzIGNoYW5nZSBpcyBtYWRlIGZvciB0aGUg Y29tbW9uIHVzZSBjYXNlIGFuZCBzZXBhcmF0ZWx5IGZvcgogIGJsb2IgZmlsZXMuCiogVGhlcmUg aXMgYW4gb3BlbiBxdWVzdGlvbiBvbiB3aGF0IG1vZGUgdG8gdXNlIGluIGNhc2Ugb2YgbGFyZ2Ug b2JqZWN0cwogIFRPQyBmaWxlLiBDdXJyZW50bHkgdGhlIGNvZGUgdXNlcyAiYWIiIGJ1dCB0aGF0 IHdvbid0IHdvcmsgZm9yIHBvcGVuLgogIFdlIGhhdmUgcHJvcG9zZWQgYSBmZXcgb3B0aW9ucyBp biB0aGUgY29tbWVudHMgcmVnYXJkaW5nIHRoaXMuIEZvciB0aGUKICB0aW1lIGJlaW5nIHdlIGFy ZSB1c2luZyBtb2RlIFBHX0JJTkFSWV9XIGZvciB0aGUgcGlwZSB1c2UgY2FzZS4KLS0tCiBzcmMv YmluL3BnX2R1bXAvY29tcHJlc3NfZ3ppcC5jICAgICAgIHwgICA5ICsrLQogc3JjL2Jpbi9wZ19k dW1wL2NvbXByZXNzX2d6aXAuaCAgICAgICB8ICAgMyArLQogc3JjL2Jpbi9wZ19kdW1wL2NvbXBy ZXNzX2lvLmMgICAgICAgICB8ICAyNyArKysrKy0tCiBzcmMvYmluL3BnX2R1bXAvY29tcHJlc3Nf aW8uaCAgICAgICAgIHwgIDExICsrLQogc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2x6NC5jICAg ICAgICB8ICAxMSArKy0KIHNyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19sejQuaCAgICAgICAgfCAg IDMgKy0KIHNyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19ub25lLmMgICAgICAgfCAgMjYgKysrKysr LQogc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX25vbmUuaCAgICAgICB8ICAgMyArLQogc3JjL2Jp bi9wZ19kdW1wL2NvbXByZXNzX3pzdGQuYyAgICAgICB8ICAxMCArKy0KIHNyYy9iaW4vcGdfZHVt cC9jb21wcmVzc196c3RkLmggICAgICAgfCAgIDMgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXAuaCAgICAgICAgICAgfCAgIDUgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2 ZXIuYyAgfCAgMjIgKysrLS0tCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmgg IHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGlyZWN0b3J5LmMgfCAxMDMgKysr KysrKysrKysrKysrKysrKysrLS0tLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAg ICAgICAgfCAgMzcgKysrKysrKystCiBzcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jICAgICAg ICAgIHwgICAyICstCiAxNiBmaWxlcyBjaGFuZ2VkLCAyMjEgaW5zZXJ0aW9ucygrKSwgNTYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2d6aXAuYyBi L3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19nemlwLmMKaW5kZXggNDFhM2QwNTlmOTguLjc1YmVm Mjk1NjJlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3NfZ3ppcC5jCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19nemlwLmMKQEAgLTQxNyw4ICs0MTcsMTIgQEAgR3pp cF9vcGVuX3dyaXRlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKm1vZGUsIENvbXByZXNz RmlsZUhhbmRsZSAqQ0ZIKQogCiB2b2lkCiBJbml0Q29tcHJlc3NGaWxlSGFuZGxlR3ppcChDb21w cmVzc0ZpbGVIYW5kbGUgKkNGSCwKLQkJCQkJCSAgIGNvbnN0IHBnX2NvbXByZXNzX3NwZWNpZmlj YXRpb24gY29tcHJlc3Npb25fc3BlYykKKwkJCQkJCSAgIGNvbnN0IHBnX2NvbXByZXNzX3NwZWNp ZmljYXRpb24gY29tcHJlc3Npb25fc3BlYywKKwkJCQkJCSAgIGJvb2wgcGF0aF9pc19waXBlX2Nv bW1hbmQpCiB7CisJaWYgKHBhdGhfaXNfcGlwZV9jb21tYW5kKQorCQlwZ19mYXRhbCgiY1BpcGUg Y29tbWFuZCBub3Qgc3VwcG9ydGVkIGZvciBHemlwIik7CisKIAlDRkgtPm9wZW5fZnVuYyA9IEd6 aXBfb3BlbjsKIAlDRkgtPm9wZW5fd3JpdGVfZnVuYyA9IEd6aXBfb3Blbl93cml0ZTsKIAlDRkgt PnJlYWRfZnVuYyA9IEd6aXBfcmVhZDsKQEAgLTQ0Myw3ICs0NDcsOCBAQCBJbml0Q29tcHJlc3Nv ckd6aXAoQ29tcHJlc3NvclN0YXRlICpjcywKIAogdm9pZAogSW5pdENvbXByZXNzRmlsZUhhbmRs ZUd6aXAoQ29tcHJlc3NGaWxlSGFuZGxlICpDRkgsCi0JCQkJCQkgICBjb25zdCBwZ19jb21wcmVz c19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMpCisJCQkJCQkgICBjb25zdCBwZ19jb21w cmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMsCisJCQkJCQkgICBib29sIHBhdGhf aXNfcGlwZV9jb21tYW5kKQogewogCXBnX2ZhdGFsKCJ0aGlzIGJ1aWxkIGRvZXMgbm90IHN1cHBv cnQgY29tcHJlc3Npb24gd2l0aCAlcyIsICJnemlwIik7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvY29tcHJlc3NfZ3ppcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2d6aXAu aAppbmRleCBhZjFhMmEzNDQ1ZS4uZjc3YzVjODZjNTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9jb21wcmVzc19nemlwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2d6aXAu aApAQCAtMTksNiArMTksNyBAQAogZXh0ZXJuIHZvaWQgSW5pdENvbXByZXNzb3JHemlwKENvbXBy ZXNzb3JTdGF0ZSAqY3MsCiAJCQkJCQkJICAgY29uc3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlv biBjb21wcmVzc2lvbl9zcGVjKTsKIGV4dGVybiB2b2lkIEluaXRDb21wcmVzc0ZpbGVIYW5kbGVH emlwKENvbXByZXNzRmlsZUhhbmRsZSAqQ0ZILAotCQkJCQkJCQkJICAgY29uc3QgcGdfY29tcHJl c3Nfc3BlY2lmaWNhdGlvbiBjb21wcmVzc2lvbl9zcGVjKTsKKwkJCQkJCQkJCSAgIGNvbnN0IHBn X2NvbXByZXNzX3NwZWNpZmljYXRpb24gY29tcHJlc3Npb25fc3BlYywKKwkJCQkJCQkJCSAgIGJv b2wgcGF0aF9pc19waXBlX2NvbW1hbmQpOwogCiAjZW5kaWYJCQkJCQkJLyogX0NPTVBSRVNTX0da SVBfSF8gKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19pby5jIGIvc3Jj L2Jpbi9wZ19kdW1wL2NvbXByZXNzX2lvLmMKaW5kZXggYWY0N2VmODg4MzkuLjVkMDlkN2JmNDU4 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3NfaW8uYworKysgYi9zcmMvYmlu L3BnX2R1bXAvY29tcHJlc3NfaW8uYwpAQCAtMTkxLDIwICsxOTEsMzAgQEAgZnJlZV9rZWVwX2Vy cm5vKHZvaWQgKnApCiAgKiBJbml0aWFsaXplIGEgY29tcHJlc3MgZmlsZSBoYW5kbGUgZm9yIHRo ZSBzcGVjaWZpZWQgY29tcHJlc3Npb24gYWxnb3JpdGhtLgogICovCiBDb21wcmVzc0ZpbGVIYW5k bGUgKgotSW5pdENvbXByZXNzRmlsZUhhbmRsZShjb25zdCBwZ19jb21wcmVzc19zcGVjaWZpY2F0 aW9uIGNvbXByZXNzaW9uX3NwZWMpCitJbml0Q29tcHJlc3NGaWxlSGFuZGxlKGNvbnN0IHBnX2Nv bXByZXNzX3NwZWNpZmljYXRpb24gY29tcHJlc3Npb25fc3BlYywKKwkJCQkJICAgYm9vbCBwYXRo X2lzX3BpcGVfY29tbWFuZCkKIHsKIAlDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSDsKIAorCiAJQ0ZI ID0gcGdfbWFsbG9jMChzaXplb2YoQ29tcHJlc3NGaWxlSGFuZGxlKSk7CiAKLQlpZiAoY29tcHJl c3Npb25fc3BlYy5hbGdvcml0aG0gPT0gUEdfQ09NUFJFU1NJT05fTk9ORSkKLQkJSW5pdENvbXBy ZXNzRmlsZUhhbmRsZU5vbmUoQ0ZILCBjb21wcmVzc2lvbl9zcGVjKTsKKwkvKgorCSAqIEFsd2F5 cyBzZXQgdG8gbm9uLWNvbXByZXNzZWQgd2hlbiBwYXRoX2lzX3BpcGVfY29tbWFuZCBhc3N1bWlu ZyB0aGF0CisJICogZXh0ZXJuYWwgY29tcHJlc3NvciBhcyBwYXJ0IG9mIHBpcGUgaXMgbW9yZSBl ZmZpY2llbnQuIENhbiByZXZpZXcgaW4KKwkgKiB0aGUgZnV0dXJlLgorCSAqLworCWlmIChwYXRo X2lzX3BpcGVfY29tbWFuZCkKKwkJSW5pdENvbXByZXNzRmlsZUhhbmRsZU5vbmUoQ0ZILCBjb21w cmVzc2lvbl9zcGVjLCBwYXRoX2lzX3BpcGVfY29tbWFuZCk7CisKKwllbHNlIGlmIChjb21wcmVz c2lvbl9zcGVjLmFsZ29yaXRobSA9PSBQR19DT01QUkVTU0lPTl9OT05FKQorCQlJbml0Q29tcHJl c3NGaWxlSGFuZGxlTm9uZShDRkgsIGNvbXByZXNzaW9uX3NwZWMsIHBhdGhfaXNfcGlwZV9jb21t YW5kKTsKIAllbHNlIGlmIChjb21wcmVzc2lvbl9zcGVjLmFsZ29yaXRobSA9PSBQR19DT01QUkVT U0lPTl9HWklQKQotCQlJbml0Q29tcHJlc3NGaWxlSGFuZGxlR3ppcChDRkgsIGNvbXByZXNzaW9u X3NwZWMpOworCQlJbml0Q29tcHJlc3NGaWxlSGFuZGxlR3ppcChDRkgsIGNvbXByZXNzaW9uX3Nw ZWMsIHBhdGhfaXNfcGlwZV9jb21tYW5kKTsKIAllbHNlIGlmIChjb21wcmVzc2lvbl9zcGVjLmFs Z29yaXRobSA9PSBQR19DT01QUkVTU0lPTl9MWjQpCi0JCUluaXRDb21wcmVzc0ZpbGVIYW5kbGVM WjQoQ0ZILCBjb21wcmVzc2lvbl9zcGVjKTsKKwkJSW5pdENvbXByZXNzRmlsZUhhbmRsZUxaNChD RkgsIGNvbXByZXNzaW9uX3NwZWMsIHBhdGhfaXNfcGlwZV9jb21tYW5kKTsKIAllbHNlIGlmIChj b21wcmVzc2lvbl9zcGVjLmFsZ29yaXRobSA9PSBQR19DT01QUkVTU0lPTl9aU1REKQotCQlJbml0 Q29tcHJlc3NGaWxlSGFuZGxlWnN0ZChDRkgsIGNvbXByZXNzaW9uX3NwZWMpOworCQlJbml0Q29t cHJlc3NGaWxlSGFuZGxlWnN0ZChDRkgsIGNvbXByZXNzaW9uX3NwZWMsIHBhdGhfaXNfcGlwZV9j b21tYW5kKTsKIAogCXJldHVybiBDRkg7CiB9CkBAIC0yMzcsNyArMjQ3LDggQEAgY2hlY2tfY29t cHJlc3NlZF9maWxlKGNvbnN0IGNoYXIgKnBhdGgsIGNoYXIgKipmbmFtZSwgY2hhciAqZXh0KQog ICogT24gZmFpbHVyZSwgcmV0dXJuIE5VTEwgd2l0aCBhbiBlcnJvciBjb2RlIGluIGVycm5vLgog ICovCiBDb21wcmVzc0ZpbGVIYW5kbGUgKgotSW5pdERpc2NvdmVyQ29tcHJlc3NGaWxlSGFuZGxl KGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKm1vZGUpCitJbml0RGlzY292ZXJDb21wcmVz c0ZpbGVIYW5kbGUoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqbW9kZSwKKwkJCQkJCQkg ICBib29sIHBhdGhfaXNfcGlwZV9jb21tYW5kKQogewogCUNvbXByZXNzRmlsZUhhbmRsZSAqQ0ZI ID0gTlVMTDsKIAlzdHJ1Y3Qgc3RhdCBzdDsKQEAgLTI2OCw3ICsyNzksNyBAQCBJbml0RGlzY292 ZXJDb21wcmVzc0ZpbGVIYW5kbGUoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqbW9kZSkK IAkJCWNvbXByZXNzaW9uX3NwZWMuYWxnb3JpdGhtID0gUEdfQ09NUFJFU1NJT05fWlNURDsKIAl9 CiAKLQlDRkggPSBJbml0Q29tcHJlc3NGaWxlSGFuZGxlKGNvbXByZXNzaW9uX3NwZWMpOworCUNG SCA9IEluaXRDb21wcmVzc0ZpbGVIYW5kbGUoY29tcHJlc3Npb25fc3BlYywgcGF0aF9pc19waXBl X2NvbW1hbmQpOwogCWVycm5vID0gMDsKIAlpZiAoIUNGSC0+b3Blbl9mdW5jKGZuYW1lLCAtMSwg bW9kZSwgQ0ZIKSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3NfaW8u aCBiL3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19pby5oCmluZGV4IGVkN2IxNGYwOTYzLi5iZDBm YzI2MzRkYyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2lvLmgKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2lvLmgKQEAgLTE4Niw2ICsxODYsMTEgQEAgc3RydWN0 IENvbXByZXNzRmlsZUhhbmRsZQogCSAqLwogCXBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24gY29t cHJlc3Npb25fc3BlYzsKIAorCS8qCisJICogQ29tcHJlc3Npb24gc3BlY2lmaWNhdGlvbiBmb3Ig dGhpcyBmaWxlIGhhbmRsZS4KKwkgKi8KKwlib29sCQlwYXRoX2lzX3BpcGVfY29tbWFuZDsKKwog CS8qCiAJICogUHJpdmF0ZSBkYXRhIHRvIGJlIHVzZWQgYnkgdGhlIGNvbXByZXNzb3IuCiAJICov CkBAIC0xOTUsNyArMjAwLDggQEAgc3RydWN0IENvbXByZXNzRmlsZUhhbmRsZQogLyoKICAqIElu aXRpYWxpemUgYSBjb21wcmVzcyBmaWxlIGhhbmRsZSB3aXRoIHRoZSByZXF1ZXN0ZWQgY29tcHJl c3Npb24uCiAgKi8KLWV4dGVybiBDb21wcmVzc0ZpbGVIYW5kbGUgKkluaXRDb21wcmVzc0ZpbGVI YW5kbGUoY29uc3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlvbiBjb21wcmVzc2lvbl9zcGVjKTsK K2V4dGVybiBDb21wcmVzc0ZpbGVIYW5kbGUgKkluaXRDb21wcmVzc0ZpbGVIYW5kbGUoY29uc3Qg cGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlvbiBjb21wcmVzc2lvbl9zcGVjLAorCQkJCQkJCQkJCQkJ ICBib29sIHBhdGhfaXNfcGlwZV9jb21tYW5kKTsKIAogLyoKICAqIEluaXRpYWxpemUgYSBjb21w cmVzcyBmaWxlIHN0cmVhbS4gSW5mZXIgdGhlIGNvbXByZXNzaW9uIGFsZ29yaXRobQpAQCAtMjAz LDYgKzIwOSw3IEBAIGV4dGVybiBDb21wcmVzc0ZpbGVIYW5kbGUgKkluaXRDb21wcmVzc0ZpbGVI YW5kbGUoY29uc3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlvCiAgKiBzdWZmaXhlcyBpbiAncGF0 aCcuCiAgKi8KIGV4dGVybiBDb21wcmVzc0ZpbGVIYW5kbGUgKkluaXREaXNjb3ZlckNvbXByZXNz RmlsZUhhbmRsZShjb25zdCBjaGFyICpwYXRoLAotCQkJCQkJCQkJCQkJCQkgIGNvbnN0IGNoYXIg Km1vZGUpOworCQkJCQkJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKm1vZGUsCisJCQkJCQkJCQkJCQkJ CSAgYm9vbCBwYXRoX2lzX3BpcGVfY29tbWFuZCk7CiBleHRlcm4gYm9vbCBFbmRDb21wcmVzc0Zp bGVIYW5kbGUoQ29tcHJlc3NGaWxlSGFuZGxlICpDRkgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvY29tcHJlc3NfbHo0LmMgYi9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3Nf bHo0LmMKaW5kZXggMjBhODc0MWQzY2EuLmRjZTZjYzU1OTEwIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvY29tcHJlc3NfbHo0LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2x6 NC5jCkBAIC03MzksMTAgKzczOSwxNCBAQCBMWjRTdHJlYW1fb3Blbl93cml0ZShjb25zdCBjaGFy ICpwYXRoLCBjb25zdCBjaGFyICptb2RlLCBDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSAogICovCiB2 b2lkCiBJbml0Q29tcHJlc3NGaWxlSGFuZGxlTFo0KENvbXByZXNzRmlsZUhhbmRsZSAqQ0ZILAot CQkJCQkJICBjb25zdCBwZ19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMp CisJCQkJCQkgIGNvbnN0IHBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24gY29tcHJlc3Npb25fc3Bl YywKKwkJCQkJCSAgYm9vbCBwYXRoX2lzX3BpcGVfY29tbWFuZCkKIHsKIAlMWjRTdGF0ZSAgICpz dGF0ZTsKIAorCWlmIChwYXRoX2lzX3BpcGVfY29tbWFuZCkKKwkJcGdfZmF0YWwoIlBpcGUgY29t bWFuZCBub3Qgc3VwcG9ydGVkIGZvciBMWjQiKTsKKwogCUNGSC0+b3Blbl9mdW5jID0gTFo0U3Ry ZWFtX29wZW47CiAJQ0ZILT5vcGVuX3dyaXRlX2Z1bmMgPSBMWjRTdHJlYW1fb3Blbl93cml0ZTsK IAlDRkgtPnJlYWRfZnVuYyA9IExaNFN0cmVhbV9yZWFkOwpAQCAtNzU4LDYgKzc2Miw4IEBAIElu aXRDb21wcmVzc0ZpbGVIYW5kbGVMWjQoQ29tcHJlc3NGaWxlSGFuZGxlICpDRkgsCiAJaWYgKENG SC0+Y29tcHJlc3Npb25fc3BlYy5sZXZlbCA+PSAwKQogCQlzdGF0ZS0+cHJlZnMuY29tcHJlc3Np b25MZXZlbCA9IENGSC0+Y29tcHJlc3Npb25fc3BlYy5sZXZlbDsKIAorCUNGSC0+cGF0aF9pc19w aXBlX2NvbW1hbmQgPSBwYXRoX2lzX3BpcGVfY29tbWFuZDsKKwogCUNGSC0+cHJpdmF0ZV9kYXRh ID0gc3RhdGU7CiB9CiAjZWxzZQkJCQkJCQkvKiBVU0VfTFo0ICovCkBAIC03NzAsNyArNzc2LDgg QEAgSW5pdENvbXByZXNzb3JMWjQoQ29tcHJlc3NvclN0YXRlICpjcywKIAogdm9pZAogSW5pdENv bXByZXNzRmlsZUhhbmRsZUxaNChDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSCwKLQkJCQkJCSAgY29u c3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlvbiBjb21wcmVzc2lvbl9zcGVjKQorCQkJCQkJICBj b25zdCBwZ19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMsCisJCQkJCQkg IGJvb2wgcGF0aF9pc19waXBlX2NvbW1hbmQpCiB7CiAJcGdfZmF0YWwoInRoaXMgYnVpbGQgZG9l cyBub3Qgc3VwcG9ydCBjb21wcmVzc2lvbiB3aXRoICVzIiwgIkxaNCIpOwogfQpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2x6NC5oIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbXBy ZXNzX2x6NC5oCmluZGV4IDczNjBhNDY5ZmMwLi40OTAxNDFlZThhMSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL2NvbXByZXNzX2x6NC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9jb21wcmVz c19sejQuaApAQCAtMTksNiArMTksNyBAQAogZXh0ZXJuIHZvaWQgSW5pdENvbXByZXNzb3JMWjQo Q29tcHJlc3NvclN0YXRlICpjcywKIAkJCQkJCQkgIGNvbnN0IHBnX2NvbXByZXNzX3NwZWNpZmlj YXRpb24gY29tcHJlc3Npb25fc3BlYyk7CiBleHRlcm4gdm9pZCBJbml0Q29tcHJlc3NGaWxlSGFu ZGxlTFo0KENvbXByZXNzRmlsZUhhbmRsZSAqQ0ZILAotCQkJCQkJCQkJICBjb25zdCBwZ19jb21w cmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMpOworCQkJCQkJCQkJICBjb25zdCBw Z19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMsCisJCQkJCQkJCQkgIGJv b2wgcGF0aF9pc19waXBlX2NvbW1hbmQpOwogCiAjZW5kaWYJCQkJCQkJLyogX0NPTVBSRVNTX0xa NF9IXyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX25vbmUuYyBiL3Ny Yy9iaW4vcGdfZHVtcC9jb21wcmVzc19ub25lLmMKaW5kZXggOTk5NzUxOWUzNTEuLjgwMjAzZGU2 ZGJjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3Nfbm9uZS5jCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC9jb21wcmVzc19ub25lLmMKQEAgLTIxMSw3ICsyMTEsMTAgQEAgY2xvc2Vf bm9uZShDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSCkKIAlpZiAoZnApCiAJewogCQllcnJubyA9IDA7 Ci0JCXJldCA9IGZjbG9zZShmcCk7CisJCWlmIChDRkgtPnBhdGhfaXNfcGlwZV9jb21tYW5kKQor CQkJcmV0ID0gcGNsb3NlKGZwKTsKKwkJZWxzZQorCQkJcmV0ID0gZmNsb3NlKGZwKTsKIAkJaWYg KHJldCAhPSAwKQogCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgY2xvc2UgZmlsZTogJW0iKTsK IAl9CkBAIC0yMzMsNyArMjM2LDEyIEBAIG9wZW5fbm9uZShjb25zdCBjaGFyICpwYXRoLCBpbnQg ZmQsIGNvbnN0IGNoYXIgKm1vZGUsIENvbXByZXNzRmlsZUhhbmRsZSAqQ0ZIKQogCWlmIChmZCA+ PSAwKQogCQlDRkgtPnByaXZhdGVfZGF0YSA9IGZkb3BlbihkdXAoZmQpLCBtb2RlKTsKIAllbHNl Ci0JCUNGSC0+cHJpdmF0ZV9kYXRhID0gZm9wZW4ocGF0aCwgbW9kZSk7CisJeworCQlpZiAoQ0ZI LT5wYXRoX2lzX3BpcGVfY29tbWFuZCkKKwkJCUNGSC0+cHJpdmF0ZV9kYXRhID0gcG9wZW4ocGF0 aCwgbW9kZSk7CisJCWVsc2UKKwkJCUNGSC0+cHJpdmF0ZV9kYXRhID0gZm9wZW4ocGF0aCwgbW9k ZSk7CisJfQogCiAJaWYgKENGSC0+cHJpdmF0ZV9kYXRhID09IE5VTEwpCiAJCXJldHVybiBmYWxz ZTsKQEAgLTI0Niw3ICsyNTQsMTQgQEAgb3Blbl93cml0ZV9ub25lKGNvbnN0IGNoYXIgKnBhdGgs IGNvbnN0IGNoYXIgKm1vZGUsIENvbXByZXNzRmlsZUhhbmRsZSAqQ0ZIKQogewogCUFzc2VydChD RkgtPnByaXZhdGVfZGF0YSA9PSBOVUxMKTsKIAotCUNGSC0+cHJpdmF0ZV9kYXRhID0gZm9wZW4o cGF0aCwgbW9kZSk7CisJcGdfbG9nX2RlYnVnKCJPcGVuaW5nICVzLCBwaXBlIGlzICVzIiwKKwkJ CQkgcGF0aCwgQ0ZILT5wYXRoX2lzX3BpcGVfY29tbWFuZCA/ICJ0cnVlIiA6ICJmYWxzZSIpOwor CisJaWYgKENGSC0+cGF0aF9pc19waXBlX2NvbW1hbmQpCisJCUNGSC0+cHJpdmF0ZV9kYXRhID0g cG9wZW4ocGF0aCwgbW9kZSk7CisJZWxzZQorCQlDRkgtPnByaXZhdGVfZGF0YSA9IGZvcGVuKHBh dGgsIG1vZGUpOworCiAJaWYgKENGSC0+cHJpdmF0ZV9kYXRhID09IE5VTEwpCiAJCXJldHVybiBm YWxzZTsKIApAQCAtMjU5LDcgKzI3NCw4IEBAIG9wZW5fd3JpdGVfbm9uZShjb25zdCBjaGFyICpw YXRoLCBjb25zdCBjaGFyICptb2RlLCBDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSCkKIAogdm9pZAog SW5pdENvbXByZXNzRmlsZUhhbmRsZU5vbmUoQ29tcHJlc3NGaWxlSGFuZGxlICpDRkgsCi0JCQkJ CQkgICBjb25zdCBwZ19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMpCisJ CQkJCQkgICBjb25zdCBwZ19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMs CisJCQkJCQkgICBib29sIHBhdGhfaXNfcGlwZV9jb21tYW5kKQogewogCUNGSC0+b3Blbl9mdW5j ID0gb3Blbl9ub25lOwogCUNGSC0+b3Blbl93cml0ZV9mdW5jID0gb3Blbl93cml0ZV9ub25lOwpA QCAtMjcxLDUgKzI4Nyw3IEBAIEluaXRDb21wcmVzc0ZpbGVIYW5kbGVOb25lKENvbXByZXNzRmls ZUhhbmRsZSAqQ0ZILAogCUNGSC0+ZW9mX2Z1bmMgPSBlb2Zfbm9uZTsKIAlDRkgtPmdldF9lcnJv cl9mdW5jID0gZ2V0X2Vycm9yX25vbmU7CiAKKwlDRkgtPnBhdGhfaXNfcGlwZV9jb21tYW5kID0g cGF0aF9pc19waXBlX2NvbW1hbmQ7CisKIAlDRkgtPnByaXZhdGVfZGF0YSA9IE5VTEw7CiB9CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3Nfbm9uZS5oIGIvc3JjL2Jpbi9wZ19k dW1wL2NvbXByZXNzX25vbmUuaAppbmRleCA1MTM0ZjAxMmVlOS4uZDg5OGEyZDQxMWMgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19ub25lLmgKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL2NvbXByZXNzX25vbmUuaApAQCAtMTksNiArMTksNyBAQAogZXh0ZXJuIHZvaWQgSW5pdENv bXByZXNzb3JOb25lKENvbXByZXNzb3JTdGF0ZSAqY3MsCiAJCQkJCQkJICAgY29uc3QgcGdfY29t cHJlc3Nfc3BlY2lmaWNhdGlvbiBjb21wcmVzc2lvbl9zcGVjKTsKIGV4dGVybiB2b2lkIEluaXRD b21wcmVzc0ZpbGVIYW5kbGVOb25lKENvbXByZXNzRmlsZUhhbmRsZSAqQ0ZILAotCQkJCQkJCQkJ ICAgY29uc3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlvbiBjb21wcmVzc2lvbl9zcGVjKTsKKwkJ CQkJCQkJCSAgIGNvbnN0IHBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24gY29tcHJlc3Npb25fc3Bl YywKKwkJCQkJCQkJCSAgIGJvb2wgcGF0aF9pc19waXBlX2NvbW1hbmQpOwogCiAjZW5kaWYJCQkJ CQkJLyogX0NPTVBSRVNTX05PTkVfSF8gKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9j b21wcmVzc196c3RkLmMgYi9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3NfenN0ZC5jCmluZGV4IDg4 OTY5MWFhMGMyLi4zNTlhZDYyN2YxYyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2NvbXBy ZXNzX3pzdGQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3NfenN0ZC5jCkBAIC0yNyw3 ICsyNyw4IEBAIEluaXRDb21wcmVzc29yWnN0ZChDb21wcmVzc29yU3RhdGUgKmNzLCBjb25zdCBw Z19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzCiB9CiAKIHZvaWQKLUluaXRDb21wcmVz c0ZpbGVIYW5kbGVac3RkKENvbXByZXNzRmlsZUhhbmRsZSAqQ0ZILCBjb25zdCBwZ19jb21wcmVz c19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMpCitJbml0Q29tcHJlc3NGaWxlSGFuZGxl WnN0ZChDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSCwgY29uc3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNh dGlvbiBjb21wcmVzc2lvbl9zcGVjLAorCQkJCQkJICAgYm9vbCBwYXRoX2lzX3BpcGVfY29tbWFu ZCkKIHsKIAlwZ19mYXRhbCgidGhpcyBidWlsZCBkb2VzIG5vdCBzdXBwb3J0IGNvbXByZXNzaW9u IHdpdGggJXMiLCAiWlNURCIpOwogfQpAQCAtNTU4LDggKzU1OSwxMiBAQCBac3RkX2dldF9lcnJv cihDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSCkKIAogdm9pZAogSW5pdENvbXByZXNzRmlsZUhhbmRs ZVpzdGQoQ29tcHJlc3NGaWxlSGFuZGxlICpDRkgsCi0JCQkJCQkgICBjb25zdCBwZ19jb21wcmVz c19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMpCisJCQkJCQkgICBjb25zdCBwZ19jb21w cmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMsCisJCQkJCQkgICBib29sIHBhdGhf aXNfcGlwZV9jb21tYW5kKQogeworCWlmIChwYXRoX2lzX3BpcGVfY29tbWFuZCkKKwkJcGdfZmF0 YWwoIlBpcGUgY29tbWFuZCBub3Qgc3VwcG9ydGVkIGZvciBac3RkIik7CisKIAlDRkgtPm9wZW5f ZnVuYyA9IFpzdGRfb3BlbjsKIAlDRkgtPm9wZW5fd3JpdGVfZnVuYyA9IFpzdGRfb3Blbl93cml0 ZTsKIAlDRkgtPnJlYWRfZnVuYyA9IFpzdGRfcmVhZDsKQEAgLTU3MSw2ICs1NzYsNyBAQCBJbml0 Q29tcHJlc3NGaWxlSGFuZGxlWnN0ZChDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSCwKIAlDRkgtPmdl dF9lcnJvcl9mdW5jID0gWnN0ZF9nZXRfZXJyb3I7CiAKIAlDRkgtPmNvbXByZXNzaW9uX3NwZWMg PSBjb21wcmVzc2lvbl9zcGVjOworCUNGSC0+cGF0aF9pc19waXBlX2NvbW1hbmQgPSBwYXRoX2lz X3BpcGVfY29tbWFuZDsKIAogCUNGSC0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKIH0KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc196c3RkLmggYi9zcmMvYmluL3BnX2R1bXAvY29t cHJlc3NfenN0ZC5oCmluZGV4IDEyMjJkNzEwN2Q5Li4xZjIzZTcyNjZiZiAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX3pzdGQuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvY29t cHJlc3NfenN0ZC5oCkBAIC0yMCw2ICsyMCw3IEBACiBleHRlcm4gdm9pZCBJbml0Q29tcHJlc3Nv clpzdGQoQ29tcHJlc3NvclN0YXRlICpjcywKIAkJCQkJCQkgICBjb25zdCBwZ19jb21wcmVzc19z cGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMpOwogZXh0ZXJuIHZvaWQgSW5pdENvbXByZXNz RmlsZUhhbmRsZVpzdGQoQ29tcHJlc3NGaWxlSGFuZGxlICpDRkgsCi0JCQkJCQkJCQkgICBjb25z dCBwZ19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMpOworCQkJCQkJCQkJ ICAgY29uc3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlvbiBjb21wcmVzc2lvbl9zcGVjLAorCQkJ CQkJCQkJICAgYm9vbCBwYXRoX2lzX3BpcGVfY29tbWFuZCk7CiAKICNlbmRpZgkJCQkJCQkvKiBD T01QUkVTU19aU1REX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAu aCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAppbmRleCBkOTA0MWRhZDcyMC4uNTBiMGFm YTRlN2MgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAorKysgYi9zcmMv YmluL3BnX2R1bXAvcGdfYmFja3VwLmgKQEAgLTMxNSwxNCArMzE1LDE1IEBAIGV4dGVybiB2b2lk IFByb2Nlc3NBcmNoaXZlUmVzdG9yZU9wdGlvbnMoQXJjaGl2ZSAqQUhYKTsKIGV4dGVybiB2b2lk IFJlc3RvcmVBcmNoaXZlKEFyY2hpdmUgKkFIWCk7CiAKIC8qIE9wZW4gYW4gZXhpc3RpbmcgYXJj aGl2ZSAqLwotZXh0ZXJuIEFyY2hpdmUgKk9wZW5BcmNoaXZlKGNvbnN0IGNoYXIgKkZpbGVTcGVj LCBjb25zdCBBcmNoaXZlRm9ybWF0IGZtdCk7CitleHRlcm4gQXJjaGl2ZSAqT3BlbkFyY2hpdmUo Y29uc3QgY2hhciAqRmlsZVNwZWMsIGNvbnN0IEFyY2hpdmVGb3JtYXQgZm10LCBib29sIEZpbGVT cGVjSXNQaXBlKTsKIAogLyogQ3JlYXRlIGEgbmV3IGFyY2hpdmUgKi8KIGV4dGVybiBBcmNoaXZl ICpDcmVhdGVBcmNoaXZlKGNvbnN0IGNoYXIgKkZpbGVTcGVjLCBjb25zdCBBcmNoaXZlRm9ybWF0 IGZtdCwKIAkJCQkJCQkgIGNvbnN0IHBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24gY29tcHJlc3Np b25fc3BlYywKIAkJCQkJCQkgIGJvb2wgZG9zeW5jLCBBcmNoaXZlTW9kZSBtb2RlLAogCQkJCQkJ CSAgU2V0dXBXb3JrZXJQdHJUeXBlIHNldHVwRHVtcFdvcmtlciwKLQkJCQkJCQkgIERhdGFEaXJT eW5jTWV0aG9kIHN5bmNfbWV0aG9kKTsKKwkJCQkJCQkgIERhdGFEaXJTeW5jTWV0aG9kIHN5bmNf bWV0aG9kLAorCQkJCQkJCSAgYm9vbCBGaWxlU3BlY0lzUGlwZSk7CiAKIC8qIFRoZSAtLWxpc3Qg b3B0aW9uICovCiBleHRlcm4gdm9pZCBQcmludFRPQ1N1bW1hcnkoQXJjaGl2ZSAqQUhYKTsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwppbmRleCA0YTYzZjczOTJhZS4uMWM4MjAyNzg3 NzAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKQEAgLTU2LDcgKzU2LDcgQEAg c3RhdGljIEFyY2hpdmVIYW5kbGUgKl9hbGxvY0FIKGNvbnN0IGNoYXIgKkZpbGVTcGVjLCBjb25z dCBBcmNoaXZlRm9ybWF0IGZtdCwKIAkJCQkJCQkgICBjb25zdCBwZ19jb21wcmVzc19zcGVjaWZp Y2F0aW9uIGNvbXByZXNzaW9uX3NwZWMsCiAJCQkJCQkJICAgYm9vbCBkb3N5bmMsIEFyY2hpdmVN b2RlIG1vZGUsCiAJCQkJCQkJICAgU2V0dXBXb3JrZXJQdHJUeXBlIHNldHVwV29ya2VyUHRyLAot CQkJCQkJCSAgIERhdGFEaXJTeW5jTWV0aG9kIHN5bmNfbWV0aG9kKTsKKwkJCQkJCQkgICBEYXRh RGlyU3luY01ldGhvZCBzeW5jX21ldGhvZCwgYm9vbCBGaWxlU3BlY0lzUGlwZSk7CiBzdGF0aWMg dm9pZCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24oUFFFeHBCdWZmZXIgYnVmLCBjb25zdCBUb2NFbnRy eSAqdGUpOwogc3RhdGljIHZvaWQgX3ByaW50VG9jRW50cnkoQXJjaGl2ZUhhbmRsZSAqQUgsIFRv Y0VudHJ5ICp0ZSwgY29uc3QgY2hhciAqcGZ4KTsKIHN0YXRpYyB2b2lkIF9kb1NldEZpeGVkT3V0 cHV0U3RhdGUoQXJjaGl2ZUhhbmRsZSAqQUgpOwpAQCAtMjMyLDExICsyMzIsMTIgQEAgQ3JlYXRl QXJjaGl2ZShjb25zdCBjaGFyICpGaWxlU3BlYywgY29uc3QgQXJjaGl2ZUZvcm1hdCBmbXQsCiAJ CQkgIGNvbnN0IHBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24gY29tcHJlc3Npb25fc3BlYywKIAkJ CSAgYm9vbCBkb3N5bmMsIEFyY2hpdmVNb2RlIG1vZGUsCiAJCQkgIFNldHVwV29ya2VyUHRyVHlw ZSBzZXR1cER1bXBXb3JrZXIsCi0JCQkgIERhdGFEaXJTeW5jTWV0aG9kIHN5bmNfbWV0aG9kKQor CQkJICBEYXRhRGlyU3luY01ldGhvZCBzeW5jX21ldGhvZCwKKwkJCSAgYm9vbCBGaWxlU3BlY0lz UGlwZSkKIAogewogCUFyY2hpdmVIYW5kbGUgKkFIID0gX2FsbG9jQUgoRmlsZVNwZWMsIGZtdCwg Y29tcHJlc3Npb25fc3BlYywKLQkJCQkJCQkJIGRvc3luYywgbW9kZSwgc2V0dXBEdW1wV29ya2Vy LCBzeW5jX21ldGhvZCk7CisJCQkJCQkJCSBkb3N5bmMsIG1vZGUsIHNldHVwRHVtcFdvcmtlciwg c3luY19tZXRob2QsIEZpbGVTcGVjSXNQaXBlKTsKIAogCXJldHVybiAoQXJjaGl2ZSAqKSBBSDsK IH0KQEAgLTI0NCw3ICsyNDUsNyBAQCBDcmVhdGVBcmNoaXZlKGNvbnN0IGNoYXIgKkZpbGVTcGVj LCBjb25zdCBBcmNoaXZlRm9ybWF0IGZtdCwKIC8qIE9wZW4gYW4gZXhpc3RpbmcgYXJjaGl2ZSAq LwogLyogUHVibGljICovCiBBcmNoaXZlICoKLU9wZW5BcmNoaXZlKGNvbnN0IGNoYXIgKkZpbGVT cGVjLCBjb25zdCBBcmNoaXZlRm9ybWF0IGZtdCkKK09wZW5BcmNoaXZlKGNvbnN0IGNoYXIgKkZp bGVTcGVjLCBjb25zdCBBcmNoaXZlRm9ybWF0IGZtdCwgYm9vbCBGaWxlU3BlY0lzUGlwZSkKIHsK IAlBcmNoaXZlSGFuZGxlICpBSDsKIAlwZ19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNz aW9uX3NwZWMgPSB7MH07CkBAIC0yNTIsNyArMjUzLDcgQEAgT3BlbkFyY2hpdmUoY29uc3QgY2hh ciAqRmlsZVNwZWMsIGNvbnN0IEFyY2hpdmVGb3JtYXQgZm10KQogCWNvbXByZXNzaW9uX3NwZWMu YWxnb3JpdGhtID0gUEdfQ09NUFJFU1NJT05fTk9ORTsKIAlBSCA9IF9hbGxvY0FIKEZpbGVTcGVj LCBmbXQsIGNvbXByZXNzaW9uX3NwZWMsIHRydWUsCiAJCQkJICBhcmNoTW9kZVJlYWQsIHNldHVw UmVzdG9yZVdvcmtlciwKLQkJCQkgIERBVEFfRElSX1NZTkNfTUVUSE9EX0ZTWU5DKTsKKwkJCQkg IERBVEFfRElSX1NZTkNfTUVUSE9EX0ZTWU5DLCBGaWxlU3BlY0lzUGlwZSk7CiAKIAlyZXR1cm4g KEFyY2hpdmUgKikgQUg7CiB9CkBAIC0xNzIwLDcgKzE3MjEsNyBAQCBTZXRPdXRwdXQoQXJjaGl2 ZUhhbmRsZSAqQUgsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogCWVsc2UKIAkJbW9kZSA9IFBHX0JJ TkFSWV9XOwogCi0JQ0ZIID0gSW5pdENvbXByZXNzRmlsZUhhbmRsZShjb21wcmVzc2lvbl9zcGVj KTsKKwlDRkggPSBJbml0Q29tcHJlc3NGaWxlSGFuZGxlKGNvbXByZXNzaW9uX3NwZWMsIEFILT5m U3BlY0lzUGlwZSk7CiAKIAlpZiAoIUNGSC0+b3Blbl9mdW5jKGZpbGVuYW1lLCBmbiwgbW9kZSwg Q0ZIKSkKIAl7CkBAIC0yMzc2LDcgKzIzNzcsOCBAQCBzdGF0aWMgQXJjaGl2ZUhhbmRsZSAqCiBf YWxsb2NBSChjb25zdCBjaGFyICpGaWxlU3BlYywgY29uc3QgQXJjaGl2ZUZvcm1hdCBmbXQsCiAJ CSBjb25zdCBwZ19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMsCiAJCSBi b29sIGRvc3luYywgQXJjaGl2ZU1vZGUgbW9kZSwKLQkJIFNldHVwV29ya2VyUHRyVHlwZSBzZXR1 cFdvcmtlclB0ciwgRGF0YURpclN5bmNNZXRob2Qgc3luY19tZXRob2QpCisJCSBTZXR1cFdvcmtl clB0clR5cGUgc2V0dXBXb3JrZXJQdHIsIERhdGFEaXJTeW5jTWV0aG9kIHN5bmNfbWV0aG9kLAor CQkgYm9vbCBGaWxlU3BlY0lzUGlwZSkKIHsKIAlBcmNoaXZlSGFuZGxlICpBSDsKIAlDb21wcmVz c0ZpbGVIYW5kbGUgKkNGSDsKQEAgLTI0MTcsNiArMjQxOSw4IEBAIF9hbGxvY0FIKGNvbnN0IGNo YXIgKkZpbGVTcGVjLCBjb25zdCBBcmNoaXZlRm9ybWF0IGZtdCwKIAllbHNlCiAJCUFILT5mU3Bl YyA9IE5VTEw7CiAKKwlBSC0+ZlNwZWNJc1BpcGUgPSBGaWxlU3BlY0lzUGlwZTsKKwogCUFILT5j dXJyVXNlciA9IE5VTEw7CQkvKiB1bmtub3duICovCiAJQUgtPmN1cnJTY2hlbWEgPSBOVUxMOwkJ LyogZGl0dG8gKi8KIAlBSC0+Y3VyclRhYmxlc3BhY2UgPSBOVUxMOwkvKiBkaXR0byAqLwpAQCAt MjQyOSwxNCArMjQzMywxNCBAQCBfYWxsb2NBSChjb25zdCBjaGFyICpGaWxlU3BlYywgY29uc3Qg QXJjaGl2ZUZvcm1hdCBmbXQsCiAKIAlBSC0+bW9kZSA9IG1vZGU7CiAJQUgtPmNvbXByZXNzaW9u X3NwZWMgPSBjb21wcmVzc2lvbl9zcGVjOwotCUFILT5kb3N5bmMgPSBkb3N5bmM7CisJQUgtPmRv c3luYyA9IEZpbGVTcGVjSXNQaXBlID8gZmFsc2UgOiBkb3N5bmM7CiAJQUgtPnN5bmNfbWV0aG9k ID0gc3luY19tZXRob2Q7CiAKIAltZW1zZXQoJihBSC0+c3FscGFyc2UpLCAwLCBzaXplb2YoQUgt PnNxbHBhcnNlKSk7CiAKIAkvKiBPcGVuIHN0ZG91dCB3aXRoIG5vIGNvbXByZXNzaW9uIGZvciBB SCBvdXRwdXQgaGFuZGxlICovCiAJb3V0X2NvbXByZXNzX3NwZWMuYWxnb3JpdGhtID0gUEdfQ09N UFJFU1NJT05fTk9ORTsKLQlDRkggPSBJbml0Q29tcHJlc3NGaWxlSGFuZGxlKG91dF9jb21wcmVz c19zcGVjKTsKKwlDRkggPSBJbml0Q29tcHJlc3NGaWxlSGFuZGxlKG91dF9jb21wcmVzc19zcGVj LCBBSC0+ZlNwZWNJc1BpcGUpOwogCWlmICghQ0ZILT5vcGVuX2Z1bmMoTlVMTCwgZmlsZW5vKHN0 ZG91dCksIFBHX0JJTkFSWV9BLCBDRkgpKQogCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gc3Rk b3V0IGZvciBhcHBlbmRpbmc6ICVtIik7CiAJQUgtPk9GID0gQ0ZIOwpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2Jh Y2t1cF9hcmNoaXZlci5oCmluZGV4IDMyNWI1M2ZjOWJkLi5hOGIxYWI3OWU4MiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5oCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuaApAQCAtMzAxLDYgKzMwMSw4IEBAIHN0cnVjdCBfYXJj aGl2ZUhhbmRsZQogCWludAkJCWxvQ291bnQ7CQkvKiAjIG9mIExPcyByZXN0b3JlZCAqLwogCiAJ Y2hhcgkgICAqZlNwZWM7CQkJLyogQXJjaGl2ZSBGaWxlIFNwZWMgKi8KKwlib29sCQlmU3BlY0lz UGlwZTsJLyogZlNwZWMgaXMgYSBwaXBlIGNvbW1hbmQgdGVtcGxhdGUgcmVxdWlyaW5nCisJCQkJ CQkJCSAqIHJlcGxhY2luZyAlZiB3aXRoIGZpbGUgbmFtZSAqLwogCUZJTEUJICAgKkZIOwkJCQkv KiBHZW5lcmFsIHB1cnBvc2UgZmlsZSBoYW5kbGUgKi8KIAl2b2lkCSAgICpPRjsJCQkJLyogT3V0 cHV0IGZpbGUgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9kaXJl Y3RvcnkuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGlyZWN0b3J5LmMKaW5kZXggY2Q0 MDM2ZWFkODIuLmRiMjMwMzFkOWFjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFj a3VwX2RpcmVjdG9yeS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGlyZWN0b3J5 LmMKQEAgLTM5LDcgKzM5LDggQEAKICNpbmNsdWRlIDxkaXJlbnQuaD4KICNpbmNsdWRlIDxzeXMv c3RhdC5oPgogCi0jaW5jbHVkZSAiY29tbW9uL2ZpbGVfdXRpbHMuaCIKKy8qICNpbmNsdWRlICJj b21tb24vZmlsZV91dGlscy5oIiAqLworI2luY2x1ZGUgImNvbW1vbi9wZXJjZW50cmVwbC5oIgog I2luY2x1ZGUgImNvbXByZXNzX2lvLmgiCiAjaW5jbHVkZSAiZHVtcHV0aWxzLmgiCiAjaW5jbHVk ZSAicGFyYWxsZWwuaCIKQEAgLTE1Nyw4ICsxNTgsMTEgQEAgSW5pdEFyY2hpdmVGbXRfRGlyZWN0 b3J5KEFyY2hpdmVIYW5kbGUgKkFIKQogCiAJaWYgKEFILT5tb2RlID09IGFyY2hNb2RlV3JpdGUp CiAJewotCQkvKiB3ZSBhY2NlcHQgYW4gZW1wdHkgZXhpc3RpbmcgZGlyZWN0b3J5ICovCi0JCWNy ZWF0ZV9vcl9vcGVuX2RpcihjdHgtPmRpcmVjdG9yeSk7CisJCWlmICghQUgtPmZTcGVjSXNQaXBl KQkvKiBubyBjaGVja3MgZm9yIHBpcGUgKi8KKwkJeworCQkJLyogd2UgYWNjZXB0IGFuIGVtcHR5 IGV4aXN0aW5nIGRpcmVjdG9yeSAqLworCQkJY3JlYXRlX29yX29wZW5fZGlyKGN0eC0+ZGlyZWN0 b3J5KTsKKwkJfQogCX0KIAllbHNlCiAJewkJCQkJCQkvKiBSZWFkIE1vZGUgKi8KQEAgLTE2Nyw3 ICsxNzEsNyBAQCBJbml0QXJjaGl2ZUZtdF9EaXJlY3RvcnkoQXJjaGl2ZUhhbmRsZSAqQUgpCiAK IAkJc2V0RmlsZVBhdGgoQUgsIGZuYW1lLCAidG9jLmRhdCIpOwogCi0JCXRvY0ZIID0gSW5pdERp c2NvdmVyQ29tcHJlc3NGaWxlSGFuZGxlKGZuYW1lLCBQR19CSU5BUllfUik7CisJCXRvY0ZIID0g SW5pdERpc2NvdmVyQ29tcHJlc3NGaWxlSGFuZGxlKGZuYW1lLCBQR19CSU5BUllfUiwgQUgtPmZT cGVjSXNQaXBlKTsKIAkJaWYgKHRvY0ZIID09IE5VTEwpCiAJCQlwZ19mYXRhbCgiY291bGQgbm90 IG9wZW4gaW5wdXQgZmlsZSBcIiVzXCI6ICVtIiwgZm5hbWUpOwogCkBAIC0yOTUsNyArMjk5LDcg QEAgX1N0YXJ0RGF0YShBcmNoaXZlSGFuZGxlICpBSCwgVG9jRW50cnkgKnRlKQogCiAJc2V0Rmls ZVBhdGgoQUgsIGZuYW1lLCB0Y3R4LT5maWxlbmFtZSk7CiAKLQljdHgtPmRhdGFGSCA9IEluaXRD b21wcmVzc0ZpbGVIYW5kbGUoQUgtPmNvbXByZXNzaW9uX3NwZWMpOworCWN0eC0+ZGF0YUZIID0g SW5pdENvbXByZXNzRmlsZUhhbmRsZShBSC0+Y29tcHJlc3Npb25fc3BlYywgQUgtPmZTcGVjSXNQ aXBlKTsKIAogCWlmICghY3R4LT5kYXRhRkgtPm9wZW5fd3JpdGVfZnVuYyhmbmFtZSwgUEdfQklO QVJZX1csIGN0eC0+ZGF0YUZIKSkKIAkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIG91dHB1dCBm aWxlIFwiJXNcIjogJW0iLCBmbmFtZSk7CkBAIC0zNTMsNyArMzU3LDcgQEAgX1ByaW50RmlsZURh dGEoQXJjaGl2ZUhhbmRsZSAqQUgsIGNoYXIgKmZpbGVuYW1lKQogCWlmICghZmlsZW5hbWUpCiAJ CXJldHVybjsKIAotCUNGSCA9IEluaXREaXNjb3ZlckNvbXByZXNzRmlsZUhhbmRsZShmaWxlbmFt ZSwgUEdfQklOQVJZX1IpOworCUNGSCA9IEluaXREaXNjb3ZlckNvbXByZXNzRmlsZUhhbmRsZShm aWxlbmFtZSwgUEdfQklOQVJZX1IsIEFILT5mU3BlY0lzUGlwZSk7CiAJaWYgKCFDRkgpCiAJCXBn X2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBpbnB1dCBmaWxlIFwiJXNcIjogJW0iLCBmaWxlbmFtZSk7 CiAKQEAgLTQxNiw3ICs0MjAsNyBAQCBfTG9hZExPcyhBcmNoaXZlSGFuZGxlICpBSCwgVG9jRW50 cnkgKnRlKQogCWVsc2UKIAkJc2V0RmlsZVBhdGgoQUgsIHRvY2ZuYW1lLCB0Y3R4LT5maWxlbmFt ZSk7CiAKLQlDRkggPSBjdHgtPkxPc1RvY0ZIID0gSW5pdERpc2NvdmVyQ29tcHJlc3NGaWxlSGFu ZGxlKHRvY2ZuYW1lLCBQR19CSU5BUllfUik7CisJQ0ZIID0gY3R4LT5MT3NUb2NGSCA9IEluaXRE aXNjb3ZlckNvbXByZXNzRmlsZUhhbmRsZSh0b2NmbmFtZSwgUEdfQklOQVJZX1IsIEFILT5mU3Bl Y0lzUGlwZSk7CiAKIAlpZiAoY3R4LT5MT3NUb2NGSCA9PSBOVUxMKQogCQlwZ19mYXRhbCgiY291 bGQgbm90IG9wZW4gbGFyZ2Ugb2JqZWN0IFRPQyBmaWxlIFwiJXNcIiBmb3IgaW5wdXQ6ICVtIiwK QEAgLTQyNyw2ICs0MzEsNyBAQCBfTG9hZExPcyhBcmNoaXZlSGFuZGxlICpBSCwgVG9jRW50cnkg KnRlKQogCXsKIAkJY2hhcgkJbG9mbmFtZVtNQVhQR1BBVEggKyAxXTsKIAkJY2hhcgkJcGF0aFtN QVhQR1BBVEhdOworCQljaGFyCSAgICpwaXBlOwogCiAJCS8qIENhbid0IG92ZXJmbG93IGJlY2F1 c2UgbGluZSBhbmQgbG9mbmFtZSBhcmUgdGhlIHNhbWUgbGVuZ3RoICovCiAJCWlmIChzc2NhbmYo bGluZSwgIiV1ICUiIENwcEFzU3RyaW5nMihNQVhQR1BBVEgpICJzXG4iLCAmb2lkLCBsb2ZuYW1l KSAhPSAyKQpAQCAtNTQ1LDcgKzU1MCw3IEBAIF9DbG9zZUFyY2hpdmUoQXJjaGl2ZUhhbmRsZSAq QUgpCiAKIAkJLyogVGhlIFRPQyBpcyBhbHdheXMgY3JlYXRlZCB1bmNvbXByZXNzZWQgKi8KIAkJ Y29tcHJlc3Npb25fc3BlYy5hbGdvcml0aG0gPSBQR19DT01QUkVTU0lPTl9OT05FOwotCQl0b2NG SCA9IEluaXRDb21wcmVzc0ZpbGVIYW5kbGUoY29tcHJlc3Npb25fc3BlYyk7CisJCXRvY0ZIID0g SW5pdENvbXByZXNzRmlsZUhhbmRsZShjb21wcmVzc2lvbl9zcGVjLCBBSC0+ZlNwZWNJc1BpcGUp OwogCQlpZiAoIXRvY0ZILT5vcGVuX3dyaXRlX2Z1bmMoZm5hbWUsIFBHX0JJTkFSWV9XLCB0b2NG SCkpCiAJCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gb3V0cHV0IGZpbGUgXCIlc1wiOiAlbSIs IGZuYW1lKTsKIAkJY3R4LT5kYXRhRkggPSB0b2NGSDsKQEAgLTYwNiwxMyArNjExLDQ2IEBAIF9T dGFydExPcyhBcmNoaXZlSGFuZGxlICpBSCwgVG9jRW50cnkgKnRlKQogCWxjbFRvY0VudHJ5ICp0 Y3R4ID0gKGxjbFRvY0VudHJ5ICopIHRlLT5mb3JtYXREYXRhOwogCXBnX2NvbXByZXNzX3NwZWNp ZmljYXRpb24gY29tcHJlc3Npb25fc3BlYyA9IHswfTsKIAljaGFyCQlmbmFtZVtNQVhQR1BBVEhd OworCWNvbnN0IGNoYXIgKm1vZGU7CiAKIAlzZXRGaWxlUGF0aChBSCwgZm5hbWUsIHRjdHgtPmZp bGVuYW1lKTsKIAogCS8qIFRoZSBMTyBUT0MgZmlsZSBpcyBuZXZlciBjb21wcmVzc2VkICovCiAJ Y29tcHJlc3Npb25fc3BlYy5hbGdvcml0aG0gPSBQR19DT01QUkVTU0lPTl9OT05FOwotCWN0eC0+ TE9zVG9jRkggPSBJbml0Q29tcHJlc3NGaWxlSGFuZGxlKGNvbXByZXNzaW9uX3NwZWMpOwotCWlm ICghY3R4LT5MT3NUb2NGSC0+b3Blbl93cml0ZV9mdW5jKGZuYW1lLCAiYWIiLCBjdHgtPkxPc1Rv Y0ZIKSkKKwljdHgtPkxPc1RvY0ZIID0gSW5pdENvbXByZXNzRmlsZUhhbmRsZShjb21wcmVzc2lv bl9zcGVjLCBBSC0+ZlNwZWNJc1BpcGUpOworCisJLyoKKwkgKiBYWFg6IFdlIGNhbiBwcm9iYWJs eSBzaW1wbGlmeSB0aGlzIGNvZGUgYnkgdXNpbmcgdGhlIG1vZGUgJ3cnIGZvciBhbGwKKwkgKiBj YXNlcy4gVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gaXMgZHVlIHRvIGhpc3RvcmljYWwgcmVh c29uIHRoYXQgdGhlCisJICogbW9kZSBmb3IgdGhlIExPcyBUT0MgZmlsZSBoYXMgYmVlbiAiYWIi IGZyb20gdGhlIHN0YXJ0LiBUaGF0IGlzCisJICogc29tZXRoaW5nIHdlIGNhbid0IGRvIGZvciBw aXBlLWNvbW1hbmQgYXMgcG9wZW4gb25seSBzdXBwb3J0cyByZWFkIGFuZAorCSAqIHdyaXRlLiBT byBoZXJlIGEgZGlmZmVyZW50IG1vZGUgaXMgdXNlZCBmb3IgcGlwZXMuCisJICoKKwkgKiBCdXQg aW4gZnV0dXJlIHdlIGNhbiBldmFsdWF0ZSB1c2luZyAndycgZm9yIGV2ZXJ5dGhpbmcudGhlcmUg aXMgb25lCisJICogVG9DRW50cnkgVGhlcmUgaXMgb25seSBvbmUgVG9DRW50cnkgcGVyIGJsb2Ig Z3JvdXAuIEFuZCBpdCBpcyB3cml0dGVuCisJICogYnkgQFdyaXRlRGF0YUNodW5rc0ZvclRvQ0Vu dHJ5LiBUaGlzIGZ1bmN0aW9uIGNhbGxzIF9TdGFydExPcyBvbmNlCisJICogYmVmb3JlIHRoZSBk dW1wZXIgZnVuY3Rpb24gYW5kIGFuZCBfRW5kTE9zIG9uY2UgYWZ0ZXIgdGhlIGR1bXBlci4gQW5k CisJICogdGhlIGR1bXBlciBkdW1wcyBhbGwgdGhlIExPcyBpbiB0aGUgZ3JvdXAuIFNvIGEgYmxv Yl9OTk4udG9jIGlzIG9ubHkKKwkgKiBvcGVuZWQgb25jZSBhbmQgY2xvc2VkIGFmdGVyIGFsbCB0 aGUgZW50cmllcyBhcmUgd3JpdHRlbi4gVGhlcmVmb3JlIHRoZQorCSAqIG1vZGUgY2FuIGJlIG1h ZGUgJ3cnIGZvciBhbGwgdGhlIGNhc2VzLiBXZSB0ZXN0ZWQgY2hhbmdpbmcgdGhlIG1vZGUgdG8K KwkgKiBQR19CSU5BUllfVyBhbmQgdGhlIHRlc3RzIHBhc3NlZC4gQnV0IGluIGNhc2UgdGhlcmUg YXJlIHNvbWUgbWlzc2luZworCSAqIHNjZW5hcmlvcywgd2UgaGF2ZSBub3QgbWFkZSB0aGF0IGNo YW5nZSBoZXJlLiBJbnN0ZWFkIGZvciBub3cgb25seQorCSAqIGRvaW5nIGl0IGZvciB0aGUgcGlw ZSBjb21tYW5kLgorCSAqCisJICogQW5vdGhlciBhbHRlcm5hdGl2ZSBpcyB0byBrZWVwIHRoZSAn YWInIG1vZGUgZm9yIHJlZ3VsYXIgZmlsZXMgYW5kIHVzZQorCSAqICd3JyBtb2RlIGZvciBwaXBl IGZpbGVzIGJ1dCBub3cgYWxzbyBjYWNoZSB0aGUgcGlwZSBoYW5kbGUgdG8ga2VlcCBpdAorCSAq IG9wZW4gdGlsbCBhbGwgdGhlIExPcyBpbiB0aGUgZHVtcCBncm91cCBhcmUgZG9uZS4gVGhpcyBp cyBub3QgbmVlZGVkCisJICogYmVjYXVzZSBvZiB0aGUgc2FtZSByZWFzb24gbGlzdGVkIGFib3Zl IHRoYXQgYSBmaWxlIGhhbmRsZSBpcyBvbmx5CisJICogb3BlbmVkIG9uY2UuIEluIHNob3J0IHRo ZXJlIGFyZSAzIHNvbHV0aW9ucyA6IDEuIENoYW5nZSB0aGUgbW9kZSBmb3IKKwkgKiBldmVyeXRo aW5nIChwcmVmZXJyZWQpIDIuIENoYW5nZSBpdCBvbmx5IGZvciBwaXBlLWNvbW1hbmQgKGN1cnJl bnQpIDMuCisJICogQ2hhbmdlIGl0IGZvciBwaXBlLWNvbW1hbmQgYW5kIHRoZW4gY2FjaGUgdGhv c2UgaGFuZGxlcyBhbmQgY2xvc2UgdGhlbQorCSAqIGluIHRoZSBlbmQgKG5vdCBuZWVkZWQpLgor CSAqLworCWlmIChBSC0+ZlNwZWNJc1BpcGUpCisJCW1vZGUgPSBQR19CSU5BUllfVzsKKwllbHNl CisJCW1vZGUgPSAiYWIiOworCWlmICghY3R4LT5MT3NUb2NGSC0+b3Blbl93cml0ZV9mdW5jKGZu YW1lLCBtb2RlLCBjdHgtPkxPc1RvY0ZIKSkKIAkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIG91 dHB1dCBmaWxlIFwiJXNcIjogJW0iLCBmbmFtZSk7CiB9CiAKQEAgLTYyNiwxMCArNjY0LDIyIEBA IF9TdGFydExPKEFyY2hpdmVIYW5kbGUgKkFILCBUb2NFbnRyeSAqdGUsIE9pZCBvaWQpCiB7CiAJ bGNsQ29udGV4dCAqY3R4ID0gKGxjbENvbnRleHQgKikgQUgtPmZvcm1hdERhdGE7CiAJY2hhcgkJ Zm5hbWVbTUFYUEdQQVRIXTsKKwljaGFyCSAgICpwaXBlOworCWNoYXIJCWJsb2JfbmFtZVtNQVhQ R1BBVEhdOwogCi0Jc25wcmludGYoZm5hbWUsIE1BWFBHUEFUSCwgIiVzL2Jsb2JfJXUuZGF0Iiwg Y3R4LT5kaXJlY3RvcnksIG9pZCk7CisJaWYgKEFILT5mU3BlY0lzUGlwZSkKKwl7CisJCXNucHJp bnRmKGJsb2JfbmFtZSwgTUFYUEdQQVRILCAiYmxvYl8ldS5kYXQiLCBvaWQpOworCQlwaXBlID0g cmVwbGFjZV9wZXJjZW50X3BsYWNlaG9sZGVycyhjdHgtPmRpcmVjdG9yeSwgInBpcGUtY29tbWFu ZCIsICJmIiwgYmxvYl9uYW1lKTsKKwkJc3RyY3B5KGZuYW1lLCBwaXBlKTsKKwkJcGZyZWUocGlw ZSk7CisJfQorCWVsc2UKKwl7CisJCXNucHJpbnRmKGZuYW1lLCBNQVhQR1BBVEgsICIlcy9ibG9i XyV1LmRhdCIsIGN0eC0+ZGlyZWN0b3J5LCBvaWQpOworCX0KIAotCWN0eC0+ZGF0YUZIID0gSW5p dENvbXByZXNzRmlsZUhhbmRsZShBSC0+Y29tcHJlc3Npb25fc3BlYyk7CisJY3R4LT5kYXRhRkgg PSBJbml0Q29tcHJlc3NGaWxlSGFuZGxlKEFILT5jb21wcmVzc2lvbl9zcGVjLCBBSC0+ZlNwZWNJ c1BpcGUpOwogCWlmICghY3R4LT5kYXRhRkgtPm9wZW5fd3JpdGVfZnVuYyhmbmFtZSwgUEdfQklO QVJZX1csIGN0eC0+ZGF0YUZIKSkKIAkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIG91dHB1dCBm aWxlIFwiJXNcIjogJW0iLCBmbmFtZSk7CiB9CkBAIC02ODMsMTUgKzczMywyNyBAQCBzZXRGaWxl UGF0aChBcmNoaXZlSGFuZGxlICpBSCwgY2hhciAqYnVmLCBjb25zdCBjaGFyICpyZWxhdGl2ZUZp bGVuYW1lKQogewogCWxjbENvbnRleHQgKmN0eCA9IChsY2xDb250ZXh0ICopIEFILT5mb3JtYXRE YXRhOwogCWNoYXIJICAgKmRuYW1lOworCWNoYXIJICAgKnBpcGU7CiAKIAlkbmFtZSA9IGN0eC0+ ZGlyZWN0b3J5OwogCi0JaWYgKHN0cmxlbihkbmFtZSkgKyAxICsgc3RybGVuKHJlbGF0aXZlRmls ZW5hbWUpICsgMSA+IE1BWFBHUEFUSCkKLQkJcGdfZmF0YWwoImZpbGUgbmFtZSB0b28gbG9uZzog XCIlc1wiIiwgZG5hbWUpOwogCi0Jc3RyY3B5KGJ1ZiwgZG5hbWUpOwotCXN0cmNhdChidWYsICIv Iik7Ci0Jc3RyY2F0KGJ1ZiwgcmVsYXRpdmVGaWxlbmFtZSk7CisJaWYgKEFILT5mU3BlY0lzUGlw ZSkKKwl7CisJCXBpcGUgPSByZXBsYWNlX3BlcmNlbnRfcGxhY2Vob2xkZXJzKGRuYW1lLCAicGlw ZS1jb21tYW5kIiwgImYiLCByZWxhdGl2ZUZpbGVuYW1lKTsKKwkJc3RyY3B5KGJ1ZiwgcGlwZSk7 CisJCXBmcmVlKHBpcGUpOworCX0KKwllbHNlCQkJCQkJLyogcmVwbGFjZSBhbGwgb2N1cnJlbmNl cyBvZiAlZiBpbiBkbmFtZSB3aXRoCisJCQkJCQkJCSAqIHJlbGF0aXZlRmlsZW5hbWUgKi8KKwl7 CisJCWlmIChzdHJsZW4oZG5hbWUpICsgMSArIHN0cmxlbihyZWxhdGl2ZUZpbGVuYW1lKSArIDEg PiBNQVhQR1BBVEgpCisJCQlwZ19mYXRhbCgiZmlsZSBuYW1lIHRvbyBsb25nOiBcIiVzXCIiLCBk bmFtZSk7CisKKwkJc3RyY3B5KGJ1ZiwgZG5hbWUpOworCQlzdHJjYXQoYnVmLCAiLyIpOworCQlz dHJjYXQoYnVmLCByZWxhdGl2ZUZpbGVuYW1lKTsKKwl9CiB9CiAKIC8qCkBAIC03MzMsMTcgKzc5 NSwyNCBAQCBfUHJlcFBhcmFsbGVsUmVzdG9yZShBcmNoaXZlSGFuZGxlICpBSCkKIAkJICogb25s eSBuZWVkIGFuIGFwcHJveGltYXRlIGluZGljYXRvciBvZiB0aGF0LgogCQkgKi8KIAkJc2V0Rmls ZVBhdGgoQUgsIGZuYW1lLCB0Y3R4LT5maWxlbmFtZSk7CisJCXBnX2xvZ19lcnJvcigiZmlsZW5h bWU6ICVzIiwgZm5hbWUpOwogCiAJCWlmIChzdGF0KGZuYW1lLCAmc3QpID09IDApCiAJCQl0ZS0+ ZGF0YUxlbmd0aCA9IHN0LnN0X3NpemU7CiAJCWVsc2UgaWYgKEFILT5jb21wcmVzc2lvbl9zcGVj LmFsZ29yaXRobSAhPSBQR19DT01QUkVTU0lPTl9OT05FKQogCQl7CisJCQlpZiAoQUgtPmZTcGVj SXNQaXBlKQorCQkJCXBnX2xvZ19lcnJvcigicGlwZSBhbmQgY29tcHJlc3NlZCIpOwogCQkJaWYg KEFILT5jb21wcmVzc2lvbl9zcGVjLmFsZ29yaXRobSA9PSBQR19DT01QUkVTU0lPTl9HWklQKQog CQkJCXN0cmxjYXQoZm5hbWUsICIuZ3oiLCBzaXplb2YoZm5hbWUpKTsKIAkJCWVsc2UgaWYgKEFI LT5jb21wcmVzc2lvbl9zcGVjLmFsZ29yaXRobSA9PSBQR19DT01QUkVTU0lPTl9MWjQpCiAJCQkJ c3RybGNhdChmbmFtZSwgIi5sejQiLCBzaXplb2YoZm5hbWUpKTsKIAkJCWVsc2UgaWYgKEFILT5j b21wcmVzc2lvbl9zcGVjLmFsZ29yaXRobSA9PSBQR19DT01QUkVTU0lPTl9aU1REKQorCQkJewor CQkJCXBnX2xvZ19lcnJvcigiZmlsZW5hbWU6ICVzIiwgZm5hbWUpOwogCQkJCXN0cmxjYXQoZm5h bWUsICIuenN0Iiwgc2l6ZW9mKGZuYW1lKSk7CisJCQkJcGdfbG9nX2Vycm9yKCJmaWxlbmFtZTog JXMiLCBmbmFtZSk7CisJCQl9CiAKIAkJCWlmIChzdGF0KGZuYW1lLCAmc3QpID09IDApCiAJCQkJ dGUtPmRhdGFMZW5ndGggPSBzdC5zdF9zaXplOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggNjg3ZGM5OGU0NmQu LjE5OWFmZDAxYmMzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTQyMyw2ICs0MjMsNyBAQCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQJCQljOwogCWNvbnN0IGNoYXIgKmZpbGVuYW1lID0g TlVMTDsKKwlib29sCQlmaWxlbmFtZV9pc19waXBlID0gZmFsc2U7CiAJY29uc3QgY2hhciAqZm9y bWF0ID0gInAiOwogCVRhYmxlSW5mbyAgKnRibGluZm87CiAJaW50CQkJbnVtVGFibGVzOwpAQCAt NTM5LDYgKzU0MCw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl7ImV4Y2x1ZGUt ZXh0ZW5zaW9uIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDE3fSwKIAkJeyJzZXF1ZW5jZS1k YXRhIiwgbm9fYXJndW1lbnQsICZkb3B0LnNlcXVlbmNlX2RhdGEsIDF9LAogCQl7InJlc3RyaWN0 LWtleSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAyNX0sCisJCXsicGlwZS1jb21tYW5kIiwg cmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDI2fSwKIAogCQl7TlVMTCwgMCwgTlVMTCwgMH0KIAl9 OwpAQCAtNjEwLDcgKzYxMiwxNCBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCQli cmVhazsKIAogCQkJY2FzZSAnZic6CisJCQkJaWYgKGZpbGVuYW1lICE9IE5VTEwpCisJCQkJewor CQkJCQlwZ19sb2dfZXJyb3JfaGludCgiT25seSBvbmUgb2YgWy0tZmlsZSwgLS1waXBlLWNvbW1h bmRdIGFsbG93ZWQiKTsKKwkJCQkJZXhpdF9uaWNlbHkoMSk7CisJCQkJfQogCQkJCWZpbGVuYW1l ID0gcGdfc3RyZHVwKG9wdGFyZyk7CisJCQkJZmlsZW5hbWVfaXNfcGlwZSA9IGZhbHNlOwkvKiBp dCBhbHJlYWR5IGlzLCBzZXR0aW5nIGFnYWluCisJCQkJCQkJCQkJCSAqIGhlcmUganVzdCBmb3Ig Y2xhcml0eSAqLwogCQkJCWJyZWFrOwogCiAJCQljYXNlICdGJzoKQEAgLTgwMyw2ICs4MTIsMTYg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJZG9wdC5yZXN0cmljdF9rZXkgPSBw Z19zdHJkdXAob3B0YXJnKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSAyNjoJCQkvKiBwaXBlIGNv bW1hbmQgKi8KKwkJCQlpZiAoZmlsZW5hbWUgIT0gTlVMTCkKKwkJCQl7CisJCQkJCXBnX2xvZ19l cnJvcl9oaW50KCJPbmx5IG9uZSBvZiBbLS1maWxlLCAtLXBpcGUtY29tbWFuZF0gYWxsb3dlZCIp OworCQkJCQlleGl0X25pY2VseSgxKTsKKwkJCQl9CisJCQkJZmlsZW5hbWUgPSBwZ19zdHJkdXAo b3B0YXJnKTsKKwkJCQlmaWxlbmFtZV9pc19waXBlID0gdHJ1ZTsKKwkJCQlicmVhazsKKwogCQkJ ZGVmYXVsdDoKIAkJCQkvKiBnZXRvcHRfbG9uZyBhbHJlYWR5IGVtaXR0ZWQgYSBjb21wbGFpbnQg Ki8KIAkJCQlwZ19sb2dfZXJyb3JfaGludCgiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5m b3JtYXRpb24uIiwgcHJvZ25hbWUpOwpAQCAtOTI0LDE0ICs5NDMsMjYgQEAgbWFpbihpbnQgYXJn YywgY2hhciAqKmFyZ3YpCiAJZWxzZSBpZiAoZG9wdC5yZXN0cmljdF9rZXkpCiAJCXBnX2ZhdGFs KCJvcHRpb24gJXMgY2FuIG9ubHkgYmUgdXNlZCB3aXRoICVzIiwKIAkJCQkgIi0tcmVzdHJpY3Qt a2V5IiwgIi0tZm9ybWF0PXBsYWluIik7CisJaWYgKGZpbGVuYW1lX2lzX3BpcGUgJiYgYXJjaGl2 ZUZvcm1hdCAhPSBhcmNoRGlyZWN0b3J5KQorCXsKKwkJcGdfbG9nX2Vycm9yX2hpbnQoIk9wdGlv biAtLXBpcGUtY29tbWFuZCBpcyBvbmx5IHN1cHBvcnRlZCB3aXRoIGRpcmVjdG9yeSBmb3JtYXQu Iik7CisJCWV4aXRfbmljZWx5KDEpOworCX0KKworCWlmIChmaWxlbmFtZV9pc19waXBlICYmIHN0 cmNtcChjb21wcmVzc2lvbl9hbGdvcml0aG1fc3RyLCAibm9uZSIpICE9IDApCisJeworCQlwZ19s b2dfZXJyb3JfaGludCgiT3B0aW9uIC0tcGlwZS1jb21tYW5kIGlzIG5vdCBzdXBwb3J0ZWQgd2l0 aCBhbnkgY29tcHJlc3Npb24gdHlwZS4iKTsKKwkJZXhpdF9uaWNlbHkoMSk7CisJfQogCiAJLyoK IAkgKiBDdXN0b20gYW5kIGRpcmVjdG9yeSBmb3JtYXRzIGFyZSBjb21wcmVzc2VkIGJ5IGRlZmF1 bHQgd2l0aCBnemlwIHdoZW4KIAkgKiBhdmFpbGFibGUsIG5vdCB0aGUgb3RoZXJzLiAgSWYgZ3pp cCBpcyBub3QgYXZhaWxhYmxlLCBubyBjb21wcmVzc2lvbiBpcwotCSAqIGRvbmUgYnkgZGVmYXVs dC4KKwkgKiBkb25lIGJ5IGRlZmF1bHQuIElmIGRpcmVjdG9yeSBmb3JtYXQgaXMgYmVpbmcgdXNl ZCB3aXRoIHBpcGUtY29tbWFuZCwKKwkgKiBubyBjb21wcmVzc2lvbiBpcyBkb25lLgogCSAqLwog CWlmICgoYXJjaGl2ZUZvcm1hdCA9PSBhcmNoQ3VzdG9tIHx8IGFyY2hpdmVGb3JtYXQgPT0gYXJj aERpcmVjdG9yeSkgJiYKLQkJIXVzZXJfY29tcHJlc3Npb25fZGVmaW5lZCkKKwkJIWZpbGVuYW1l X2lzX3BpcGUgJiYgIXVzZXJfY29tcHJlc3Npb25fZGVmaW5lZCkKIAl7CiAjaWZkZWYgSEFWRV9M SUJaCiAJCWNvbXByZXNzaW9uX2FsZ29yaXRobV9zdHIgPSAiZ3ppcCI7CkBAIC05ODEsNyArMTAx Miw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJLyogT3BlbiB0aGUgb3V0cHV0 IGZpbGUgKi8KIAlmb3V0ID0gQ3JlYXRlQXJjaGl2ZShmaWxlbmFtZSwgYXJjaGl2ZUZvcm1hdCwg Y29tcHJlc3Npb25fc3BlYywKLQkJCQkJCSBkb3N5bmMsIGFyY2hpdmVNb2RlLCBzZXR1cER1bXBX b3JrZXIsIHN5bmNfbWV0aG9kKTsKKwkJCQkJCSBkb3N5bmMsIGFyY2hpdmVNb2RlLCBzZXR1cER1 bXBXb3JrZXIsIHN5bmNfbWV0aG9kLCBmaWxlbmFtZV9pc19waXBlKTsKIAogCS8qIE1ha2UgZHVt cCBvcHRpb25zIGFjY2Vzc2libGUgcmlnaHQgYXdheSAqLwogCVNldEFyY2hpdmVPcHRpb25zKGZv dXQsICZkb3B0LCBOVUxMKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3Jl LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCmluZGV4IDg0YjhkNDEwYzllLi45NDk1 YTM3ZmZjMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYworKysgYi9z cmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCkBAIC00ODUsNyArNDg1LDcgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJCSBvcHRzLT5mb3JtYXROYW1lKTsKIAl9CiAKLQlBSCA9 IE9wZW5BcmNoaXZlKGlucHV0RmlsZVNwZWMsIG9wdHMtPmZvcm1hdCk7CisJQUggPSBPcGVuQXJj aGl2ZShpbnB1dEZpbGVTcGVjLCBvcHRzLT5mb3JtYXQsIGZhbHNlKTsKIAogCVNldEFyY2hpdmVP cHRpb25zKEFILCBOVUxMLCBvcHRzKTsKIAotLSAKMi41Mi4wLjQ1Ny5nNmI1NDkxZGU0My1nb29n Cgo= --0000000000009797790648e21096 Content-Type: application/x-patch; name="v7-0005-WIP-This-is-WIP-patch-for-adding-tests-to-pg_dump.patch" Content-Disposition: attachment; filename="v7-0005-WIP-This-is-WIP-patch-for-adding-tests-to-pg_dump.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mknsceab4 RnJvbSBhYzE4M2I5ZTYxYzRhOTRlYWQ1NjgzNDgwYTExNDc3MDFmODE2YWZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXRpbiBNb3RpYW5pIDxuaXRpbm1vdGlhbmlAZ29vZ2xlLmNv bT4KRGF0ZTogVGh1LCAyMiBNYXkgMjAyNSAxMDoyMDoxNSArMDAwMApTdWJqZWN0OiBbUEFUQ0gg djcgNS81XSBbV0lQXSBUaGlzIGlzIFdJUCBwYXRjaCBmb3IgYWRkaW5nIHRlc3RzIHRvIHBnX2R1 bXAucGwKCiogVGhlIGZpcnN0IHRlc3QgaW4gdGhlIHBhdGNoIHdhcyB0aGUgdGVzdCB3ZSB3ZXJl IG9yaWdpbmFsbHkKICB0cnlpbmcgdG8gYWRkIGJ1dCBpdCBrZXB0IGZhaWxpbmcuCgoqIFRoZSAz IHRlc3RzIGF0IHRoZSBib3R0b20gd2VyZSBwYXJ0IG9mIHRoZSBkZWJ1Z2dpbmcgcHJvY2VzcyBh bmQKICB0aGUgbG9ncyBzaG93ZWQgdGhhdCB0aG9zZSB0ZXN0cyB3b3VsZCBmYWlsIHdoZW5ldmVy IGEgcGlwZQogIHdhcyB1c2VkIGluc2lkZSB0aGUgcGlwZSBjb21tYW5kIGkuZS4gJ2NhdCB8IGd6 aXAnIG9yCiAgJ2NhdCA+IDxmaWxlPicuIEJ1dCBzaW1wbGUgJ2NhdCcgb3IgJ2d6aXAnIHdpdGhv dXQgcGlwZSB3b3JrZWQuCgoqIFRoZSB0ZXN0cyBuZWVkIHRvIGJlIGNsZWFuZWQgdXAgYW5kIHJl cnVuIHRvIGdldCB0aGUgZXhhY3QgZXJyb3IgbWVzc2FnZXMuCi0tLQogc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwgfCAzOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MSBmaWxlIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs CmluZGV4IDI4ODEyZDI4YWE5Li42NThlODQ3MTkzZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKQEAgLTIyMyw2ICsyMjMsMTUgQEAgbXkgJXBnZHVtcF9ydW5zID0gKAogCQldLAogCX0sCiAK KwkjIFRoaXMgdGVzdCBrZXB0IGZhaWxpbmcuCisJZGVmYXVsdHNfZGlyX2Zvcm1hdF9waXBlID0+ IHsKKwkJdGVzdF9rZXkgPT4gJ2RlZmF1bHRzJywKKwkJZHVtcF9jbWQgPT4gWworCQkJJ3BnX2R1 bXAnLCAnLUZkJywgJ3Bvc3RncmVzJywKKwkJCSItLXBpcGUtY29tbWFuZD1cImNhdCA+ICR0ZW1w ZGlyL2RlZmF1bHRzX2Rpcl9mb3JtYXQvJWZcIiIsCisJCV0sCisJfSwKKwogCSMgRG8gbm90IHVz ZSAtLW5vLXN5bmMgdG8gZ2l2ZSB0ZXN0IGNvdmVyYWdlIGZvciBkYXRhIHN5bmMuCiAJZGVmYXVs dHNfcGFyYWxsZWwgPT4gewogCQl0ZXN0X2tleSA9PiAnZGVmYXVsdHMnLApAQCAtNDkzNCw2ICs0 OTQzLDM1IEBAIGZvcmVhY2ggbXkgJGRiIChzb3J0IGtleXMgJWNyZWF0ZV9zcWwpCiAJJG5vZGUt PnNhZmVfcHNxbCgkZGIsICRjcmVhdGVfc3FseyRkYn0pOwogfQogCisjIFRoZXNlIGZvdXIgdGVz dHMgd2VyZSBhZGRlZCB0ZW1wb3JhcmlseSB0byBtb3JlIGVhc2lseSBsb29rIHRocm91Z2ggdGhl IG91dHB1dC4KKyMgVGhleSBmYWlsZWQgYXMgc29vbiBhcyB3ZSB1c2VkIGEgcGlwZSBvZiBhbnkg a2luZCB3aGV0aGVyIHRvIGZpbGUgb3IganVzdCB0byBhbm90aGVyCisjIGNvbW1hbmQuIFRob3Nl IGNvbW1hbmRzIHdvcmtlZCBmaW5lIG1hbnVhbGx5LiBTbyB0aGUgc2Vjb25kICYgZm91cnRoIHRl c3Qgd2hlcmUKKyMgd2Ugb25seSBoYXZlIGNhdCBhbmQgZ3ppcCB3aXRob3V0IGFueSBwaXBlLCB0 aGV5IHdvcmsgZmluZS4gQnV0IHRoZSByZXN0IGRvbid0LgorJG5vZGUtPmNvbW1hbmRfZmFpbHNf bGlrZSgKKwkJWworCQkJJ3BnX2R1bXAnLCAnLUZkJywgJy1CJywgJ3Bvc3RncmVzJywKKwkJCSIt LXBpcGUtY29tbWFuZD1cImNhdCA+ICR0ZW1wZGlyLyVmXCIiLF0sCisJcXIvcGdfZHVtcDogZXJy b3I6IEZhaWx1cmUgaW4gY2F0IHRvIGZpbGUvLAorCSdwZ19kdW1wOiBGYWlsdXJlIGluIGNhdCB0 byBmaWxlIHVzaW5nIHBpcGUtY29tbWFuZCcpOworCisKKyRub2RlLT5jb21tYW5kX29rKAorCQlb CisJCQkncGdfZHVtcCcsICctRmQnLCAnLUInLCAncG9zdGdyZXMnLAorCQkJIi0tcGlwZS1jb21t YW5kPVwiY2F0XCIiLF0sICJUZXN0aW5nIGp1c3Qgd2l0aCBjYXQiKTsKKworJG5vZGUtPmNvbW1h bmRfb2soCisJCVsKKwkJCSdwZ19kdW1wJywgJy1GZCcsICctQicsICdwb3N0Z3JlcycsCisJCQki LS1waXBlLWNvbW1hbmQ9XCJjYXQgfCBnemlwXCIiLF0sICJUZXN0aW5nIHdpdGggY2F0IHBpcGVk IHRvIGd6aXAiKTsKKworCiskbm9kZS0+Y29tbWFuZF9vaygKKwkJWworCQkJJ3BnX2R1bXAnLCAn LUZkJywgJy1CJywgJy14JywgJ3Bvc3RncmVzJywKKwkJCSItLXBpcGUtY29tbWFuZD1cImd6aXBc IiIsXSwgIlRlc3RpbmcganVzdCB3aXRoIGd6aXAiKTsKKworCiAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBUZXN0IGNvbm5lY3RpbmcgdG8gYSBub24tZXhpc3Rl bnQgZGF0YWJhc2UKIAotLSAKMi41Mi4wLjQ1Ny5nNmI1NDkxZGU0My1nb29nCgo= --0000000000009797790648e21096 Content-Type: application/x-patch; name="v7-0003-Add-basic-tests-for-pipe-command.patch" Content-Disposition: attachment; filename="v7-0003-Add-basic-tests-for-pipe-command.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mknscea72 RnJvbSA3NzRhZmJhMDM5N2M4ZTM1NTU2ZjI3NDUxOTYwNzRmZjAxNWQ1YTYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXRpbiBNb3RpYW5pIDxuaXRpbm1vdGlhbmlAZ29vZ2xlLmNv bT4KRGF0ZTogU2F0LCAxNSBGZWIgMjAyNSAwNDoyOToxNyArMDAwMApTdWJqZWN0OiBbUEFUQ0gg djcgMy81XSBBZGQgYmFzaWMgdGVzdHMgZm9yIHBpcGUtY29tbWFuZAoKKiBUaGlzIGN1cnJlbnRs eSBvbmx5IGFkZHMgYSBmZXcgYmFzaWMgdGVzdHMgZm9yIHBnX2R1bXAgd2l0aCAtLXBpcGUtY29t bWFuZC4KKiBUaGVzZSB0ZXN0cyBpbmNsdWRlIHRoZSBpbnZhbGlkIHVzYWdlcyBvZiAtLXBpcGUt Y29tbWFuZCB3aXRoIG90aGVyIGZsYWdzLgoqIFdlIGFyZSBzdGlsbCB3b3JraW5nIG9uIGFkZGlu ZyBvdGhlciB0ZXN0cyBpbiBwZ19kdW1wLnBsLiBCdXQKICB3ZSByYW4gaW50byBzb21lIGlzc3Vl cyB3aGljaCBtaWdodCBiZSByZWxhdGVkIHRvIHNldHVwLgotLS0KIHNyYy9iaW4vcGdfZHVtcC90 LzAwMV9iYXNpYy5wbCB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEg ZmlsZSBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3QvMDAxX2Jhc2ljLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAxX2Jhc2ljLnBsCmluZGV4 IGFiOTMxMGViNDJiLi45ZWY2MzRkZjk4OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAxX2Jhc2ljLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMV9iYXNpYy5wbApAQCAtNzQs NiArNzQsNDIgQEAgY29tbWFuZF9mYWlsc19saWtlKAogCSdwZ19kdW1wOiBvcHRpb25zIC0tc3Rh dGlzdGljcy1vbmx5IGFuZCAtLW5vLXN0YXRpc3RpY3MgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIn CiApOwogCitjb21tYW5kX2ZhaWxzX2xpa2UoCisJWyAncGdfZHVtcCcsICctRmQnLCAnLS1waXBl LWNvbW1hbmQ9ImNhdCInLCAnLWYnLCAndGVzdGRpcicsICd0ZXN0J10sCisJcXIvXFFwZ19kdW1w OiBoaW50OiBPbmx5IG9uZSBvZiBbLS1maWxlLCAtLXBpcGUtY29tbWFuZF0gYWxsb3dlZFxFLywK KwkncGdfZHVtcDogaGludDogT25seSBvbmUgb2YgWy0tZmlsZSwgLS1waXBlLWNvbW1hbmRdIGFs bG93ZWQnCispOworCitjb21tYW5kX2ZhaWxzX2xpa2UoCisJWyAncGdfZHVtcCcsICctRmQnLCAn LS1waXBlLWNvbW1hbmQ9ImNhdCInLCAnLVonLCAnZ3ppcCcsICd0ZXN0J10sCisJcXIvXFFwZ19k dW1wOiBoaW50OiBPcHRpb24gLS1waXBlLWNvbW1hbmQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGFu eSBjb21wcmVzc2lvbiB0eXBlXEUvLAorCSdwZ19kdW1wOiBoaW50OiBPcHRpb24gLS1waXBlLWNv bW1hbmQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGFueSBjb21wcmVzc2lvbiB0eXBlJworKTsKKwor Y29tbWFuZF9mYWlsc19saWtlKAorCVsgJ3BnX2R1bXAnLCAnLUZkJywgJy0tcGlwZS1jb21tYW5k PSJjYXQiJywgJy0tY29tcHJlc3M9bHo0JywgJ3Rlc3QnXSwKKwlxci9cUXBnX2R1bXA6IGhpbnQ6 IE9wdGlvbiAtLXBpcGUtY29tbWFuZCBpcyBub3Qgc3VwcG9ydGVkIHdpdGggYW55IGNvbXByZXNz aW9uIHR5cGVcRS8sCisJJ3BnX2R1bXA6IGhpbnQ6IE9wdGlvbiAtLXBpcGUtY29tbWFuZCBpcyBu b3Qgc3VwcG9ydGVkIHdpdGggYW55IGNvbXByZXNzaW9uIHR5cGUnCispOworCitjb21tYW5kX2Zh aWxzX2xpa2UoCisJWyAncGdfZHVtcCcsICctRmQnLCAnLS1waXBlLWNvbW1hbmQ9ImNhdCInLCAn LVonLCAnMScsICd0ZXN0J10sCisJcXIvXFFwZ19kdW1wOiBoaW50OiBPcHRpb24gLS1waXBlLWNv bW1hbmQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGFueSBjb21wcmVzc2lvbiB0eXBlXEUvLAorCSdw Z19kdW1wOiBoaW50OiBPcHRpb24gLS1waXBlLWNvbW1hbmQgaXMgbm90IHN1cHBvcnRlZCB3aXRo IGFueSBjb21wcmVzc2lvbiB0eXBlJworKTsKKworY29tbWFuZF9mYWlsc19saWtlKAorCVsgJ3Bn X2R1bXAnLCAnLUZjJywgJy0tcGlwZS1jb21tYW5kPSJjYXQiJywgJ3Rlc3QnXSwKKwlxci9cUXBn X2R1bXA6IGhpbnQ6IE9wdGlvbiAtLXBpcGUtY29tbWFuZCBpcyBvbmx5IHN1cHBvcnRlZCB3aXRo IGRpcmVjdG9yeSBmb3JtYXQuXEUvLAorCSdwZ19kdW1wOiBoaW50OiBPcHRpb24gLS1waXBlLWNv bW1hbmQgaXMgb25seSBzdXBwb3J0ZWQgd2l0aCBkaXJlY3RvcnkgZm9ybWF0LicKKyk7CisKK2Nv bW1hbmRfZmFpbHNfbGlrZSgKKwlbICdwZ19kdW1wJywgJy0tZm9ybWF0PXRhcicsICctLXBpcGUt Y29tbWFuZD0iY2F0IicsICd0ZXN0J10sCisJcXIvXFFwZ19kdW1wOiBoaW50OiBPcHRpb24gLS1w aXBlLWNvbW1hbmQgaXMgb25seSBzdXBwb3J0ZWQgd2l0aCBkaXJlY3RvcnkgZm9ybWF0LlxFLywK KwkncGdfZHVtcDogaGludDogT3B0aW9uIC0tcGlwZS1jb21tYW5kIGlzIG9ubHkgc3VwcG9ydGVk IHdpdGggZGlyZWN0b3J5IGZvcm1hdC4nCispOworCiBjb21tYW5kX2ZhaWxzX2xpa2UoCiAJWyAn cGdfZHVtcCcsICctajInLCAnLS1pbmNsdWRlLWZvcmVpZ24tZGF0YT14eHgnIF0sCiAJcXIvXFFw Z19kdW1wOiBlcnJvcjogb3B0aW9uIC0taW5jbHVkZS1mb3JlaWduLWRhdGEgaXMgbm90IHN1cHBv cnRlZCB3aXRoIHBhcmFsbGVsIGJhY2t1cFxFLywKLS0gCjIuNTIuMC40NTcuZzZiNTQ5MWRlNDMt Z29vZwoK --0000000000009797790648e21096 Content-Type: application/x-patch; name="v7-0002-Add-pipe-command-support-in-pg_restore.patch" Content-Disposition: attachment; filename="v7-0002-Add-pipe-command-support-in-pg_restore.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mknscea51 RnJvbSA5MzI1MWExNmNkMDRhOWIxMDAyOTIzNTNlNDc3Yjg2NGQwYzhjZDZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXRpbiBNb3RpYW5pIDxuaXRpbm1vdGlhbmlAZ29vZ2xlLmNv bT4KRGF0ZTogU2F0LCAxNSBGZWIgMjAyNSAwODowNToyNSArMDAwMApTdWJqZWN0OiBbUEFUQ0gg djcgMi81XSBBZGQgcGlwZS1jb21tYW5kIHN1cHBvcnQgaW4gcGdfcmVzdG9yZQoKKiBUaGlzIGlz IHNhbWUgYXMgdGhlIHBnX2R1bXAgY2hhbmdlLiBXZSBhZGQgc3VwcG9ydAogIGZvciAtLXBpcGUt Y29tbWFuZCBpbiBkaXJlY3RvcnkgYXJjaGl2ZSBmb3JtYXQuIFRoaXMgY2FuIGJlIHVzZWQKICB0 byByZWFkIGZyb20gbXVsdGlwbGUgc3RyZWFtcyBhbmQgZG8gcHJlLXByb2Nlc3NpbmcgKGRlY29t cHJlc3Npb24KICB3aXRoIGEgY3VzdG9tIGFsZ29yaXRobSwgZmlsdGVyaW5nIGV0YykgYmVmb3Jl IHJlc3RvcmUuCiAgQ3VycmVudGx5IHRoYXQgaXMgbm90IHBvc3NpYmxlIGJlY2F1c2UgdGhlIHBn X2R1bXAgb3V0cHV0IG9mCiAgZGlyZWN0b3J5IGZvcm1hdCBjYW4ndCBqdXN0IGJlIHBpcGVkLgoq IExpa2UgcGdfZHVtcCwgaGVyZSBhbHNvIGVpdGhlciBmaWxlbmFtZSBvciAtLXBpcGUtY29tbWFu ZCBjYW4gYmUKICBzZXQuIElmIG5laXRoZXIgYXJlIHNldCwgdGhlIHN0YW5kYXJkIGlucHV0IGlz IHVzZWQgYXMgYmVmb3JlLgoqIFRoaXMgaXMgb25seSBzdXBwb3J0ZWQgd2l0aCBjb21wcmVzc2lv biBub25lIGFuZCBhcmNoaXZlIGZvcm1hdAogIGRpcmVjdG9yeS4KKiBXZSByZXVzZSB0aGUgaW5w dXRGaWxlU3BlYyBmaWVsZCBmb3IgdGhlIHBpcGUtY29tbWFuZC4gQW5kIGFkZAogIGEgYm9vbCB0 byBzcGVjaWZ5IGlmIGl0IGlzIGEgcGlwZS4KKiBUaGUgY2hhbmdlcyBtYWRlIGZvciBwZ19kdW1w IHRvIGhhbmRsZSB0aGUgcGlwZSBjYXNlIHdpdGggcG9wZW4KICBhbmQgcGNsb3NlIGFsc28gd29y ayBoZXJlLgoqIFRoZSBsb2dpYyBvZiAlZiBmb3JtYXQgc3BlY2lmaWVyIHRvIHJlYWQgZnJvbSB0 aGUgcGdfZHVtcCBvdXRwdXQKICBpcyB0aGUgc2FtZSB0b28uIE1vc3Qgb2YgdGhlIGNvZGUgZnJv bSB0aGUgcGdfZHVtcCBjb21taXQgd29ya3MuCiAgV2UgYWRkIHNpbWlsYXIgbG9naWMgdG8gdGhl IGZ1bmN0aW9uIHRvIHJlYWQgbGFyZ2Ugb2JqZWN0cy4KKiBUaGUgLS1waXBlIGNvbW1hbmQgd29y a3MgLWwgYW5kIC1MIG9wdGlvbi4KLS0tCiBzcmMvYmluL3BnX2R1bXAvY29tcHJlc3NfaW8uYyAg ICAgICAgIHwgMzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cF9kaXJlY3RvcnkuYyB8IDE2ICsrKysrKysrKysrKystCiBzcmMvYmluL3BnX2R1bXAv cGdfcmVzdG9yZS5jICAgICAgICAgIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiAz IGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19pby5jIGIvc3JjL2Jpbi9wZ19kdW1wL2Nv bXByZXNzX2lvLmMKaW5kZXggNWQwOWQ3YmY0NTguLmIyOGZjZDczNjE3IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvY29tcHJlc3NfaW8uYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29tcHJl c3NfaW8uYwpAQCAtMjYxLDIyICsyNjEsMjggQEAgSW5pdERpc2NvdmVyQ29tcHJlc3NGaWxlSGFu ZGxlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKm1vZGUsCiAKIAlmbmFtZSA9IHBnX3N0 cmR1cChwYXRoKTsKIAotCWlmIChoYXNTdWZmaXgoZm5hbWUsICIuZ3oiKSkKLQkJY29tcHJlc3Np b25fc3BlYy5hbGdvcml0aG0gPSBQR19DT01QUkVTU0lPTl9HWklQOwotCWVsc2UgaWYgKGhhc1N1 ZmZpeChmbmFtZSwgIi5sejQiKSkKLQkJY29tcHJlc3Npb25fc3BlYy5hbGdvcml0aG0gPSBQR19D T01QUkVTU0lPTl9MWjQ7Ci0JZWxzZSBpZiAoaGFzU3VmZml4KGZuYW1lLCAiLnpzdCIpKQotCQlj b21wcmVzc2lvbl9zcGVjLmFsZ29yaXRobSA9IFBHX0NPTVBSRVNTSU9OX1pTVEQ7Ci0JZWxzZQor CS8qCisJICogSWYgdGhlIHBhdGggaXMgYSBwaXBlIGNvbW1hbmQsIHRoZSBjb21wcmVzc2lvbiBh bGdvcml0aG0gaXMgbm9uZS4KKwkgKi8KKwlpZiAoIXBhdGhfaXNfcGlwZV9jb21tYW5kKQogCXsK LQkJaWYgKHN0YXQocGF0aCwgJnN0KSA9PSAwKQotCQkJY29tcHJlc3Npb25fc3BlYy5hbGdvcml0 aG0gPSBQR19DT01QUkVTU0lPTl9OT05FOwotCQllbHNlIGlmIChjaGVja19jb21wcmVzc2VkX2Zp bGUocGF0aCwgJmZuYW1lLCAiZ3oiKSkKKwkJaWYgKGhhc1N1ZmZpeChmbmFtZSwgIi5neiIpKQog CQkJY29tcHJlc3Npb25fc3BlYy5hbGdvcml0aG0gPSBQR19DT01QUkVTU0lPTl9HWklQOwotCQll bHNlIGlmIChjaGVja19jb21wcmVzc2VkX2ZpbGUocGF0aCwgJmZuYW1lLCAibHo0IikpCisJCWVs c2UgaWYgKGhhc1N1ZmZpeChmbmFtZSwgIi5sejQiKSkKIAkJCWNvbXByZXNzaW9uX3NwZWMuYWxn b3JpdGhtID0gUEdfQ09NUFJFU1NJT05fTFo0OwotCQllbHNlIGlmIChjaGVja19jb21wcmVzc2Vk X2ZpbGUocGF0aCwgJmZuYW1lLCAienN0IikpCisJCWVsc2UgaWYgKGhhc1N1ZmZpeChmbmFtZSwg Ii56c3QiKSkKIAkJCWNvbXByZXNzaW9uX3NwZWMuYWxnb3JpdGhtID0gUEdfQ09NUFJFU1NJT05f WlNURDsKKwkJZWxzZQorCQl7CisJCQlpZiAoc3RhdChwYXRoLCAmc3QpID09IDApCisJCQkJY29t cHJlc3Npb25fc3BlYy5hbGdvcml0aG0gPSBQR19DT01QUkVTU0lPTl9OT05FOworCQkJZWxzZSBp ZiAoY2hlY2tfY29tcHJlc3NlZF9maWxlKHBhdGgsICZmbmFtZSwgImd6IikpCisJCQkJY29tcHJl c3Npb25fc3BlYy5hbGdvcml0aG0gPSBQR19DT01QUkVTU0lPTl9HWklQOworCQkJZWxzZSBpZiAo Y2hlY2tfY29tcHJlc3NlZF9maWxlKHBhdGgsICZmbmFtZSwgImx6NCIpKQorCQkJCWNvbXByZXNz aW9uX3NwZWMuYWxnb3JpdGhtID0gUEdfQ09NUFJFU1NJT05fTFo0OworCQkJZWxzZSBpZiAoY2hl Y2tfY29tcHJlc3NlZF9maWxlKHBhdGgsICZmbmFtZSwgInpzdCIpKQorCQkJCWNvbXByZXNzaW9u X3NwZWMuYWxnb3JpdGhtID0gUEdfQ09NUFJFU1NJT05fWlNURDsKKwkJfQogCX0KIAogCUNGSCA9 IEluaXRDb21wcmVzc0ZpbGVIYW5kbGUoY29tcHJlc3Npb25fc3BlYywgcGF0aF9pc19waXBlX2Nv bW1hbmQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9kaXJlY3Rvcnku YyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGlyZWN0b3J5LmMKaW5kZXggZGIyMzAzMWQ5 YWMuLmJjN2M0YzFmOTJmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2Rp cmVjdG9yeS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGlyZWN0b3J5LmMKQEAg LTQzOSw3ICs0MzksMjEgQEAgX0xvYWRMT3MoQXJjaGl2ZUhhbmRsZSAqQUgsIFRvY0VudHJ5ICp0 ZSkKIAkJCQkJIHRvY2ZuYW1lLCBsaW5lKTsKIAogCQlTdGFydFJlc3RvcmVMTyhBSCwgb2lkLCBB SC0+cHVibGljLnJvcHQtPmRyb3BTY2hlbWEpOwotCQlzbnByaW50ZihwYXRoLCBNQVhQR1BBVEgs ICIlcy8lcyIsIGN0eC0+ZGlyZWN0b3J5LCBsb2ZuYW1lKTsKKworCQkvKgorCQkgKiBYWFggOiBD cmVhdGUgYSBoZWxwZXIgZnVuY3Rpb24gZm9yIGJsb2IgZmlsZXMgbmFtaW5nIGNvbW1vbiB0bwor CQkgKiBfTG9hZExPcyBhbiBfU3RhcnRMTy4KKwkJICovCisJCWlmIChBSC0+ZlNwZWNJc1BpcGUp CisJCXsKKwkJCXBpcGUgPSByZXBsYWNlX3BlcmNlbnRfcGxhY2Vob2xkZXJzKGN0eC0+ZGlyZWN0 b3J5LCAicGlwZS1jb21tYW5kIiwgImYiLCBsb2ZuYW1lKTsKKwkJCXN0cmNweShwYXRoLCBwaXBl KTsKKwkJCXBmcmVlKHBpcGUpOworCQl9CisJCWVsc2UKKwkJeworCQkJc25wcmludGYocGF0aCwg TUFYUEdQQVRILCAiJXMvJXMiLCBjdHgtPmRpcmVjdG9yeSwgbG9mbmFtZSk7CisJCX0KIAkJX1By aW50RmlsZURhdGEoQUgsIHBhdGgpOwogCQlFbmRSZXN0b3JlTE8oQUgsIG9pZCk7CiAJfQpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19yZXN0b3JlLmMKaW5kZXggOTQ5NWEzN2ZmYzEuLjQ2NzU4ZjcyZDk4IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0 b3JlLmMKQEAgLTY2LDYgKzY2LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJY2hh cgkgICAqaW5wdXRGaWxlU3BlYzsKIAlib29sCQlkYXRhX29ubHkgPSBmYWxzZTsKIAlib29sCQlz Y2hlbWFfb25seSA9IGZhbHNlOworCWJvb2wJCWZpbGVzcGVjX2lzX3BpcGUgPSBmYWxzZTsKIAlz dGF0aWMgaW50CWRpc2FibGVfdHJpZ2dlcnMgPSAwOwogCXN0YXRpYyBpbnQJZW5hYmxlX3Jvd19z ZWN1cml0eSA9IDA7CiAJc3RhdGljIGludAlpZl9leGlzdHMgPSAwOwpAQCAtMTQyLDYgKzE0Myw3 IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl7InN0YXRpc3RpY3Mtb25seSIsIG5v X2FyZ3VtZW50LCAmc3RhdGlzdGljc19vbmx5LCAxfSwKIAkJeyJmaWx0ZXIiLCByZXF1aXJlZF9h cmd1bWVudCwgTlVMTCwgNH0sCiAJCXsicmVzdHJpY3Qta2V5IiwgcmVxdWlyZWRfYXJndW1lbnQs IE5VTEwsIDZ9LAorCQl7InBpcGUtY29tbWFuZCIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCA3 fSwKIAogCQl7TlVMTCwgMCwgTlVMTCwgMH0KIAl9OwpAQCAtMzIxLDYgKzMyMywxMSBAQCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCQlvcHRzLT5yZXN0cmljdF9rZXkgPSBwZ19zdHJk dXAob3B0YXJnKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSA3OgkJCQkvKiBwaXBlLWNvbW1hbmQg Ki8KKwkJCQlpbnB1dEZpbGVTcGVjID0gcGdfc3RyZHVwKG9wdGFyZyk7CisJCQkJZmlsZXNwZWNf aXNfcGlwZSA9IHRydWU7CisJCQkJYnJlYWs7CisKIAkJCWRlZmF1bHQ6CiAJCQkJLyogZ2V0b3B0 X2xvbmcgYWxyZWFkeSBlbWl0dGVkIGEgY29tcGxhaW50ICovCiAJCQkJcGdfbG9nX2Vycm9yX2hp bnQoIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9uLiIsIHByb2duYW1lKTsK QEAgLTMyOCwxMSArMzM1LDI5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl9CiAJ fQogCi0JLyogR2V0IGZpbGUgbmFtZSBmcm9tIGNvbW1hbmQgbGluZSAqLworCS8qCisJICogR2V0 IGZpbGUgbmFtZSBmcm9tIGNvbW1hbmQgbGluZS4gTm90ZSB0aGF0IGZpbGVuYW1lIGFyZ3VtZW50 IGFuZAorCSAqIHBpcGUtY29tbWFuZCBjYW4ndCBib3RoIGJlIHNldC4KKwkgKi8KIAlpZiAob3B0 aW5kIDwgYXJnYykKKwl7CisJCWlmIChmaWxlc3BlY19pc19waXBlKQorCQl7CisJCQlwZ19sb2df ZXJyb3JfaGludCgiT25seSBvbmUgb2YgW2ZpbGVzcGVjLCAtLXBpcGUtY29tbWFuZF0gYWxsb3dl ZCIpOworCQkJZXhpdF9uaWNlbHkoMSk7CisJCX0KIAkJaW5wdXRGaWxlU3BlYyA9IGFyZ3Zbb3B0 aW5kKytdOwotCWVsc2UKKwl9CisKKwkvKgorCSAqIEV2ZW4gaWYgdGhlIGZpbGUgYXJndW1lbnQg aXMgbm90IHByb3ZpZGVkLCBpZiB0aGUgcGlwZS1jb21tYW5kIGlzCisJICogc3BlY2lmaWVkLCB3 ZSBuZWVkIHRvIHVzZSB0aGF0IGFzIHRoZSBmaWxlIGFyZyBhbmQgbm90IGZhbGxiYWNrIHRvCisJ ICogc3RkaW8uCisJICovCisJZWxzZSBpZiAoIWZpbGVzcGVjX2lzX3BpcGUpCisJewogCQlpbnB1 dEZpbGVTcGVjID0gTlVMTDsKKwl9CiAKIAkvKiBDb21wbGFpbiBpZiBhbnkgYXJndW1lbnRzIHJl bWFpbiAqLwogCWlmIChvcHRpbmQgPCBhcmdjKQpAQCAtNDg1LDcgKzUxMCw4IEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCQkgb3B0cy0+Zm9ybWF0TmFtZSk7CiAJfQogCi0JQUgg PSBPcGVuQXJjaGl2ZShpbnB1dEZpbGVTcGVjLCBvcHRzLT5mb3JtYXQsIGZhbHNlKTsKKworCUFI ID0gT3BlbkFyY2hpdmUoaW5wdXRGaWxlU3BlYywgb3B0cy0+Zm9ybWF0LCBmaWxlc3BlY19pc19w aXBlKTsKIAogCVNldEFyY2hpdmVPcHRpb25zKEFILCBOVUxMLCBvcHRzKTsKIAotLSAKMi41Mi4w LjQ1Ny5nNmI1NDkxZGU0My1nb29nCgo= --0000000000009797790648e21096--