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 1tng6k-007St8-RH for pgsql-hackers@arkaria.postgresql.org; Thu, 27 Feb 2025 15:47:31 +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 1tng6j-00HH58-58 for pgsql-hackers@arkaria.postgresql.org; Thu, 27 Feb 2025 15:47:29 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tng6i-00HH4g-9m for pgsql-hackers@lists.postgresql.org; Thu, 27 Feb 2025 15:47:28 +0000 Received: from mail-pl1-x643.google.com ([2607:f8b0:4864:20::643]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tng6f-000Ot8-0N for pgsql-hackers@postgresql.org; Thu, 27 Feb 2025 15:47:27 +0000 Received: by mail-pl1-x643.google.com with SMTP id d9443c01a7336-2230c74c8b6so32243875ad.0 for ; Thu, 27 Feb 2025 07:47:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740671245; x=1741276045; 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=JjGGl/zq0aIMtkvrhHRHcX0cHu/el71E3aRi52ysSdE=; b=B7wFXbRE/ox29UcMrwCni0FL9pZvYukvjO/IWA7vvZlt8fX85kR0VvMeHVOEuXSjAF RozrFzqYIeWoxqnmQb5eqPzUqRJosH+BpklPVzNgPqUQkyKqsuXJCdLUD2X9rij6Lb4E 6xq6+C9ht1Pm1dahkfAIDLgsOrJEfJ2eYEfayVqrTZfRLILim6PwmLG2TKIqKnnt2DfF nWDabmqY5Ji1hXbkbxpJpXILnoFdbzyNt5QMT8EnDEmxQp49NzZLfY0IdvE2lLTsLKb4 t7eRccddQJWbNHIcqTC6ut+WSKiQFXveJyDJE8n01kMAf9TWABicrKR6fQuOCDfdyoNI sCjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740671245; x=1741276045; 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=JjGGl/zq0aIMtkvrhHRHcX0cHu/el71E3aRi52ysSdE=; b=Tw8IL4r2XhgUQnECgyVQ3At7l9WFPfuUa6DuaeE9zHAwRGCiHmtdGVcDHJjBI4SaD3 +pGGNmH87BEr3xfVRKz8wz53Z/bRcqm9oUIqHe03lpXB15QMB6Li6eGCW9zia90KkP3x dFVaN8ezlHu08IerlVyl9IfXf6fkIt+URvcVla+y0JD2DqiapgNFz/0B7Rdwz+dXFaUl /iKGPvYUIK0Jl8MCS3t+br//ksu9CkH0ZMsoEzh8LxWwyb+wTeTJEBHXIdK0Uhu1WeHA Jh4ODcHmQljEizD4BxuAgFUqooyc4/2wKe8S9X1o1zM5I6nZzmv3H6HK28X55L/bW6h3 RulQ== X-Forwarded-Encrypted: i=1; AJvYcCVWSpNueQVzsww852yjajjr0JjGCxr9HnbP2/eIQ+yHkiPyPsRFT9EcmFTsE9gZn5/kWSXdpAriBHQM0dBN@postgresql.org X-Gm-Message-State: AOJu0YwgXfjE+0fcBbfFZBAw0RM0ezcy7Cokby0FI1/z/jRPXUTzWsZM CmijNYypLx97Zv3+TtmZq8uiDDugEiSTCOM5gqgG0BdU0PrvaKYhEWVzvBJRP4ezSanL7vmbQFM bGBGHykMWNA4IXBEYCPMBGV5XvM8= X-Gm-Gg: ASbGnctb2iPwPgOcmxvKGMauWLyZm0cNi05Ryqxu5E6jgqJKRQ4Q9QWLqa78T3jOHQf 6Lx3zhK+Yrly+nZeEoStUgYrRDSyHFardBbL65Vh6AnyQQ7x0AUGMGYG+/8iMItiE9L0NnCukXv ewA6UVutGjVEDc43P4YNaESX8CfiplH2A+QuKGlTc= X-Google-Smtp-Source: AGHT+IFWpQ7RMCFk7BpIW9pwCdcNlTNXn/y9SjRltYSRKC8IDAyhUwDdbWFDSGe+3QKa2MxFdBkiivp10o8w4Hu78TI= X-Received: by 2002:a05:6a00:1709:b0:732:2967:400 with SMTP id d2e1a72fcca58-7347910977emr18586497b3a.12.1740671245330; Thu, 27 Feb 2025 07:47:25 -0800 (PST) MIME-Version: 1.0 References: <21fa36b4-6d56-4556-b524-9e3955b922c8@eisentraut.org> In-Reply-To: From: Alexandra Wang Date: Thu, 27 Feb 2025 09:46:48 -0600 X-Gm-Features: AQ5f1Jq7u2oxA4Wseave-k5ROjfGiKPq2ka-MjRgVzSGGgeOPZ36-2evcRFqzxs Message-ID: Subject: Re: SQL:2023 JSON simplified accessor support To: Peter Eisentraut Cc: Andrew Dunstan , Nikita Glukhov , PostgreSQL Hackers , "David E. Wheeler" , jian he , matheusssilv97@gmail.com Content-Type: multipart/mixed; boundary="0000000000003fda25062f219b57" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003fda25062f219b57 Content-Type: multipart/alternative; boundary="0000000000003fda24062f219b55" --0000000000003fda24062f219b55 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello hackers, I=E2=80=99ve fixed the compilation failure for hstore and updated the patch= es. In this version, I=E2=80=99ve further cleaned up the code and added more comments. I hope this helps! Summary of changes: v8-0001 through v8-0005: Refactoring and preparatory steps for the actual implementation. v8-0006 (Implement read-only dot notation for JSONB): I removed the vars field (introduced in v7) from JsonbSubWorkspace after realizing that JsonPathVariable is not actually needed for dot-notation. v8-0007 (Allow wildcard member access for JSONB): I'm aware that the #if 0 in check_indirection() is not ideal. I haven=E2=80=99t removed it yet because I=E2=80=99m still reviewing other ca= ses=E2=80=94beyond our JSONB simplified accessor use case=E2=80=94where this check should rema= in strict. I=E2=80=99ll post an additional patch to address this. Looking forward to comments and feedback! Thanks, Alex --0000000000003fda24062f219b55 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello hackers,

I=E2=80=99ve fixed the compilat= ion failure for hstore and updated the patches.
In this version, I=E2=80= =99ve further cleaned up the code and added more
comments. I hope this h= elps!

Summary of changes:

v8-0001 through v8-0005:
Refacto= ring and preparatory steps for the actual implementation.

v8-0006 (I= mplement read-only dot notation for JSONB):
I removed the vars field (in= troduced in v7) from JsonbSubWorkspace
after realizing that JsonPathVari= able is not actually needed for
dot-notation.

v8-0007 (Allow wild= card member access for JSONB):
I'm aware that the #if 0 in check_ind= irection() is not ideal. I
haven=E2=80=99t removed it yet because I=E2= =80=99m still reviewing other cases=E2=80=94beyond
our JSONB simplified = accessor use case=E2=80=94where this check should remain
strict. I=E2=80= =99ll post an additional patch to address this.

Looking forward to c= omments and feedback!

Thanks,
Alex
--0000000000003fda24062f219b55-- --0000000000003fda25062f219b57 Content-Type: application/octet-stream; name="v8-0002-Pass-field-accessors-to-generic-subscripting.patch" Content-Disposition: attachment; filename="v8-0002-Pass-field-accessors-to-generic-subscripting.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7ninypj1 RnJvbSAyODI1MjE1Njg2MTdhNzA0ZGYzZTA5Mjc5ZjU2OGYzMWIxODcxNDExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAxNjoyMToyMCArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djggMi83XSBQYXNzIGZpZWxkIGFjY2Vzc29ycyB0byBnZW5lcmljIHN1YnNjcmlwdGluZwoKLS0t CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgfCA2NiArKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jICAgfCA0MSAr KysrKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgfCAg MyArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jIHwgMTMgKysrKy0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgfCAxMSArKysrKy0KIHNyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9ub2RlLmggICB8ICAzICstCiA2IGZpbGVzIGNoYW5nZWQsIDEwNSBpbnNlcnRp b25zKCspLCAzMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAyYzBm NGE1MGIyMS4uOGVhNTExNzYxOTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNDQyLDgg KzQ0Miw5IEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRp cmVjdGlvbiAqaW5kKQogCUxpc3RDZWxsICAgKmk7CiAKIAkvKgotCSAqIFdlIGhhdmUgdG8gc3Bs aXQgYW55IGZpZWxkLXNlbGVjdGlvbiBvcGVyYXRpb25zIGFwYXJ0IGZyb20KLQkgKiBzdWJzY3Jp cHRpbmcuICBBZGphY2VudCBBX0luZGljZXMgbm9kZXMgaGF2ZSB0byBiZSB0cmVhdGVkIGFzIGEg c2luZ2xlCisJICogQ29tYmluZSBmaWVsZCBuYW1lcyBhbmQgc3Vic2NyaXB0cyBpbnRvIGEgc2lu Z2xlIGluZGlyZWN0aW9uIGxpc3QsIGFzCisJICogc29tZSBzdWJzY3JpcHRpbmcgY29udGFpbmVy cywgc3VjaCBhcyBqc29uYiwgc3VwcG9ydCBmaWVsZCBhY2Nlc3MgdXNpbmcKKwkgKiBkb3Qgbm90 YXRpb24uIEFkamFjZW50IEFfSW5kaWNlcyBub2RlcyBoYXZlIHRvIGJlIHRyZWF0ZWQgYXMgYSBz aW5nbGUKIAkgKiBtdWx0aWRpbWVuc2lvbmFsIHN1YnNjcmlwdCBvcGVyYXRpb24uCiAJICovCiAJ Zm9yZWFjaChpLCBpbmQtPmluZGlyZWN0aW9uKQpAQCAtNDYxLDE5ICs0NjIsNDMgQEAgdHJhbnNm b3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJ CX0KIAkJZWxzZQogCQl7Ci0JCQlOb2RlCSAgICpuZXdyZXN1bHQ7Ci0KIAkJCUFzc2VydChJc0Eo biwgU3RyaW5nKSk7CisJCQlzdWJzY3JpcHRzID0gbGFwcGVuZChzdWJzY3JpcHRzLCBuKTsKKwkJ fQorCX0KKworCXdoaWxlIChzdWJzY3JpcHRzKQorCXsKKwkJLyogdHJ5IHByb2Nlc3NpbmcgY29u dGFpbmVyIHN1YnNjcmlwdHMgZmlyc3QgKi8KKwkJTm9kZQkgICAqbmV3cmVzdWx0ID0gKE5vZGUg KikKKwkJCXRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMocHN0YXRlLAorCQkJCQkJCQkJCSBy ZXN1bHQsCisJCQkJCQkJCQkJIGV4cHJUeXBlKHJlc3VsdCksCisJCQkJCQkJCQkJIGV4cHJUeXBt b2QocmVzdWx0KSwKKwkJCQkJCQkJCQkgJnN1YnNjcmlwdHMsCisJCQkJCQkJCQkJIGZhbHNlLAor CQkJCQkJCQkJCSB0cnVlKTsKKworCQlpZiAoIW5ld3Jlc3VsdCkKKwkJeworCQkJLyoKKwkJCSAq IGdlbmVyaWMgc3Vic2NyaXB0aW5nIGZhaWxlZDsgZmFsbGluZyBiYWNrIHRvIGZ1bmN0aW9uIGNh bGwgb3IKKwkJCSAqIGZpZWxkIHNlbGVjdGlvbiBmb3IgYSBjb21wb3NpdGUgdHlwZS4KKwkJCSAq LworCQkJTm9kZQkgICAqbjsKKworCQkJQXNzZXJ0KHN1YnNjcmlwdHMpOwogCi0JCQkvKiBwcm9j ZXNzIHN1YnNjcmlwdHMgYmVmb3JlIHRoaXMgZmllbGQgc2VsZWN0aW9uICovCi0JCQl3aGlsZSAo c3Vic2NyaXB0cykKLQkJCQlyZXN1bHQgPSAoTm9kZSAqKSB0cmFuc2Zvcm1Db250YWluZXJTdWJz Y3JpcHRzKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCQkJCSAgIHJlc3VsdCwKLQkJCQkJCQkJCQkJCQkJ CSAgIGV4cHJUeXBlKHJlc3VsdCksCi0JCQkJCQkJCQkJCQkJCQkgICBleHByVHlwbW9kKHJlc3Vs dCksCi0JCQkJCQkJCQkJCQkJCQkgICAmc3Vic2NyaXB0cywKLQkJCQkJCQkJCQkJCQkJCSAgIGZh bHNlKTsKKwkJCW4gPSBsaW5pdGlhbChzdWJzY3JpcHRzKTsKKworCQkJaWYgKCFJc0EobiwgU3Ry aW5nKSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQ RV9NSVNNQVRDSCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3Qgc3Vic2NyaXB0IHR5cGUgJXMgYmVj YXVzZSBpdCBkb2VzIG5vdCBzdXBwb3J0IHN1YnNjcmlwdGluZyIsCisJCQkJCQkJCWZvcm1hdF90 eXBlX2JlKGV4cHJUeXBlKHJlc3VsdCkpKSwKKwkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBleHByTG9jYXRpb24ocmVzdWx0KSkpKTsKIAorCQkJLyogdHJ5IHRvIGZpbmQgZnVuY3Rp b24gZm9yIGZpZWxkIHNlbGVjdGlvbiAqLwogCQkJbmV3cmVzdWx0ID0gUGFyc2VGdW5jT3JDb2x1 bW4ocHN0YXRlLAogCQkJCQkJCQkJCSAgbGlzdF9tYWtlMShuKSwKIAkJCQkJCQkJCQkgIGxpc3Rf bWFrZTEocmVzdWx0KSwKQEAgLTQ4MSwxOSArNTA2LDE2IEBAIHRyYW5zZm9ybUluZGlyZWN0aW9u KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCQkJCQkJCQkJCSAgTlVM TCwKIAkJCQkJCQkJCQkgIGZhbHNlLAogCQkJCQkJCQkJCSAgbG9jYXRpb24pOwotCQkJaWYgKG5l d3Jlc3VsdCA9PSBOVUxMKQorCisJCQlpZiAoIW5ld3Jlc3VsdCkKIAkJCQl1bmtub3duX2F0dHJp YnV0ZShwc3RhdGUsIHJlc3VsdCwgc3RyVmFsKG4pLCBsb2NhdGlvbik7Ci0JCQlyZXN1bHQgPSBu ZXdyZXN1bHQ7CisKKwkJCS8qIGNvbnN1bWUgZmllbGQgc2VsZWN0ICovCisJCQlzdWJzY3JpcHRz ID0gbGlzdF9kZWxldGVfZmlyc3Qoc3Vic2NyaXB0cyk7CiAJCX0KKworCQlyZXN1bHQgPSBuZXdy ZXN1bHQ7CiAJfQotCS8qIHByb2Nlc3MgdHJhaWxpbmcgc3Vic2NyaXB0cywgaWYgYW55ICovCi0J d2hpbGUgKHN1YnNjcmlwdHMpCi0JCXJlc3VsdCA9IChOb2RlICopIHRyYW5zZm9ybUNvbnRhaW5l clN1YnNjcmlwdHMocHN0YXRlLAotCQkJCQkJCQkJCQkJCSAgIHJlc3VsdCwKLQkJCQkJCQkJCQkJ CQkgICBleHByVHlwZShyZXN1bHQpLAotCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBtb2QocmVzdWx0 KSwKLQkJCQkJCQkJCQkJCQkgICAmc3Vic2NyaXB0cywKLQkJCQkJCQkJCQkJCQkgICBmYWxzZSk7 CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX25vZGUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMKaW5kZXggMTlhNmI2 NzhlNjcuLmIzZTQ3NmViMTgxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf bm9kZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMKQEAgLTIzOCw2ICsy MzgsOCBAQCB0cmFuc2Zvcm1Db250YWluZXJUeXBlKE9pZCAqY29udGFpbmVyVHlwZSwgaW50MzIg KmNvbnRhaW5lclR5cG1vZCkKICAqIGNvbnRhaW5lclR5cE1vZAl0eXBtb2QgZm9yIHRoZSBjb250 YWluZXIKICAqIGluZGlyZWN0aW9uCQlVbnRyYW5zZm9ybWVkIGxpc3Qgb2Ygc3Vic2NyaXB0cyAo bXVzdCBub3QgYmUgTklMKQogICogaXNBc3NpZ25tZW50CQlUcnVlIGlmIHRoaXMgd2lsbCBiZWNv bWUgYSBjb250YWluZXIgYXNzaWdubWVudC4KKyAqIG5vRXJyb3IJCQlUcnVlIGZvciByZXR1cm4g TlVMTCB3aXRoIG5vIGVycm9yLCBpZiB0aGUgY29udGFpbmVyIHR5cGUKKyAqIAkJCQkJaXMgbm90 IHN1YnNjcmlwdGFibGUuCiAgKi8KIFN1YnNjcmlwdGluZ1JlZiAqCiB0cmFuc2Zvcm1Db250YWlu ZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKQEAgLTI0NSwxMyArMjQ3LDE1IEBAIHRy YW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCSBP aWQgY29udGFpbmVyVHlwZSwKIAkJCQkJCQkgaW50MzIgY29udGFpbmVyVHlwTW9kLAogCQkJCQkJ CSBMaXN0ICoqaW5kaXJlY3Rpb24sCi0JCQkJCQkJIGJvb2wgaXNBc3NpZ25tZW50KQorCQkJCQkJ CSBib29sIGlzQXNzaWdubWVudCwKKwkJCQkJCQkgYm9vbCBub0Vycm9yKQogewogCVN1YnNjcmlw dGluZ1JlZiAqc2JzcmVmOwogCWNvbnN0IFN1YnNjcmlwdFJvdXRpbmVzICpzYnNyb3V0aW5lczsK IAlPaWQJCQllbGVtZW50VHlwZTsKIAlib29sCQlpc1NsaWNlID0gZmFsc2U7CiAJTGlzdENlbGwg ICAqaWR4OworCWludAkJCWluZGlyZWN0aW9uX2xlbmd0aCA9IGxpc3RfbGVuZ3RoKCppbmRpcmVj dGlvbik7CiAKIAkvKgogCSAqIERldGVybWluZSB0aGUgYWN0dWFsIGNvbnRhaW5lciB0eXBlLCBz bWFzaGluZyBhbnkgZG9tYWluLiAgSW4gdGhlCkBAIC0yNjcsMTEgKzI3MSwxNiBAQCB0cmFuc2Zv cm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkgKi8KIAlzYnNyb3V0 aW5lcyA9IGdldFN1YnNjcmlwdGluZ1JvdXRpbmVzKGNvbnRhaW5lclR5cGUsICZlbGVtZW50VHlw ZSk7CiAJaWYgKCFzYnNyb3V0aW5lcykKKwl7CisJCWlmIChub0Vycm9yKQorCQkJcmV0dXJuIE5V TEw7CisKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01J U01BVENIKSwKIAkJCQkgZXJybXNnKCJjYW5ub3Qgc3Vic2NyaXB0IHR5cGUgJXMgYmVjYXVzZSBp dCBkb2VzIG5vdCBzdXBwb3J0IHN1YnNjcmlwdGluZyIsCiAJCQkJCQlmb3JtYXRfdHlwZV9iZShj b250YWluZXJUeXBlKSksCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2Nh dGlvbihjb250YWluZXJCYXNlKSkpKTsKKwl9CiAKIAkvKgogCSAqIERldGVjdCB3aGV0aGVyIGFu eSBvZiB0aGUgaW5kaXJlY3Rpb24gaXRlbXMgYXJlIHNsaWNlIHNwZWNpZmllcnMuCkBAIC0yODIs OSArMjkxLDkgQEAgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3Rh dGUsCiAJICovCiAJZm9yZWFjaChpZHgsICppbmRpcmVjdGlvbikKIAl7Ci0JCUFfSW5kaWNlcyAg KmFpID0gbGZpcnN0X25vZGUoQV9JbmRpY2VzLCBpZHgpOworCQlOb2RlCSAgICphaSA9IGxmaXJz dChpZHgpOwogCi0JCWlmIChhaS0+aXNfc2xpY2UpCisJCWlmIChJc0EoYWksIEFfSW5kaWNlcykg JiYgY2FzdE5vZGUoQV9JbmRpY2VzLCBhaSktPmlzX3NsaWNlKQogCQl7CiAJCQlpc1NsaWNlID0g dHJ1ZTsKIAkJCWJyZWFrOwpAQCAtMzEyLDYgKzMyMSwzMiBAQCB0cmFuc2Zvcm1Db250YWluZXJT dWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAlzYnNyb3V0aW5lcy0+dHJhbnNmb3JtKHNi c3JlZiwgaW5kaXJlY3Rpb24sIHBzdGF0ZSwKIAkJCQkJCSAgIGlzU2xpY2UsIGlzQXNzaWdubWVu dCk7CiAKKwkvKgorCSAqIEVycm9yIG91dCwgaWYgZGF0YXR5cGUgZmFpbGVkIHRvIGNvbnN1bWUg YW55IGluZGlyZWN0aW9uIGVsZW1lbnRzLgorCSAqLworCWlmIChsaXN0X2xlbmd0aCgqaW5kaXJl Y3Rpb24pID09IGluZGlyZWN0aW9uX2xlbmd0aCkKKwl7CisJCU5vZGUJICAgKmluZCA9IGxpbml0 aWFsKCppbmRpcmVjdGlvbik7CisKKwkJaWYgKG5vRXJyb3IpCisJCQlyZXR1cm4gTlVMTDsKKwor CQlpZiAoSXNBKGluZCwgU3RyaW5nKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2Rl KEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJybXNnKCJ0eXBlICVzIGRvZXMg bm90IHN1cHBvcnQgZG90IG5vdGF0aW9uIiwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZShjb250YWlu ZXJUeXBlKSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24o Y29udGFpbmVyQmFzZSkpKSk7CisJCWVsc2UgaWYgKElzQShpbmQsIEFfSW5kaWNlcykpCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwK KwkJCQkJIGVycm1zZygidHlwZSAlcyBkb2VzIG5vdCBzdXBwb3J0IGFycmF5IHN1YnNjcmlwdGlu ZyIsCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29udGFpbmVyVHlwZSkpLAorCQkJCQkgcGFyc2Vy X2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGNvbnRhaW5lckJhc2UpKSkpOworCQll bHNlCisJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBpbmRpcmVjdGlvbiBvcGVyYXRpb246ICVkIiwg bm9kZVRhZyhpbmQpKTsKKwl9CisKIAkvKgogCSAqIFZlcmlmeSB3ZSBnb3QgYSB2YWxpZCB0eXBl ICh0aGlzIGRlZmVuZHMsIGZvciBleGFtcGxlLCBhZ2FpbnN0IHNvbWVvbmUKIAkgKiB1c2luZyBh cnJheV9zdWJzY3JpcHRfaGFuZGxlciBhcyB0eXBzdWJzY3JpcHQgd2l0aG91dCBzZXR0aW5nIHR5 cGVsZW0pLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4IDQ2NzVhNTIzMDQ1Li4zZWY1 ODk3ZjJlYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpAQCAtOTM3LDcgKzkzNyw4IEBA IHRyYW5zZm9ybUFzc2lnbm1lbnRTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJ CQkJCQkgIGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJCQkJICBjb250YWluZXJUeXBNb2QsCiAJCQkJ CQkJCQkJICAmc3Vic2NyaXB0cywKLQkJCQkJCQkJCQkgIHRydWUpOworCQkJCQkJCQkJCSAgdHJ1 ZSwKKwkJCQkJCQkJCQkgIGZhbHNlKTsKIAogCXR5cGVOZWVkZWQgPSBzYnNyZWYtPnJlZnJlc3R5 cGU7CiAJdHlwbW9kTmVlZGVkID0gc2JzcmVmLT5yZWZ0eXBtb2Q7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJy YXlzdWJzLmMKaW5kZXggMjM0YzJjMjc4YzEuLmQwM2QzNTE5ZGZkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2FycmF5c3Vicy5jCkBAIC02Miw2ICs2Miw3IEBAIGFycmF5X3N1YnNjcmlwdF90cmFuc2Zvcm0o U3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJTGlzdAkgICAqdXBwZXJJbmRleHByID0gTklMOwog CUxpc3QJICAgKmxvd2VySW5kZXhwciA9IE5JTDsKIAlMaXN0Q2VsbCAgICppZHg7CisJaW50CQkJ bmRpbTsKIAogCS8qCiAJICogVHJhbnNmb3JtIHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lvbnMsIGFu ZCBzZXBhcmF0ZSB1cHBlciBhbmQgbG93ZXIKQEAgLTczLDkgKzc0LDE0IEBAIGFycmF5X3N1YnNj cmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJICovCiAJZm9yZWFjaChp ZHgsICppbmRpcmVjdGlvbikKIAl7Ci0JCUFfSW5kaWNlcyAgKmFpID0gbGZpcnN0X25vZGUoQV9J bmRpY2VzLCBpZHgpOworCQlBX0luZGljZXMgICphaTsKIAkJTm9kZQkgICAqc3ViZXhwcjsKIAor CQlpZiAoIUlzQShsZmlyc3QoaWR4KSwgQV9JbmRpY2VzKSkKKwkJCWJyZWFrOworCisJCWFpID0g bGZpcnN0X25vZGUoQV9JbmRpY2VzLCBpZHgpOworCiAJCWlmIChpc1NsaWNlKQogCQl7CiAJCQlp ZiAoYWktPmxpZHgpCkBAIC0xNDUsMTQgKzE1MSwxNSBAQCBhcnJheV9zdWJzY3JpcHRfdHJhbnNm b3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCXNic3JlZi0+cmVmbG93ZXJpbmRleHByID0g bG93ZXJJbmRleHByOwogCiAJLyogVmVyaWZ5IHN1YnNjcmlwdCBsaXN0IGxlbmd0aHMgYXJlIHdp dGhpbiBpbXBsZW1lbnRhdGlvbiBsaW1pdCAqLwotCWlmIChsaXN0X2xlbmd0aCh1cHBlckluZGV4 cHIpID4gTUFYRElNKQorCW5kaW0gPSBsaXN0X2xlbmd0aCh1cHBlckluZGV4cHIpOworCWlmIChu ZGltID4gTUFYRElNKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfUFJP R1JBTV9MSU1JVF9FWENFRURFRCksCiAJCQkJIGVycm1zZygibnVtYmVyIG9mIGFycmF5IGRpbWVu c2lvbnMgKCVkKSBleGNlZWRzIHRoZSBtYXhpbXVtIGFsbG93ZWQgKCVkKSIsCiAJCQkJCQlsaXN0 X2xlbmd0aCh1cHBlckluZGV4cHIpLCBNQVhESU0pKSk7CiAJLyogV2UgbmVlZCBub3QgY2hlY2sg bG93ZXJJbmRleHByIHNlcGFyYXRlbHkgKi8KIAotCSppbmRpcmVjdGlvbiA9IE5JTDsKKwkqaW5k aXJlY3Rpb24gPSBsaXN0X2RlbGV0ZV9maXJzdF9uKCppbmRpcmVjdGlvbiwgbmRpbSk7CiAKIAkv KgogCSAqIERldGVybWluZSB0aGUgcmVzdWx0IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVy YXRpb24uICBJdCdzIHRoZSBzYW1lCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQv anNvbmJzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKaW5kZXggOGFk NmFhMWFkNGYuLmEwZDM4YTBmZDgwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv anNvbmJzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCkBAIC01 NSw5ICs1NSwxNCBAQCBqc29uYl9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAq c2JzcmVmLAogCSAqLwogCWZvcmVhY2goaWR4LCAqaW5kaXJlY3Rpb24pCiAJewotCQlBX0luZGlj ZXMgICphaSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNlcywgaWR4KTsKKwkJQV9JbmRpY2VzICAqYWk7 CiAJCU5vZGUJICAgKnN1YkV4cHI7CiAKKwkJaWYgKCFJc0EobGZpcnN0KGlkeCksIEFfSW5kaWNl cykpCisJCQlicmVhazsKKworCQlhaSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNlcywgaWR4KTsKKwog CQlpZiAoaXNTbGljZSkKIAkJewogCQkJTm9kZQkgICAqZXhwciA9IGFpLT51aWR4ID8gYWktPnVp ZHggOiBhaS0+bGlkeDsKQEAgLTE2MCw3ICsxNjUsOSBAQCBqc29uYl9zdWJzY3JpcHRfdHJhbnNm b3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCXNic3JlZi0+cmVmcmVzdHlwZSA9IEpTT05C T0lEOwogCXNic3JlZi0+cmVmdHlwbW9kID0gLTE7CiAKLQkqaW5kaXJlY3Rpb24gPSBOSUw7CisJ LyogUmVtb3ZlIHByb2Nlc3NlZCBlbGVtZW50cyAqLworCWlmICh1cHBlckluZGV4cHIpCisJCSpp bmRpcmVjdGlvbiA9IGxpc3RfZGVsZXRlX2ZpcnN0X24oKmluZGlyZWN0aW9uLCBsaXN0X2xlbmd0 aCh1cHBlckluZGV4cHIpKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmluZGV4IDVh ZTExY2NlYzMzLi43MWIwNGJkNTAzYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC0zNzgs NyArMzc4LDggQEAgZXh0ZXJuIFN1YnNjcmlwdGluZ1JlZiAqdHJhbnNmb3JtQ29udGFpbmVyU3Vi c2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJIE9pZCBjb250YWluZXJU eXBlLAogCQkJCQkJCQkJCQkJCSBpbnQzMiBjb250YWluZXJUeXBNb2QsCiAJCQkJCQkJCQkJCQkJ IExpc3QgKippbmRpcmVjdGlvbiwKLQkJCQkJCQkJCQkJCQkgYm9vbCBpc0Fzc2lnbm1lbnQpOwor CQkJCQkJCQkJCQkJCSBib29sIGlzQXNzaWdubWVudCwKKwkJCQkJCQkJCQkJCQkgYm9vbCBub0Vy cm9yKTsKIGV4dGVybiBDb25zdCAqbWFrZV9jb25zdChQYXJzZVN0YXRlICpwc3RhdGUsIEFfQ29u c3QgKmFjb25zdCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQQVJTRV9OT0RFX0ggKi8KLS0gCjIuMzku NSAoQXBwbGUgR2l0LTE1NCkKCg== --0000000000003fda25062f219b57 Content-Type: application/octet-stream; name="v8-0004-Extract-coerce_jsonpath_subscript.patch" Content-Disposition: attachment; filename="v8-0004-Extract-coerce_jsonpath_subscript.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7ninypm3 RnJvbSBkMGRiMTA1YzJhYmM3MDU5ZjU3NjVlYjQ5MGI2MTAyMTUxMTYyNjkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogV2VkLCAyNiBGZWIgMjAyNSAxMzowMzoyNyAtMDYwMApTdWJqZWN0OiBb UEFUQ0ggdjggNC83XSBFeHRyYWN0IGNvZXJjZV9qc29ucGF0aF9zdWJzY3JpcHQoKQoKLS0tCiBz cmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgfCAxNDIgKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgNjQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCmluZGV4IGEwZDM4YTBmZDgwLi4zZmZl NDBjZmE0MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwpAQCAtMzIsNiArMzIsODMgQEAg dHlwZWRlZiBzdHJ1Y3QgSnNvbmJTdWJXb3Jrc3BhY2UKIAlEYXR1bQkgICAqaW5kZXg7CQkJLyog U3Vic2NyaXB0IHZhbHVlcyBpbiBEYXR1bSBmb3JtYXQgKi8KIH0gSnNvbmJTdWJXb3Jrc3BhY2U7 CiAKK3N0YXRpYyBPaWQKK2pzb25iX3N1YnNjcmlwdF90eXBlKE5vZGUgKmV4cHIpCit7CisJaWYg KGV4cHIgJiYgSXNBKGV4cHIsIFN0cmluZykpCisJCXJldHVybiBURVhUT0lEOworCisJcmV0dXJu IGV4cHJUeXBlKGV4cHIpOworfQorCitzdGF0aWMgTm9kZSAqCitjb2VyY2VfanNvbnBhdGhfc3Vi c2NyaXB0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqc3ViRXhwciwgT2lkIG51bXR5cGUpCit7 CisJT2lkCQkJc3ViRXhwclR5cGUgPSBqc29uYl9zdWJzY3JpcHRfdHlwZShzdWJFeHByKTsKKwlP aWQJCQl0YXJnZXRUeXBlID0gVU5LTk9XTk9JRDsKKworCWlmIChzdWJFeHByVHlwZSAhPSBVTktO T1dOT0lEKQorCXsKKwkJT2lkCQkJdGFyZ2V0c1syXSA9IHtudW10eXBlLCBURVhUT0lEfTsKKwor CQkvKgorCQkgKiBKc29uYiBjYW4gaGFuZGxlIG11bHRpcGxlIHN1YnNjcmlwdCB0eXBlcywgYnV0 IGNhc2VzIHdoZW4gYQorCQkgKiBzdWJzY3JpcHQgY291bGQgYmUgY29lcmNlZCB0byBtdWx0aXBs ZSB0YXJnZXQgdHlwZXMgbXVzdCBiZQorCQkgKiBhdm9pZGVkLCBzaW1pbGFyIHRvIG92ZXJsb2Fk ZWQgZnVuY3Rpb25zLiBJdCBjb3VsZCBiZSBwb3NzaWJseQorCQkgKiBleHRlbmQgd2l0aCBqc29u cGF0aCBpbiB0aGUgZnV0dXJlLgorCQkgKi8KKwkJZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKysp CisJCXsKKwkJCWlmIChjYW5fY29lcmNlX3R5cGUoMSwgJnN1YkV4cHJUeXBlLCAmdGFyZ2V0c1tp XSwgQ09FUkNJT05fSU1QTElDSVQpKQorCQkJeworCQkJCS8qCisJCQkJICogT25lIHR5cGUgaGFz IGFscmVhZHkgc3VjY2VlZGVkLCBpdCBtZWFucyB0aGVyZSBhcmUgdHdvCisJCQkJICogY29lcmNp b24gdGFyZ2V0cyBwb3NzaWJsZSwgZmFpbHVyZS4KKwkJCQkgKi8KKwkJCQlpZiAodGFyZ2V0VHlw ZSAhPSBVTktOT1dOT0lEKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVS UkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkJCSBlcnJtc2coInN1YnNjcmlwdCB0eXBl ICVzIGlzIG5vdCBzdXBwb3J0ZWQiLCBmb3JtYXRfdHlwZV9iZShzdWJFeHByVHlwZSkpLAorCQkJ CQkJCSBlcnJoaW50KCJqc29uYiBzdWJzY3JpcHQgbXVzdCBiZSBjb2VyY2libGUgdG8gb25seSBv bmUgdHlwZSwgaW50ZWdlciBvciB0ZXh0LiIpLAorCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCBleHByTG9jYXRpb24oc3ViRXhwcikpKSk7CisKKwkJCQl0YXJnZXRUeXBlID0gdGFy Z2V0c1tpXTsKKwkJCX0KKwkJfQorCisJCS8qCisJCSAqIE5vIHN1aXRhYmxlIHR5cGVzIHdlcmUg Zm91bmQsIGZhaWx1cmUuCisJCSAqLworCQlpZiAodGFyZ2V0VHlwZSA9PSBVTktOT1dOT0lEKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRD SCksCisJCQkJCSBlcnJtc2coInN1YnNjcmlwdCB0eXBlICVzIGlzIG5vdCBzdXBwb3J0ZWQiLCBm b3JtYXRfdHlwZV9iZShzdWJFeHByVHlwZSkpLAorCQkJCQkgZXJyaGludCgianNvbmIgc3Vic2Ny aXB0IG11c3QgYmUgY29lcmNpYmxlIHRvIGVpdGhlciBpbnRlZ2VyIG9yIHRleHQuIiksCisJCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oc3ViRXhwcikpKSk7CisJ fQorCWVsc2UKKwkJdGFyZ2V0VHlwZSA9IFRFWFRPSUQ7CisKKwkvKgorCSAqIFdlIGtub3duIGZy b20gY2FuX2NvZXJjZV90eXBlIHRoYXQgY29lcmNpb24gd2lsbCBzdWNjZWVkLCBzbworCSAqIGNv ZXJjZV90eXBlIGNvdWxkIGJlIHVzZWQuIE5vdGUgdGhlIGltcGxpY2l0IGNvZXJjaW9uIGNvbnRl eHQsIHdoaWNoIGlzCisJICogcmVxdWlyZWQgdG8gaGFuZGxlIHN1YnNjcmlwdHMgb2YgZGlmZmVy ZW50IHR5cGVzLCBzaW1pbGFyIHRvIG92ZXJsb2FkZWQKKwkgKiBmdW5jdGlvbnMuCisJICovCisJ c3ViRXhwciA9IGNvZXJjZV90eXBlKHBzdGF0ZSwKKwkJCQkJCSAgc3ViRXhwciwgc3ViRXhwclR5 cGUsCisJCQkJCQkgIHRhcmdldFR5cGUsIC0xLAorCQkJCQkJICBDT0VSQ0lPTl9JTVBMSUNJVCwK KwkJCQkJCSAgQ09FUkNFX0lNUExJQ0lUX0NBU1QsCisJCQkJCQkgIC0xKTsKKwlpZiAoc3ViRXhw ciA9PSBOVUxMKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZ UEVfTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coImpzb25iIHN1YnNjcmlwdCBtdXN0IGhhdmUgdGV4 dCB0eXBlIiksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihz dWJFeHByKSkpKTsKKworCXJldHVybiBzdWJFeHByOworfQogCiAvKgogICogRmluaXNoIHBhcnNl IGFuYWx5c2lzIG9mIGEgU3Vic2NyaXB0aW5nUmVmIGV4cHJlc3Npb24gZm9yIGEganNvbmIuCkBA IC03NSw3MSArMTUyLDggQEAganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdS ZWYgKnNic3JlZiwKIAogCQlpZiAoYWktPnVpZHgpCiAJCXsKLQkJCU9pZAkJCXN1YkV4cHJUeXBl ID0gSW52YWxpZE9pZCwKLQkJCQkJCXRhcmdldFR5cGUgPSBVTktOT1dOT0lEOwotCiAJCQlzdWJF eHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGFpLT51aWR4LCBwc3RhdGUtPnBfZXhwcl9raW5k KTsKLQkJCXN1YkV4cHJUeXBlID0gZXhwclR5cGUoc3ViRXhwcik7Ci0KLQkJCWlmIChzdWJFeHBy VHlwZSAhPSBVTktOT1dOT0lEKQotCQkJewotCQkJCU9pZAkJCXRhcmdldHNbMl0gPSB7SU5UNE9J RCwgVEVYVE9JRH07Ci0KLQkJCQkvKgotCQkJCSAqIEpzb25iIGNhbiBoYW5kbGUgbXVsdGlwbGUg c3Vic2NyaXB0IHR5cGVzLCBidXQgY2FzZXMgd2hlbiBhCi0JCQkJICogc3Vic2NyaXB0IGNvdWxk IGJlIGNvZXJjZWQgdG8gbXVsdGlwbGUgdGFyZ2V0IHR5cGVzIG11c3QgYmUKLQkJCQkgKiBhdm9p ZGVkLCBzaW1pbGFyIHRvIG92ZXJsb2FkZWQgZnVuY3Rpb25zLiBJdCBjb3VsZCBiZQotCQkJCSAq IHBvc3NpYmx5IGV4dGVuZCB3aXRoIGpzb25wYXRoIGluIHRoZSBmdXR1cmUuCi0JCQkJICovCi0J CQkJZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspCi0JCQkJewotCQkJCQlpZiAoY2FuX2NvZXJj ZV90eXBlKDEsICZzdWJFeHByVHlwZSwgJnRhcmdldHNbaV0sIENPRVJDSU9OX0lNUExJQ0lUKSkK LQkJCQkJewotCQkJCQkJLyoKLQkJCQkJCSAqIE9uZSB0eXBlIGhhcyBhbHJlYWR5IHN1Y2NlZWRl ZCwgaXQgbWVhbnMgdGhlcmUgYXJlCi0JCQkJCQkgKiB0d28gY29lcmNpb24gdGFyZ2V0cyBwb3Nz aWJsZSwgZmFpbHVyZS4KLQkJCQkJCSAqLwotCQkJCQkJaWYgKHRhcmdldFR5cGUgIT0gVU5LTk9X Tk9JRCkKLQkJCQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCQkJCQkgZXJybXNnKCJzdWJzY3JpcHQgdHlwZSAlcyBp cyBub3Qgc3VwcG9ydGVkIiwgZm9ybWF0X3R5cGVfYmUoc3ViRXhwclR5cGUpKSwKLQkJCQkJCQkJ CSBlcnJoaW50KCJqc29uYiBzdWJzY3JpcHQgbXVzdCBiZSBjb2VyY2libGUgdG8gb25seSBvbmUg dHlwZSwgaW50ZWdlciBvciB0ZXh0LiIpLAotCQkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihw c3RhdGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsKLQotCQkJCQkJdGFyZ2V0VHlwZSA9IHRh cmdldHNbaV07Ci0JCQkJCX0KLQkJCQl9Ci0KLQkJCQkvKgotCQkJCSAqIE5vIHN1aXRhYmxlIHR5 cGVzIHdlcmUgZm91bmQsIGZhaWx1cmUuCi0JCQkJICovCi0JCQkJaWYgKHRhcmdldFR5cGUgPT0g VU5LTk9XTk9JRCkKLQkJCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCQkoZXJyY29kZShFUlJDT0RF X0RBVEFUWVBFX01JU01BVENIKSwKLQkJCQkJCQkgZXJybXNnKCJzdWJzY3JpcHQgdHlwZSAlcyBp cyBub3Qgc3VwcG9ydGVkIiwgZm9ybWF0X3R5cGVfYmUoc3ViRXhwclR5cGUpKSwKLQkJCQkJCQkg ZXJyaGludCgianNvbmIgc3Vic2NyaXB0IG11c3QgYmUgY29lcmNpYmxlIHRvIGVpdGhlciBpbnRl Z2VyIG9yIHRleHQuIiksCi0JCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJM b2NhdGlvbihzdWJFeHByKSkpKTsKLQkJCX0KLQkJCWVsc2UKLQkJCQl0YXJnZXRUeXBlID0gVEVY VE9JRDsKLQotCQkJLyoKLQkJCSAqIFdlIGtub3duIGZyb20gY2FuX2NvZXJjZV90eXBlIHRoYXQg Y29lcmNpb24gd2lsbCBzdWNjZWVkLCBzbwotCQkJICogY29lcmNlX3R5cGUgY291bGQgYmUgdXNl ZC4gTm90ZSB0aGUgaW1wbGljaXQgY29lcmNpb24gY29udGV4dCwKLQkJCSAqIHdoaWNoIGlzIHJl cXVpcmVkIHRvIGhhbmRsZSBzdWJzY3JpcHRzIG9mIGRpZmZlcmVudCB0eXBlcywKLQkJCSAqIHNp bWlsYXIgdG8gb3ZlcmxvYWRlZCBmdW5jdGlvbnMuCi0JCQkgKi8KLQkJCXN1YkV4cHIgPSBjb2Vy Y2VfdHlwZShwc3RhdGUsCi0JCQkJCQkJCSAgc3ViRXhwciwgc3ViRXhwclR5cGUsCi0JCQkJCQkJ CSAgdGFyZ2V0VHlwZSwgLTEsCi0JCQkJCQkJCSAgQ09FUkNJT05fSU1QTElDSVQsCi0JCQkJCQkJ CSAgQ09FUkNFX0lNUExJQ0lUX0NBU1QsCi0JCQkJCQkJCSAgLTEpOwotCQkJaWYgKHN1YkV4cHIg PT0gTlVMTCkKLQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRB VFlQRV9NSVNNQVRDSCksCi0JCQkJCQkgZXJybXNnKCJqc29uYiBzdWJzY3JpcHQgbXVzdCBoYXZl IHRleHQgdHlwZSIpLAotCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2Nh dGlvbihzdWJFeHByKSkpKTsKKwkJCXN1YkV4cHIgPSBjb2VyY2VfanNvbnBhdGhfc3Vic2NyaXB0 KHBzdGF0ZSwgc3ViRXhwciwgSU5UNE9JRCk7CiAJCX0KIAkJZWxzZQogCQl7Ci0tIAoyLjM5LjUg KEFwcGxlIEdpdC0xNTQpCgo= --0000000000003fda25062f219b57 Content-Type: application/octet-stream; name="v8-0001-Allow-transformation-only-of-a-sublist-of-subscri.patch" Content-Disposition: attachment; filename="v8-0001-Allow-transformation-only-of-a-sublist-of-subscri.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7ninypf0 RnJvbSAwZGM1YzE5MmRiNzhlMzUyMjAxZjVhNzc4ZWIwZjU0NTgzNWZkYjU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IEZyaSwgMTQgT2N0IDIwMjIgMTU6MzU6MjIgKzAzMDAKU3ViamVjdDogW1BBVENI IHY4IDEvN10gQWxsb3cgdHJhbnNmb3JtYXRpb24gb25seSBvZiBhIHN1Ymxpc3Qgb2Ygc3Vic2Ny aXB0cwoKLS0tCiBjb250cmliL2hzdG9yZS9oc3RvcmVfc3Vicy5jICAgICAgfCAxMCArKysrKyst LS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgfCAgOSArKysrLS0tLS0KIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMgICB8ICA0ICsrLS0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV90YXJnZXQuYyB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlz dWJzLmMgfCAgNiArKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyB8ICA2 ICsrKystLQogc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmggIHwgIDcgKysrKysrLQog c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCAgIHwgIDIgKy0KIDggZmlsZXMgY2hhbmdl ZCwgMjggaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJp Yi9oc3RvcmUvaHN0b3JlX3N1YnMuYyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMKaW5k ZXggM2QwM2Y2NmZhMGQuLjFiMjk1NDNhYjY3IDEwMDY0NAotLS0gYS9jb250cmliL2hzdG9yZS9o c3RvcmVfc3Vicy5jCisrKyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMKQEAgLTQwLDcg KzQwLDcgQEAKICAqLwogc3RhdGljIHZvaWQKIGhzdG9yZV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1 YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAotCQkJCQkJICAgTGlzdCAqaW5kaXJlY3Rpb24sCisJCQkJ CQkgICBMaXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkgICBQYXJzZVN0YXRlICpwc3RhdGUsCiAJ CQkJCQkgICBib29sIGlzU2xpY2UsCiAJCQkJCQkgICBib29sIGlzQXNzaWdubWVudCkKQEAgLTQ5 LDE1ICs0OSwxNSBAQCBoc3RvcmVfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYg KnNic3JlZiwKIAlOb2RlCSAgICpzdWJleHByOwogCiAJLyogV2Ugc3VwcG9ydCBvbmx5IHNpbmds ZS1zdWJzY3JpcHQsIG5vbi1zbGljZSBjYXNlcyAqLwotCWlmIChpc1NsaWNlIHx8IGxpc3RfbGVu Z3RoKGluZGlyZWN0aW9uKSAhPSAxKQorCWlmIChpc1NsaWNlIHx8IGxpc3RfbGVuZ3RoKCppbmRp cmVjdGlvbikgIT0gMSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1zZygiaHN0b3JlIGFsbG93cyBvbmx5IG9u ZSBzdWJzY3JpcHQiKSwKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwKLQkJCQkJCQkJ CWV4cHJMb2NhdGlvbigoTm9kZSAqKSBpbmRpcmVjdGlvbikpKSk7CisJCQkJCQkJCQlleHByTG9j YXRpb24oKE5vZGUgKikgKmluZGlyZWN0aW9uKSkpKTsKIAogCS8qIFRyYW5zZm9ybSB0aGUgc3Vi c2NyaXB0IGV4cHJlc3Npb24gdG8gdHlwZSB0ZXh0ICovCi0JYWkgPSBsaW5pdGlhbF9ub2RlKEFf SW5kaWNlcywgaW5kaXJlY3Rpb24pOworCWFpID0gbGluaXRpYWxfbm9kZShBX0luZGljZXMsICpp bmRpcmVjdGlvbik7CiAJQXNzZXJ0KGFpLT51aWR4ICE9IE5VTEwgJiYgYWktPmxpZHggPT0gTlVM TCAmJiAhYWktPmlzX3NsaWNlKTsKIAogCXN1YmV4cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwg YWktPnVpZHgsIHBzdGF0ZS0+cF9leHByX2tpbmQpOwpAQCAtODEsNiArODEsOCBAQCBoc3RvcmVf c3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkvKiBEZXRlcm1p bmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0aW9uOyBhbHdheXMg dGV4dCAqLwogCXNic3JlZi0+cmVmcmVzdHlwZSA9IFRFWFRPSUQ7CiAJc2JzcmVmLT5yZWZ0eXBt b2QgPSAtMTsKKworCSppbmRpcmVjdGlvbiA9IE5JTDsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZXhwci5jCmluZGV4IGJhZDFkZjczMmVhLi4yYzBmNGE1MGIyMSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZXhwci5jCkBAIC00NjYsMTQgKzQ2NiwxMyBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0 YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJCUFzc2VydChJc0EobiwgU3RyaW5n KSk7CiAKIAkJCS8qIHByb2Nlc3Mgc3Vic2NyaXB0cyBiZWZvcmUgdGhpcyBmaWVsZCBzZWxlY3Rp b24gKi8KLQkJCWlmIChzdWJzY3JpcHRzKQorCQkJd2hpbGUgKHN1YnNjcmlwdHMpCiAJCQkJcmVz dWx0ID0gKE5vZGUgKikgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhwc3RhdGUsCiAJCQkJ CQkJCQkJCQkJCQkgICByZXN1bHQsCiAJCQkJCQkJCQkJCQkJCQkgICBleHByVHlwZShyZXN1bHQp LAogCQkJCQkJCQkJCQkJCQkJICAgZXhwclR5cG1vZChyZXN1bHQpLAotCQkJCQkJCQkJCQkJCQkJ ICAgc3Vic2NyaXB0cywKKwkJCQkJCQkJCQkJCQkJCSAgICZzdWJzY3JpcHRzLAogCQkJCQkJCQkJ CQkJCQkJICAgZmFsc2UpOwotCQkJc3Vic2NyaXB0cyA9IE5JTDsKIAogCQkJbmV3cmVzdWx0ID0g UGFyc2VGdW5jT3JDb2x1bW4ocHN0YXRlLAogCQkJCQkJCQkJCSAgbGlzdF9tYWtlMShuKSwKQEAg LTQ4OCwxMiArNDg3LDEyIEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCQl9CiAJfQogCS8qIHByb2Nlc3MgdHJhaWxpbmcgc3Vi c2NyaXB0cywgaWYgYW55ICovCi0JaWYgKHN1YnNjcmlwdHMpCisJd2hpbGUgKHN1YnNjcmlwdHMp CiAJCXJlc3VsdCA9IChOb2RlICopIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMocHN0YXRl LAogCQkJCQkJCQkJCQkJCSAgIHJlc3VsdCwKIAkJCQkJCQkJCQkJCQkgICBleHByVHlwZShyZXN1 bHQpLAogCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBtb2QocmVzdWx0KSwKLQkJCQkJCQkJCQkJCQkg ICBzdWJzY3JpcHRzLAorCQkJCQkJCQkJCQkJCSAgICZzdWJzY3JpcHRzLAogCQkJCQkJCQkJCQkJ CSAgIGZhbHNlKTsKIAogCXJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2Vfbm9kZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYwppbmRl eCBkNmZlYjE2YWVmMy4uMTlhNmI2NzhlNjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9ub2RlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYwpAQCAt MjQ0LDcgKzI0NCw3IEBAIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQkJCQkJCSBOb2RlICpjb250YWluZXJCYXNlLAogCQkJCQkJCSBPaWQgY29udGFp bmVyVHlwZSwKIAkJCQkJCQkgaW50MzIgY29udGFpbmVyVHlwTW9kLAotCQkJCQkJCSBMaXN0ICpp bmRpcmVjdGlvbiwKKwkJCQkJCQkgTGlzdCAqKmluZGlyZWN0aW9uLAogCQkJCQkJCSBib29sIGlz QXNzaWdubWVudCkKIHsKIAlTdWJzY3JpcHRpbmdSZWYgKnNic3JlZjsKQEAgLTI4MCw3ICsyODAs NyBAQCB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkg KiBlbGVtZW50LiAgSWYgYW55IG9mIHRoZSBpdGVtcyBhcmUgc2xpY2Ugc3BlY2lmaWVycyAobG93 ZXI6dXBwZXIpLCB0aGVuCiAJICogdGhlIHN1YnNjcmlwdCBleHByZXNzaW9uIG1lYW5zIGEgY29u dGFpbmVyIHNsaWNlIG9wZXJhdGlvbi4KIAkgKi8KLQlmb3JlYWNoKGlkeCwgaW5kaXJlY3Rpb24p CisJZm9yZWFjaChpZHgsICppbmRpcmVjdGlvbikKIAl7CiAJCUFfSW5kaWNlcyAgKmFpID0gbGZp cnN0X25vZGUoQV9JbmRpY2VzLCBpZHgpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKaW5k ZXggNGFiYTBkOWQ0ZDUuLjQ2NzVhNTIzMDQ1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdGFyZ2V0LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5j CkBAIC05MzYsNyArOTM2LDcgQEAgdHJhbnNmb3JtQXNzaWdubWVudFN1YnNjcmlwdHMoUGFyc2VT dGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSAgYmFzZW5vZGUsCiAJCQkJCQkJCQkJICBjb250YWlu ZXJUeXBlLAogCQkJCQkJCQkJCSAgY29udGFpbmVyVHlwTW9kLAotCQkJCQkJCQkJCSAgc3Vic2Ny aXB0cywKKwkJCQkJCQkJCQkgICZzdWJzY3JpcHRzLAogCQkJCQkJCQkJCSAgdHJ1ZSk7CiAKIAl0 eXBlTmVlZGVkID0gc2JzcmVmLT5yZWZyZXN0eXBlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2FycmF5c3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5j CmluZGV4IDI5NDBmYjhlOGQ3Li4yMzRjMmMyNzhjMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2FycmF5c3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheXN1 YnMuYwpAQCAtNTQsNyArNTQsNyBAQCB0eXBlZGVmIHN0cnVjdCBBcnJheVN1YldvcmtzcGFjZQog ICovCiBzdGF0aWMgdm9pZAogYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdS ZWYgKnNic3JlZiwKLQkJCQkJCSAgTGlzdCAqaW5kaXJlY3Rpb24sCisJCQkJCQkgIExpc3QgKipp bmRpcmVjdGlvbiwKIAkJCQkJCSAgUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJICBib29sIGlz U2xpY2UsCiAJCQkJCQkgIGJvb2wgaXNBc3NpZ25tZW50KQpAQCAtNzEsNyArNzEsNyBAQCBhcnJh eV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCSAqIGluZGly ZWN0aW9uIGl0ZW1zIHRvIHNsaWNlcyBieSB0cmVhdGluZyB0aGUgc2luZ2xlIHN1YnNjcmlwdCBh cyB0aGUKIAkgKiB1cHBlciBib3VuZCBhbmQgc3VwcGx5aW5nIGFuIGFzc3VtZWQgbG93ZXIgYm91 bmQgb2YgMS4KIAkgKi8KLQlmb3JlYWNoKGlkeCwgaW5kaXJlY3Rpb24pCisJZm9yZWFjaChpZHgs ICppbmRpcmVjdGlvbikKIAl7CiAJCUFfSW5kaWNlcyAgKmFpID0gbGZpcnN0X25vZGUoQV9JbmRp Y2VzLCBpZHgpOwogCQlOb2RlCSAgICpzdWJleHByOwpAQCAtMTUyLDYgKzE1Miw4IEBAIGFycmF5 X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJCQkJCQlsaXN0 X2xlbmd0aCh1cHBlckluZGV4cHIpLCBNQVhESU0pKSk7CiAJLyogV2UgbmVlZCBub3QgY2hlY2sg bG93ZXJJbmRleHByIHNlcGFyYXRlbHkgKi8KIAorCSppbmRpcmVjdGlvbiA9IE5JTDsKKwogCS8q CiAJICogRGV0ZXJtaW5lIHRoZSByZXN1bHQgdHlwZSBvZiB0aGUgc3Vic2NyaXB0aW5nIG9wZXJh dGlvbi4gIEl0J3MgdGhlIHNhbWUKIAkgKiBhcyB0aGUgYXJyYXkgdHlwZSBpZiB3ZSdyZSBzbGlj aW5nLCBlbHNlIGl0J3MgdGhlIGVsZW1lbnQgdHlwZS4gIEluCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJz dWJzLmMKaW5kZXggZGU2NGQ0OTg1MTIuLjhhZDZhYTFhZDRmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pz b25ic3Vicy5jCkBAIC00MSw3ICs0MSw3IEBAIHR5cGVkZWYgc3RydWN0IEpzb25iU3ViV29ya3Nw YWNlCiAgKi8KIHN0YXRpYyB2b2lkCiBqc29uYl9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlw dGluZ1JlZiAqc2JzcmVmLAotCQkJCQkJICBMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCSAgTGlz dCAqKmluZGlyZWN0aW9uLAogCQkJCQkJICBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkgIGJv b2wgaXNTbGljZSwKIAkJCQkJCSAgYm9vbCBpc0Fzc2lnbm1lbnQpCkBAIC01Myw3ICs1Myw3IEBA IGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJICog VHJhbnNmb3JtIGFuZCBjb252ZXJ0IHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lvbnMuIEpzb25iIHN1 YnNjcmlwdGluZwogCSAqIGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzLCBsb29rIG9ubHkgYW5kIHRo ZSB1cHBlciBpbmRleC4KIAkgKi8KLQlmb3JlYWNoKGlkeCwgaW5kaXJlY3Rpb24pCisJZm9yZWFj aChpZHgsICppbmRpcmVjdGlvbikKIAl7CiAJCUFfSW5kaWNlcyAgKmFpID0gbGZpcnN0X25vZGUo QV9JbmRpY2VzLCBpZHgpOwogCQlOb2RlCSAgICpzdWJFeHByOwpAQCAtMTU5LDYgKzE1OSw4IEBA IGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJLyog RGV0ZXJtaW5lIHRoZSByZXN1bHQgdHlwZSBvZiB0aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbjsg YWx3YXlzIGpzb25iICovCiAJc2JzcmVmLT5yZWZyZXN0eXBlID0gSlNPTkJPSUQ7CiAJc2JzcmVm LT5yZWZ0eXBtb2QgPSAtMTsKKworCSppbmRpcmVjdGlvbiA9IE5JTDsKIH0KIAogLyoKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3N1YnNjcmlwdGluZy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvc3Vic2NyaXB0aW5nLmgKaW5kZXggMjM0ZThhZDgwMTIuLjVkNTc2YWYzNDZmIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaAorKysgYi9zcmMvaW5jbHVkZS9u b2Rlcy9zdWJzY3JpcHRpbmcuaApAQCAtNzEsNiArNzEsMTEgQEAgc3RydWN0IFN1YnNjcmlwdEV4 ZWNTdGVwczsKICAqIGRvZXMgbm90IGNhcmUgdG8gc3VwcG9ydCBzbGljaW5nLCBpdCBjYW4ganVz dCB0aHJvdyBhbiBlcnJvciBpZiBpc1NsaWNlLikKICAqIFNlZSBhcnJheV9zdWJzY3JpcHRfdHJh bnNmb3JtKCkgZm9yIHNhbXBsZSBjb2RlLgogICoKKyAqIFRoZSB0cmFuc2Zvcm0gbWV0aG9kIHJl Y2VpdmVzIGEgcG9pbnRlciB0byBhIGxpc3Qgb2YgcmF3IGluZGlyZWN0aW9ucy4KKyAqIFRoaXMg YWxsb3dzIHRoZSBtZXRob2QgdG8gcGFyc2UgYSBzdWJsaXN0IG9mIHRoZSBpbmRpcmVjdGlvbnMg KHR5cGljYWxseQorICogdGhlIHByZWZpeCkgYW5kIG1vZGlmeSB0aGUgb3JpZ2luYWwgbGlzdCBp biBwbGFjZSwgZW5hYmxpbmcgdGhlIGNhbGxlciB0bworICogZWl0aGVyIHByb2Nlc3MgdGhlIHJl bWFpbmluZyBpbmRpcmVjdGlvbnMgZGlmZmVyZW50bHkgb3IgcmFpc2UgYW4gZXJyb3IuCisgKgog ICogVGhlIHRyYW5zZm9ybSBtZXRob2QgaXMgYWxzbyByZXNwb25zaWJsZSBmb3IgaWRlbnRpZnlp bmcgdGhlIHJlc3VsdCB0eXBlCiAgKiBvZiB0aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbi4gIEF0 IGNhbGwsIHJlZmNvbnRhaW5lcnR5cGUgYW5kIHJlZnR5cG1vZAogICogZGVzY3JpYmUgdGhlIGNv bnRhaW5lciB0eXBlICh0aGlzIHdpbGwgYmUgYSBiYXNlIHR5cGUgbm90IGEgZG9tYWluKSwgYW5k CkBAIC05Myw3ICs5OCw3IEBAIHN0cnVjdCBTdWJzY3JpcHRFeGVjU3RlcHM7CiAgKiBhc3NpZ25t ZW50IG11c3QgcmV0dXJuLgogICovCiB0eXBlZGVmIHZvaWQgKCpTdWJzY3JpcHRUcmFuc2Zvcm0p IChTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKLQkJCQkJCQkJCUxpc3QgKmluZGlyZWN0aW9uLAor CQkJCQkJCQkJTGlzdCAqKmluZGlyZWN0aW9uLAogCQkJCQkJCQkJc3RydWN0IFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkJCQkJCQkJCWJvb2wgaXNTbGljZSwKIAkJCQkJCQkJCWJvb2wgaXNBc3NpZ25t ZW50KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmluZGV4IDk5NDI4NDAxOWZiLi41YWUxMWNjZWMz MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC0zNzcsNyArMzc3LDcgQEAgZXh0ZXJuIFN1 YnNjcmlwdGluZ1JlZiAqdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpw c3RhdGUsCiAJCQkJCQkJCQkJCQkJIE5vZGUgKmNvbnRhaW5lckJhc2UsCiAJCQkJCQkJCQkJCQkJ IE9pZCBjb250YWluZXJUeXBlLAogCQkJCQkJCQkJCQkJCSBpbnQzMiBjb250YWluZXJUeXBNb2Qs Ci0JCQkJCQkJCQkJCQkJIExpc3QgKmluZGlyZWN0aW9uLAorCQkJCQkJCQkJCQkJCSBMaXN0ICoq aW5kaXJlY3Rpb24sCiAJCQkJCQkJCQkJCQkJIGJvb2wgaXNBc3NpZ25tZW50KTsKIGV4dGVybiBD b25zdCAqbWFrZV9jb25zdChQYXJzZVN0YXRlICpwc3RhdGUsIEFfQ29uc3QgKmFjb25zdCk7CiAK LS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --0000000000003fda25062f219b57 Content-Type: application/octet-stream; name="v8-0005-Eanble-String-node-as-field-accessors-in-generic-.patch" Content-Disposition: attachment; filename="v8-0005-Eanble-String-node-as-field-accessors-in-generic-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7ninypn4 RnJvbSA3YTFlZTNkNTUyMjI2MjU5NzY4NTRjNTNkOTg1YTgyM2NkMDE4NDA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAxNjoyMToyMCArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djggNS83XSBFYW5ibGUgU3RyaW5nIG5vZGUgYXMgZmllbGQgYWNjZXNzb3JzIGluIGdlbmVyaWMK IHN1YnNjcmlwdGluZwoKRmllbGQgYWNjZXNzb3JzIGFyZSByZXByZXNlbnRlZCBhcyBTdHJpbmcg bm9kZXMgaW4gcmVmdXBwZXJleHBycyBmb3IKZGlzdGluZ3Vpc2hpbmcgZnJvbSBvcmRpbmFyeSB0 ZXh0IHN1YnNjcmlwdHMgd2hpY2ggY2FuIGJlIG5lZWRlZCBmb3IKY29ycmVjdCBFWFBMQUlOLgoK U3RyaW5ncyBub2RlIGlzIG5vIGxvbmdlciBhIHZhbGlkIGV4cHJlc3Npb24gbm9kZXMsIHNvIGFk ZGVkIHNwZWNpYWwKaGFuZGxpbmcgZm9yIHRoZW0gaW4gd2Fsa2VycyBpbiBub2RlRnVuY3MgZXRj LgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgfCAyNCArKysrKysrLS0t CiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgIHwgNzMgKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29sbGF0ZS5jIHwgMjIg KysrKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgIHwgMjkgKysrKysr KystLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDEyMSBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRleCAwMzU2NmM0ZDE4MS4uYmU0MjEzNDU1ZTUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtMzMyOCw5ICszMzI4LDE1IEBAIEV4ZWNJbml0 U3Vic2NyaXB0aW5nUmVmKEV4cHJFdmFsU3RlcCAqc2NyYXRjaCwgU3Vic2NyaXB0aW5nUmVmICpz YnNyZWYsCiAJCXsKIAkJCXNic3JlZnN0YXRlLT51cHBlcnByb3ZpZGVkW2ldID0gdHJ1ZTsKIAkJ CS8qIEVhY2ggc3Vic2NyaXB0IGlzIGV2YWx1YXRlZCBpbnRvIGFwcHJvcHJpYXRlIGFycmF5IGVu dHJ5ICovCi0JCQlFeGVjSW5pdEV4cHJSZWMoZSwgc3RhdGUsCi0JCQkJCQkJJnNic3JlZnN0YXRl LT51cHBlcmluZGV4W2ldLAotCQkJCQkJCSZzYnNyZWZzdGF0ZS0+dXBwZXJpbmRleG51bGxbaV0p OworCQkJaWYgKElzQShlLCBTdHJpbmcpKQorCQkJeworCQkJCXNic3JlZnN0YXRlLT51cHBlcmlu ZGV4W2ldID0gQ1N0cmluZ0dldFRleHREYXR1bShzdHJWYWwoZSkpOworCQkJCXNic3JlZnN0YXRl LT51cHBlcmluZGV4bnVsbFtpXSA9IGZhbHNlOworCQkJfQorCQkJZWxzZQorCQkJCUV4ZWNJbml0 RXhwclJlYyhlLCBzdGF0ZSwKKwkJCQkJCQkJJnNic3JlZnN0YXRlLT51cHBlcmluZGV4W2ldLAor CQkJCQkJCQkmc2JzcmVmc3RhdGUtPnVwcGVyaW5kZXhudWxsW2ldKTsKIAkJfQogCQlpKys7CiAJ fQpAQCAtMzM1MSw5ICszMzU3LDE1IEBAIEV4ZWNJbml0U3Vic2NyaXB0aW5nUmVmKEV4cHJFdmFs U3RlcCAqc2NyYXRjaCwgU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJCXsKIAkJCXNic3JlZnN0 YXRlLT5sb3dlcnByb3ZpZGVkW2ldID0gdHJ1ZTsKIAkJCS8qIEVhY2ggc3Vic2NyaXB0IGlzIGV2 YWx1YXRlZCBpbnRvIGFwcHJvcHJpYXRlIGFycmF5IGVudHJ5ICovCi0JCQlFeGVjSW5pdEV4cHJS ZWMoZSwgc3RhdGUsCi0JCQkJCQkJJnNic3JlZnN0YXRlLT5sb3dlcmluZGV4W2ldLAotCQkJCQkJ CSZzYnNyZWZzdGF0ZS0+bG93ZXJpbmRleG51bGxbaV0pOworCQkJaWYgKElzQShlLCBTdHJpbmcp KQorCQkJeworCQkJCXNic3JlZnN0YXRlLT5sb3dlcmluZGV4W2ldID0gQ1N0cmluZ0dldFRleHRE YXR1bShzdHJWYWwoZSkpOworCQkJCXNic3JlZnN0YXRlLT5sb3dlcmluZGV4bnVsbFtpXSA9IGZh bHNlOworCQkJfQorCQkJZWxzZQorCQkJCUV4ZWNJbml0RXhwclJlYyhlLCBzdGF0ZSwKKwkJCQkJ CQkJJnNic3JlZnN0YXRlLT5sb3dlcmluZGV4W2ldLAorCQkJCQkJCQkmc2JzcmVmc3RhdGUtPmxv d2VyaW5kZXhudWxsW2ldKTsKIAkJfQogCQlpKys7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRl eCA3YmM4MjM1MDdmMS4uYTljMjlhYjhmMjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0yMTgy LDEyICsyMTgyLDI4IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAog CQljYXNlIFRfU3Vic2NyaXB0aW5nUmVmOgogCQkJewogCQkJCVN1YnNjcmlwdGluZ1JlZiAqc2Jz cmVmID0gKFN1YnNjcmlwdGluZ1JlZiAqKSBub2RlOworCQkJCUxpc3RDZWxsICAgKmxjOworCisJ CQkJLyoKKwkJCQkgKiBSZWN1cnNlIGRpcmVjdGx5IGZvciB1cHBlci9sb3dlciBjb250YWluZXIg aW5kZXggbGlzdHMsCisJCQkJICogc2tpcHBpbmcgU3RyaW5nIHN1YnNjcmlwdHMgdXNlZCBmb3Ig ZG90IG5vdGF0aW9uLgorCQkJCSAqLworCQkJCWZvcmVhY2gobGMsIHNic3JlZi0+cmVmdXBwZXJp bmRleHByKQorCQkJCXsKKwkJCQkJTm9kZQkgICAqZXhwciA9IGxmaXJzdChsYyk7CisKKwkJCQkJ aWYgKGV4cHIgJiYgIUlzQShleHByLCBTdHJpbmcpICYmIFdBTEsoZXhwcikpCisJCQkJCQlyZXR1 cm4gdHJ1ZTsKKwkJCQl9CisKKwkJCQlmb3JlYWNoKGxjLCBzYnNyZWYtPnJlZmxvd2VyaW5kZXhw cikKKwkJCQl7CisJCQkJCU5vZGUJICAgKmV4cHIgPSBsZmlyc3QobGMpOworCisJCQkJCWlmIChl eHByICYmICFJc0EoZXhwciwgU3RyaW5nKSAmJiBXQUxLKGV4cHIpKQorCQkJCQkJcmV0dXJuIHRy dWU7CisJCQkJfQogCi0JCQkJLyogcmVjdXJzZSBkaXJlY3RseSBmb3IgdXBwZXIvbG93ZXIgY29u dGFpbmVyIGluZGV4IGxpc3RzICovCi0JCQkJaWYgKExJU1RfV0FMSyhzYnNyZWYtPnJlZnVwcGVy aW5kZXhwcikpCi0JCQkJCXJldHVybiB0cnVlOwotCQkJCWlmIChMSVNUX1dBTEsoc2JzcmVmLT5y ZWZsb3dlcmluZGV4cHIpKQotCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQkvKiB3YWxrZXIgbXVzdCBz ZWUgdGhlIHJlZmV4cHIgYW5kIHJlZmFzc2duZXhwciwgaG93ZXZlciAqLwogCQkJCWlmIChXQUxL KHNic3JlZi0+cmVmZXhwcikpCiAJCQkJCXJldHVybiB0cnVlOwpAQCAtMzA4MiwxMiArMzA5OCw1 MSBAQCBleHByZXNzaW9uX3RyZWVfbXV0YXRvcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQl7CiAJCQkJ U3Vic2NyaXB0aW5nUmVmICpzYnNyZWYgPSAoU3Vic2NyaXB0aW5nUmVmICopIG5vZGU7CiAJCQkJ U3Vic2NyaXB0aW5nUmVmICpuZXdub2RlOworCQkJCUxpc3RDZWxsICAgKmxjOworCQkJCUxpc3QJ ICAgKmV4cHJzID0gTklMOwogCiAJCQkJRkxBVENPUFkobmV3bm9kZSwgc2JzcmVmLCBTdWJzY3Jp cHRpbmdSZWYpOwotCQkJCU1VVEFURShuZXdub2RlLT5yZWZ1cHBlcmluZGV4cHIsIHNic3JlZi0+ cmVmdXBwZXJpbmRleHByLAotCQkJCQkgICBMaXN0ICopOwotCQkJCU1VVEFURShuZXdub2RlLT5y ZWZsb3dlcmluZGV4cHIsIHNic3JlZi0+cmVmbG93ZXJpbmRleHByLAotCQkJCQkgICBMaXN0ICop OworCisJCQkJZm9yZWFjaChsYywgc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIpCisJCQkJeworCQkJ CQlOb2RlCSAgICpleHByID0gbGZpcnN0KGxjKTsKKworCQkJCQlpZiAoZXhwciAmJiBJc0EoZXhw ciwgU3RyaW5nKSkKKwkJCQkJeworCQkJCQkJU3RyaW5nCSAgICpzdHI7CisKKwkJCQkJCUZMQVRD T1BZKHN0ciwgZXhwciwgU3RyaW5nKTsKKwkJCQkJCWV4cHIgPSAoTm9kZSAqKSBzdHI7CisJCQkJ CX0KKwkJCQkJZWxzZQorCQkJCQkJZXhwciA9IG11dGF0b3IoZXhwciwgY29udGV4dCk7CisKKwkJ CQkJZXhwcnMgPSBsYXBwZW5kKGV4cHJzLCBleHByKTsKKwkJCQl9CisKKwkJCQluZXdub2RlLT5y ZWZ1cHBlcmluZGV4cHIgPSBleHByczsKKworCQkJCWV4cHJzID0gTklMOworCisJCQkJZm9yZWFj aChsYywgc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIpCisJCQkJeworCQkJCQlOb2RlCSAgICpleHBy ID0gbGZpcnN0KGxjKTsKKworCQkJCQlpZiAoZXhwciAmJiBJc0EoZXhwciwgU3RyaW5nKSkKKwkJ CQkJeworCQkJCQkJU3RyaW5nCSAgICpzdHI7CisKKwkJCQkJCUZMQVRDT1BZKHN0ciwgZXhwciwg U3RyaW5nKTsKKwkJCQkJCWV4cHIgPSAoTm9kZSAqKSBzdHI7CisJCQkJCX0KKwkJCQkJZWxzZQor CQkJCQkJZXhwciA9IG11dGF0b3IoZXhwciwgY29udGV4dCk7CisKKwkJCQkJZXhwcnMgPSBsYXBw ZW5kKGV4cHJzLCBleHByKTsKKwkJCQl9CisKKwkJCQluZXdub2RlLT5yZWZsb3dlcmluZGV4cHIg PSBleHByczsKKwogCQkJCU1VVEFURShuZXdub2RlLT5yZWZleHByLCBzYnNyZWYtPnJlZmV4cHIs CiAJCQkJCSAgIEV4cHIgKik7CiAJCQkJTVVUQVRFKG5ld25vZGUtPnJlZmFzc2duZXhwciwgc2Jz cmVmLT5yZWZhc3NnbmV4cHIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf Y29sbGF0ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYwppbmRleCBkMmUy MTgzNTNmMy4uYmU2ZGVhNmZmZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9jb2xsYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYwpAQCAt NjgwLDExICs2ODAsMjUgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2VyKE5vZGUgKm5vZGUsIGFz c2lnbl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCQkJCQkJICogY29udHJpYnV0ZSBh bnl0aGluZy4pCiAJCQkJCQkJICovCiAJCQkJCQkJU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYgPSAo U3Vic2NyaXB0aW5nUmVmICopIG5vZGU7CisJCQkJCQkJTGlzdENlbGwgICAqbGM7CisKKwkJCQkJ CQkvKiBza2lwIFN0cmluZyBzdWJzY3JpcHRzIHVzZWQgZm9yIGRvdCBub3RhdGlvbiAqLworCQkJ CQkJCWZvcmVhY2gobGMsIHNic3JlZi0+cmVmdXBwZXJpbmRleHByKQorCQkJCQkJCXsKKwkJCQkJ CQkJTm9kZQkgICAqZXhwciA9IGxmaXJzdChsYyk7CisKKwkJCQkJCQkJaWYgKGV4cHIgJiYgIUlz QShleHByLCBTdHJpbmcpKQorCQkJCQkJCQkJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhjb250ZXh0 LT5wc3RhdGUsIGV4cHIpOworCQkJCQkJCX0KKworCQkJCQkJCWZvcmVhY2gobGMsIHNic3JlZi0+ cmVmbG93ZXJpbmRleHByKQorCQkJCQkJCXsKKwkJCQkJCQkJTm9kZQkgICAqZXhwciA9IGxmaXJz dChsYyk7CisKKwkJCQkJCQkJaWYgKGV4cHIgJiYgIUlzQShleHByLCBTdHJpbmcpKQorCQkJCQkJ CQkJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhjb250ZXh0LT5wc3RhdGUsIGV4cHIpOworCQkJCQkJ CX0KIAotCQkJCQkJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMoY29udGV4dC0+cHN0YXRlLAotCQkJ CQkJCQkJCQkJICAgKE5vZGUgKikgc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIpOwotCQkJCQkJCWFz c2lnbl9leHByX2NvbGxhdGlvbnMoY29udGV4dC0+cHN0YXRlLAotCQkJCQkJCQkJCQkJICAgKE5v ZGUgKikgc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIpOwogCQkJCQkJCSh2b2lkKSBhc3NpZ25fY29s bGF0aW9uc193YWxrZXIoKE5vZGUgKikgc2JzcmVmLT5yZWZleHByLAogCQkJCQkJCQkJCQkJCQkJ JmxvY2NvbnRleHQpOwogCQkJCQkJCSh2b2lkKSBhc3NpZ25fY29sbGF0aW9uc193YWxrZXIoKE5v ZGUgKikgc2JzcmVmLT5yZWZhc3NnbmV4cHIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5k ZXggZDExYThhMjBlZWEuLmNmYWU4MTU5YTc2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5j CkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVk ZSAibm9kZXMvbm9kZUZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvcGF0aG5vZGVzLmgiCisjaW5j bHVkZSAibm9kZXMvc3Vic2NyaXB0aW5nLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXpl ci5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9hZ2cuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFy c2VfZnVuYy5oIgpAQCAtMTI5MjMsMTcgKzEyOTI0LDI5IEBAIHByaW50U3Vic2NyaXB0cyhTdWJz Y3JpcHRpbmdSZWYgKnNic3JlZiwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQogCWxvd2xpc3Rf aXRlbSA9IGxpc3RfaGVhZChzYnNyZWYtPnJlZmxvd2VyaW5kZXhwcik7CS8qIGNvdWxkIGJlIE5V TEwgKi8KIAlmb3JlYWNoKHVwbGlzdF9pdGVtLCBzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcikKIAl7 Ci0JCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJ1snKTsKLQkJaWYgKGxvd2xpc3RfaXRlbSkK KwkJTm9kZQkgICAqdXAgPSAoTm9kZSAqKSBsZmlyc3QodXBsaXN0X2l0ZW0pOworCisJCWlmIChJ c0EodXAsIFN0cmluZykpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJy4nKTsK KwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBxdW90ZV9pZGVudGlmaWVyKHN0clZhbCh1 cCkpKTsKKwkJfQorCQllbHNlCiAJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJ1sn KTsKKwkJCWlmIChsb3dsaXN0X2l0ZW0pCisJCQl7CisJCQkJLyogSWYgc3ViZXhwcmVzc2lvbiBp cyBOVUxMLCBnZXRfcnVsZV9leHByIHByaW50cyBub3RoaW5nICovCisJCQkJZ2V0X3J1bGVfZXhw cigoTm9kZSAqKSBsZmlyc3QobG93bGlzdF9pdGVtKSwgY29udGV4dCwgZmFsc2UpOworCQkJCWFw cGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJzonKTsKKwkJCX0KIAkJCS8qIElmIHN1YmV4cHJlc3Np b24gaXMgTlVMTCwgZ2V0X3J1bGVfZXhwciBwcmludHMgbm90aGluZyAqLwotCQkJZ2V0X3J1bGVf ZXhwcigoTm9kZSAqKSBsZmlyc3QobG93bGlzdF9pdGVtKSwgY29udGV4dCwgZmFsc2UpOwotCQkJ YXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnOicpOwotCQkJbG93bGlzdF9pdGVtID0gbG5leHQo c2JzcmVmLT5yZWZsb3dlcmluZGV4cHIsIGxvd2xpc3RfaXRlbSk7CisJCQlnZXRfcnVsZV9leHBy KChOb2RlICopIGxmaXJzdCh1cGxpc3RfaXRlbSksIGNvbnRleHQsIGZhbHNlKTsKKwkJCWFwcGVu ZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJ10nKTsKIAkJfQotCQkvKiBJZiBzdWJleHByZXNzaW9uIGlz IE5VTEwsIGdldF9ydWxlX2V4cHIgcHJpbnRzIG5vdGhpbmcgKi8KLQkJZ2V0X3J1bGVfZXhwcigo Tm9kZSAqKSBsZmlyc3QodXBsaXN0X2l0ZW0pLCBjb250ZXh0LCBmYWxzZSk7Ci0JCWFwcGVuZFN0 cmluZ0luZm9DaGFyKGJ1ZiwgJ10nKTsKKworCQlpZiAobG93bGlzdF9pdGVtKQorCQkJbG93bGlz dF9pdGVtID0gbG5leHQoc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIsIGxvd2xpc3RfaXRlbSk7CiAJ fQogfQogCi0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --0000000000003fda25062f219b57 Content-Type: application/octet-stream; name="v8-0006-Implement-read-only-dot-notation-for-jsonb.patch" Content-Disposition: attachment; filename="v8-0006-Implement-read-only-dot-notation-for-jsonb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7ninypo5 RnJvbSA4MmEyMmRiM2YyODY3NjQ5MzRmZjVmYTZiNjExYTZiN2FmMmMwZmM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAyMzoxNzo1MyArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djggNi83XSBJbXBsZW1lbnQgcmVhZC1vbmx5IGRvdCBub3RhdGlvbiBmb3IganNvbmIKClRoaXMg cGF0Y2ggaW50cm9kdWNlcyBKU09OQiBtZW1iZXIgYWNjZXNzIHVzaW5nIGRvdCBub3RhdGlvbiwg d2lsZGNhcmQKYWNjZXNzLCBhbmQgYXJyYXkgc3Vic2NyaXB0aW5nIHdpdGggc2xpY2luZywgYWxp Z25pbmcgd2l0aCB0aGUgSlNPTgpzaW1wbGlmaWVkIGFjY2Vzc29yIHNwZWNpZmllZCBpbiBTUUw6 MjAyMy4gU3BlY2lmaWNhbGx5LCB0aGUgZm9sbG93aW5nCnN5bnRheCBlbmhhbmNlbWVudHMgYXJl IGFkZGVkOgoKMS4gU2ltcGxlIGRvdC1ub3RhdGlvbiBhY2Nlc3MgdG8gSlNPTkIgb2JqZWN0IGZp ZWxkcwoyLiBXaWxkY2FyZCBkb3Qtbm90YXRpb24gYWNjZXNzIHRvIEpTT05CIG9iamVjdCBmaWVs ZHMKMi4gU3Vic2NyaXB0aW5nIGZvciBpbmRleCByYW5nZSBhY2Nlc3MgdG8gSlNPTkIgYXJyYXkg ZWxlbWVudHMKCkV4YW1wbGVzOgoKLS0gU2V0dXAKY3JlYXRlIHRhYmxlIHQoeCBpbnQsIHkganNv bmIpOwppbnNlcnQgaW50byB0IHNlbGVjdCAxLCAneyJhIjogMSwgImIiOiA0Mn0nOjpqc29uYjsK aW5zZXJ0IGludG8gdCBzZWxlY3QgMSwgJ3siYSI6IDIsICJiIjogeyJjIjogNDJ9fSc6Ompzb25i OwppbnNlcnQgaW50byB0IHNlbGVjdCAxLCAneyJhIjogMywgImIiOiB7ImMiOiAiNDIifSwgImQi OlsxMSwgMTJdfSc6Ompzb25iOwoKLS0gRXhpc3Rpbmcgc3ludGF4IHByZWRhdGVzIHRoZSBTUUwg c3RhbmRhcmQ6CnNlbGVjdCAodC55KS0+J2InIGZyb20gdDsKc2VsZWN0ICh0LnkpLT4nYictPidj JyBmcm9tIHQ7CnNlbGVjdCAodC55KS0+J2QnLT4wIGZyb20gdDsKCi0tIEpTT04gc2ltcGxpZmll ZCBhY2Nlc3NvciBzcGVjaWZpZWQgYnkgdGhlIFNRTCBzdGFuZGFyZDoKc2VsZWN0ICh0LnkpLmIg ZnJvbSB0OwpzZWxlY3QgKHQueSkuYi5jIGZyb20gdDsKc2VsZWN0ICh0LnkpLmRbMF0gZnJvbSB0 OwoKVGhlIFNRTCBzdGFuZGFyZCBzdGF0ZXMgdGhhdCBzaW1wbGlmaWVkIGFjY2VzcyBpcyBlcXVp dmFsZW50IHRvOgpKU09OX1FVRVJZIChWRVAsICdsYXggJC5KQycgV0lUSCBDT05ESVRJT05BTCBB UlJBWSBXUkFQUEVSIE5VTEwgT04gRU1QVFkgTlVMTCBPTiBFUlJPUikKCndoZXJlOgogIFZFUCA9 IDx2YWx1ZSBleHByZXNzaW9uIHByaW1hcnk+CiAgSkMgPSA8SlNPTiBzaW1wbGlmaWVkIGFjY2Vz c29yIG9wIGNoYWluPgoKRm9yIGV4YW1wbGUsIHRoZSBKU09OX1FVRVJZIGVxdWl2YWxlbnRzIG9m IHRoZSBhYm92ZSBxdWVyaWVzIGFyZToKCnNlbGVjdCBqc29uX3F1ZXJ5KHksICdsYXggJC5iJyBX SVRIIENPTkRJVElPTkFMIEFSUkFZIFdSQVBQRVIgTlVMTCBPTiBFTVBUWSBOVUxMIE9OIEVSUk9S KSBmcm9tIHQ7CnNlbGVjdCBqc29uX3F1ZXJ5KHksICdsYXggJC5iLmMnIFdJVEggQ09ORElUSU9O QUwgQVJSQVkgV1JBUFBFUiBOVUxMIE9OIEVNUFRZIE5VTEwgT04gRVJST1IpIGZyb20gdDsKc2Vs ZWN0IGpzb25fcXVlcnkoeSwgJ2xheCAkLmRbMF0nIFdJVEggQ09ORElUSU9OQUwgQVJSQVkgV1JB UFBFUiBOVUxMIE9OIEVNUFRZIE5VTEwgT04gRVJST1IpIGZyb20gdDsKCkltcGxlbWVudGF0aW9u IGRldGFpbHM6CgpFeHRlbmRzIHRoZSBleGlzdGluZyBjb250YWluZXIgc3Vic2NyaXB0aW5nIGlu dGVyZmFjZSB0byBzdXBwb3J0CmNvbnRhaW5lci1zcGVjaWZpYyBpbmZvcm1hdGlvbiwgc3BlY2lm aWNhbGx5IGEgSlNPTlBhdGggZXhwcmVzc2lvbiBmb3IKanNvbmIuCgpEdXJpbmcgcXVlcnkgdHJh bnNmb3JtYXRpb24sIGRldGVjdHMgZG90LW5vdGF0aW9uLCB3aWxkY2FyZCBhY2Nlc3MsCmFuZCBz bGljZWQgc3Vic2NyaXB0aW5nLiBJZiBhbnkgb2YgdGhlc2UgYWNjZXNzb3JzIGFyZSBwcmVzZW50 LApjb25zdHJ1Y3RzIGEgSlNPTlBhdGggZXhwcmVzc2lvbiByZXByZXNlbnRpbmcgdGhlIGFjY2Vz cyBjaGFpbi4KCkR1cmluZyBleGVjdXRpb24sIGlmIGEgSlNPTlBhdGggZXhwcmVzc2lvbiBpcyBw cmVzZW50IGluCkpzb25iU3ViV29ya3NwYWNlLCBleGVjdXRlcyBpdCB2aWEgSnNvblBhdGhRdWVy eSgpLgoKRG9lcyBub3QgdHJhbnNmb3JtIGFjY2Vzc29ycyBkaXJlY3RseSBpbnRvIEpTT05fUVVF UlkgZHVyaW5nCnRyYW5zZm9ybWF0aW9uIHRvIHByZXNlcnZlIHRoZSBvcmlnaW5hbCBxdWVyeSBz dHJ1Y3R1cmUgZm9yIEVYUExBSU4KYW5kIENSRUFURSBWSUVXLgotLS0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9qc29uYnN1YnMuYyAgIHwgMjkzICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0K IHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgIHwgICA3ICsKIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0IHwgMjM5ICsrKysrKysrKysrKysrKysrKysrKystCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwgICAgICB8ICA0MyArKysrCiA0IGZpbGVzIGNo YW5nZWQsIDU1NiBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv anNvbmJzdWJzLmMKaW5kZXggM2ZmZTQwY2ZhNDAuLjQwOWNiMjA1MzljIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2pzb25ic3Vicy5jCkBAIC0xNSwyMSArMTUsMzAgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5o IgogCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKKyNpbmNsdWRlICJub2Rlcy9tYWtl ZnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9z dWJzY3JpcHRpbmcuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29lcmNlLmgiCiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX2V4cHIuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2lu Y2x1ZGUgInV0aWxzL2pzb25iLmgiCisjaW5jbHVkZSAidXRpbHMvanNvbnBhdGguaCIKIAogCi0v KiBTdWJzY3JpcHRpbmdSZWZTdGF0ZS53b3Jrc3BhY2UgZm9yIGpzb25iIHN1YnNjcmlwdGluZyBl eGVjdXRpb24gKi8KKy8qCisgKiBTdWJzY3JpcHRpbmdSZWZTdGF0ZS53b3Jrc3BhY2UgZm9yIGdl bmVyaWMganNvbmIgc3Vic2NyaXB0aW5nIGV4ZWN1dGlvbi4KKyAqCisgKiBTdG9yZXMgc3RhdGUg Zm9yIGJvdGgganNvbmIgc2ltcGxlIHN1YnNjcmlwdGluZyBhbmQgZG90IG5vdGF0aW9uIGFjY2Vz cy4KKyAqIERvdCBub3RhdGlvbiBhZGRpdGlvbmFsbHkgdXNlcyBganNvbnBhdGhgIGZvciBKc29u UGF0aCBldmFsdWF0aW9uLgorICovCiB0eXBlZGVmIHN0cnVjdCBKc29uYlN1YldvcmtzcGFjZQog ewogCWJvb2wJCWV4cGVjdEFycmF5OwkvKiBqc29uYiByb290IGlzIGV4cGVjdGVkIHRvIGJlIGFu IGFycmF5ICovCiAJT2lkCQkgICAqaW5kZXhPaWQ7CQkvKiBPSUQgb2YgY29lcmNlZCBzdWJzY3Jp cHQgZXhwcmVzc2lvbiwgY291bGQKIAkJCQkJCQkJICogYmUgb25seSBpbnRlZ2VyIG9yIHRleHQg Ki8KIAlEYXR1bQkgICAqaW5kZXg7CQkJLyogU3Vic2NyaXB0IHZhbHVlcyBpbiBEYXR1bSBmb3Jt YXQgKi8KKwlKc29uUGF0aCAgICpqc29ucGF0aDsJCS8qIEpzb25QYXRoIGZvciBkb3Qgbm90YXRp b24gZXhlY3V0aW9uIHZpYQorCQkJCQkJCQkgKiBKc29uUGF0aFF1ZXJ5KCkgKi8KIH0gSnNvbmJT dWJXb3Jrc3BhY2U7CiAKIHN0YXRpYyBPaWQKQEAgLTExMCw2ICsxMTksMjI4IEBAIGNvZXJjZV9q c29ucGF0aF9zdWJzY3JpcHQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpzdWJFeHByLCBPaWQg bnVtdHlwZSkKIAlyZXR1cm4gc3ViRXhwcjsKIH0KIAorLyoKKyAqIER1cmluZyB0cmFuc2Zvcm1h dGlvbiwgZGV0ZXJtaW5lIHdoZXRoZXIgdG8gYnVpbGQgYSBKc29uUGF0aAorICogZm9yIEpzb25Q YXRoUXVlcnkoKSBleGVjdXRpb24uCisgKgorICogSnNvblBhdGggaXMgbmVlZGVkIGlmIHRoZSBp bmRpcmVjdGlvbiBsaXN0IGluY2x1ZGVzOgorICogLSBTdHJpbmctYmFzZWQgYWNjZXNzIChkb3Qg bm90YXRpb24pCisgKiAtIFdpbGRjYXJkIChgKmApCisgKiAtIFNsaWNlLWJhc2VkIHN1YnNjcmlw dGluZworICoKKyAqIE90aGVyd2lzZSwgc2ltcGxlIGpzb25iIHN1YnNjcmlwdGluZyBpcyBzdWZm aWNpZW50LgorICovCitzdGF0aWMgYm9vbAoranNvbmJfY2hlY2tfanNvbnBhdGhfbmVlZGVkKExp c3QgKmluZGlyZWN0aW9uKQoreworCUxpc3RDZWxsICAgKmxjOworCisJZm9yZWFjaChsYywgaW5k aXJlY3Rpb24pCisJeworCQlOb2RlCSAgICphY2Nlc3NvciA9IGxmaXJzdChsYyk7CisKKwkJaWYg KElzQShhY2Nlc3NvciwgU3RyaW5nKSB8fAorCQkJSXNBKGFjY2Vzc29yLCBBX1N0YXIpKQorCQkJ cmV0dXJuIHRydWU7CisJCWVsc2UKKwkJeworCQkJQV9JbmRpY2VzICAqYWk7CisKKwkJCUFzc2Vy dChJc0EoYWNjZXNzb3IsIEFfSW5kaWNlcykpOworCQkJYWkgPSBjYXN0Tm9kZShBX0luZGljZXMs IGFjY2Vzc29yKTsKKworCQkJaWYgKCFhaS0+dWlkeCB8fCBhaS0+bGlkeCkKKwkJCXsKKwkJCQlB c3NlcnQoYWktPmlzX3NsaWNlKTsKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJfQorCX0KKwor CXJldHVybiBmYWxzZTsKK30KKworLyoKKyAqIEhlbHBlciBmdW5jdGlvbnMgZm9yIGNvbnN0cnVj dGluZyBKc29uUGF0aCBleHByZXNzaW9ucy4KKyAqCisgKiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9u cyBjcmVhdGUgdmFyaW91cyB0eXBlcyBvZiBKc29uUGF0aFBhcnNlSXRlbSBub2RlcywKKyAqIHdo aWNoIGFyZSB1c2VkIHRvIGJ1aWxkIEpzb25QYXRoIGV4cHJlc3Npb25zIGZvciBqc29uYiBzaW1w bGlmaWVkIGFjY2Vzc29yLgorICovCisKK3N0YXRpYyBKc29uUGF0aFBhcnNlSXRlbSAqCittYWtl X2pzb25wYXRoX2l0ZW0oSnNvblBhdGhJdGVtVHlwZSB0eXBlKQoreworCUpzb25QYXRoUGFyc2VJ dGVtICp2ID0gcGFsbG9jKHNpemVvZigqdikpOworCisJdi0+dHlwZSA9IHR5cGU7CisJdi0+bmV4 dCA9IE5VTEw7CisKKwlyZXR1cm4gdjsKK30KKworc3RhdGljIEpzb25QYXRoUGFyc2VJdGVtICoK K21ha2VfanNvbnBhdGhfaXRlbV9pbnQoaW50MzIgdmFsLCBMaXN0ICoqZXhwcnMpCit7CisJSnNv blBhdGhQYXJzZUl0ZW0gKmpwaSA9IG1ha2VfanNvbnBhdGhfaXRlbShqcGlOdW1lcmljKTsKKwor CWpwaS0+dmFsdWUubnVtZXJpYyA9CisJCURhdHVtR2V0TnVtZXJpYyhEaXJlY3RGdW5jdGlvbkNh bGwxKGludDRfbnVtZXJpYywgSW50MzJHZXREYXR1bSh2YWwpKSk7CisKKwkqZXhwcnMgPSBsYXBw ZW5kKCpleHBycywgbWFrZUNvbnN0KElOVDRPSUQsIC0xLCBJbnZhbGlkT2lkLCA0LAorCQkJCQkJ CQkJICAgSW50MzJHZXREYXR1bSh2YWwpLCBmYWxzZSwgdHJ1ZSkpOworCisJcmV0dXJuIGpwaTsK K30KKworLyoKKyAqIENvbnZlcnQgYW4gZXhwcmVzc2lvbiBpbnRvIGEgSnNvblBhdGhQYXJzZUl0 ZW0uCisgKiBJZiB0aGUgZXhwcmVzc2lvbiBpcyBhIGNvbnN0YW50IGludGVnZXIsIGNyZWF0ZSBh IGRpcmVjdCBudW1lcmljIGl0ZW0uCisgKiBPdGhlcndpc2UsIGNyZWF0ZSBhIHZhcmlhYmxlIHJl ZmVyZW5jZSBhbmQgYWRkIGl0IHRvIHRoZSBleHByZXNzaW9uIGxpc3QuCisgKi8KK3N0YXRpYyBK c29uUGF0aFBhcnNlSXRlbSAqCittYWtlX2pzb25wYXRoX2l0ZW1fZXhwcihQYXJzZVN0YXRlICpw c3RhdGUsIE5vZGUgKmV4cHIsIExpc3QgKipleHBycykKK3sKKwlDb25zdAkgICAqY25zdDsKKwor CWV4cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgZXhwciwgcHN0YXRlLT5wX2V4cHJfa2luZCk7 CisKKwlpZiAoIUlzQShleHByLCBDb25zdCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJIGVycm1zZygianNvbmIgc2ltcGxp ZmllZCBhY2Nlc3NvciBzdXBwb3J0cyBzdWJzY3JpcHRpbmcgaW4gY29uc3QgaW50NCwgZ290IHR5 cGU6ICVzIiwKKwkJCQkJCWZvcm1hdF90eXBlX2JlKGV4cHJUeXBlKGV4cHIpKSksCisJCQkJIHBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihleHByKSkpKTsKKworCWNuc3Qg PSAoQ29uc3QgKikgZXhwcjsKKworCWlmIChjbnN0LT5jb25zdHR5cGUgPT0gSU5UNE9JRCAmJiAh Y25zdC0+Y29uc3Rpc251bGwpCisJeworCQlpbnQzMgkJdmFsID0gRGF0dW1HZXRJbnQzMihjbnN0 LT5jb25zdHZhbHVlKTsKKworCQlyZXR1cm4gbWFrZV9qc29ucGF0aF9pdGVtX2ludCh2YWwsIGV4 cHJzKTsKKwl9CisKKwllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQ RV9NSVNNQVRDSCksCisJCQkgZXJybXNnKCJqc29uYiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN1cHBv cnRzIHN1YnNjcmlwdGluZyBpbiB0eXBlOiBJTlQ0LCBnb3QgdHlwZTogJXMiLAorCQkJCQlmb3Jt YXRfdHlwZV9iZShjbnN0LT5jb25zdHR5cGUpKSwKKwkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBleHByTG9jYXRpb24oZXhwcikpKSk7Cit9CisKKy8qCisgKiBqc29uYl9zdWJzY3JpcHRf bWFrZV9qc29ucGF0aAorICoKKyAqIENvbnN0cnVjdHMgYSBKc29uUGF0aCBleHByZXNzaW9uIGZy b20gYSBsaXN0IG9mIGluZGlyZWN0aW9ucy4KKyAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB3aGVu IGpzb25iIHN1YnNjcmlwdGluZyBpbnZvbHZlcyBkb3Qgbm90YXRpb24sCisgKiB3aWxkY2FyZHMg KCopLCBvciBzbGljZS1iYXNlZCBzdWJzY3JpcHRpbmcsIHJlcXVpcmluZyBKc29uUGF0aC1iYXNl ZAorICogZXZhbHVhdGlvbi4KKyAqCisgKiBUaGUgZnVuY3Rpb24gbW9kaWZpZXMgdGhlIGluZGly ZWN0aW9uIGxpc3QgaW4gcGxhY2UsIHJlbW92aW5nIHByb2Nlc3NlZAorICogZWxlbWVudHMgYXMg aXQgY29udmVydHMgdGhlbSBpbnRvIEpzb25QYXRoIGNvbXBvbmVudHMsIGFzIGZvbGxvd3M6Cisg KiAtIFN0cmluZyBrZXlzIChkb3Qgbm90YXRpb24pIC0+IGpwaUtleSBpdGVtcy4KKyAqIC0gV2ls ZGNhcmQgKCopIC0+IGpwaUFueUtleSBpdGVtLgorICogLSBBcnJheSBpbmRpY2VzIGFuZCBzbGlj ZXMgLT4ganBpSW5kZXhBcnJheSBpdGVtcy4KKyAqCisgKiBQYXJhbWV0ZXJzOgorICogLSBwc3Rh dGU6IFBhcnNlIHN0YXRlIGNvbnRleHQuCisgKiAtIGluZGlyZWN0aW9uOiBMaXN0IG9mIHN1YnNj cmlwdGluZyBleHByZXNzaW9ucyAobW9kaWZpZWQgaW4tcGxhY2UpLgorICogLSB1ZXhwcnM6IFVw cGVyLWJvdW5kIGV4cHJlc3Npb25zIGV4dHJhY3RlZCBmcm9tIHN1YnNjcmlwdHMuCisgKiAtIGxl eHByczogTG93ZXItYm91bmQgZXhwcmVzc2lvbnMgZXh0cmFjdGVkIGZyb20gc3Vic2NyaXB0cy4K KyAqIFJldHVybnM6CisgKiAtIGEgQ29uc3Qgbm9kZSBjb250YWluaW5nIHRoZSB0cmFuc2Zvcm1l ZCBKc29uUGF0aCBleHByZXNzaW9uLgorICovCitzdGF0aWMgTm9kZSAqCitqc29uYl9zdWJzY3Jp cHRfbWFrZV9qc29ucGF0aChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKippbmRpcmVjdGlvbiwK KwkJCQkJCQkgIExpc3QgKip1ZXhwcnMsIExpc3QgKipsZXhwcnMpCit7CisJSnNvblBhdGhQYXJz ZVJlc3VsdCBqcHJlczsKKwlKc29uUGF0aFBhcnNlSXRlbSAqcGF0aCA9IG1ha2VfanNvbnBhdGhf aXRlbShqcGlSb290KTsKKwlMaXN0Q2VsbCAgICpsYzsKKwlEYXR1bQkJanNwOworCWludAkJCXBh dGhsZW4gPSAwOworCisJKnVleHBycyA9IE5JTDsKKwkqbGV4cHJzID0gTklMOworCisJanByZXMu ZXhwciA9IHBhdGg7CisJanByZXMubGF4ID0gdHJ1ZTsKKworCWZvcmVhY2gobGMsICppbmRpcmVj dGlvbikKKwl7CisJCU5vZGUJICAgKmFjY2Vzc29yID0gbGZpcnN0KGxjKTsKKwkJSnNvblBhdGhQ YXJzZUl0ZW0gKmpwaTsKKworCQlpZiAoSXNBKGFjY2Vzc29yLCBTdHJpbmcpKQorCQl7CisJCQlj aGFyCSAgICpmaWVsZCA9IHN0clZhbChhY2Nlc3Nvcik7CisKKwkJCWpwaSA9IG1ha2VfanNvbnBh dGhfaXRlbShqcGlLZXkpOworCQkJanBpLT52YWx1ZS5zdHJpbmcudmFsID0gZmllbGQ7CisJCQlq cGktPnZhbHVlLnN0cmluZy5sZW4gPSBzdHJsZW4oZmllbGQpOworCisJCQkqdWV4cHJzID0gbGFw cGVuZCgqdWV4cHJzLCBhY2Nlc3Nvcik7CisJCX0KKwkJZWxzZSBpZiAoSXNBKGFjY2Vzc29yLCBB X1N0YXIpKQorCQl7CisJCQlqcGkgPSBtYWtlX2pzb25wYXRoX2l0ZW0oanBpQW55S2V5KTsKKwor CQkJKnVleHBycyA9IGxhcHBlbmQoKnVleHBycywgTlVMTCk7CisJCX0KKwkJZWxzZSBpZiAoSXNB KGFjY2Vzc29yLCBBX0luZGljZXMpKQorCQl7CisJCQlBX0luZGljZXMgICphaSA9IGNhc3ROb2Rl KEFfSW5kaWNlcywgYWNjZXNzb3IpOworCisJCQlqcGkgPSBtYWtlX2pzb25wYXRoX2l0ZW0oanBp SW5kZXhBcnJheSk7CisJCQlqcGktPnZhbHVlLmFycmF5Lm5lbGVtcyA9IDE7CisJCQlqcGktPnZh bHVlLmFycmF5LmVsZW1zID0gcGFsbG9jKHNpemVvZihqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBd KSk7CisKKwkJCWlmIChhaS0+aXNfc2xpY2UpCisJCQl7CisJCQkJd2hpbGUgKGxpc3RfbGVuZ3Ro KCpsZXhwcnMpIDwgbGlzdF9sZW5ndGgoKnVleHBycykpCisJCQkJCSpsZXhwcnMgPSBsYXBwZW5k KCpsZXhwcnMsIE5VTEwpOworCisJCQkJaWYgKGFpLT5saWR4KQorCQkJCQlqcGktPnZhbHVlLmFy cmF5LmVsZW1zWzBdLmZyb20gPSBtYWtlX2pzb25wYXRoX2l0ZW1fZXhwcihwc3RhdGUsIGFpLT5s aWR4LCBsZXhwcnMpOworCQkJCWVsc2UKKwkJCQkJanBpLT52YWx1ZS5hcnJheS5lbGVtc1swXS5m cm9tID0gbWFrZV9qc29ucGF0aF9pdGVtX2ludCgwLCBsZXhwcnMpOworCisJCQkJaWYgKGFpLT51 aWR4KQorCQkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLnRvID0gbWFrZV9qc29ucGF0aF9p dGVtX2V4cHIocHN0YXRlLCBhaS0+dWlkeCwgdWV4cHJzKTsKKwkJCQllbHNlCisJCQkJeworCQkJ CQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLnRvID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaUxh c3QpOworCQkJCQkqdWV4cHJzID0gbGFwcGVuZCgqdWV4cHJzLCBOVUxMKTsKKwkJCQl9CisJCQl9 CisJCQllbHNlCisJCQl7CisJCQkJQXNzZXJ0KGFpLT51aWR4ICYmICFhaS0+bGlkeCk7CisJCQkJ anBpLT52YWx1ZS5hcnJheS5lbGVtc1swXS5mcm9tID0gbWFrZV9qc29ucGF0aF9pdGVtX2V4cHIo cHN0YXRlLCBhaS0+dWlkeCwgdWV4cHJzKTsKKwkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBd LnRvID0gTlVMTDsKKwkJCX0KKwkJfQorCQllbHNlCisJCQlicmVhazsKKworCQkvKiBhcHBlbmQg cGF0aCBpdGVtICovCisJCXBhdGgtPm5leHQgPSBqcGk7CisJCXBhdGggPSBqcGk7CisJCXBhdGhs ZW4rKzsKKwl9CisKKwlpZiAoKmxleHBycykKKwl7CisJCXdoaWxlIChsaXN0X2xlbmd0aCgqbGV4 cHJzKSA8IGxpc3RfbGVuZ3RoKCp1ZXhwcnMpKQorCQkJKmxleHBycyA9IGxhcHBlbmQoKmxleHBy cywgTlVMTCk7CisJfQorCisJKmluZGlyZWN0aW9uID0gbGlzdF9kZWxldGVfZmlyc3RfbigqaW5k aXJlY3Rpb24sIHBhdGhsZW4pOworCisJanNwID0ganNvblBhdGhGcm9tUGFyc2VSZXN1bHQoJmpw cmVzLCAwLCBOVUxMKTsKKworCXJldHVybiAoTm9kZSAqKSBtYWtlQ29uc3QoSlNPTlBBVEhPSUQs IC0xLCBJbnZhbGlkT2lkLCAtMSwganNwLCBmYWxzZSwgZmFsc2UpOworfQorCiAvKgogICogRmlu aXNoIHBhcnNlIGFuYWx5c2lzIG9mIGEgU3Vic2NyaXB0aW5nUmVmIGV4cHJlc3Npb24gZm9yIGEg anNvbmIuCiAgKgpAQCAtMTI2LDE5ICszNTcsMzIgQEAganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9y bShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAlMaXN0CSAgICp1cHBlckluZGV4cHIgPSBOSUw7 CiAJTGlzdENlbGwgICAqaWR4OwogCisJLyogRGV0ZXJtaW5lIHRoZSByZXN1bHQgdHlwZSBvZiB0 aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbjsgYWx3YXlzIGpzb25iICovCisJc2JzcmVmLT5yZWZy ZXN0eXBlID0gSlNPTkJPSUQ7CisJc2JzcmVmLT5yZWZ0eXBtb2QgPSAtMTsKKworCWlmIChqc29u Yl9jaGVja19qc29ucGF0aF9uZWVkZWQoKmluZGlyZWN0aW9uKSkKKwl7CisJCXNic3JlZi0+cmVm anNvbmJwYXRoID0KKwkJCWpzb25iX3N1YnNjcmlwdF9tYWtlX2pzb25wYXRoKHBzdGF0ZSwgaW5k aXJlY3Rpb24sCisJCQkJCQkJCQkJICAmc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIsCisJCQkJCQkJ CQkJICAmc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIpOworCQlyZXR1cm47CisJfQorCiAJLyoKIAkg KiBUcmFuc2Zvcm0gYW5kIGNvbnZlcnQgdGhlIHN1YnNjcmlwdCBleHByZXNzaW9ucy4gSnNvbmIg c3Vic2NyaXB0aW5nCiAJICogZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMsIGxvb2sgb25seSBhbmQg dGhlIHVwcGVyIGluZGV4LgogCSAqLwogCWZvcmVhY2goaWR4LCAqaW5kaXJlY3Rpb24pCiAJewor CQlOb2RlCSAgICppID0gbGZpcnN0KGlkeCk7CiAJCUFfSW5kaWNlcyAgKmFpOwogCQlOb2RlCSAg ICpzdWJFeHByOwogCi0JCWlmICghSXNBKGxmaXJzdChpZHgpLCBBX0luZGljZXMpKQotCQkJYnJl YWs7CisJCUFzc2VydChJc0EoaSwgQV9JbmRpY2VzKSk7CiAKLQkJYWkgPSBsZmlyc3Rfbm9kZShB X0luZGljZXMsIGlkeCk7CisJCWFpID0gY2FzdE5vZGUoQV9JbmRpY2VzLCBpKTsKIAogCQlpZiAo aXNTbGljZSkKIAkJewpAQCAtMTc1LDEwICs0MTksNiBAQCBqc29uYl9zdWJzY3JpcHRfdHJhbnNm b3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCXNic3JlZi0+cmVmdXBwZXJpbmRleHByID0g dXBwZXJJbmRleHByOwogCXNic3JlZi0+cmVmbG93ZXJpbmRleHByID0gTklMOwogCi0JLyogRGV0 ZXJtaW5lIHRoZSByZXN1bHQgdHlwZSBvZiB0aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbjsgYWx3 YXlzIGpzb25iICovCi0Jc2JzcmVmLT5yZWZyZXN0eXBlID0gSlNPTkJPSUQ7Ci0Jc2JzcmVmLT5y ZWZ0eXBtb2QgPSAtMTsKLQogCS8qIFJlbW92ZSBwcm9jZXNzZWQgZWxlbWVudHMgKi8KIAlpZiAo dXBwZXJJbmRleHByKQogCQkqaW5kaXJlY3Rpb24gPSBsaXN0X2RlbGV0ZV9maXJzdF9uKCppbmRp cmVjdGlvbiwgbGlzdF9sZW5ndGgodXBwZXJJbmRleHByKSk7CkBAIC0yMzMsNyArNDczLDcgQEAg anNvbmJfc3Vic2NyaXB0X2NoZWNrX3N1YnNjcmlwdHMoRXhwclN0YXRlICpzdGF0ZSwKIAkJCSAq IEZvciBqc29uYiBmZXRjaCBhbmQgYXNzaWduIGZ1bmN0aW9ucyB3ZSBuZWVkIHRvIHByb3ZpZGUg cGF0aCBpbgogCQkJICogdGV4dCBmb3JtYXQuIENvbnZlcnQgaWYgaXQncyBub3QgYWxyZWFkeSB0 ZXh0LgogCQkJICovCi0JCQlpZiAod29ya3NwYWNlLT5pbmRleE9pZFtpXSA9PSBJTlQ0T0lEKQor CQkJaWYgKCF3b3Jrc3BhY2UtPmpzb25wYXRoICYmIHdvcmtzcGFjZS0+aW5kZXhPaWRbaV0gPT0g SU5UNE9JRCkKIAkJCXsKIAkJCQlEYXR1bQkJZGF0dW0gPSBzYnNyZWZzdGF0ZS0+dXBwZXJpbmRl eFtpXTsKIAkJCQljaGFyCSAgICpjcyA9IERhdHVtR2V0Q1N0cmluZyhEaXJlY3RGdW5jdGlvbkNh bGwxKGludDRvdXQsIGRhdHVtKSk7CkBAIC0yNjEsMTcgKzUwMSwzMiBAQCBqc29uYl9zdWJzY3Jp cHRfZmV0Y2goRXhwclN0YXRlICpzdGF0ZSwKIHsKIAlTdWJzY3JpcHRpbmdSZWZTdGF0ZSAqc2Jz cmVmc3RhdGUgPSBvcC0+ZC5zYnNyZWYuc3RhdGU7CiAJSnNvbmJTdWJXb3Jrc3BhY2UgKndvcmtz cGFjZSA9IChKc29uYlN1YldvcmtzcGFjZSAqKSBzYnNyZWZzdGF0ZS0+d29ya3NwYWNlOwotCUpz b25iCSAgICpqc29uYlNvdXJjZTsKIAogCS8qIFNob3VsZCBub3QgZ2V0IGhlcmUgaWYgc291cmNl IGpzb25iIChvciBhbnkgc3Vic2NyaXB0KSBpcyBudWxsICovCiAJQXNzZXJ0KCEoKm9wLT5yZXNu dWxsKSk7CiAKLQlqc29uYlNvdXJjZSA9IERhdHVtR2V0SnNvbmJQKCpvcC0+cmVzdmFsdWUpOwot CSpvcC0+cmVzdmFsdWUgPSBqc29uYl9nZXRfZWxlbWVudChqc29uYlNvdXJjZSwKLQkJCQkJCQkJ CSAgd29ya3NwYWNlLT5pbmRleCwKLQkJCQkJCQkJCSAgc2JzcmVmc3RhdGUtPm51bXVwcGVyLAot CQkJCQkJCQkJICBvcC0+cmVzbnVsbCwKLQkJCQkJCQkJCSAgZmFsc2UpOworCWlmICh3b3Jrc3Bh Y2UtPmpzb25wYXRoKQorCXsKKwkJYm9vbAkJZW1wdHkgPSBmYWxzZTsKKwkJYm9vbAkJZXJyb3Ig PSBmYWxzZTsKKworCQkqb3AtPnJlc3ZhbHVlID0gSnNvblBhdGhRdWVyeSgqb3AtPnJlc3ZhbHVl LCB3b3Jrc3BhY2UtPmpzb25wYXRoLAorCQkJCQkJCQkJICBKU1dfQ09ORElUSU9OQUwsCisJCQkJ CQkJCQkgICZlbXB0eSwgJmVycm9yLCBOVUxMLAorCQkJCQkJCQkJICBOVUxMKTsKKworCQkqb3At PnJlc251bGwgPSBlbXB0eSB8fCBlcnJvcjsKKwl9CisJZWxzZQorCXsKKwkJSnNvbmIJICAgKmpz b25iU291cmNlID0gRGF0dW1HZXRKc29uYlAoKm9wLT5yZXN2YWx1ZSk7CisKKwkJKm9wLT5yZXN2 YWx1ZSA9IGpzb25iX2dldF9lbGVtZW50KGpzb25iU291cmNlLAorCQkJCQkJCQkJCSAgd29ya3Nw YWNlLT5pbmRleCwKKwkJCQkJCQkJCQkgIHNic3JlZnN0YXRlLT5udW11cHBlciwKKwkJCQkJCQkJ CQkgIG9wLT5yZXNudWxsLAorCQkJCQkJCQkJCSAgZmFsc2UpOworCX0KIH0KIAogLyoKQEAgLTM4 MSw2ICs2MzYsNyBAQCBqc29uYl9leGVjX3NldHVwKGNvbnN0IFN1YnNjcmlwdGluZ1JlZiAqc2Jz cmVmLAogCUxpc3RDZWxsICAgKmxjOwogCWludAkJCW51cHBlciA9IHNic3JlZi0+cmVmdXBwZXJp bmRleHByLT5sZW5ndGg7CiAJY2hhcgkgICAqcHRyOworCWJvb2wJCXVzZUpzb25wYXRoID0gc2Jz cmVmLT5yZWZqc29uYnBhdGggIT0gTlVMTDsKIAogCS8qIEFsbG9jYXRlIHR5cGUtc3BlY2lmaWMg d29ya3NwYWNlIHdpdGggc3BhY2UgZm9yIHBlci1zdWJzY3JpcHQgZGF0YSAqLwogCXdvcmtzcGFj ZSA9IHBhbGxvYzAoTUFYQUxJR04oc2l6ZW9mKEpzb25iU3ViV29ya3NwYWNlKSkgKwpAQCAtMzg4 LDYgKzY0NCw5IEBAIGpzb25iX2V4ZWNfc2V0dXAoY29uc3QgU3Vic2NyaXB0aW5nUmVmICpzYnNy ZWYsCiAJd29ya3NwYWNlLT5leHBlY3RBcnJheSA9IGZhbHNlOwogCXB0ciA9ICgoY2hhciAqKSB3 b3Jrc3BhY2UpICsgTUFYQUxJR04oc2l6ZW9mKEpzb25iU3ViV29ya3NwYWNlKSk7CiAKKwlpZiAo dXNlSnNvbnBhdGgpCisJCXdvcmtzcGFjZS0+anNvbnBhdGggPSBEYXR1bUdldEpzb25QYXRoUChj YXN0Tm9kZShDb25zdCwgc2JzcmVmLT5yZWZqc29uYnBhdGgpLT5jb25zdHZhbHVlKTsKKwogCS8q CiAJICogVGhpcyBjb2RpbmcgYXNzdW1lcyBzaXplb2YoRGF0dW0pID49IHNpemVvZihPaWQpLCBl bHNlIHdlIG1pZ2h0CiAJICogbWlzYWxpZ24gdGhlIGluZGV4T2lkIHBvaW50ZXIKQEAgLTQwNCw3 ICs2NjMsNyBAQCBqc29uYl9leGVjX3NldHVwKGNvbnN0IFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVm LAogCQlOb2RlCSAgICpleHByID0gbGZpcnN0KGxjKTsKIAkJaW50CQkJaSA9IGZvcmVhY2hfY3Vy cmVudF9pbmRleChsYyk7CiAKLQkJd29ya3NwYWNlLT5pbmRleE9pZFtpXSA9IGV4cHJUeXBlKGV4 cHIpOworCQl3b3Jrc3BhY2UtPmluZGV4T2lkW2ldID0ganNvbmJfc3Vic2NyaXB0X3R5cGUoZXhw cik7CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggZDA1NzZkYTNlMjUuLjlkMzgw ZWQ2MGQ2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtNzE4LDYgKzcxOCwxMyBAQCB0eXBlZGVm IHN0cnVjdCBTdWJzY3JpcHRpbmdSZWYKIAlFeHByCSAgICpyZWZleHByOwogCS8qIGV4cHJlc3Np b24gZm9yIHRoZSBzb3VyY2UgdmFsdWUsIG9yIE5VTEwgaWYgZmV0Y2ggKi8KIAlFeHByCSAgICpy ZWZhc3NnbmV4cHI7CisKKwkvKgorCSAqIGNvbnRhaW5lci1zcGVjaWZpYyBleHRyYSBpbmZvcm1h dGlvbiwgY3VycmVudGx5IHVzZWQgb25seSBieSBqc29uYi4KKwkgKiBzdG9yZXMgYSBKc29uUGF0 aCBleHByZXNzaW9uIHdoZW4ganNvbmIgZG90IG5vdGF0aW9uIGlzIHVzZWQuIE5VTEwgZm9yCisJ ICogc2ltcGxlIHN1YnNjcmlwdGluZy4KKwkgKi8KKwlOb2RlCSAgICpyZWZqc29uYnBhdGg7CiB9 IFN1YnNjcmlwdGluZ1JlZjsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvanNvbmIub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKaW5k ZXggMmJhZmY5MzFiZjIuLjBlZGQxOWJlZDljIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2pzb25iLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25i Lm91dApAQCAtNDkzOSw2ICs0OTM5LDEyIEBAIHNlbGVjdCAoJzEyMyc6Ompzb25iKVsnYSddOwog IAogKDEgcm93KQogCitzZWxlY3QgKCcxMjMnOjpqc29uYikuYTsKKyBhIAorLS0tCisgCisoMSBy b3cpCisKIHNlbGVjdCAoJzEyMyc6Ompzb25iKVswXTsKICBqc29uYiAKIC0tLS0tLS0KQEAgLTQ5 NTEsMTIgKzQ5NTcsMjQgQEAgc2VsZWN0ICgnMTIzJzo6anNvbmIpW05VTExdOwogIAogKDEgcm93 KQogCitzZWxlY3QgKCcxMjMnOjpqc29uYikuTlVMTDsKKyBudWxsIAorLS0tLS0tCisgCisoMSBy b3cpCisKIHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydhJ107CiAganNvbmIgCiAtLS0tLS0t CiAgMQogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKS5hOworIGEgCistLS0K KyAxCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWzBdOwogIGpzb25iIAog LS0tLS0tLQpAQCAtNDk2OSw2ICs0OTg3LDEyIEBAIHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIp Wydub3RfZXhpc3QnXTsKICAKICgxIHJvdykKIAorc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYiku Im5vdF9leGlzdCI7Cisgbm90X2V4aXN0IAorLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwogc2Vs ZWN0ICgneyJhIjogMX0nOjpqc29uYilbTlVMTF07CiAganNvbmIgCiAtLS0tLS0tCkBAIC00OTgx LDYgKzUwMDUsMTIgQEAgc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbJ2EnXTsKICAK ICgxIHJvdykKIAorc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYikuYTsKKyBhIAorLS0t CisgCisoMSByb3cpCisKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzBdOwogIGpz b25iIAogLS0tLS0tLQpAQCAtNDk5Myw2ICs1MDIzLDEyIEBAIHNlbGVjdCAoJ1sxLCAiMiIsIG51 bGxdJzo6anNvbmIpWycxJ107CiAgIjIiCiAoMSByb3cpCiAKK3NlbGVjdCAoJ1sxLCAiMiIsIG51 bGxdJzo6anNvbmIpLiIxIjsKKyAxIAorLS0tCisgCisoMSByb3cpCisKIHNlbGVjdCAoJ1sxLCAi MiIsIG51bGxdJzo6anNvbmIpWzEuMF07CiBFUlJPUjogIHN1YnNjcmlwdCB0eXBlIG51bWVyaWMg aXMgbm90IHN1cHBvcnRlZAogTElORSAxOiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25i KVsxLjBdOwpAQCAtNTAyMiw2ICs1MDU4LDEyIEBAIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6 anNvbmIpWzFdWydhJ107CiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6 anNvbmIpWzFdLmE7CisgYSAKKy0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgKCdbMSwgIjIiLCBu dWxsXSc6Ompzb25iKVsxXVswXTsKICBqc29uYiAKIC0tLS0tLS0KQEAgLTUwMzQsNzMgKzUwNzYs MTM5IEBAIHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29u YilbJ2InXTsKICAiYyIKICgxIHJvdykKIAorc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJk IjogWzEsIDIsIDNdfSc6Ompzb25iKS5iOworICBiICAKKy0tLS0tCisgImMiCisoMSByb3cpCisK IHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2Qn XTsKICAgIGpzb25iICAgCiAtLS0tLS0tLS0tLQogIFsxLCAyLCAzXQogKDEgcm93KQogCitzZWxl Y3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmQ7CisgICAg IGQgICAgIAorLS0tLS0tLS0tLS0KKyBbMSwgMiwgM10KKygxIHJvdykKKwogc2VsZWN0ICgneyJh IjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnZCddWzFdOwogIGpzb25i IAogLS0tLS0tLQogIDIKICgxIHJvdykKIAorc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJk IjogWzEsIDIsIDNdfSc6Ompzb25iKS5kWzFdOworIGQgCistLS0KKyAyCisoMSByb3cpCisKIHNl bGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2QnXVsn YSddOwogIGpzb25iIAogLS0tLS0tLQogIAogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxLCAi YiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmRbJ2EnXTsKK0VSUk9SOiAganNvbmIg c2ltcGxpZmllZCBhY2Nlc3NvciBzdXBwb3J0cyBzdWJzY3JpcHRpbmcgaW4gdHlwZTogSU5UNCwg Z290IHR5cGU6IHVua25vd24KK0xJTkUgMTogc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJk IjogWzEsIDIsIDNdfSc6Ompzb25iKS5kWydhJ107CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitzZWxlY3QgKCd7ImEiOiAx LCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmQuYTsKKyBhIAorLS0tCisgCiso MSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJi IiwgImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEnXTsKICAgICAganNvbmIgICAgIAogLS0t LS0tLS0tLS0tLS0tCiAgeyJhMiI6ICJhYWEifQogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiB7 ImExIjogeyJhMiI6ICJhYWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIpLmEu YTE7CisgICAgICBhMSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLQorIHsiYTIiOiAiYWFhIn0KKygx IHJvdykKKwogc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIi LCAiYyI6ICJjY2MifSc6Ompzb25iKVsnYSddWydhMSddWydhMiddOwogIGpzb25iIAogLS0tLS0t LQogICJhYWEiCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9 fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMS5hMjsKKyAgYTIgICAKKy0t LS0tLS0KKyAiYWFhIgorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJhMiI6ICJh YWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIpWydhJ11bJ2ExJ11bJ2EyJ11b J2EzJ107CiAganNvbmIgCiAtLS0tLS0tCiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IHsi YTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5h MS5hMi5hMzsKKyBhMyAKKy0tLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogWyJhMSIs IHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAiYmIifSc6Ompzb25iKVsnYSdd WzFdWydiMSddOwogICAgICAgICAganNvbmIgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgWyJhYWEiLCAiYmJiIiwgImNjYyJdCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IFsi YTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYiku YVsxXS5iMTsKKyAgICAgICAgICBiMSAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFsiYWFhIiwgImJiYiIsICJjY2MiXQorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiBbImEx IiwgeyJiMSI6IFsiYWFhIiwgImJiYiIsICJjY2MiXX1dLCAiYiI6ICJiYiJ9Jzo6anNvbmIpWydh J11bMV1bJ2IxJ11bMl07CiAganNvbmIgCiAtLS0tLS0tCiAgImNjYyIKICgxIHJvdykKIAorc2Vs ZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAi YmIifSc6Ompzb25iKS5hWzFdLmIxWzJdOworICBiMSAgIAorLS0tLS0tLQorICJjY2MiCisoMSBy b3cpCisKIC0tIHNsaWNlcyBhcmUgbm90IHN1cHBvcnRlZAogc2VsZWN0ICgneyJhIjogMX0nOjpq c29uYilbJ2EnOidiJ107Ci1FUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0 IHNsaWNlcworRVJST1I6ICBqc29uYiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN1cHBvcnRzIHN1YnNj cmlwdGluZyBpbiB0eXBlOiBJTlQ0LCBnb3QgdHlwZTogdW5rbm93bgogTElORSAxOiBzZWxlY3Qg KCd7ImEiOiAxfSc6Ompzb25iKVsnYSc6J2InXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMToyXTsKLUVSUk9SOiAganNvbmIgc3Vic2Ny aXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzCi1MSU5FIDE6IHNlbGVjdCAoJ1sxLCAiMiIsIG51 bGxdJzo6anNvbmIpWzE6Ml07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgorICAgIGpzb25iICAgIAorLS0tLS0tLS0tLS0tLQorIFsiMiIsIG51bGxdCisoMSBy b3cpCisKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzoyXTsKIEVSUk9SOiAganNv bmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzCiBMSU5FIDE6IHNlbGVjdCAoJ1sx LCAiMiIsIG51bGxdJzo6anNvbmIpWzoyXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzE6XTsKLUVS Uk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzCi1MSU5FIDE6IHNl bGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzE6XTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgorICAgIGpzb25iICAgIAorLS0tLS0tLS0tLS0tLQorIFsi MiIsIG51bGxdCisoMSByb3cpCisKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzpd OwotRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKKyAgICAg anNvbmIgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBbMSwgIjIiLCBudWxsXQorKDEgcm93KQor CiBjcmVhdGUgVEVNUCBUQUJMRSB0ZXN0X2pzb25iX3N1YnNjcmlwdCAoCiAgICAgICAgaWQgaW50 LAogICAgICAgIHRlc3RfanNvbiBqc29uYgpAQCAtNTc4MSwzICs1ODg5LDExNiBAQCBzZWxlY3Qg JzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpq c29uYjo6aW50ODsKICAxMjM0NQogKDEgcm93KQogCistLSBkb3Qgbm90YXRpb24KK0NSRUFURSBU QUJMRSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiBBUworU0VMRUNUICd7ImEiOiBbMSwgMiwgeyJi IjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6 In19XSwgImIiOiBbMywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6ICJaWloi fX1dfSc6Ompzb25iIGpiOworU0VMRUNUIChqYikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLCAyLCB7ImIiOiAi YyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1d CisoMSByb3cpCisKK1NFTEVDVCAoamIpLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK KyAgICAgICAgICAgICAgICAgICAgICAgICBiICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzMsIDQs IHsiYiI6ICJnIiwgIngiOiB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn19XQorKDEgcm93KQorCitT RUxFQ1QgKGpiKS5jIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgYyAKKy0tLQorIAor KDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK KyAgICAgYiAgICAgIAorLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiXQorKDEgcm93KQorCitTRUxF Q1QgKGpiKS5hWzJdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgYiAgCistLS0t LQorICJjIgorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hWzI6M10uYiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworICAgICBiICAgICAgCistLS0tLS0tLS0tLS0KKyBbImMiLCAiZCJdCiso MSByb3cpCisKK1NFTEVDVCAoamIpLmFbMjpdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKKyAgICAgYiAgICAgIAorLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiXQorKDEgcm93KQorCitT RUxFQ1QgKGpiKS5hWzoyXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgIGIgIAor LS0tLS0KKyAiYyIKKygxIHJvdykKKworU0VMRUNUIChqYikuYVs6XS5iIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247CisgICAgIGIgICAgICAKKy0tLS0tLS0tLS0tLQorIFsiYyIsICJkIl0K KygxIHJvdykKKworU0VMRUNUIChqYikuYS54LnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKKyAgIHkgICAKKy0tLS0tLS0KKyAieXl5IgorKDEgcm93KQorCitTRUxFQ1QgKChqYikuYilb Ol0ueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICB4ICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7InkiOiAiWVlZIiwgInoiOiAi WlpaIn0KKygxIHJvdykKKworU0VMRUNUIChqYikuYi54LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKKyAgIHogICAKKy0tLS0tLS0KKyAiWlpaIgorKDEgcm93KQorCitTRUxFQ1QgKGpi KS5hLmIuYyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworIGMgCistLS0KKyAKKygxIHJv dykKKworU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitFUlJP UjogIHR5cGUganNvbmIgaXMgbm90IGNvbXBvc2l0ZQorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMg T0ZGKSBTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitFUlJPUjog IHR5cGUganNvbmIgaXMgbm90IGNvbXBvc2l0ZQorU0VMRUNUIChqYikuKiBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworRVJST1I6ICB0eXBlIGpzb25iIGlzIG5vdCBjb21wb3NpdGUKK0VY UExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUICh0LmpiKS5hIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdAorICAgT3V0cHV0 OiBqYi5hCisoMiByb3dzKQorCitTRUxFQ1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbiB0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLCAyLCB7 ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6 enoifX1dCisoMSByb3cpCisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChq YikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0 aW9uCisgICBPdXRwdXQ6IGpiLmFbMV0KKygyIHJvd3MpCisKK1NFTEVDVCAoamIpLmFbMV0gRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyBhIAorLS0tCisgMgorKDEgcm93KQorCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9qc29uYi5zcWwKaW5kZXggNTQ0YmI2MTBlMmQuLjM3ZDQwZTc2NjEwIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvanNvbmIuc3FsCkBAIC0xMjg2LDMwICsxMjg2LDQ3IEBAIHNlbGVjdCBqc29uYl9pbnNlcnQo J3siYSI6IHsiYiI6ICJ2YWx1ZSJ9fScsICd7YSwgYn0nLCAnIm5ld192YWx1ZSInLCB0cnVlKTsK IAogLS0ganNvbmIgc3Vic2NyaXB0CiBzZWxlY3QgKCcxMjMnOjpqc29uYilbJ2EnXTsKK3NlbGVj dCAoJzEyMyc6Ompzb25iKS5hOwogc2VsZWN0ICgnMTIzJzo6anNvbmIpWzBdOwogc2VsZWN0ICgn MTIzJzo6anNvbmIpW05VTExdOworc2VsZWN0ICgnMTIzJzo6anNvbmIpLk5VTEw7CiBzZWxlY3Qg KCd7ImEiOiAxfSc6Ompzb25iKVsnYSddOworc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYikuYTsK IHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWzBdOwogc2VsZWN0ICgneyJhIjogMX0nOjpqc29u YilbJ25vdF9leGlzdCddOworc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYikuIm5vdF9leGlzdCI7 CiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVtOVUxMXTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51 bGxdJzo6anNvbmIpWydhJ107CitzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKS5hOwog c2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMF07CiBzZWxlY3QgKCdbMSwgIjIiLCBu dWxsXSc6Ompzb25iKVsnMSddOworc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYikuIjEi Owogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMS4wXTsKIHNlbGVjdCAoJ1sxLCAi MiIsIG51bGxdJzo6anNvbmIpWzJdOwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilb M107CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVstMl07CiBzZWxlY3QgKCdbMSwg IjIiLCBudWxsXSc6Ompzb25iKVsxXVsnYSddOworc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpq c29uYilbMV0uYTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzFdWzBdOwogc2Vs ZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnYiddOwor c2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5iOwog c2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnZCdd Oworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5k Owogc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsn ZCddWzFdOworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompz b25iKS5kWzFdOwogc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6 Ompzb25iKVsnZCddWydhJ107CitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwg MiwgM119Jzo6anNvbmIpLmRbJ2EnXTsKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6 IFsxLCAyLCAzXX0nOjpqc29uYikuZC5hOwogc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAi YWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKVsnYSddWydhMSddOworc2Vs ZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2Mi fSc6Ompzb25iKS5hLmExOwogc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAi YiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKVsnYSddWydhMSddWydhMiddOworc2VsZWN0 ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6 Ompzb25iKS5hLmExLmEyOwogc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAi YiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKVsnYSddWydhMSddWydhMiddWydhMyddOwor c2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJj Y2MifSc6Ompzb25iKS5hLmExLmEyLmEzOwogc2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBb ImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAiYmIifSc6Ompzb25iKVsnYSddWzFdWydiMSdd Oworc2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwg ImIiOiAiYmIifSc6Ompzb25iKS5hWzFdLmIxOwogc2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEi OiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAiYmIifSc6Ompzb25iKVsnYSddWzFdWydi MSddWzJdOworc2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2Nj Il19XSwgImIiOiAiYmIifSc6Ompzb25iKS5hWzFdLmIxWzJdOwogCiAtLSBzbGljZXMgYXJlIG5v dCBzdXBwb3J0ZWQKIHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydhJzonYiddOwpAQCAtMTU3 MiwzICsxNTg5LDI5IEBAIHNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjpmbG9hdDg7CiBzZWxlY3QgJzEyMzQ1LjAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6aW50MjsK IHNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwNSc6Ompzb25iOjppbnQ0Owogc2VsZWN0ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNvbmI6OmludDg7CisKKy0tIGRvdCBub3RhdGlv bgorQ1JFQVRFIFRBQkxFIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIEFTCitTRUxFQ1QgJ3siYSI6 IFsxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXki LCAieiI6ICJ6enoifX1dLCAiYiI6IFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIs ICJ6IjogIlpaWiJ9fV19Jzo6anNvbmIgamI7CisKK1NFTEVDVCAoamIpLmEgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKK1NFTEVDVCAoamIpLmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVD VCAoamIpLmEuYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYVsy XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzI6M10uYiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYVsyOl0uYiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYVs6Ml0uYiBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYVs6XS5iIEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb247CitTRUxFQ1QgKGpiKS5hLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworU0VMRUNUICgoamIpLmIpWzpdLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0Owor U0VMRUNUIChqYikuYi54LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAo amIpLmEuYi5jIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hLiog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMg T0ZGKSBTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1Qg KGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitFWFBMQUlOIChWRVJCT1NFLCBD T1NUUyBPRkYpIFNFTEVDVCAodC5qYikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7 CitTRUxFQ1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworRVhQTEFJ TiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --0000000000003fda25062f219b57 Content-Type: application/octet-stream; name="v8-0003-Export-jsonPathFromParseResult.patch" Content-Disposition: attachment; filename="v8-0003-Export-jsonPathFromParseResult.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7ninypk2 RnJvbSAyZDFiMjkxNDZlZTZiNGNhYTIxZGZlZjE0NzViZjEzM2I2MzIyMTA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAyMzoxNTo1NSArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djggMy83XSBFeHBvcnQganNvblBhdGhGcm9tUGFyc2VSZXN1bHQoKQoKLS0tCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvanNvbnBhdGguYyB8IDE5ICsrKysrKysrKysrKysrKy0tLS0KIHNyYy9pbmNs dWRlL3V0aWxzL2pzb25wYXRoLmggICAgIHwgIDQgKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxOSBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9qc29ucGF0aC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoLmMKaW5k ZXggNzYyZjdlOGEwOWQuLjE1MzY3OTdjZjIzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvanNvbnBhdGguYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGguYwpA QCAtMTY2LDE1ICsxNjYsMTMgQEAganNvbnBhdGhfc2VuZChQR19GVU5DVElPTl9BUkdTKQogICog Q29udmVydHMgQy1zdHJpbmcgdG8gYSBqc29ucGF0aCB2YWx1ZS4KICAqCiAgKiBVc2VzIGpzb25w YXRoIHBhcnNlciB0byB0dXJuIHN0cmluZyBpbnRvIGFuIEFTVCwgdGhlbgotICogZmxhdHRlbkpz b25QYXRoUGFyc2VJdGVtKCkgZG9lcyBzZWNvbmQgcGFzcyB0dXJuaW5nIEFTVCBpbnRvIGJpbmFy eQorICoganNvblBhdGhGcm9tUGFyc2VSZXN1bHQoKSBkb2VzIHNlY29uZCBwYXNzIHR1cm5pbmcg QVNUIGludG8gYmluYXJ5CiAgKiByZXByZXNlbnRhdGlvbiBvZiBqc29ucGF0aC4KICAqLwogc3Rh dGljIERhdHVtCiBqc29uUGF0aEZyb21Dc3RyaW5nKGNoYXIgKmluLCBpbnQgbGVuLCBzdHJ1Y3Qg Tm9kZSAqZXNjb250ZXh0KQogewogCUpzb25QYXRoUGFyc2VSZXN1bHQgKmpzb25wYXRoID0gcGFy c2Vqc29ucGF0aChpbiwgbGVuLCBlc2NvbnRleHQpOwotCUpzb25QYXRoICAgKnJlczsKLQlTdHJp bmdJbmZvRGF0YSBidWY7CiAKIAlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQog CQlyZXR1cm4gKERhdHVtKSAwOwpAQCAtMTg1LDggKzE4MywyMSBAQCBqc29uUGF0aEZyb21Dc3Ry aW5nKGNoYXIgKmluLCBpbnQgbGVuLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogCQkJCSBlcnJt c2coImludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBlICVzOiBcIiVzXCIiLCAianNvbnBhdGgi LAogCQkJCQkJaW4pKSk7CiAKKwlyZXR1cm4ganNvblBhdGhGcm9tUGFyc2VSZXN1bHQoanNvbnBh dGgsIDQgKiBsZW4sIGVzY29udGV4dCk7Cit9CisKKy8qCisgKiBDb252ZXJ0cyBqc29ucGF0aCBB U1QgaW50byBqc29ucGF0aCB2YWx1ZSBpbiBiaW5hcnkuCisgKi8KK0RhdHVtCitqc29uUGF0aEZy b21QYXJzZVJlc3VsdChKc29uUGF0aFBhcnNlUmVzdWx0ICpqc29ucGF0aCwgaW50IGVzdGltYXRl ZF9sZW4sCisJCQkJCQlzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQoreworCUpzb25QYXRoICAgKnJl czsKKwlTdHJpbmdJbmZvRGF0YSBidWY7CisKIAlpbml0U3RyaW5nSW5mbygmYnVmKTsKLQllbmxh cmdlU3RyaW5nSW5mbygmYnVmLCA0ICogbGVuIC8qIGVzdGltYXRpb24gKi8gKTsKKwllbmxhcmdl U3RyaW5nSW5mbygmYnVmLCBlc3RpbWF0ZWRfbGVuKTsKIAogCWFwcGVuZFN0cmluZ0luZm9TcGFj ZXMoJmJ1ZiwgSlNPTlBBVEhfSERSU1opOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGls cy9qc29ucGF0aC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaAppbmRleCAyM2E3NmQy MzNlOS4uZTA1OTQxNjIzZTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2pzb25wYXRo LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaApAQCAtMjgxLDYgKzI4MSwxMCBA QCBleHRlcm4gSnNvblBhdGhQYXJzZVJlc3VsdCAqcGFyc2Vqc29ucGF0aChjb25zdCBjaGFyICpz dHIsIGludCBsZW4sCiBleHRlcm4gYm9vbCBqc3BDb252ZXJ0UmVnZXhGbGFncyh1aW50MzIgeGZs YWdzLCBpbnQgKnJlc3VsdCwKIAkJCQkJCQkJIHN0cnVjdCBOb2RlICplc2NvbnRleHQpOwogCitl eHRlcm4gRGF0dW0ganNvblBhdGhGcm9tUGFyc2VSZXN1bHQoSnNvblBhdGhQYXJzZVJlc3VsdCAq anNvbnBhdGgsCisJCQkJCQkJCQkgaW50IGVzdGltYXRlZF9sZW4sCisJCQkJCQkJCQkgc3RydWN0 IE5vZGUgKmVzY29udGV4dCk7CisKIC8qCiAgKiBTdHJ1Y3QgZm9yIGRldGFpbHMgYWJvdXQgZXh0 ZXJuYWwgdmFyaWFibGVzIHBhc3NlZCBpbnRvIGpzb25wYXRoIGV4ZWN1dG9yCiAgKi8KLS0gCjIu MzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --0000000000003fda25062f219b57 Content-Type: application/octet-stream; name="v8-0007-Allow-wild-card-member-access-for-jsonb.patch" Content-Disposition: attachment; filename="v8-0007-Allow-wild-card-member-access-for-jsonb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7ninypp6 RnJvbSA0N2M0OGMxMjIwNGUzZWE0ZGMxNzIwMDRkNTRhOTRlNWM3NzNiOWRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAyMzoxNToyNiArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djggNy83XSBBbGxvdyB3aWxkIGNhcmQgbWVtYmVyIGFjY2VzcyBmb3IganNvbmIKCi0tLQogc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYyAgICAgfCAgMzQgKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYyAgIHwgIDYwICsrKysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1 dGlscy5jICAgfCAgIDYgKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggICAgIHwg ICAzICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0IHwgMTg4ICsrKysrKysr KysrKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbCAgICAg IHwgIDMwICsrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDI4OCBpbnNlcnRpb25zKCspLCAzNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA3ZDk5YzkzNTVjNi4uMDQxOTY4YzM1ZGIgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQpAQCAtMTg5NjgsNiArMTg5NjgsNyBAQCBjaGVja19mdW5jX25hbWUoTGlzdCAqbmFt ZXMsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogc3RhdGljIExpc3QgKgogY2hlY2tfaW5kaXJl Y3Rpb24oTGlzdCAqaW5kaXJlY3Rpb24sIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogeworI2lm IDAKIAlMaXN0Q2VsbCAgICpsOwogCiAJZm9yZWFjaChsLCBpbmRpcmVjdGlvbikKQEAgLTE4OTc4 LDYgKzE4OTc5LDcgQEAgY2hlY2tfaW5kaXJlY3Rpb24oTGlzdCAqaW5kaXJlY3Rpb24sIGNvcmVf eXlzY2FuX3QgeXlzY2FubmVyKQogCQkJCXBhcnNlcl95eWVycm9yKCJpbXByb3BlciB1c2Ugb2Yg XCIqXCIiKTsKIAkJfQogCX0KKyNlbmRpZgogCXJldHVybiBpbmRpcmVjdGlvbjsKIH0KIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMKaW5kZXggOGVhNTExNzYxOTYuLjUxMmFjNWI0OTcwIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMKQEAgLTc0LDcgKzc0LDYgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9y bUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZik7CiBzdGF0aWMg Tm9kZSAqdHJhbnNmb3JtV2hvbGVSb3dSZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkg IFBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtLAogCQkJCQkJCQkgIGludCBzdWJsZXZlbHNfdXAs IGludCBsb2NhdGlvbik7Ci1zdGF0aWMgTm9kZSAqdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9y bVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRjKTsKIHN0YXRpYyBOb2Rl ICp0cmFuc2Zvcm1Db2xsYXRlQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sbGF0ZUNsYXVz ZSAqYyk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbk9iamVjdENvbnN0cnVjdG9yKFBhcnNl U3RhdGUgKnBzdGF0ZSwKQEAgLTE1OCw3ICsxNTcsNyBAQCB0cmFuc2Zvcm1FeHByUmVjdXJzZShQ YXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQlicmVhazsKIAogCQljYXNlIFRfQV9J bmRpcmVjdGlvbjoKLQkJCXJlc3VsdCA9IHRyYW5zZm9ybUluZGlyZWN0aW9uKHBzdGF0ZSwgKEFf SW5kaXJlY3Rpb24gKikgZXhwcik7CisJCQlyZXN1bHQgPSB0cmFuc2Zvcm1JbmRpcmVjdGlvbihw c3RhdGUsIChBX0luZGlyZWN0aW9uICopIGV4cHIsIE5VTEwpOwogCQkJYnJlYWs7CiAKIAkJY2Fz ZSBUX0FfQXJyYXlFeHByOgpAQCAtNDMyLDggKzQzMSw5IEBAIHVua25vd25fYXR0cmlidXRlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqcmVscmVmLCBjb25zdCBjaGFyICphdHRuYW1lLAogCX0K IH0KIAotc3RhdGljIE5vZGUgKgotdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCitOb2RlICoKK3RyYW5zZm9ybUluZGlyZWN0aW9uKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kLAorCQkJCQkgYm9vbCAqdHJhaWxp bmdfc3Rhcl9leHBhbnNpb24pCiB7CiAJTm9kZQkgICAqbGFzdF9zcmYgPSBwc3RhdGUtPnBfbGFz dF9zcmY7CiAJTm9kZQkgICAqcmVzdWx0ID0gdHJhbnNmb3JtRXhwclJlY3Vyc2UocHN0YXRlLCBp bmQtPmFyZyk7CkBAIC00NTQsMTIgKzQ1NCw3IEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCQlpZiAoSXNBKG4sIEFfSW5kaWNl cykpCiAJCQlzdWJzY3JpcHRzID0gbGFwcGVuZChzdWJzY3JpcHRzLCBuKTsKIAkJZWxzZSBpZiAo SXNBKG4sIEFfU3RhcikpCi0JCXsKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJIGVycm1zZygicm93IGV4cGFuc2lv biB2aWEgXCIqXCIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIiksCi0JCQkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKLQkJfQorCQkJc3Vic2NyaXB0cyA9IGxhcHBlbmQo c3Vic2NyaXB0cywgbik7CiAJCWVsc2UKIAkJewogCQkJQXNzZXJ0KElzQShuLCBTdHJpbmcpKTsK QEAgLTQ5MSw3ICs0ODYsMjEgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAKIAkJCW4gPSBsaW5pdGlhbChzdWJzY3JpcHRzKTsK IAotCQkJaWYgKCFJc0EobiwgU3RyaW5nKSkKKwkJCWlmIChJc0EobiwgQV9TdGFyKSkKKwkJCXsK KwkJCQkvKiBTdWNjZXNzLCBpZiB0cmFpbGluZyBzdGFyIGV4cGFuc2lvbiBpcyBhbGxvd2VkICov CisJCQkJaWYgKHRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uICYmIGxpc3RfbGVuZ3RoKHN1YnNjcmlw dHMpID09IDEpCisJCQkJeworCQkJCQkqdHJhaWxpbmdfc3Rhcl9leHBhbnNpb24gPSB0cnVlOwor CQkJCQlyZXR1cm4gcmVzdWx0OworCQkJCX0KKworCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJy b3cgZXhwYW5zaW9uIHZpYSBcIipcIiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUiKSwKKwkJCQkJCSBw YXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKwkJCX0KKwkJCWVsc2UgaWYg KCFJc0EobiwgU3RyaW5nKSkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJS Q09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCiAJCQkJCQkgZXJybXNnKCJjYW5ub3Qgc3Vic2NyaXB0 IHR5cGUgJXMgYmVjYXVzZSBpdCBkb2VzIG5vdCBzdXBwb3J0IHN1YnNjcmlwdGluZyIsCkBAIC01 MTcsNiArNTI2LDkgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBB X0luZGlyZWN0aW9uICppbmQpCiAJCXJlc3VsdCA9IG5ld3Jlc3VsdDsKIAl9CiAKKwlpZiAodHJh aWxpbmdfc3Rhcl9leHBhbnNpb24pCisJCSp0cmFpbGluZ19zdGFyX2V4cGFuc2lvbiA9IGZhbHNl OworCiAJcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3RhcmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4 IDNlZjU4OTdmMmViLi42NGUwZjAxYzBmMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3RhcmdldC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpA QCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtQXNzaWdubWVudFN1YnNjcmlw dHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogc3RhdGljIExpc3QgKkV4cGFuZENvbHVtblJlZlN0YXIo UGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYsCiAJCQkJCQkJCSBib29sIG1ha2Vf dGFyZ2V0X2VudHJ5KTsKIHN0YXRpYyBMaXN0ICpFeHBhbmRBbGxUYWJsZXMoUGFyc2VTdGF0ZSAq cHN0YXRlLCBpbnQgbG9jYXRpb24pOwotc3RhdGljIExpc3QgKkV4cGFuZEluZGlyZWN0aW9uU3Rh cihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCwKK3N0YXRpYyBOb2RlICpF eHBhbmRJbmRpcmVjdGlvblN0YXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICpp bmQsCiAJCQkJCQkJCSAgIGJvb2wgbWFrZV90YXJnZXRfZW50cnksIFBhcnNlRXhwcktpbmQgZXhw cktpbmQpOwogc3RhdGljIExpc3QgKkV4cGFuZFNpbmdsZVRhYmxlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW0sCiAJCQkJCQkJICAgaW50IHN1YmxldmVsc191 cCwgaW50IGxvY2F0aW9uLApAQCAtMTM0LDYgKzEzNCw3IEBAIHRyYW5zZm9ybVRhcmdldExpc3Qo UGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICp0YXJnZXRsaXN0LAogCWZvcmVhY2gob190YXJnZXQs IHRhcmdldGxpc3QpCiAJewogCQlSZXNUYXJnZXQgICpyZXMgPSAoUmVzVGFyZ2V0ICopIGxmaXJz dChvX3RhcmdldCk7CisJCU5vZGUJICAgKnRyYW5zZm9ybWVkID0gTlVMTDsKIAogCQkvKgogCQkg KiBDaGVjayBmb3IgInNvbWV0aGluZy4qIi4gIERlcGVuZGluZyBvbiB0aGUgY29tcGxleGl0eSBv ZiB0aGUKQEAgLTE2MiwxMyArMTYzLDE5IEBAIHRyYW5zZm9ybVRhcmdldExpc3QoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBMaXN0ICp0YXJnZXRsaXN0LAogCiAJCQkJaWYgKElzQShsbGFzdChpbmQtPmlu ZGlyZWN0aW9uKSwgQV9TdGFyKSkKIAkJCQl7Ci0JCQkJCS8qIEl0IGlzIHNvbWV0aGluZy4qLCBl eHBhbmQgaW50byBtdWx0aXBsZSBpdGVtcyAqLwotCQkJCQlwX3RhcmdldCA9IGxpc3RfY29uY2F0 KHBfdGFyZ2V0LAotCQkJCQkJCQkJCSAgIEV4cGFuZEluZGlyZWN0aW9uU3Rhcihwc3RhdGUsCi0J CQkJCQkJCQkJCQkJCQkJIGluZCwKLQkJCQkJCQkJCQkJCQkJCQkgdHJ1ZSwKLQkJCQkJCQkJCQkJ CQkJCQkgZXhwcktpbmQpKTsKLQkJCQkJY29udGludWU7CisJCQkJCU5vZGUJICAgKmNvbHVtbnMg PSBFeHBhbmRJbmRpcmVjdGlvblN0YXIocHN0YXRlLAorCQkJCQkJCQkJCQkJCQkJCWluZCwKKwkJ CQkJCQkJCQkJCQkJCQl0cnVlLAorCQkJCQkJCQkJCQkJCQkJCWV4cHJLaW5kKTsKKworCQkJCQlp ZiAoSXNBKGNvbHVtbnMsIExpc3QpKQorCQkJCQl7CisJCQkJCQkvKiBJdCBpcyBzb21ldGhpbmcu KiwgZXhwYW5kIGludG8gbXVsdGlwbGUgaXRlbXMgKi8KKwkJCQkJCXBfdGFyZ2V0ID0gbGlzdF9j b25jYXQocF90YXJnZXQsIChMaXN0ICopIGNvbHVtbnMpOworCQkJCQkJY29udGludWU7CisJCQkJ CX0KKworCQkJCQl0cmFuc2Zvcm1lZCA9IChOb2RlICopIGNvbHVtbnM7CiAJCQkJfQogCQkJfQog CQl9CkBAIC0xODAsNyArMTg3LDcgQEAgdHJhbnNmb3JtVGFyZ2V0TGlzdChQYXJzZVN0YXRlICpw c3RhdGUsIExpc3QgKnRhcmdldGxpc3QsCiAJCXBfdGFyZ2V0ID0gbGFwcGVuZChwX3RhcmdldCwK IAkJCQkJCSAgIHRyYW5zZm9ybVRhcmdldEVudHJ5KHBzdGF0ZSwKIAkJCQkJCQkJCQkJCXJlcy0+ dmFsLAotCQkJCQkJCQkJCQkJTlVMTCwKKwkJCQkJCQkJCQkJCXRyYW5zZm9ybWVkLAogCQkJCQkJ CQkJCQkJZXhwcktpbmQsCiAJCQkJCQkJCQkJCQlyZXMtPm5hbWUsCiAJCQkJCQkJCQkJCQlmYWxz ZSkpOwpAQCAtMjUxLDEwICsyNTgsMTUgQEAgdHJhbnNmb3JtRXhwcmVzc2lvbkxpc3QoUGFyc2VT dGF0ZSAqcHN0YXRlLCBMaXN0ICpleHBybGlzdCwKIAogCQkJaWYgKElzQShsbGFzdChpbmQtPmlu ZGlyZWN0aW9uKSwgQV9TdGFyKSkKIAkJCXsKLQkJCQkvKiBJdCBpcyBzb21ldGhpbmcuKiwgZXhw YW5kIGludG8gbXVsdGlwbGUgaXRlbXMgKi8KLQkJCQlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1 bHQsCi0JCQkJCQkJCQkgRXhwYW5kSW5kaXJlY3Rpb25TdGFyKHBzdGF0ZSwgaW5kLAotCQkJCQkJ CQkJCQkJCQkgICBmYWxzZSwgZXhwcktpbmQpKTsKKwkJCQlOb2RlCSAgICpjb2xzID0gRXhwYW5k SW5kaXJlY3Rpb25TdGFyKHBzdGF0ZSwgaW5kLAorCQkJCQkJCQkJCQkJCQkgZmFsc2UsIGV4cHJL aW5kKTsKKworCQkJCWlmICghY29scyB8fCBJc0EoY29scywgTGlzdCkpCisJCQkJCS8qIEl0IGlz IHNvbWV0aGluZy4qLCBleHBhbmQgaW50byBtdWx0aXBsZSBpdGVtcyAqLworCQkJCQlyZXN1bHQg PSBsaXN0X2NvbmNhdChyZXN1bHQsIChMaXN0ICopIGNvbHMpOworCQkJCWVsc2UKKwkJCQkJcmVz dWx0ID0gbGFwcGVuZChyZXN1bHQsIGNvbHMpOworCiAJCQkJY29udGludWU7CiAJCQl9CiAJCX0K QEAgLTEzNDUsMjIgKzEzNTcsMzAgQEAgRXhwYW5kQWxsVGFibGVzKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgaW50IGxvY2F0aW9uKQogICogRm9yIHJvYnVzdG5lc3MsIHdlIHVzZSBhIHNlcGFyYXRlICJt YWtlX3RhcmdldF9lbnRyeSIgZmxhZyB0byBjb250cm9sCiAgKiB0aGlzIHJhdGhlciB0aGFuIHJl bHlpbmcgb24gZXhwcktpbmQuCiAgKi8KLXN0YXRpYyBMaXN0ICoKK3N0YXRpYyBOb2RlICoKIEV4 cGFuZEluZGlyZWN0aW9uU3RhcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmlu ZCwKIAkJCQkJICBib29sIG1ha2VfdGFyZ2V0X2VudHJ5LCBQYXJzZUV4cHJLaW5kIGV4cHJLaW5k KQogewogCU5vZGUJICAgKmV4cHI7CisJUGFyc2VFeHByS2luZCBzdl9leHByX2tpbmQ7CisJYm9v bAkJdHJhaWxpbmdfc3Rhcl9leHBhbnNpb24gPSBmYWxzZTsKKworCS8qIFNhdmUgYW5kIHJlc3Rv cmUgaWRlbnRpdHkgb2YgZXhwcmVzc2lvbiB0eXBlIHdlJ3JlIHBhcnNpbmcgKi8KKwlBc3NlcnQo ZXhwcktpbmQgIT0gRVhQUl9LSU5EX05PTkUpOworCXN2X2V4cHJfa2luZCA9IHBzdGF0ZS0+cF9l eHByX2tpbmQ7CisJcHN0YXRlLT5wX2V4cHJfa2luZCA9IGV4cHJLaW5kOwogCiAJLyogU3RyaXAg b2ZmIHRoZSAnKicgdG8gY3JlYXRlIGEgcmVmZXJlbmNlIHRvIHRoZSByb3d0eXBlIG9iamVjdCAq LwotCWluZCA9IGNvcHlPYmplY3QoaW5kKTsKLQlpbmQtPmluZGlyZWN0aW9uID0gbGlzdF90cnVu Y2F0ZShpbmQtPmluZGlyZWN0aW9uLAotCQkJCQkJCQkJIGxpc3RfbGVuZ3RoKGluZC0+aW5kaXJl Y3Rpb24pIC0gMSk7CisJZXhwciA9IHRyYW5zZm9ybUluZGlyZWN0aW9uKHBzdGF0ZSwgaW5kLCAm dHJhaWxpbmdfc3Rhcl9leHBhbnNpb24pOworCisJcHN0YXRlLT5wX2V4cHJfa2luZCA9IHN2X2V4 cHJfa2luZDsKIAotCS8qIEFuZCB0cmFuc2Zvcm0gdGhhdCAqLwotCWV4cHIgPSB0cmFuc2Zvcm1F eHByKHBzdGF0ZSwgKE5vZGUgKikgaW5kLCBleHByS2luZCk7CisJLyogJyonIHdhcyBjb25zdW1l ZCBieSBnZW5lcmljIHR5cGUgc3Vic2NyaXB0aW5nICovCisJaWYgKCF0cmFpbGluZ19zdGFyX2V4 cGFuc2lvbikKKwkJcmV0dXJuIGV4cHI7CiAKIAkvKiBFeHBhbmQgdGhlIHJvd3R5cGUgZXhwcmVz c2lvbiBpbnRvIGluZGl2aWR1YWwgZmllbGRzICovCi0JcmV0dXJuIEV4cGFuZFJvd1JlZmVyZW5j ZShwc3RhdGUsIGV4cHIsIG1ha2VfdGFyZ2V0X2VudHJ5KTsKKwlyZXR1cm4gKE5vZGUgKikgRXhw YW5kUm93UmVmZXJlbmNlKHBzdGF0ZSwgZXhwciwgbWFrZV90YXJnZXRfZW50cnkpOwogfQogCiAv KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IGNmYWU4MTU5YTc2Li4xYmMyOTJjNWM0 NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMTI5MjYsNyArMTI5MjYsMTEgQEAg cHJpbnRTdWJzY3JpcHRzKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLCBkZXBhcnNlX2NvbnRleHQg KmNvbnRleHQpCiAJewogCQlOb2RlCSAgICp1cCA9IChOb2RlICopIGxmaXJzdCh1cGxpc3RfaXRl bSk7CiAKLQkJaWYgKElzQSh1cCwgU3RyaW5nKSkKKwkJaWYgKCF1cCkKKwkJeworCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZyhidWYsICIuKiIpOworCQl9CisJCWVsc2UgaWYgKElzQSh1cCwgU3Ry aW5nKSkKIAkJewogCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnLicpOwogCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZyhidWYsIHF1b3RlX2lkZW50aWZpZXIoc3RyVmFsKHVwKSkpOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9leHByLmgKaW5kZXggZWZiYWZmOGU3MTAuLmM5ZjZhNzcyNGMwIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9leHByLmgKQEAgLTIyLDQgKzIyLDcgQEAgZXh0ZXJuIE5vZGUgKnRyYW5zZm9y bUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4cHJL aW4KIAogZXh0ZXJuIGNvbnN0IGNoYXIgKlBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktpbmQg ZXhwcktpbmQpOwogCitleHRlcm4gTm9kZSAqdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQsCisJCQkJCQkJCSAgYm9vbCAqdHJhaWxpbmdf c3Rhcl9leHBhbnNpb24pOworCiAjZW5kaWYJCQkJCQkJLyogUEFSU0VfRVhQUl9IICovCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CmluZGV4IDBlZGQxOWJlZDljLi45MWFhMDUxMWExOCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKQEAgLTU5NzAsMTIgKzU5NzAsMTY4IEBA IFNFTEVDVCAoamIpLmEuYi5jIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiAgCiAoMSBy b3cpCiAKKy8qIHdpbGQgY2FyZCBtZW1iZXIgYWNjZXNzICovCiBTRUxFQ1QgKGpiKS5hLiogRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLUVSUk9SOiAgdHlwZSBqc29uYiBpcyBub3QgY29t cG9zaXRlCisgICAgICAgICAgICAgICAgICAgICBhICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiLCAiZiIs IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifV0KKygxIHJvdykKKworU0VMRUNUIChqYikuKiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBb WzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIs ICJ6IjogInp6eiJ9fV0sIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6Ijog IlpaWiJ9fV1dCisoMSByb3cpCisKK1NFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbiB0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBqYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbWzEsIDIsIHsiYiI6ICJj In0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0s IFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV1dCisoMSBy b3cpCisKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGpiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFtbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQi LCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6In19XSwgWzMsIDQsIHsiYiI6 ICJnIiwgIngiOiB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn19XV0KKygxIHJvdykKKworU0VMRUNU IChqYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBbWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4Ijog eyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0sIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5Ijog IllZWSIsICJ6IjogIlpaWiJ9fV1dCisoMSByb3cpCisKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworRVJST1I6ICBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5 IGZvciB0YWJsZSAidCIKK0xJTkUgMTogU0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgXgorU0VMRUNUICh0LmpiKS4qIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW1sx LCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAi eiI6ICJ6enoifX1dLCBbMywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6ICJa WloifX1dXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgIGEgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbImMiLCAiZCIsICJm IiwgeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLiou YiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworIGIgCistLS0KKyAKKygxIHJvdykKKwor U0VMRUNUIChqYikuYS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyB4IAorLS0t CisgCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEuKi55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CisgICB5ICAgCistLS0tLS0tCisgInl5eSIKKygxIHJvdykKKworU0VMRUNUIChqYiku YS4qLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICBhICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJ6enoiXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4q LnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgeCAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6ICJ6enoi fSwgeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLngg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworICAgICAgICAgICAgICAgICAgICAgICAg ICB4ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9 LCB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn1dCisoMSByb3cpCisKK1NFTEVDVCAoKGpiKS4qKS54 IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyB4IAorLS0tCisgCisoMSByb3cpCisK K1NFTEVDVCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyB4IAor LS0tCisgCisoMSByb3cpCisKK1NFTEVDVCAoKGpiKS4qKVs6XS54IEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6ICJ6enoifSwgeyJ5IjogIllZWSIsICJ6 IjogIlpaWiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6ICJ6enoifSwgeyJ5IjogIllZWSIsICJ6Ijog IlpaWiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLnguKiBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworICAgICAgICAgICAgICB4ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJ6enoiLCAiWVlZIiwgIlpaWiJdCisoMSByb3cp CisKK1NFTEVDVCAoamIpLioueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAg ICAgeSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgWyJ5eXkiLCAiWVlZIl0KKygxIHJvdykK KworU0VMRUNUIChqYikuKi54LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAg ICB6ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBbInp6eiIsICJaWloiXQorKDEgcm93KQor CitTRUxFQ1QgKGpiKS4qLioueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAg IHkgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFsieXl5IiwgIllZWSJdCisoMSByb3cpCisK K1NFTEVDVCAoamIpLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAg ICAgICAgIGpiICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFsieXl5IiwgInp6eiIsICJZWVkiLCAiWlpaIl0KKygxIHJvdykKKworU0VMRUNUIChqYikuKi4q LiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworIGpiIAorLS0tLQorIAorKDEgcm93 KQorCitTRUxFQ1QgKGpiKS5hLmIuYy4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Cisg YyAKKy0tLQorIAorKDEgcm93KQorCiBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVD VCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLUVSUk9SOiAgdHlwZSBqc29u YiBpcyBub3QgY29tcG9zaXRlCisgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBT ZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogamIu KgorKDIgcm93cykKKwogU0VMRUNUIChqYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OwotRVJST1I6ICB0eXBlIGpzb25iIGlzIG5vdCBjb21wb3NpdGUKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgW1sxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6 IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dLCBbMywgNCwgeyJiIjogImciLCAieCI6IHsieSI6 ICJZWVkiLCAieiI6ICJaWloifX1dXQorKDEgcm93KQorCiBFWFBMQUlOIChWRVJCT1NFLCBDT1NU UyBPRkYpIFNFTEVDVCAodC5qYikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CiAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC02MDAyLDMgKzYxNTgsMjkg QEAgU0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwogIDIKICgx IHJvdykKIAorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hLiogRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFNlcSBTY2FuIG9uIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorICAgT3V0 cHV0OiBqYi5hLioKKygyIHJvd3MpCisKK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICAgYSAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsiYyIsICJk IiwgImYiLCB7InkiOiAieXl5IiwgInoiOiAienp6In1dCisoMSByb3cpCisKK0VYUExBSU4gKFZF UkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYikuYS4qWzE6Ml0uKi5iIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEg U2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogamIuYS4q WzE6Ml0uKi5iCisoMiByb3dzKQorCitTRUxFQ1QgKGpiKS5hLipbMToyXS4qLmIgRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKKyBiIAorLS0tCisgCisoMSByb3cpCisKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pz b25iLnNxbAppbmRleCAzN2Q0MGU3NjYxMC4uNWI0NGU3OTE4NDkgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29u Yi5zcWwKQEAgLTE2MDcsNyArMTYwNywzMyBAQCBTRUxFQ1QgKGpiKS5hLngueSBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOwogU0VMRUNUICgoamIpLmIpWzpdLnggRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbiB0OwogU0VMRUNUIChqYikuYi54LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKIFNFTEVDVCAoamIpLmEuYi5jIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CisKKy8qIHdpbGQgY2FyZCBtZW1iZXIgYWNjZXNzICovCiBTRUxFQ1QgKGpiKS5hLiogRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0 OworU0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVD VCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAodC5qYikuKiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworU0VMRUNUIChqYikuYS4qLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKK1NFTEVDVCAoamIpLmEuKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxF Q1QgKGpiKS5hLioueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYiku YS4qLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLioueCBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuKi54IEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb24gdDsKK1NFTEVDVCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b24gdDsKK1NFTEVDVCAoKGpiKS4qKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24g dDsKK1NFTEVDVCAoamIpLioueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNU IChqYikuKi54LiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLiou eC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qLngueiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuKi4qLnkgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb247CitTRUxFQ1QgKGpiKS4qLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247CitTRUxFQ1QgKGpiKS5hLmIuYy4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiAK IEVYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYikuKiBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOwogU0VMRUNUIChqYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOwpAQCAtMTYxNSwzICsxNjQxLDcgQEAgRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBT RUxFQ1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OwogU0VMRUNUICh0 LmpiKS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKIEVYUExBSU4gKFZFUkJPU0Us IENPU1RTIE9GRikgU0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OwogU0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworRVhQTEFJ TiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hLipbMToyXS4qLmIg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuKlsxOjJdLiouYiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --0000000000003fda25062f219b57--