Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nx4D3-0002BM-4r for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Jun 2022 10:07:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nx4D0-0002Ha-Td for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Jun 2022 10:07:10 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nx4D0-0002HK-C5 for pgsql-hackers@lists.postgresql.org; Fri, 03 Jun 2022 10:07:10 +0000 Received: from mail-oi1-x22e.google.com ([2607:f8b0:4864:20::22e]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nx4Cv-0001ra-I5 for pgsql-hackers@lists.postgresql.org; Fri, 03 Jun 2022 10:07:09 +0000 Received: by mail-oi1-x22e.google.com with SMTP id y144so4702960oia.7 for ; Fri, 03 Jun 2022 03:07:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=FTcz7sI22/9d9LS6c5lWmsHOL6GFAyIQ6v0OdWEsckU=; b=Ld0p2syYzyWZc1xlOtxSUGZa/WSZWsO0KDEYC3MjaEJHPIqEDoAdq6v9CWTHJ4ygWb BRgk+3T/OJYKEKSReQBBgg+HJ0L7ooOh0tdnLYZBpO6WeMJTuezjQjpJ4E+HdLZnrWVp hEE779VD3zXc++AuD7P7G2tLkk18xUwMGHs9h28EncmCG3/JKNnYkdkV+GnrbwKKM5FJ EywfG5AWdpTmjxE5IdIH8dP6xbf72AlStfjxiHW4kpb7D2Cvs1yNINfE/v8H11EDKKGo VdGd8YJ+Jfpgqc6A57nFAbtU8dRZa4K/tdsszkyMk78xax2UyayAoC/ktegzOqxsuANq TNdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=FTcz7sI22/9d9LS6c5lWmsHOL6GFAyIQ6v0OdWEsckU=; b=VbMU2RQcyCCqQkuyMQl7cHegV0sXogAH3K25eK9RKpcBR1HxWCVcTnJ946XIBbVP6d rYCuAWBqcCv+lF9sb5rwe3Q7mU2MTEE1d3N2/RHC7TudylVu0cyXA6weBoBLqGFgEzi2 S4ok6Z3K8PoQjKN6H0uPcGTdkHU+laa5CoE23RI0DaM9h2QO5szd9papiwt3jlQG1KlK rslu/1YTOBJDvqDAi8POeFDZoRLDjVkbWt3ecIzwrhX/GJ7yM2NEEjNAdW4LPsZWXw8E JoqgsvSMLEvjugbZnN4oSg4iR9jqN6jCHWJx6zoE7ODcmdwhWvI2j10d6RSjZW80C9Dn kEdQ== X-Gm-Message-State: AOAM533/x+1XIJU58fN3XZGyXTymhFDUsi/2FWn5Inr2VrPCe2z6QvYJ OZkl0S2cYmh6uVLywbKoJVqaimSNm3JZGDA5amc= X-Google-Smtp-Source: ABdhPJx5ovo1g98EhdNlRb8My5so59uDbAZLOjmOoUANWkPEeMrgbHNmypJw253JG15yRrpLQHMTBRmjVRpYI+gQoy4= X-Received: by 2002:a05:6808:1183:b0:2d4:5eeb:1ca3 with SMTP id j3-20020a056808118300b002d45eeb1ca3mr5198592oil.8.1654250822681; Fri, 03 Jun 2022 03:07:02 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: vignesh C Date: Fri, 3 Jun 2022 15:36:51 +0530 Message-ID: Subject: Re: Skipping schema changes in publication To: "osumi.takamichi@fujitsu.com" Cc: Peter Smith , Amit Kapila , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000a8151c05e08848ab" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000a8151c05e08848ab Content-Type: text/plain; charset="UTF-8" On Thu, May 26, 2022 at 7:04 PM osumi.takamichi@fujitsu.com wrote: > > On Monday, May 23, 2022 2:13 PM vignesh C wrote: > > Attached v7 patch which fixes the buildfarm warning for an unused warning in > > release mode as in [1]. > Hi, thank you for the patches. > > > I'll share several review comments. > > For v7-0001. > > (1) I'll suggest some minor rewording. > > + > + The RESET clause will reset the publication to the > + default state which includes resetting the publication options, setting > + ALL TABLES flag to false and > + dropping all relations and schemas that are associated with the publication. > > My suggestion is > "The RESET clause will reset the publication to the > default state. It resets the publication operations, > sets ALL TABLES flag to false and drops all relations > and schemas associated with the publication." I felt the existing looks better. I would prefer to keep it that way. > (2) typo and rewording > > +/* > + * Reset the publication. > + * > + * Reset the publication options, setting ALL TABLES flag to false and drop > + * all relations and schemas that are associated with the publication. > + */ > > The "setting" in this sentence should be "set". > > How about changing like below ? > FROM: > "Reset the publication options, setting ALL TABLES flag to false and drop > all relations and schemas that are associated with the publication." > TO: > "Reset the publication operations, set ALL TABLES flag to false and drop > all relations and schemas associated with the publication." I felt the existing looks better. I would prefer to keep it that way. > (3) AlterPublicationReset > > Do we need to call CacheInvalidateRelcacheAll() or > InvalidatePublicationRels() at the end of > AlterPublicationReset() like AlterPublicationOptions() ? CacheInvalidateRelcacheAll should be called if we change all tables from true to false, else the cache will not be invalidated. Modified > > For v7-0002. > > (4) > > + if (stmt->for_all_tables) > + { > + bool isdefault = CheckPublicationDefValues(tup); > + > + if (!isdefault) > + ereport(ERROR, > + errcode(ERRCODE_INVALID_OBJECT_DEFINITION), > + errmsg("adding ALL TABLES requires the publication to have default publication options, no tables/.... > + errhint("Use ALTER PUBLICATION ... RESET to reset the publication")); > > > The errmsg string has three messages for user and is a bit long > (we have two sentences there connected by 'and'). > Can't we make it concise and split it into a couple of lines for code readability ? > > I'll suggest a change below. > FROM: > "adding ALL TABLES requires the publication to have default publication options, no tables/schemas associated and ALL TABLES flag should not be set" > TO: > "adding ALL TABLES requires the publication defined not for ALL TABLES" > "to have default publish actions without any associated tables/schemas" Added errdetail and split it > (5) typo > > > + EXCEPT TABLE > + > + > + This clause specifies a list of tables to exclude from the publication. > + It can only be used with FOR ALL TABLES. > + > + > + > + > > Kindly change > FROM: > This clause specifies a list of tables to exclude from the publication. > TO: > This clause specifies a list of tables to be excluded from the publication. > or > This clause specifies a list of tables excluded from the publication. Modified > (6) Minor suggestion for an expression change > > Marks the publication as one that replicates changes for all tables in > - the database, including tables created in the future. > + the database, including tables created in the future. If > + EXCEPT TABLE is specified, then exclude replicating > + the changes for the specified tables. > > > I'll suggest a minor rewording. > FROM: > ...exclude replicating the changes for the specified tables > TO: > ...exclude replication changes for the specified tables I felt the existing is better. > (7) > (7-1) > > +/* > + * Check if the publication has default values > + * > + * Check the following: > + * a) Publication is not set with "FOR ALL TABLES" > + * b) Publication is having default options > + * c) Publication is not associated with schemas > + * d) Publication is not associated with relations > + */ > +static bool > +CheckPublicationDefValues(HeapTuple tup) > > > I think this header comment can be improved. > FROM: > Check the following: > TO: > Returns true if the publication satisfies all the following conditions: Modified > (7-2) > > b) should be changed as well > FROM: > Publication is having default options > TO: > Publication has the default publish operations Changed it to "Publication is having default publication parameter values" Thanks for the comments, the attached v8 patch has the changes for the same. Regards, Vignesh --000000000000a8151c05e08848ab Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0002-Skip-publishing-the-tables-specified-in-EXCEPT-TA.patch" Content-Disposition: attachment; filename="v8-0002-Skip-publishing-the-tables-specified-in-EXCEPT-TA.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l3ya74gg1 RnJvbSA2YjdhODI2YWE5YTQ4NTQwMWYxM2Q4NzcwNzQ5ZWRjYjQ5YmI0ZjViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNod2FyYW4gQyA8dmlnbmVzaDIxQGdtYWlsLmNvbT4K RGF0ZTogRnJpLCAzIEp1biAyMDIyIDE1OjIwOjUzICswNTMwClN1YmplY3Q6IFtQQVRDSCB2OCAy LzJdIFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFCTEUu CgpBIG5ldyAiRVhDRVBUIFRBQkxFIiBjbGF1c2UgZm9yIENSRUFURS9BTFRFUiBQVUJMSUNBVElP TiBhbGxvd3Mgb25lIG9yCm1vcmUgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlzaGVy IHdpbGwgbm90IHNlbmQgdGhlIGRhdGEgb2YKZXhjbHVkZWQgdGFibGVzIHRvIHRoZSBzdWJzY3Jp YmVyLgoKVGhlIG5ldyBzeW50YXggYWxsb3dzIHNwZWNpZnlpbmcgZXhjbHVkZWQgcmVsYXRpb25z IHdoZW4gY3JlYXRpbmcgb3IgYWx0ZXJpbmcKYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6CkNS RUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0MSx0MjsK b3IKQUxURVIgUFVCTElDQVRJT04gcHViMSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdDEs dDI7CgpBIG5ldyBjb2x1bW4gInByZXhjZXB0IiBpcyBhZGRlZCB0byB0YWJsZSAicGdfcHVibGlj YXRpb25fcmVsIiwgdG8gbWFpbnRhaW4KdGhlIHJlbGF0aW9ucyB0aGF0IHRoZSB1c2VyIHdhbnRz IHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb25zLgoKcGdfZHVtcCBpcyB1cGRhdGVkIHRv IGlkZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCB0YWJsZXMgb2YgdGhlIHB1YmxpY2F0aW9u cy4KClRoZSBwc3FsIFxkIGZhbWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhjbHVk ZWQgdGFibGVzLiBlLmcuIHBzcWwKXGRScCsgdmFyaWFudCB3aWxsIG5vdyBkaXNwbGF5IGFzc29j aWF0ZWQgImV4Y2VwdCB0YWJsZXMiIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9uLgotLS0K IGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgOSArCiBk b2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgIDggKy0KIGRv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAxOSArLQogZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDI5ICsrLQogZG9j L3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMv YmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgICAgICAgICAgfCAgNjggKysrKy0tCiBz cmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgICAgfCAxOTkgKysrKysr KysrKysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAg ICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAg ICB8ICA0MSArKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5j ICAgfCAgMjUgKy0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAgICAg ICAgfCAgMTcgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAg ICB8ICA1NiArKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAg ICAgIHwgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAgICAg ICB8ICAgNyArCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAg fCAgMjYgKysrCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAg fCAgNjIgKysrKystCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAg ICAgfCAgMTAgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAgICAg ICB8ICAgNyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oICAgICAgICB8 ICAgNyArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwg ICAyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgICB8ICA4 OSArKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAgICAg IHwgIDQ1ICsrKy0KIC4uLi90LzAzMl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgICAgICAg ICB8ICA4NSArKysrKysrKwogMjQgZmlsZXMgY2hhbmdlZCwgNjkzIGluc2VydGlvbnMoKyksIDEy OSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9zdWJzY3JpcHRpb24v dC8wMzJfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCBjMDBj OTNkZDdiLi5kOTgzYzVmZWQ3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNjQzNiw2ICs2NDM2LDE1IEBA IFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBs YWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICBpZiB0aGVyZSBpcyBubyBwdWJsaWNhdGlv biBxdWFsaWZ5aW5nIGNvbmRpdGlvbi48L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICA8c3RydWN0ZmllbGQ+cHJleGNlcHQ8L3N0 cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgVHJ1ZSBpZiB0aGUgcmVsYXRpb24gbXVzdCBiZSBleGNsdWRlZAorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgog ICAgICAgIDxzdHJ1Y3RmaWVsZD5wcmF0dHJzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50MnZlY3Rv cjwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNn bWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDE0NWVhNzFk NjEuLmY0MDM0OGMwNTggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0 aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAt MTE2NSwxMCArMTE2NSwxMCBAQCBDT05URVhUOiAgcHJvY2Vzc2luZyByZW1vdGUgZGF0YSBmb3Ig cmVwbGljYXRpb24gb3JpZ2luICJwZ18xNjM5NSIgZHVyaW5nICJJTlNFUgogICA8L3BhcmE+CiAK ICAgPHBhcmE+Ci0gICBUbyBhZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sIHRoZSB1c2VyIG11 c3QgaGF2ZSBvd25lcnNoaXAgcmlnaHRzIG9uIHRoZQotICAgdGFibGUuIFRvIGFkZCBhbGwgdGFi bGVzIGluIHNjaGVtYSB0byBhIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEKLSAgIHN1 cGVydXNlci4gVG8gY3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIHRhYmxl cyBvciBhbGwgdGFibGVzIGluCi0gICBzY2hlbWEgYXV0b21hdGljYWxseSwgdGhlIHVzZXIgbXVz dCBiZSBhIHN1cGVydXNlci4KKyAgIFRvIGNyZWF0ZSBhIHB1YmxpY2F0aW9uIHVzaW5nIEZPUiBB TEwgVEFCTEVTIG9yIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSwKKyAgIHRoZSB1c2VyIG11c3Qg YmUgYSBzdXBlcnVzZXIuIFRvIGFkZCBBTEwgVEFCTEVTIG9yIEFMTCBUQUJMRVMgSU4gU0NIRU1B IHRvIGEKKyAgIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEgc3VwZXJ1c2VyLiBUbyBh ZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sCisgICB0aGUgdXNlciBtdXN0IGhhdmUgb3duZXJz aGlwIHJpZ2h0cyBvbiB0aGUgdGFibGUuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAppbmRleCBkNGMyM2RlYmQxLi4wZWUyYWEyN2E1 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yMiw2ICsyMiw3 IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNp cz4KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4gQUREIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNh dGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCitBTFRFUiBQVUJMSUNBVElPTiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IEFERCBBTEwgVEFC TEVTIFsgRVhDRVBUIFsgVEFCTEUgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhj ZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdIF0KIEFMVEVSIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2Vh YmxlPiBbLCAuLi5dCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1AgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLl0KIEFMVEVSIFBVQkxJ Q0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g U0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRl cjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwv cmVwbGFjZWFibGU+XSBbLCAuLi4gXSApCkBAIC0zMyw2ICszNCwxMSBAQCBBTFRFUiBQVUJMSUNB VElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJF U0VUCiAKICAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gWyBXSEVSRSAo IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4g KSBdIFssIC4uLiBdCiAgICAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1B IH0gWywgLi4uIF0KKworPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgorCisgICAgWyBP TkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2Vh YmxlPiBbICogXQorCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAKQEAgLTgyLDgg Kzg4LDkgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBSRVNFVAogCiAgIDxwYXJhPgogICAgWW91IG11c3Qgb3duIHRo ZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxURVIgUFVCTElDQVRJT048L2NvbW1hbmQ+ LgotICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhZGRpdGlvbmFsbHkgcmVxdWly ZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxpdGVyYWw+QUREIEFMTCBUQUJMRVMgSU4g U0NIRU1BPC9saXRlcmFsPiwKKyAgIEFkZGluZyBhIHRhYmxlIHRvIG9yIGV4Y2x1ZGluZyBhIHRh YmxlIGZyb20gYSBwdWJsaWNhdGlvbiBhZGRpdGlvbmFsbHkKKyAgIHJlcXVpcmVzIG93bmluZyB0 aGF0IHRhYmxlLiBUaGUgPGxpdGVyYWw+QUREIEFMTCBUQUJMRVM8L2xpdGVyYWw+LAorICAgPGxp dGVyYWw+QUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwKICAgIDxsaXRlcmFsPlNF VCBBTEwgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiBhbmQKICAg IDxsaXRlcmFsPlJFU0VUPC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUgaW52 b2tpbmcgdXNlciB0byBiZSBhCiAgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBvd25lciwgeW91 IG11c3QgYWxzbyBiZSBhIGRpcmVjdCBvciBpbmRpcmVjdCBtZW1iZXIKQEAgLTIyNCw2ICsyMzEs MTQgQEAgQUxURVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24gQUREIEFMTCBUQUJMRVMg SU4gU0NIRU1BIG1hcmtldGluZywgc2FsZXM7CiA8L3Byb2dyYW1saXN0aW5nPgogICA8L3BhcmE+ CiAKKyAgPHBhcmE+CisgICBBbHRlciBwdWJsaWNhdGlvbiA8c3RydWN0bmFtZT5wcm9kdWN0aW9u X3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPiB0byBwdWJsaXNoCisgICBhbGwgdGFibGVzIGV4Y2Vw dCA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4gYW5kCisgICA8c3RydWN0bmFtZT5kZXBh cnRtZW50czwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQVUJMSUNBVElP TiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBBTEwgVEFCTEVTIEVYQ0VQVCB1c2VycywgZGVw YXJ0bWVudHM7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKwogICA8cGFyYT4KICAgIEFkZCB0 YWJsZXMgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAogICAgPHN0cnVjdG5hbWU+ZGVw YXJ0bWVudHM8L3N0cnVjdG5hbWU+IGFuZCBzY2hlbWEKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9w dWJsaWNhdGlvbi5zZ21sCmluZGV4IDFhODI4ZThkMmYuLjBmMTZiYmYyYjcgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbApAQCAtMjIsNyArMjIsNyBAQCBQb3N0Z3Jl U1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBDUkVBVEUg UFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPgotICAgIFsgRk9SIEFMTCBUQUJMRVMKKyAgICBbIEZPUiBBTEwgVEFCTEVTIFsgRVhDRVBU IFsgVEFCTEUgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVj dDwvcmVwbGFjZWFibGU+IFssIC4uLiBdIF0KICAgICAgIHwgRk9SIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBd CiAgICAgWyBXSVRIICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9u X3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApIF0KIApAQCAtMzAsNiArMzAsMTAgQEAg Q1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4KIAogICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBb IFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxh Y2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBBTEwgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVO VF9TQ0hFTUEgfSBbLCAuLi4gXQorCis8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CisK KyAgICBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwv cmVwbGFjZWFibGU+IFsgKiBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAKQEAg LTEyMCw3ICsxMjQsOSBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+ CiAgICAgICBNYXJrcyB0aGUgcHVibGljYXRpb24gYXMgb25lIHRoYXQgcmVwbGljYXRlcyBjaGFu Z2VzIGZvciBhbGwgdGFibGVzIGluCi0gICAgICB0aGUgZGF0YWJhc2UsIGluY2x1ZGluZyB0YWJs ZXMgY3JlYXRlZCBpbiB0aGUgZnV0dXJlLgorICAgICAgdGhlIGRhdGFiYXNlLCBpbmNsdWRpbmcg dGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVyZS4gSWYKKyAgICAgIDxsaXRlcmFsPkVYQ0VQVCBU QUJMRTwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGVuIGV4Y2x1ZGUgcmVwbGljYXRpbmcKKyAg ICAgIHRoZSBjaGFuZ2VzIGZvciB0aGUgc3BlY2lmaWVkIHRhYmxlcy4KICAgICAgPC9wYXJhPgog ICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTE1Niw2ICsxNjIsMTYgQEAg Q1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2 YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+RVhDRVBUIFRBQkxFPC9saXRlcmFsPjwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBjbGF1c2Ugc3Bl Y2lmaWVzIGEgbGlzdCBvZiB0YWJsZXMgdG8gYmUgZXhjbHVkZWQgZnJvbSB0aGUKKyAgICAgIHB1 YmxpY2F0aW9uLiBJdCBjYW4gb25seSBiZSB1c2VkIHdpdGggPGxpdGVyYWw+Rk9SIEFMTCBUQUJM RVM8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPldJVEggKCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBs YWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNl YWJsZT5dIFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KQEAgLTM1 MSw2ICszNjcsMTUgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24g Rk9SIFRBQkxFIHVzZXJzLCBkZXBhcnRtZW50cywgQUxMIFRBQkwKIENSRUFURSBQVUJMSUNBVElP TiBzYWxlc19wdWJsaWNhdGlvbiBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBz YWxlczsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCisgIDxwYXJhPgorICAgQ3JlYXRlIGEg cHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgaW4gYWxsIHRoZSB0YWJsZXMg ZXhjZXB0IGZvcgorICAgdGhlIGNoYW5nZXMgb2YgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5h bWU+IGFuZAorICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+OgorPHByb2dy YW1saXN0aW5nPgorQ1JFQVRFIFBVQkxJQ0FUSU9OIG15cHVibGljYXRpb24gRk9SIEFMTCBUQUJM RVMgRVhDRVBUIHVzZXJzLCBkZXBhcnRtZW50czsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFy YT4KKwogICA8cGFyYT4KICAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFs bCBjaGFuZ2VzIGZvciB0YWJsZSA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICBi dXQgcmVwbGljYXRlcyBvbmx5IGNvbHVtbnMgPHN0cnVjdG5hbWU+dXNlcl9pZDwvc3RydWN0bmFt ZT4gYW5kCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggNDdiZjMzNDJhNS4uYTFlNDljM2Q4ZCAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvcHNxbC1yZWYuc2dtbApAQCAtMTg2OCw4ICsxODY4LDkgQEAgdGVzdGRiPSZndDsK ICAgICAgICAgSWYgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxh Y2VhYmxlPiBpcwogICAgICAgICBzcGVjaWZpZWQsIG9ubHkgdGhvc2UgcHVibGljYXRpb25zIHdo b3NlIG5hbWVzIG1hdGNoIHRoZSBwYXR0ZXJuIGFyZQogICAgICAgICBsaXN0ZWQuCi0gICAgICAg IElmIDxsaXRlcmFsPis8L2xpdGVyYWw+IGlzIGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUs IHRoZSB0YWJsZXMgYW5kCi0gICAgICAgIHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggcHVi bGljYXRpb24gYXJlIHNob3duIGFzIHdlbGwuCisgICAgICAgIElmIDxsaXRlcmFsPis8L2xpdGVy YWw+IGlzIGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUsIHRoZSB0YWJsZXMsCisgICAgICAg IGV4Y2x1ZGVkIHRhYmxlcyBhbmQgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBwdWJsaWNh dGlvbiBhcmUgc2hvd24gYXMKKyAgICAgICAgd2VsbC4KICAgICAgICAgPC9wYXJhPgogICAgICAg ICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1 YmxpY2F0aW9uLmMKaW5kZXggOGM3ZmNhNjJkZS4uMDQxOWRlZWU2OCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfcHVibGljYXRpb24uYwpAQCAtMjkwLDcgKzI5MCw4IEBAIEdldFB1YlBhcnRpdGlvbk9w dGlvblJlbGF0aW9ucyhMaXN0ICpyZXN1bHQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9w dCwKICAqIGFuY2VzdG9yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCiAgKi8KIE9pZAotR2V0 VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMs IGludCAqYW5jZXN0b3JfbGV2ZWwpCitHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9p ZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywKKwkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCwg Ym9vbCBwdWJhbGx0YWJsZXMpCiB7CiAJTGlzdENlbGwgICAqbGM7CiAJT2lkCQkJdG9wbW9zdF9y ZWxpZCA9IEludmFsaWRPaWQ7CkBAIC0zMDIsMzIgKzMwMyw0NCBAQCBHZXRUb3BNb3N0QW5jZXN0 b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50ICphbmNlc3Rv cl9sZXZlbAogCWZvcmVhY2gobGMsIGFuY2VzdG9ycykKIAl7CiAJCU9pZAkJCWFuY2VzdG9yID0g bGZpcnN0X29pZChsYyk7Ci0JCUxpc3QJICAgKmFwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0 aW9ucyhhbmNlc3Rvcik7Ci0JCUxpc3QJICAgKmFzY2hlbWFQdWJpZHMgPSBOSUw7CisJCUxpc3QJ ICAgKmFwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3RvciwgZmFsc2UpOwor CQlMaXN0CSAgICphc2NoZW1hcHViaWRzID0gTklMOworCQlMaXN0CSAgICphZXhjZXB0cHViaWRz ID0gTklMOworCQlib29sCQlzZXRfdG9wID0gZmFsc2U7CiAKIAkJbGV2ZWwrKzsKIAotCQlpZiAo bGlzdF9tZW1iZXJfb2lkKGFwdWJpZHMsIHB1Ym9pZCkpCisJCS8qIGNoZWNrIGlmIG1lbWJlciBv ZiB0YWJsZSBwdWJsaWNhdGlvbnMgKi8KKwkJc2V0X3RvcCA9IGxpc3RfbWVtYmVyX29pZChhcHVi aWRzLCBwdWJvaWQpOworCQlpZiAoIXNldF90b3ApCiAJCXsKLQkJCXRvcG1vc3RfcmVsaWQgPSBh bmNlc3RvcjsKKwkJCWFzY2hlbWFwdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3Jl bF9uYW1lc3BhY2UoYW5jZXN0b3IpKTsKIAotCQkJaWYgKGFuY2VzdG9yX2xldmVsKQotCQkJCSph bmNlc3Rvcl9sZXZlbCA9IGxldmVsOworCQkJLyogY2hlY2sgaWYgbWVtYmVyIG9mIHNjaGVtYSBw dWJsaWNhdGlvbnMgKi8KKwkJCXNldF90b3AgPSBsaXN0X21lbWJlcl9vaWQoYXNjaGVtYXB1Ymlk cywgcHVib2lkKTsKKworCQkJLyoKKwkJCSAqIElmIHRoZSBwdWJsaWNhdGlvbiBpcyBhbGwgdGFi bGVzIHB1YmxpY2F0aW9uIGFuZCB0aGUgdGFibGUKKwkJCSAqIGlzIG5vdCBwYXJ0IG9mIGV4Y2Vw dGlvbiB0YWJsZXMuCisJCQkgKi8KKwkJCWlmICghc2V0X3RvcCAmJiBwdWJhbGx0YWJsZXMpCisJ CQl7CisJCQkJYWV4Y2VwdHB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9y LCB0cnVlKTsKKwkJCQlzZXRfdG9wID0gIWxpc3RfbWVtYmVyX29pZChhZXhjZXB0cHViaWRzLCBw dWJvaWQpOworCQkJfQogCQl9Ci0JCWVsc2UKKworCQlpZiAoc2V0X3RvcCkKIAkJewotCQkJYXNj aGVtYVB1YmlkcyA9IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhnZXRfcmVsX25hbWVzcGFjZShhbmNl c3RvcikpOwotCQkJaWYgKGxpc3RfbWVtYmVyX29pZChhc2NoZW1hUHViaWRzLCBwdWJvaWQpKQot CQkJewotCQkJCXRvcG1vc3RfcmVsaWQgPSBhbmNlc3RvcjsKKwkJCXRvcG1vc3RfcmVsaWQgPSBh bmNlc3RvcjsKIAotCQkJCWlmIChhbmNlc3Rvcl9sZXZlbCkKLQkJCQkJKmFuY2VzdG9yX2xldmVs ID0gbGV2ZWw7Ci0JCQl9CisJCQlpZiAoYW5jZXN0b3JfbGV2ZWwpCisJCQkJKmFuY2VzdG9yX2xl dmVsID0gbGV2ZWw7CiAJCX0KIAogCQlsaXN0X2ZyZWUoYXB1Ymlkcyk7Ci0JCWxpc3RfZnJlZShh c2NoZW1hUHViaWRzKTsKKwkJbGlzdF9mcmVlKGFzY2hlbWFwdWJpZHMpOworCQlsaXN0X2ZyZWUo YWV4Y2VwdHB1Ymlkcyk7CiAJfQogCiAJcmV0dXJuIHRvcG1vc3RfcmVsaWQ7CkBAIC0zOTYsNiAr NDA5LDggQEAgcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25S ZWxJbmZvICpwcmksCiAJCU9iamVjdElkR2V0RGF0dW0ocHViaWQpOwogCXZhbHVlc1tBbnVtX3Bn X3B1YmxpY2F0aW9uX3JlbF9wcnJlbGlkIC0gMV0gPQogCQlPYmplY3RJZEdldERhdHVtKHJlbGlk KTsKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJleGNlcHQgLSAxXSA9CisJCUJv b2xHZXREYXR1bShwcmktPmV4Y2VwdCk7CiAKIAkvKiBBZGQgcXVhbGlmaWNhdGlvbnMsIGlmIGF2 YWlsYWJsZSAqLwogCWlmIChwcmktPndoZXJlQ2xhdXNlICE9IE5VTEwpCkBAIC02NjQsOSArNjc5 LDkgQEAgcHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQgcHViaWQsIE9pZCBzY2hlbWFpZCwgYm9v bCBpZl9ub3RfZXhpc3RzKQogCXJldHVybiBteXNlbGY7CiB9CiAKLS8qIEdldHMgbGlzdCBvZiBw dWJsaWNhdGlvbiBvaWRzIGZvciBhIHJlbGF0aW9uICovCisvKiBHZXRzIGxpc3Qgb2YgcHVibGlj YXRpb24gb2lkcyBmb3IgYSByZWxhdGlvbiB0aGF0IG1hdGNoZXMgdGhlIGV4Y2VwdF9mbGFnICov CiBMaXN0ICoKLUdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCkKK0dldFJlbGF0aW9u UHVibGljYXRpb25zKE9pZCByZWxpZCwgYm9vbCBleGNlcHRfZmxhZykKIHsKIAlMaXN0CSAgICpy ZXN1bHQgPSBOSUw7CiAJQ2F0Q0xpc3QgICAqcHVicmVsbGlzdDsKQEAgLTY4MCw3ICs2OTUsOCBA QCBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQpCiAJCUhlYXBUdXBsZQl0dXAgPSAm cHVicmVsbGlzdC0+bWVtYmVyc1tpXS0+dHVwbGU7CiAJCU9pZAkJCXB1YmlkID0gKChGb3JtX3Bn X3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcnB1YmlkOwogCi0JCXJlc3VsdCA9 IGxhcHBlbmRfb2lkKHJlc3VsdCwgcHViaWQpOworCQlpZiAoZXhjZXB0X2ZsYWcgPT0gKChGb3Jt X3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcmV4Y2VwdCkKKwkJCXJlc3Vs dCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcHViaWQpOwogCX0KIAogCVJlbGVhc2VTeXNDYWNoZUxp c3QocHVicmVsbGlzdCk7CkBAIC03NzksMTMgKzc5NSwxNiBAQCBHZXRBbGxUYWJsZXNQdWJsaWNh dGlvbnModm9pZCkKICAqIHJvb3QgcGFydGl0aW9uZWQgdGFibGVzLgogICovCiBMaXN0ICoKLUdl dEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCkKK0dldEFsbFRh Ymxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgYm9vbCBwdWJ2aWFyb290KQogewog CVJlbGF0aW9uCWNsYXNzUmVsOwogCVNjYW5LZXlEYXRhIGtleVsxXTsKIAlUYWJsZVNjYW5EZXNj IHNjYW47CiAJSGVhcFR1cGxlCXR1cGxlOwogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0 CSAgICpleGNlcHRsaXN0OworCisJZXhjZXB0bGlzdCA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25z KHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX0FMTCk7CiAKIAljbGFzc1JlbCA9IHRhYmxlX29wZW4o UmVsYXRpb25SZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOwogCkBAIC04MDIsNyArODIxLDgg QEAgR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2aWFyb290KQogCQlP aWQJCQlyZWxpZCA9IHJlbEZvcm0tPm9pZDsKIAogCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3Mo cmVsaWQsIHJlbEZvcm0pICYmCi0JCQkhKHJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1YnZp YXJvb3QpKQorCQkJIShyZWxGb3JtLT5yZWxpc3BhcnRpdGlvbiAmJiBwdWJ2aWFyb290KSAmJgor CQkJIWxpc3RfbWVtYmVyX29pZChleGNlcHRsaXN0LCByZWxpZCkpCiAJCQlyZXN1bHQgPSBsYXBw ZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKIAl9CiAKQEAgLTgyMyw3ICs4NDMsOCBAQCBHZXRBbGxU YWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhib29sIHB1YnZpYXJvb3QpCiAJCQlPaWQJCQlyZWxp ZCA9IHJlbEZvcm0tPm9pZDsKIAogCQkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCBy ZWxGb3JtKSAmJgotCQkJCSFyZWxGb3JtLT5yZWxpc3BhcnRpdGlvbikKKwkJCQkhcmVsRm9ybS0+ cmVsaXNwYXJ0aXRpb24gJiYKKwkJCQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlk KSkKIAkJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKIAkJfQogCkBAIC0x MTA5LDcgKzExMzAsOCBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCSAqLwogCQlpZiAocHVibGljYXRpb24tPmFsbHRhYmxlcykKIAkJewotCQkJdGFibGVz ID0gR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMocHVibGljYXRpb24tPnB1YnZpYXJv b3QpOworCQkJdGFibGVzID0gR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMocHVibGlj YXRpb24tPm9pZCwKKwkJCQkJCQkJCQkJCQkgIHB1YmxpY2F0aW9uLT5wdWJ2aWFyb290KTsKIAkJ fQogCQllbHNlCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0 aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXgg NTMzMDcxZDkxMS4uYmM0OTlmYzI5ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv cHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25j bWRzLmMKQEAgLTE5Myw2ICsxOTMsMTEgQEAgT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoTGlz dCAqcHVib2Jqc3BlY19saXN0LCBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCXN3aXRjaCAocHVib2Jq LT5wdWJvYmp0eXBlKQogCQl7CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX1RBQkxFOgorCQkJCXB1 Ym9iai0+cHVidGFibGUtPmV4Y2VwdCA9IGZhbHNlOworCQkJCSpyZWxzID0gbGFwcGVuZCgqcmVs cywgcHVib2JqLT5wdWJ0YWJsZSk7CisJCQkJYnJlYWs7CisJCQljYXNlIFBVQkxJQ0FUSU9OT0JK X0VYQ0VQVF9UQUJMRToKKwkJCQlwdWJvYmotPnB1YnRhYmxlLT5leGNlcHQgPSB0cnVlOwogCQkJ CSpyZWxzID0gbGFwcGVuZCgqcmVscywgcHVib2JqLT5wdWJ0YWJsZSk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUE6CkBAIC0zMDUsNyArMzEwLDcg QEAgY29udGFpbl9pbnZhbGlkX3JmY29sdW1uX3dhbGtlcihOb2RlICpub2RlLCByZl9jb250ZXh0 ICpjb250ZXh0KQogICovCiBib29sCiBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lk IHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAotCQkJCQkJCSAgIGJv b2wgcHVidmlhcm9vdCkKKwkJCQkJCQkgICBib29sIHB1YnZpYXJvb3QsIGJvb2wgcHViYWxsdGFi bGVzKQogewogCUhlYXBUdXBsZQlyZnR1cGxlOwogCU9pZAkJCXJlbGlkID0gUmVsYXRpb25HZXRS ZWxpZChyZWxhdGlvbik7CkBAIC0zMzIsNyArMzM3LDggQEAgcHViX3JmX2NvbnRhaW5zX2ludmFs aWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywK IAlpZiAocHVidmlhcm9vdCAmJiByZWxhdGlvbi0+cmRfcmVsLT5yZWxpc3BhcnRpdGlvbikKIAl7 CiAJCXB1Ymxpc2hfYXNfcmVsaWQKLQkJCT0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlv bihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJCT0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJs aWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMLAorCQkJCQkJCQkJCQkgIHB1YmFsbHRhYmxl cyk7CiAKIAkJaWYgKCFPaWRJc1ZhbGlkKHB1Ymxpc2hfYXNfcmVsaWQpKQogCQkJcHVibGlzaF9h c19yZWxpZCA9IHJlbGlkOwpAQCAtMzgxLDcgKzM4Nyw3IEBAIHB1Yl9yZl9jb250YWluc19pbnZh bGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMs CiAgKi8KIGJvb2wKIHB1Yl9jb2xsaXN0X2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJp ZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKLQkJCQkJCQkJCWJvb2wgcHVi dmlhcm9vdCkKKwkJCQkJCQkJCWJvb2wgcHVidmlhcm9vdCwgYm9vbCBwdWJhbGx0YWJsZXMpCiB7 CiAJSGVhcFR1cGxlCXR1cGxlOwogCU9pZAkJCXJlbGlkID0gUmVsYXRpb25HZXRSZWxpZChyZWxh dGlvbik7CkBAIC00MDAsNyArNDA2LDggQEAgcHViX2NvbGxpc3RfY29udGFpbnNfaW52YWxpZF9j b2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3IKIAkgKi8K IAlpZiAocHVidmlhcm9vdCAmJiByZWxhdGlvbi0+cmRfcmVsLT5yZWxpc3BhcnRpdGlvbikKIAl7 Ci0JCXB1Ymxpc2hfYXNfcmVsaWQgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1 YmlkLCBhbmNlc3RvcnMsIE5VTEwpOworCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9zdEFu Y2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLAorCQkJCQkJCQkJCQkJCQkgICBO VUxMLCBwdWJhbGx0YWJsZXMpOwogCiAJCWlmICghT2lkSXNWYWxpZChwdWJsaXNoX2FzX3JlbGlk KSkKIAkJCXB1Ymxpc2hfYXNfcmVsaWQgPSByZWxpZDsKQEAgLTg0NCw1NCArODUxLDUyIEBAIENy ZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10 ICpzdG10KQogCS8qIE1ha2UgdGhlIGNoYW5nZXMgdmlzaWJsZS4gKi8KIAlDb21tYW5kQ291bnRl ckluY3JlbWVudCgpOwogCi0JLyogQXNzb2NpYXRlIG9iamVjdHMgd2l0aCB0aGUgcHVibGljYXRp b24uICovCi0JaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVzKQotCXsKLQkJLyogSW52YWxpZGF0ZSBy ZWxjYWNoZSBzbyB0aGF0IHB1YmxpY2F0aW9uIGluZm8gaXMgcmVidWlsdC4gKi8KLQkJQ2FjaGVJ bnZhbGlkYXRlUmVsY2FjaGVBbGwoKTsKLQl9Ci0JZWxzZQotCXsKLQkJT2JqZWN0c0luUHVibGlj YXRpb25Ub09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0YXRlLCAmcmVsYXRpb25zLAotCQkJCQkJ CQkgICAmc2NoZW1haWRsaXN0KTsKKwlPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhzdG10LT5w dWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCisJCQkJCQkJICAgJnNjaGVtYWlkbGlzdCk7 CiAKLQkJLyogRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHJlcXVpcmVzIHN1cGVydXNlciAqLwot CQlpZiAobGlzdF9sZW5ndGgoc2NoZW1haWRsaXN0KSA+IDAgJiYgIXN1cGVydXNlcigpKQotCQkJ ZXJlcG9ydChFUlJPUiwKLQkJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxF R0UpLAotCQkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIGNyZWF0ZSBGT1IgQUxMIFRB QkxFUyBJTiBTQ0hFTUEgcHVibGljYXRpb24iKSk7CisJLyogRk9SIEFMTCBUQUJMRVMgSU4gU0NI RU1BIHJlcXVpcmVzIHN1cGVydXNlciAqLworCWlmIChsaXN0X2xlbmd0aChzY2hlbWFpZGxpc3Qp ID4gMCAmJiAhc3VwZXJ1c2VyKCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJD T0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVz ZXIgdG8gY3JlYXRlIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWNhdGlvbiIpKTsKIAot CQlpZiAobGlzdF9sZW5ndGgocmVsYXRpb25zKSA+IDApCi0JCXsKLQkJCUxpc3QJICAgKnJlbHM7 CisJaWYgKGxpc3RfbGVuZ3RoKHJlbGF0aW9ucykgPiAwKQorCXsKKwkJTGlzdAkgICAqcmVsczsK IAotCQkJcmVscyA9IE9wZW5UYWJsZUxpc3QocmVsYXRpb25zKTsKLQkJCUNoZWNrT2JqU2NoZW1h Tm90QWxyZWFkeUluUHVibGljYXRpb24ocmVscywgc2NoZW1haWRsaXN0LAotCQkJCQkJCQkJCQkJ ICBQVUJMSUNBVElPTk9CSl9UQUJMRSk7CisJCXJlbHMgPSBPcGVuVGFibGVMaXN0KHJlbGF0aW9u cyk7CisJCUNoZWNrT2JqU2NoZW1hTm90QWxyZWFkeUluUHVibGljYXRpb24ocmVscywgc2NoZW1h aWRsaXN0LAorCQkJCQkJCQkJCQkgIFBVQkxJQ0FUSU9OT0JKX1RBQkxFKTsKIAotCQkJVHJhbnNm b3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAotCQkJCQkJCQkJ IHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKKwkJVHJhbnNmb3JtUHViV2hlcmVDbGF1c2Vz KHJlbHMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQkgcHVibGlzaF92aWFfcGFydGl0 aW9uX3Jvb3QpOwogCi0JCQlDaGVja1B1YlJlbGF0aW9uQ29sdW1uTGlzdChyZWxzLCBwc3RhdGUt PnBfc291cmNldGV4dCwKLQkJCQkJCQkJCSAgIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsK KwkJQ2hlY2tQdWJSZWxhdGlvbkNvbHVtbkxpc3QocmVscywgcHN0YXRlLT5wX3NvdXJjZXRleHQs CisJCQkJCQkJCSAgIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKIAotCQkJUHVibGljYXRp b25BZGRUYWJsZXMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxMKTsKLQkJCUNsb3NlVGFibGVMaXN0 KHJlbHMpOwotCQl9CisJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwg TlVMTCk7CisJCUNsb3NlVGFibGVMaXN0KHJlbHMpOworCX0KIAotCQlpZiAobGlzdF9sZW5ndGgo c2NoZW1haWRsaXN0KSA+IDApCi0JCXsKLQkJCS8qCi0JCQkgKiBTY2hlbWEgbG9jayBpcyBoZWxk IHVudGlsIHRoZSBwdWJsaWNhdGlvbiBpcyBjcmVhdGVkIHRvIHByZXZlbnQKLQkJCSAqIGNvbmN1 cnJlbnQgc2NoZW1hIGRlbGV0aW9uLgotCQkJICovCi0JCQlMb2NrU2NoZW1hTGlzdChzY2hlbWFp ZGxpc3QpOwotCQkJUHVibGljYXRpb25BZGRTY2hlbWFzKHB1Ym9pZCwgc2NoZW1haWRsaXN0LCB0 cnVlLCBOVUxMKTsKLQkJfQorCWlmIChsaXN0X2xlbmd0aChzY2hlbWFpZGxpc3QpID4gMCkKKwl7 CisJCS8qCisJCSAqIFNjaGVtYSBsb2NrIGlzIGhlbGQgdW50aWwgdGhlIHB1YmxpY2F0aW9uIGlz IGNyZWF0ZWQgdG8gcHJldmVudAorCQkgKiBjb25jdXJyZW50IHNjaGVtYSBkZWxldGlvbi4KKwkJ ICovCisJCUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlkbGlzdCk7CisJCVB1YmxpY2F0aW9uQWRkU2No ZW1hcyhwdWJvaWQsIHNjaGVtYWlkbGlzdCwgdHJ1ZSwgTlVMTCk7CiAJfQogCiAJdGFibGVfY2xv c2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAorCS8qIEFzc29jaWF0ZSBvYmplY3RzIHdpdGgg dGhlIHB1YmxpY2F0aW9uLiAqLworCWlmIChzdG10LT5mb3JfYWxsX3RhYmxlcykKKwl7CisJCS8q IEludmFsaWRhdGUgcmVsY2FjaGUgc28gdGhhdCBwdWJsaWNhdGlvbiBpbmZvIGlzIHJlYnVpbHQu ICovCisJCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CisJfQorCiAJSW52b2tlT2JqZWN0 UG9zdENyZWF0ZUhvb2soUHVibGljYXRpb25SZWxhdGlvbklkLCBwdWJvaWQsIDApOwogCiAJaWYg KHdhbF9sZXZlbCAhPSBXQUxfTEVWRUxfTE9HSUNBTCkKQEAgLTExNjAsNiArMTE2NSwyNyBAQCBB bHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9u U3RtdCAqc3RtdCwKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2aWFyb290IC0gMV0g PSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfVklBX1JPT1QpOwogCXJlcGxhY2VzW0FudW1fcGdf cHVibGljYXRpb25fcHVidmlhcm9vdCAtIDFdID0gdHJ1ZTsKIAorCS8qCisJICogTG9jayB0aGUg cHVibGljYXRpb24gc28gbm9ib2R5IGVsc2UgY2FuIGRvIGFueXRoaW5nIHdpdGggaXQuIFRoaXMK KwkgKiBwcmV2ZW50cyBjb25jdXJyZW50IHB1YmxpY2F0aW9uIHBhcmFtZXRlciBjaGFuZ2VzLCBh ZGQvZHJvcCB0YWJsZXMocykgdG8KKwkgKiB0aGUgcHVibGljYXRpb24gYW5kIGFkZC9kcm9wIHNj aGVtYShzKSB0byB0aGUgcHVibGljYXRpb24uCisJICovCisJTG9ja0RhdGFiYXNlT2JqZWN0KFB1 YmxpY2F0aW9uUmVsYXRpb25JZCwgcHViaWQsIDAsCisJCQkJCQlBY2Nlc3NFeGNsdXNpdmVMb2Nr KTsKKworCS8qCisJICogSXQgaXMgcG9zc2libGUgdGhhdCBieSB0aGUgdGltZSB3ZSBhY3F1aXJl IHRoZSBsb2NrIG9uIHB1YmxpY2F0aW9uLAorCSAqIGNvbmN1cnJlbnQgRERMIGhhcyByZW1vdmVk IGl0LiBXZSBjYW4gdGVzdCB0aGlzIGJ5IGNoZWNraW5nIHRoZQorCSAqIGV4aXN0ZW5jZSBvZiBw dWJsaWNhdGlvbi4gV2UgZ2V0IHRoZSB0dXBsZSBhZ2FpbiB0byBhdm9pZCB0aGUgcmlzaworCSAq IG9mIGFueSBwdWJsaWNhdGlvbiBvcHRpb24gZ2V0dGluZyBjaGFuZ2VkLgorCSAqLworCXR1cCA9 IFNlYXJjaFN5c0NhY2hlQ29weTEoUFVCTElDQVRJT05PSUQsIE9iamVjdElkR2V0RGF0dW0ocHVi aWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJZXJybXNnKCJwdWJsaWNh dGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJc3RtdC0+cHVibmFtZSkpOworCiAJ LyogU2V0IEFMTCBUQUJMRVMgZmxhZyB0byBmYWxzZSAqLwogCWlmIChwdWJmb3JtLT5wdWJhbGx0 YWJsZXMpCiAJewpAQCAtMTE5OCw2ICsxMjI0LDc5IEBAIEFsdGVyUHVibGljYXRpb25SZXNldChQ YXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCX0KIH0KIAor LyoKKyAqIENoZWNrIGlmIHRoZSBwdWJsaWNhdGlvbiBoYXMgZGVmYXVsdCB2YWx1ZXMuCisgKgor ICogUmV0dXJucyB0cnVlIGlmIHRoZSBwdWJsaWNhdGlvbiBzYXRpc2ZpZXMgYWxsIHRoZSBmb2xs b3dpbmcgY29uZGl0aW9uczoKKyAqIGEpIFB1YmxpY2F0aW9uIGlzIG5vdCBzZXQgd2l0aCAiRk9S IEFMTCBUQUJMRVMiCisgKiBiKSBQdWJsaWNhdGlvbiBpcyBoYXZpbmcgZGVmYXVsdCBwdWJsaWNh dGlvbiBwYXJhbWV0ZXIgdmFsdWVzCisgKiBjKSBQdWJsaWNhdGlvbiBpcyBub3QgYXNzb2NpYXRl ZCB3aXRoIHNjaGVtYXMKKyAqIGQpIFB1YmxpY2F0aW9uIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGgg cmVsYXRpb25zCisgKi8KK3N0YXRpYyBib29sCitDaGVja1B1YmxpY2F0aW9uRGVmVmFsdWVzKEhl YXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdf cHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lk OworCUxpc3QJICAgKnB1Ym9ianMgPSBOSUw7CisKKwlpZiAocHViZm9ybS0+cHViYWxsdGFibGVz ICE9IFBVQl9ERUZBVUxUX0FMTF9UQUJMRVMpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChwdWJm b3JtLT5wdWJpbnNlcnQgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX0lOU0VSVCB8fAorCQlwdWJmb3Jt LT5wdWJ1cGRhdGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX1VQREFURSB8fAorCQlwdWJmb3JtLT5w dWJkZWxldGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURSB8fAorCQlwdWJmb3JtLT5wdWJ0 cnVuY2F0ZSAhPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNBVEUgfHwKKwkJcHViZm9ybS0+cHVi dmlhcm9vdCAhPSBQVUJfREVGQVVMVF9WSUFfUk9PVCkKKwkJcmV0dXJuIGZhbHNlOworCisJcHVi b2JqcyA9IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7CisJaWYgKGxpc3RfbGVuZ3RoKHB1 Ym9ianMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwdWJvYmpzID0gR2V0UHVibGljYXRpb25SZWxh dGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisJaWYgKGxpc3RfbGVuZ3RoKHB1 Ym9ianMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIFNl dCBwdWJsaWNhdGlvbiB0byBwdWJsaXNoIGFsbCB0YWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitB bHRlclB1YmxpY2F0aW9uU2V0QWxsVGFibGVzKFJlbGF0aW9uIHJlbCwgSGVhcFR1cGxlIHR1cCkK K3sKKwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gUEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZ ID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCWJvb2wJCW51bGxzW05h dHRzX3BnX3B1YmxpY2F0aW9uXTsKKwlib29sCQlyZXBsYWNlc1tOYXR0c19wZ19wdWJsaWNhdGlv bl07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisKKyNpZmRlZiBVU0Vf QVNTRVJUX0NIRUNLSU5HCisJQXNzZXJ0KCFwdWJmb3JtLT5wdWJhbGx0YWJsZXMpOworI2VuZGlm CisKKwkvKiBBZGQgQUxMIFRBQkxFUyB0byB0aGUgcHVibGljYXRpb24gcmVxdWlyZXMgc3VwZXJ1 c2VyICovCisJaWYgKCFzdXBlcnVzZXIoKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2Rl KEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJZXJybXNnKCJtdXN0IGJlIHN1 cGVydXNlciB0byBBREQgQUxMIFRBQkxFUyB0byB0aGUgcHVibGljYXRpb24iKSk7CisKKwltZW1z ZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CisJbWVtc2V0KG51bGxzLCBmYWxzZSwgc2l6 ZW9mKG51bGxzKSk7CisJbWVtc2V0KHJlcGxhY2VzLCBmYWxzZSwgc2l6ZW9mKHJlcGxhY2VzKSk7 CisKKwkvKiBTZXQgQUxMIFRBQkxFUyBmbGFnICovCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRp b25fcHViYWxsdGFibGVzIC0gMV0gPSBCb29sR2V0RGF0dW0odHJ1ZSk7CisJcmVwbGFjZXNbQW51 bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMgLSAxXSA9IHRydWU7CisKKwl0dXAgPSBoZWFw X21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscywK KwkJCQkJCQlyZXBsYWNlcyk7CisKKwkvKiBVcGRhdGUgdGhlIGNhdGFsb2cuICovCisJQ2F0YWxv Z1R1cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXApOworfQorCiAvKgogICogQWRkIG9y IHJlbW92ZSB0YWJsZSB0by9mcm9tIHB1YmxpY2F0aW9uLgogICovCkBAIC0xNTA3LDYgKzE2MDYs MjAgQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRp b25TdG10ICpzdG10KQogCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIE9CSkVD VF9QVUJMSUNBVElPTiwKIAkJCQkJICAgc3RtdC0+cHVibmFtZSk7CiAKKwlpZiAoc3RtdC0+Zm9y X2FsbF90YWJsZXMpCisJeworCQlib29sCQlpc2RlZmF1bHQgPSBDaGVja1B1YmxpY2F0aW9uRGVm VmFsdWVzKHR1cCk7CisKKwkJaWYgKCFpc2RlZmF1bHQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJCWVycm1z ZygiYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVm YXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzIiksCisJCQkJCWVycmRldGFpbCgiQUxM IFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91 bGQgYmUgYXNzb2NpYXRlZC4iKTsKKwkJCQkJZXJyaGludCgiVXNlIEFMVEVSIFBVQkxJQ0FUSU9O IC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24iKSk7CisKKwkJQWx0ZXJQdWJsaWNh dGlvblNldEFsbFRhYmxlcyhyZWwsIHR1cCk7CisJfQorCiAJaWYgKHN0bXQtPm9wdGlvbnMpCiAJ CUFsdGVyUHVibGljYXRpb25PcHRpb25zKHBzdGF0ZSwgc3RtdCwgcmVsLCB0dXApOwogCWVsc2Ug aWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9SZXNldFB1YmxpY2F0aW9uKQpAQCAtMTc1Miw2ICsxODY1 LDcgQEAgT3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAJCXB1Yl9yZWwtPnJlbGF0aW9uID0g cmVsOwogCQlwdWJfcmVsLT53aGVyZUNsYXVzZSA9IHQtPndoZXJlQ2xhdXNlOwogCQlwdWJfcmVs LT5jb2x1bW5zID0gdC0+Y29sdW1uczsKKwkJcHViX3JlbC0+ZXhjZXB0ID0gdC0+ZXhjZXB0Owog CQlyZWxzID0gbGFwcGVuZChyZWxzLCBwdWJfcmVsKTsKIAkJcmVsaWRzID0gbGFwcGVuZF9vaWQo cmVsaWRzLCBteXJlbGlkKTsKIApAQCAtMTgyNCw2ICsxOTM4LDcgQEAgT3BlblRhYmxlTGlzdChM aXN0ICp0YWJsZXMpCiAKIAkJCQkvKiBjaGlsZCBpbmhlcml0cyBjb2x1bW4gbGlzdCBmcm9tIHBh cmVudCAqLwogCQkJCXB1Yl9yZWwtPmNvbHVtbnMgPSB0LT5jb2x1bW5zOworCQkJCXB1Yl9yZWwt PmV4Y2VwdCA9IHQtPmV4Y2VwdDsKIAkJCQlyZWxzID0gbGFwcGVuZChyZWxzLCBwdWJfcmVsKTsK IAkJCQlyZWxpZHMgPSBsYXBwZW5kX29pZChyZWxpZHMsIGNoaWxkcmVsaWQpOwogCkBAIC0xODk5 LDggKzIwMTQsNiBAQCBQdWJsaWNhdGlvbkFkZFRhYmxlcyhPaWQgcHViaWQsIExpc3QgKnJlbHMs IGJvb2wgaWZfbm90X2V4aXN0cywKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIAotCUFzc2VydCghc3Rt dCB8fCAhc3RtdC0+Zm9yX2FsbF90YWJsZXMpOwotCiAJZm9yZWFjaChsYywgcmVscykKIAl7CiAJ CVB1YmxpY2F0aW9uUmVsSW5mbyAqcHViX3JlbCA9IChQdWJsaWNhdGlvblJlbEluZm8gKikgbGZp cnN0KGxjKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggMmRlMGViYWNlYy4uNWQ5N2Vh ZGY1NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTE2Mjc2LDcgKzE2Mjc2LDcgQEAg QVRQcmVwQ2hhbmdlUGVyc2lzdGVuY2UoUmVsYXRpb24gcmVsLCBib29sIHRvTG9nZ2VkKQogCSAq IFVOTE9HR0VEIGFzIFVOTE9HR0VEIHRhYmxlcyBjYW4ndCBiZSBwdWJsaXNoZWQuCiAJICovCiAJ aWYgKCF0b0xvZ2dlZCAmJgotCQlsaXN0X2xlbmd0aChHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhS ZWxhdGlvbkdldFJlbGlkKHJlbCkpKSA+IDApCisJCWxpc3RfbGVuZ3RoKEdldFJlbGF0aW9uUHVi bGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgZmFsc2UpKSA+IDApCiAJCWVyZXBvcnQo RVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9T VEFURSksCiAJCQkJIGVycm1zZygiY2Fubm90IGNoYW5nZSB0YWJsZSBcIiVzXCIgdG8gdW5sb2dn ZWQgYmVjYXVzZSBpdCBpcyBwYXJ0IG9mIGEgcHVibGljYXRpb24iLApAQCAtMTY0MTMsNyArMTY0 MTMsNyBAQCBBbHRlclRhYmxlTmFtZXNwYWNlKEFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqc3RtdCwg T2lkICpvbGRzY2hlbWEpCiAJewogCQlMaXN0Q2VsbCAgICpsYzsKIAkJTGlzdAkgICAqc2NoZW1h UHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKG5zcE9pZCk7Ci0JCUxpc3QJICAgKnJlbFB1 YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CisJ CUxpc3QJICAgKnJlbFB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0 UmVsaWQocmVsKSwgZmFsc2UpOwogCiAJCWZvcmVhY2gobGMsIHJlbFB1YmlkcykKIAkJewpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKaW5kZXggNmQyZWUyZWU5Mi4uMjQ4NDk2YjFkYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC00NTUs NyArNDU1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJl bG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQl0cmFuc2Zvcm1fZWxlbWVu dF9saXN0IHRyYW5zZm9ybV90eXBlX2xpc3QKIAkJCQlUcmlnZ2VyVHJhbnNpdGlvbnMgVHJpZ2dl clJlZmVyZW5jaW5nCiAJCQkJdmFjdXVtX3JlbGF0aW9uX2xpc3Qgb3B0X3ZhY3V1bV9yZWxhdGlv bl9saXN0Ci0JCQkJZHJvcF9vcHRpb25fbGlzdCBwdWJfb2JqX2xpc3QKKwkJCQlkcm9wX29wdGlv bl9saXN0IHB1Yl9vYmpfbGlzdCBleGNlcHRfcHViX29ial9saXN0CiAKICV0eXBlIDxub2RlPglv cHRfcm91dGluZV9ib2R5CiAldHlwZSA8Z3JvdXBjbGF1c2U+IGdyb3VwX2NsYXVzZQpAQCAtNTg4 LDYgKzU4OCw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpy ZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bm9kZT4JdmFyX3Zh bHVlIHpvbmVfdmFsdWUKICV0eXBlIDxyb2xlc3BlYz4gYXV0aF9pZGVudCBSb2xlU3BlYyBvcHRf Z3JhbnRlZF9ieQogJXR5cGUgPHB1YmxpY2F0aW9ub2JqZWN0c3BlYz4gUHVibGljYXRpb25PYmpT cGVjCisldHlwZSA8cHVibGljYXRpb25vYmplY3RzcGVjPiBFeGNlcHRQdWJsaWNhdGlvbk9ialNw ZWMKIAogJXR5cGUgPGtleXdvcmQ+IHVucmVzZXJ2ZWRfa2V5d29yZCB0eXBlX2Z1bmNfbmFtZV9r ZXl3b3JkCiAldHlwZSA8a2V5d29yZD4gY29sX25hbWVfa2V5d29yZCByZXNlcnZlZF9rZXl3b3Jk CkBAIC0xMDQxMCw3ICsxMDQxMSw3IEBAIEFsdGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUg YWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dORVIgVE8gUm9sZVNwZWMKICAqCiAgKiBDUkVBVEUg UFVCTElDQVRJT04gbmFtZSBbV0lUSCBvcHRpb25zXQogICoKLSAqIENSRUFURSBQVUJMSUNBVElP TiBGT1IgQUxMIFRBQkxFUyBbV0lUSCBvcHRpb25zXQorICogQ1JFQVRFIFBVQkxJQ0FUSU9OIEZP UiBBTEwgVEFCTEVTIFtFWENFUFQgW1RBQkxFXSB0YWJsZSBbLCAuLi5dXSBbV0lUSCBvcHRpb25z XQogICoKICAqIENSRUFURSBQVUJMSUNBVElPTiBGT1IgcHViX29iaiBbLCAuLi5dIFtXSVRIIG9w dGlvbnNdCiAgKgpAQCAtMTA0MzAsMTIgKzEwNDMxLDEzIEBAIENyZWF0ZVB1YmxpY2F0aW9uU3Rt dDoKIAkJCQkJbi0+b3B0aW9ucyA9ICQ0OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQot CQkJfCBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBGT1IgQUxMIFRBQkxFUyBvcHRfZGVmaW5pdGlv bgorCQkJfCBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBGT1IgQUxMIFRBQkxFUyBleGNlcHRfcHVi X29ial9saXN0IG9wdF9kZWZpbml0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVQdWJsaWNhdGlvblN0 bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVQdWJsaWNhdGlvblN0bXQpOwogCiAJCQkJCW4tPnB1Ym5h bWUgPSAkMzsKLQkJCQkJbi0+b3B0aW9ucyA9ICQ3OworCQkJCQluLT5vcHRpb25zID0gJDg7CisJ CQkJCW4tPnB1Ym9iamVjdHMgPSAoTGlzdCAqKSQ3OwogCQkJCQluLT5mb3JfYWxsX3RhYmxlcyA9 IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC0xMDQ3Myw2ICsxMDQ3NSw3 IEBAIFB1YmxpY2F0aW9uT2JqU3BlYzoKIAkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQy OwogCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKIAkJCQkJJCQtPnB1YnRhYmxlLT53 aGVyZUNsYXVzZSA9ICQ0OworCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQl9CiAJCQl8IEFM TCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ29sSWQKIAkJCQl7CkBAIC0xMDU0OCw2ICsxMDU1MSwyNSBA QCBwdWJfb2JqX2xpc3Q6CVB1YmxpY2F0aW9uT2JqU3BlYwogCQkJCQl7ICQkID0gbGFwcGVuZCgk MSwgJDMpOyB9CiAJOwogCitFeGNlcHRQdWJsaWNhdGlvbk9ialNwZWM6CisJCQkgcmVsYXRpb25f ZXhwcgorCQkJCXsKKwkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOworCQkJ CQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRTsKKwkJCQkJJCQt PnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJsZSk7CisJCQkJCSQkLT5wdWJ0YWJs ZS0+ZXhjZXB0ID0gdHJ1ZTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQxOworCQkJ CQkkJC0+bG9jYXRpb24gPSBAMTsKKwkJCQl9CisJOworCitleGNlcHRfcHViX29ial9saXN0OglF WENFUFQgb3B0X3RhYmxlIEV4Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYworCQkJCQl7ICQkID0gbGlz dF9tYWtlMSgkMyk7IH0KKwkJCXwgZXhjZXB0X3B1Yl9vYmpfbGlzdCAnLCcgRXhjZXB0UHVibGlj YXRpb25PYmpTcGVjCisJCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KKwkJCXwgIC8qRU1Q VFkqLwkJCQkJCQkJeyAkJCA9IE5VTEw7IH0KKwk7CisKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgog ICoKICAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgU0VUICggb3B0aW9ucyApCkBAIC0xMDU2MCw2 ICsxMDU4Miw4IEBAIHB1Yl9vYmpfbGlzdDoJUHVibGljYXRpb25PYmpTcGVjCiAgKgogICogQUxU RVIgUFVCTElDQVRJT04gbmFtZSBSRVNFVAogICoKKyAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUg QUREIEFMTCBUQUJMRVMgRVhDRVBUIFtUQUJMRV0gdGFibGVfbmFtZSBbLCAuLi5dCisgKgogICog cHViX29iaiBpcyBvbmUgb2Y6CiAgKgogICoJCVRBQkxFIHRhYmxlX25hbWUgWywgLi4uXQpAQCAt MTA1ODYsNiArMTA2MTAsMTUgQEAgQWx0ZXJQdWJsaWNhdGlvblN0bXQ6CiAJCQkJCW4tPmFjdGlv biA9IEFQX0FkZE9iamVjdHM7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFM VEVSIFBVQkxJQ0FUSU9OIG5hbWUgQUREX1AgQUxMIFRBQkxFUyBleGNlcHRfcHViX29ial9saXN0 CisJCQkJeworCQkJCQlBbHRlclB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHVi bGljYXRpb25TdG10KTsKKwkJCQkJbi0+cHVibmFtZSA9ICQzOworCQkJCQluLT5wdWJvYmplY3Rz ID0gJDc7CisJCQkJCW4tPmZvcl9hbGxfdGFibGVzID0gdHJ1ZTsKKwkJCQkJbi0+YWN0aW9uID0g QVBfQWRkT2JqZWN0czsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQkJfCBBTFRFUiBQ VUJMSUNBVElPTiBuYW1lIFNFVCBwdWJfb2JqX2xpc3QKIAkJCQl7CiAJCQkJCUFsdGVyUHVibGlj YXRpb25TdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQdWJsaWNhdGlvblN0bXQpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggOGRlYWU1NzE0My4uMjE5 M2IzZGFjNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdv dXRwdXQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5j CkBAIC0xOTk2LDcgKzE5OTYsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpk YXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAlpZiAoIWVudHJ5LT5yZXBsaWNhdGVfdmFsaWQpCiAJ ewogCQlPaWQJCQlzY2hlbWFJZCA9IGdldF9yZWxfbmFtZXNwYWNlKHJlbGlkKTsKLQkJTGlzdAkg ICAqcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQpOworCQlMaXN0CSAgICpw dWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgZmFsc2UpOworCQlMaXN0CSAg ICpleGNlcHRUYWJsZVB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCB0cnVl KTsKIAogCQkvKgogCQkgKiBXZSBkb24ndCBhY3F1aXJlIGEgbG9jayBvbiB0aGUgbmFtZXNwYWNl IHN5c3RlbSB0YWJsZSBhcyB3ZSBidWlsZApAQCAtMjA4NSwyMiArMjA4Niw2IEBAIGdldF9yZWxf c3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJT2lk CQkJcHViX3JlbGlkID0gcmVsaWQ7CiAJCQlpbnQJCQlhbmNlc3Rvcl9sZXZlbCA9IDA7CiAKLQkJ CS8qCi0JCQkgKiBJZiB0aGlzIGlzIGEgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb24sIHBpY2sg dGhlIHBhcnRpdGlvbgotCQkJICogcm9vdCBhbmQgc2V0IHRoZSBhbmNlc3RvciBsZXZlbCBhY2Nv cmRpbmdseS4KLQkJCSAqLwotCQkJaWYgKHB1Yi0+YWxsdGFibGVzKQotCQkJewotCQkJCXB1Ymxp c2ggPSB0cnVlOwotCQkJCWlmIChwdWItPnB1YnZpYXJvb3QgJiYgYW1fcGFydGl0aW9uKQotCQkJ CXsKLQkJCQkJTGlzdAkgICAqYW5jZXN0b3JzID0gZ2V0X3BhcnRpdGlvbl9hbmNlc3RvcnMocmVs aWQpOwotCi0JCQkJCXB1Yl9yZWxpZCA9IGxsYXN0X29pZChhbmNlc3RvcnMpOwotCQkJCQlhbmNl c3Rvcl9sZXZlbCA9IGxpc3RfbGVuZ3RoKGFuY2VzdG9ycyk7Ci0JCQkJfQotCQkJfQotCiAJCQlp ZiAoIXB1Ymxpc2gpCiAJCQl7CiAJCQkJYm9vbAkJYW5jZXN0b3JfcHVibGlzaGVkID0gZmFsc2U7 CkBAIC0yMTE5LDcgKzIxMDQsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpk YXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQkJCQlhbmNlc3RvciA9IEdldFRvcE1vc3RBbmNl c3RvckluUHVibGljYXRpb24ocHViLT5vaWQsCiAJCQkJCQkJCQkJCQkJCQkgICBhbmNlc3RvcnMs Ci0JCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWwpOworCQkJCQkJCQkJCQkJCQkJICAgJmxldmVsLAor CQkJCQkJCQkJCQkJCQkJICAgcHViLT5hbGx0YWJsZXMpOwogCiAJCQkJCWlmIChhbmNlc3RvciAh PSBJbnZhbGlkT2lkKQogCQkJCQl7CkBAIC0yMTM0LDYgKzIxMjAsOCBAQCBnZXRfcmVsX3N5bmNf ZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQkJCWlmIChs aXN0X21lbWJlcl9vaWQocHViaWRzLCBwdWItPm9pZCkgfHwKIAkJCQkJbGlzdF9tZW1iZXJfb2lk KHNjaGVtYVB1YmlkcywgcHViLT5vaWQpIHx8CisJCQkJCShwdWItPmFsbHRhYmxlcyAmJgorCQkJ CQkgIWxpc3RfbWVtYmVyX29pZChleGNlcHRUYWJsZVB1YmlkcywgcHViLT5vaWQpKSB8fAogCQkJ CQlhbmNlc3Rvcl9wdWJsaXNoZWQpCiAJCQkJCXB1Ymxpc2ggPSB0cnVlOwogCQkJfQpAQCAtMjIw OSw2ICsyMTk3LDcgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVs YXRpb24gcmVsYXRpb24pCiAKIAkJbGlzdF9mcmVlKHB1Ymlkcyk7CiAJCWxpc3RfZnJlZShzY2hl bWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoZXhjZXB0VGFibGVQdWJpZHMpOwogCQlsaXN0X2ZyZWUo cmVsX3B1YmxpY2F0aW9ucyk7CiAKIAkJZW50cnktPnJlcGxpY2F0ZV92YWxpZCA9IHRydWU7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwppbmRleCA2MGU3MmY5ZThiLi40NjU5Yzc2NmRjIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKQEAgLTU1NjEsNiArNTU2MSw4IEBAIHZvaWQK IFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0 aW9uRGVzYyAqcHViZGVzYykKIHsKIAlMaXN0CSAgICpwdWJvaWRzOworCUxpc3QJICAgKmFsbHRh Ymxlc3B1Ym9pZHM7CisJTGlzdAkgICAqZXhjZXB0cHVib2lkcyA9IE5JTDsKIAlMaXN0Q2VsbCAg ICpsYzsKIAlNZW1vcnlDb250ZXh0IG9sZGN4dDsKIAlPaWQJCQlzY2hlbWFpZDsKQEAgLTU1OTQs NyArNTU5Niw3IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRp b24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAlwdWJkZXNjLT5jb2xzX3ZhbGlkX2Zvcl9k ZWxldGUgPSB0cnVlOwogCiAJLyogRmV0Y2ggdGhlIHB1YmxpY2F0aW9uIG1lbWJlcnNoaXAgaW5m by4gKi8KLQlwdWJvaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQpOworCXB1Ym9p ZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgZmFsc2UpOwogCXNjaGVtYWlkID0g UmVsYXRpb25HZXROYW1lc3BhY2UocmVsYXRpb24pOwogCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91 bmlxdWVfb2lkKHB1Ym9pZHMsIEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFpZCkpOwogCkBA IC01NjA4LDE0ICs1NjEwLDE5IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRp b24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAkJCU9pZAkJCWFuY2VzdG9y ID0gbGZpcnN0X29pZChsYyk7CiAKIAkJCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lk KHB1Ym9pZHMsCi0JCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3Rvcikp OworCQkJCQkJCQkJCQkgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3IsIGZhbHNlKSk7 CiAJCQlzY2hlbWFpZCA9IGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9yKTsKIAkJCXB1Ym9pZHMg PSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCiAJCQkJCQkJCQkJCSBHZXRTY2hlbWFQ dWJsaWNhdGlvbnMoc2NoZW1haWQpKTsKKwkJCWV4Y2VwdHB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91 bmlxdWVfb2lkKGV4Y2VwdHB1Ym9pZHMsCisJCQkJCQkJCQkJCQkgICBHZXRSZWxhdGlvblB1Ymxp Y2F0aW9ucyhhbmNlc3RvciwgdHJ1ZSkpOwogCQl9CiAJfQotCXB1Ym9pZHMgPSBsaXN0X2NvbmNh dF91bmlxdWVfb2lkKHB1Ym9pZHMsIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucygpKTsKIAorCWFs bHRhYmxlc3B1Ym9pZHMgPSBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnMoKTsKKwlwdWJvaWRzID0g bGlzdF9jb25jYXRfdW5pcXVlX29pZChwdWJvaWRzLAorCQkJCQkJCQkJIGxpc3RfZGlmZmVyZW5j ZV9vaWQoYWxsdGFibGVzcHVib2lkcywKKwkJCQkJCQkJCQkJCQkJIGV4Y2VwdHB1Ym9pZHMpKTsK IAlmb3JlYWNoKGxjLCBwdWJvaWRzKQogCXsKIAkJT2lkCQkJcHViaWQgPSBsZmlyc3Rfb2lkKGxj KTsKQEAgLTU2NDQsNyArNTY1MSw3IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVs YXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAkJaWYgKCFwdWJmb3Jt LT5wdWJhbGx0YWJsZXMgJiYKIAkJCShwdWJmb3JtLT5wdWJ1cGRhdGUgfHwgcHViZm9ybS0+cHVi ZGVsZXRlKSAmJgogCQkJcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKHB1YmlkLCByZWxh dGlvbiwgYW5jZXN0b3JzLAotCQkJCQkJCQkJCSAgIHB1YmZvcm0tPnB1YnZpYXJvb3QpKQorCQkJ CQkJCQkJCSAgIHB1YmZvcm0tPnB1YnZpYXJvb3QsIHB1YmZvcm0tPnB1YmFsbHRhYmxlcykpCiAJ CXsKIAkJCWlmIChwdWJmb3JtLT5wdWJ1cGRhdGUpCiAJCQkJcHViZGVzYy0+cmZfdmFsaWRfZm9y X3VwZGF0ZSA9IGZhbHNlOwpAQCAtNTY2MSw3ICs1NjY4LDcgQEAgUmVsYXRpb25CdWlsZFB1Ymxp Y2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQog CQlpZiAoIXB1YmZvcm0tPnB1YmFsbHRhYmxlcyAmJgogCQkJKHB1YmZvcm0tPnB1YnVwZGF0ZSB8 fCBwdWJmb3JtLT5wdWJkZWxldGUpICYmCiAJCQlwdWJfY29sbGlzdF9jb250YWluc19pbnZhbGlk X2NvbHVtbihwdWJpZCwgcmVsYXRpb24sIGFuY2VzdG9ycywKLQkJCQkJCQkJCQkJCXB1YmZvcm0t PnB1YnZpYXJvb3QpKQorCQkJCQkJCQkJCQkJcHViZm9ybS0+cHVidmlhcm9vdCwgcHViZm9ybS0+ cHViYWxsdGFibGVzKSkKIAkJewogCQkJaWYgKHB1YmZvcm0tPnB1YnVwZGF0ZSkKIAkJCQlwdWJk ZXNjLT5jb2xzX3ZhbGlkX2Zvcl91cGRhdGUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDdjYzlj NzJlNDkuLjA2ZjgzYTgwMTAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMTI3LDYgKzEyNyw4IEBAIHN0YXRp YyBTaW1wbGVPaWRMaXN0IGZvcmVpZ25fc2VydmVyc19pbmNsdWRlX29pZHMgPSB7TlVMTCwgTlVM TH07CiBzdGF0aWMgU2ltcGxlU3RyaW5nTGlzdCBleHRlbnNpb25faW5jbHVkZV9wYXR0ZXJucyA9 IHtOVUxMLCBOVUxMfTsKIHN0YXRpYyBTaW1wbGVPaWRMaXN0IGV4dGVuc2lvbl9pbmNsdWRlX29p ZHMgPSB7TlVMTCwgTlVMTH07CiAKK3N0YXRpYyBTaW1wbGVQdHJMaXN0IGV4Y2VwdGluZm8gPSB7 TlVMTCwgTlVMTH07CisKIHN0YXRpYyBjb25zdCBDYXRhbG9nSWQgbmlsQ2F0YWxvZ0lkID0gezAs IDB9OwogCiAvKiBvdmVycmlkZSBmb3Igc3RhbmRhcmQgZXh0cmFfZmxvYXRfZGlnaXRzIHNldHRp bmcgKi8KQEAgLTM5ODAsOCArMzk4MiwzNCBAQCBkdW1wUHVibGljYXRpb24oQXJjaGl2ZSAqZm91 dCwgY29uc3QgUHVibGljYXRpb25JbmZvICpwdWJpbmZvKQogCQkJCQkgIHFwdWJuYW1lKTsKIAog CWlmIChwdWJpbmZvLT5wdWJhbGx0YWJsZXMpCisJeworCQlTaW1wbGVQdHJMaXN0Q2VsbCAqY2Vs bDsKKwkJYm9vbAkJZmlyc3QgPSB0cnVlOworCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LCAiIEZPUiBBTEwgVEFCTEVTIik7CiAKKwkJLyogSW5jbHVkZSBleGNlcHRpb24gdGFibGVzIGlm IHRoZSBwdWJsaWNhdGlvbiBoYXMgZXhjZXB0IHRhYmxlcyAqLworCQlmb3IgKGNlbGwgPSBleGNl cHRpbmZvLmhlYWQ7IGNlbGw7IGNlbGwgPSBjZWxsLT5uZXh0KQorCQl7CisJCQlQdWJsaWNhdGlv blJlbEluZm8gKnB1YnJpbmZvID0gKFB1YmxpY2F0aW9uUmVsSW5mbyAqKSBjZWxsLT5wdHI7CisJ CQlUYWJsZUluZm8gICp0YmluZm87CisKKwkJCWlmIChwdWJpbmZvID09IHB1YnJpbmZvLT5wdWJs aWNhdGlvbikKKwkJCXsKKwkJCQl0YmluZm8gPSBwdWJyaW5mby0+cHVidGFibGU7CisKKwkJCQlp ZiAoZmlyc3QpCisJCQkJeworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBFWENF UFQgVEFCTEUiKTsKKwkJCQkJZmlyc3QgPSBmYWxzZTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiwiKTsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihx dWVyeSwgIiBPTkxZICVzIiwgZm10UXVhbGlmaWVkRHVtcGFibGUodGJpbmZvKSk7CisJCQl9CisJ CX0KKwl9CisKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBXSVRIIChwdWJsaXNoID0g JyIpOwogCWlmIChwdWJpbmZvLT5wdWJpbnNlcnQpCiAJewpAQCAtNDE1MSw2ICs0MTc5LDcgQEAg Z2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwg aW50IG51bVRhYmxlcykKIAlpbnQJCQlpX3BycmVsaWQ7CiAJaW50CQkJaV9wcnJlbHF1YWw7CiAJ aW50CQkJaV9wcmF0dHJzOworCWludAkJCWlfcHJleGNlcHQ7CiAJaW50CQkJaSwKIAkJCQlqLAog CQkJCW50dXBzOwpAQCAtNDE2Miw4ICs0MTkxLDE3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFy Y2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAKIAkvKiBD b2xsZWN0IGFsbCBwdWJsaWNhdGlvbiBtZW1iZXJzaGlwIGluZm8uICovCiAJaWYgKGZvdXQtPnJl bW90ZVZlcnNpb24gPj0gMTUwMDAwKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks CisJCQkJCQkJICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwgcHJwdWJpZCwgcHJyZWxpZCxcbiIpOwor CisJCS8qIEZJWE1FOiAxNTAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTYwMDAwIGxhdGVyIGZv ciBQRzE2LiAqLworCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNTAwMDApCisJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBwcmV4Y2VwdCxcbiIpOworCQllbHNlCisJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmYWxzZSBBUyBwcmV4Y2VwdCxcbiIpOworCiAJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQs IHBycHViaWQsIHBycmVsaWQsICIKIAkJCQkJCQkgInBnX2NhdGFsb2cucGdfZ2V0X2V4cHIocHJx dWFsLCBwcnJlbGlkKSBBUyBwcnJlbHF1YWwsICIKIAkJCQkJCQkgIihDQVNFXG4iCiAJCQkJCQkJ ICIgIFdIRU4gcHIucHJhdHRycyBJUyBOT1QgTlVMTCBUSEVOXG4iCkBAIC00MTc0LDYgKzQyMTIs NyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5m b1tdLCBpbnQgbnVtVGFibGVzKQogCQkJCQkJCSAiICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5w cnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJzW3NdKVxuIgogCQkJCQkJCSAiICBFTFNFIE5VTEwg RU5EKSBwcmF0dHJzICIKIAkJCQkJCQkgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9y ZWwgcHIiKTsKKwl9CiAJZWxzZQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJ CQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJlbGlkLCAiCkBAIC00MTg5LDYg KzQyMjgsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8g dGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCWlfcHJyZWxpZCA9IFBRZm51bWJlcihyZXMsICJw cnJlbGlkIik7CiAJaV9wcnJlbHF1YWwgPSBQUWZudW1iZXIocmVzLCAicHJyZWxxdWFsIik7CiAJ aV9wcmF0dHJzID0gUFFmbnVtYmVyKHJlcywgInByYXR0cnMiKTsKKwlpX3ByZXhjZXB0ID0gUFFm bnVtYmVyKHJlcywgInByZXhjZXB0Iik7CiAKIAkvKiB0aGlzIGFsbG9jYXRpb24gbWF5IGJlIG1v cmUgdGhhbiB3ZSBuZWVkICovCiAJcHVicmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2Yo UHVibGljYXRpb25SZWxJbmZvKSk7CkBAIC00MjAwLDYgKzQyNDAsNyBAQCBnZXRQdWJsaWNhdGlv blRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVz KQogCQlPaWQJCQlwcnJlbGlkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3BycmVsaWQp KTsKIAkJUHVibGljYXRpb25JbmZvICpwdWJpbmZvOwogCQlUYWJsZUluZm8gICp0YmluZm87CisJ CWNoYXIJICAgKnByZXhjZXB0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ByZXhj ZXB0KSk7CiAKIAkJLyoKIAkJICogSWdub3JlIGFueSBlbnRyaWVzIGZvciB3aGljaCB3ZSBhcmVu J3QgaW50ZXJlc3RlZCBpbiBlaXRoZXIgdGhlCkBAIC00MjIwLDcgKzQyNjEsMTEgQEAgZ2V0UHVi bGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51 bVRhYmxlcykKIAkJCWNvbnRpbnVlOwogCiAJCS8qIE9LLCBtYWtlIGEgRHVtcGFibGVPYmplY3Qg Zm9yIHRoaXMgcmVsYXRpb25zaGlwICovCi0JCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERP X1BVQkxJQ0FUSU9OX1JFTDsKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwgImYiKSA9PSAwKQorCQkJ cHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fUkVMOworCQllbHNlCisJ CQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMOwor CiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQudGFibGVvaWQgPQogCQkJYXRvb2lkKFBRZ2V0dmFs dWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQub2lkID0g YXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOwpAQCAtNDI1OSw2ICs0MzA0LDkgQEAg Z2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwg aW50IG51bVRhYmxlcykKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICov CiAJCXNlbGVjdER1bXBhYmxlUHVibGljYXRpb25PYmplY3QoJihwdWJyaW5mb1tqXS5kb2JqKSwg Zm91dCk7CiAKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwgInQiKSA9PSAwKQorCQkJc2ltcGxlX3B0 cl9saXN0X2FwcGVuZCgmZXhjZXB0aW5mbywgJnB1YnJpbmZvW2pdKTsKKwogCQlqKys7CiAJfQog CkBAIC05OTM2LDYgKzk5ODQsOSBAQCBkdW1wRHVtcGFibGVPYmplY3QoQXJjaGl2ZSAqZm91dCwg RHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNhc2UgRE9fUFVCTElDQVRJT046CiAJCQlkdW1wUHVi bGljYXRpb24oZm91dCwgKGNvbnN0IFB1YmxpY2F0aW9uSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFr OworCQljYXNlIERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw6CisJCQkvKiB3aWxsIGJlIGR1bXBl ZCBpbiBkdW1wUHVibGljYXRpb24gKi8KKwkJCWJyZWFrOwogCQljYXNlIERPX1BVQkxJQ0FUSU9O X1JFTDoKIAkJCWR1bXBQdWJsaWNhdGlvblRhYmxlKGZvdXQsIChjb25zdCBQdWJsaWNhdGlvblJl bEluZm8gKikgZG9iaik7CiAJCQlicmVhazsKQEAgLTE3ODY5LDYgKzE3OTIwLDcgQEAgYWRkQm91 bmRhcnlEZXBlbmRlbmNpZXMoRHVtcGFibGVPYmplY3QgKipkb2JqcywgaW50IG51bU9ianMsCiAJ CQljYXNlIERPX0RFRkFVTFRfQUNMOgogCQkJY2FzZSBET19QT0xJQ1k6CiAJCQljYXNlIERPX1BV QkxJQ0FUSU9OOgorCQkJY2FzZSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMOgogCQkJY2FzZSBE T19QVUJMSUNBVElPTl9SRUw6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVN QToKIAkJCWNhc2UgRE9fU1VCU0NSSVBUSU9OOgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggMWQyMWMyOTA2Zi4u MDdhNTBlY2U2OCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC04MCw2ICs4MCw3IEBAIHR5cGVkZWYgZW51bQog CURPX1JFRlJFU0hfTUFUVklFVywKIAlET19QT0xJQ1ksCiAJRE9fUFVCTElDQVRJT04sCisJRE9f UFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlET19QVUJMSUNBVElPTl9SRUwsCiAJRE9fUFVCTElD QVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCURPX1NVQlNDUklQVElPTgpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29y dC5jCmluZGV4IDVkZTMyNDFlYjQuLmE2NTk1ZjI1YTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMK QEAgLTkwLDYgKzkwLDcgQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19GS19D T05TVFJBSU5ULAogCVBSSU9fUE9MSUNZLAogCVBSSU9fUFVCTElDQVRJT04sCisJUFJJT19QVUJM SUNBVElPTl9FWENFUFRfUkVMLAogCVBSSU9fUFVCTElDQVRJT05fUkVMLAogCVBSSU9fUFVCTElD QVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCVBSSU9fU1VCU0NSSVBUSU9OLApAQCAtMTQ0LDYgKzE0 NSw3IEBAIHN0YXRpYyBjb25zdCBpbnQgZGJPYmplY3RUeXBlUHJpb3JpdHlbXSA9CiAJUFJJT19S RUZSRVNIX01BVFZJRVcsCQkvKiBET19SRUZSRVNIX01BVFZJRVcgKi8KIAlQUklPX1BPTElDWSwJ CQkJLyogRE9fUE9MSUNZICovCiAJUFJJT19QVUJMSUNBVElPTiwJCQkvKiBET19QVUJMSUNBVElP TiAqLworCVBSSU9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwJLyogRE9fUFVCTElDQVRJT05fRVhD RVBUX1JFTCAqLwogCVBSSU9fUFVCTElDQVRJT05fUkVMLAkJLyogRE9fUFVCTElDQVRJT05fUkVM ICovCiAJUFJJT19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUEsCS8qIERPX1BVQkxJQ0FUSU9O X1RBQkxFX0lOX1NDSEVNQSAqLwogCVBSSU9fU1VCU0NSSVBUSU9OCQkJLyogRE9fU1VCU0NSSVBU SU9OICovCkBAIC0xNDgzLDYgKzE0ODUsMTEgQEAgZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1w YWJsZU9iamVjdCAqb2JqLCBjaGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkgIlBVQkxJQ0FU SU9OIChJRCAlZCBPSUQgJXUpIiwKIAkJCQkJIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7 CiAJCQlyZXR1cm47CisJCWNhc2UgRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDoKKwkJCXNucHJp bnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJICJQVUJMSUNBVElPTiBFWENFUFQgVEFCTEUgKElEICVk IE9JRCAldSkiLAorCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKKwkJCXJldHVy bjsKIAkJY2FzZSBET19QVUJMSUNBVElPTl9SRUw6CiAJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUs CiAJCQkJCSAiUFVCTElDQVRJT04gVEFCTEUgKElEICVkIE9JRCAldSkiLApkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbAppbmRleCAxZjA4NzE2ZjY5Li5hMDZkNmM5NzZiIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbApAQCAtMjQ1NCw2ICsyNDU0LDMyIEBAIG15ICV0ZXN0cyA9ICgKIAkJbGlrZSA9 PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCiAJfSwKIAorCSdDUkVB VEUgUFVCTElDQVRJT04gcHViNScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0 ZV9zcWwgICA9PiAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjUgRk9SIEFMTCBUQUJMRVMgRVhDRVBU IGR1bXBfdGVzdC50ZXN0X3RhYmxlOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBQ VUJMSUNBVElPTiBwdWI1IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBPTkxZIGR1bXBfdGVz dC50ZXN0X3RhYmxlIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1 bmNhdGUnKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0 X2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVt YSA9PiAxLAorCQkJZXhjbHVkZV90ZXN0X3RhYmxlICAgICAgID0+IDEsCisJCX0sCisJfSwKKwor CSdDUkVBVEUgUFVCTElDQVRJT04gcHViNicgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJ CWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjYgRk9SIEFMTCBUQUJMRVMg RVhDRVBUIFRBQkxFIGR1bXBfdGVzdC50ZXN0X3RhYmxlLCBkdW1wX3Rlc3QudGVzdF9zZWNvbmRf dGFibGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjYg Rk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIE9OTFkgZHVtcF90ZXN0LnRlc3RfdGFibGUsIE9O TFkgZHVtcF90ZXN0LnRlc3Rfc2Vjb25kX3RhYmxlIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1 cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxf cnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1 ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJZXhjbHVkZV90ZXN0X3RhYmxlICAgICAgID0+ IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEnID0+IHsKIAkJY3Jl YXRlX29yZGVyID0+IDUwLAogCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBTVUJTQ1JJUFRJT04g c3ViMQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwppbmRleCAxYTVkOTI0YTIzLi45OGIwYWQ5MjRmIDEwMDY0NAotLS0gYS9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMjk1 MCwxNyArMjk1MCwzNiBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hl bWFuYW1lLAogCQkJCQkJCQkgICIgICAgICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlk IEFORCBhdHRudW0gPSBwcmF0dHJzW3NdKVxuIgogCQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVM TCBFTkQpICIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIK LQkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9O IHAub2lkID0gcHIucHJwdWJpZFxuIgotCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5w Z19jbGFzcyBjIE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwci5w cnJlbGlkID0gJyVzJ1xuIgorCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNh dGlvbl9yZWwgcHIgT04gcC5vaWQgPSBwci5wcnB1YmlkXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBw Z19jYXRhbG9nLnBnX2NsYXNzIGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAg IldIRVJFIHByLnBycmVsaWQgPSAnJXMnXG4iLAorCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQpOwor CisJCQkJLyogRklYTUU6IDE1MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0byAxNjAwMDAgbGF0ZXIg Zm9yIFBHMTYuICovCisJCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQkJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiIEFORCBOT1QgcHIucHJleGNlcHRcbiIpOworCisJCQkJ YXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCQkJICAiVU5JT05cbiIKIAkJCQkJCQkJICAi U0VMRUNUIHB1Ym5hbWVcbiIKLQkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKLQkJCQkJCQkJICAi ICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiCQksIE5VTExcbiIKKwkJCQkJCQkJICAiCQksIE5V TExcbiIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJ CQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25f aXNfcHVibGlzaGFibGUoJyVzJylcbiIKLQkJCQkJCQkJICAiT1JERVIgQlkgMTsiLAotCQkJCQkJ CQkgIG9pZCwgb2lkLCBvaWQsIG9pZCk7CisJCQkJCQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVz IEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iLAorCQkJ CQkJCQkgIG9pZCk7CisKKwkJCQkvKiBGSVhNRTogMTUwMDAwIHNob3VsZCBiZSBjaGFuZ2VkIHRv IDE2MDAwMCBsYXRlciBmb3IgUEcxNi4gKi8KKwkJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAw MDApCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJCQkgICIgICAgIEFORCBO T1QgRVhJU1RTIChcbiIKKwkJCQkJCQkJCSAgIgkJU0VMRUNUIDFcbiIKKwkJCQkJCQkJCSAgIgkJ RlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwclxuIgorCQkJCQkJCQkJICAiCQlK T0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcGNcbiIKKwkJCQkJCQkJCSAgIgkJT04gcHIucHJyZWxp ZCA9IHBjLm9pZFxuIgorCQkJCQkJCQkJICAiCQlXSEVSRSBwci5wcnJlbGlkID0gJyVzJyBBTkQg cHIucHJwdWJpZCA9IHAub2lkKVxuIiwKKwkJCQkJCQkJCSAgb2lkKTsKKworCQkJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxOyIpOwogCQkJfQogCQkJZWxzZQogCQkJewpA QCAtNjMwMiw4ICs2MzIxLDEzIEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBh dHRlcm4pCiAJCQkJCQkJICAiICAgICBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwclxu IgogCQkJCQkJCSAgIldIRVJFIGMucmVsbmFtZXNwYWNlID0gbi5vaWRcbiIKIAkJCQkJCQkgICIg IEFORCBjLm9pZCA9IHByLnBycmVsaWRcbiIKLQkJCQkJCQkgICIgIEFORCBwci5wcnB1YmlkID0g JyVzJ1xuIgotCQkJCQkJCSAgIk9SREVSIEJZIDEsMiIsIHB1YmlkKTsKKwkJCQkJCQkgICIgIEFO RCBwci5wcnB1YmlkID0gJyVzJ1xuIiwgcHViaWQpOworCisJCQkvKiBGSVhNRTogMTUwMDAwIHNo b3VsZCBiZSBjaGFuZ2VkIHRvIDE2MDAwMCBsYXRlciBmb3IgUEcxNi4gKi8KKwkJCWlmIChwc2V0 LnN2ZXJzaW9uID49IDE1MDAwMCkKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiICBBTkQg Tk9UIHByLnByZXhjZXB0XG4iKTsKKworCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIk9SREVS IEJZIDEsMiIpOwogCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJU YWJsZXM6IiksIGZhbHNlLCAmY29udCkpCiAJCQkJZ290byBlcnJvcl9yZXR1cm47CiAKQEAgLTYz MjEsNiArNjM0NSwyNCBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJu KQogCQkJCQlnb3RvIGVycm9yX3JldHVybjsKIAkJCX0KIAkJfQorCQllbHNlCisJCXsKKwkJCS8q IEZJWE1FOiAxNTAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTYwMDAwIGxhdGVyIGZvciBQRzE2 LiAqLworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQkJeworCQkJCS8qIEdldCB0 aGUgZXhjbHVkZWQgdGFibGVzIGZvciB0aGUgc3BlY2lmaWVkIHB1YmxpY2F0aW9uICovCisJCQkJ cHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJICAiU0VMRUNUIGNvbmNhdChjLnJlbG5h bWVzcGFjZTo6cmVnbmFtZXNwYWNlLCAnLicsIGMucmVsbmFtZSlcbiIKKwkJCQkJCQkJICAiRlJP TSBwZ19jYXRhbG9nLnBnX2NsYXNzIGNcbiIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFs b2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgorCQkJCQkJ CQkgICJXSEVSRSBwci5wcnB1YmlkID0gJyVzJ1xuIgorCQkJCQkJCQkgICIgIEFORCBwci5wcmV4 Y2VwdFxuIgorCQkJCQkJCQkgICJPUkRFUiBCWSAxIiwgcHViaWQpOworCQkJCWlmICghYWRkRm9v dGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygiRXhjZXB0IHRhYmxlczoiKSwKKwkJCQkJCQkJ CQkJCXRydWUsICZjb250KSkKKwkJCQkJZ290byBlcnJvcl9yZXR1cm47CisJCQl9CisJCX0KIAog CQlwcmludFRhYmxlKCZjb250LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7 CiAJCXByaW50VGFibGVDbGVhbnVwKCZjb250KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCBmNzZlYmRh YzJjLi4xMzBiZjdhNjNlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMK KysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0xODIyLDkgKzE4MjIsMTMgQEAg cHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJ Q09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlJF U0VUIiwgIlNFVCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBBREQgKi8KIAllbHNl IGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIikpCi0J CUNPTVBMRVRFX1dJVEgoIkFMTCBUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJCUNPTVBM RVRFX1dJVEgoIkFMTCBUQUJMRVMgSU4gU0NIRU1BIiwgIkFMTCBUQUJMRVMiLCAiVEFCTEUiKTsK KwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQURE IiwgIkFMTCIsICJUQUJMRVMiKSkKKwkJQ09NUExFVEVfV0lUSCgiRVhDRVBUIFRBQkxFIiwgIklO IFNDSEVNQSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0 Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgfHwKLQkJCSAoSGVhZE1hdGNoZXMoIkFMVEVSIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgJiYKKwkJCSBNYXRj aGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIiwgIkFMTCIsICJUQUJM RVMiLCAiRVhDRVBUIiwgIlRBQkxFIikgfHwKKwkJCSAoKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQ VUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpIHx8CisJCQkgICBIZWFk TWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAi VEFCTEVTIiwgIkVYQ0VQVCIsICJUQUJMRSIpKSAmJgogCQkJICBlbmRzX3dpdGgocHJldl93ZCwg JywnKSkpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Rh Ymxlcyk7CiAKQEAgLTI5ODYsNyArMjk5MCw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFy ICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIikpCiAJCUNPTVBMRVRFX1dJVEgo IlRBQkxFUyIsICJUQUJMRVMgSU4gU0NIRU1BIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRF IiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIpKQotCQlD T01QTEVURV9XSVRIKCJJTiBTQ0hFTUEiLCAiV0lUSCAoIik7CisJCUNPTVBMRVRFX1dJVEgoIklO IFNDSEVNQSIsICJXSVRIICgiLCAiRVhDRVBUIFRBQkxFIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygi Q1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEUiLCBNYXRjaEFu eSkgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQogCQlDT01QTEVURV9XSVRIKCJXSEVSRSAo IiwgIldJVEggKCIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgUFVCTElDQVRJT04gPG5hbWU+IEZP UiBUQUJMRSIgd2l0aCAiPHRhYmxlPiwgLi4uIiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbi5oCmluZGV4IDQ4MjA1YmE0MjkuLmM5MmRkNDBhMTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmgKQEAgLTEwOCwxMSArMTA4LDEyIEBAIHR5cGVkZWYgc3RydWN0IFB1Ymxp Y2F0aW9uUmVsSW5mbwogCVJlbGF0aW9uCXJlbGF0aW9uOwogCU5vZGUJICAgKndoZXJlQ2xhdXNl OwogCUxpc3QJICAgKmNvbHVtbnM7CisJYm9vbAkJZXhjZXB0OwogfSBQdWJsaWNhdGlvblJlbElu Zm87CiAKIGV4dGVybiBQdWJsaWNhdGlvbiAqR2V0UHVibGljYXRpb24oT2lkIHB1YmlkKTsKIGV4 dGVybiBQdWJsaWNhdGlvbiAqR2V0UHVibGljYXRpb25CeU5hbWUoY29uc3QgY2hhciAqcHVibmFt ZSwgYm9vbCBtaXNzaW5nX29rKTsKLWV4dGVybiBMaXN0ICpHZXRSZWxhdGlvblB1YmxpY2F0aW9u cyhPaWQgcmVsaWQpOworZXh0ZXJuIExpc3QgKkdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCBy ZWxpZCwgYm9vbCBleGNlcHRfZmxhZyk7CiAKIC8qLS0tLS0tLS0tCiAgKiBFeHBlY3RlZCB2YWx1 ZXMgZm9yIHB1Yl9wYXJ0b3B0IHBhcmFtZXRlciBvZiBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucygp LApAQCAtMTMyLDcgKzEzMyw3IEBAIHR5cGVkZWYgZW51bSBQdWJsaWNhdGlvblBhcnRPcHQKIAog ZXh0ZXJuIExpc3QgKkdldFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRp b25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KTsKIGV4dGVybiBMaXN0ICpHZXRBbGxUYWJsZXNQdWJsaWNh dGlvbnModm9pZCk7Ci1leHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlv bnMoYm9vbCBwdWJ2aWFyb290KTsKK2V4dGVybiBMaXN0ICpHZXRBbGxUYWJsZXNQdWJsaWNhdGlv blJlbGF0aW9ucyhPaWQgcHViaWQsIGJvb2wgcHVidmlhcm9vdCk7CiBleHRlcm4gTGlzdCAqR2V0 UHVibGljYXRpb25TY2hlbWFzKE9pZCBwdWJpZCk7CiBleHRlcm4gTGlzdCAqR2V0U2NoZW1hUHVi bGljYXRpb25zKE9pZCBzY2hlbWFpZCk7CiBleHRlcm4gTGlzdCAqR2V0U2NoZW1hUHVibGljYXRp b25SZWxhdGlvbnMoT2lkIHNjaGVtYWlkLApAQCAtMTQzLDcgKzE0NCw3IEBAIGV4dGVybiBMaXN0 ICpHZXRQdWJQYXJ0aXRpb25PcHRpb25SZWxhdGlvbnMoTGlzdCAqcmVzdWx0LAogCQkJCQkJCQkJ CQlQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCiAJCQkJCQkJCQkJCU9pZCByZWxpZCk7 CiBleHRlcm4gT2lkCUdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwg TGlzdCAqYW5jZXN0b3JzLAotCQkJCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsKTsKKwkJCQkJ CQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCwgYm9vbCBwdWJhbGx0YWJsZXMpOwogCiBleHRlcm4g Ym9vbCBpc19wdWJsaXNoYWJsZV9yZWxhdGlvbihSZWxhdGlvbiByZWwpOwogZXh0ZXJuIGJvb2wg aXNfc2NoZW1hX3B1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbl9yZWwuaAppbmRleCBlY2QzNzM5ZjFhLi4yOGEzM2ZmMTdhIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgKQEAgLTMxLDYgKzMxLDcgQEAgQ0FUQUxP RyhwZ19wdWJsaWNhdGlvbl9yZWwsNjEwNixQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQpCiAJT2lk CQkJb2lkOwkJCS8qIG9pZCAqLwogCU9pZAkJCXBycHViaWQgQktJX0xPT0tVUChwZ19wdWJsaWNh dGlvbik7IC8qIE9pZCBvZiB0aGUgcHVibGljYXRpb24gKi8KIAlPaWQJCQlwcnJlbGlkIEJLSV9M T09LVVAocGdfY2xhc3MpOwkvKiBPaWQgb2YgdGhlIHJlbGF0aW9uICovCisJYm9vbAkJcHJleGNl cHQgQktJX0RFRkFVTFQoZik7CS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCiAKICNpZmRlZglD QVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwog CXBnX25vZGVfdHJlZSBwcnF1YWw7CQkvKiBxdWFsaWZpY2F0aW9ucyAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmggYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9wdWJsaWNhdGlvbmNtZHMuaAppbmRleCA1N2RmM2ZjMWUzLi5lNGU0ZWQxN2FiIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaAorKysgYi9zcmMv aW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaApAQCAtMzIsOCArMzIsMTEgQEAgZXh0 ZXJuIE9iamVjdEFkZHJlc3MgQWx0ZXJQdWJsaWNhdGlvbk93bmVyKGNvbnN0IGNoYXIgKm5hbWUs IE9pZCBuZXdPd25lcklkKTsKIGV4dGVybiB2b2lkIEFsdGVyUHVibGljYXRpb25Pd25lcl9vaWQo T2lkIHB1YmlkLCBPaWQgbmV3T3duZXJJZCk7CiBleHRlcm4gdm9pZCBJbnZhbGlkYXRlUHVibGlj YXRpb25SZWxzKExpc3QgKnJlbGlkcyk7CiBleHRlcm4gYm9vbCBwdWJfcmZfY29udGFpbnNfaW52 YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJCQkgICBM aXN0ICphbmNlc3RvcnMsIGJvb2wgcHVidmlhcm9vdCk7CisJCQkJCQkJCQkJICAgTGlzdCAqYW5j ZXN0b3JzLCBib29sIHB1YnZpYXJvb3QsCisJCQkJCQkJCQkJICAgYm9vbCBwdWJhbGx0YWJsZXMp OwogZXh0ZXJuIGJvb2wgcHViX2NvbGxpc3RfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1 YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJCQkJCUxpc3QgKmFuY2VzdG9ycywgYm9v bCBwdWJ2aWFyb290KTsKKwkJCQkJCQkJCQkJCUxpc3QgKmFuY2VzdG9ycywKKwkJCQkJCQkJCQkJ CWJvb2wgcHVidmlhcm9vdCwKKwkJCQkJCQkJCQkJCWJvb2wgcHViYWxsdGFibGVzKTsKIAogI2Vu ZGlmCQkJCQkJCS8qIFBVQkxJQ0FUSU9OQ01EU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5k ZXggOTcyNmZkYWU1OC4uNmRlMTVjMzkxYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzk5 OSw2ICszOTk5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25UYWJsZQogCVJhbmdlVmFy ICAgKnJlbGF0aW9uOwkJLyogcmVsYXRpb24gdG8gYmUgcHVibGlzaGVkICovCiAJTm9kZQkgICAq d2hlcmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb25zICovCiAJTGlzdAkgICAqY29sdW1uczsJCS8q IExpc3Qgb2YgY29sdW1ucyBpbiBhIHB1YmxpY2F0aW9uIHRhYmxlICovCisJYm9vbAkJZXhjZXB0 OwkJCS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCiB9IFB1YmxpY2F0aW9uVGFibGU7CiAKIC8q CkBAIC00MDA3LDYgKzQwMDgsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblRhYmxlCiB0 eXBlZGVmIGVudW0gUHVibGljYXRpb25PYmpTcGVjVHlwZQogewogCVBVQkxJQ0FUSU9OT0JKX1RB QkxFLAkJLyogQSB0YWJsZSAqLworCVBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRSwJCS8qIEEg dGFibGUgdG8gYmUgZXhjbHVkZWQgKi8KIAlQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fU0NIRU1B LAkvKiBBbGwgdGFibGVzIGluIHNjaGVtYSAqLwogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9D VVJfU0NIRU1BLAkvKiBBbGwgdGFibGVzIGluIGZpcnN0IGVsZW1lbnQgb2YKIAkJCQkJCQkJCQkJ ICogc2VhcmNoX3BhdGggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5v dXQKaW5kZXggNWQ0ZGIyNTA3ZS4uZmMyZmE0YTI5MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTE2NSwxMyArMTY1LDM3IEBAIFB1YmxpY2F0aW9uczoK ICByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZgogKDEgcm93KQogCitTRVQgY2xpZW50X21pbl9t ZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJs ZXNfZXhjZXB0dGFibGUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMSwg dGVzdHB1Yl90YmwyOworLS0gc3BlY2lmeSBFWENFUFQgd2l0aG91dCBUQUJMRQorQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMSBGT1IgQUxMIFRBQkxF UyBFWENFUFQgdGVzdHB1Yl90YmwxOworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKK1xkUnAr IHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZQorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAg InB1YmxpYy50ZXN0cHViX3RibDEiCisgICAgInB1YmxpYy50ZXN0cHViX3RibDIiCisKK1xkUnAr IHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMQorICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEKKyAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCitFeGNlcHQgdGFibGVzOgorICAg ICJwdWJsaWMudGVzdHB1Yl90YmwxIgorCiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMjsKLURST1Ag UFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3Rw dWJfZm9yc2NoZW1hOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVz dHB1Yl9mb3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4 Y2VwdHRhYmxlLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTE7CiBDUkVBVEUgVEFC TEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAoYiB0 ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0g J0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1Yl90 YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3RwdWJf dGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgQUxMIFRBQkxFUyBFWENFUFQg VEFCTEUgdGVzdHB1Yl90YmwzOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBBTEwg VEFCTEVTIEVYQ0VQVCBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKIFJFU0VUIGNsaWVudF9taW5f bWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHViMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1YjMKQEAgLTE5MCw4ICsyMTQsMjUgQEAgVGFibGVzOgog VGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1Yl90YmwzIgogCitcZFJwKyB0ZXN0cHViNQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjUKKyAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCitFeGNlcHQgdGFibGVz OgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwzIgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwzYSIK KworXGRScCsgdGVzdHB1YjYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWI2CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxl cyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKKwogRFJP UCBUQUJMRSB0ZXN0cHViX3RibDMsIHRlc3RwdWJfdGJsM2E7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRl c3RwdWIzLCB0ZXN0cHViNDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0 ZXN0cHViNSwgdGVzdHB1YjY7CiAtLSBUZXN0cyBmb3IgcGFydGl0aW9uZWQgdGFibGVzCiBTRVQg Y2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9mb3JwYXJ0ZWQ7CkBAIC0xNjU2LDkgKzE2OTcsMTUgQEAgRFJPUCBTQ0hFTUEgc2NoMiBjYXNj YWRlOwogLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAogQ1JFQVRFIFND SEVNQSBwdWJfc2NoMTsKIENSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitDUkVB VEUgVEFCTEUgcHViX3NjaDEudGJsMiAoYSBpbnQpOwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMg PSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJM RVM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJM RSB0byAnRk9SIEFMTCBUQUJMRVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJS T1I6ICBhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBk ZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMg ZmxhZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFz c29jaWF0ZWQuCitISU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNl dCB0aGUgcHVibGljYXRpb24KIC0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJl c2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CkBAIC0xNjc1LDcgKzE3MjIsMjQgQEAgQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKICByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAg IHwgZgogKDEgcm93KQogCistLSBTaG91bGQgd29yayBub3cgYWZ0ZXIgcmVzZXR0aW5nIHRoZSBw dWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxF UyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMSwgcHViX3NjaDEudGJsMjsKK1xkUnArIHRlc3Rw dWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8 IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBm CitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfc2NoMS50YmwxIgorICAgICJwdWJfc2NoMS50Ymwy IgorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3NjaDEudGJsMTsKKy0tIENhbid0IGFk ZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRi bDE7CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0 byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVlcworREVUQUlMOiAgQUxM IFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91 bGQgYmUgYXNzb2NpYXRlZC4KK0hJTlQ6ICBVc2UgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VU IHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbgogLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFzc29jaWF0 ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKIFxkUnArIHRl c3RwdWJfcmVzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9u IHRlc3RwdWJfcmVzZXQKQEAgLTE2OTQsNiArMTc1OCwxMSBAQCBBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX3Jlc2V0IFJFU0VUOwogKDEgcm93KQogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X3Jlc2V0IEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CistLSBDYW4ndCBhZGQgRVhD RVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEnIHB1YmxpY2F0aW9uCitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBw dWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJlcyB0aGUgcHVi bGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2YWx1ZXMKK0RF VEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3Nj aGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FUSU9O IC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZlcmlmeSB0aGF0IHNjaGVt YXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZCBhZnRlciBSRVNF VAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMTcxMiw2ICsxNzgxLDEyIEBAIEFMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAoMSByb3cpCiAKIEFMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycpOworLS0gQ2FuJ3QgYWRkIEVYQ0VQ VCBUQUJMRSB3aGVuIHRoZSAnUFVCTElTSCcgcGFyYW1ldGVyIGRvZXMgbm90IGhhdmUgZGVmYXVs dAorLS0gdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJM RVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVT IHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFy YW1ldGVyIHZhbHVlcworREVUQUlMOiAgQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0 IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4KK0hJTlQ6ICBVc2Ug QUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbgogLS0g VmVyaWZ5IHRoYXQgJ1BVQkxJU0gnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9y ZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 Yl9yZXNldApAQCAtMTcyOSw2ICsxODA0LDEyIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgUkVTRVQ7CiAoMSByb3cpCiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg U0VUIChQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CistLSBDYW4ndCBhZGQg RVhDRVBUIFRBQkxFIHdoZW4gJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBwYXJhbWV0ZXIg ZG9lcyBub3QKKy0tIGhhdmUgZGVmYXVsdCB2YWx1ZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKK0VSUk9S OiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVm YXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZs YWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3Nv Y2lhdGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQg dGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFfUEFSVElUSU9OX1JP T1QnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMTc1MCw5 ICsxODMxLDEzIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgT1dORVIgVE8gcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyMjsKIFNFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl cjI7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOyAtLSBmYWlsIC0gbXVz dCBiZSBzdXBlcnVzZXIKIEVSUk9SOiAgbXVzdCBiZSBzdXBlcnVzZXIgdG8gUkVTRVQgcHVibGlj YXRpb24KKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiBBREQgQUxMIFRBQkxFUwor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsgCitFUlJPUjog IG11c3QgYmUgc3VwZXJ1c2VyIHRvIEFERCBBTEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbgog U0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOworRFJPUCBUQUJMRSBwdWJfc2No MS50YmwyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T047CiBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyLCByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24u c3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDcyNzY1OTk0 ZGQuLmE0MzVlMWRmMmIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0 aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTg5 LDIwICs4OSwzMyBAQCBTRUxFQ1QgcHVibmFtZSwgcHViYWxsdGFibGVzIEZST00gcGdfcHVibGlj YXRpb24gV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHViX2ZvcmFsbAogXGQrIHRlc3RwdWJfdGJsMgog XGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXMKIAorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAn RVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRh YmxlIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJs MjsKKy0tIHNwZWNpZnkgRVhDRVBUIHdpdGhvdXQgVEFCTEUKK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIHRl c3RwdWJfdGJsMTsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CisKK1xkUnArIHRlc3RwdWJf Zm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCitcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNl cHR0YWJsZTEKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDI7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYTsK K0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUs IHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZSwgdGVz dHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxOwogCiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90 YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAoYiB0ZXh0KSBJTkhFUklU UyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1Yl90YmwzOwogQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKK0NSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdGVzdHB1 Yl90YmwzOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBBTEwgVEFCTEVTIEVYQ0VQ VCBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBc ZFJwKyB0ZXN0cHViMwogXGRScCsgdGVzdHB1YjQKK1xkUnArIHRlc3RwdWI1CitcZFJwKyB0ZXN0 cHViNgogCiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMywgdGVzdHB1Yl90YmwzYTsKLURST1AgUFVC TElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywg dGVzdHB1YjQsIHRlc3RwdWI1LCB0ZXN0cHViNjsKIAogLS0gVGVzdHMgZm9yIHBhcnRpdGlvbmVk IHRhYmxlcwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwpAQCAtMTA2MCwxNyAr MTA3MywzMCBAQCBEUk9QIFNDSEVNQSBzY2gyIGNhc2NhZGU7CiAtLSBUZXN0cyBmb3IgQUxURVIg UFVCTElDQVRJT04gLi4uIFJFU0VUCiBDUkVBVEUgU0NIRU1BIHB1Yl9zY2gxOwogQ1JFQVRFIFRB QkxFIHB1Yl9zY2gxLnRibDEgKGEgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwyIChh IGludCk7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKIFJFU0VUIGNsaWVudF9taW5fbWVz c2FnZXM7CiAKKy0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBBTEwgVEFCTEVTJyBw dWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxF UyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgJ0FMTCBUQUJM RVMnIGZsYWcgaXMgcmVzZXQKIFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAKKy0tIFNob3VsZCB3 b3JrIG5vdyBhZnRlciByZXNldHRpbmcgdGhlIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50Ymwx LCBwdWJfc2NoMS50YmwyOworXGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxOwogCistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRv ICdGT1IgVEFCTEUnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworCiAtLSBWZXJpZnkg dGhhdCB0YWJsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZCBh ZnRlciBSRVNFVAogXGRScCsgdGVzdHB1Yl9yZXNldAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBSRVNFVDsKQEAgLTEwNzgsNiArMTEwNCw5IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgUkVTRVQ7CiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQURE IEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJM RSB0byAnRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEu dGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1Ymxp Y2F0aW9uIGFyZSBkcm9wcGVkIGFmdGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwpAQCAtMTA4NSw2ICsxMTE0LDEwIEBA IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAKIEFMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycpOwogCistLSBDYW4ndCBhZGQgRVhD RVBUIFRBQkxFIHdoZW4gdGhlICdQVUJMSVNIJyBwYXJhbWV0ZXIgZG9lcyBub3QgaGF2ZSBkZWZh dWx0CistLSB2YWx1ZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRB QkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJ U0gnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKQEAgLTEwOTIsNiArMTEyNSwxMCBAQCBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOwogCist LSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09U JyBwYXJhbWV0ZXIgZG9lcyBub3QKKy0tIGhhdmUgZGVmYXVsdCB2YWx1ZQorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEu dGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBwYXJh bWV0ZXIgaXMgcmVzZXQKIFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgUkVTRVQ7CkBAIC0xMTAxLDEwICsxMTM4LDE0IEBAIEFMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBTRVQgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIyOwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsg LS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCisKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1 c2VyIGNhbiBBREQgQUxMIFRBQkxFUworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgQUxMIFRBQkxFUzsgCiBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CiAKIERS T1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKIERST1AgVEFCTEUgcHViX3NjaDEudGJsMTsK K0RST1AgVEFCTEUgcHViX3NjaDEudGJsMjsKIERST1AgU0NIRU1BIHB1Yl9zY2gxOwogCiBSRVNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT047CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRp b24vdC8wMzJfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL3QvMDMyX3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwLi43MTU2ZTM5ZmNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL3QvMDMyX3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbApAQCAtMCww ICsxLDg1IEBACisKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjIsIFBvc3RncmVTUUwgR2xvYmFs IERldmVsb3BtZW50IEdyb3VwCisKKyMgTG9naWNhbCByZXBsaWNhdGlvbiB0ZXN0cyBmb3IgZXhj ZXB0IHRhYmxlIHB1YmxpY2F0aW9ucwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBQ b3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwor dXNlIFRlc3Q6Ok1vcmU7CisKKyMgSW5pdGlhbGl6ZSBwdWJsaXNoZXIgbm9kZQorbXkgJG5vZGVf cHVibGlzaGVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdwdWJsaXNoZXInKTsK KyRub2RlX3B1Ymxpc2hlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Cisk bm9kZV9wdWJsaXNoZXItPnN0YXJ0OworCisjIENyZWF0ZSBzdWJzY3JpYmVyIG5vZGUKK215ICRu b2RlX3N1YnNjcmliZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1YnNjcmli ZXInKTsKKyRub2RlX3N1YnNjcmliZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNh bCcpOworJG5vZGVfc3Vic2NyaWJlci0+c3RhcnQ7CisKKyMgVGVzdCByZXBsaWNhdGlvbiB3aXRo IHB1YmxpY2F0aW9ucyBjcmVhdGVkIHVzaW5nIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRQor IyBjbGF1c2UuCisjIENyZWF0ZSBzY2hlbWFzIGFuZCB0YWJsZXMgb24gcHVibGlzaGVyCiskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFNDSEVNQSBzY2gxIik7 Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUg c2NoMS50YWIxIEFTIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgQVMgYSIpOworJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHB1YmxpYy50 YWIxKGEgaW50KSIpOworCisjIENyZWF0ZSBzY2hlbWFzIGFuZCB0YWJsZXMgb24gc3Vic2NyaWJl cgorJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgU0NIRU1B IHNjaDEiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRF IFRBQkxFIHNjaDEudGFiMSAoYSBpbnQpIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSBwdWJsaWMudGFiMSAoYSBpbnQpIik7CisKKyMgU2V0 dXAgbG9naWNhbCByZXBsaWNhdGlvbgorbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVfcHVi bGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1h IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBzY2gxLnRhYjEiKTsKKworJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1 Yl9zY2hlbWEgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiB0YXBf cHViX3NjaGVtYSIKKyk7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFw X3N1Yl9zY2hlbWEnKTsKKworIyBBbHNvIHdhaXQgZm9yIGluaXRpYWwgdGFibGUgc3luYyB0byBm aW5pc2gKK215ICRzeW5jZWRfcXVlcnkgPQorICAiU0VMRUNUIGNvdW50KDEpID0gMCBGUk9NIHBn X3N1YnNjcmlwdGlvbl9yZWwgV0hFUkUgc3JzdWJzdGF0ZSBOT1QgSU4gKCdyJywgJ3MnKTsiOwor JG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91bnRpbCgncG9zdGdyZXMnLCAkc3luY2VkX3F1 ZXJ5KQorICBvciBkaWUgIlRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIGZvciBzdWJzY3JpYmVyIHRv IHN5bmNocm9uaXplIGRhdGEiOworCisjIENoZWNrIHRoZSB0YWJsZSBkYXRhIGRvZXMgbm90IHN5 bmMgZm9yIGV4Y2x1ZGVkIHRhYmxlCitteSAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJP TSBzY2gxLnRhYjEiKTsKK2lzKCRyZXN1bHQsIHFxKDB8fCksICdjaGVjayB0aGVyZSBpcyBubyBp bml0aWFsIGRhdGEgY29waWVkIGZvciB0aGUgZXhjbHVkZWQgdGFibGUnKTsKKworIyBJbnNlcnQg c29tZSBkYXRhIGFuZCB2ZXJpZnkgdGhhdCBpbnNlcnRlZCBkYXRhIGlzIG5vdCByZXBsaWNhdGVk Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyBz Y2gxLnRhYjEgVkFMVUVTKGdlbmVyYXRlX3NlcmllcygxMSwyMCkpIik7CisKKyRub2RlX3B1Ymxp c2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9zY2hlbWEnKTsKKworJHJlc3VsdCA9ICRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKiks IG1pbihhKSwgbWF4KGEpIEZST00gc2NoMS50YWIxIik7CitpcygkcmVzdWx0LCBxcSgwfHwpLCAn Y2hlY2sgcmVwbGljYXRlZCBpbnNlcnRzIG9uIHN1YnNjcmliZXInKTsKKworIyBBbHRlciBwdWJs aWNhdGlvbiB0byBleGNsdWRlIGRhdGEgY2hhbmdlcyBpbiBwdWJsaWMudGFiMSBhbmQgdmVyaWZ5 IHRoYXQKKyMgc3Vic2NyaWJlciBkb2VzIG5vdCBnZXQgdGhlIGNoYW5nZWQgZGF0YSBmb3IgdGhp cyB0YWJsZS4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisgICAgICAg ICJBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBSRVNFVCIpOworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKyAgICAgICAgIkFMVEVSIFBVQkxJQ0FUSU9OIHRh cF9wdWJfc2NoZW1hIEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBzY2gxLnRhYjEsIHB1Ymxp Yy50YWIxIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorICAgICAg ICAiSU5TRVJUIElOVE8gcHVibGljLnRhYjEgVkFMVUVTKGdlbmVyYXRlX3NlcmllcygxLDEwKSki KTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3NjaGVtYScp OworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSBwdWJsaWMudGFiMSIpOworaXMo JHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJvd3Mgb24gc3Vic2NyaWJlciBjYXRjaHVwJyk7CisK KyRub2RlX3N1YnNjcmliZXItPnN0b3AoJ2Zhc3QnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RvcCgn ZmFzdCcpOworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzIuMAoK --000000000000a8151c05e08848ab Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0001-Add-RESET-clause-to-Alter-Publication-which-will-.patch" Content-Disposition: attachment; filename="v8-0001-Add-RESET-clause-to-Alter-Publication-which-will-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l3ya74gb0 RnJvbSA0MjMzMjgxMTM1OTE0NzdhNDY0NDdmM2UyMmY3MjM2N2Y1MjUxMmVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNod2FyYW4gQyA8dmlnbmVzaDIxQGdtYWlsLmNvbT4K RGF0ZTogU2F0LCAxNCBNYXkgMjAyMiAxMzoxMzo0NiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjgg MS8yXSBBZGQgUkVTRVQgY2xhdXNlIHRvIEFsdGVyIFB1YmxpY2F0aW9uIHdoaWNoIHdpbGwgcmVz ZXQKIHRoZSBwdWJsaWNhdGlvbiB3aXRoIGRlZmF1bHQgdmFsdWVzLgoKVGhpcyBwYXRjaCBhZGRz IGEgbmV3IFJFU0VUIGNsYXVzZSB0byBBTFRFUiBQVUJMSUNBVElPTiB3aGljaCB3aWxsIHJlc2V0 CnRoZSBwdWJsaWNhdGlvbiB0byB0aGUgZGVmYXVsdCBzdGF0ZSB3aGljaCBpbmNsdWRlcyByZXNl dHRpbmcgdGhlIHB1YmxpY2F0aW9uCnBhcmFtZXRlcnMsIHNldHRpbmcgQUxMIFRBQkxFUyBmbGFn IHRvIGZhbHNlIGFuZCBkcm9wcGluZyB0aGUgcmVsYXRpb25zIGFuZApzY2hlbWFzIHRoYXQgYXJl IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uClVzYWdlOgpBTFRFUiBQVUJMSUNBVElP TiBwdWIxIFJFU0VUOwotLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dt bCAgIHwgIDM4ICsrKysrKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu YyAgICB8IDEwNSArKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55ICAgICAgICAgICAgICAgICB8ICAgOSArKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j ICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAg ICAgICAgICAgIHwgICAzICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9u Lm91dCB8IDEwMSArKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1 YmxpY2F0aW9uLnNxbCAgICAgIHwgIDUwICsrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDI5 MiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1 YmxpY2F0aW9uLnNnbWwKaW5kZXggM2UzMzhmNGNjNS4uZDRjMjNkZWJkMSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMjcsNiArMjcsNyBAQCBBTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IERST1AgPHJlcGxhYwogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKIEFMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGU+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBD VVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQogQUxURVIgUFVCTElD QVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBS RU5BTUUgVE8gPHJlcGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFBVQkxJ Q0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g UkVTRVQKIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVi bGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCkBAIC02 NSwyMCArNjYsMzMgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgPC9wYXJhPgogCiAgIDxw YXJhPgotICAgVGhlIHJlbWFpbmluZyB2YXJpYW50cyBjaGFuZ2UgdGhlIG93bmVyIGFuZCB0aGUg bmFtZSBvZiB0aGUgcHVibGljYXRpb24uCisgICBUaGUgPGxpdGVyYWw+T1dORVI8L2xpdGVyYWw+ IGNsYXVzZSB3aWxsIGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlIHB1YmxpY2F0aW9uLgorICA8L3Bh cmE+CisKKyAgPHBhcmE+CisgICBUaGUgPGxpdGVyYWw+UkVOQU1FPC9saXRlcmFsPiBjbGF1c2Ug d2lsbCBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlIHB1YmxpY2F0aW9uLgorICA8L3BhcmE+CisKKyAg PHBhcmE+CisgICBUaGUgPGxpdGVyYWw+UkVTRVQ8L2xpdGVyYWw+IGNsYXVzZSB3aWxsIHJlc2V0 IHRoZSBwdWJsaWNhdGlvbiB0byB0aGUKKyAgIGRlZmF1bHQgc3RhdGUgd2hpY2ggaW5jbHVkZXMg cmVzZXR0aW5nIHRoZSBwdWJsaWNhdGlvbiBwYXJhbWV0ZXJzLCBzZXR0aW5nCisgICA8bGl0ZXJh bD5BTEwgVEFCTEVTPC9saXRlcmFsPiBmbGFnIHRvIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPiBh bmQKKyAgIGRyb3BwaW5nIGFsbCByZWxhdGlvbnMgYW5kIHNjaGVtYXMgdGhhdCBhcmUgYXNzb2Np YXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgogICAgWW91 IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxURVIgUFVCTElDQVRJ T048L2NvbW1hbmQ+LgogICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhZGRpdGlv bmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxpdGVyYWw+QUREIEFM TCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBhbmQKLSAgIDxsaXRlcmFsPlNFVCBBTEwgVEFC TEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUKLSAg IGludm9raW5nIHVzZXIgdG8gYmUgYSBzdXBlcnVzZXIuICBUbyBhbHRlciB0aGUgb3duZXIsIHlv dSBtdXN0IGFsc28gYmUgYQotICAgZGlyZWN0IG9yIGluZGlyZWN0IG1lbWJlciBvZiB0aGUgbmV3 IG93bmluZyByb2xlLiBUaGUgbmV3IG93bmVyIG11c3QgaGF2ZQotICAgPGxpdGVyYWw+Q1JFQVRF PC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIGRhdGFiYXNlLiAgQWxzbywgdGhlIG5ldyBvd25l cgotICAgb2YgYSA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+ Rk9SIEFMTCBUQUJMRVMgSU4KLSAgIFNDSEVNQTwvbGl0ZXJhbD4gcHVibGljYXRpb24gbXVzdCBi ZSBhIHN1cGVydXNlci4gSG93ZXZlciwgYSBzdXBlcnVzZXIgY2FuCi0gICBjaGFuZ2UgdGhlIG93 bmVyc2hpcCBvZiBhIHB1YmxpY2F0aW9uIHJlZ2FyZGxlc3Mgb2YgdGhlc2UgcmVzdHJpY3Rpb25z LgorICAgVGhlIDxsaXRlcmFsPkFERCBBTEwgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisg ICA8bGl0ZXJhbD5TRVQgQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGlj YXRpb24gYW5kCisgICA8bGl0ZXJhbD5SRVNFVDwvbGl0ZXJhbD4gb2YgcHVibGljYXRpb24gcmVx dWlyZXMgdGhlIGludm9raW5nIHVzZXIgdG8gYmUgYQorICAgc3VwZXJ1c2VyLiBUbyBhbHRlciB0 aGUgb3duZXIsIHlvdSBtdXN0IGFsc28gYmUgYSBkaXJlY3Qgb3IgaW5kaXJlY3QgbWVtYmVyCisg ICBvZiB0aGUgbmV3IG93bmluZyByb2xlLiBUaGUgbmV3IG93bmVyIG11c3QgaGF2ZSA8bGl0ZXJh bD5DUkVBVEU8L2xpdGVyYWw+CisgICBwcml2aWxlZ2Ugb24gdGhlIGRhdGFiYXNlLiAgQWxzbywg dGhlIG5ldyBvd25lciBvZiBhCisgICA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4g b3IKKyAgIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gcHVibGlj YXRpb24gbXVzdCBiZSBhIHN1cGVydXNlci4KKyAgIEhvd2V2ZXIsIGEgc3VwZXJ1c2VyIGNhbiBj aGFuZ2UgdGhlIG93bmVyc2hpcCBvZiBhIHB1YmxpY2F0aW9uIHJlZ2FyZGxlc3Mgb2YKKyAgIHRo ZXNlIHJlc3RyaWN0aW9ucy4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMjE3LDYgKzIzMSwx MiBAQCBBTFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBBREQgQUxMIFRBQkxFUyBJ TiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKICAgIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rpb25fcHVi bGljYXRpb248L3N0cnVjdG5hbWU+OgogPHByb2dyYW1saXN0aW5nPgogQUxURVIgUFVCTElDQVRJ T04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgVEFCTEUgdXNlcnMsIGRlcGFydG1lbnRzLCBB TEwgVEFCTEVTIElOIFNDSEVNQSBwcm9kdWN0aW9uOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+ CisKKyAgPHBhcmE+CisgICBSZXNldCB0aGUgcHVibGljYXRpb24gPHN0cnVjdG5hbWU+cHJvZHVj dGlvbl9wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQ VUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIFJFU0VUOwogPC9wcm9ncmFtbGlzdGlu Zz48L3BhcmE+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNt ZHMuYwppbmRleCA4ZTY0NTc0MWU0Li41MzMwNzFkOTExIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9w dWJsaWNhdGlvbmNtZHMuYwpAQCAtNTMsNiArNTMsMTQgQEAKICNpbmNsdWRlICJ1dGlscy9zeXNj YWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3ZhcmxlbmEuaCIKIAorLyogQ1JFQVRFIFBVQkxJQ0FU SU9OIGRlZmF1bHQgdmFsdWVzIGZvciBmbGFncyBhbmQgcHVibGljYXRpb24gcGFyYW1ldGVycyAq LworI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fSU5TRVJUIHRydWUKKyNkZWZpbmUgUFVCX0RF RkFVTFRfQUNUSU9OX1VQREFURSB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElPTl9ERUxF VEUgdHJ1ZQorI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNBVEUgdHJ1ZQorI2RlZmlu ZSBQVUJfREVGQVVMVF9WSUFfUk9PVCBmYWxzZQorI2RlZmluZSBQVUJfREVGQVVMVF9BTExfVEFC TEVTIGZhbHNlCisKIC8qCiAgKiBJbmZvcm1hdGlvbiB1c2VkIHRvIHZhbGlkYXRlIHRoZSBjb2x1 bW5zIGluIHRoZSByb3cgZmlsdGVyIGV4cHJlc3Npb24uIFNlZQogICogY29udGFpbl9pbnZhbGlk X3JmY29sdW1uX3dhbGtlciBmb3IgZGV0YWlscy4KQEAgLTkxLDExICs5OSwxMSBAQCBwYXJzZV9w dWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkqcHVibGlzaF92aWFfcGFy dGl0aW9uX3Jvb3RfZ2l2ZW4gPSBmYWxzZTsKIAogCS8qIGRlZmF1bHRzICovCi0JcHViYWN0aW9u cy0+cHViaW5zZXJ0ID0gdHJ1ZTsKLQlwdWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSB0cnVlOwotCXB1 YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IHRydWU7Ci0JcHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSB0 cnVlOwotCSpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IGZhbHNlOworCXB1YmFjdGlvbnMt PnB1Ymluc2VydCA9IFBVQl9ERUZBVUxUX0FDVElPTl9JTlNFUlQ7CisJcHViYWN0aW9ucy0+cHVi dXBkYXRlID0gUFVCX0RFRkFVTFRfQUNUSU9OX1VQREFURTsKKwlwdWJhY3Rpb25zLT5wdWJkZWxl dGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRFOworCXB1YmFjdGlvbnMtPnB1YnRydW5jYXRl ID0gUFVCX0RFRkFVTFRfQUNUSU9OX1RSVU5DQVRFOworCSpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25f cm9vdCA9IFBVQl9ERUZBVUxUX1ZJQV9ST09UOwogCiAJLyogUGFyc2Ugb3B0aW9ucyAqLwogCWZv cmVhY2gobGMsIG9wdGlvbnMpCkBAIC0xMTA1LDYgKzExMTMsOTEgQEAgSW52YWxpZGF0ZVB1Ymxp Y2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpCiAJCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7 CiB9CiAKKy8qCisgKiBSZXNldCB0aGUgcHVibGljYXRpb24uCisgKgorICogUmVzZXQgdGhlIHB1 YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcgQUxMIFRBQkxFUyBmbGFnIHRvIGZhbHNlIGFu ZCBkcm9wCisgKiBhbGwgcmVsYXRpb25zIGFuZCBzY2hlbWFzIHRoYXQgYXJlIGFzc29jaWF0ZWQg d2l0aCB0aGUgcHVibGljYXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCitBbHRlclB1YmxpY2F0aW9u UmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKKwkJ CQkJICBSZWxhdGlvbiByZWwsIEhlYXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlv biBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCU9pZAkJ CXB1YmlkID0gcHViZm9ybS0+b2lkOworCUxpc3QJICAgKnNjaGVtYXMgPSBOSUw7CisJTGlzdAkg ICAqcmVscyA9IE5JTDsKKwlib29sCQludWxsc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJYm9v bAkJcmVwbGFjZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOworCURhdHVtCQl2YWx1ZXNbTmF0dHNf cGdfcHVibGljYXRpb25dOworCU9iamVjdEFkZHJlc3Mgb2JqOworCUxpc3RDZWxsICAgKmxjOwor CU9pZAkJCXByaWQ7CisKKwkvKiBSRVNFVCBwdWJsaWNhdGlvbiByZXF1aXJlcyBzdXBlcnVzZXIg Ki8KKwlpZiAoIXN1cGVydXNlcigpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJS Q09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1 c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uIikpOworCisJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9m KHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOworCW1lbXNl dChyZXBsYWNlcywgZmFsc2UsIHNpemVvZihyZXBsYWNlcykpOworCisJLyogUmVzZXQgdGhlIHB1 YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJp bnNlcnQgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9BQ1RJT05fSU5TRVJUKTsKKwly ZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1Ymluc2VydCAtIDFdID0gdHJ1ZTsKKworCXZh bHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnVwZGF0ZSAtIDFdID0gQm9vbEdldERhdHVtKFBV Ql9ERUZBVUxUX0FDVElPTl9VUERBVEUpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25f cHVidXBkYXRlIC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHVi ZGVsZXRlIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURSk7CisJ cmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJkZWxldGUgLSAxXSA9IHRydWU7CisKKwl2 YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gQm9vbEdldERhdHVt KFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNh dGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0 aW9uX3B1YnZpYXJvb3QgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9WSUFfUk9PVCk7 CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2aWFyb290IC0gMV0gPSB0cnVlOwor CisJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyB0byBmYWxzZSAqLworCWlmIChwdWJmb3JtLT5wdWJh bGx0YWJsZXMpCisJeworCQl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMg LSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9BTExfVEFCTEVTKTsKKwkJcmVwbGFjZXNb QW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMgLSAxXSA9IHRydWU7CisJCUNhY2hlSW52 YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CisJfQorCisJdHVwID0gaGVhcF9tb2RpZnlfdHVwbGUodHVw LCBSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMsCisJCQkJCQkJcmVwbGFjZXMp OworCisJLyogVXBkYXRlIHRoZSBjYXRhbG9nLiAqLworCUNhdGFsb2dUdXBsZVVwZGF0ZShyZWws ICZ0dXAtPnRfc2VsZiwgdHVwKTsKKworCS8qIERyb3AgdGhlIHNjaGVtYXMgYXNzb2NpYXRlZCB3 aXRoIHRoZSBwdWJsaWNhdGlvbiAqLworCXNjaGVtYXMgPSBHZXRQdWJsaWNhdGlvblNjaGVtYXMo cHViaWQpOworCVB1YmxpY2F0aW9uRHJvcFNjaGVtYXMocHViaWQsIHNjaGVtYXMsIGZhbHNlKTsK KworCS8qIERyb3AgdGhlIHJlbGF0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9u ICovCisJcmVscyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJMSUNBVElPTl9Q QVJUX1JPT1QpOworCWZvcmVhY2gobGMsIHJlbHMpCisJeworCQlPaWQJCQlyZWxpZCA9IGxmaXJz dF9vaWQobGMpOworCisJCXByaWQgPSBHZXRTeXNDYWNoZU9pZDIoUFVCTElDQVRJT05SRUxNQVAs IEFudW1fcGdfcHVibGljYXRpb25fcmVsX29pZCwKKwkJCQkJCQkgICBPYmplY3RJZEdldERhdHVt KHJlbGlkKSwKKwkJCQkJCQkgICBPYmplY3RJZEdldERhdHVtKHB1YmlkKSk7CisJCWlmICghT2lk SXNWYWxpZChwcmlkKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVf VU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXNcIiBpcyBub3Qg cGFydCBvZiB0aGUgcHVibGljYXRpb24iLAorCQkJCQkJCWdldF9yZWxfbmFtZShyZWxpZCkpKSk7 CisKKwkJT2JqZWN0QWRkcmVzc1NldChvYmosIFB1YmxpY2F0aW9uUmVsUmVsYXRpb25JZCwgcHJp ZCk7CisJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBEUk9QX0NBU0NBREUsIDApOworCX0KK30KKwog LyoKICAqIEFkZCBvciByZW1vdmUgdGFibGUgdG8vZnJvbSBwdWJsaWNhdGlvbi4KICAqLwpAQCAt MTQxNiw2ICsxNTA5LDggQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFs dGVyUHVibGljYXRpb25TdG10ICpzdG10KQogCiAJaWYgKHN0bXQtPm9wdGlvbnMpCiAJCUFsdGVy UHVibGljYXRpb25PcHRpb25zKHBzdGF0ZSwgc3RtdCwgcmVsLCB0dXApOworCWVsc2UgaWYgKHN0 bXQtPmFjdGlvbiA9PSBBUF9SZXNldFB1YmxpY2F0aW9uKQorCQlBbHRlclB1YmxpY2F0aW9uUmVz ZXQocHN0YXRlLCBzdG10LCByZWwsIHR1cCk7CiAJZWxzZQogCXsKIAkJTGlzdAkgICAqcmVsYXRp b25zID0gTklMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggOTY5YzljMTU4Zi4uNmQyZWUyZWU5MiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CkBAIC0xMDU1OCw2ICsxMDU1OCw4IEBAIHB1Yl9vYmpfbGlzdDoJUHVibGljYXRpb25P YmpTcGVjCiAgKgogICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgcHViX29iaiBbLCAuLi5d CiAgKgorICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBSRVNFVAorICoKICAqIHB1Yl9vYmogaXMg b25lIG9mOgogICoKICAqCQlUQUJMRSB0YWJsZV9uYW1lIFssIC4uLl0KQEAgLTEwNjA0LDYgKzEw NjA2LDEzIEBAIEFsdGVyUHVibGljYXRpb25TdG10OgogCQkJCQluLT5hY3Rpb24gPSBBUF9Ecm9w T2JqZWN0czsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgUFVCTElD QVRJT04gbmFtZSBSRVNFVAorCQkJCXsKKwkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBt YWtlTm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CisJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJ CQkJbi0+YWN0aW9uID0gQVBfUmVzZXRQdWJsaWNhdGlvbjsKKwkJCQkJJCQgPSAoTm9kZSAqKW47 CisJCQkJfQogCQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4 IGUxY2M3NTM0ODkuLmY3NmViZGFjMmMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKQEAgLTE4MTksNyArMTgx OSw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBl bmQpCiAKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVz KCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55KSkKLQkJQ09NUExFVEVfV0lUSCgiQURE IiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNFVCIpOworCQlDT01QTEVURV9X SVRIKCJBREQiLCAiRFJPUCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiUkVTRVQiLCAiU0VU Iik7CiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IEFERCAqLwogCWVsc2UgaWYgKE1hdGNo ZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiKSkKIAkJQ09NUExFVEVf V0lUSCgiQUxMIFRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUiKTsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aAppbmRleCA3M2Y2MzViNDU1Li45NzI2ZmRhZTU4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBA IC00MDM1LDcgKzQwMzUsOCBAQCB0eXBlZGVmIGVudW0gQWx0ZXJQdWJsaWNhdGlvbkFjdGlvbgog ewogCUFQX0FkZE9iamVjdHMsCQkJCS8qIGFkZCBvYmplY3RzIHRvIHB1YmxpY2F0aW9uICovCiAJ QVBfRHJvcE9iamVjdHMsCQkJCS8qIHJlbW92ZSBvYmplY3RzIGZyb20gcHVibGljYXRpb24gKi8K LQlBUF9TZXRPYmplY3RzCQkJCS8qIHNldCBsaXN0IG9mIG9iamVjdHMgKi8KKwlBUF9TZXRPYmpl Y3RzLAkJCQkvKiBzZXQgbGlzdCBvZiBvYmplY3RzICovCisJQVBfUmVzZXRQdWJsaWNhdGlvbgkJ CS8qIHJlc2V0IHRoZSBwdWJsaWNhdGlvbiAqLwogfSBBbHRlclB1YmxpY2F0aW9uQWN0aW9uOwog CiB0eXBlZGVmIHN0cnVjdCBBbHRlclB1YmxpY2F0aW9uU3RtdApkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCAyNzRiMzdkZmU1Li41ZDRkYjI1MDdlIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMTY1Myw2ICsxNjUz LDEwNyBAQCBEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKIERST1AgVEFCTEUgc2NoMS50YmwxOwogRFJP UCBTQ0hFTUEgc2NoMSBjYXNjYWRlOwogRFJPUCBTQ0hFTUEgc2NoMiBjYXNjYWRlOworLS0gVGVz dHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAorQ1JFQVRFIFNDSEVNQSBwdWJfc2No MTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitTRVQgY2xpZW50X21pbl9t ZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBGT1Ig QUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CistLSBWZXJpZnkgdGhhdCAn QUxMIFRBQkxFUycgZmxhZyBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERl bGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQK KyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisoMSByb3cpCisK K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFIHB1Yl9zY2gxLnRibDE7 CistLSBWZXJpZnkgdGhhdCB0YWJsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBh cmUgZHJvcHBlZCBhZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHViX3Nj aDEudGJsMSIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnAr IHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg ICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFM TCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKKy0tIFZlcmlmeSB0aGF0IHNjaGVtYXMgYXNzb2Np YXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZCBhZnRlciBSRVNFVAorXGRScCsg dGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRp b24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IGYKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1YmxpYyIKKworQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycpOworLS0gVmVyaWZ5 IHRoYXQgJ1BVQkxJU0gnIHBhcmFtZXRlciBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNl dAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IGYKKygxIHJvdykK KworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJf cmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCiso MSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJ QV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CistLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFf UEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNl dAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQKKygxIHJvdykK KworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJf cmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCiso MSByb3cpCisKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1Ymxp Y2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUg c3VwZXJ1c2VyCitFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9u CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CitEUk9QIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQ7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJf c2NoMTsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIsIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBEUk9QIFJPTEUgcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyX2R1bW15OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24u c3FsCmluZGV4IDllYjg2ZmQ1NGYuLjcyNzY1OTk0ZGQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJs aWNhdGlvbi5zcWwKQEAgLTEwNTcsNiArMTA1Nyw1NiBAQCBEUk9QIFRBQkxFIHNjaDEudGJsMTsK IERST1AgU0NIRU1BIHNjaDEgY2FzY2FkZTsKIERST1AgU0NIRU1BIHNjaDIgY2FzY2FkZTsKIAor LS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAorQ1JFQVRFIFNDSEVNQSBw dWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitTRVQgY2xpZW50 X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBGT1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CisKKy0tIFZlcmlm eSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNl dAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50 YmwxOworCistLSBWZXJpZnkgdGhhdCB0YWJsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNh dGlvbiBhcmUgZHJvcHBlZCBhZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKwor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEg cHVibGljOworCistLSBWZXJpZnkgdGhhdCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVi bGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0 CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycpOwor CistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0CitcZFJwKyB0ZXN0 cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsg dGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVC TElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworCistLSBWZXJpZnkgdGhhdCAnUFVC TElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyByZXNldAorXGRScCsgdGVzdHB1 Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRl c3RwdWJfcmVzZXQKKworLS0gVmVyaWZ5IHRoYXQgb25seSBzdXBlcnVzZXIgY2FuIHJlc2V0IGEg cHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgT1dORVIgVE8gcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyMjsKK1NFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl cjI7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOyAtLSBmYWlsIC0gbXVz dCBiZSBzdXBlcnVzZXIKK1NFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsKKworRFJP UCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOwor RFJPUCBTQ0hFTUEgcHViX3NjaDE7CisKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERS T1AgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIsIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl cjI7CiBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyX2R1bW15OwotLSAKMi4zMi4w Cgo= --000000000000a8151c05e08848ab--