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.94.2) (envelope-from ) id 1tpCK8-001l3U-0v for pgsql-hackers@arkaria.postgresql.org; Mon, 03 Mar 2025 20:23:36 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tpCK4-00FlZO-Ji for pgsql-hackers@arkaria.postgresql.org; Mon, 03 Mar 2025 20:23:32 +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.94.2) (envelope-from ) id 1tpCK4-00FlX7-36 for pgsql-hackers@lists.postgresql.org; Mon, 03 Mar 2025 20:23:32 +0000 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tpCJz-000lnZ-15 for pgsql-hackers@postgresql.org; Mon, 03 Mar 2025 20:23:31 +0000 Received: by mail-pl1-x641.google.com with SMTP id d9443c01a7336-223378e2b0dso70588865ad.0 for ; Mon, 03 Mar 2025 12:23:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741033406; x=1741638206; 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=Jclvs1gfH1RrS2MAZJvMcLienrxx2XXooSRC7K3IQfk=; b=OycvUvENHIMDDOUJtZWqK/uU+ftOj4S+R1zlhDSQdVvJjZTz3PeOHEg/H4V/LVL9Y5 r8W5q96oEY4Rt/emdyUT6UWLQy+rtdYibd4anJ2ERIQzsohhN+dZdpyhbE8plvIZvAqR VLcu1kHv07aveOMtTjC0FgIoS4XoqRf7kqQmZjnLvZWgG2u5d74UfaTf9R4WwetWbju0 +3mObPqq8VWFJdK6pCb0Pawrui6NKrQ997Tm/BlP8hVB+SsiGIM69oVjrOYK/6hhjLrg ebaRYhT/b7xN/JEo5YkXT8UwPGMtnWO5lNcATw4MlZ++4wwveg4OLYTQYw9OnQMQq+5W W6Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741033406; x=1741638206; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Jclvs1gfH1RrS2MAZJvMcLienrxx2XXooSRC7K3IQfk=; b=RM7Q5C35VCLHvYIMUJUoHcRZB5B+32NfTFkd7ZRZy68S/09aqkd/8AFTR1KnLRXG1n dAVa3Y446GVgJqXeK3yoPuYVcwZJ7L1EAO7OG8gJGpv9TNDb9SstomSTbNzQWASxVYG1 S1bg7JTEadfDyrIFjQGgWPwhhfpm5Ef4DvcMw7X0B09XsyJkMl5MePDmD6aFTz8U1HIT WY1MLjVsP6imx7AbCM/hssBbkDV8gQkMljsV/ZHbWGUM/b5CMhxw0hG0ajVOuhzJbO55 ypbQUkfRseQETtsDw/O6z+0ZIgKCJsUe6bBpNlBBO8Re5PvxlOrnq4TgQcglg1TNMxdg J+FQ== X-Forwarded-Encrypted: i=1; AJvYcCXMXyQCS8nW+5YVFGFJ0AWc8/bVb5edD2BqRhOGz8AGEWMw5Y/Sb+RN0mPZ+9u0nDKusdunWwHwdVbaSuWB@postgresql.org X-Gm-Message-State: AOJu0YxiPbjpQ7igXAM/8fPlUcdI8tq+WZ+A/X7VxE2wqopA62ITy4v2 VEUSXoweUORB8kXTpZ73IOBYbaCuccS4KoABpkMdjlKSoCudaizUv3ehfEpSIIV1bPDTJpuj9Gn 6l5eeLKuJP+uBsVIvCO4l9OI++IcKviwTKJI= X-Gm-Gg: ASbGncvJj3SDJNSurS4x43u7mjUdP4YIo2NBqSJBr9L954XJfYs8Ode0xjY2aWdMsCM V3uDjsTlIHuEOulqb5uUVQS5BTNOQedAJ+bqySEByPDJdWUcS3u9DH0x79cGFqlbl3KXCG8p63N WCo8fEMa7DmZvkhFKIz1ZDW+rMw2jzQGSQQa2nrMAVGzKiBADqd6hixhhEFSo= X-Google-Smtp-Source: AGHT+IFeBiB6uWZ3uP94ve421//OuP98Me6hqGT3Oaf5BAHlvUNnzY7CL7kJDKIorAil7uF8RBjlTIQAZtwp03koq3M= X-Received: by 2002:a17:902:f910:b0:21f:68ae:56e3 with SMTP id d9443c01a7336-2236920c402mr151375125ad.39.1741033406314; Mon, 03 Mar 2025 12:23:26 -0800 (PST) MIME-Version: 1.0 References: <21fa36b4-6d56-4556-b524-9e3955b922c8@eisentraut.org> In-Reply-To: From: Alexandra Wang Date: Mon, 3 Mar 2025 14:22:49 -0600 X-Gm-Features: AQ5f1Jpx6mW1p-Bp0crrG6ES5wcqiXMHT_EVMItv9MqjTCU00aJsD8sMSyWfwHw Message-ID: Subject: Re: SQL:2023 JSON simplified accessor support To: Matheus Alcantara Cc: Peter Eisentraut , Andrew Dunstan , Nikita Glukhov , PostgreSQL Hackers , "David E. Wheeler" , jian he Content-Type: multipart/mixed; boundary="000000000000ba7a10062f75ed3c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ba7a10062f75ed3c Content-Type: multipart/alternative; boundary="000000000000ba7a0e062f75ed3a" --000000000000ba7a0e062f75ed3a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Matheus, On Mon, Mar 3, 2025 at 1:43=E2=80=AFPM Matheus Alcantara wrote: > On Mon, Mar 3, 2025 at 4:16=E2=80=AFPM Matheus Alcantara > wrote: > > > > Hi Alex, > > > > The code comments and the commit messages help a lot when reviewing! > Thanks for > > the new version. > > > > The code LGTM and check-world is happy. I've also performed some tests > and > > everything looks good! > Just some minor points about this new version: > > > > ## v9-0005 > > > > Typo on commit message title > ## v9-0006 > > > > > + * The following functions create various types of JsonPathParseItem > nodes, > > > + * which are used to build JsonPath expressions for jsonb simplified > accessor. > > > > > Just to avoid misinterpretation I think that we can replace "The > following > > functions" with "The make_jsonpath_item_* functions" since we can have > more > > functions in the future that are not fully related with these. Does tha= t > make > > sense? > Thank you so much for reviewing! I've attached v10, which addresses your feedback. On Mon, Mar 3, 2025 at 1:43=E2=80=AFPM Matheus Alcantara wrote: > Sorry, I've forgotten to include a question. Do you have anything in mind > about > documentation changes for this patch? > For the documentation, I=E2=80=99m thinking of adding it under JSON Types [= 1]. I=E2=80=99d either add a new =E2=80=9CSimple Dot-Notation=E2=80=9D section = after jsonb subscripting [2] or replace it. Let me know what you think. [1] https://www.postgresql.org/docs/current/datatype-json.html#DATATYPE-JSO= N [2] https://www.postgresql.org/docs/current/datatype-json.html#JSONB-SUBSCRIPTI= NG Best, Alex --000000000000ba7a0e062f75ed3a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Matheus,

On Mon, Mar 3, 2025 = at 1:43=E2=80=AFPM Matheus Alcantara <matheusssilv97@gmail.com> wrote:
On Mon, Mar 3, 2025 at 4:16=E2=80=AFPM Ma= theus Alcantara
<matheusss= ilv97@gmail.com> wrote:
>
> Hi Alex,
>
> The code comments and the commit messages help a lot when reviewing! T= hanks for
> the new version.
>
> The code LGTM and check-world is happy. I've also performed some t= ests and
> everything looks good!
> Just some minor points about this new version:
>
> ## v9-0005
>
> Typo on commit message title
> ## v9-0006
>
> > + * The following functions create various types of JsonPathParse= Item nodes,
> > + * which are used to build JsonPath expressions for jsonb simpli= fied accessor.
> >
> Just to avoid misinterpretation I think that we can replace "The = following
> functions" with "The make_jsonpath_item_* functions" si= nce we can have more
> functions in the future that are not fully related with these. Does th= at make
> sense?

Thank you so much for revie= wing! I've attached v10, which=C2=A0addresses your feedback.
= =C2=A0
On Mon, Mar 3, 2025 at 1:43=E2=80=AFPM Matheus Alcantara &= lt;matheusssilv97@gmail.com= > wrote:
Sorry, I've forgotten to include a question. Do you have anything in mi= nd about
documentation changes for this patch?
=C2=A0
For the documentation, I=E2=80=99m thinking of adding it under JSON Types = [1].
I=E2=80=99d either add a new =E2=80=9CSimple Dot-Notation=E2=80=9D = section after jsonb
subscripting [2] or replace it. Let me know what you= think.


Best,
Alex
--000000000000ba7a0e062f75ed3a-- --000000000000ba7a10062f75ed3c Content-Type: application/octet-stream; name="v10-0004-Extract-coerce_jsonpath_subscript.patch" Content-Disposition: attachment; filename="v10-0004-Extract-coerce_jsonpath_subscript.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7tiargt3 RnJvbSBmMDNmYTE2MzAxMjI1NjEwMDYyNTRiOTU4YWI5YzE0ZTRjYjViYzA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogV2VkLCAyNiBGZWIgMjAyNSAxMzowMzoyNyAtMDYwMApTdWJqZWN0OiBb UEFUQ0ggdjEwIDQvN10gRXh0cmFjdCBjb2VyY2VfanNvbnBhdGhfc3Vic2NyaXB0KCkKClRoaXMg aXMgYSBwcmVwYXJhdGlvbiBzdGVwIGZvciBhIGZ1dHVyZSBjb21taXQgdGhhdCB3aWxsIHJldXNl IHRoZQphZm9yZW1lbnRpb25lZCBmdW5jdGlvbi4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQv anNvbmJzdWJzLmMgfCAxNDIgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgNjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2pzb25ic3Vicy5jCmluZGV4IGEwZDM4YTBmZDgwLi4zZmZlNDBjZmE0MCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9qc29uYnN1YnMuYwpAQCAtMzIsNiArMzIsODMgQEAgdHlwZWRlZiBzdHJ1Y3QgSnNvbmJT dWJXb3Jrc3BhY2UKIAlEYXR1bQkgICAqaW5kZXg7CQkJLyogU3Vic2NyaXB0IHZhbHVlcyBpbiBE YXR1bSBmb3JtYXQgKi8KIH0gSnNvbmJTdWJXb3Jrc3BhY2U7CiAKK3N0YXRpYyBPaWQKK2pzb25i X3N1YnNjcmlwdF90eXBlKE5vZGUgKmV4cHIpCit7CisJaWYgKGV4cHIgJiYgSXNBKGV4cHIsIFN0 cmluZykpCisJCXJldHVybiBURVhUT0lEOworCisJcmV0dXJuIGV4cHJUeXBlKGV4cHIpOworfQor CitzdGF0aWMgTm9kZSAqCitjb2VyY2VfanNvbnBhdGhfc3Vic2NyaXB0KFBhcnNlU3RhdGUgKnBz dGF0ZSwgTm9kZSAqc3ViRXhwciwgT2lkIG51bXR5cGUpCit7CisJT2lkCQkJc3ViRXhwclR5cGUg PSBqc29uYl9zdWJzY3JpcHRfdHlwZShzdWJFeHByKTsKKwlPaWQJCQl0YXJnZXRUeXBlID0gVU5L Tk9XTk9JRDsKKworCWlmIChzdWJFeHByVHlwZSAhPSBVTktOT1dOT0lEKQorCXsKKwkJT2lkCQkJ dGFyZ2V0c1syXSA9IHtudW10eXBlLCBURVhUT0lEfTsKKworCQkvKgorCQkgKiBKc29uYiBjYW4g aGFuZGxlIG11bHRpcGxlIHN1YnNjcmlwdCB0eXBlcywgYnV0IGNhc2VzIHdoZW4gYQorCQkgKiBz dWJzY3JpcHQgY291bGQgYmUgY29lcmNlZCB0byBtdWx0aXBsZSB0YXJnZXQgdHlwZXMgbXVzdCBi ZQorCQkgKiBhdm9pZGVkLCBzaW1pbGFyIHRvIG92ZXJsb2FkZWQgZnVuY3Rpb25zLiBJdCBjb3Vs ZCBiZSBwb3NzaWJseQorCQkgKiBleHRlbmQgd2l0aCBqc29ucGF0aCBpbiB0aGUgZnV0dXJlLgor CQkgKi8KKwkJZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspCisJCXsKKwkJCWlmIChjYW5fY29l cmNlX3R5cGUoMSwgJnN1YkV4cHJUeXBlLCAmdGFyZ2V0c1tpXSwgQ09FUkNJT05fSU1QTElDSVQp KQorCQkJeworCQkJCS8qCisJCQkJICogT25lIHR5cGUgaGFzIGFscmVhZHkgc3VjY2VlZGVkLCBp dCBtZWFucyB0aGVyZSBhcmUgdHdvCisJCQkJICogY29lcmNpb24gdGFyZ2V0cyBwb3NzaWJsZSwg ZmFpbHVyZS4KKwkJCQkgKi8KKwkJCQlpZiAodGFyZ2V0VHlwZSAhPSBVTktOT1dOT0lEKQorCQkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFU Q0gpLAorCQkJCQkJCSBlcnJtc2coInN1YnNjcmlwdCB0eXBlICVzIGlzIG5vdCBzdXBwb3J0ZWQi LCBmb3JtYXRfdHlwZV9iZShzdWJFeHByVHlwZSkpLAorCQkJCQkJCSBlcnJoaW50KCJqc29uYiBz dWJzY3JpcHQgbXVzdCBiZSBjb2VyY2libGUgdG8gb25seSBvbmUgdHlwZSwgaW50ZWdlciBvciB0 ZXh0LiIpLAorCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24o c3ViRXhwcikpKSk7CisKKwkJCQl0YXJnZXRUeXBlID0gdGFyZ2V0c1tpXTsKKwkJCX0KKwkJfQor CisJCS8qCisJCSAqIE5vIHN1aXRhYmxlIHR5cGVzIHdlcmUgZm91bmQsIGZhaWx1cmUuCisJCSAq LworCQlpZiAodGFyZ2V0VHlwZSA9PSBVTktOT1dOT0lEKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInN1 YnNjcmlwdCB0eXBlICVzIGlzIG5vdCBzdXBwb3J0ZWQiLCBmb3JtYXRfdHlwZV9iZShzdWJFeHBy VHlwZSkpLAorCQkJCQkgZXJyaGludCgianNvbmIgc3Vic2NyaXB0IG11c3QgYmUgY29lcmNpYmxl IHRvIGVpdGhlciBpbnRlZ2VyIG9yIHRleHQuIiksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCBleHByTG9jYXRpb24oc3ViRXhwcikpKSk7CisJfQorCWVsc2UKKwkJdGFyZ2V0VHlw ZSA9IFRFWFRPSUQ7CisKKwkvKgorCSAqIFdlIGtub3duIGZyb20gY2FuX2NvZXJjZV90eXBlIHRo YXQgY29lcmNpb24gd2lsbCBzdWNjZWVkLCBzbworCSAqIGNvZXJjZV90eXBlIGNvdWxkIGJlIHVz ZWQuIE5vdGUgdGhlIGltcGxpY2l0IGNvZXJjaW9uIGNvbnRleHQsIHdoaWNoIGlzCisJICogcmVx dWlyZWQgdG8gaGFuZGxlIHN1YnNjcmlwdHMgb2YgZGlmZmVyZW50IHR5cGVzLCBzaW1pbGFyIHRv IG92ZXJsb2FkZWQKKwkgKiBmdW5jdGlvbnMuCisJICovCisJc3ViRXhwciA9IGNvZXJjZV90eXBl KHBzdGF0ZSwKKwkJCQkJCSAgc3ViRXhwciwgc3ViRXhwclR5cGUsCisJCQkJCQkgIHRhcmdldFR5 cGUsIC0xLAorCQkJCQkJICBDT0VSQ0lPTl9JTVBMSUNJVCwKKwkJCQkJCSAgQ09FUkNFX0lNUExJ Q0lUX0NBU1QsCisJCQkJCQkgIC0xKTsKKwlpZiAoc3ViRXhwciA9PSBOVUxMKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCSBl cnJtc2coImpzb25iIHN1YnNjcmlwdCBtdXN0IGhhdmUgdGV4dCB0eXBlIiksCisJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsKKworCXJldHVy biBzdWJFeHByOworfQogCiAvKgogICogRmluaXNoIHBhcnNlIGFuYWx5c2lzIG9mIGEgU3Vic2Ny aXB0aW5nUmVmIGV4cHJlc3Npb24gZm9yIGEganNvbmIuCkBAIC03NSw3MSArMTUyLDggQEAganNv bmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAogCQlpZiAo YWktPnVpZHgpCiAJCXsKLQkJCU9pZAkJCXN1YkV4cHJUeXBlID0gSW52YWxpZE9pZCwKLQkJCQkJ CXRhcmdldFR5cGUgPSBVTktOT1dOT0lEOwotCiAJCQlzdWJFeHByID0gdHJhbnNmb3JtRXhwcihw c3RhdGUsIGFpLT51aWR4LCBwc3RhdGUtPnBfZXhwcl9raW5kKTsKLQkJCXN1YkV4cHJUeXBlID0g ZXhwclR5cGUoc3ViRXhwcik7Ci0KLQkJCWlmIChzdWJFeHByVHlwZSAhPSBVTktOT1dOT0lEKQot CQkJewotCQkJCU9pZAkJCXRhcmdldHNbMl0gPSB7SU5UNE9JRCwgVEVYVE9JRH07Ci0KLQkJCQkv KgotCQkJCSAqIEpzb25iIGNhbiBoYW5kbGUgbXVsdGlwbGUgc3Vic2NyaXB0IHR5cGVzLCBidXQg Y2FzZXMgd2hlbiBhCi0JCQkJICogc3Vic2NyaXB0IGNvdWxkIGJlIGNvZXJjZWQgdG8gbXVsdGlw bGUgdGFyZ2V0IHR5cGVzIG11c3QgYmUKLQkJCQkgKiBhdm9pZGVkLCBzaW1pbGFyIHRvIG92ZXJs b2FkZWQgZnVuY3Rpb25zLiBJdCBjb3VsZCBiZQotCQkJCSAqIHBvc3NpYmx5IGV4dGVuZCB3aXRo IGpzb25wYXRoIGluIHRoZSBmdXR1cmUuCi0JCQkJICovCi0JCQkJZm9yIChpbnQgaSA9IDA7IGkg PCAyOyBpKyspCi0JCQkJewotCQkJCQlpZiAoY2FuX2NvZXJjZV90eXBlKDEsICZzdWJFeHByVHlw ZSwgJnRhcmdldHNbaV0sIENPRVJDSU9OX0lNUExJQ0lUKSkKLQkJCQkJewotCQkJCQkJLyoKLQkJ CQkJCSAqIE9uZSB0eXBlIGhhcyBhbHJlYWR5IHN1Y2NlZWRlZCwgaXQgbWVhbnMgdGhlcmUgYXJl Ci0JCQkJCQkgKiB0d28gY29lcmNpb24gdGFyZ2V0cyBwb3NzaWJsZSwgZmFpbHVyZS4KLQkJCQkJ CSAqLwotCQkJCQkJaWYgKHRhcmdldFR5cGUgIT0gVU5LTk9XTk9JRCkKLQkJCQkJCQllcmVwb3J0 KEVSUk9SLAotCQkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0J CQkJCQkJCQkgZXJybXNnKCJzdWJzY3JpcHQgdHlwZSAlcyBpcyBub3Qgc3VwcG9ydGVkIiwgZm9y bWF0X3R5cGVfYmUoc3ViRXhwclR5cGUpKSwKLQkJCQkJCQkJCSBlcnJoaW50KCJqc29uYiBzdWJz Y3JpcHQgbXVzdCBiZSBjb2VyY2libGUgdG8gb25seSBvbmUgdHlwZSwgaW50ZWdlciBvciB0ZXh0 LiIpLAotCQkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihz dWJFeHByKSkpKTsKLQotCQkJCQkJdGFyZ2V0VHlwZSA9IHRhcmdldHNbaV07Ci0JCQkJCX0KLQkJ CQl9Ci0KLQkJCQkvKgotCQkJCSAqIE5vIHN1aXRhYmxlIHR5cGVzIHdlcmUgZm91bmQsIGZhaWx1 cmUuCi0JCQkJICovCi0JCQkJaWYgKHRhcmdldFR5cGUgPT0gVU5LTk9XTk9JRCkKLQkJCQkJZXJl cG9ydChFUlJPUiwKLQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwK LQkJCQkJCQkgZXJybXNnKCJzdWJzY3JpcHQgdHlwZSAlcyBpcyBub3Qgc3VwcG9ydGVkIiwgZm9y bWF0X3R5cGVfYmUoc3ViRXhwclR5cGUpKSwKLQkJCQkJCQkgZXJyaGludCgianNvbmIgc3Vic2Ny aXB0IG11c3QgYmUgY29lcmNpYmxlIHRvIGVpdGhlciBpbnRlZ2VyIG9yIHRleHQuIiksCi0JCQkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsK LQkJCX0KLQkJCWVsc2UKLQkJCQl0YXJnZXRUeXBlID0gVEVYVE9JRDsKLQotCQkJLyoKLQkJCSAq IFdlIGtub3duIGZyb20gY2FuX2NvZXJjZV90eXBlIHRoYXQgY29lcmNpb24gd2lsbCBzdWNjZWVk LCBzbwotCQkJICogY29lcmNlX3R5cGUgY291bGQgYmUgdXNlZC4gTm90ZSB0aGUgaW1wbGljaXQg Y29lcmNpb24gY29udGV4dCwKLQkJCSAqIHdoaWNoIGlzIHJlcXVpcmVkIHRvIGhhbmRsZSBzdWJz Y3JpcHRzIG9mIGRpZmZlcmVudCB0eXBlcywKLQkJCSAqIHNpbWlsYXIgdG8gb3ZlcmxvYWRlZCBm dW5jdGlvbnMuCi0JCQkgKi8KLQkJCXN1YkV4cHIgPSBjb2VyY2VfdHlwZShwc3RhdGUsCi0JCQkJ CQkJCSAgc3ViRXhwciwgc3ViRXhwclR5cGUsCi0JCQkJCQkJCSAgdGFyZ2V0VHlwZSwgLTEsCi0J CQkJCQkJCSAgQ09FUkNJT05fSU1QTElDSVQsCi0JCQkJCQkJCSAgQ09FUkNFX0lNUExJQ0lUX0NB U1QsCi0JCQkJCQkJCSAgLTEpOwotCQkJaWYgKHN1YkV4cHIgPT0gTlVMTCkKLQkJCQllcmVwb3J0 KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJ CQkgZXJybXNnKCJqc29uYiBzdWJzY3JpcHQgbXVzdCBoYXZlIHRleHQgdHlwZSIpLAotCQkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsKKwkJ CXN1YkV4cHIgPSBjb2VyY2VfanNvbnBhdGhfc3Vic2NyaXB0KHBzdGF0ZSwgc3ViRXhwciwgSU5U NE9JRCk7CiAJCX0KIAkJZWxzZQogCQl7Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --000000000000ba7a10062f75ed3c Content-Type: application/octet-stream; name="v10-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" Content-Disposition: attachment; filename="v10-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7tiargp1 RnJvbSAwNTA3MDNjY2I0ZTE3ODY3MTA3MjJiNDUxZWFiY2YxYTkwOGNkNzYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAxNjoyMToyMCArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djEwIDIvN10gQWxsb3cgR2VuZXJpYyBUeXBlIFN1YnNjcmlwdGluZyB0byBBY2NlcHQgRG90CiBO b3RhdGlvbiAoLikgYXMgSW5wdXQKClRoaXMgY2hhbmdlIGV4dGVuZHMgZ2VuZXJpYyB0eXBlIHN1 YnNjcmlwdGluZyB0byByZWNvZ25pemUgZG90Cm5vdGF0aW9uICguKSBpbiBhZGRpdGlvbiB0byBi cmFja2V0IG5vdGF0aW9uIChbXSkuIFdoaWxlIHRoaXMgZG9lcyBub3QKeWV0IHByb3ZpZGUgZnVs bCBzdXBwb3J0IGZvciBkb3Qgbm90YXRpb24sIGl0IGVuYWJsZXMgc3Vic2NyaXB0aW5nCmNvbnRh aW5lcnMgdG8gcHJvY2VzcyBpdCBpbiB0aGUgZnV0dXJlLgoKRm9yIG5vdywgY29udGFpbmVyLXNw ZWNpZmljIHRyYW5zZm9ybSBmdW5jdGlvbnMgb25seSBoYW5kbGUKc3Vic2NyaXB0aW5nIGluZGlj ZXMgYW5kIHN0b3AgcHJvY2Vzc2luZyB3aGVuIGVuY291bnRlcmluZyBkb3QKbm90YXRpb24uIEl0 IGlzIHVwIHRvIGluZGl2aWR1YWwgY29udGFpbmVycyB0byBkZWNpZGUgaG93IHRvIHRyYW5zZm9y bQpkb3Qgbm90YXRpb24gaW4gc3Vic2VxdWVudCB1cGRhdGVzLgotLS0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgICB8IDY2ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0K IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMgICB8IDQxICsrKysrKysrKysrKysrKysr LS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyB8ICAzICstCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvYXJyYXlzdWJzLmMgfCAxMyArKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYyB8IDExICsrKysrLQogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aCAgIHwgIDMgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTA1IGluc2VydGlvbnMoKyksIDMyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDJjMGY0YTUwYjIxLi44ZWE1MTE3 NjE5NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00NDIsOCArNDQyLDkgQEAgdHJhbnNm b3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJ TGlzdENlbGwgICAqaTsKIAogCS8qCi0JICogV2UgaGF2ZSB0byBzcGxpdCBhbnkgZmllbGQtc2Vs ZWN0aW9uIG9wZXJhdGlvbnMgYXBhcnQgZnJvbQotCSAqIHN1YnNjcmlwdGluZy4gIEFkamFjZW50 IEFfSW5kaWNlcyBub2RlcyBoYXZlIHRvIGJlIHRyZWF0ZWQgYXMgYSBzaW5nbGUKKwkgKiBDb21i aW5lIGZpZWxkIG5hbWVzIGFuZCBzdWJzY3JpcHRzIGludG8gYSBzaW5nbGUgaW5kaXJlY3Rpb24g bGlzdCwgYXMKKwkgKiBzb21lIHN1YnNjcmlwdGluZyBjb250YWluZXJzLCBzdWNoIGFzIGpzb25i LCBzdXBwb3J0IGZpZWxkIGFjY2VzcyB1c2luZworCSAqIGRvdCBub3RhdGlvbi4gQWRqYWNlbnQg QV9JbmRpY2VzIG5vZGVzIGhhdmUgdG8gYmUgdHJlYXRlZCBhcyBhIHNpbmdsZQogCSAqIG11bHRp ZGltZW5zaW9uYWwgc3Vic2NyaXB0IG9wZXJhdGlvbi4KIAkgKi8KIAlmb3JlYWNoKGksIGluZC0+ aW5kaXJlY3Rpb24pCkBAIC00NjEsMTkgKzQ2Miw0MyBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJfQogCQllbHNlCiAJCXsK LQkJCU5vZGUJICAgKm5ld3Jlc3VsdDsKLQogCQkJQXNzZXJ0KElzQShuLCBTdHJpbmcpKTsKKwkJ CXN1YnNjcmlwdHMgPSBsYXBwZW5kKHN1YnNjcmlwdHMsIG4pOworCQl9CisJfQorCisJd2hpbGUg KHN1YnNjcmlwdHMpCisJeworCQkvKiB0cnkgcHJvY2Vzc2luZyBjb250YWluZXIgc3Vic2NyaXB0 cyBmaXJzdCAqLworCQlOb2RlCSAgICpuZXdyZXN1bHQgPSAoTm9kZSAqKQorCQkJdHJhbnNmb3Jt Q29udGFpbmVyU3Vic2NyaXB0cyhwc3RhdGUsCisJCQkJCQkJCQkJIHJlc3VsdCwKKwkJCQkJCQkJ CQkgZXhwclR5cGUocmVzdWx0KSwKKwkJCQkJCQkJCQkgZXhwclR5cG1vZChyZXN1bHQpLAorCQkJ CQkJCQkJCSAmc3Vic2NyaXB0cywKKwkJCQkJCQkJCQkgZmFsc2UsCisJCQkJCQkJCQkJIHRydWUp OworCisJCWlmICghbmV3cmVzdWx0KQorCQl7CisJCQkvKgorCQkJICogZ2VuZXJpYyBzdWJzY3Jp cHRpbmcgZmFpbGVkOyBmYWxsaW5nIGJhY2sgdG8gZnVuY3Rpb24gY2FsbCBvcgorCQkJICogZmll bGQgc2VsZWN0aW9uIGZvciBhIGNvbXBvc2l0ZSB0eXBlLgorCQkJICovCisJCQlOb2RlCSAgICpu OworCisJCQlBc3NlcnQoc3Vic2NyaXB0cyk7CiAKLQkJCS8qIHByb2Nlc3Mgc3Vic2NyaXB0cyBi ZWZvcmUgdGhpcyBmaWVsZCBzZWxlY3Rpb24gKi8KLQkJCXdoaWxlIChzdWJzY3JpcHRzKQotCQkJ CXJlc3VsdCA9IChOb2RlICopIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMocHN0YXRlLAot CQkJCQkJCQkJCQkJCQkJICAgcmVzdWx0LAotCQkJCQkJCQkJCQkJCQkJICAgZXhwclR5cGUocmVz dWx0KSwKLQkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBtb2QocmVzdWx0KSwKLQkJCQkJCQkJCQkJ CQkJCSAgICZzdWJzY3JpcHRzLAotCQkJCQkJCQkJCQkJCQkJICAgZmFsc2UpOworCQkJbiA9IGxp bml0aWFsKHN1YnNjcmlwdHMpOworCisJCQlpZiAoIUlzQShuLCBTdHJpbmcpKQorCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJ CQkJCSBlcnJtc2coImNhbm5vdCBzdWJzY3JpcHQgdHlwZSAlcyBiZWNhdXNlIGl0IGRvZXMgbm90 IHN1cHBvcnQgc3Vic2NyaXB0aW5nIiwKKwkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoZXhwclR5cGUo cmVzdWx0KSkpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlv bihyZXN1bHQpKSkpOwogCisJCQkvKiB0cnkgdG8gZmluZCBmdW5jdGlvbiBmb3IgZmllbGQgc2Vs ZWN0aW9uICovCiAJCQluZXdyZXN1bHQgPSBQYXJzZUZ1bmNPckNvbHVtbihwc3RhdGUsCiAJCQkJ CQkJCQkJICBsaXN0X21ha2UxKG4pLAogCQkJCQkJCQkJCSAgbGlzdF9tYWtlMShyZXN1bHQpLApA QCAtNDgxLDE5ICs1MDYsMTYgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJCQkJCQkJCQkJICBOVUxMLAogCQkJCQkJCQkJCSAg ZmFsc2UsCiAJCQkJCQkJCQkJICBsb2NhdGlvbik7Ci0JCQlpZiAobmV3cmVzdWx0ID09IE5VTEwp CisKKwkJCWlmICghbmV3cmVzdWx0KQogCQkJCXVua25vd25fYXR0cmlidXRlKHBzdGF0ZSwgcmVz dWx0LCBzdHJWYWwobiksIGxvY2F0aW9uKTsKLQkJCXJlc3VsdCA9IG5ld3Jlc3VsdDsKKworCQkJ LyogY29uc3VtZSBmaWVsZCBzZWxlY3QgKi8KKwkJCXN1YnNjcmlwdHMgPSBsaXN0X2RlbGV0ZV9m aXJzdChzdWJzY3JpcHRzKTsKIAkJfQorCisJCXJlc3VsdCA9IG5ld3Jlc3VsdDsKIAl9Ci0JLyog cHJvY2VzcyB0cmFpbGluZyBzdWJzY3JpcHRzLCBpZiBhbnkgKi8KLQl3aGlsZSAoc3Vic2NyaXB0 cykKLQkJcmVzdWx0ID0gKE5vZGUgKikgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhwc3Rh dGUsCi0JCQkJCQkJCQkJCQkJICAgcmVzdWx0LAotCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJl c3VsdCksCi0JCQkJCQkJCQkJCQkJICAgZXhwclR5cG1vZChyZXN1bHQpLAotCQkJCQkJCQkJCQkJ CSAgICZzdWJzY3JpcHRzLAotCQkJCQkJCQkJCQkJCSAgIGZhbHNlKTsKIAogCXJldHVybiByZXN1 bHQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYwppbmRleCAxOWE2YjY3OGU2Ny4uYjNlNDc2ZWIx ODEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYwpAQCAtMjM4LDYgKzIzOCw4IEBAIHRyYW5zZm9y bUNvbnRhaW5lclR5cGUoT2lkICpjb250YWluZXJUeXBlLCBpbnQzMiAqY29udGFpbmVyVHlwbW9k KQogICogY29udGFpbmVyVHlwTW9kCXR5cG1vZCBmb3IgdGhlIGNvbnRhaW5lcgogICogaW5kaXJl Y3Rpb24JCVVudHJhbnNmb3JtZWQgbGlzdCBvZiBzdWJzY3JpcHRzIChtdXN0IG5vdCBiZSBOSUwp CiAgKiBpc0Fzc2lnbm1lbnQJCVRydWUgaWYgdGhpcyB3aWxsIGJlY29tZSBhIGNvbnRhaW5lciBh c3NpZ25tZW50LgorICogbm9FcnJvcgkJCVRydWUgZm9yIHJldHVybiBOVUxMIHdpdGggbm8gZXJy b3IsIGlmIHRoZSBjb250YWluZXIgdHlwZQorICogCQkJCQlpcyBub3Qgc3Vic2NyaXB0YWJsZS4K ICAqLwogU3Vic2NyaXB0aW5nUmVmICoKIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFy c2VTdGF0ZSAqcHN0YXRlLApAQCAtMjQ1LDEzICsyNDcsMTUgQEAgdHJhbnNmb3JtQ29udGFpbmVy U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJIE9pZCBjb250YWluZXJUeXBl LAogCQkJCQkJCSBpbnQzMiBjb250YWluZXJUeXBNb2QsCiAJCQkJCQkJIExpc3QgKippbmRpcmVj dGlvbiwKLQkJCQkJCQkgYm9vbCBpc0Fzc2lnbm1lbnQpCisJCQkJCQkJIGJvb2wgaXNBc3NpZ25t ZW50LAorCQkJCQkJCSBib29sIG5vRXJyb3IpCiB7CiAJU3Vic2NyaXB0aW5nUmVmICpzYnNyZWY7 CiAJY29uc3QgU3Vic2NyaXB0Um91dGluZXMgKnNic3JvdXRpbmVzOwogCU9pZAkJCWVsZW1lbnRU eXBlOwogCWJvb2wJCWlzU2xpY2UgPSBmYWxzZTsKIAlMaXN0Q2VsbCAgICppZHg7CisJaW50CQkJ aW5kaXJlY3Rpb25fbGVuZ3RoID0gbGlzdF9sZW5ndGgoKmluZGlyZWN0aW9uKTsKIAogCS8qCiAJ ICogRGV0ZXJtaW5lIHRoZSBhY3R1YWwgY29udGFpbmVyIHR5cGUsIHNtYXNoaW5nIGFueSBkb21h aW4uICBJbiB0aGUKQEAgLTI2NywxMSArMjcxLDE2IEBAIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNj cmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCSAqLwogCXNic3JvdXRpbmVzID0gZ2V0U3Vic2Ny aXB0aW5nUm91dGluZXMoY29udGFpbmVyVHlwZSwgJmVsZW1lbnRUeXBlKTsKIAlpZiAoIXNic3Jv dXRpbmVzKQorCXsKKwkJaWYgKG5vRXJyb3IpCisJCQlyZXR1cm4gTlVMTDsKKwogCQllcmVwb3J0 KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAogCQkJCSBl cnJtc2coImNhbm5vdCBzdWJzY3JpcHQgdHlwZSAlcyBiZWNhdXNlIGl0IGRvZXMgbm90IHN1cHBv cnQgc3Vic2NyaXB0aW5nIiwKIAkJCQkJCWZvcm1hdF90eXBlX2JlKGNvbnRhaW5lclR5cGUpKSwK IAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGNvbnRhaW5lckJh c2UpKSkpOworCX0KIAogCS8qCiAJICogRGV0ZWN0IHdoZXRoZXIgYW55IG9mIHRoZSBpbmRpcmVj dGlvbiBpdGVtcyBhcmUgc2xpY2Ugc3BlY2lmaWVycy4KQEAgLTI4Miw5ICsyOTEsOSBAQCB0cmFu c2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkgKi8KIAlmb3Jl YWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsKLQkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9k ZShBX0luZGljZXMsIGlkeCk7CisJCU5vZGUJICAgKmFpID0gbGZpcnN0KGlkeCk7CiAKLQkJaWYg KGFpLT5pc19zbGljZSkKKwkJaWYgKElzQShhaSwgQV9JbmRpY2VzKSAmJiBjYXN0Tm9kZShBX0lu ZGljZXMsIGFpKS0+aXNfc2xpY2UpCiAJCXsKIAkJCWlzU2xpY2UgPSB0cnVlOwogCQkJYnJlYWs7 CkBAIC0zMTIsNiArMzIxLDMyIEBAIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VT dGF0ZSAqcHN0YXRlLAogCXNic3JvdXRpbmVzLT50cmFuc2Zvcm0oc2JzcmVmLCBpbmRpcmVjdGlv biwgcHN0YXRlLAogCQkJCQkJICAgaXNTbGljZSwgaXNBc3NpZ25tZW50KTsKIAorCS8qCisJICog RXJyb3Igb3V0LCBpZiBkYXRhdHlwZSBmYWlsZWQgdG8gY29uc3VtZSBhbnkgaW5kaXJlY3Rpb24g ZWxlbWVudHMuCisJICovCisJaWYgKGxpc3RfbGVuZ3RoKCppbmRpcmVjdGlvbikgPT0gaW5kaXJl Y3Rpb25fbGVuZ3RoKQorCXsKKwkJTm9kZQkgICAqaW5kID0gbGluaXRpYWwoKmluZGlyZWN0aW9u KTsKKworCQlpZiAobm9FcnJvcikKKwkJCXJldHVybiBOVUxMOworCisJCWlmIChJc0EoaW5kLCBT dHJpbmcpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQ RV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInR5cGUgJXMgZG9lcyBub3Qgc3VwcG9ydCBkb3Qg bm90YXRpb24iLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKGNvbnRhaW5lclR5cGUpKSwKKwkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihjb250YWluZXJCYXNlKSkp KTsKKwkJZWxzZSBpZiAoSXNBKGluZCwgQV9JbmRpY2VzKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJybXNnKCJ0 eXBlICVzIGRvZXMgbm90IHN1cHBvcnQgYXJyYXkgc3Vic2NyaXB0aW5nIiwKKwkJCQkJCQlmb3Jt YXRfdHlwZV9iZShjb250YWluZXJUeXBlKSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBleHByTG9jYXRpb24oY29udGFpbmVyQmFzZSkpKSk7CisJCWVsc2UKKwkJCWVsb2coRVJS T1IsICJpbnZhbGlkIGluZGlyZWN0aW9uIG9wZXJhdGlvbjogJWQiLCBub2RlVGFnKGluZCkpOwor CX0KKwogCS8qCiAJICogVmVyaWZ5IHdlIGdvdCBhIHZhbGlkIHR5cGUgKHRoaXMgZGVmZW5kcywg Zm9yIGV4YW1wbGUsIGFnYWluc3Qgc29tZW9uZQogCSAqIHVzaW5nIGFycmF5X3N1YnNjcmlwdF9o YW5kbGVyIGFzIHR5cHN1YnNjcmlwdCB3aXRob3V0IHNldHRpbmcgdHlwZWxlbSkuCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggNDY3NWE1MjMwNDUuLjNlZjU4OTdmMmViIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3RhcmdldC5jCkBAIC05MzcsNyArOTM3LDggQEAgdHJhbnNmb3JtQXNzaWdu bWVudFN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSAgY29udGFpbmVy VHlwZSwKIAkJCQkJCQkJCQkgIGNvbnRhaW5lclR5cE1vZCwKIAkJCQkJCQkJCQkgICZzdWJzY3Jp cHRzLAotCQkJCQkJCQkJCSAgdHJ1ZSk7CisJCQkJCQkJCQkJICB0cnVlLAorCQkJCQkJCQkJCSAg ZmFsc2UpOwogCiAJdHlwZU5lZWRlZCA9IHNic3JlZi0+cmVmcmVzdHlwZTsKIAl0eXBtb2ROZWVk ZWQgPSBzYnNyZWYtPnJlZnR5cG1vZDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9hcnJheXN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheXN1YnMuYwppbmRleCAy MzRjMmMyNzhjMS4uZDAzZDM1MTlkZmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9hcnJheXN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMKQEAg LTYyLDYgKzYyLDcgQEAgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYg KnNic3JlZiwKIAlMaXN0CSAgICp1cHBlckluZGV4cHIgPSBOSUw7CiAJTGlzdAkgICAqbG93ZXJJ bmRleHByID0gTklMOwogCUxpc3RDZWxsICAgKmlkeDsKKwlpbnQJCQluZGltOwogCiAJLyoKIAkg KiBUcmFuc2Zvcm0gdGhlIHN1YnNjcmlwdCBleHByZXNzaW9ucywgYW5kIHNlcGFyYXRlIHVwcGVy IGFuZCBsb3dlcgpAQCAtNzMsOSArNzQsMTQgQEAgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybShT dWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkgKi8KIAlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9u KQogCXsKLQkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CisJ CUFfSW5kaWNlcyAgKmFpOwogCQlOb2RlCSAgICpzdWJleHByOwogCisJCWlmICghSXNBKGxmaXJz dChpZHgpLCBBX0luZGljZXMpKQorCQkJYnJlYWs7CisKKwkJYWkgPSBsZmlyc3Rfbm9kZShBX0lu ZGljZXMsIGlkeCk7CisKIAkJaWYgKGlzU2xpY2UpCiAJCXsKIAkJCWlmIChhaS0+bGlkeCkKQEAg LTE0NSwxNCArMTUxLDE1IEBAIGFycmF5X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5n UmVmICpzYnNyZWYsCiAJc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIgPSBsb3dlckluZGV4cHI7CiAK IAkvKiBWZXJpZnkgc3Vic2NyaXB0IGxpc3QgbGVuZ3RocyBhcmUgd2l0aGluIGltcGxlbWVudGF0 aW9uIGxpbWl0ICovCi0JaWYgKGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcikgPiBNQVhESU0pCisJ bmRpbSA9IGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcik7CisJaWYgKG5kaW0gPiBNQVhESU0pCiAJ CWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VYQ0VF REVEKSwKIAkJCQkgZXJybXNnKCJudW1iZXIgb2YgYXJyYXkgZGltZW5zaW9ucyAoJWQpIGV4Y2Vl ZHMgdGhlIG1heGltdW0gYWxsb3dlZCAoJWQpIiwKIAkJCQkJCWxpc3RfbGVuZ3RoKHVwcGVySW5k ZXhwciksIE1BWERJTSkpKTsKIAkvKiBXZSBuZWVkIG5vdCBjaGVjayBsb3dlckluZGV4cHIgc2Vw YXJhdGVseSAqLwogCi0JKmluZGlyZWN0aW9uID0gTklMOworCSppbmRpcmVjdGlvbiA9IGxpc3Rf ZGVsZXRlX2ZpcnN0X24oKmluZGlyZWN0aW9uLCBuZGltKTsKIAogCS8qCiAJICogRGV0ZXJtaW5l IHRoZSByZXN1bHQgdHlwZSBvZiB0aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbi4gIEl0J3MgdGhl IHNhbWUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwppbmRleCA4YWQ2YWExYWQ0Zi4uYTBkMzhh MGZkODAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKQEAgLTU1LDkgKzU1LDE0IEBAIGpz b25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJICovCiAJ Zm9yZWFjaChpZHgsICppbmRpcmVjdGlvbikKIAl7Ci0JCUFfSW5kaWNlcyAgKmFpID0gbGZpcnN0 X25vZGUoQV9JbmRpY2VzLCBpZHgpOworCQlBX0luZGljZXMgICphaTsKIAkJTm9kZQkgICAqc3Vi RXhwcjsKIAorCQlpZiAoIUlzQShsZmlyc3QoaWR4KSwgQV9JbmRpY2VzKSkKKwkJCWJyZWFrOwor CisJCWFpID0gbGZpcnN0X25vZGUoQV9JbmRpY2VzLCBpZHgpOworCiAJCWlmIChpc1NsaWNlKQog CQl7CiAJCQlOb2RlCSAgICpleHByID0gYWktPnVpZHggPyBhaS0+dWlkeCA6IGFpLT5saWR4OwpA QCAtMTYwLDcgKzE2NSw5IEBAIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5n UmVmICpzYnNyZWYsCiAJc2JzcmVmLT5yZWZyZXN0eXBlID0gSlNPTkJPSUQ7CiAJc2JzcmVmLT5y ZWZ0eXBtb2QgPSAtMTsKIAotCSppbmRpcmVjdGlvbiA9IE5JTDsKKwkvKiBSZW1vdmUgcHJvY2Vz c2VkIGVsZW1lbnRzICovCisJaWYgKHVwcGVySW5kZXhwcikKKwkJKmluZGlyZWN0aW9uID0gbGlz dF9kZWxldGVfZmlyc3RfbigqaW5kaXJlY3Rpb24sIGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcikp OwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBi L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggNWFlMTFjY2VjMzMuLjcxYjA0 YmQ1MDNjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBi L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTM3OCw3ICszNzgsOCBAQCBleHRl cm4gU3Vic2NyaXB0aW5nUmVmICp0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3Rh dGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkgT2lkIGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJCQkJ CQkJIGludDMyIGNvbnRhaW5lclR5cE1vZCwKIAkJCQkJCQkJCQkJCQkgTGlzdCAqKmluZGlyZWN0 aW9uLAotCQkJCQkJCQkJCQkJCSBib29sIGlzQXNzaWdubWVudCk7CisJCQkJCQkJCQkJCQkJIGJv b2wgaXNBc3NpZ25tZW50LAorCQkJCQkJCQkJCQkJCSBib29sIG5vRXJyb3IpOwogZXh0ZXJuIENv bnN0ICptYWtlX2NvbnN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9Db25zdCAqYWNvbnN0KTsKIAog I2VuZGlmCQkJCQkJCS8qIFBBUlNFX05PREVfSCAqLwotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0 KQoK --000000000000ba7a10062f75ed3c Content-Type: application/octet-stream; name="v10-0003-Export-jsonPathFromParseResult.patch" Content-Disposition: attachment; filename="v10-0003-Export-jsonPathFromParseResult.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7tiargr2 RnJvbSA2MDI5YTI3ZmNhZDAwM2YxYzY2NDNkZGJhMDExZmMzNjYwZGIyMWUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAyMzoxNTo1NSArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djEwIDMvN10gRXhwb3J0IGpzb25QYXRoRnJvbVBhcnNlUmVzdWx0KCkKClRoaXMgaXMgYSBwcmVw YXJhdGlvbiBzdGVwIGZvciBhIGZ1dHVyZSBjb21taXQgdGhhdCB3aWxsIHJldXNlIHRoZQphZm9y ZW1lbnRpb25lZCBmdW5jdGlvbi4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGgu YyB8IDE5ICsrKysrKysrKysrKysrKy0tLS0KIHNyYy9pbmNsdWRlL3V0aWxzL2pzb25wYXRoLmgg ICAgIHwgIDQgKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoLmMKaW5kZXggNzYyZjdlOGEwOWQuLjE1MzY3 OTdjZjIzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGguYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGguYwpAQCAtMTY2LDE1ICsxNjYsMTMgQEAg anNvbnBhdGhfc2VuZChQR19GVU5DVElPTl9BUkdTKQogICogQ29udmVydHMgQy1zdHJpbmcgdG8g YSBqc29ucGF0aCB2YWx1ZS4KICAqCiAgKiBVc2VzIGpzb25wYXRoIHBhcnNlciB0byB0dXJuIHN0 cmluZyBpbnRvIGFuIEFTVCwgdGhlbgotICogZmxhdHRlbkpzb25QYXRoUGFyc2VJdGVtKCkgZG9l cyBzZWNvbmQgcGFzcyB0dXJuaW5nIEFTVCBpbnRvIGJpbmFyeQorICoganNvblBhdGhGcm9tUGFy c2VSZXN1bHQoKSBkb2VzIHNlY29uZCBwYXNzIHR1cm5pbmcgQVNUIGludG8gYmluYXJ5CiAgKiBy ZXByZXNlbnRhdGlvbiBvZiBqc29ucGF0aC4KICAqLwogc3RhdGljIERhdHVtCiBqc29uUGF0aEZy b21Dc3RyaW5nKGNoYXIgKmluLCBpbnQgbGVuLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogewog CUpzb25QYXRoUGFyc2VSZXN1bHQgKmpzb25wYXRoID0gcGFyc2Vqc29ucGF0aChpbiwgbGVuLCBl c2NvbnRleHQpOwotCUpzb25QYXRoICAgKnJlczsKLQlTdHJpbmdJbmZvRGF0YSBidWY7CiAKIAlp ZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQogCQlyZXR1cm4gKERhdHVtKSAwOwpA QCAtMTg1LDggKzE4MywyMSBAQCBqc29uUGF0aEZyb21Dc3RyaW5nKGNoYXIgKmluLCBpbnQgbGVu LCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogCQkJCSBlcnJtc2coImludmFsaWQgaW5wdXQgc3lu dGF4IGZvciB0eXBlICVzOiBcIiVzXCIiLCAianNvbnBhdGgiLAogCQkJCQkJaW4pKSk7CiAKKwly ZXR1cm4ganNvblBhdGhGcm9tUGFyc2VSZXN1bHQoanNvbnBhdGgsIDQgKiBsZW4sIGVzY29udGV4 dCk7Cit9CisKKy8qCisgKiBDb252ZXJ0cyBqc29ucGF0aCBBU1QgaW50byBqc29ucGF0aCB2YWx1 ZSBpbiBiaW5hcnkuCisgKi8KK0RhdHVtCitqc29uUGF0aEZyb21QYXJzZVJlc3VsdChKc29uUGF0 aFBhcnNlUmVzdWx0ICpqc29ucGF0aCwgaW50IGVzdGltYXRlZF9sZW4sCisJCQkJCQlzdHJ1Y3Qg Tm9kZSAqZXNjb250ZXh0KQoreworCUpzb25QYXRoICAgKnJlczsKKwlTdHJpbmdJbmZvRGF0YSBi dWY7CisKIAlpbml0U3RyaW5nSW5mbygmYnVmKTsKLQllbmxhcmdlU3RyaW5nSW5mbygmYnVmLCA0 ICogbGVuIC8qIGVzdGltYXRpb24gKi8gKTsKKwllbmxhcmdlU3RyaW5nSW5mbygmYnVmLCBlc3Rp bWF0ZWRfbGVuKTsKIAogCWFwcGVuZFN0cmluZ0luZm9TcGFjZXMoJmJ1ZiwgSlNPTlBBVEhfSERS U1opOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9qc29ucGF0aC5oIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvanNvbnBhdGguaAppbmRleCAyM2E3NmQyMzNlOS4uZTA1OTQxNjIzZTcgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2pzb25wYXRoLmgKKysrIGIvc3JjL2luY2x1ZGUv dXRpbHMvanNvbnBhdGguaApAQCAtMjgxLDYgKzI4MSwxMCBAQCBleHRlcm4gSnNvblBhdGhQYXJz ZVJlc3VsdCAqcGFyc2Vqc29ucGF0aChjb25zdCBjaGFyICpzdHIsIGludCBsZW4sCiBleHRlcm4g Ym9vbCBqc3BDb252ZXJ0UmVnZXhGbGFncyh1aW50MzIgeGZsYWdzLCBpbnQgKnJlc3VsdCwKIAkJ CQkJCQkJIHN0cnVjdCBOb2RlICplc2NvbnRleHQpOwogCitleHRlcm4gRGF0dW0ganNvblBhdGhG cm9tUGFyc2VSZXN1bHQoSnNvblBhdGhQYXJzZVJlc3VsdCAqanNvbnBhdGgsCisJCQkJCQkJCQkg aW50IGVzdGltYXRlZF9sZW4sCisJCQkJCQkJCQkgc3RydWN0IE5vZGUgKmVzY29udGV4dCk7CisK IC8qCiAgKiBTdHJ1Y3QgZm9yIGRldGFpbHMgYWJvdXQgZXh0ZXJuYWwgdmFyaWFibGVzIHBhc3Nl ZCBpbnRvIGpzb25wYXRoIGV4ZWN1dG9yCiAgKi8KLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkK Cg== --000000000000ba7a10062f75ed3c Content-Type: application/octet-stream; name="v10-0005-Enable-String-node-as-field-accessors-in-generic.patch" Content-Disposition: attachment; filename="v10-0005-Enable-String-node-as-field-accessors-in-generic.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7tiargu4 RnJvbSA2YTllZWM1ZDdhMGRmN2RlYWYyYjk0YzUyYWYwMzc3YjY1NzdjY2EyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAxNjoyMToyMCArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djEwIDUvN10gRW5hYmxlIFN0cmluZyBub2RlIGFzIGZpZWxkIGFjY2Vzc29ycyBpbiBnZW5lcmlj CiBzdWJzY3JpcHRpbmcKCk5vdyB0aGF0IHdlIGFyZSBhbGxvd2luZyBjb250YWluZXIgZ2VuZXJp YyBzdWJzY3JpcHRpbmcgdG8gdGFrZSBkb3QKbm90YXRpb24gaW4gdGhlIGxpc3Qgb2YgaW5kaXJl Y3Rpb25zLCBhbmQgaXQgaXMgdHJhbnNmb3JtZWQgYXMgYQpTdHJpbmcgbm9kZS4KCkZvciBqc29u Yiwgd2Ugd2FudCB0byByZXByZXNlbnQgZmllbGQgYWNjZXNzb3JzIGFzIFN0cmluZyBub2RlcyBp bgpyZWZ1cHBlcmV4cHJzIGZvciBkaXN0aW5ndWlzaGluZyBmcm9tIG9yZGluYXJ5IHRleHQgc3Vi c2NyaXB0cyB3aGljaApjYW4gYmUgbmVlZGVkIGZvciBjb3JyZWN0IEVYUExBSU4uCgpTdHJpbmdz IG5vZGUgaXMgbm8gbG9uZ2VyIGEgdmFsaWQgZXhwcmVzc2lvbiBub2Rlcywgc28gYWRkZWQgc3Bl Y2lhbApoYW5kbGluZyBmb3IgdGhlbSBpbiB3YWxrZXJzIGluIG5vZGVGdW5jcyBldGMuCi0tLQog c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICB8IDI0ICsrKysrKystLS0KIHNyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgfCA3MyArKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMgfCAyMiArKysrKysr LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgfCAyOSArKysrKysrKy0tLS0K IDQgZmlsZXMgY2hhbmdlZCwgMTIxIGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCmluZGV4IDAzNTY2YzRkMTgxLi5iZTQyMTM0NTVlNSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCkBAIC0zMzI4LDkgKzMzMjgsMTUgQEAgRXhlY0luaXRTdWJzY3Jp cHRpbmdSZWYoRXhwckV2YWxTdGVwICpzY3JhdGNoLCBTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwK IAkJewogCQkJc2JzcmVmc3RhdGUtPnVwcGVycHJvdmlkZWRbaV0gPSB0cnVlOwogCQkJLyogRWFj aCBzdWJzY3JpcHQgaXMgZXZhbHVhdGVkIGludG8gYXBwcm9wcmlhdGUgYXJyYXkgZW50cnkgKi8K LQkJCUV4ZWNJbml0RXhwclJlYyhlLCBzdGF0ZSwKLQkJCQkJCQkmc2JzcmVmc3RhdGUtPnVwcGVy aW5kZXhbaV0sCi0JCQkJCQkJJnNic3JlZnN0YXRlLT51cHBlcmluZGV4bnVsbFtpXSk7CisJCQlp ZiAoSXNBKGUsIFN0cmluZykpCisJCQl7CisJCQkJc2JzcmVmc3RhdGUtPnVwcGVyaW5kZXhbaV0g PSBDU3RyaW5nR2V0VGV4dERhdHVtKHN0clZhbChlKSk7CisJCQkJc2JzcmVmc3RhdGUtPnVwcGVy aW5kZXhudWxsW2ldID0gZmFsc2U7CisJCQl9CisJCQllbHNlCisJCQkJRXhlY0luaXRFeHByUmVj KGUsIHN0YXRlLAorCQkJCQkJCQkmc2JzcmVmc3RhdGUtPnVwcGVyaW5kZXhbaV0sCisJCQkJCQkJ CSZzYnNyZWZzdGF0ZS0+dXBwZXJpbmRleG51bGxbaV0pOwogCQl9CiAJCWkrKzsKIAl9CkBAIC0z MzUxLDkgKzMzNTcsMTUgQEAgRXhlY0luaXRTdWJzY3JpcHRpbmdSZWYoRXhwckV2YWxTdGVwICpz Y3JhdGNoLCBTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJewogCQkJc2JzcmVmc3RhdGUtPmxv d2VycHJvdmlkZWRbaV0gPSB0cnVlOwogCQkJLyogRWFjaCBzdWJzY3JpcHQgaXMgZXZhbHVhdGVk IGludG8gYXBwcm9wcmlhdGUgYXJyYXkgZW50cnkgKi8KLQkJCUV4ZWNJbml0RXhwclJlYyhlLCBz dGF0ZSwKLQkJCQkJCQkmc2JzcmVmc3RhdGUtPmxvd2VyaW5kZXhbaV0sCi0JCQkJCQkJJnNic3Jl ZnN0YXRlLT5sb3dlcmluZGV4bnVsbFtpXSk7CisJCQlpZiAoSXNBKGUsIFN0cmluZykpCisJCQl7 CisJCQkJc2JzcmVmc3RhdGUtPmxvd2VyaW5kZXhbaV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKHN0 clZhbChlKSk7CisJCQkJc2JzcmVmc3RhdGUtPmxvd2VyaW5kZXhudWxsW2ldID0gZmFsc2U7CisJ CQl9CisJCQllbHNlCisJCQkJRXhlY0luaXRFeHByUmVjKGUsIHN0YXRlLAorCQkJCQkJCQkmc2Jz cmVmc3RhdGUtPmxvd2VyaW5kZXhbaV0sCisJCQkJCQkJCSZzYnNyZWZzdGF0ZS0+bG93ZXJpbmRl eG51bGxbaV0pOwogCQl9CiAJCWkrKzsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rl cy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IDdiYzgy MzUwN2YxLi5hOWMyOWFiOGYyOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1 bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTIxODIsMTIgKzIx ODIsMjggQEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCWNhc2Ug VF9TdWJzY3JpcHRpbmdSZWY6CiAJCQl7CiAJCQkJU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYgPSAo U3Vic2NyaXB0aW5nUmVmICopIG5vZGU7CisJCQkJTGlzdENlbGwgICAqbGM7CisKKwkJCQkvKgor CQkJCSAqIFJlY3Vyc2UgZGlyZWN0bHkgZm9yIHVwcGVyL2xvd2VyIGNvbnRhaW5lciBpbmRleCBs aXN0cywKKwkJCQkgKiBza2lwcGluZyBTdHJpbmcgc3Vic2NyaXB0cyB1c2VkIGZvciBkb3Qgbm90 YXRpb24uCisJCQkJICovCisJCQkJZm9yZWFjaChsYywgc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIp CisJCQkJeworCQkJCQlOb2RlCSAgICpleHByID0gbGZpcnN0KGxjKTsKKworCQkJCQlpZiAoZXhw ciAmJiAhSXNBKGV4cHIsIFN0cmluZykgJiYgV0FMSyhleHByKSkKKwkJCQkJCXJldHVybiB0cnVl OworCQkJCX0KKworCQkJCWZvcmVhY2gobGMsIHNic3JlZi0+cmVmbG93ZXJpbmRleHByKQorCQkJ CXsKKwkJCQkJTm9kZQkgICAqZXhwciA9IGxmaXJzdChsYyk7CisKKwkJCQkJaWYgKGV4cHIgJiYg IUlzQShleHByLCBTdHJpbmcpICYmIFdBTEsoZXhwcikpCisJCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJ CQl9CiAKLQkJCQkvKiByZWN1cnNlIGRpcmVjdGx5IGZvciB1cHBlci9sb3dlciBjb250YWluZXIg aW5kZXggbGlzdHMgKi8KLQkJCQlpZiAoTElTVF9XQUxLKHNic3JlZi0+cmVmdXBwZXJpbmRleHBy KSkKLQkJCQkJcmV0dXJuIHRydWU7Ci0JCQkJaWYgKExJU1RfV0FMSyhzYnNyZWYtPnJlZmxvd2Vy aW5kZXhwcikpCi0JCQkJCXJldHVybiB0cnVlOwogCQkJCS8qIHdhbGtlciBtdXN0IHNlZSB0aGUg cmVmZXhwciBhbmQgcmVmYXNzZ25leHByLCBob3dldmVyICovCiAJCQkJaWYgKFdBTEsoc2JzcmVm LT5yZWZleHByKSkKIAkJCQkJcmV0dXJuIHRydWU7CkBAIC0zMDgyLDEyICszMDk4LDUxIEBAIGV4 cHJlc3Npb25fdHJlZV9tdXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJCXsKIAkJCQlTdWJzY3Jp cHRpbmdSZWYgKnNic3JlZiA9IChTdWJzY3JpcHRpbmdSZWYgKikgbm9kZTsKIAkJCQlTdWJzY3Jp cHRpbmdSZWYgKm5ld25vZGU7CisJCQkJTGlzdENlbGwgICAqbGM7CisJCQkJTGlzdAkgICAqZXhw cnMgPSBOSUw7CiAKIAkJCQlGTEFUQ09QWShuZXdub2RlLCBzYnNyZWYsIFN1YnNjcmlwdGluZ1Jl Zik7Ci0JCQkJTVVUQVRFKG5ld25vZGUtPnJlZnVwcGVyaW5kZXhwciwgc2JzcmVmLT5yZWZ1cHBl cmluZGV4cHIsCi0JCQkJCSAgIExpc3QgKik7Ci0JCQkJTVVUQVRFKG5ld25vZGUtPnJlZmxvd2Vy aW5kZXhwciwgc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIsCi0JCQkJCSAgIExpc3QgKik7CisKKwkJ CQlmb3JlYWNoKGxjLCBzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcikKKwkJCQl7CisJCQkJCU5vZGUJ ICAgKmV4cHIgPSBsZmlyc3QobGMpOworCisJCQkJCWlmIChleHByICYmIElzQShleHByLCBTdHJp bmcpKQorCQkJCQl7CisJCQkJCQlTdHJpbmcJICAgKnN0cjsKKworCQkJCQkJRkxBVENPUFkoc3Ry LCBleHByLCBTdHJpbmcpOworCQkJCQkJZXhwciA9IChOb2RlICopIHN0cjsKKwkJCQkJfQorCQkJ CQllbHNlCisJCQkJCQlleHByID0gbXV0YXRvcihleHByLCBjb250ZXh0KTsKKworCQkJCQlleHBy cyA9IGxhcHBlbmQoZXhwcnMsIGV4cHIpOworCQkJCX0KKworCQkJCW5ld25vZGUtPnJlZnVwcGVy aW5kZXhwciA9IGV4cHJzOworCisJCQkJZXhwcnMgPSBOSUw7CisKKwkJCQlmb3JlYWNoKGxjLCBz YnNyZWYtPnJlZmxvd2VyaW5kZXhwcikKKwkJCQl7CisJCQkJCU5vZGUJICAgKmV4cHIgPSBsZmly c3QobGMpOworCisJCQkJCWlmIChleHByICYmIElzQShleHByLCBTdHJpbmcpKQorCQkJCQl7CisJ CQkJCQlTdHJpbmcJICAgKnN0cjsKKworCQkJCQkJRkxBVENPUFkoc3RyLCBleHByLCBTdHJpbmcp OworCQkJCQkJZXhwciA9IChOb2RlICopIHN0cjsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCQll eHByID0gbXV0YXRvcihleHByLCBjb250ZXh0KTsKKworCQkJCQlleHBycyA9IGxhcHBlbmQoZXhw cnMsIGV4cHIpOworCQkJCX0KKworCQkJCW5ld25vZGUtPnJlZmxvd2VyaW5kZXhwciA9IGV4cHJz OworCiAJCQkJTVVUQVRFKG5ld25vZGUtPnJlZmV4cHIsIHNic3JlZi0+cmVmZXhwciwKIAkJCQkJ ICAgRXhwciAqKTsKIAkJCQlNVVRBVEUobmV3bm9kZS0+cmVmYXNzZ25leHByLCBzYnNyZWYtPnJl ZmFzc2duZXhwciwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRl LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29sbGF0ZS5jCmluZGV4IGQyZTIxODM1M2Yz Li5iZTZkZWE2ZmZkMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxh dGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29sbGF0ZS5jCkBAIC02ODAsMTEg KzY4MCwyNSBAQCBhc3NpZ25fY29sbGF0aW9uc193YWxrZXIoTm9kZSAqbm9kZSwgYXNzaWduX2Nv bGxhdGlvbnNfY29udGV4dCAqY29udGV4dCkKIAkJCQkJCQkgKiBjb250cmlidXRlIGFueXRoaW5n LikKIAkJCQkJCQkgKi8KIAkJCQkJCQlTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiA9IChTdWJzY3Jp cHRpbmdSZWYgKikgbm9kZTsKKwkJCQkJCQlMaXN0Q2VsbCAgICpsYzsKKworCQkJCQkJCS8qIHNr aXAgU3RyaW5nIHN1YnNjcmlwdHMgdXNlZCBmb3IgZG90IG5vdGF0aW9uICovCisJCQkJCQkJZm9y ZWFjaChsYywgc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIpCisJCQkJCQkJeworCQkJCQkJCQlOb2Rl CSAgICpleHByID0gbGZpcnN0KGxjKTsKKworCQkJCQkJCQlpZiAoZXhwciAmJiAhSXNBKGV4cHIs IFN0cmluZykpCisJCQkJCQkJCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKGNvbnRleHQtPnBzdGF0 ZSwgZXhwcik7CisJCQkJCQkJfQorCisJCQkJCQkJZm9yZWFjaChsYywgc2JzcmVmLT5yZWZsb3dl cmluZGV4cHIpCisJCQkJCQkJeworCQkJCQkJCQlOb2RlCSAgICpleHByID0gbGZpcnN0KGxjKTsK KworCQkJCQkJCQlpZiAoZXhwciAmJiAhSXNBKGV4cHIsIFN0cmluZykpCisJCQkJCQkJCQlhc3Np Z25fZXhwcl9jb2xsYXRpb25zKGNvbnRleHQtPnBzdGF0ZSwgZXhwcik7CisJCQkJCQkJfQogCi0J CQkJCQkJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhjb250ZXh0LT5wc3RhdGUsCi0JCQkJCQkJCQkJ CQkgICAoTm9kZSAqKSBzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcik7Ci0JCQkJCQkJYXNzaWduX2V4 cHJfY29sbGF0aW9ucyhjb250ZXh0LT5wc3RhdGUsCi0JCQkJCQkJCQkJCQkgICAoTm9kZSAqKSBz YnNyZWYtPnJlZmxvd2VyaW5kZXhwcik7CiAJCQkJCQkJKHZvaWQpIGFzc2lnbl9jb2xsYXRpb25z X3dhbGtlcigoTm9kZSAqKSBzYnNyZWYtPnJlZmV4cHIsCiAJCQkJCQkJCQkJCQkJCQkmbG9jY29u dGV4dCk7CiAJCQkJCQkJKHZvaWQpIGFzc2lnbl9jb2xsYXRpb25zX3dhbGtlcigoTm9kZSAqKSBz YnNyZWYtPnJlZmFzc2duZXhwciwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCBkMTFh OGEyMGVlYS4uY2ZhZTgxNTlhNzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTQ3 LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJub2Rl cy9ub2RlRnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9wYXRobm9kZXMuaCIKKyNpbmNsdWRlICJu b2Rlcy9zdWJzY3JpcHRpbmcuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX2FnZy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9mdW5j LmgiCkBAIC0xMjkyMywxNyArMTI5MjQsMjkgQEAgcHJpbnRTdWJzY3JpcHRzKFN1YnNjcmlwdGlu Z1JlZiAqc2JzcmVmLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJbG93bGlzdF9pdGVtID0g bGlzdF9oZWFkKHNic3JlZi0+cmVmbG93ZXJpbmRleHByKTsJLyogY291bGQgYmUgTlVMTCAqLwog CWZvcmVhY2godXBsaXN0X2l0ZW0sIHNic3JlZi0+cmVmdXBwZXJpbmRleHByKQogCXsKLQkJYXBw ZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnWycpOwotCQlpZiAobG93bGlzdF9pdGVtKQorCQlOb2Rl CSAgICp1cCA9IChOb2RlICopIGxmaXJzdCh1cGxpc3RfaXRlbSk7CisKKwkJaWYgKElzQSh1cCwg U3RyaW5nKSkKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnLicpOworCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHF1b3RlX2lkZW50aWZpZXIoc3RyVmFsKHVwKSkpOwor CQl9CisJCWVsc2UKIAkJeworCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnWycpOworCQkJ aWYgKGxvd2xpc3RfaXRlbSkKKwkJCXsKKwkJCQkvKiBJZiBzdWJleHByZXNzaW9uIGlzIE5VTEws IGdldF9ydWxlX2V4cHIgcHJpbnRzIG5vdGhpbmcgKi8KKwkJCQlnZXRfcnVsZV9leHByKChOb2Rl ICopIGxmaXJzdChsb3dsaXN0X2l0ZW0pLCBjb250ZXh0LCBmYWxzZSk7CisJCQkJYXBwZW5kU3Ry aW5nSW5mb0NoYXIoYnVmLCAnOicpOworCQkJfQogCQkJLyogSWYgc3ViZXhwcmVzc2lvbiBpcyBO VUxMLCBnZXRfcnVsZV9leHByIHByaW50cyBub3RoaW5nICovCi0JCQlnZXRfcnVsZV9leHByKChO b2RlICopIGxmaXJzdChsb3dsaXN0X2l0ZW0pLCBjb250ZXh0LCBmYWxzZSk7Ci0JCQlhcHBlbmRT dHJpbmdJbmZvQ2hhcihidWYsICc6Jyk7Ci0JCQlsb3dsaXN0X2l0ZW0gPSBsbmV4dChzYnNyZWYt PnJlZmxvd2VyaW5kZXhwciwgbG93bGlzdF9pdGVtKTsKKwkJCWdldF9ydWxlX2V4cHIoKE5vZGUg KikgbGZpcnN0KHVwbGlzdF9pdGVtKSwgY29udGV4dCwgZmFsc2UpOworCQkJYXBwZW5kU3RyaW5n SW5mb0NoYXIoYnVmLCAnXScpOwogCQl9Ci0JCS8qIElmIHN1YmV4cHJlc3Npb24gaXMgTlVMTCwg Z2V0X3J1bGVfZXhwciBwcmludHMgbm90aGluZyAqLwotCQlnZXRfcnVsZV9leHByKChOb2RlICop IGxmaXJzdCh1cGxpc3RfaXRlbSksIGNvbnRleHQsIGZhbHNlKTsKLQkJYXBwZW5kU3RyaW5nSW5m b0NoYXIoYnVmLCAnXScpOworCisJCWlmIChsb3dsaXN0X2l0ZW0pCisJCQlsb3dsaXN0X2l0ZW0g PSBsbmV4dChzYnNyZWYtPnJlZmxvd2VyaW5kZXhwciwgbG93bGlzdF9pdGVtKTsKIAl9CiB9CiAK LS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000ba7a10062f75ed3c Content-Type: application/octet-stream; name="v10-0001-Allow-transformation-of-only-a-sublist-of-subscr.patch" Content-Disposition: attachment; filename="v10-0001-Allow-transformation-of-only-a-sublist-of-subscr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7tiargi0 RnJvbSBiZDk0NmRiODhkMGYxNDlmMDczZjc2ZWFhMjUwMWU0ODQ1YjliMmI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IEZyaSwgMTQgT2N0IDIwMjIgMTU6MzU6MjIgKzAzMDAKU3ViamVjdDogW1BBVENI IHYxMCAxLzddIEFsbG93IHRyYW5zZm9ybWF0aW9uIG9mIG9ubHkgYSBzdWJsaXN0IG9mIHN1YnNj cmlwdHMKClRoaXMgaXMgYSBwcmVwYXJhdGlvbiBzdGVwIGZvciBhbGxvd2luZyBzdWJzY3JpcHRp bmcgY29udGFpbmVycyB0bwp0cmFuc2Zvcm0gb25seSBhIHByZWZpeCBvZiBhbiBpbmRpcmVjdGlv biBsaXN0IGFuZCBtb2RpZnkgdGhlIGxpc3QKaW4tcGxhY2UgYnkgcmVtb3ZpbmcgdGhlIHByb2Nl c3NlZCBlbGVtZW50cy4gQ3VycmVudGx5LCBhbGwgZWxlbWVudHMKYXJlIGNvbnN1bWVkLCBhbmQg dGhlIGxpc3QgaXMgc2V0IHRvIE5JTCBhZnRlciB0cmFuc2Zvcm1hdGlvbi4KCkluIHRoZSBmb2xs b3dpbmcgY29tbWl0LCBzdWJzY3JpcHRpbmcgY29udGFpbmVycyB3aWxsIGdhaW4gdGhlCmZsZXhp YmlsaXR5IHRvIHN0b3AgdHJhbnNmb3JtYXRpb24gd2hlbiBlbmNvdW50ZXJpbmcgYW4gdW5zdXBw b3J0ZWQKaW5kaXJlY3Rpb24gYW5kIHJldHVybiB0aGUgcmVtYWluaW5nIGluZGlyZWN0aW9ucyB0 byB0aGUgY2FsbGVyLgotLS0KIGNvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMgICAgICB8IDEw ICsrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICB8ICA5ICsrKyst LS0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYyAgIHwgIDQgKystLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9hcnJheXN1YnMuYyB8ICA2ICsrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vi cy5jIHwgIDYgKysrKy0tCiBzcmMvaW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaCAgfCAgNyAr KysrKystCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oICAgfCAgMiArLQogOCBmaWxl cyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9jb250cmliL2hzdG9yZS9oc3RvcmVfc3Vicy5jIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1 YnMuYwppbmRleCAzZDAzZjY2ZmEwZC4uMWIyOTU0M2FiNjcgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIv aHN0b3JlL2hzdG9yZV9zdWJzLmMKKysrIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYwpA QCAtNDAsNyArNDAsNyBAQAogICovCiBzdGF0aWMgdm9pZAogaHN0b3JlX3N1YnNjcmlwdF90cmFu c2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCi0JCQkJCQkgICBMaXN0ICppbmRpcmVjdGlv biwKKwkJCQkJCSAgIExpc3QgKippbmRpcmVjdGlvbiwKIAkJCQkJCSAgIFBhcnNlU3RhdGUgKnBz dGF0ZSwKIAkJCQkJCSAgIGJvb2wgaXNTbGljZSwKIAkJCQkJCSAgIGJvb2wgaXNBc3NpZ25tZW50 KQpAQCAtNDksMTUgKzQ5LDE1IEBAIGhzdG9yZV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlw dGluZ1JlZiAqc2JzcmVmLAogCU5vZGUJICAgKnN1YmV4cHI7CiAKIAkvKiBXZSBzdXBwb3J0IG9u bHkgc2luZ2xlLXN1YnNjcmlwdCwgbm9uLXNsaWNlIGNhc2VzICovCi0JaWYgKGlzU2xpY2UgfHwg bGlzdF9sZW5ndGgoaW5kaXJlY3Rpb24pICE9IDEpCisJaWYgKGlzU2xpY2UgfHwgbGlzdF9sZW5n dGgoKmluZGlyZWN0aW9uKSAhPSAxKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJoc3RvcmUgYWxsb3dz IG9ubHkgb25lIHN1YnNjcmlwdCIpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAot CQkJCQkJCQkJZXhwckxvY2F0aW9uKChOb2RlICopIGluZGlyZWN0aW9uKSkpKTsKKwkJCQkJCQkJ CWV4cHJMb2NhdGlvbigoTm9kZSAqKSAqaW5kaXJlY3Rpb24pKSkpOwogCiAJLyogVHJhbnNmb3Jt IHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lvbiB0byB0eXBlIHRleHQgKi8KLQlhaSA9IGxpbml0aWFs X25vZGUoQV9JbmRpY2VzLCBpbmRpcmVjdGlvbik7CisJYWkgPSBsaW5pdGlhbF9ub2RlKEFfSW5k aWNlcywgKmluZGlyZWN0aW9uKTsKIAlBc3NlcnQoYWktPnVpZHggIT0gTlVMTCAmJiBhaS0+bGlk eCA9PSBOVUxMICYmICFhaS0+aXNfc2xpY2UpOwogCiAJc3ViZXhwciA9IHRyYW5zZm9ybUV4cHIo cHN0YXRlLCBhaS0+dWlkeCwgcHN0YXRlLT5wX2V4cHJfa2luZCk7CkBAIC04MSw2ICs4MSw4IEBA IGhzdG9yZV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCS8q IERldGVybWluZSB0aGUgcmVzdWx0IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb247 IGFsd2F5cyB0ZXh0ICovCiAJc2JzcmVmLT5yZWZyZXN0eXBlID0gVEVYVE9JRDsKIAlzYnNyZWYt PnJlZnR5cG1vZCA9IC0xOworCisJKmluZGlyZWN0aW9uID0gTklMOwogfQogCiAvKgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMKaW5kZXggYmFkMWRmNzMyZWEuLjJjMGY0YTUwYjIxIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMKQEAgLTQ2NiwxNCArNDY2LDEzIEBAIHRyYW5zZm9ybUluZGlyZWN0aW9u KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCQkJQXNzZXJ0KElzQShu LCBTdHJpbmcpKTsKIAogCQkJLyogcHJvY2VzcyBzdWJzY3JpcHRzIGJlZm9yZSB0aGlzIGZpZWxk IHNlbGVjdGlvbiAqLwotCQkJaWYgKHN1YnNjcmlwdHMpCisJCQl3aGlsZSAoc3Vic2NyaXB0cykK IAkJCQlyZXN1bHQgPSAoTm9kZSAqKSB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKHBzdGF0 ZSwKIAkJCQkJCQkJCQkJCQkJCSAgIHJlc3VsdCwKIAkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBl KHJlc3VsdCksCiAJCQkJCQkJCQkJCQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0JCQkJCQkJ CQkJCQkJCQkgICBzdWJzY3JpcHRzLAorCQkJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCiAJ CQkJCQkJCQkJCQkJCQkgICBmYWxzZSk7Ci0JCQlzdWJzY3JpcHRzID0gTklMOwogCiAJCQluZXdy ZXN1bHQgPSBQYXJzZUZ1bmNPckNvbHVtbihwc3RhdGUsCiAJCQkJCQkJCQkJICBsaXN0X21ha2Ux KG4pLApAQCAtNDg4LDEyICs0ODcsMTIgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJCX0KIAl9CiAJLyogcHJvY2VzcyB0cmFp bGluZyBzdWJzY3JpcHRzLCBpZiBhbnkgKi8KLQlpZiAoc3Vic2NyaXB0cykKKwl3aGlsZSAoc3Vi c2NyaXB0cykKIAkJcmVzdWx0ID0gKE5vZGUgKikgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0 cyhwc3RhdGUsCiAJCQkJCQkJCQkJCQkJICAgcmVzdWx0LAogCQkJCQkJCQkJCQkJCSAgIGV4cHJU eXBlKHJlc3VsdCksCiAJCQkJCQkJCQkJCQkJICAgZXhwclR5cG1vZChyZXN1bHQpLAotCQkJCQkJ CQkJCQkJCSAgIHN1YnNjcmlwdHMsCisJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCiAJCQkJ CQkJCQkJCQkJICAgZmFsc2UpOwogCiAJcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9k ZS5jCmluZGV4IGQ2ZmViMTZhZWYzLi4xOWE2YjY3OGU2NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX25vZGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9k ZS5jCkBAIC0yNDQsNyArMjQ0LDcgQEAgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhQYXJz ZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJIE5vZGUgKmNvbnRhaW5lckJhc2UsCiAJCQkJCQkJIE9p ZCBjb250YWluZXJUeXBlLAogCQkJCQkJCSBpbnQzMiBjb250YWluZXJUeXBNb2QsCi0JCQkJCQkJ IExpc3QgKmluZGlyZWN0aW9uLAorCQkJCQkJCSBMaXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkJ IGJvb2wgaXNBc3NpZ25tZW50KQogewogCVN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmOwpAQCAtMjgw LDcgKzI4MCw3IEBAIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCSAqIGVsZW1lbnQuICBJZiBhbnkgb2YgdGhlIGl0ZW1zIGFyZSBzbGljZSBzcGVjaWZp ZXJzIChsb3dlcjp1cHBlciksIHRoZW4KIAkgKiB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb24gbWVh bnMgYSBjb250YWluZXIgc2xpY2Ugb3BlcmF0aW9uLgogCSAqLwotCWZvcmVhY2goaWR4LCBpbmRp cmVjdGlvbikKKwlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsKIAkJQV9JbmRpY2VzICAq YWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYwppbmRleCA0YWJhMGQ5ZDRkNS4uNDY3NWE1MjMwNDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dGFyZ2V0LmMKQEAgLTkzNiw3ICs5MzYsNyBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50U3Vic2NyaXB0 cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJICBiYXNlbm9kZSwKIAkJCQkJCQkJCQkg IGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJCQkJICBjb250YWluZXJUeXBNb2QsCi0JCQkJCQkJCQkJ ICBzdWJzY3JpcHRzLAorCQkJCQkJCQkJCSAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJICB0cnVl KTsKIAogCXR5cGVOZWVkZWQgPSBzYnNyZWYtPnJlZnJlc3R5cGU7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJy YXlzdWJzLmMKaW5kZXggMjk0MGZiOGU4ZDcuLjIzNGMyYzI3OGMxIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2FycmF5c3Vicy5jCkBAIC01NCw3ICs1NCw3IEBAIHR5cGVkZWYgc3RydWN0IEFycmF5U3ViV29y a3NwYWNlCiAgKi8KIHN0YXRpYyB2b2lkCiBhcnJheV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNj cmlwdGluZ1JlZiAqc2JzcmVmLAotCQkJCQkJICBMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCSAg TGlzdCAqKmluZGlyZWN0aW9uLAogCQkJCQkJICBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkg IGJvb2wgaXNTbGljZSwKIAkJCQkJCSAgYm9vbCBpc0Fzc2lnbm1lbnQpCkBAIC03MSw3ICs3MSw3 IEBAIGFycmF5X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJ ICogaW5kaXJlY3Rpb24gaXRlbXMgdG8gc2xpY2VzIGJ5IHRyZWF0aW5nIHRoZSBzaW5nbGUgc3Vi c2NyaXB0IGFzIHRoZQogCSAqIHVwcGVyIGJvdW5kIGFuZCBzdXBwbHlpbmcgYW4gYXNzdW1lZCBs b3dlciBib3VuZCBvZiAxLgogCSAqLwotCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikKKwlmb3Jl YWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsKIAkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9k ZShBX0luZGljZXMsIGlkeCk7CiAJCU5vZGUJICAgKnN1YmV4cHI7CkBAIC0xNTIsNiArMTUyLDgg QEAgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJ CQkJCWxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwciksIE1BWERJTSkpKTsKIAkvKiBXZSBuZWVkIG5v dCBjaGVjayBsb3dlckluZGV4cHIgc2VwYXJhdGVseSAqLwogCisJKmluZGlyZWN0aW9uID0gTklM OworCiAJLyoKIAkgKiBEZXRlcm1pbmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRp bmcgb3BlcmF0aW9uLiAgSXQncyB0aGUgc2FtZQogCSAqIGFzIHRoZSBhcnJheSB0eXBlIGlmIHdl J3JlIHNsaWNpbmcsIGVsc2UgaXQncyB0aGUgZWxlbWVudCB0eXBlLiAgSW4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYwppbmRleCBkZTY0ZDQ5ODUxMi4uOGFkNmFhMWFkNGYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvanNvbmJzdWJzLmMKQEAgLTQxLDcgKzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSnNvbmJT dWJXb3Jrc3BhY2UKICAqLwogc3RhdGljIHZvaWQKIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0o U3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCi0JCQkJCQkgIExpc3QgKmluZGlyZWN0aW9uLAorCQkJ CQkJICBMaXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQkJCSAgYm9vbCBpc1NsaWNlLAogCQkJCQkJICBib29sIGlzQXNzaWdubWVudCkKQEAgLTUzLDcg KzUzLDcgQEAganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3Jl ZiwKIAkgKiBUcmFuc2Zvcm0gYW5kIGNvbnZlcnQgdGhlIHN1YnNjcmlwdCBleHByZXNzaW9ucy4g SnNvbmIgc3Vic2NyaXB0aW5nCiAJICogZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMsIGxvb2sgb25s eSBhbmQgdGhlIHVwcGVyIGluZGV4LgogCSAqLwotCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikK Kwlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsKIAkJQV9JbmRpY2VzICAqYWkgPSBsZmly c3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CiAJCU5vZGUJICAgKnN1YkV4cHI7CkBAIC0xNTksNiAr MTU5LDggQEAganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3Jl ZiwKIAkvKiBEZXRlcm1pbmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3Bl cmF0aW9uOyBhbHdheXMganNvbmIgKi8KIAlzYnNyZWYtPnJlZnJlc3R5cGUgPSBKU09OQk9JRDsK IAlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOworCisJKmluZGlyZWN0aW9uID0gTklMOwogfQogCiAv KgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmggYi9zcmMvaW5j bHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaAppbmRleCAyMzRlOGFkODAxMi4uNWQ1NzZhZjM0NmYg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3N1YnNjcmlwdGluZy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3N1YnNjcmlwdGluZy5oCkBAIC03MSw2ICs3MSwxMSBAQCBzdHJ1Y3QgU3Vi c2NyaXB0RXhlY1N0ZXBzOwogICogZG9lcyBub3QgY2FyZSB0byBzdXBwb3J0IHNsaWNpbmcsIGl0 IGNhbiBqdXN0IHRocm93IGFuIGVycm9yIGlmIGlzU2xpY2UuKQogICogU2VlIGFycmF5X3N1YnNj cmlwdF90cmFuc2Zvcm0oKSBmb3Igc2FtcGxlIGNvZGUuCiAgKgorICogVGhlIHRyYW5zZm9ybSBt ZXRob2QgcmVjZWl2ZXMgYSBwb2ludGVyIHRvIGEgbGlzdCBvZiByYXcgaW5kaXJlY3Rpb25zLgor ICogVGhpcyBhbGxvd3MgdGhlIG1ldGhvZCB0byBwYXJzZSBhIHN1Ymxpc3Qgb2YgdGhlIGluZGly ZWN0aW9ucyAodHlwaWNhbGx5CisgKiB0aGUgcHJlZml4KSBhbmQgbW9kaWZ5IHRoZSBvcmlnaW5h bCBsaXN0IGluIHBsYWNlLCBlbmFibGluZyB0aGUgY2FsbGVyIHRvCisgKiBlaXRoZXIgcHJvY2Vz cyB0aGUgcmVtYWluaW5nIGluZGlyZWN0aW9ucyBkaWZmZXJlbnRseSBvciByYWlzZSBhbiBlcnJv ci4KKyAqCiAgKiBUaGUgdHJhbnNmb3JtIG1ldGhvZCBpcyBhbHNvIHJlc3BvbnNpYmxlIGZvciBp ZGVudGlmeWluZyB0aGUgcmVzdWx0IHR5cGUKICAqIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0 aW9uLiAgQXQgY2FsbCwgcmVmY29udGFpbmVydHlwZSBhbmQgcmVmdHlwbW9kCiAgKiBkZXNjcmli ZSB0aGUgY29udGFpbmVyIHR5cGUgKHRoaXMgd2lsbCBiZSBhIGJhc2UgdHlwZSBub3QgYSBkb21h aW4pLCBhbmQKQEAgLTkzLDcgKzk4LDcgQEAgc3RydWN0IFN1YnNjcmlwdEV4ZWNTdGVwczsKICAq IGFzc2lnbm1lbnQgbXVzdCByZXR1cm4uCiAgKi8KIHR5cGVkZWYgdm9pZCAoKlN1YnNjcmlwdFRy YW5zZm9ybSkgKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAotCQkJCQkJCQkJTGlzdCAqaW5kaXJl Y3Rpb24sCisJCQkJCQkJCQlMaXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkJCQlzdHJ1Y3QgUGFy c2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJYm9vbCBpc1NsaWNlLAogCQkJCQkJCQkJYm9vbCBp c0Fzc2lnbm1lbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggOTk0Mjg0MDE5ZmIuLjVh ZTExY2NlYzMzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisr KyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTM3Nyw3ICszNzcsNyBAQCBl eHRlcm4gU3Vic2NyaXB0aW5nUmVmICp0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNl U3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkgTm9kZSAqY29udGFpbmVyQmFzZSwKIAkJCQkJ CQkJCQkJCQkgT2lkIGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJCQkJCQkJIGludDMyIGNvbnRhaW5l clR5cE1vZCwKLQkJCQkJCQkJCQkJCQkgTGlzdCAqaW5kaXJlY3Rpb24sCisJCQkJCQkJCQkJCQkJ IExpc3QgKippbmRpcmVjdGlvbiwKIAkJCQkJCQkJCQkJCQkgYm9vbCBpc0Fzc2lnbm1lbnQpOwog ZXh0ZXJuIENvbnN0ICptYWtlX2NvbnN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9Db25zdCAqYWNv bnN0KTsKIAotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --000000000000ba7a10062f75ed3c Content-Type: application/octet-stream; name="v10-0006-Implement-read-only-dot-notation-for-jsonb.patch" Content-Disposition: attachment; filename="v10-0006-Implement-read-only-dot-notation-for-jsonb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7tiargv5 RnJvbSA4MDllODg5NTQ2NThjY2E2MzNhNTY1NjY1MjEwNzExODgwNzBkYjUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAyMzoxNzo1MyArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djEwIDYvN10gSW1wbGVtZW50IHJlYWQtb25seSBkb3Qgbm90YXRpb24gZm9yIGpzb25iCgpUaGlz IHBhdGNoIGludHJvZHVjZXMgSlNPTkIgbWVtYmVyIGFjY2VzcyB1c2luZyBkb3Qgbm90YXRpb24s IHdpbGRjYXJkCmFjY2VzcywgYW5kIGFycmF5IHN1YnNjcmlwdGluZyB3aXRoIHNsaWNpbmcsIGFs aWduaW5nIHdpdGggdGhlIEpTT04Kc2ltcGxpZmllZCBhY2Nlc3NvciBzcGVjaWZpZWQgaW4gU1FM OjIwMjMuIFNwZWNpZmljYWxseSwgdGhlIGZvbGxvd2luZwpzeW50YXggZW5oYW5jZW1lbnRzIGFy ZSBhZGRlZDoKCjEuIFNpbXBsZSBkb3Qtbm90YXRpb24gYWNjZXNzIHRvIEpTT05CIG9iamVjdCBm aWVsZHMKMi4gV2lsZGNhcmQgZG90LW5vdGF0aW9uIGFjY2VzcyB0byBKU09OQiBvYmplY3QgZmll bGRzCjIuIFN1YnNjcmlwdGluZyBmb3IgaW5kZXggcmFuZ2UgYWNjZXNzIHRvIEpTT05CIGFycmF5 IGVsZW1lbnRzCgpFeGFtcGxlczoKCi0tIFNldHVwCmNyZWF0ZSB0YWJsZSB0KHggaW50LCB5IGpz b25iKTsKaW5zZXJ0IGludG8gdCBzZWxlY3QgMSwgJ3siYSI6IDEsICJiIjogNDJ9Jzo6anNvbmI7 Cmluc2VydCBpbnRvIHQgc2VsZWN0IDEsICd7ImEiOiAyLCAiYiI6IHsiYyI6IDQyfX0nOjpqc29u YjsKaW5zZXJ0IGludG8gdCBzZWxlY3QgMSwgJ3siYSI6IDMsICJiIjogeyJjIjogIjQyIn0sICJk IjpbMTEsIDEyXX0nOjpqc29uYjsKCi0tIEV4aXN0aW5nIHN5bnRheCBwcmVkYXRlcyB0aGUgU1FM IHN0YW5kYXJkOgpzZWxlY3QgKHQueSktPidiJyBmcm9tIHQ7CnNlbGVjdCAodC55KS0+J2InLT4n YycgZnJvbSB0OwpzZWxlY3QgKHQueSktPidkJy0+MCBmcm9tIHQ7CgotLSBKU09OIHNpbXBsaWZp ZWQgYWNjZXNzb3Igc3BlY2lmaWVkIGJ5IHRoZSBTUUwgc3RhbmRhcmQ6CnNlbGVjdCAodC55KS5i IGZyb20gdDsKc2VsZWN0ICh0LnkpLmIuYyBmcm9tIHQ7CnNlbGVjdCAodC55KS5kWzBdIGZyb20g dDsKClRoZSBTUUwgc3RhbmRhcmQgc3RhdGVzIHRoYXQgc2ltcGxpZmllZCBhY2Nlc3MgaXMgZXF1 aXZhbGVudCB0bzoKSlNPTl9RVUVSWSAoVkVQLCAnbGF4ICQuSkMnIFdJVEggQ09ORElUSU9OQUwg QVJSQVkgV1JBUFBFUiBOVUxMIE9OIEVNUFRZIE5VTEwgT04gRVJST1IpCgp3aGVyZToKICBWRVAg PSA8dmFsdWUgZXhwcmVzc2lvbiBwcmltYXJ5PgogIEpDID0gPEpTT04gc2ltcGxpZmllZCBhY2Nl c3NvciBvcCBjaGFpbj4KCkZvciBleGFtcGxlLCB0aGUgSlNPTl9RVUVSWSBlcXVpdmFsZW50cyBv ZiB0aGUgYWJvdmUgcXVlcmllcyBhcmU6CgpzZWxlY3QganNvbl9xdWVyeSh5LCAnbGF4ICQuYicg V0lUSCBDT05ESVRJT05BTCBBUlJBWSBXUkFQUEVSIE5VTEwgT04gRU1QVFkgTlVMTCBPTiBFUlJP UikgZnJvbSB0OwpzZWxlY3QganNvbl9xdWVyeSh5LCAnbGF4ICQuYi5jJyBXSVRIIENPTkRJVElP TkFMIEFSUkFZIFdSQVBQRVIgTlVMTCBPTiBFTVBUWSBOVUxMIE9OIEVSUk9SKSBmcm9tIHQ7CnNl bGVjdCBqc29uX3F1ZXJ5KHksICdsYXggJC5kWzBdJyBXSVRIIENPTkRJVElPTkFMIEFSUkFZIFdS QVBQRVIgTlVMTCBPTiBFTVBUWSBOVUxMIE9OIEVSUk9SKSBmcm9tIHQ7CgpJbXBsZW1lbnRhdGlv biBkZXRhaWxzOgoKRXh0ZW5kcyB0aGUgZXhpc3RpbmcgY29udGFpbmVyIHN1YnNjcmlwdGluZyBp bnRlcmZhY2UgdG8gc3VwcG9ydApjb250YWluZXItc3BlY2lmaWMgaW5mb3JtYXRpb24sIHNwZWNp ZmljYWxseSBhIEpTT05QYXRoIGV4cHJlc3Npb24gZm9yCmpzb25iLgoKRHVyaW5nIHF1ZXJ5IHRy YW5zZm9ybWF0aW9uLCBkZXRlY3RzIGRvdC1ub3RhdGlvbiwgd2lsZGNhcmQgYWNjZXNzLAphbmQg c2xpY2VkIHN1YnNjcmlwdGluZy4gSWYgYW55IG9mIHRoZXNlIGFjY2Vzc29ycyBhcmUgcHJlc2Vu dCwKY29uc3RydWN0cyBhIEpTT05QYXRoIGV4cHJlc3Npb24gcmVwcmVzZW50aW5nIHRoZSBhY2Nl c3MgY2hhaW4uCgpEdXJpbmcgZXhlY3V0aW9uLCBpZiBhIEpTT05QYXRoIGV4cHJlc3Npb24gaXMg cHJlc2VudCBpbgpKc29uYlN1YldvcmtzcGFjZSwgZXhlY3V0ZXMgaXQgdmlhIEpzb25QYXRoUXVl cnkoKS4KCkRvZXMgbm90IHRyYW5zZm9ybSBhY2Nlc3NvcnMgZGlyZWN0bHkgaW50byBKU09OX1FV RVJZIGR1cmluZwp0cmFuc2Zvcm1hdGlvbiB0byBwcmVzZXJ2ZSB0aGUgb3JpZ2luYWwgcXVlcnkg c3RydWN0dXJlIGZvciBFWFBMQUlOCmFuZCBDUkVBVEUgVklFVy4KLS0tCiBzcmMvYmFja2VuZC91 dGlscy9hZHQvanNvbmJzdWJzLmMgICB8IDI5NCArKysrKysrKysrKysrKysrKysrKysrKysrKy0t CiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICB8ICAgNyArCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dCB8IDI0OSArKysrKysrKysrKysrKysrKysrKysrLQog c3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsICAgICAgfCAgNDUgKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgNTY5IGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYwppbmRleCAzZmZlNDBjZmE0MC4uZWRhZGExNjAyNWIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvanNvbmJzdWJzLmMKQEAgLTE1LDIxICsxNSwzMCBAQAogI2luY2x1ZGUgInBvc3RncmVz LmgiCiAKICNpbmNsdWRlICJleGVjdXRvci9leGVjRXhwci5oIgorI2luY2x1ZGUgIm5vZGVzL21h a2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVz L3N1YnNjcmlwdGluZy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2VyY2UuaCIKICNpbmNs dWRlICJwYXJzZXIvcGFyc2VfZXhwci5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAj aW5jbHVkZSAidXRpbHMvanNvbmIuaCIKKyNpbmNsdWRlICJ1dGlscy9qc29ucGF0aC5oIgogCiAK LS8qIFN1YnNjcmlwdGluZ1JlZlN0YXRlLndvcmtzcGFjZSBmb3IganNvbmIgc3Vic2NyaXB0aW5n IGV4ZWN1dGlvbiAqLworLyoKKyAqIFN1YnNjcmlwdGluZ1JlZlN0YXRlLndvcmtzcGFjZSBmb3Ig Z2VuZXJpYyBqc29uYiBzdWJzY3JpcHRpbmcgZXhlY3V0aW9uLgorICoKKyAqIFN0b3JlcyBzdGF0 ZSBmb3IgYm90aCBqc29uYiBzaW1wbGUgc3Vic2NyaXB0aW5nIGFuZCBkb3Qgbm90YXRpb24gYWNj ZXNzLgorICogRG90IG5vdGF0aW9uIGFkZGl0aW9uYWxseSB1c2VzIGBqc29ucGF0aGAgZm9yIEpz b25QYXRoIGV2YWx1YXRpb24uCisgKi8KIHR5cGVkZWYgc3RydWN0IEpzb25iU3ViV29ya3NwYWNl CiB7CiAJYm9vbAkJZXhwZWN0QXJyYXk7CS8qIGpzb25iIHJvb3QgaXMgZXhwZWN0ZWQgdG8gYmUg YW4gYXJyYXkgKi8KIAlPaWQJCSAgICppbmRleE9pZDsJCS8qIE9JRCBvZiBjb2VyY2VkIHN1YnNj cmlwdCBleHByZXNzaW9uLCBjb3VsZAogCQkJCQkJCQkgKiBiZSBvbmx5IGludGVnZXIgb3IgdGV4 dCAqLwogCURhdHVtCSAgICppbmRleDsJCQkvKiBTdWJzY3JpcHQgdmFsdWVzIGluIERhdHVtIGZv cm1hdCAqLworCUpzb25QYXRoICAgKmpzb25wYXRoOwkJLyogSnNvblBhdGggZm9yIGRvdCBub3Rh dGlvbiBleGVjdXRpb24gdmlhCisJCQkJCQkJCSAqIEpzb25QYXRoUXVlcnkoKSAqLwogfSBKc29u YlN1YldvcmtzcGFjZTsKIAogc3RhdGljIE9pZApAQCAtMTEwLDYgKzExOSwyMjkgQEAgY29lcmNl X2pzb25wYXRoX3N1YnNjcmlwdChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnN1YkV4cHIsIE9p ZCBudW10eXBlKQogCXJldHVybiBzdWJFeHByOwogfQogCisvKgorICogRHVyaW5nIHRyYW5zZm9y bWF0aW9uLCBkZXRlcm1pbmUgd2hldGhlciB0byBidWlsZCBhIEpzb25QYXRoCisgKiBmb3IgSnNv blBhdGhRdWVyeSgpIGV4ZWN1dGlvbi4KKyAqCisgKiBKc29uUGF0aCBpcyBuZWVkZWQgaWYgdGhl IGluZGlyZWN0aW9uIGxpc3QgaW5jbHVkZXM6CisgKiAtIFN0cmluZy1iYXNlZCBhY2Nlc3MgKGRv dCBub3RhdGlvbikKKyAqIC0gV2lsZGNhcmQgKGAqYCkKKyAqIC0gU2xpY2UtYmFzZWQgc3Vic2Ny aXB0aW5nCisgKgorICogT3RoZXJ3aXNlLCBzaW1wbGUganNvbmIgc3Vic2NyaXB0aW5nIGlzIHN1 ZmZpY2llbnQuCisgKi8KK3N0YXRpYyBib29sCitqc29uYl9jaGVja19qc29ucGF0aF9uZWVkZWQo TGlzdCAqaW5kaXJlY3Rpb24pCit7CisJTGlzdENlbGwgICAqbGM7CisKKwlmb3JlYWNoKGxjLCBp bmRpcmVjdGlvbikKKwl7CisJCU5vZGUJICAgKmFjY2Vzc29yID0gbGZpcnN0KGxjKTsKKworCQlp ZiAoSXNBKGFjY2Vzc29yLCBTdHJpbmcpIHx8CisJCQlJc0EoYWNjZXNzb3IsIEFfU3RhcikpCisJ CQlyZXR1cm4gdHJ1ZTsKKwkJZWxzZQorCQl7CisJCQlBX0luZGljZXMgICphaTsKKworCQkJQXNz ZXJ0KElzQShhY2Nlc3NvciwgQV9JbmRpY2VzKSk7CisJCQlhaSA9IGNhc3ROb2RlKEFfSW5kaWNl cywgYWNjZXNzb3IpOworCisJCQlpZiAoIWFpLT51aWR4IHx8IGFpLT5saWR4KQorCQkJeworCQkJ CUFzc2VydChhaS0+aXNfc2xpY2UpOworCQkJCXJldHVybiB0cnVlOworCQkJfQorCQl9CisJfQor CisJcmV0dXJuIGZhbHNlOworfQorCisvKgorICogSGVscGVyIGZ1bmN0aW9ucyBmb3IgY29uc3Ry dWN0aW5nIEpzb25QYXRoIGV4cHJlc3Npb25zLgorICoKKyAqIFRoZSBtYWtlX2pzb25wYXRoX2l0 ZW1fKiBmdW5jdGlvbnMgY3JlYXRlIHZhcmlvdXMgdHlwZXMgb2YgSnNvblBhdGhQYXJzZUl0ZW0K KyAqIG5vZGVzLCB3aGljaCBhcmUgdXNlZCB0byBidWlsZCBKc29uUGF0aCBleHByZXNzaW9ucyBm b3IganNvbmIgc2ltcGxpZmllZAorICogYWNjZXNzb3IuCisgKi8KKworc3RhdGljIEpzb25QYXRo UGFyc2VJdGVtICoKK21ha2VfanNvbnBhdGhfaXRlbShKc29uUGF0aEl0ZW1UeXBlIHR5cGUpCit7 CisJSnNvblBhdGhQYXJzZUl0ZW0gKnYgPSBwYWxsb2Moc2l6ZW9mKCp2KSk7CisKKwl2LT50eXBl ID0gdHlwZTsKKwl2LT5uZXh0ID0gTlVMTDsKKworCXJldHVybiB2OworfQorCitzdGF0aWMgSnNv blBhdGhQYXJzZUl0ZW0gKgorbWFrZV9qc29ucGF0aF9pdGVtX2ludChpbnQzMiB2YWwsIExpc3Qg KipleHBycykKK3sKKwlKc29uUGF0aFBhcnNlSXRlbSAqanBpID0gbWFrZV9qc29ucGF0aF9pdGVt KGpwaU51bWVyaWMpOworCisJanBpLT52YWx1ZS5udW1lcmljID0KKwkJRGF0dW1HZXROdW1lcmlj KERpcmVjdEZ1bmN0aW9uQ2FsbDEoaW50NF9udW1lcmljLCBJbnQzMkdldERhdHVtKHZhbCkpKTsK KworCSpleHBycyA9IGxhcHBlbmQoKmV4cHJzLCBtYWtlQ29uc3QoSU5UNE9JRCwgLTEsIEludmFs aWRPaWQsIDQsCisJCQkJCQkJCQkgICBJbnQzMkdldERhdHVtKHZhbCksIGZhbHNlLCB0cnVlKSk7 CisKKwlyZXR1cm4ganBpOworfQorCisvKgorICogQ29udmVydCBhbiBleHByZXNzaW9uIGludG8g YSBKc29uUGF0aFBhcnNlSXRlbS4KKyAqIElmIHRoZSBleHByZXNzaW9uIGlzIGEgY29uc3RhbnQg aW50ZWdlciwgY3JlYXRlIGEgZGlyZWN0IG51bWVyaWMgaXRlbS4KKyAqIE90aGVyd2lzZSwgY3Jl YXRlIGEgdmFyaWFibGUgcmVmZXJlbmNlIGFuZCBhZGQgaXQgdG8gdGhlIGV4cHJlc3Npb24gbGlz dC4KKyAqLworc3RhdGljIEpzb25QYXRoUGFyc2VJdGVtICoKK21ha2VfanNvbnBhdGhfaXRlbV9l eHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgTGlzdCAqKmV4cHJzKQoreworCUNv bnN0CSAgICpjbnN0OworCisJZXhwciA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBleHByLCBwc3Rh dGUtPnBfZXhwcl9raW5kKTsKKworCWlmICghSXNBKGV4cHIsIENvbnN0KSkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkgZXJy bXNnKCJqc29uYiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN1cHBvcnRzIHN1YnNjcmlwdGluZyBpbiBj b25zdCBpbnQ0LCBnb3QgdHlwZTogJXMiLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUoZXhwclR5cGUo ZXhwcikpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGV4 cHIpKSkpOworCisJY25zdCA9IChDb25zdCAqKSBleHByOworCisJaWYgKGNuc3QtPmNvbnN0dHlw ZSA9PSBJTlQ0T0lEICYmICFjbnN0LT5jb25zdGlzbnVsbCkKKwl7CisJCWludDMyCQl2YWwgPSBE YXR1bUdldEludDMyKGNuc3QtPmNvbnN0dmFsdWUpOworCisJCXJldHVybiBtYWtlX2pzb25wYXRo X2l0ZW1faW50KHZhbCwgZXhwcnMpOworCX0KKworCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29k ZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCSBlcnJtc2coImpzb25iIHNpbXBsaWZp ZWQgYWNjZXNzb3Igc3VwcG9ydHMgc3Vic2NyaXB0aW5nIGluIHR5cGU6IElOVDQsIGdvdCB0eXBl OiAlcyIsCisJCQkJCWZvcm1hdF90eXBlX2JlKGNuc3QtPmNvbnN0dHlwZSkpLAorCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihleHByKSkpKTsKK30KKworLyoKKyAq IGpzb25iX3N1YnNjcmlwdF9tYWtlX2pzb25wYXRoCisgKgorICogQ29uc3RydWN0cyBhIEpzb25Q YXRoIGV4cHJlc3Npb24gZnJvbSBhIGxpc3Qgb2YgaW5kaXJlY3Rpb25zLgorICogVGhpcyBmdW5j dGlvbiBpcyB1c2VkIHdoZW4ganNvbmIgc3Vic2NyaXB0aW5nIGludm9sdmVzIGRvdCBub3RhdGlv biwKKyAqIHdpbGRjYXJkcyAoKiksIG9yIHNsaWNlLWJhc2VkIHN1YnNjcmlwdGluZywgcmVxdWly aW5nIEpzb25QYXRoLWJhc2VkCisgKiBldmFsdWF0aW9uLgorICoKKyAqIFRoZSBmdW5jdGlvbiBt b2RpZmllcyB0aGUgaW5kaXJlY3Rpb24gbGlzdCBpbiBwbGFjZSwgcmVtb3ZpbmcgcHJvY2Vzc2Vk CisgKiBlbGVtZW50cyBhcyBpdCBjb252ZXJ0cyB0aGVtIGludG8gSnNvblBhdGggY29tcG9uZW50 cywgYXMgZm9sbG93czoKKyAqIC0gU3RyaW5nIGtleXMgKGRvdCBub3RhdGlvbikgLT4ganBpS2V5 IGl0ZW1zLgorICogLSBXaWxkY2FyZCAoKikgLT4ganBpQW55S2V5IGl0ZW0uCisgKiAtIEFycmF5 IGluZGljZXMgYW5kIHNsaWNlcyAtPiBqcGlJbmRleEFycmF5IGl0ZW1zLgorICoKKyAqIFBhcmFt ZXRlcnM6CisgKiAtIHBzdGF0ZTogUGFyc2Ugc3RhdGUgY29udGV4dC4KKyAqIC0gaW5kaXJlY3Rp b246IExpc3Qgb2Ygc3Vic2NyaXB0aW5nIGV4cHJlc3Npb25zIChtb2RpZmllZCBpbi1wbGFjZSku CisgKiAtIHVleHByczogVXBwZXItYm91bmQgZXhwcmVzc2lvbnMgZXh0cmFjdGVkIGZyb20gc3Vi c2NyaXB0cy4KKyAqIC0gbGV4cHJzOiBMb3dlci1ib3VuZCBleHByZXNzaW9ucyBleHRyYWN0ZWQg ZnJvbSBzdWJzY3JpcHRzLgorICogUmV0dXJuczoKKyAqIC0gYSBDb25zdCBub2RlIGNvbnRhaW5p bmcgdGhlIHRyYW5zZm9ybWVkIEpzb25QYXRoIGV4cHJlc3Npb24uCisgKi8KK3N0YXRpYyBOb2Rl ICoKK2pzb25iX3N1YnNjcmlwdF9tYWtlX2pzb25wYXRoKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlz dCAqKmluZGlyZWN0aW9uLAorCQkJCQkJCSAgTGlzdCAqKnVleHBycywgTGlzdCAqKmxleHBycykK K3sKKwlKc29uUGF0aFBhcnNlUmVzdWx0IGpwcmVzOworCUpzb25QYXRoUGFyc2VJdGVtICpwYXRo ID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaVJvb3QpOworCUxpc3RDZWxsICAgKmxjOworCURhdHVt CQlqc3A7CisJaW50CQkJcGF0aGxlbiA9IDA7CisKKwkqdWV4cHJzID0gTklMOworCSpsZXhwcnMg PSBOSUw7CisKKwlqcHJlcy5leHByID0gcGF0aDsKKwlqcHJlcy5sYXggPSB0cnVlOworCisJZm9y ZWFjaChsYywgKmluZGlyZWN0aW9uKQorCXsKKwkJTm9kZQkgICAqYWNjZXNzb3IgPSBsZmlyc3Qo bGMpOworCQlKc29uUGF0aFBhcnNlSXRlbSAqanBpOworCisJCWlmIChJc0EoYWNjZXNzb3IsIFN0 cmluZykpCisJCXsKKwkJCWNoYXIJICAgKmZpZWxkID0gc3RyVmFsKGFjY2Vzc29yKTsKKworCQkJ anBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaUtleSk7CisJCQlqcGktPnZhbHVlLnN0cmluZy52 YWwgPSBmaWVsZDsKKwkJCWpwaS0+dmFsdWUuc3RyaW5nLmxlbiA9IHN0cmxlbihmaWVsZCk7CisK KwkJCSp1ZXhwcnMgPSBsYXBwZW5kKCp1ZXhwcnMsIGFjY2Vzc29yKTsKKwkJfQorCQllbHNlIGlm IChJc0EoYWNjZXNzb3IsIEFfU3RhcikpCisJCXsKKwkJCWpwaSA9IG1ha2VfanNvbnBhdGhfaXRl bShqcGlBbnlLZXkpOworCisJCQkqdWV4cHJzID0gbGFwcGVuZCgqdWV4cHJzLCBOVUxMKTsKKwkJ fQorCQllbHNlIGlmIChJc0EoYWNjZXNzb3IsIEFfSW5kaWNlcykpCisJCXsKKwkJCUFfSW5kaWNl cyAgKmFpID0gY2FzdE5vZGUoQV9JbmRpY2VzLCBhY2Nlc3Nvcik7CisKKwkJCWpwaSA9IG1ha2Vf anNvbnBhdGhfaXRlbShqcGlJbmRleEFycmF5KTsKKwkJCWpwaS0+dmFsdWUuYXJyYXkubmVsZW1z ID0gMTsKKwkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXMgPSBwYWxsb2Moc2l6ZW9mKGpwaS0+dmFs dWUuYXJyYXkuZWxlbXNbMF0pKTsKKworCQkJaWYgKGFpLT5pc19zbGljZSkKKwkJCXsKKwkJCQl3 aGlsZSAobGlzdF9sZW5ndGgoKmxleHBycykgPCBsaXN0X2xlbmd0aCgqdWV4cHJzKSkKKwkJCQkJ KmxleHBycyA9IGxhcHBlbmQoKmxleHBycywgTlVMTCk7CisKKwkJCQlpZiAoYWktPmxpZHgpCisJ CQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNbMF0uZnJvbSA9IG1ha2VfanNvbnBhdGhfaXRlbV9l eHByKHBzdGF0ZSwgYWktPmxpZHgsIGxleHBycyk7CisJCQkJZWxzZQorCQkJCQlqcGktPnZhbHVl LmFycmF5LmVsZW1zWzBdLmZyb20gPSBtYWtlX2pzb25wYXRoX2l0ZW1faW50KDAsIGxleHBycyk7 CisKKwkJCQlpZiAoYWktPnVpZHgpCisJCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNbMF0udG8g PSBtYWtlX2pzb25wYXRoX2l0ZW1fZXhwcihwc3RhdGUsIGFpLT51aWR4LCB1ZXhwcnMpOworCQkJ CWVsc2UKKwkJCQl7CisJCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNbMF0udG8gPSBtYWtlX2pz b25wYXRoX2l0ZW0oanBpTGFzdCk7CisJCQkJCSp1ZXhwcnMgPSBsYXBwZW5kKCp1ZXhwcnMsIE5V TEwpOworCQkJCX0KKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlBc3NlcnQoYWktPnVpZHggJiYg IWFpLT5saWR4KTsKKwkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLmZyb20gPSBtYWtlX2pz b25wYXRoX2l0ZW1fZXhwcihwc3RhdGUsIGFpLT51aWR4LCB1ZXhwcnMpOworCQkJCWpwaS0+dmFs dWUuYXJyYXkuZWxlbXNbMF0udG8gPSBOVUxMOworCQkJfQorCQl9CisJCWVsc2UKKwkJCWJyZWFr OworCisJCS8qIGFwcGVuZCBwYXRoIGl0ZW0gKi8KKwkJcGF0aC0+bmV4dCA9IGpwaTsKKwkJcGF0 aCA9IGpwaTsKKwkJcGF0aGxlbisrOworCX0KKworCWlmICgqbGV4cHJzKQorCXsKKwkJd2hpbGUg KGxpc3RfbGVuZ3RoKCpsZXhwcnMpIDwgbGlzdF9sZW5ndGgoKnVleHBycykpCisJCQkqbGV4cHJz ID0gbGFwcGVuZCgqbGV4cHJzLCBOVUxMKTsKKwl9CisKKwkqaW5kaXJlY3Rpb24gPSBsaXN0X2Rl bGV0ZV9maXJzdF9uKCppbmRpcmVjdGlvbiwgcGF0aGxlbik7CisKKwlqc3AgPSBqc29uUGF0aEZy b21QYXJzZVJlc3VsdCgmanByZXMsIDAsIE5VTEwpOworCisJcmV0dXJuIChOb2RlICopIG1ha2VD b25zdChKU09OUEFUSE9JRCwgLTEsIEludmFsaWRPaWQsIC0xLCBqc3AsIGZhbHNlLCBmYWxzZSk7 Cit9CisKIC8qCiAgKiBGaW5pc2ggcGFyc2UgYW5hbHlzaXMgb2YgYSBTdWJzY3JpcHRpbmdSZWYg ZXhwcmVzc2lvbiBmb3IgYSBqc29uYi4KICAqCkBAIC0xMjYsMTkgKzM1OCwzMiBAQCBqc29uYl9z dWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCUxpc3QJICAgKnVw cGVySW5kZXhwciA9IE5JTDsKIAlMaXN0Q2VsbCAgICppZHg7CiAKKwkvKiBEZXRlcm1pbmUgdGhl IHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0aW9uOyBhbHdheXMganNvbmIg Ki8KKwlzYnNyZWYtPnJlZnJlc3R5cGUgPSBKU09OQk9JRDsKKwlzYnNyZWYtPnJlZnR5cG1vZCA9 IC0xOworCisJaWYgKGpzb25iX2NoZWNrX2pzb25wYXRoX25lZWRlZCgqaW5kaXJlY3Rpb24pKQor CXsKKwkJc2JzcmVmLT5yZWZqc29uYnBhdGggPQorCQkJanNvbmJfc3Vic2NyaXB0X21ha2VfanNv bnBhdGgocHN0YXRlLCBpbmRpcmVjdGlvbiwKKwkJCQkJCQkJCQkgICZzYnNyZWYtPnJlZnVwcGVy aW5kZXhwciwKKwkJCQkJCQkJCQkgICZzYnNyZWYtPnJlZmxvd2VyaW5kZXhwcik7CisJCXJldHVy bjsKKwl9CisKIAkvKgogCSAqIFRyYW5zZm9ybSBhbmQgY29udmVydCB0aGUgc3Vic2NyaXB0IGV4 cHJlc3Npb25zLiBKc29uYiBzdWJzY3JpcHRpbmcKIAkgKiBkb2VzIG5vdCBzdXBwb3J0IHNsaWNl cywgbG9vayBvbmx5IGFuZCB0aGUgdXBwZXIgaW5kZXguCiAJICovCiAJZm9yZWFjaChpZHgsICpp bmRpcmVjdGlvbikKIAl7CisJCU5vZGUJICAgKmkgPSBsZmlyc3QoaWR4KTsKIAkJQV9JbmRpY2Vz ICAqYWk7CiAJCU5vZGUJICAgKnN1YkV4cHI7CiAKLQkJaWYgKCFJc0EobGZpcnN0KGlkeCksIEFf SW5kaWNlcykpCi0JCQlicmVhazsKKwkJQXNzZXJ0KElzQShpLCBBX0luZGljZXMpKTsKIAotCQlh aSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNlcywgaWR4KTsKKwkJYWkgPSBjYXN0Tm9kZShBX0luZGlj ZXMsIGkpOwogCiAJCWlmIChpc1NsaWNlKQogCQl7CkBAIC0xNzUsMTAgKzQyMCw2IEBAIGpzb25i X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJc2JzcmVmLT5y ZWZ1cHBlcmluZGV4cHIgPSB1cHBlckluZGV4cHI7CiAJc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIg PSBOSUw7CiAKLQkvKiBEZXRlcm1pbmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRp bmcgb3BlcmF0aW9uOyBhbHdheXMganNvbmIgKi8KLQlzYnNyZWYtPnJlZnJlc3R5cGUgPSBKU09O Qk9JRDsKLQlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOwotCiAJLyogUmVtb3ZlIHByb2Nlc3NlZCBl bGVtZW50cyAqLwogCWlmICh1cHBlckluZGV4cHIpCiAJCSppbmRpcmVjdGlvbiA9IGxpc3RfZGVs ZXRlX2ZpcnN0X24oKmluZGlyZWN0aW9uLCBsaXN0X2xlbmd0aCh1cHBlckluZGV4cHIpKTsKQEAg LTIzMyw3ICs0NzQsNyBAQCBqc29uYl9zdWJzY3JpcHRfY2hlY2tfc3Vic2NyaXB0cyhFeHByU3Rh dGUgKnN0YXRlLAogCQkJICogRm9yIGpzb25iIGZldGNoIGFuZCBhc3NpZ24gZnVuY3Rpb25zIHdl IG5lZWQgdG8gcHJvdmlkZSBwYXRoIGluCiAJCQkgKiB0ZXh0IGZvcm1hdC4gQ29udmVydCBpZiBp dCdzIG5vdCBhbHJlYWR5IHRleHQuCiAJCQkgKi8KLQkJCWlmICh3b3Jrc3BhY2UtPmluZGV4T2lk W2ldID09IElOVDRPSUQpCisJCQlpZiAoIXdvcmtzcGFjZS0+anNvbnBhdGggJiYgd29ya3NwYWNl LT5pbmRleE9pZFtpXSA9PSBJTlQ0T0lEKQogCQkJewogCQkJCURhdHVtCQlkYXR1bSA9IHNic3Jl ZnN0YXRlLT51cHBlcmluZGV4W2ldOwogCQkJCWNoYXIJICAgKmNzID0gRGF0dW1HZXRDU3RyaW5n KERpcmVjdEZ1bmN0aW9uQ2FsbDEoaW50NG91dCwgZGF0dW0pKTsKQEAgLTI2MSwxNyArNTAyLDMy IEBAIGpzb25iX3N1YnNjcmlwdF9mZXRjaChFeHByU3RhdGUgKnN0YXRlLAogewogCVN1YnNjcmlw dGluZ1JlZlN0YXRlICpzYnNyZWZzdGF0ZSA9IG9wLT5kLnNic3JlZi5zdGF0ZTsKIAlKc29uYlN1 YldvcmtzcGFjZSAqd29ya3NwYWNlID0gKEpzb25iU3ViV29ya3NwYWNlICopIHNic3JlZnN0YXRl LT53b3Jrc3BhY2U7Ci0JSnNvbmIJICAgKmpzb25iU291cmNlOwogCiAJLyogU2hvdWxkIG5vdCBn ZXQgaGVyZSBpZiBzb3VyY2UganNvbmIgKG9yIGFueSBzdWJzY3JpcHQpIGlzIG51bGwgKi8KIAlB c3NlcnQoISgqb3AtPnJlc251bGwpKTsKIAotCWpzb25iU291cmNlID0gRGF0dW1HZXRKc29uYlAo Km9wLT5yZXN2YWx1ZSk7Ci0JKm9wLT5yZXN2YWx1ZSA9IGpzb25iX2dldF9lbGVtZW50KGpzb25i U291cmNlLAotCQkJCQkJCQkJICB3b3Jrc3BhY2UtPmluZGV4LAotCQkJCQkJCQkJICBzYnNyZWZz dGF0ZS0+bnVtdXBwZXIsCi0JCQkJCQkJCQkgIG9wLT5yZXNudWxsLAotCQkJCQkJCQkJICBmYWxz ZSk7CisJaWYgKHdvcmtzcGFjZS0+anNvbnBhdGgpCisJeworCQlib29sCQllbXB0eSA9IGZhbHNl OworCQlib29sCQllcnJvciA9IGZhbHNlOworCisJCSpvcC0+cmVzdmFsdWUgPSBKc29uUGF0aFF1 ZXJ5KCpvcC0+cmVzdmFsdWUsIHdvcmtzcGFjZS0+anNvbnBhdGgsCisJCQkJCQkJCQkgIEpTV19D T05ESVRJT05BTCwKKwkJCQkJCQkJCSAgJmVtcHR5LCAmZXJyb3IsIE5VTEwsCisJCQkJCQkJCQkg IE5VTEwpOworCisJCSpvcC0+cmVzbnVsbCA9IGVtcHR5IHx8IGVycm9yOworCX0KKwllbHNlCisJ eworCQlKc29uYgkgICAqanNvbmJTb3VyY2UgPSBEYXR1bUdldEpzb25iUCgqb3AtPnJlc3ZhbHVl KTsKKworCQkqb3AtPnJlc3ZhbHVlID0ganNvbmJfZ2V0X2VsZW1lbnQoanNvbmJTb3VyY2UsCisJ CQkJCQkJCQkJICB3b3Jrc3BhY2UtPmluZGV4LAorCQkJCQkJCQkJCSAgc2JzcmVmc3RhdGUtPm51 bXVwcGVyLAorCQkJCQkJCQkJCSAgb3AtPnJlc251bGwsCisJCQkJCQkJCQkJICBmYWxzZSk7CisJ fQogfQogCiAvKgpAQCAtMzgxLDYgKzYzNyw3IEBAIGpzb25iX2V4ZWNfc2V0dXAoY29uc3QgU3Vi c2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJTGlzdENlbGwgICAqbGM7CiAJaW50CQkJbnVwcGVyID0g c2JzcmVmLT5yZWZ1cHBlcmluZGV4cHItPmxlbmd0aDsKIAljaGFyCSAgICpwdHI7CisJYm9vbAkJ dXNlSnNvbnBhdGggPSBzYnNyZWYtPnJlZmpzb25icGF0aCAhPSBOVUxMOwogCiAJLyogQWxsb2Nh dGUgdHlwZS1zcGVjaWZpYyB3b3Jrc3BhY2Ugd2l0aCBzcGFjZSBmb3IgcGVyLXN1YnNjcmlwdCBk YXRhICovCiAJd29ya3NwYWNlID0gcGFsbG9jMChNQVhBTElHTihzaXplb2YoSnNvbmJTdWJXb3Jr c3BhY2UpKSArCkBAIC0zODgsNiArNjQ1LDkgQEAganNvbmJfZXhlY19zZXR1cChjb25zdCBTdWJz Y3JpcHRpbmdSZWYgKnNic3JlZiwKIAl3b3Jrc3BhY2UtPmV4cGVjdEFycmF5ID0gZmFsc2U7CiAJ cHRyID0gKChjaGFyICopIHdvcmtzcGFjZSkgKyBNQVhBTElHTihzaXplb2YoSnNvbmJTdWJXb3Jr c3BhY2UpKTsKIAorCWlmICh1c2VKc29ucGF0aCkKKwkJd29ya3NwYWNlLT5qc29ucGF0aCA9IERh dHVtR2V0SnNvblBhdGhQKGNhc3ROb2RlKENvbnN0LCBzYnNyZWYtPnJlZmpzb25icGF0aCktPmNv bnN0dmFsdWUpOworCiAJLyoKIAkgKiBUaGlzIGNvZGluZyBhc3N1bWVzIHNpemVvZihEYXR1bSkg Pj0gc2l6ZW9mKE9pZCksIGVsc2Ugd2UgbWlnaHQKIAkgKiBtaXNhbGlnbiB0aGUgaW5kZXhPaWQg cG9pbnRlcgpAQCAtNDA0LDcgKzY2NCw3IEBAIGpzb25iX2V4ZWNfc2V0dXAoY29uc3QgU3Vic2Ny aXB0aW5nUmVmICpzYnNyZWYsCiAJCU5vZGUJICAgKmV4cHIgPSBsZmlyc3QobGMpOwogCQlpbnQJ CQlpID0gZm9yZWFjaF9jdXJyZW50X2luZGV4KGxjKTsKIAotCQl3b3Jrc3BhY2UtPmluZGV4T2lk W2ldID0gZXhwclR5cGUoZXhwcik7CisJCXdvcmtzcGFjZS0+aW5kZXhPaWRbaV0gPSBqc29uYl9z dWJzY3JpcHRfdHlwZShleHByKTsKIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCBk MDU3NmRhM2UyNS4uOWQzODBlZDYwZDYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3By aW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC03MTgsNiAr NzE4LDEzIEBAIHR5cGVkZWYgc3RydWN0IFN1YnNjcmlwdGluZ1JlZgogCUV4cHIJICAgKnJlZmV4 cHI7CiAJLyogZXhwcmVzc2lvbiBmb3IgdGhlIHNvdXJjZSB2YWx1ZSwgb3IgTlVMTCBpZiBmZXRj aCAqLwogCUV4cHIJICAgKnJlZmFzc2duZXhwcjsKKworCS8qCisJICogY29udGFpbmVyLXNwZWNp ZmljIGV4dHJhIGluZm9ybWF0aW9uLCBjdXJyZW50bHkgdXNlZCBvbmx5IGJ5IGpzb25iLgorCSAq IHN0b3JlcyBhIEpzb25QYXRoIGV4cHJlc3Npb24gd2hlbiBqc29uYiBkb3Qgbm90YXRpb24gaXMg dXNlZC4gTlVMTCBmb3IKKwkgKiBzaW1wbGUgc3Vic2NyaXB0aW5nLgorCSAqLworCU5vZGUJICAg KnJlZmpzb25icGF0aDsKIH0gU3Vic2NyaXB0aW5nUmVmOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2pzb25iLm91dAppbmRleCAyYmFmZjkzMWJmMi4uNDgwZWNiNDRhOTQgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvanNvbmIub3V0CkBAIC00OTM5LDYgKzQ5MzksMTIgQEAgc2VsZWN0ICgnMTIz Jzo6anNvbmIpWydhJ107CiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJzEyMyc6Ompzb25iKS5hOwor IGEgCistLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgnMTIzJzo6anNvbmIpWzBdOwogIGpzb25i IAogLS0tLS0tLQpAQCAtNDk1MSwxMiArNDk1NywyNCBAQCBzZWxlY3QgKCcxMjMnOjpqc29uYilb TlVMTF07CiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJzEyMyc6Ompzb25iKS5OVUxMOworIG51bGwg CistLS0tLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbJ2EnXTsK ICBqc29uYiAKIC0tLS0tLS0KICAxCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IDF9Jzo6anNv bmIpLmE7CisgYSAKKy0tLQorIDEKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogMX0nOjpqc29u YilbMF07CiAganNvbmIgCiAtLS0tLS0tCkBAIC00OTY5LDYgKzQ5ODcsMTIgQEAgc2VsZWN0ICgn eyJhIjogMX0nOjpqc29uYilbJ25vdF9leGlzdCddOwogIAogKDEgcm93KQogCitzZWxlY3QgKCd7 ImEiOiAxfSc6Ompzb25iKS4ibm90X2V4aXN0IjsKKyBub3RfZXhpc3QgCistLS0tLS0tLS0tLQor IAorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVtOVUxMXTsKICBqc29uYiAK IC0tLS0tLS0KQEAgLTQ5ODEsNiArNTAwNSwxMiBAQCBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6 Ompzb25iKVsnYSddOwogIAogKDEgcm93KQogCitzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompz b25iKS5hOworIGEgCistLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0n Ojpqc29uYilbMF07CiAganNvbmIgCiAtLS0tLS0tCkBAIC00OTkzLDYgKzUwMjMsMTIgQEAgc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbJzEnXTsKICAiMiIKICgxIHJvdykKIAorc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYikuIjEiOworIDEgCistLS0KKyAKKygxIHJvdykK Kwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMS4wXTsKIEVSUk9SOiAgc3Vic2Ny aXB0IHR5cGUgbnVtZXJpYyBpcyBub3Qgc3VwcG9ydGVkCiBMSU5FIDE6IHNlbGVjdCAoJ1sxLCAi MiIsIG51bGxdJzo6anNvbmIpWzEuMF07CkBAIC01MDIyLDYgKzUwNTgsMTIgQEAgc2VsZWN0ICgn WzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV1bJ2EnXTsKICAKICgxIHJvdykKIAorc2VsZWN0ICgn WzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV0uYTsKKyBhIAorLS0tCisgCisoMSByb3cpCisKIHNl bGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzFdWzBdOwogIGpzb25iIAogLS0tLS0tLQpA QCAtNTAzNCw3MyArNTA3NiwxMzkgQEAgc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjog WzEsIDIsIDNdfSc6Ompzb25iKVsnYiddOwogICJjIgogKDEgcm93KQogCitzZWxlY3QgKCd7ImEi OiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmI7CisgIGIgIAorLS0tLS0K KyAiYyIKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIs IDNdfSc6Ompzb25iKVsnZCddOwogICAganNvbmIgICAKIC0tLS0tLS0tLS0tCiAgWzEsIDIsIDNd CiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0n Ojpqc29uYikuZDsKKyAgICAgZCAgICAgCistLS0tLS0tLS0tLQorIFsxLCAyLCAzXQorKDEgcm93 KQorCiBzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIp WydkJ11bMV07CiAganNvbmIgCiAtLS0tLS0tCiAgMgogKDEgcm93KQogCitzZWxlY3QgKCd7ImEi OiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmRbMV07CisgZCAKKy0tLQor IDIKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNd fSc6Ompzb25iKVsnZCddWydhJ107CiAganNvbmIgCiAtLS0tLS0tCiAgCiAoMSByb3cpCiAKK3Nl bGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZFsnYSdd OworRVJST1I6ICBqc29uYiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN1cHBvcnRzIHN1YnNjcmlwdGlu ZyBpbiB0eXBlOiBJTlQ0LCBnb3QgdHlwZTogdW5rbm93bgorTElORSAxOiBzZWxlY3QgKCd7ImEi OiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmRbJ2EnXTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K K3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZC5h OworIGEgCistLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAi YWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKVsnYSddWydhMSddOwogICAg ICBqc29uYiAgICAgCiAtLS0tLS0tLS0tLS0tLS0KICB7ImEyIjogImFhYSJ9CiAoMSByb3cpCiAK K3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAi Y2NjIn0nOjpqc29uYikuYS5hMTsKKyAgICAgIGExICAgICAgIAorLS0tLS0tLS0tLS0tLS0tCisg eyJhMiI6ICJhYWEifQorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJhMiI6ICJh YWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIpWydhJ11bJ2ExJ11bJ2EyJ107 CiAganNvbmIgCiAtLS0tLS0tCiAgImFhYSIKICgxIHJvdykKIAorc2VsZWN0ICgneyJhIjogeyJh MSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKS5hLmEx LmEyOworICBhMiAgIAorLS0tLS0tLQorICJhYWEiCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6 IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilb J2EnXVsnYTEnXVsnYTInXVsnYTMnXTsKICBqc29uYiAKIC0tLS0tLS0KICAKICgxIHJvdykKIAor c2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJj Y2MifSc6Ompzb25iKS5hLmExLmEyLmEzOworIGEzIAorLS0tLQorIAorKDEgcm93KQorCiBzZWxl Y3QgKCd7ImEiOiBbImExIiwgeyJiMSI6IFsiYWFhIiwgImJiYiIsICJjY2MiXX1dLCAiYiI6ICJi YiJ9Jzo6anNvbmIpWydhJ11bMV1bJ2IxJ107CiAgICAgICAgICBqc29uYiAgICAgICAgIAogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICBbImFhYSIsICJiYmIiLCAiY2NjIl0KICgxIHJvdykKIAor c2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIi OiAiYmIifSc6Ompzb25iKS5hWzFdLmIxOworICAgICAgICAgIGIxICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgWyJhYWEiLCAiYmJiIiwgImNjYyJdCisoMSByb3cpCisKIHNl bGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjog ImJiIn0nOjpqc29uYilbJ2EnXVsxXVsnYjEnXVsyXTsKICBqc29uYiAKIC0tLS0tLS0KICAiY2Nj IgogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiBbImExIiwgeyJiMSI6IFsiYWFhIiwgImJiYiIs ICJjY2MiXX1dLCAiYiI6ICJiYiJ9Jzo6anNvbmIpLmFbMV0uYjFbMl07CisgIGIxICAgCistLS0t LS0tCisgImNjYyIKKygxIHJvdykKKwogLS0gc2xpY2VzIGFyZSBub3Qgc3VwcG9ydGVkCiBzZWxl Y3QgKCd7ImEiOiAxfSc6Ompzb25iKVsnYSc6J2InXTsKLUVSUk9SOiAganNvbmIgc3Vic2NyaXB0 IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzCitFUlJPUjogIGpzb25iIHNpbXBsaWZpZWQgYWNjZXNz b3Igc3VwcG9ydHMgc3Vic2NyaXB0aW5nIGluIHR5cGU6IElOVDQsIGdvdCB0eXBlOiB1bmtub3du CiBMSU5FIDE6IHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydhJzonYiddOwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxOjJdOwotRVJS T1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKLUxJTkUgMTogc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMToyXTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCisgICAganNvbmIgICAgCistLS0tLS0tLS0tLS0tCisg WyIyIiwgbnVsbF0KKygxIHJvdykKKwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilb OjJdOwogRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKIExJ TkUgMTogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbOjJdOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0n Ojpqc29uYilbMTpdOwotRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBz bGljZXMKLUxJTkUgMTogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMTpdOwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAganNvbmIgICAgCist LS0tLS0tLS0tLS0tCisgWyIyIiwgbnVsbF0KKygxIHJvdykKKwogc2VsZWN0ICgnWzEsICIyIiwg bnVsbF0nOjpqc29uYilbOl07Ci1FUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBw b3J0IHNsaWNlcworICAgICBqc29uYiAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFsxLCAiMiIs IG51bGxdCisoMSByb3cpCisKIGNyZWF0ZSBURU1QIFRBQkxFIHRlc3RfanNvbmJfc3Vic2NyaXB0 ICgKICAgICAgICBpZCBpbnQsCiAgICAgICAgdGVzdF9qc29uIGpzb25iCkBAIC01NzgxLDMgKzU4 ODksMTI2IEBAIHNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwNSc6Ompzb25iOjppbnQ4OwogIDEyMzQ1CiAoMSByb3cpCiAKKy0tIGRvdCBu b3RhdGlvbgorQ1JFQVRFIFRBQkxFIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIEFTCitTRUxFQ1Qg J3siYSI6IFsxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6 ICJ5eXkiLCAieiI6ICJ6enoifX1dLCAiYiI6IFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5Ijog IllZWSIsICJ6IjogIlpaWiJ9fV19Jzo6anNvbmIgamI7CitTRUxFQ1QgKGpiKS5hIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5 eSIsICJ6IjogInp6eiJ9fV0KKygxIHJvdykKKworU0VMRUNUIChqYikuImEiIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247IC0tIGRvdWJsZSBxdW90ZSBzaG91bGQgd29yaworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIs ICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dCisoMSByb3cpCisKK1NF TEVDVCAoamIpLidhJyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBzaW5nbGUgcXVv dGUgc2hvdWxkIG5vdCB3b3JrCitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICInYSci CitMSU5FIDE6IFNFTEVDVCAoamIpLidhJyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor ICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgKGpiKS5iIEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb247CisgICAgICAgICAgICAgICAgICAgICAgICAgYiAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV0KKygx IHJvdykKKworU0VMRUNUIChqYikuYyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworIGMg CistLS0KKyAKKygxIHJvdykKKworU0VMRUNUIChqYikuYS5iIEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb247CisgICAgIGIgICAgICAKKy0tLS0tLS0tLS0tLQorIFsiYyIsICJkIl0KKygxIHJv dykKKworU0VMRUNUIChqYikuYVsyXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Cisg IGIgIAorLS0tLS0KKyAiYyIKKygxIHJvdykKKworU0VMRUNUIChqYikuYVsyOjNdLmIgRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgYiAgICAgIAorLS0tLS0tLS0tLS0tCisgWyJj IiwgImQiXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hWzI6XS5iIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CisgICAgIGIgICAgICAKKy0tLS0tLS0tLS0tLQorIFsiYyIsICJkIl0KKygx IHJvdykKKworU0VMRUNUIChqYikuYVs6Ml0uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworICBiICAKKy0tLS0tCisgImMiCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmFbOl0uYiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICBiICAgICAgCistLS0tLS0tLS0tLS0KKyBb ImMiLCAiZCJdCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEueC55IEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CisgICB5ICAgCistLS0tLS0tCisgInl5eSIKKygxIHJvdykKKworU0VMRUNU ICgoamIpLmIpWzpdLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworICAgICAgICAg ICAgeCAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJ5IjogIllZ WSIsICJ6IjogIlpaWiJ9CisoMSByb3cpCisKK1NFTEVDVCAoamIpLmIueC56IEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CisgICB6ICAgCistLS0tLS0tCisgIlpaWiIKKygxIHJvdykKKwor U0VMRUNUIChqYikuYS5iLmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyBjIAorLS0t CisgCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworRVJST1I6ICB0eXBlIGpzb25iIGlzIG5vdCBjb21wb3NpdGUKK0VYUExBSU4gKFZFUkJP U0UsIENPU1RTIE9GRikgU0VMRUNUIChqYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworRVJST1I6ICB0eXBlIGpzb25iIGlzIG5vdCBjb21wb3NpdGUKK1NFTEVDVCAoamIpLiogRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK0VSUk9SOiAgdHlwZSBqc29uYiBpcyBub3QgY29t cG9zaXRlCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAodC5qYikuYSBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQK KyAgIE91dHB1dDogamIuYQorKDIgcm93cykKKworU0VMRUNUICh0LmpiKS5hIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5 IiwgInoiOiAienp6In19XQorKDEgcm93KQorCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYp IFNFTEVDVCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1YmxpYy50ZXN0X2pzb25i X2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiBqYi5hWzFdCisoMiByb3dzKQorCitTRUxFQ1QgKGpi KS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgYSAKKy0tLQorIDIKKygxIHJv dykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvanNvbmIuc3FsCmluZGV4IDU0NGJiNjEwZTJkLi41NWI2YzA3ZjQ2MiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbApAQCAtMTI4NiwzMCArMTI4Niw0NyBAQCBzZWxlY3QganNv bmJfaW5zZXJ0KCd7ImEiOiB7ImIiOiAidmFsdWUifX0nLCAne2EsIGJ9JywgJyJuZXdfdmFsdWUi JywgdHJ1ZSk7CiAKIC0tIGpzb25iIHN1YnNjcmlwdAogc2VsZWN0ICgnMTIzJzo6anNvbmIpWydh J107CitzZWxlY3QgKCcxMjMnOjpqc29uYikuYTsKIHNlbGVjdCAoJzEyMyc6Ompzb25iKVswXTsK IHNlbGVjdCAoJzEyMyc6Ompzb25iKVtOVUxMXTsKK3NlbGVjdCAoJzEyMyc6Ompzb25iKS5OVUxM Owogc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbJ2EnXTsKK3NlbGVjdCAoJ3siYSI6IDF9Jzo6 anNvbmIpLmE7CiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVswXTsKIHNlbGVjdCAoJ3siYSI6 IDF9Jzo6anNvbmIpWydub3RfZXhpc3QnXTsKK3NlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpLiJu b3RfZXhpc3QiOwogc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbTlVMTF07CiBzZWxlY3QgKCdb MSwgIjIiLCBudWxsXSc6Ompzb25iKVsnYSddOworc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpq c29uYikuYTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzBdOwogc2VsZWN0ICgn WzEsICIyIiwgbnVsbF0nOjpqc29uYilbJzEnXTsKK3NlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6 anNvbmIpLiIxIjsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzEuMF07CiBzZWxl Y3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsyXTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxd Jzo6anNvbmIpWzNdOwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbLTJdOwogc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV1bJ2EnXTsKK3NlbGVjdCAoJ1sxLCAiMiIs IG51bGxdJzo6anNvbmIpWzFdLmE7CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsx XVswXTsKIHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29u YilbJ2InXTsKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpq c29uYikuYjsKIHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpq c29uYilbJ2QnXTsKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0n Ojpqc29uYikuZDsKIHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0n Ojpqc29uYilbJ2QnXVsxXTsKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAy LCAzXX0nOjpqc29uYikuZFsxXTsKIHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsx LCAyLCAzXX0nOjpqc29uYilbJ2QnXVsnYSddOworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIs ICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5kWydhJ107CitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6 ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmQuYTsKIHNlbGVjdCAoJ3siYSI6IHsiYTEi OiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsn YTEnXTsKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwg ImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMTsKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjog ImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEnXVsnYTIn XTsKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMi OiAiY2NjIn0nOjpqc29uYikuYS5hMS5hMjsKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjog ImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEnXVsnYTIn XVsnYTMnXTsKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJi IiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMS5hMi5hMzsKIHNlbGVjdCAoJ3siYSI6IFsiYTEi LCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYilbJ2En XVsxXVsnYjEnXTsKK3NlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwg ImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYikuYVsxXS5iMTsKIHNlbGVjdCAoJ3siYSI6IFsi YTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYilb J2EnXVsxXVsnYjEnXVsyXTsKK3NlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAi YmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYikuYVsxXS5iMVsyXTsKIAogLS0gc2xp Y2VzIGFyZSBub3Qgc3VwcG9ydGVkCiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVsnYSc6J2In XTsKQEAgLTE1NzIsMyArMTU4OSwzMSBAQCBzZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6ZmxvYXQ4Owogc2VsZWN0ICcx MjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNv bmI6OmludDI7CiBzZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6aW50NDsKIHNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjppbnQ4OworCistLSBk b3Qgbm90YXRpb24KK0NSRUFURSBUQUJMRSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiBBUworU0VM RUNUICd7ImEiOiBbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7 InkiOiAieXl5IiwgInoiOiAienp6In19XSwgImIiOiBbMywgNCwgeyJiIjogImciLCAieCI6IHsi eSI6ICJZWVkiLCAieiI6ICJaWloifX1dfSc6Ompzb25iIGpiOworCitTRUxFQ1QgKGpiKS5hIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4iYSIgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsgLS0gZG91YmxlIHF1b3RlIHNob3VsZCB3b3JrCitTRUxFQ1QgKGpi KS4nYScgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gc2luZ2xlIHF1b3RlIHNob3Vs ZCBub3Qgd29yaworU0VMRUNUIChqYikuYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor U0VMRUNUIChqYikuYyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYiku YS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzJdLmIgRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmFbMjozXS5iIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzI6XS5iIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzoyXS5iIEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzpdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKK1NFTEVDVCAoamIpLmEueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxF Q1QgKChqYikuYilbOl0ueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CitTRUxFQ1Qg KGpiKS5iLngueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS5i LmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNF TEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLiog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9G RikgU0VMRUNUICh0LmpiKS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVD VCAodC5qYikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CitFWFBMQUlOIChWRVJC T1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKK1NFTEVDVCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLS0g CjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000ba7a10062f75ed3c Content-Type: application/octet-stream; name="v10-0007-Allow-wild-card-member-access-for-jsonb.patch" Content-Disposition: attachment; filename="v10-0007-Allow-wild-card-member-access-for-jsonb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7tiargw6 RnJvbSBhMGUyNzkwYzZkNzI0YWEyN2Q3OGY4ZDNiN2FiZWExODlkMzQ0MGNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAyMzoxNToyNiArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djEwIDcvN10gQWxsb3cgd2lsZCBjYXJkIG1lbWJlciBhY2Nlc3MgZm9yIGpzb25iCgotLS0KIHNy Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgICAgIHwgIDM0ICsrKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdGFyZ2V0LmMgICB8ICA2NyArKysrKysrLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVs ZXV0aWxzLmMgICB8ICAgNiArLQogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAg fCAgIDMgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQgfCAxOTIgKysrKysr KysrKysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsICAg ICAgfCAgMzEgKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMjk5IGluc2VydGlvbnMoKyksIDM2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDdkOTljOTM1NWM2Li4wNDE5NjhjMzVkYiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CkBAIC0xODk2OCw2ICsxODk2OCw3IEBAIGNoZWNrX2Z1bmNfbmFtZShMaXN0ICpu YW1lcywgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpCiBzdGF0aWMgTGlzdCAqCiBjaGVja19pbmRp cmVjdGlvbihMaXN0ICppbmRpcmVjdGlvbiwgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpCiB7Cisj aWYgMAogCUxpc3RDZWxsICAgKmw7CiAKIAlmb3JlYWNoKGwsIGluZGlyZWN0aW9uKQpAQCAtMTg5 NzgsNiArMTg5NzksNyBAQCBjaGVja19pbmRpcmVjdGlvbihMaXN0ICppbmRpcmVjdGlvbiwgY29y ZV95eXNjYW5fdCB5eXNjYW5uZXIpCiAJCQkJcGFyc2VyX3l5ZXJyb3IoImltcHJvcGVyIHVzZSBv ZiBcIipcIiIpOwogCQl9CiAJfQorI2VuZGlmCiAJcmV0dXJuIGluZGlyZWN0aW9uOwogfQogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA4ZWE1MTE3NjE5Ni4uNTEyYWM1YjQ5NzAgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNzQsNyArNzQsNiBAQCBzdGF0aWMgTm9kZSAqdHJhbnNm b3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKTsKIHN0YXRp YyBOb2RlICp0cmFuc2Zvcm1XaG9sZVJvd1JlZihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJ CSAgUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW0sCiAJCQkJCQkJCSAgaW50IHN1YmxldmVsc191 cCwgaW50IGxvY2F0aW9uKTsKLXN0YXRpYyBOb2RlICp0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7CiBzdGF0aWMgTm9kZSAqdHJhbnNm b3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpOwogc3RhdGljIE5v ZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2xsYXRlQ2xh dXNlICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Kc29uT2JqZWN0Q29uc3RydWN0b3IoUGFy c2VTdGF0ZSAqcHN0YXRlLApAQCAtMTU4LDcgKzE1Nyw3IEBAIHRyYW5zZm9ybUV4cHJSZWN1cnNl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJCWJyZWFrOwogCiAJCWNhc2UgVF9B X0luZGlyZWN0aW9uOgotCQkJcmVzdWx0ID0gdHJhbnNmb3JtSW5kaXJlY3Rpb24ocHN0YXRlLCAo QV9JbmRpcmVjdGlvbiAqKSBleHByKTsKKwkJCXJlc3VsdCA9IHRyYW5zZm9ybUluZGlyZWN0aW9u KHBzdGF0ZSwgKEFfSW5kaXJlY3Rpb24gKikgZXhwciwgTlVMTCk7CiAJCQlicmVhazsKIAogCQlj YXNlIFRfQV9BcnJheUV4cHI6CkBAIC00MzIsOCArNDMxLDkgQEAgdW5rbm93bl9hdHRyaWJ1dGUo UGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpyZWxyZWYsIGNvbnN0IGNoYXIgKmF0dG5hbWUsCiAJ fQogfQogCi1zdGF0aWMgTm9kZSAqCi10cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpw c3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKK05vZGUgKgordHJhbnNmb3JtSW5kaXJlY3Rpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQsCisJCQkJCSBib29sICp0cmFp bGluZ19zdGFyX2V4cGFuc2lvbikKIHsKIAlOb2RlCSAgICpsYXN0X3NyZiA9IHBzdGF0ZS0+cF9s YXN0X3NyZjsKIAlOb2RlCSAgICpyZXN1bHQgPSB0cmFuc2Zvcm1FeHByUmVjdXJzZShwc3RhdGUs IGluZC0+YXJnKTsKQEAgLTQ1NCwxMiArNDU0LDcgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFy c2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJCWlmIChJc0EobiwgQV9JbmRp Y2VzKSkKIAkJCXN1YnNjcmlwdHMgPSBsYXBwZW5kKHN1YnNjcmlwdHMsIG4pOwogCQllbHNlIGlm IChJc0EobiwgQV9TdGFyKSkKLQkJewotCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJCQkgZXJybXNnKCJyb3cgZXhwYW5z aW9uIHZpYSBcIipcIiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUiKSwKLQkJCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwotCQl9CisJCQlzdWJzY3JpcHRzID0gbGFwcGVu ZChzdWJzY3JpcHRzLCBuKTsKIAkJZWxzZQogCQl7CiAJCQlBc3NlcnQoSXNBKG4sIFN0cmluZykp OwpAQCAtNDkxLDcgKzQ4NiwyMSBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpw c3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAogCQkJbiA9IGxpbml0aWFsKHN1YnNjcmlwdHMp OwogCi0JCQlpZiAoIUlzQShuLCBTdHJpbmcpKQorCQkJaWYgKElzQShuLCBBX1N0YXIpKQorCQkJ eworCQkJCS8qIFN1Y2Nlc3MsIGlmIHRyYWlsaW5nIHN0YXIgZXhwYW5zaW9uIGlzIGFsbG93ZWQg Ki8KKwkJCQlpZiAodHJhaWxpbmdfc3Rhcl9leHBhbnNpb24gJiYgbGlzdF9sZW5ndGgoc3Vic2Ny aXB0cykgPT0gMSkKKwkJCQl7CisJCQkJCSp0cmFpbGluZ19zdGFyX2V4cGFuc2lvbiA9IHRydWU7 CisJCQkJCXJldHVybiByZXN1bHQ7CisJCQkJfQorCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ CShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2co InJvdyBleHBhbnNpb24gdmlhIFwiKlwiIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSIpLAorCQkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCQkJfQorCQkJZWxzZSBp ZiAoIUlzQShuLCBTdHJpbmcpKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShF UlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKIAkJCQkJCSBlcnJtc2coImNhbm5vdCBzdWJzY3Jp cHQgdHlwZSAlcyBiZWNhdXNlIGl0IGRvZXMgbm90IHN1cHBvcnQgc3Vic2NyaXB0aW5nIiwKQEAg LTUxNyw2ICs1MjYsOSBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUs IEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJcmVzdWx0ID0gbmV3cmVzdWx0OwogCX0KIAorCWlmICh0 cmFpbGluZ19zdGFyX2V4cGFuc2lvbikKKwkJKnRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uID0gZmFs c2U7CisKIAlyZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKaW5k ZXggM2VmNTg5N2YyZWIuLjE0MWZjMWRmZWIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdGFyZ2V0LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5j CkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Bc3NpZ25tZW50U3Vic2Ny aXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiBzdGF0aWMgTGlzdCAqRXhwYW5kQ29sdW1uUmVmU3Rh cihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZiwKIAkJCQkJCQkJIGJvb2wgbWFr ZV90YXJnZXRfZW50cnkpOwogc3RhdGljIExpc3QgKkV4cGFuZEFsbFRhYmxlcyhQYXJzZVN0YXRl ICpwc3RhdGUsIGludCBsb2NhdGlvbik7Ci1zdGF0aWMgTGlzdCAqRXhwYW5kSW5kaXJlY3Rpb25T dGFyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kLAorc3RhdGljIE5vZGUg KkV4cGFuZEluZGlyZWN0aW9uU3RhcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24g KmluZCwKIAkJCQkJCQkJICAgYm9vbCBtYWtlX3RhcmdldF9lbnRyeSwgUGFyc2VFeHByS2luZCBl eHByS2luZCk7CiBzdGF0aWMgTGlzdCAqRXhwYW5kU2luZ2xlVGFibGUoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbSwKIAkJCQkJCQkgICBpbnQgc3VibGV2ZWxz X3VwLCBpbnQgbG9jYXRpb24sCkBAIC0xMzQsNiArMTM0LDcgQEAgdHJhbnNmb3JtVGFyZ2V0TGlz dChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnRhcmdldGxpc3QsCiAJZm9yZWFjaChvX3Rhcmdl dCwgdGFyZ2V0bGlzdCkKIAl7CiAJCVJlc1RhcmdldCAgKnJlcyA9IChSZXNUYXJnZXQgKikgbGZp cnN0KG9fdGFyZ2V0KTsKKwkJTm9kZQkgICAqdHJhbnNmb3JtZWQgPSBOVUxMOwogCiAJCS8qCiAJ CSAqIENoZWNrIGZvciAic29tZXRoaW5nLioiLiAgRGVwZW5kaW5nIG9uIHRoZSBjb21wbGV4aXR5 IG9mIHRoZQpAQCAtMTYyLDEzICsxNjMsMTkgQEAgdHJhbnNmb3JtVGFyZ2V0TGlzdChQYXJzZVN0 YXRlICpwc3RhdGUsIExpc3QgKnRhcmdldGxpc3QsCiAKIAkJCQlpZiAoSXNBKGxsYXN0KGluZC0+ aW5kaXJlY3Rpb24pLCBBX1N0YXIpKQogCQkJCXsKLQkJCQkJLyogSXQgaXMgc29tZXRoaW5nLios IGV4cGFuZCBpbnRvIG11bHRpcGxlIGl0ZW1zICovCi0JCQkJCXBfdGFyZ2V0ID0gbGlzdF9jb25j YXQocF90YXJnZXQsCi0JCQkJCQkJCQkJICAgRXhwYW5kSW5kaXJlY3Rpb25TdGFyKHBzdGF0ZSwK LQkJCQkJCQkJCQkJCQkJCQkgaW5kLAotCQkJCQkJCQkJCQkJCQkJCSB0cnVlLAotCQkJCQkJCQkJ CQkJCQkJCSBleHByS2luZCkpOwotCQkJCQljb250aW51ZTsKKwkJCQkJTm9kZQkgICAqY29sdW1u cyA9IEV4cGFuZEluZGlyZWN0aW9uU3Rhcihwc3RhdGUsCisJCQkJCQkJCQkJCQkJCQkJaW5kLAor CQkJCQkJCQkJCQkJCQkJCXRydWUsCisJCQkJCQkJCQkJCQkJCQkJZXhwcktpbmQpOworCisJCQkJ CWlmIChJc0EoY29sdW1ucywgTGlzdCkpCisJCQkJCXsKKwkJCQkJCS8qIEl0IGlzIHNvbWV0aGlu Zy4qLCBleHBhbmQgaW50byBtdWx0aXBsZSBpdGVtcyAqLworCQkJCQkJcF90YXJnZXQgPSBsaXN0 X2NvbmNhdChwX3RhcmdldCwgKExpc3QgKikgY29sdW1ucyk7CisJCQkJCQljb250aW51ZTsKKwkJ CQkJfQorCisJCQkJCXRyYW5zZm9ybWVkID0gKE5vZGUgKikgY29sdW1uczsKIAkJCQl9CiAJCQl9 CiAJCX0KQEAgLTE4MCw3ICsxODcsNyBAQCB0cmFuc2Zvcm1UYXJnZXRMaXN0KFBhcnNlU3RhdGUg KnBzdGF0ZSwgTGlzdCAqdGFyZ2V0bGlzdCwKIAkJcF90YXJnZXQgPSBsYXBwZW5kKHBfdGFyZ2V0 LAogCQkJCQkJICAgdHJhbnNmb3JtVGFyZ2V0RW50cnkocHN0YXRlLAogCQkJCQkJCQkJCQkJcmVz LT52YWwsCi0JCQkJCQkJCQkJCQlOVUxMLAorCQkJCQkJCQkJCQkJdHJhbnNmb3JtZWQsCiAJCQkJ CQkJCQkJCQlleHByS2luZCwKIAkJCQkJCQkJCQkJCXJlcy0+bmFtZSwKIAkJCQkJCQkJCQkJCWZh bHNlKSk7CkBAIC0yNTEsMTAgKzI1OCwxNSBAQCB0cmFuc2Zvcm1FeHByZXNzaW9uTGlzdChQYXJz ZVN0YXRlICpwc3RhdGUsIExpc3QgKmV4cHJsaXN0LAogCiAJCQlpZiAoSXNBKGxsYXN0KGluZC0+ aW5kaXJlY3Rpb24pLCBBX1N0YXIpKQogCQkJewotCQkJCS8qIEl0IGlzIHNvbWV0aGluZy4qLCBl eHBhbmQgaW50byBtdWx0aXBsZSBpdGVtcyAqLwotCQkJCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJl c3VsdCwKLQkJCQkJCQkJCSBFeHBhbmRJbmRpcmVjdGlvblN0YXIocHN0YXRlLCBpbmQsCi0JCQkJ CQkJCQkJCQkJCSAgIGZhbHNlLCBleHByS2luZCkpOworCQkJCU5vZGUJICAgKmNvbHMgPSBFeHBh bmRJbmRpcmVjdGlvblN0YXIocHN0YXRlLCBpbmQsCisJCQkJCQkJCQkJCQkJCSBmYWxzZSwgZXhw cktpbmQpOworCisJCQkJaWYgKCFjb2xzIHx8IElzQShjb2xzLCBMaXN0KSkKKwkJCQkJLyogSXQg aXMgc29tZXRoaW5nLiosIGV4cGFuZCBpbnRvIG11bHRpcGxlIGl0ZW1zICovCisJCQkJCXJlc3Vs dCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgKExpc3QgKikgY29scyk7CisJCQkJZWxzZQorCQkJCQly ZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgY29scyk7CisKIAkJCQljb250aW51ZTsKIAkJCX0KIAkJ fQpAQCAtMTM0NSwyMiArMTM1NywzMCBAQCBFeHBhbmRBbGxUYWJsZXMoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBpbnQgbG9jYXRpb24pCiAgKiBGb3Igcm9idXN0bmVzcywgd2UgdXNlIGEgc2VwYXJhdGUg Im1ha2VfdGFyZ2V0X2VudHJ5IiBmbGFnIHRvIGNvbnRyb2wKICAqIHRoaXMgcmF0aGVyIHRoYW4g cmVseWluZyBvbiBleHByS2luZC4KICAqLwotc3RhdGljIExpc3QgKgorc3RhdGljIE5vZGUgKgog RXhwYW5kSW5kaXJlY3Rpb25TdGFyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAq aW5kLAogCQkJCQkgIGJvb2wgbWFrZV90YXJnZXRfZW50cnksIFBhcnNlRXhwcktpbmQgZXhwcktp bmQpCiB7CiAJTm9kZQkgICAqZXhwcjsKKwlQYXJzZUV4cHJLaW5kIHN2X2V4cHJfa2luZDsKKwli b29sCQl0cmFpbGluZ19zdGFyX2V4cGFuc2lvbiA9IGZhbHNlOworCisJLyogU2F2ZSBhbmQgcmVz dG9yZSBpZGVudGl0eSBvZiBleHByZXNzaW9uIHR5cGUgd2UncmUgcGFyc2luZyAqLworCUFzc2Vy dChleHByS2luZCAhPSBFWFBSX0tJTkRfTk9ORSk7CisJc3ZfZXhwcl9raW5kID0gcHN0YXRlLT5w X2V4cHJfa2luZDsKKwlwc3RhdGUtPnBfZXhwcl9raW5kID0gZXhwcktpbmQ7CiAKIAkvKiBTdHJp cCBvZmYgdGhlICcqJyB0byBjcmVhdGUgYSByZWZlcmVuY2UgdG8gdGhlIHJvd3R5cGUgb2JqZWN0 ICovCi0JaW5kID0gY29weU9iamVjdChpbmQpOwotCWluZC0+aW5kaXJlY3Rpb24gPSBsaXN0X3Ry dW5jYXRlKGluZC0+aW5kaXJlY3Rpb24sCi0JCQkJCQkJCQkgbGlzdF9sZW5ndGgoaW5kLT5pbmRp cmVjdGlvbikgLSAxKTsKKwlleHByID0gdHJhbnNmb3JtSW5kaXJlY3Rpb24ocHN0YXRlLCBpbmQs ICZ0cmFpbGluZ19zdGFyX2V4cGFuc2lvbik7CisKKwlwc3RhdGUtPnBfZXhwcl9raW5kID0gc3Zf ZXhwcl9raW5kOwogCi0JLyogQW5kIHRyYW5zZm9ybSB0aGF0ICovCi0JZXhwciA9IHRyYW5zZm9y bUV4cHIocHN0YXRlLCAoTm9kZSAqKSBpbmQsIGV4cHJLaW5kKTsKKwkvKiAnKicgd2FzIGNvbnN1 bWVkIGJ5IGdlbmVyaWMgdHlwZSBzdWJzY3JpcHRpbmcgKi8KKwlpZiAoIXRyYWlsaW5nX3N0YXJf ZXhwYW5zaW9uKQorCQlyZXR1cm4gZXhwcjsKIAogCS8qIEV4cGFuZCB0aGUgcm93dHlwZSBleHBy ZXNzaW9uIGludG8gaW5kaXZpZHVhbCBmaWVsZHMgKi8KLQlyZXR1cm4gRXhwYW5kUm93UmVmZXJl bmNlKHBzdGF0ZSwgZXhwciwgbWFrZV90YXJnZXRfZW50cnkpOworCXJldHVybiAoTm9kZSAqKSBF eHBhbmRSb3dSZWZlcmVuY2UocHN0YXRlLCBleHByLCBtYWtlX3RhcmdldF9lbnRyeSk7CiB9CiAK IC8qCkBAIC0xNzg1LDEzICsxODA1LDE4IEBAIEZpZ3VyZUNvbG5hbWVJbnRlcm5hbChOb2RlICpu b2RlLCBjaGFyICoqbmFtZSkKIAkJCQljaGFyCSAgICpmbmFtZSA9IE5VTEw7CiAJCQkJTGlzdENl bGwgICAqbDsKIAotCQkJCS8qIGZpbmQgbGFzdCBmaWVsZCBuYW1lLCBpZiBhbnksIGlnbm9yaW5n ICIqIiBhbmQgc3Vic2NyaXB0cyAqLworCQkJCS8qCisJCQkJICogZmluZCBsYXN0IGZpZWxkIG5h bWUsIGlmIGFueSwgaWdub3Jpbmcgc3Vic2NyaXB0cywgYW5kIHVzZQorCQkJCSAqICc/Y29sdW1u Pycgd2hlbiB0aGVyZSdzIGEgdHJhaWxpbmcgJyonLgorCQkJCSAqLwogCQkJCWZvcmVhY2gobCwg aW5kLT5pbmRpcmVjdGlvbikKIAkJCQl7CiAJCQkJCU5vZGUJICAgKmkgPSBsZmlyc3QobCk7CiAK IAkJCQkJaWYgKElzQShpLCBTdHJpbmcpKQogCQkJCQkJZm5hbWUgPSBzdHJWYWwoaSk7CisJCQkJ CWVsc2UgaWYgKElzQShpLCBBX1N0YXIpKQorCQkJCQkJZm5hbWUgPSAiP2NvbHVtbj8iOwogCQkJ CX0KIAkJCQlpZiAoZm5hbWUpCiAJCQkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4 IGNmYWU4MTU5YTc2Li4xYmMyOTJjNWM0NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpA QCAtMTI5MjYsNyArMTI5MjYsMTEgQEAgcHJpbnRTdWJzY3JpcHRzKFN1YnNjcmlwdGluZ1JlZiAq c2JzcmVmLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJewogCQlOb2RlCSAgICp1cCA9IChO b2RlICopIGxmaXJzdCh1cGxpc3RfaXRlbSk7CiAKLQkJaWYgKElzQSh1cCwgU3RyaW5nKSkKKwkJ aWYgKCF1cCkKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIuKiIpOworCQl9 CisJCWVsc2UgaWYgKElzQSh1cCwgU3RyaW5nKSkKIAkJewogCQkJYXBwZW5kU3RyaW5nSW5mb0No YXIoYnVmLCAnLicpOwogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHF1b3RlX2lkZW50 aWZpZXIoc3RyVmFsKHVwKSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X2V4cHIuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKaW5kZXggZWZiYWZmOGU3 MTAuLmM5ZjZhNzcyNGMwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhw ci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKQEAgLTIyLDQgKzIyLDcg QEAgZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpl eHByLCBQYXJzZUV4cHJLaW5kIGV4cHJLaW4KIAogZXh0ZXJuIGNvbnN0IGNoYXIgKlBhcnNlRXhw cktpbmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCitleHRlcm4gTm9kZSAqdHJhbnNm b3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQsCisJ CQkJCQkJCSAgYm9vbCAqdHJhaWxpbmdfc3Rhcl9leHBhbnNpb24pOworCiAjZW5kaWYJCQkJCQkJ LyogUEFSU0VfRVhQUl9IICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2pzb25iLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CmluZGV4IDQ4 MGVjYjQ0YTk0Li5hYWI2OWI0NzIyYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9qc29uYi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQK QEAgLTU5ODAsMTIgKzU5ODAsMTcyIEBAIFNFTEVDVCAoamIpLmEuYi5jIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247CiAgCiAoMSByb3cpCiAKKy8qIHdpbGQgY2FyZCBtZW1iZXIgYWNjZXNz ICovCiBTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLUVSUk9S OiAgdHlwZSBqc29uYiBpcyBub3QgY29tcG9zaXRlCisgICAgICAgICAgICAgICAgID9jb2x1bW4/ ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgWyJjIiwgImQiLCAiZiIsIHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifV0KKygxIHJv dykKKworU0VMRUNUIChqYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Y29s dW1uPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUi OiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0sIFszLCA0LCB7ImIiOiAiZyIs ICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV1dCisoMSByb3cpCisKK1NFTEVDVCAoamIp LiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBbWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5 IjogInl5eSIsICJ6IjogInp6eiJ9fV0sIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZ WSIsICJ6IjogIlpaWiJ9fV1dCisoMSByb3cpCisKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgID9jb2x1bW4/ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFtbMSwg MiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoi OiAienp6In19XSwgWzMsIDQsIHsiYiI6ICJnIiwgIngiOiB7InkiOiAiWVlZIiwgInoiOiAiWlpa In19XV0KKygxIHJvdykKKworU0VMRUNUIChqYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbWzEsIDIsIHsiYiI6ICJjIn0sIHsi YiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0sIFszLCA0 LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV1dCisoMSByb3cpCisK K1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworRVJST1I6ICBt aXNzaW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0YWJsZSAidCIKK0xJTkUgMTogU0VMRUNUICh0 LmpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgXgor U0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgP2NvbHVt bj8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgW1sxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjog ImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dLCBbMywgNCwgeyJiIjogImciLCAi eCI6IHsieSI6ICJZWVkiLCAieiI6ICJaWloifX1dXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5h LiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgP2NvbHVt bj8gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBbImMiLCAiZCIsICJmIiwgeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9XQorKDEg cm93KQorCitTRUxFQ1QgKGpiKS5hLiouYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor IGIgCistLS0KKyAKKygxIHJvdykKKworU0VMRUNUIChqYikuYS4qLnggRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbjsKKyB4IAorLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEuKi55 IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICB5ICAgCistLS0tLS0tCisgInl5eSIK KygxIHJvdykKKworU0VMRUNUIChqYikuYS4qLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKKyAgICA/Y29sdW1uPyAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJ6enoiXQor KDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg W3sieSI6ICJ5eXkiLCAieiI6ICJ6enoifSwgeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9XQorKDEg cm93KQorCitTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0Owor ICAgICAgICAgICAgICAgICAgICAgICAgICB4ICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBb eyJ5IjogInl5eSIsICJ6IjogInp6eiJ9LCB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn1dCisoMSBy b3cpCisKK1NFTEVDVCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsK KyB4IAorLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24gdDsKKyB4IAorLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCAoKGpiKS4q KVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgeCAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6 ICJ6enoifSwgeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpi KS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgeCAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6ICJ6 enoifSwgeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4q LnguKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICA/Y29sdW1uPyAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJ6enoi LCAiWVlZIiwgIlpaWiJdCisoMSByb3cpCisKK1NFTEVDVCAoamIpLioueC55IEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CisgICAgICAgeSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisg WyJ5eXkiLCAiWVlZIl0KKygxIHJvdykKKworU0VMRUNUIChqYikuKi54LnogRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICB6ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBb Inp6eiIsICJaWloiXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLioueSBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworICAgICAgIHkgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFsi eXl5IiwgIllZWSJdCisoMSByb3cpCisKK1NFTEVDVCAoamIpLiouKi4qIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247CisgICAgICAgICAgID9jb2x1bW4/ICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsieXl5IiwgInp6eiIsICJZWVkiLCAiWlpaIl0KKygx IHJvdykKKworU0VMRUNUIChqYikuKi4qLiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLmIu Yy4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgP2NvbHVtbj8gCistLS0tLS0tLS0t CisgCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEuKioueCBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOyAtLSBub3Qgc3VwcG9ydGVkCitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFy ICIqKiIKK0xJTkUgMTogU0VMRUNUIChqYikuYS4qKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CisgICAgICAgICAgICAgICAgICAgICAgXgogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMg T0ZGKSBTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci1FUlJPUjog IHR5cGUganNvbmIgaXMgbm90IGNvbXBvc2l0ZQorICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBP dXRwdXQ6IGpiLioKKygyIHJvd3MpCisKIFNFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKLUVSUk9SOiAgdHlwZSBqc29uYiBpcyBub3QgY29tcG9zaXRlCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID9jb2x1 bW4/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFtbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6 ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6In19XSwgWzMsIDQsIHsiYiI6ICJnIiwg IngiOiB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn19XV0KKygxIHJvdykKKwogRVhQTEFJTiAoVkVS Qk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbiB0OwogICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIAog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNjAxMiwz ICs2MTcyLDI5IEBAIFNFTEVDVCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKICAyCiAoMSByb3cpCiAKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChq YikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRp b24KKyAgIE91dHB1dDogamIuYS4qCisoMiByb3dzKQorCitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBbImMiLCAiZCIsICJmIiwgeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9XQorKDEgcm93KQorCitF WFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmEuKlsxOjJdLiouYiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRw dXQ6IGpiLmEuKlsxOjJdLiouYgorKDIgcm93cykKKworU0VMRUNUIChqYikuYS4qWzE6Ml0uKi5i IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgYiAKKy0tLQorIAorKDEgcm93KQorCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9qc29uYi5zcWwKaW5kZXggNTViNmMwN2Y0NjIuLjdkNjAyYmQ4ZGFjIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvanNvbmIuc3FsCkBAIC0xNjA5LDcgKzE2MDksMzQgQEAgU0VMRUNUIChqYikuYS54Lnkg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKIFNFTEVDVCAoKGpiKS5iKVs6XS54IEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKIFNFTEVDVCAoamIpLmIueC56IEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CiBTRUxFQ1QgKGpiKS5hLmIuYyBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworCisvKiB3aWxkIGNhcmQgbWVtYmVyIGFjY2VzcyAqLwogU0VMRUNUIChqYiku YS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb24gdDsKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u IHQ7CitTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1Qg KHQuamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAodC5qYikuKiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuKi5iIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hLioueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworU0VMRUNUIChqYikuYS4qLnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NF TEVDVCAoamIpLmEuKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpi KS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLioueCBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CitTRUxFQ1QgKChqYikuKikueCBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uIHQ7CitTRUxFQ1QgKChqYikuKikueCBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uIHQ7CitTRUxFQ1QgKChqYikuKilbOl0ueCBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uIHQ7CitTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKK1NFTEVDVCAoamIpLioueC4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxF Q1QgKGpiKS4qLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYiku Ki54LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLiouKi55IEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qLiouKiBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuKi4qLiouKiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS5iLmMuKiBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworU0VMRUNUIChqYikuYS4qKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 IC0tIG5vdCBzdXBwb3J0ZWQKIAogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1Qg KGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiBTRUxFQ1QgKGpiKS4qIEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb247CkBAIC0xNjE3LDMgKzE2NDQsNyBAQCBFWFBMQUlOIChW RVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAodC5qYikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uIHQ7CiBTRUxFQ1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0 OwogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CiBTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmEu KiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS4qIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVD VCAoamIpLmEuKlsxOjJdLiouYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNU IChqYikuYS4qWzE6Ml0uKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci0tIAoyLjM5 LjUgKEFwcGxlIEdpdC0xNTQpCgo= --000000000000ba7a10062f75ed3c--